Some time has passed since PFS introduction and we now have secure&proven asymmetric ciphers that can generate strong keys very efficiently (elliptic RSA variants and/or QD-Mceliece can generate 128-bit-equivalent-secure keys in milliseconds), so I'd like to implement some of them into some software I'm writing here.
Question: Is there or do you know some PFS-providing standards material that could serve me as a guideline that is written using only asymmetric ciphers, not using DH/eDH exchange?
Question variant: Given an asymmetric cipher with fast key generator, would implementing PFS be (roughly) as simple as this? --
- both sides generate asymmetric keypars
- each side sends its public key to the other side
- communication session happens using the private/public keys (probably with some rekeying to some faster (symmetric) cipher and authentication if we already weren't in authenticated channel, but we don't care about that now)
- all keys get erased
Bonus: If the above worked, would there be any security difference if each side could re-use its keypair several times (for efficiency or whatever) and made sure that the private gets deleted? Ofcourse supposing that the cipher is secure and ignoring the extended time window for key-stealing attack.
Thanks for guidelines/opinions! :]
EDIT: summary of what I'm trying to solve: I only have a very fast, CCA2-IND asymmetric encryption algorithm and want to build PFS with it. Is there a guide for that, so I don't need to make the obvious error by implementing my own crypto?