When using PGP type public encrypted communication, would it be a good idea to generate a new public for each message and attach that in the new public key in the reply to back to sender mail body? Idea is you start the communication with the known public key from a key server, but for each new message/chat message you generate a new public/private key for that particular end-user. That way if someone cracks your initial public/private key they may not read all the messages? Would that be a good or bad idea? Ie the person who want to read your mail conversation must crack all PGP keys in the conversation sequence to read all the messages.
-
$\begingroup$ cracking a rsa key is very unlikely, your idea seems like extremist $\endgroup$– AndresQCommented Jul 4, 2013 at 16:44
-
$\begingroup$ @Shaga It's only hard if you only consider cryptographic attacks. Attackers gaining access to the private key by compromising an endpoint is a practical threat. This includes trojans, police raids, subpoenas,... $\endgroup$– CodesInChaosCommented Jul 4, 2013 at 17:10
-
$\begingroup$ @Christian The problems with this one is that key management becomes annoying. That's why protocols with a live connection like SSL or OTR can use similar techniques, for example to obtain forward-secrecy. For store and forward protocols like email it's far more annoying. For example how would you support receiving mails on multiple devices? $\endgroup$– CodesInChaosCommented Jul 4, 2013 at 17:12
-
$\begingroup$ Multiple devices would be impossible, but one a single device the mail program could handle the key changes automatically. There was claims that germany could decrypt certain types of SSH/PGP. golem.de/news/… $\endgroup$– ChristianCommented Jul 4, 2013 at 17:41
-
$\begingroup$ If someone were to crack your initial public/private key (I'm assuming this is the typical pre-generated, shared public style keypair) then they could still man in the middle you emails/chats and insert their own key upgrades - trying to design a security protocol around a compromised endpoint is probably an exercise in futility. $\endgroup$– archieCommented Jul 4, 2013 at 20:19
1 Answer
In the case of emails your solution is not really practical. The problem is that the sender of an email uses the public key whereas the receiver should have the secret key. This means that whenever somebody wants to send you an email (and therefore generate a new key) you have to be online or you have to provide a set of pre-computed key pairs. If multiple people are sending you emails at the same time. Who is taking which key? Making the key management more complicated doesn't necessarily give you more security.
In the case of communications, like chats, the property you are asking for is called (perfect) forward secrecy. This property, roughly speaking, states that an adversary, who at some point obtains your secret key(s), should not be able to decrypt past conversations. The following paper should be a good starting point for you: https://otr.cypherpunks.ca/otr-wpes.pdf