Patent ID: 8090947

Claim:
A data communication system comprising a first correspondent A and a second correspondent B, said first correspondent A having a private key a and a corresponding public key p A derived from a generator α and said private key a, and said second correspondent B having a private key b and a corresponding public key p B derived from said generator α and said private key b, said data communication system being configured for authenticating said first correspondent A and said second correspondent B to permit exchange of information therebetween by: i) said first correspondent A selecting a first random integer x and exponentiating a first function ƒ(α), including said generator α, to a power g(x) to provide a first exponentiated function ƒ(α) g(x) ; ii) said first correspondent A generating a first signature s A from said first random integer x and said first exponentiated function ƒ(α) g(x) ; iii) said first correspondent A forwarding to said second correspondent B a first message including said first exponentiated function ƒ(α) g(x) and said first signature s A ; iv) said second correspondent B selecting a second random integer y and exponentiating a second function ƒ′(α), including said generator α, to a power g(y) to provide a second exponentiated function ƒ′(α) g(y) , and generating a second signature s B obtained from said second integer y and said second exponentiated function ƒ′(α) g(y) ; v) said second correspondent B forwarding a second message to said first correspondent A including said second exponentiated function ƒ′(α) g(y) and said second signature s B ; vi) said first correspondent A verifying the integrity of said second message by computing from said second signature s B and said second exponentiated function ƒ′(α) g(y) in said second message a value equivalent to said second exponentiated function ƒ′(α) g(y) , and comparing said value and said second exponentiated function ƒ′(α) g(y) transmitted thereto; vii) said second correspondent B verifying the integrity of said first message by computing from said first signature s A and said first exponentiated function ƒ(α) g(x) in said first message a second value equivalent to said first exponentiated function ƒ(α) g(x) , and comparing said second value and said first exponentiated function ƒ(α) g(x) transmitted thereto; and viii) said first correspondent A constructing a session key K by exponentiating information made public by said second correspondent B with said first random integer x, and said second correspondent B constructing said session key K by exponentiation information made public by said first correspondent A with said second random integer y.