IP Library › Granted Patent US 10,630,465
Granted Patent B2
US 10,630,465 · App. 15/487,895 · Granted Apr 21, 2020

Key exchange method, key exchange system, communication device and storage medium therefore

Inventors: Tetsutaro Kobayashi (Tokyo, JP); Reo Yoshida (Tokyo, JP); Hitoshi Fuji (Tokyo, JP); Tomohide Yamamoto (Tokyo, JP); Yuto Kawahara (Tokyo, JP); Kazuki Yoneyama (Ibaraki, JP)
Assignee: NIPPON TELEGRAPH AND TELEPHONE CORPORATION
H04L9/0822H04L9/0643H04L9/083H04L9/0825H04L9/0838H04L9/0869H04L9/0891H04L9/0894H04L9/14H04L9/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,630,465
App. No.
15/487,895
Granted
Apr 21, 2020
Kind
B2
Abstract

Plurality of users share a common key while permitting dynamic member change and computational complexity required for key exchange is reduced. The first key generation unit 212 of the communication devices U i computes R i and c i , or c i based on a twisted pseudo-random function. A session ID generation unit 113 of a key distribution device S generates sid based on a target-collision resistant hash function and transmits sid to the communication devices U i . A second key generation unit 214 of the communication devices U i computes T i based on a pseudo-random function. A third key generation unit 115 of the key distribution device S computes k′ and T′ i based on the twisted pseudo-random function. A session key generation unit 217 of the communication devices U i generates the common key K 2 based on a pseudo-random function.

Claims (149)

1. 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 U i (i=1, . . . , n+k), communication devices U n+1 , . . . , U n+k newly join a session established by communication devices U 1 , U n , in which

∥ is a concatenation operator,

1 is one piece of representative communication device which is selected from the communication devices U 1 , U n , U n+1 , . . . , U n+k ,

a secret key sk S for public key encryption and secret strings st S and st′ S of the key distribution device S are stored in a storage of the key distribution device S,

a secret key sk i for public key encryption and secret strings st i and st′ i of the communication devices U i are stored in a storage of the communication devices U i (i=1, . . . , n+k), and

further, information r generated in the session established by the communication devices U 1 , . . . , U n is stored in a storage of the communication devices U 1 , . . . , U n , the key exchange method comprising:

a first key generation step in which the communication devices U i (i=1, n, . . . , n+k) generate values r i , k i , and s i by using the secret strings st i and st′ i based on a twisted pseudo-random function, compute values R i =g ri and c i =g ki h si (here, each of g and h denotes a generation source of a group G, which is a multiplication cyclic group of a prime number order p of κ bits), and transmit (R i , c i ) to the key distribution device S, and the communication devices U i (i=2, . . . , n−1) generate values k i and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, compute a value c i =g ki h si , and transmit the value c i to the key distribution device S;

a session ID generation step in which the key distribution device S generates a value sid by using the values c 1 , . . . , c n+k based on a target-collision resistant hash function and transmits, to the communication devices U i , (sid, R i−1 ) with respect to i=1, 2, the value sid with respect to i=3, . . . , n−2, (sid, R i+1 ) with respect to i=n−1, n, and (sid, R i−1 , R i+1 ) with respect to i=n+1, . . . , n+k (here, R 0 =R n+K and R n+k+1 =R 1 );

a second key generation step in which the representative communication device U 1 generates a value K 1 l by using (sid, R n+k r1 ) based on a pseudo-random function, generates a value K 1 r by using (sid, g r1r ) based on the pseudo-random function, computes a value T 1 by an exclusive OR of the values K 1 l and K 1 r , computes a value T′ by an exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S, the communication device U 2 generates a value K 2 l by using (sid, R 1 r ) based on the pseudo-random function, generates a value K 2 r by using (sid, g r ) based on the pseudo-random function, computes a value T 2 by an exclusive OR of the values K 2 l and K 2 r , and transmits (k 2 , s 2 , T 2 ) to the key distribution device S, the communication devices U (i=3, . . . , n−2) transmit (k i , s i ) to the key distribution device S, the communication device U n−1 generates a value K n−1 l by using (sid, g r ) based on the pseudo-random function, generates a value K n−1 r by using (sid, R n r ) based on the pseudo-random function, computes a value T n−1 by an exclusive OR of the values K n−1 l and K n−1 r , and transmits (k n−1 , s n−1 , T n−1 ) to the key distribution device S, the communication device U n generates a value K n l by using (sid, R n r ) based on the pseudo-random function, generates a value K n r by using (sid, R n+1 rn ) based on the pseudo-random function, computes a value T n by an exclusive OR of the values K n l and K n r , and transmits (k n , s n , T n ) to the key distribution device S, and the communication devices U i (i=n+1, n+k) generate a value K i l by using (sid, R i−1 ri ) based on the pseudo-random function, generate a value K i r by using (sid, R i+1 ri ) based on the pseudo-random function, compute a value T i by an exclusive OR of the values K i l and K i r , and transmit (k i , s i , T i ) to the key distribution device S;

a third key generation step in which the key distribution device S generates a value k s by using the secret strings st S and st′ S based on the twisted pseudo-random function, computes a value k′ by an exclusive OR of the values k 2 , . . . , k n+k , k s , computes a value T′ i by an exclusive OR of the values T 1 , . . . , T i−1 with respect to i=2, . . . , n+k (here, T i is nil with respect to i=3, . . . , n−1), transmits the value k′ to the representative communication device U 1 , and transmits (k′, T′ i , T′) to the communication devices U i (i=2, . . . , n+k);

a first session key generation step in which the communication devices U i (i=2, n, . . . , n+k) compute the value K 1 l by an exclusive OR of the values T′ i and K i l and compute k 1 ∥s 1 by an exclusive OR of the values T′ and K 1 l , and the communication devices U i (i=3, . . . , n−1) compute the value K 1 l by an exclusive OR of the values T′ i and g r and compute k 1 ∥s 1 by the exclusive OR of the values T′ and K 1 l ; and

a second session key generation step in which the communication devices U i (i=1, . . . , n+k) generate a common key K 2 by using the value sid and an exclusive OR of the values k′ and k 1 based on the pseudo-random function.

2. The key exchange method according to claim 1 , in which

time denotes current time, ID denotes a predicate variable representing the communication device, and TF denotes a predicate variable representing a time frame of the communication device, and

a master secret key msk for functional encryption and a common key K 1 which is generated in a session established by the communication devices U 1 , . . . , U n are further stored in the storage of the key distribution device S, the key exchange method further comprising:

a user key transmission step in which the key distribution device S generates a user secret key usk i by using the master secret key msk with respect to i=1, . . . , n+k with attribution used as A i =(U i , time) based on a key derivation algorithm for functional encryption, and encrypts the user secret key usk i by using a public key pk i of the communication devices U i based on an encryption algorithm for public key encryption so as to generate a cipher text CT i ; and

a user key reception step in which the communication devices U i (i=1, . . . , n+k) decrypt the cipher text CT i by using the secret key sk i based on a decryption algorithm for public key encryption so as to obtain the user secret key usk i , wherein

