So, I've been playing around with PGP, and boy, is it convoluted! All I wanted was to make (and exchange) a keypair, and dance the easy message-crypto dance: encrypting messages from me with my private key to ensure authenticity, then with their public key to ensure privacy, decrypting messages to me with my private key to ensure privacy, then with their public key to ensure authenticity. But, nooo, they had to add a bunch of fluff. And it is fluff (or ought to be seperated into the various parts, so that it isn't one convoluted mess). The main thing about keypairs that you can prove is that any message encrypted by the private key of that pair will be decryptable only by the corresponding public key, and vice versa. You cannot prove that a given human is the owner of a given key, nor can you prove that a given key is owned by a given human, that's beyond the scope of the system. Sure, it's maybe possible to establish fairly decent probabilities that they are in such a relation, but that gets convoluted fast, as we see with PGP. The beauty of the idea was that you don't need to prove all that, all you really need to do is treat each public key as a sort of name for some person who you only know by that name (with the benefit that the likelihood of another having the same name is extremely small), thus you essentially treat the public key as the person, and watch the behaviour of that person (which will be trivially provably the behaviour of that person, because it is all signed by their private key, which is verified using their public key, and any behaviour which is not signed thus is treated as not them (and if it's not signed at all, it's treated as a sort of cryptographic 'wild west', where no reasonable person trusts anything, because there is no establishing of trustworthiness))
I guess what I'm trying to get at is this: is there any cryptographic software system compatible with PGP, but only provides the (sufficient) abilities 'generate keypair', 'encrypt message using key', 'decrypt message using key'?
<inb4 variety of algorithms
I'm all for having a variety of algorithms, but my concern here is what one can do with the algorithms, how easy it is to do those things with those algorithms, and how easy it is to learn how to do those things with those algorithms (respectively: capability / mechanism, usability / elegant interface, learnability / proper documentation), as opposed to which algorithms are best (which is for probabilists and cryptologers to understand and advise us of, and is likely dependant on the circumstance)