<div dir="ltr"><div class="gmail_default" style="font-size:small">I am just working on some code and it occurs to me that the use of RSA to encrypt data under a session key might give an attacker more leverage than we need to allow.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">With RSA we typically generate a random session key and encrypt that. The counterparty decrypts the blob to recover the key. If there are n counterparties there are n different encryptions of the same data under different RSA keys.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">With DH we don't encrypt, we have a key agreement. If we have only one counterparty then we can perform the key agreement and use the result to generate the session key, preferably involving some sort of digest step. If however we have more than one recipient, we have to wrap the session key using the result of the key agreement.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">It seems to me that the second approach is a lot more robust in the case of related key attacks. It also provides a much more straightforward defense against the types of attack Rogaway identified.</div></div>