in the third key generation step, in a case where a time frame has been changed from the session established by the communication devices U 1 , . . . , U n , the key distribution device S generates the common key K 1 by using the secret strings st S and st′ S based on the twisted pseudo-random function, and in a case where a time frame has not been changed from the session established by the communication devices U 1 , . . . , U n , the key distribution device S reads the common key K 1 stored in the storage and encrypts the common key K 1 with respect to i=1, . . . , n+k with an access structure P i =(ID=U i )∧(time∈TF) based on an encryption algorithm for functional encryption so as to further generate a cipher text CT′ i , and

in the second session key generation step, the communication devices U i (i=1, . . . , n+k) decrypt the cipher text CT′ i by using the user secret key usk i based on a decryption algorithm for functional encryption so as to obtain the common key K 1 and further compute a session key SK by an exclusive OR of a value generated by using (sid, K 1 ) based on the pseudo-random function and a value generated by using (sid, K 2 ) based on the pseudo-random function.

3. The key exchange method according to claim 2 , in which

in the user key transmission step, the key distribution device S further generates a MAC key mk i based on a key generation algorithm for a message authentication code and encrypts the user secret key usk i and the MAC key mk i by using the public key pk i of the communication devices U i based on the encryption algorithm for public key encryption so as to generate the cipher text CT i , and

in the user key reception step, the communication devices U i (i=1, . . . , n+k) decrypt the cipher text CT i by using the secret key sk i based on the decryption algorithm for public key encryption so as to obtain the user secret key usk i and the MAC key mk i , the key exchange method further comprising:

a first authentication tag generation step in which the representative communication device U 1 generates an authentication tag σ 1 by using the MAC key mk 1 and the values R 1 , c 1 , R n+k , T 1 , T′, U 1 , and sid based on a tag generation algorithm for a message authentication code, the communication device U 2 generates an authentication tag σ 2 by using the MAC key mk 2 and the values c 2 , R 1 , k 2 , s 2 , T 2 , U 2 , and sid based on the tag generation algorithm for a message authentication code, the communication devices U i (i=3, . . . , n−2) generate an authentication tag σ i by using the MAC key mk i and the values c i , k i , s i , U i , and sid based on the tag generation algorithm for a message authentication code, the communication device U n−1 generates an authentication tag σ n−1 by using the MAC key mk n−1 and the values c n−1 , R n , k n−1 , s n−1 , T n−1 , U n−1 , and sid based on the tag generation algorithm for a message authentication code, the communication device U n generates an authentication tag σ n by using the MAC key mk n and the values R n , c n , R n+1 , k n , s n , T n , U n , and sid based on the tag generation algorithm for a message authentication code, and the communication devices U i (i=n+1, . . . , n+k) generate an authentication tag σ i by using the MAC key mk i and the values R i , c i , R i−1 , R i+1 , k i , s i , T i , U i , and sid based on the tag generation algorithm for a message authentication code;

a first authentication tag verification step in which the key distribution device S receives (T 1 , T′, σ 1 ) from the representative communication device U 1 , receives (k i , s i , T i , σ i ) from the communication devices U i (i=2, n−1, . . . , n+k), receives (k i , s i , σ i ) from the communication devices U i (i=3, . . . , n−2), verifies the authentication tag σ i by using the MAC key mk i (i=1, . . . , n+k) based on a verification algorithm for a message authentication code, and verifies whether or not c i =g ki h si is satisfied with respect to i=2, . . . , n+k;

a second authentication tag generation step in which the key distribution device S generates an authentication tag σ′ 1 with respect to i=1 by using the MAC key mk 1 and the values R 1 , c 1 , R n+k , T 1 , T′, U 1 , sid, k′, and CT′ 1 based on the tag generation algorithm for a message authentication code, generates an authentication tag σ′ 2 with respect to i=2 by using the MAC key mk 2 and the values c 2 , R 1 , k 2 , s 2 , T 2 , U 2 , sid, c 1 , k′, T′ 2 , T′, and CT′ 2 based on the tag generation algorithm for a message authentication code, generates an authentication tag with respect to i=3, . . . , n−2 by using the MAC key mk i and the values c i , k i , s i , U i , sid, c 1 , k′, T′ i , T′, and CT′ i based on the tag generation algorithm for a message authentication code, generates an authentication tag σ′ n−1 with respect to i=n−1 by using the MAC key mk n−1 and the values c n−1 , R n , k n−1 , s n−1 , T n−1 , U n−1 , sid, c 1 , k′, T′ n−1 , T′, and CT′ n−1 based on the tag generation algorithm for a message authentication code, generates an authentication tag σ′ n with respect to i=n by using the MAC key mk n and the values R n , c n , R n+1 , k n , s n , T n , U n , sid, c 1 , k′, T′ n , T′, and CT′ n based on the tag generation algorithm for a message authentication code, and generates an authentication tag σ′ i with respect to i=n+1, . . . , n+k by using the MAC key mk i and the values R i , c i , R i−1 , R i+1 , k i , s i , T i , sid, c 1 , k′, T′ i , and CT′ i based on the tag generation algorithm for a message authentication code; and

a second authentication tag verification step in which the representative communication device U 1 receives (k′, CT′ 1 , σ′ 1 ) from the key distribution device S and verifies the authentication tag σ′ 1 by using the MAC key mk 1 based on the verification algorithm for a message authentication code, and the communication devices U i (i=2, . . . , n+k) receive (c 1 , k′, T′ i , T′, CT′ i , σ′ i ) from the key distribution device S, verify the authentication tag σ′ i , by using the MAC key mk i based on the verification algorithm for a message authentication code, and verify whether or not c i =g k1 h s1 is satisfied.

4. A key exchange system comprising:

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 U i (i=1, . . . , n+k), wherein

∥ is a concatenation operator,

U 1 is one piece of representative communication device which is selected from the communication devices U 1 , U n , U n+1 , . . . , U n+k ,

the key distribution device S includes

a storage which stores a secret key sk S for public key encryption and secret strings st S and st′ S of the key distribution device S,

circuitry configured to:

execute a session ID generation processing which receives (R i , c i ) from the communication devices U i (i=1, . . . n, n+k), receives a value c i from the communication devices U 1 (i=2, . . . , n−1), generates a value sid by using the values c 1 , . . . , c n+k based on a target-collision resistant hash function, and transmits, to the communication devices U i , (sid, R i−1 ) with respect to i=1, 2, the value sid with respect to i=3, . . . n−2, (sid, R i+1 ) with respect to i=n−1, n, and (sid, R i−1 , R i+1 ) with respect to i=n+1, . . . , n+k (here, R 0 =R n+K , R n+k+1 =R 1 ), and

execute a third key generation processing which receives (T 1 , T′) from the representative communication device U 1 , receives (k i , s i , T i ) from the communication device U i (i=2, n−1, . . . , n+k), receives (k i , s i ) from the communication devices U i (i=3, . . . , n−2), generates a value k s by using the secret strings st S and st′ S based on a twisted pseudo-random function, computes a value k′ by an exclusive OR of the values k 2 , . . . , k n+k , k s , computes a value T′ i by an exclusive OR of the values T 1 , . . . , T i−1 with respect to i=2, . . . , n+k (here, T i is nil with respect to i=3, . . . , n−1), transmits the value k′ to the representative communication device U 1 , and transmits (k′, T′ i , T′) to the communication devices U i (i=2, . . . , n+k), and

