Patent ID: 7221762

Claim:
A computer implemented method of determining a shared secret between a first entity and a second entity in a cryptosystem, . . . , the method comprising: selecting a first random integer a; calculating a first intermediate shared secret component g a , wherein g is a predetermined element of a second cyclic group H; communicating the first intermediate shared secret component g a to the second entity; selecting a second random integer b; calculating a second intermediate shared secret component g b ; communicating the second intermediate shared secret component g b to the first entity; calculating an interactive shared secret g ab =(g a ) b =(g b ) a ; confirming that the first entity knows the non-interactive shared secret S AB ; confirming that the second entity knows the non-interactive shared secret S AB ; and determining the shared secret using at least the interactive shared secret g ab , wherein: the first entity's knowledge of the non-interactive shared secret S AB is confirmed by determining the shared secret using both the interactive shared secret g ab and the non-interactive shared secret S AB ; and the second entity's knowledge of the non-interactive shared secret S AB is confirmed by determining the shared secret using both the interactive shared secret g ab and the non-interactive shared secret S AB.