Beyond public key encryption
blog.cryptographyengineering.com
blog.cryptographyengineering.com
I wish it were better, and I completely understand that it's tough to both research higher order mathematics and keep in mind human level interactions, but without something like that , I think we're going to stay stuck with the current state of overly technical, fragile, normal-user-hostile tech.
You can't change your retina so easily.
Personally I really dislike the concept of identity-based crypto, mainly because it make anonymity much harder. Keybase is very clever in how they attempt to solve the identity-based problem, but I'm not convinced if it actually makes this any more secure than just using WoT.
Edit: typo
Like password generators you could have many public keys (eg one for each recipient's public key and an advertised pepper that increments with each message) from your single biometric or even including adress, time, or place.
I just don't see how any oracle that you don't control access to isn't susceptible to compromise. I also don't see how the biometric is better than a memorized public key (or salt) other than you can't lose it, since spoofing the biometric will still be possible.
Correct me if I'm off base here.
As always with cryptography you have a key exchange/identity binding problem: if you receive my public key, how do you know it actually came from me? There are a few solutions to this problem:
1. Certificate authorities do an ID check (domain or extended validation). You know the cert is valid because (in theory) the CA doesn't sign unless it too is convinced and you trust them to do a good job (there's a whole history of CA issues and implementation problems I won't discuss further here - this is by and large the concept). 2. Web-of-Trust/Keybase - the valid key is signed by enough other people you trust / signs enough other public statements from accounts you trust you don't think MITM can happen. 3. Compare hashes (fingerprints) - OTR, OMEMO, Signal, WhatsApp, ZRTP et al. You have the right key because you trust the digest function. 4. Authenticated Key Exchange e.g. PAKE, SPAKE, NAXOS etc.
IBE solves the key exchange problem a different way - what if your public key was some identifiable piece of information (not necessarily biometric as others have suggested, but) e.g. an email address or telephone number? To realise this you need a key management server to go from these public keys to a private key, via a protected master secret and other global parameters, see https://crypto.stanford.edu/~dabo/papers/bfibe.pdf , https://crypto.stanford.edu/~xb/ab09/latticeibe.pdf, https://eprint.iacr.org/2014/794.pdf for example (Boneh's was the first discovered IBE scheme). In this system, you transform the identity piece of data into a public key and only the user in possession of the private key from the master authority/key management server should be able to decrypt it, assuming they global domain parameters are trusted.
The advantage here is that assuming, for example, you work in a government department and have a government supplied telephone you do not also need to verify key material for the user at the other end - you can derive an appropriate public key simply by typing in their telephone number, which you do when you initiate a call. Users no longer need to think about key material or activating "secure mode" or whatever might be required to make an encrypted telephone function. So far as I know at least the UK's GCHQ are keen: https://www.ncsc.gov.uk/articles/using-mikey-sakke-building-... but their scheme has been criticised: https://www.benthamsgaze.org/2016/01/19/insecure-by-design-p...
The downside from everyone else's point of view is that the key management server / master authority can derive private keys for all users of the system. The article mentions certificate-less cryptography as a potential solution, however, you need to distribute (the non-IBE) part of the key, bringing you back to 1-4 above.