the communication devices U i (i=1, . . . , n+k) include

a storage which stores a secret key sk i for public key encryption and secret strings st i and st′ i of the communication devices U i and further stores information r generated in a session established by the communication devices U 1 , . . . , U n with respect to i=1, . . . , n,

circuitry configured to:

execute a first key generation processing which generates values r i , k i , and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, computes the values R i =g ri and c i =g ki h si (here, each of g and h denotes a generation source of a group G, which is a multiplication cyclic group of a prime number order p of κ bits), and transmits (R i , c i ) to the key distribution device S with respect to i=1, n, . . . , n+k, and generates values k i and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, computes the value c i =g ki h si , and transmits the value c i to the key distribution device S with respect to i=2, . . . , n−1,

execute a second key generation processing which receives (sid, R n+k ) from the key distribution device S, generates a value K 1 l by using (sid, R n+k r1 ) based on the pseudo-random function, generates a value K 1 r by using (sid, g r1r ) based on the pseudo-random function, computes the value T 1 by an exclusive OR of the values K 1 l and K 1 r , computes the value T′ by an exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S with respect to i=1, receives (sid, R 1 ) from the key distribution device S, generates a value K 2 l by using (sid, R 1 r ) based on the pseudo-random function, generates a value K 2 r by using (sid, g r ) based on the pseudo-random function, computes the value T 2 by an exclusive OR of the values K 2 l and K 2 r , and transmits (k 2 , s 2 , T 2 ) to the key distribution device S with respect to i=2, receives the value sid from the key distribution device S and transmits (k i , s i ) to the key distribution device S with respect to i=3, . . . , n−2, receives (sid, R n ) from the key distribution device S, generates a value K n−1 l by using (sid, g r ) based on the pseudo-random function, generates a value K n−1 r by using (sid, R n r ) based on the pseudo-random function, computes the value T n−1 by an exclusive OR of the values K n−1 l and K n−1 r , and transmits (k n−1 , s n−1 , T n−1 ) to the key distribution device S with respect to i=n−1, receives (sid, R n+1 ) from the key distribution device S, generates a value K n l by using (sid, R n r ) based on the pseudo-random function, generates a value K n r by using (sid, R n+1 rn ) based on the pseudo-random function, computes the value T n by an exclusive OR of the values K n l and K n r , and transmits (k n , s n , T n ) to the key distribution device S with respect to i=n, and receives (sid, R i−1 , R i+1 ) from the key distribution device S, generates a value K i l by using (sid, R i−1 ri ) based on the pseudo-random function, generates a value K i r by using (sid, R i+1 ri ) based on the pseudo-random function, computes the value T i by an exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S with respect to i=n+1, . . . , n+k, and

execute a session key generation processing which receives the value k′ from the key distribution device S and generates a common key K 2 by using the value sid and an exclusive OR of the values k′ and k 1 based on the pseudo-random function with respect to i=1, receives (k′, T′ i , T′) from the key distribution device S, computes the value K 1 l by an exclusive OR of the values T′ i and K i l , computes k 1 ∥s 1 by an exclusive OR of the values T′ and K 1 l , and generates the common key K 2 by using the value sid and the exclusive OR of the values k′ and k 1 based on the pseudo-random function with respect to i=2, n, . . . , n+k, and receives (k′, T′ i , T′) from the key distribution device S, computes the value K 1 l by an exclusive OR of the values T′ i and g r , computes k 1 ∥s 1 by an exclusive OR of the values T′ and K 1 l , and generates the common key K 2 by using the value sid and the exclusive OR of the values k′ and k 1 based on the pseudo-random function with respect to i=3, . . . , n−1.

5. A key exchange method for a case where, in a key exchange system which includes a key distribution device S and n pieces (here, n is an integer which is 2 or larger) of communication devices U i (i=1, . . . , n), communication devices U j1 , . . . , U jm leave from a session established by communication devices U 1 , . . . , U n , in which

R={U j1 , . . . , U jm } is a subset of {U 1 , . . . , U n } and N={U j1-1 , U j1+1 , . . . , U jm−1 , U jm+1 } is a subset of {U 1 , . . . , U n },

∥ is a concatenation operator,

U 1 (∈N) is one piece of representative communication device which is selected from N,

a secret key sk S for public key encryption and secret strings st S and st′ S of the key distribution device S are stored in a storage of the key distribution device S, and

a secret key sk i for public key encryption and secret strings st i and st′ i of the communication devices U i and information H i l and H i r generated in the session established by the communication devices U 1 , . . . , U n are stored in a storage of the communication devices U i (i=1, . . . , n), the key exchange method comprising:

a first key generation step in which the communication devices U i (∈N) generate values r i , k i , and s i by using the secret strings st i and st′ i based on a twisted pseudo-random function, compute values R i =g ri and c i =g ki h si (here, each of g and h denotes a generation source of a group G, which is a multiplication cyclic group of a prime number order p of κ bits), and transmit (R i , c i ) to the key distribution device S, and the communication devices U i (∈({U 1 , . . . , U n }−R)−N) generate values k i and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, compute a value c i =g ki h si , and transmit the value c i to the key distribution device S;

a session ID generation step in which the key distribution device S generates a value sid by using {c i |i satisfies U i ∈{U 1 , . . . U n }−R} based on a target-collision resistant hash function and transmits, to the communication devices U i , (sid, R j ) with respect to i which satisfies U i ∈N and U i+1 ∈R (here, j is a minimum index which satisfies U j ∈N and j>i), (sid, R j′ ) with respect to i which satisfies U i ∈N and U i−1 ∈R (here, j′ is a maximum index which satisfies U j′ ∈N and j′<i), and the value sid with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−N;

a second key generations step in which the representative communication device U 1 generates a value K 1 l by using (sid, R n−1 r1 ) based on a pseudo-random function, generates a value K 1 r by using (sid, R 3 r1 ) based on the pseudo-random function, computes a value T 1 by an exclusive OR of the values K 1 l and K 1 r , computes a value T′ by an exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j =U 3 and U j′ =U n−1 are satisfied, generates a value K 1 l by using (sid, R n−1 r1 ) based on the pseudo-random function, generates a value K 1 r by using (sid, R 1 r ) based on the pseudo-random function, computes a value T 1 by the exclusive OR of the values K 1 l and K 1 r , computes a value T′ by the exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j′ =U n−1 and U 2 ∈N are satisfied, and generates a value K 1 l by using (sid, H 1 l ) based on the pseudo-random function, generates a value K 1 r by using (sid, R 3 r1 ) based on the pseudo-random function, computes a value T 1 by the exclusive OR of the values K 1 l and K 1 r , computes a value T′ by the exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j =U 3 and U n ∈N are satisfied, the communication devices U i (i satisfies U i ∈N and U i+1 ∈R (here, i is not 1)) generate a value K i l by using (sid, H i l ) based on the pseudo-random function, generate a value K i r by using (sid, R j ri ) based on the pseudo-random function, compute a value T i by an exclusive OR of the values K i l and K i r , and transmit (k i , s i , T i ) to the key distribution device S, the communication devices U i (i satisfies U i ∈N and U i−1 ∈R (here, i is not 1)) generate a value by using (sid, R j′ ri ) based on the pseudo-random function, generate a value K i r by using (sid, H i r ) based on the pseudo-random function, compute a value T i by the exclusive OR of the values K i l and K i r , and transmit (k i , s i , T i ) to the key distribution device S, and the communication devices U i (i satisfies U i ∈({U 1 , . . . , U n }−R)−N (here, i is not 1)) generate a value K i l by using (sid, H i l ) based on the pseudo-random function, generate a value K i r by using (sid, H i r ) based on the pseudo-random function, compute a value T i by the exclusive OR of the values K i l and K i r , and transmit (k i , s i , T i ) to the key distribution device S;

