Programmable Key Pairs: A New Way to Manage Data Access and Privacy