A key exchange method for a case where, in a key exchange system which includes a key distribution device S and n+k pieces (here, n is an integer which is 2 or larger and k is an integer which is 1 or larger) of communication devices Ui (i=1, . . . , n+k), communication devices Un+1, . . . , Un+k newly join a session established by communication devices U1, . . . , Un, in which
- ∥ is a concatenation operator,
- U1 is one piece of representative communication device which is selected from the communication devices U1, Un, Un+1, . . . , Un+k,
- a secret key skS for public key encryption and secret strings stS and st′S of the key distribution device S are stored in a storage of the key distribution device S,
- a secret key ski for public key encryption and secret strings sti and st′i of the communication devices Ui are stored in a storage of the communication devices Ui (i=1, . . . , n+k), and further, information r generated in the session established by the communication devices U1, . . . , Un is stored in a storage of the communication devices U1, . . . , Un, the key exchange method comprising:
- a first key generation step in which the communication devices Ui (i=1, n, . . . , n+k) generate ri, ki, and si by using the secret strings sti and st′i based on a twisted pseudo-random function, compute Ri=gri and ci=gkihsi, and transmit (Ri, ci) to the key distribution device S, and the communication devices Ui (i=2, . . . , n−1) generate ki and si by using the secret strings sti and st′i based on the twisted pseudo-random function, compute ci=gkihsi, and transmit ci to the key distribution device S;
- a session ID generation step in which the key distribution device S generates sid by using c1, . . . , cn+k based on a target-collision resistant hash function and transmits, to the communication devices Ui, (sid, Ri−1) with respect to i=1, 2, sid with respect to i=3, . . . , n−2, (sid, Ri+1) with respect to i=n−1, n, and (sid, Ri−1, Ri+1) with respect to i=n+1, . . . , n+k (here, R0=Rn+K and Rn+k+1=R1);
- a second key generation step in which the representative communication device U1 generates K1l by using (sid, Rn+kr1) based on a pseudo-random function, generates K1r by using (sid, gr1r) based on the pseudo-random function, computes T1 by an exclusive OR of K1l and K1r, computes T′ by an exclusive OR of K1l and k1∥s1, and transmits (T1, T′) to the key distribution device S, the communication device U2 generates K2l by using (sid, R1r) based on the pseudo-random function, generates K2r by using (sid, gr) based on the pseudo-random function, computes T2 by an exclusive OR of K2l and K2r, and transmits (k2, s2, T2) to the key distribution device S, the communication devices Ui (i=3, . . . , n−2) transmit (ki, si) to the key distribution device S, the communication device Un−1 generates Kn−1l by using (sid, gr) based on the pseudo-random function, generates Kn−1r by using (sid, Rnr) based on the pseudo-random function, computes Tn−1 by an exclusive OR of Kn−1l and Kn−1r, and transmits (kn−1, sn−1, Tn−1) to the key distribution device S, the communication device Un generates Knl by using (sid, Rnr) based on the pseudo-random function, generates Knr by using (sid, Rn+1rn) based on the pseudo-random function, computes Tn by an exclusive OR of Knl and Knr, and transmits (kn, sn, Tn) to the key distribution device S, and the communication devices Ui (i=n+1, . . . , n+k) generate Kil by using (sid, ri−1ri) based on the pseudo-random function, generate Kir by using (sid, Ri+1ri) based on the pseudo-random function, compute Ti by an exclusive OR of Kil and Kir, and transmit (ki, si, Ti) to the key distribution device S;
- a third key generation step in which the key distribution device S generates kS by using the secret strings stS and st′S based on the twisted pseudo-random function, computes k′ by an exclusive OR of k2, . . . , kn+k, ks, computes T′i by an exclusive OR of T1, . . . , Ti−1 with respect to i=2, . . . , n+k (here, Ti is nil with respect to i=3, . . . , n−1), transmits k′ to the representative communication device Ui, and transmits (k′, T′i, T′) to the communication devices Ui (i=2, . . . , n+k);
- a first session key generation step in which the communication devices Ui (i=2, n, . . . , n+k) compute K1l by an exclusive OR of T′i and Kil and compute k1∥s1 by an exclusive OR of T′ and K1l, and the communication devices Ui (i=3, . . . , n−1) compute K1l by an exclusive OR of T′i and gr and compute k1∥s1 by the exclusive OR of T′ and K1l;
- and
- a second session key generation step in which the communication devices Ui (i=1, . . . , n+k) generate a common key K2 by using sid and an exclusive OR of k′ and k1 based on the pseudo-random function.