a third key generation step in which the key distribution device S generates a value k s by using the secret strings st S and st′ S based on the twisted pseudo-random function, computes a value k′ by an exclusive OR of {k i |i satisfies U i ∈({U 1 , . . . U n }−R)−{U 1 }} and the value k s , computes a value T′ i by an exclusive OR of the values T 1 , . . . , T j , . . . , T i−1 with respect to i which satisfies U i ∈{U 1 , . . . , U n }−R (here, T j is nil with respect to j which satisfies U j ∈R), transmits the value k′ to the representative communication device U 1 , and transmits (k′, T′ i , T′) to the communication devices U i (∈({U 1 , . . . , U n }−R)−{U 1 });

a first session key generation step in which the communication devices U i (∈({U 1 , . . . , U n }−R)−{U 1 }) compute the value K 1 l by an exclusive OR of the values T′ i and K i l and compute k 1 |s 1 by an exclusive OR of the values T′ and K 1 l ; and

a second session key generation step in which the communication devices U i (∈{U 1 , . . . , U n }−R) generate the common key K 2 by using the value sid and the exclusive OR of the values k′ and k 1 based on the pseudo-random function.

6. The key exchange method according to claim 5 , in which

time denotes current time, ID denotes a predicate variable representing the communication device, and TF denotes a predicate variable representing a time frame of the communication device, and

a master secret key msk for functional encryption and a common key K 1 which is generated in a session established by the communication devices U 1 , . . . , U n are further stored in the storage of the key distribution device S, the key exchange method further comprising:

a user key transmission step in which the key distribution device S generates a user secret key usk i by using the master secret key msk with respect to i which satisfies U i ∈{U 1 , . . . , U n }−R with attribution used as A i =(U i , time) based on a key derivation algorithm for functional encryption, and encrypts the user secret key usk i by using a public key pk i of the communication devices U i based on an encryption algorithm for public key encryption so as to generate a cipher text CT i ; and

a user key reception step in which the communication devices U i ∈{U 1 , . . . , U n }−R decrypt the cipher text CT i by using the secret key sk i based on a decryption algorithm for public key encryption so as to obtain the user secret key usk i , wherein

in the third key generation step, in a case where a time frame has been changed from the session established by the communication devices U 1 , . . . , U n , the key distribution device S generates the common key K 1 by using the secret strings st S and st′ S based on the twisted pseudo-random function, and in a case where a time frame has not been changed from the session established by the communication devices U 1 , . . . , U n , the key distribution device S reads the common key K 1 stored in the storage and encrypts the common key K 1 with respect to i which satisfies U i ∈{U 1 , . . . , U n }−R with an access structure P i =(ID=U i )∧(time∈TF) based on an encryption algorithm for functional encryption so as to further generate a cipher text CT′ i , and

in the second session key generation step, the communication devices U i (∈{U 1 , . . . , U n }−R) decrypt the cipher text CT′ i by using the user secret key usk i based on a decryption algorithm for functional encryption so as to obtain the common key K 1 and further compute a session key SK by an exclusive OR of a value generated by using (sid, K 1 ) based on the pseudo-random function and a value generated by using (sid, K 2 ) based on the pseudo-random function.

7. The key exchange method according to claim 6 , in which

in the user key transmission step, the key distribution device S further generates a MAC key mk i based on a key generation algorithm for a message authentication code and encrypts the user secret key usk i and the MAC key mk i by using the public key pk i of the communication devices U i based on the encryption algorithm for public key encryption so as to generate the cipher text CT i , and

in the user key reception step, the communication devices U i ∈{U 1 , . . . , U n }−R decrypt the cipher text CT i by using the secret key sk i based on the decryption algorithm for public key encryption so as to obtain the user secret key usk i and the MAC key mk i , the key exchange method further comprising:

a first authentication tag generation step in which the representative communication device U 1 generates an authentication tag σ 1 by using the MAC key mk 1 and the values R 1 , c 1 , (R 3 , R n−1 ), T 1 , T′, U 1 , and sid based on the tag generation algorithm for a message authentication code, the communication devices U i (i satisfies U i ∈N and U i+1 ∈R) generate an authentication tag σ i by using the MAC key mk i and the values R i , c i , R j , k i , s i , T i , U i , and sid based on the tag generation algorithm for a message authentication code, the communication devices U i (i satisfies U i ∈N and U i−1 ΣR) generate an authentication tag σ i by using the MAC key mk i and the values R i , c i , R j′ , k i , s i , T i , U i , and sid based on the tag generation algorithm for a message authentication code, and the communication devices U i (i satisfies U i ∈({U 1 , . . . , U n }−R)−N) generate an authentication tag σ i by using the MAC key mkd, and the values c i , k i , s i , T i , U i and sid based on the tag generation algorithm for a message authentication code;

a first authentication tag verification step in which the key distribution device S receives (T 1 , T′, σ 1 ) from the representative communication device U 1 , receives (k i , s i , T i , σ i ) from the communication devices U i (∈({U 1 , . . . , U n }−R)−{U 1 }), verifies the authentication tag σ i by using the MAC key mk i (i satisfies U i ∈{U 1 , . . . , U n }−R) based on a verification algorithm for a message authentication code, and verifies whether or not c i =g ki h si is satisfied with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−{U 1 };

a second authentication tag generation step in which the key distribution device S generates an authentication tag σ′ 1 with respect to i=1 by using the MAC key mk 1 and the values R 1 , c 1 , (R 3 , R n−1 ), T 1 , T′, U 1 , sid, k′, and CT′ 1 based on the tag generation algorithm for a message authentication code, generates an authentication tag σ′ i with respect to i which satisfies U i ∈N and U i+1 ∈R by using the MAC key mk i and the values R i , c i , R j , k i , s i , T i , U i , sid, c 1 , k′, T′ i , T′, and CT′ i based on the tag generation algorithm for a message authentication code, generates an authentication tag σ′ i with respect to i which satisfies U i ∈N and U i−1 ∈R by using the MAC key mk i and the values R i , c i , R j′ , k i , s i , T i , U i , sid, c 1 , k′, T′ i , T′, and CT′ i based on the tag generation algorithm for a message authentication code, and generates an authentication tag σ′ n−1 with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−N by using the MAC key mk n−1 and the values c i , k i , s i , T i , U i , sid, c 1 , k′, T′ i , T′, and CT′ i based on the tag generation algorithm for a message authentication code; and

