Patent ID: 7363496

Claim:
A method of authenticating a digital message communicated between a first entity and a second entity, wherein the first entity and the second entity both know a non-interactive shared secret, comprising: selecting a first random secret that is known to the first entity and unknown to the second entity; determining a first intermediate shared secret component using the first random secret and a system parameter, the system parameter being independent of the non-interactive shared secret, such that the first intermediate shared secret component is independent of the non-interactive shared secret; communicating the first intermediate shared secret component to the second entity; selecting a second random secret that is known to the second entity and unknown to the first entity; determining a second intermediate shared secret component using the second random secret and the system parameter, such that the second intermediate shared secret component is independent of the non-interactive shared secret; communicating the second intermediate shared secret component to the first entity; determining an interactive shared secret using the first intermediate shared secret component, the second intermediate shared secret component and the system parameter; determining a symmetric key using the interactive shared secret and the non-interactive shared secret; generating a message authentication code using the symmetric key; and verifying the message authentication code using the symmetric key.