Private / Public Key Identification needs to be revisionable. Public keys need to be accessible. In the case of a breach new keys should be generated against some sort of public / private block chain. When a enitity requires your data they should be granted a revocable public key to it. If there is a breach we generate a new pair and the private key is stored on a sort of IIA server, and a new key is immutably added to the person. Or something more.