a second authentication tag verification step in which the representative communication device U 1 receives (k′, CT′ 1 , σ′ 1 ) from the key distribution device S and verifies the authentication tag σ′ 1 by using the MAC key mk 1 based on the verification algorithm for a message authentication code, and the communication devices U i (∈({U 1 , . . . , U n }−R)−{U 1 }) receive (c i , k′, T′ i , T′, CT′ i , σ′ i ) from the key distribution device S, verify the authentication tag σ′ i by using the MAC key mk i based on the verification algorithm for a message authentication code, and verify whether or not c 1 =g k1 h s1 is satisfied.

8. A key exchange system comprising:

a key distribution device S; and

n pieces (here, n is an integer which is 2 or larger) of communication devices U i (i=1, . . . , n), wherein

R={U j1 , . . . , U jm } is a subset of {U 1 , . . . , U n } and N={U j1−i , U j1+1 , . . . , U jm−1 , U jm1 } is a subset of {U 1 , . . . , U n },

∥ is a concatenation operator,

U 1 (∈N) is one piece of representative communication device which is selected from N, the key distribution device S includes

a storage which stores a secret key sk S for public key encryption and secret strings st S and st′ S of the key distribution device S,

circuitry configured to:

execute a session ID generation processing which receives (R i , c i ) from the communication devices U i (∈N), receives a value c i from the communication devices U i (∈({U 1 , . . . , U n }−R)−N), generates a value sid by using {c i |i satisfies U i ∈{U 1 , . . . , U n }−R} based on a target-collision resistant hash function, and transmits, to the communication devices U i , (sid, R j ) with respect to i which satisfies U i ∈N and U i+1 ∈R (here, j is a minimum index which satisfies U j ∈N and j>i), (sid, R j′ ) with respect to i which satisfies U i ∈N and U i−1 ∈R (here, j′ is a maximum index which satisfies U j′ ∈N and j′<i), and the value sid with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−N, and

execute a third key generation processing which receives (T 1 , T′) from the representative communication device U 1 , receives (k i , s i , T i ) from the communication devices U i (∈({U 1 , . . . , U n }−R)−{U 1 }), generates a value k s by using the secret strings st S and st′ S based on the twisted pseudo-random function, computes a value k′ by an exclusive OR of {k i |i satisfies U i ∈({U 1 , . . . , U n }−R)−{U 1 }} and the value k s , computes a value T′ i by an exclusive OR of the values T 1 , . . . , T j , T i−1 (here, T j is nil with respect to j which satisfies U j ∈R) with respect to i which satisfies U 1 ∈{U 1 , . . . U n }−R, transmits the value k′ to the representative communication device U 1 , and transmits (k′, T′ i , T′) to the communication devices U i (∈({U 1 , . . . , U n }−R)−{U 1 }), and

the communication devices U i (∈{U 1 , . . . U n }−R) include

a storage which stores a secret key sk i for public key encryption and secret strings st i and st′ i of the communication devices U i and stores information H i l and H i r generated in a session established by the communication devices U 1 , . . . , U n ,

circuitry configured to:

execute a first key generation processing which generates values r i , k i , and s i by using the secret strings st i and st′ i based on a twisted pseudo-random function, computes the values R i =g ri and c i =g ki h si (here, each of g and h denotes a generation source of a group G, which is a multiplication cyclic group of a prime number order p of κ bits), and transmits (R i , c i ) to the key distribution device S with respect to i which satisfies U i ∈N, and generates values k i and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, computes the value c i =g ki h si , and transmits the value c i to the key distribution device S with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−N,

execute a second key generation processing which, with respect to i=1, receives (sid, R 3 , R n−1 ) from the key distribution device S, generates a value K 1 l by using (sid, R n−1 r1 ) based on the pseudo-random function, generates a value K 1 r by using (sid, R 3 r1 ) based on the pseudo-random function, computes the value T 1 by an exclusive OR of the values K 1 l and K 1 r , computes the value T′ by an exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j =U 3 and U j′ =U n−1 are satisfied, receives (sid, R n−1 ) from the key distribution device S, generates a value K 1 l by using (sid, R n−1 r1 ) based on the pseudo-random function, generates a value K 1 r by using (sid, H 1 r ) based on the pseudo-random function, computes the value T 1 by the exclusive OR of the values K 1 l and K 1 r , computes the value T′ by the exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j′ =U n−1 and U 2 ∈N are satisfied, and receives (sid, R 3 ) from the key distribution device S, generates a value K 1 l by using (sid, H 1 l ) based on the pseudo-random function, generates a value K 1 r by using (sid, R 3 r1 ) based on the pseudo-random function, computes the value T 1 by the exclusive OR of the values K 1 l and K 1 r , computes the value T′ by the exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j =U 3 and U n ∈N are satisfied; with respect to i which satisfies U i ∈N and U i+1 ∈R (i is not 1), receives (sid, R j ) from the key distribution device S, generates a value K i l by using (sid, H i l ) based on the pseudo-random function, generates a value K i r by using (sid, R j ri ) based on the pseudo-random function, computes the value T i by an exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S; with respect to i which satisfies U i ∈N and U i−1 ∈R (i is not 1), receives (sid, R j′ ) from the key distribution device S, generates a value K 1 l by using (sid, R j ri ) based on the pseudo-random function, generates a value K i r by using (sid, H i r ) based on the pseudo-random function, computes the value T i by the exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S; and with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−N (i is not 1), receives the value sid from the key distribution device S, generates a value K i l by using (sid, H i l ) based on the pseudo-random function, generates a value K i r by using (sid, H i r ) based on the pseudo-random function, computes the value T i by the exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S, and

execute a session key generation processing which, with respect to i=1, receives the value k′ from the key distribution device S and generates a common key K 2 by using the value sid and an exclusive OR of the values k′ and k 1 based on the pseudo-random function, and with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−{U 1 }, receives (k′, T′ i , T′) from the key distribution device S, computes the value K 1 l by an exclusive OR of the values T′ i and K i l , computes k 1 ∥s 1 by an exclusive OR of the values T′ and K 1 l , and generates the common key K 2 by using the value sid and the exclusive OR of the values k′ and k 1 based on the pseudo-random function.

9. A communication device which is included in a key exchange system comprising:

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 U i (i=1, . . . , n+k), wherein

∥ is a concatenation operator,

U 1 is one piece of representative communication device which is selected from the communication devices U 1 , U n , U n+1 , . . . , U n+k ,

the key distribution device S includes

a storage which stores a secret key sk S for public key encryption and secret strings st S and st′ S of the key distribution device S,

circuitry configured to:

execute a session ID generation processing which receives (R i , c i ) from the communication devices U i (i=1, n, . . . , n+k), receives a value c i from the communication devices U i (i=2, . . . , n−1), generates a value sid by using the values c 1 , . . . , c n+k based on a target-collision resistant hash function, and transmits, to the communication devices U i , (sid, R i−1 ) with respect to i=1, 2, the value sid with respect to i=3, . . . , n−2, (sid, R i+1 ) with respect to i=n−1, n, and (sid, R i−1 , R i+1 ) with respect to i=n+1, . . . , n+k (here, R 0 =R n+K , R n+k+1 =R 1 ), and

