Patent ID: 6910129

Claim:
A method of authenticating a remote party and establishing a cryptographic key for secure communications via an insecure communication channel, said method including the steps of: generating a first challenge signal of minimum duration T, where T is a fixed time interval and is larger than the channel transmission and processing delay; generating a random number x, computing g x modulo p, where g and p are numbers, deriving a key k A from g x modulo p, encrypting said first challenge signal with the key k A and a symmetric key cryptosystem to provide a first ciphertext, and sending the first ciphertext to said remote party; receiving a second ciphertext from said remote party; sending g x modulo p to said remote party and starting a clock; receiving g y modulo p from paid remote party; receiving a third ciphertext from said remote party, stopping the clock after receiving the third ciphertext and computing an elapsed time interval of said clock; deriving a key k B from received g y modulo p, decrypting said second ciphertext with the key k B to recover a second challenge signal from said remote party; computing g xy modulo p, deriving a key k AB from g xy modulo p; decrypting said third ciphertext with the key k AB to recover a first response signal from said remote party; verifying that said elapsed time of the clock is within a predetermined interval (TL A , TU A ) where TL A and TU A are positive numbers; verifying that said second challenge signal is produced by said remote party; producing a second response signal of minimum duration T, encrypting said second response signal with the key k AB to provide a fourth ciphertext and sending the fourth ciphertext to said remote party; verifying that said first response signal is a response produced by said remote party to said first challenge signal; and after verifying that said second challenge signal and that said first response signal are produced by said remote party and that said elapsed time is within the predetermined interval, using a key k from g xy modulo p for secure communications with said remote party.