Patent ID: 8572383

Claim:
A key exchange processing system comprising: a first key exchange apparatus including a first storage and a first CPU executing processes according to a program, for performing a key exchange process with a second key exchange apparatus through a network; and said second key exchange apparatus including a second storage and a second CPU executing processes according to a program, for performing said key exchange process with said first key exchange apparatus through said network, wherein when said first CPU is supplied with a random number, a private key, an own public key which is the public key of its own apparatus, a companion public key which is the public key of said second key exchange apparatus, an initial session number, and a start command, said first CPU generates a starter session number which is different from said initial session number by assigning a value generated from said random number to a variable of said own public key, generates a first hash value by using information of said starter session number, said random number, and said private key, generates a first session number including said initial session number, said starter session number, said own public key, and said companion public key, and sends a starter message including said first session number and said first hash value to said second key exchange apparatus; when said second CPU receives said starter message from said first key exchange apparatus, said second CPU determines whether a second hash value generated using information of said first session number and said first hash value are in agreement with each other or not based on a property of a bilinear mapping, and when the hash values are in agreement with each other, said second CPU generates a responder session number which is different from any one of said initial session number and said starter session number, generates a third hash value using information of a second session number that is generated by adding said responder session number to said first session number, stores said third hash value as a key in said second storage, generates a responder message including said second session number and said third hash value, and sends the responder message to said first key exchange apparatus; and when said first CPU receives said responder message from said second key exchange apparatus, said first CPU determines whether a fourth hash value generated using information of said second session number and said third hash value are in agreement with each other or not based on a property of a bilinear mapping, and when the hash values are in agreement with each other, said first CPU generates a fifth hash value using information of said second session number, and stores said fifth hash value as a key in said first storage.