execute a third key generation processing which receives (T 1 , T′) from the representative communication device U 1 , receives (k i , s i , T i ) from the communication device U i (i=2, n−1, . . . , n+k), receives (k i , s i ) from the communication devices U i (i=3, . . . , n−2), generates a value k s by using the secret strings st S and st′ S based on a twisted pseudo-random function, computes a value k′ by an exclusive OR of the values k 2 , . . . , k n+k , k s , computes a value T′ i by an exclusive OR of the values T 1 , . . . T i−1 , with respect to i=2, . . . , n+k (here, T i is nil with respect to i=3, . . . n−1), transmits the value k′ to the representative communication device U 1 , and transmits (k′, T′ i , T′) to the communication devices U i (i=2, . . . , n+k), and

the communication devices U i (i=1, . . . , n+k) include

a storage which stores a secret key sk i for public key encryption and secret strings st i and st′ i of the communication devices U i and further stores information r generated in a session established by the communication devices U 1 , . . . , U n with respect to i=1, . . . , n,

circuitry configured to:

execute a first key generation processing which generates values r i , k i , and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, computes the values R i =g ri and c i =g ki h si (here, each of g and h denotes a generation source of a group G, which is a multiplication cyclic group of a prime number order p of κ bits), and transmits (R i , c i ) to the key distribution device S with respect to i=1, n, . . . , n+k, and generates values k i and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, computes the value c i =g ki h si , and transmits the value c i to the key distribution device S with respect to i=2, . . . , n−1,

execute a second key generation processing which receives (sid R n+k ) from the key distribution device S, generates a value K 1 l by using (sid, R n+k r1 ) based on the pseudo-random function, generates a value K 1 r by using (sid, g r1r ) based on the pseudo-random function, computes the value T 1 by an exclusive OR of the values K 1 l and K 1 r , computes the value T′ by an exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S with respect to i=1, receives (sid, R 1 ) from the key distribution device S, generates a value K 2 l by using (sid, R 1 r ) based on the pseudo-random function, generates a value K 2 r by using (sid, g r ) based on the pseudo-random function, computes the value T 2 by an exclusive OR of the values K 2 l and K 2 r , and transmits (k 2 , s 2 , T 2 ) to the key distribution device S with respect to i=2, receives the value sid from the key distribution device S and transmits (k i , s i ) to the key distribution device S with respect to i=3, . . . , n−2, receives (sid, R n ) from the key distribution device S, generates a value K n−1 l by using (sid, g r ) based on the pseudo-random function, generates a value K n−1 r by using (sid, R n r ) based on the pseudo-random function, computes the value T n−1 by an exclusive OR of the values K n−1 l and K n−1 r , and transmits (k n−1 , s n−1 , T n−1 ) to the key distribution device S with respect to i=n−1, receives (sid, R n+1 ) from the key distribution device S, generates a value K n l by using (sid, R n r ) based on the pseudo-random function, generates a value K n r by using (sid, R n+1 rn ) based on the pseudo-random function, computes the value T n by an exclusive OR of the values K n l and K n r , and transmits (k n , s n , T n ) to the key distribution device S with respect to i=n, and receives (sid, R i−1 , R i+1 ) from the key distribution device S, generates a value K i l by using (sid, R i−1 ri ) based on the pseudo-random function, generates a value K i r by using (sid, R i+1 ri ) based on the pseudo-random function, computes the value T i by an exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S with respect to i=n+1, . . . , n+k, and

execute a session key generation processing which receives the value k′ from the key distribution device S and generates a common key K 2 by using the value sid and an exclusive OR of the values k′ and k 1 based on the pseudo-random function with respect to i=1, receives (k′, T′ i , T′) from the key distribution device S, computes the value K 1 l by an exclusive OR of the values T′ i and K i l , computes k 1 ∥s 1 by an exclusive OR of the values T′ and K 1 l , and generates the common key K 2 by using the value sid and the exclusive OR of the values k′ and k 1 based on the pseudo-random function with respect to i=2, n, . . . , n+k, and receives (k′, T′ i , T′) from the key distribution device S, computes the value K 1 l by an exclusive OR of the values T′ i and g r , computes k 1 ∥s 1 by an exclusive OR of the values T′ and K 1 l , and generates the common key K 2 by using the value sid and the exclusive OR of the values k′ and k 1 based on the pseudo-random function with respect to i=3, . . . , n−1.

10. A communication device which is included in a key exchange system comprising:

a key distribution device S; and

n pieces (here, n is an integer which is 2 or larger) of communication devices U i (i=1, . . . , n), wherein

R={U j1 , . . . , U jm } is a subset of {U 1 , . . . , U n } and N={U j1-1 , U j1+1 , . . . , U jm-1 , U jm1 } is a subset of {U 1 , . . . , U n },

∥ is a concatenation operator,

U 1 (∈N) is one piece of representative communication device which is selected from N, the key distribution device S includes

a storage which stores a secret key sk S for public key encryption and secret strings st S and st′ S of the key distribution device S,

circuitry configured to:

execute a session ID generation processing which receives (R i , c i ) from the communication devices U i (∈N), receives a value c i from the communication devices U i (∈({U 1 , . . . , U n }−R−N), generates a value sid by using {c i |i satisfies U i ∈{U 1 , . . . , U n }−R} based on a target-collision resistant hash function, and transmits, to the communication devices U i , (sid, R j ) with respect to i which satisfies U i ∈N and U i+1 ∈R (here, j is a minimum index which satisfies U j ∈N and j>i), (sid, R j′ ) with respect to i which satisfies U i ∈N and U i−1 ∈R (here, j′ is a maximum index which satisfies U j′ ∈N and j′<i), and the value sid with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−N, and

execute a third key generation processing which receives (T 1 , T′) from the representative communication device U 1 , receives (k i , s i , T i ) from the communication devices U i (∈({U 1 , . . . , U n }−R)−{U 1 }), generates a value k s by using the secret strings st S and st′ S based on the twisted pseudo-random function, computes a value k′ by an exclusive OR of {k i |i satisfies U i ∈({U 1 , . . . U n }−R)−{U 1 }} and the value k s , computes a value T′ i by an exclusive OR of the values T 1 , . . . , T j , . . . , T i−1 (here, T j is nil with respect to j which satisfies U j ∈R) with respect to i which satisfies U i ∈{U 1 , . . . , U n }−R, transmits the value k′ to the representative communication device U 1 , and transmits (k′, T′ i , T′) to the communication devices U i (∈({U 1 , . . . , U n }−R)−{U 1 }), and

the communication devices U i (∈({U 1 , . . . , U n }−R) include

a storage which stores a secret key sk i for public key encryption and secret strings st i and st′ i of the communication devices U i and stores information H i l and H i r generated in a session established by the communication devices U 1 , . . . , U n ,

circuitry configured to:

execute a first key generation processing which generates values r i , k i and s i by using the secret strings st i and st′ i based on a twisted pseudo-random function, computes the values R i =g ri and c i =g ki h si (here, each of g and h denotes a generation source of a group G, which is a multiplication cyclic group of a prime number order p of κ bits), and transmits (R i , c i ) to the key distribution device S with respect to i which satisfies U i ∈N, and generates values k i and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, computes the value c i =g ki h si , and transmits the value c i to the key distribution device S with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−N,

execute a second key generation processing which, with respect to i=1, receives (sid, R 3 , R n−1 ) from the key distribution device S, generates a value K 1 l by using (sid, R n−1 r1 ) based on the pseudo-random function, generates a value K 1 r by using (sid, R 3 r1 ) based on the pseudo-random function, computes the value T 1 by an exclusive OR of the values K 1 l and K 1 r , computes the value T′ by an exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j =U 3 and U j′ =U n−1 are satisfied, receives (sid, R n−1 ) from the key distribution device S, generates a value K 1 l by using (sid, R n−1 r1 ) based on the pseudo-random function, generates a value K 1 r by using (sid, H 1 r ) based on the pseudo-random function, computes the value T 1 by the exclusive OR of the values K 1 l and K 1 r , computes the value T′ by the exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j′ =U n−1 and U 2 ∈N are satisfied, and receives (sid, R 3 ) from the key distribution device S, generates a value K 1 l by using (sid, H 1 l ) based on the pseudo-random function, generates a value K 1 r by using (sid, R 3 r1 ) based on the pseudo-random function, computes the value T 1 by the exclusive OR of the values K 1 l and K 1 r , computes the value T′ by the exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U i =U 3 and U n ∈N are satisfied; with respect to i which satisfies U i ∈N and U i+1 ∈R (i is not 1), receives (sid, R j ) from the key distribution device S, generates a value by using (sid, H i l ) based on the pseudo-random function, generates a value K i l by using (sid, R 3 r1 ) based on the pseudo-random function, computes the value T i by an exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S; with respect to i which satisfies U i ∈N and U i−1 ∈R (i is not 1), receives (sid, R j′ ) from the key distribution device S, generates a value K i l by using (sid, R j′ ri ) based on the pseudo-random function, generates a value K i r by using (sid, H i r ) based on the pseudo-random function, computes the value T i by the exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S; and with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R−N (i is not 1), receives the value sid from the key distribution device S, generates a value K i l by using (sid, H i l ) based on the pseudo-random function, generates a value K i r by using (sid, H i r ) based on the pseudo-random function, computes the value T i by the exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S, and

execute a session key generation processing which, with respect to i=1, receives the value k′ from the key distribution device S and generates a common key K 2 by using the value sid and an exclusive OR of the values k′ and k 1 based on the pseudo-random function, and with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−{U 1 }, receives (k′, T′ i , T′) from the key distribution device S, computes the value K 1 l by an exclusive OR of the values T′ i and K i l , computes k 1 ∥s 1 by an exclusive OR of the values T′ and K 1 l , and generates the common key K 2 by using the value sid and the exclusive OR of the values k′ and k 1 based on the pseudo-random function.

11. A non-transitory computer-readable storage medium which stores a program for causing a computer to operate as a communication device which is included in key exchange system comprising:

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 U i (i=1, . . . , n+k), wherein

∥ is a concatenation operator,

U 1 is one piece of representative communication device which is selected from the communication devices U 1 , U n , U n+1 , . . . , U n+k ,

the key distribution device S includes

a storage which stores a secret key sk S for public key encryption and secret strings st S and st′ S of the key distribution device S,

circuitry configured to:

execute a session ID generation processing which receives (R i , c i ) from the communication devices U i (i=1, n, . . . , n+k), receives a value c i from the communication devices U i (i=2, . . . , n−1), generates a value sid by using the values c 1 , . . . , c n+k based on a target-collision resistant hash function, and transmits, to the communication devices U i , (sid, R i−1 ) with respect to i=1, 2, the value sid with respect to i=3, . . . , n−2, (sid, R i+1 ) with respect to i=n−1, n, and (sid, R i−1 , R i+1 ) with respect to i=n+1, . . . , n+k (here, R 0 =R n+K , R n+k+1 =R 1 ), and

execute a third key generation processing which receives (T 1 , T′) from the representative communication device U 1 , receives (k i , s i , T i ) from the communication device U i (i=2, n−1, . . . , n+k), receives (k i , s i ) from the communication devices U i (i=3, . . . , n−2), generates a value k s by using the secret strings st S and st′ S based on a twisted pseudo-random function, computes a value k′ by an exclusive OR of the values k 2 , . . . , k n+k , k s , computes a value T′ i by an exclusive OR of the values T 1 , . . . , T i−1 with respect to i=2, . . . , n+k (here, T i is nil with respect to i=3, . . . , n−1), transmits the value k′ to the representative communication device U 1 , and transmits (k′, T′ i , T′) to the communication devices U i (i=2, . . . , n+k), and

the communication devices U i (i=1, . . . , n+k) include

a storage which stores a secret key sk i for public key encryption and secret strings st i and st′ i of the communication devices U i and further stores information r generated in a session established by the communication devices U 1 , . . . , U n with respect to i=1, . . . , n,

circuitry configured to:

execute a first key generation processing which generates values r i , k i , and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, computes the values R i =g ri and c i =g ki h si (here, each of g and h denotes a generation source of a group G, which is a multiplication cyclic group of a prime number order p of κ bits), and transmits (R i , c i ) to the key distribution device S with respect to i=1, n, . . . , n+k, and generates values k i and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, computes the value c i =g ki h si , and transmits the value c i to the key distribution device S with respect to i=2, . . . , n−1,

execute a second key generation processing which receives (sid, R n+k ) from the key distribution device S, generates a value K 1 l by using (sid, R n+k r1 ) based on the pseudo-random function, generates a value K 1 r by using (sid, g r1r ) based on the pseudo-random function, computes the value T 1 by an exclusive OR of the values K 1 l and K 1 r , computes the value T′ by an exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S with respect to i=1, receives (sid, R 1 ) from the key distribution device S, generates a value K 2 l by using (sid, R 1 r ) based on the pseudo-random function, generates a value K 2 r by using (sid, g r ) based on the pseudo-random function, computes the value T 2 by an exclusive OR of the values K 2 l and K 2 r , and transmits (k 2 , s 2 , T 2 ) to the key distribution device S with respect to i=2, receives the value sid from the key distribution device S and transmits (k i , s i ) to the key distribution device S with respect to i=3, . . . , n−2, receives (sid, R n ) from the key distribution device S, generates a value K n−1 l by using (sid, g r ) based on the pseudo-random function, generates a value K n−1 r by using (sid, R n r ) based on the pseudo-random function, computes the value T n−1 by an exclusive OR of the values K n−1 l and K n−1 r , and transmits (k n−1 , s n−1 , T n−1 ) to the key distribution device S with respect to i=n−1, receives (sid, R n+1 ) from the key distribution device S, generates a value K n l by using (sid, R n r ) based on the pseudo-random function, generates a value K n r by using (sid, R n+1 rn ) based on the pseudo-random function, computes the value T n by an exclusive OR of the values K n l and K n r , and transmits (k n , s n , T n ) to the key distribution device S with respect to i=n, and receives (sid, R i−1 , R i+1 ) from the key distribution device S, generates a value K i l by using (sid, R i−1 ri ) based on the pseudo-random function, generates a value K i r by using (sid, R i+1 ri ) based on the pseudo-random function, computes the value T i by an exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S with respect to i=n+1, . . . , n+k, and

execute a session key generation processing which receives the value k′ from the key distribution device S and generates a common key K 2 by using the value sid and an exclusive OR of the values k′ and k 1 based on the pseudo-random function with respect to i=1, receives (k′, T′ i , T′) from the key distribution device S, computes the value K 1 l by an exclusive OR of the values T′ i and K i l , computes k 1 ∥s 1 by an exclusive OR of the values T′ and K 1 l , and generates the common key K 2 by using the value sid and the exclusive OR of the values k′ and k 1 based on the pseudo-random function with respect to i=2, n, . . . , n+k, and receives (k′, T′ i , T′) from the key distribution device S, computes the value K 1 l by an exclusive OR of the values T′ i and g r , computes k 1 ∥s 1 by an exclusive OR of the values T′ and K 1 l , and generates the common key K 2 by using the value sid and the exclusive OR of the values k′ and k 1 based on the pseudo-random function with respect to i=3, . . . , n−1.

12. A non-transitory computer-readable storage medium which stores a program for causing a computer to operate as a communication device which is included in key exchange system comprising:

a key distribution device S; and

n pieces (here, n is an integer which is 2 or larger) of communication devices U i (i=1, . . . , n), wherein

R={U j1 , . . . , U jm } is a subset of {U 1 , . . . , U n } and N={U j1-1 , U j1+1 , . . . , U jm-1 , U jm1 } is a subset of {U 1 , . . . , U n },

∥ is a concatenation operator,

U 1 (∈N) is one piece of representative communication device which is selected from N,

the key distribution device S includes

a storage which stores a secret key sk S for public key encryption and secret strings st S and st′ S of the key distribution device S,

circuitry configured to:

execute a session ID generation processing which receives (R i ; c i ) from the communication devices U i (∈N), receives a value c i from the communication devices U i (∈({U 1 , . . . , U n }−R)−N), generates a value sid by using {c i |i satisfies U i ∈{U 1 , . . . , U n }−R} based on a target-collision resistant hash function, and transmits, to the communication devices U i , (sid, R j ) with respect to i which satisfies U i ∈N and U i+1 ∈R (here, j is a minimum index which satisfies U j ∈N and j>i), (sid, R j′ ) with respect to i which satisfies U i ∈N and U i−1 ∈R (here, j′ is a maximum index which satisfies U j′ ∈N and j′<i), and the value sid with respect to i which satisfies U i ∈({U 1 , . . . U n }−R)−N, and

execute a third key generation processing which receives (T 1 , T′) from the representative communication device U 1 , receives (k i , s i , T i ) from the communication devices U i (∈({U 1 , . . . , U n }−R)−{U 1 }), generates a value k s by using the secret strings st S and st′ S based on the twisted pseudo-random function, computes a value k′ by an exclusive OR of {k i |i satisfies U i ∈({U 1 , . . . , U n }−R)−{U 1 }} and the value k s , computes a value T′ i by an exclusive OR of the values T 1 , . . . , T j , . . . , T i−1 (here, T j is nil with respect to j which satisfies U j ∈R) with respect to i which satisfies U i ∈{U 1 , . . . , U n }−R, transmits the value k′ to the representative communication device U 1 , and transmits (k′, T′ i , T′) to the communication devices U i (∈({U 1 , . . . , U n }−R)−{U 1 }), and

the communication devices U i (∈{U 1 , . . . , U n }−R) include

a storage which stores a secret key sk i for public key encryption and secret strings st i and st′ i of the communication devices U i and stores information H i l and H i r generated in a session established by the communication devices U 1 , . . . , U n ,

circuitry configured to:

execute a first key generation processing which generates values r i , k i and s i by using the secret strings st i and st′ i based on a twisted pseudo-random function, computes the values R i =g ri and c i =g ki h si (here, each of g and h denotes a generation source of a group G, which is a multiplication cyclic group of a prime number order p of κ bits), and transmits (R i , c i ) to the key distribution device S with respect to i which satisfies U i ∈N, and generates values k i and s i by using the secret strings st i and st′ i based on the twisted pseudo-random function, computes the value c i =g ki h si , and transmits the value c i to the key distribution device S with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−N,

execute a second key generation processing which, with respect to i=1, receives (sid, R 3 , R n−1 ) from the key distribution device S, generates a value K 1 l by using (sid, R n−1 r1 ) based on the pseudo-random function, generates a value K 1 r by using (sid, R 3 r1 ) based on the pseudo-random function, computes the value T 1 by an exclusive OR of the values K 1 l and K 1 r , computes the value T′ by an exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j =U 3 and U j′ =U n−1 are satisfied, receives (sid, R n−1 ) from the key distribution device S, generates a value K 1 l by using (sid, R n−1 r1 ) based on the pseudo-random function, generates a value K 1 r by using (sid, H 1 r ) based on the pseudo-random function, computes the value T 1 by the exclusive OR of the values K 1 l and K 1 r , computes the value T′ by the exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j′ =U n−1 and U 2 ∈N are satisfied, and receives (sid, R 3 ) from the key distribution device S, generates a value K 1 l by using (sid, H 1 l ) based on the pseudo-random function, generates a value K 1 r by using (sid, R 3 r1 ) based on the pseudo-random function, computes the value T 1 by the exclusive OR of the values K 1 l and K 1 r , computes the value T′ by the exclusive OR of the value K 1 l and k 1 ∥s 1 , and transmits (T 1 , T′) to the key distribution device S in a case where U j =U 3 and U n ∈N are satisfied; with respect to i which satisfies U i ∈N and U i+1 ∈R (i is not 1), receives (sid, R j ) from the key distribution device S, generates a value K i l by using (sid, H i l ) based on the pseudo-random function, generates a value K i r by using (sid, R j ri ) based on the pseudo-random function, computes the value T i by an exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S; with respect to i which satisfies U i ∈N and U i−1 ∈R (i is not 1), receives (sid, R j′ ) from the key distribution device S, generates a value K i l by using (sid, R j′ ri ) based on the pseudo-random function, generates a value K i r by using (sid, H i r ) based on the pseudo-random function, computes the value T i by the exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S; and with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−N (i is not 1), receives the value sid from the key distribution device S, generates a value K i l by using (sid, H i l ) based on the pseudo-random function, generates a value K i r by using (sid, H i r ) based on the pseudo-random function, computes the value T i by the exclusive OR of the values K i l and K i r , and transmits (k i , s i , T i ) to the key distribution device S, and

execute a session key generation processing which, with respect to i=1, receives the value k′ from the key distribution device S and generates a common key K 2 by using the value sid and an exclusive OR of the values k′ and k 1 based on the pseudo-random function, and with respect to i which satisfies U i ∈({U 1 , . . . , U n }−R)−{U 1 }, receives (k′, T′ i , T′) from the key distribution device S, computes the value K 1 l by an exclusive OR of the values T′ i and K i l , computes k 1 ∥s 1 by an exclusive OR of the values T′ and K 1 l , and generates the common key K 2 by using the value sid and the exclusive OR of the values k′ and k 1 based on the pseudo-random function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2017
From: KOBAYASHI, TETSUTARO; YOSHIDA, REO; FUJI, HITOSHI; YAMAMOTO, TOMOHIDE; KAWAHARA, YUTO; YONEYAMA, KAZUKI
To: NIPPON TELEGRAPH AND TELEPHONE CORPORATION
Reel/Frame 042790/0872 →
Priority Claims (1)
JP 2016-083633 · Apr 19, 2016 · national
Continuity (1)
Related Publication 20170302445A1 · Oct 19, 2017