JP7444378B2 - Key exchange system, communication terminal, information processing device, key exchange method, and program - Google Patents

Key exchange system, communication terminal, information processing device, key exchange method, and program Download PDF

Info

Publication number
JP7444378B2
JP7444378B2 JP2021002424A JP2021002424A JP7444378B2 JP 7444378 B2 JP7444378 B2 JP 7444378B2 JP 2021002424 A JP2021002424 A JP 2021002424A JP 2021002424 A JP2021002424 A JP 2021002424A JP 7444378 B2 JP7444378 B2 JP 7444378B2
Authority
JP
Japan
Prior art keywords
key
communication terminal
ciphertext
key generation
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021002424A
Other languages
Japanese (ja)
Other versions
JP2022107460A (en
Inventor
裕樹 岡野
彰 永井
一樹 米山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Ibaraki University NUC
Original Assignee
Nippon Telegraph and Telephone Corp
Ibaraki University NUC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, Ibaraki University NUC filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2021002424A priority Critical patent/JP7444378B2/en
Publication of JP2022107460A publication Critical patent/JP2022107460A/en
Application granted granted Critical
Publication of JP7444378B2 publication Critical patent/JP7444378B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、鍵交換システム、通信端末、情報処理装置、鍵交換方法、及びプログラムに関する。 The present invention relates to a key exchange system, a communication terminal, an information processing device, a key exchange method, and a program.

認証付鍵交換プロトコルは、各ユーザが自身の秘密鍵に基づいて、2者間で秘密に共通のセッション鍵を確立できるようにするプロトコルである。TLS(Transport Layer Security)ハンドシェイクを始めとする証明書による認証付鍵交換プロトコルが存在する。 An authenticated key exchange protocol is a protocol that allows each user to privately establish a common session key between two parties based on his or her private key. There are certificate-based key exchange protocols such as TLS (Transport Layer Security) handshake.

一方で、証明書を必要としないIDベースの認証付鍵交換プロトコルも存在する。これは、鍵生成センタ(KGC:Key. Generation Center)が各ユーザのIDから秘密鍵を生成し、各ユーザは互いのIDさえ知っていれば証明書検証をすることなく認証付鍵交換を実行することができるものである。 On the other hand, there are also ID-based authenticated key exchange protocols that do not require certificates. The Key Generation Center (KGC) generates a private key from each user's ID, and each user can perform authenticated key exchange without certificate verification as long as they know each other's ID. It is something that can be done.

一般に、IDベースの認証付鍵交換プロトコルは単一のKGCを前提としているため、PKI(Public Key Infrastructure)のようなスケーラビリティをもたない。このため、ユーザ数が増加するとIDの検証や秘密鍵の生成・配送に膨大なコンピューティングリソースが必要となる。これに対して、階層型IDベース認証付鍵交換と呼ばれる方式が知られている(非特許文献1及び2)。この方式では、複数のKGCで構成される階層構造とその構造に基づく鍵生成委譲により、各KGCでの鍵生成負担を減らすことを可能にしている。 In general, ID-based authenticated key exchange protocols are based on a single KGC, and therefore do not have the scalability of PKI (Public Key Infrastructure). Therefore, as the number of users increases, vast amounts of computing resources are required to verify IDs and to generate and distribute private keys. In contrast, a method called hierarchical ID-based key exchange with authentication is known (Non-Patent Documents 1 and 2). This method makes it possible to reduce the key generation burden on each KGC by using a hierarchical structure composed of a plurality of KGCs and key generation delegation based on that structure.

Fujioka, Atsushi, Koutarou Suzuki, and Kazuki Yoneyama. "Hierarchical ID-based authenticated key exchange resilient to ephemeral key leakage." International Workshop on Security. Springer, Berlin, Heidelberg, 2010.Fujioka, Atsushi, Koutarou Suzuki, and Kazuki Yoneyama. "Hierarchical ID-based authenticated key exchange resilient to ephemeral key leakage." International Workshop on Security. Springer, Berlin, Heidelberg, 2010. Yoneyama, Kazuki. "Practical and exposure-resilient hierarchical ID-based authenticated key exchange without random oracles." IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences 97.6 (2014): 1335-1344.Yoneyama, Kazuki. "Practical and exposure-resilient hierarchical ID-based authenticated key exchange without random oracles." IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences 97.6 (2014): 1335-1344.

しかしながら、従来の階層型IDベース認証付鍵交換には2つの問題点が存在する。 However, there are two problems with the conventional key exchange with hierarchical ID-based authentication.

1つ目は、従来の階層型IDベース認証付鍵交換は単一の階層構造を前提としていることである。PKIでは複数のルートCA(Certificate Authority)が存在し、通信しようとする2者の信頼の起点が異なるCAであっても互いのCAが相互認証証明書で信頼関係が確立されていれば鍵交換を行うことが可能である。一方で、従来の階層型IDベース認証付鍵交換は単一の階層構造の配下のユーザ同士でのみ鍵交換が可能であるため、異なるルートKGCをもつユーザ同士で鍵交換を行うことができない。 The first is that conventional key exchange with hierarchical ID-based authentication is based on a single hierarchical structure. In PKI, there are multiple root CAs (Certificate Authorities), and even if the two parties attempting to communicate have different origins of trust, key exchange is possible as long as the trust relationship between the two CAs is established through mutual authentication certificates. It is possible to do this. On the other hand, in the conventional key exchange with hierarchical ID-based authentication, keys can only be exchanged between users under a single hierarchical structure, and thus keys cannot be exchanged between users having different root KGCs.

2つ目は、ID失効の仕組みが組み込まれていないことである。このため、従来の階層型IDベース認証付鍵交換は、実際のシステム運用時の秘密鍵漏洩対策として、すべてのエンティティ(KGCや各ユーザ等)の秘密鍵を定期的に再生成する必要がある。 The second problem is that there is no built-in ID revocation mechanism. For this reason, in conventional key exchange with hierarchical ID-based authentication, it is necessary to periodically regenerate the private keys of all entities (KGC, each user, etc.) as a measure against leakage of private keys during actual system operation. .

本発明の一実施形態は、上記の点に鑑みてなされたもので、階層型IDベース認証付鍵交換により鍵交換を行う際に異なる階層構造配下のユーザ同士の鍵交換を実現すると共に、ID失効を実現することを目的とする。 An embodiment of the present invention has been made in view of the above points, and realizes key exchange between users under different hierarchical structures when performing key exchange by hierarchical ID-based key exchange with authentication, and also realizes key exchange between users under different hierarchical structures. The purpose is to realize revocation.

上記目的を達成するため、一実施形態に係る鍵交換システムは、階層構造をそれぞれ形成する第1の鍵生成センタ群及び第2の鍵生成センタ群と、前記第1の鍵生成センタ群の配下にある第1の通信端末と、前記第2の鍵生成センタ群の配下にある第2の通信端末と、時刻情報を配信する時刻サーバとが少なくとも含まれる鍵交換システムであって、前記第1の通信端末は、前記時刻サーバから取得した時刻情報と、前記第2の通信端末の識別子と、前記第2の鍵生成センタ群のルート鍵生成センタによって生成された公開パラメータとを用いて、失効可能階層型IDベース暗号により第1の暗号文を生成する第1の暗号化部と、鍵カプセル化メカニズムにより公開鍵と秘密鍵の鍵ペアを生成する第1の鍵生成部と、少なくとも前記第1の暗号文と前記公開鍵とを前記第2の通信端末に送信する第1の送信部と、前記第2の通信端末から第2の暗号文と第3の暗号文とを少なくとも受信すると、自身の中期秘密鍵を用いて前記第2の暗号文を前記失効可能階層型IDベース暗号により復号すると共に、前記第3の暗号文を前記鍵カプセル化メカニズムにより復号する第1の復号部と、前記第1の復号部による復号結果を用いて、セッション鍵を生成する第1のセッション鍵生成部と、を有し、前記第2の通信端末は、前記第1の通信端末から前記第1の暗号文と前記公開鍵とを少なくとも受信すると、前記時刻サーバから取得した時刻情報と、前記第1の通信端末の識別子と、前記第1の鍵生成センタ群のルート鍵生成センタによって生成された公開パラメータとを用いて、前記失効可能階層型IDベース暗号により前記第2の暗号文を生成する第2の暗号化部と、前記鍵カプセル化メカニズムにより前記公開鍵から前記第3の暗号文を生成する第3の暗号化部と、少なくとも前記第2の暗号文と前記第3の暗号文とを前記第1の通信端末に送信する第2の送信部と、自身の中期秘密鍵を用いて前記第1の暗号文を前記失効可能階層型IDベース暗号により復号する第2の復号部と、前記第2の復号部による復号結果を用いて、前記セッション鍵を生成する第2のセッション鍵生成部と、を有する。 In order to achieve the above object, a key exchange system according to an embodiment includes a first key generation center group and a second key generation center group each forming a hierarchical structure, and a subordinate key generation center group of the first key generation center group. A key exchange system that includes at least a first communication terminal located at the second key generation center group, a second communication terminal located under the second key generation center group, and a time server that distributes time information, the key exchange system comprising: The communication terminal uses the time information acquired from the time server, the identifier of the second communication terminal, and the public parameter generated by the root key generation center of the second key generation center group to perform revocation. a first encryption unit that generates a first ciphertext using a hierarchical ID-based encryption; a first key generation unit that generates a key pair of a public key and a private key using a key encapsulation mechanism; a first transmitting unit that transmits one ciphertext and the public key to the second communication terminal; and receiving at least a second ciphertext and a third ciphertext from the second communication terminal; a first decryption unit that decrypts the second ciphertext using the revocable hierarchical ID-based encryption using its own medium-term secret key, and decrypts the third ciphertext using the key encapsulation mechanism; a first session key generation unit that generates a session key using a decryption result by the first decryption unit, and the second communication terminal is configured to transmit data from the first communication terminal to the first communication terminal. When at least the ciphertext and the public key are received, the time information acquired from the time server, the identifier of the first communication terminal, and the public key generated by the root key generation center of the first key generation center group are transmitted. a second encryption unit that generates the second ciphertext using the revocable hierarchical ID-based encryption using a parameter; and a second encryption unit that generates the third ciphertext from the public key using the key encapsulation mechanism. a third encryption unit that transmits at least the second ciphertext and the third ciphertext to the first communication terminal; a second decryption unit that decrypts the first ciphertext using the revocable hierarchical ID-based encryption; and a second session key generation unit that generates the session key using the decryption result of the second decryption unit. and has.

階層型IDベース認証付鍵交換により鍵交換を行う際に異なる階層構造配下のユーザ同士の鍵交換を実現すると共に、ID失効を実現することができる。 When performing key exchange using hierarchical ID-based key exchange with authentication, it is possible to realize key exchange between users under different hierarchical structures, and also to realize ID revocation.

本実施形態に係る鍵交換システムの全体構成の一例を示す図である。FIG. 1 is a diagram showing an example of the overall configuration of a key exchange system according to the present embodiment. コンピュータのハードウェア構成の一例を示す図である。1 is a diagram showing an example of a hardware configuration of a computer. 本実施形態に係るルートKGCの機能構成の一例を示す図である。FIG. 3 is a diagram illustrating an example of the functional configuration of a root KGC according to the present embodiment. 本実施形態に係る中間KGCの機能構成の一例を示す図である。It is a figure showing an example of the functional composition of intermediate KGC concerning this embodiment. 本実施形態に係る子KGCの機能構成の一例を示す図である。FIG. 3 is a diagram illustrating an example of the functional configuration of a child KGC according to the present embodiment. 本実施形態に係る通信端末の機能構成の一例を示す図である。FIG. 2 is a diagram showing an example of a functional configuration of a communication terminal according to the present embodiment. 本実施形態に係る鍵交換処理の流れの一例を示すシーケンス図である。FIG. 2 is a sequence diagram showing an example of the flow of key exchange processing according to the present embodiment.

以下、本発明の一実施形態について説明する。本実施形態では、階層型IDベース認証付鍵交換により鍵交換を行う際に異なる階層構造配下のユーザ同士の鍵交換を実現すると共に、ID失効を実現することができる鍵交換システムについて説明する。 An embodiment of the present invention will be described below. In this embodiment, a key exchange system that can realize key exchange between users under different hierarchical structures and also realize ID revocation when performing key exchange using hierarchical ID-based key exchange with authentication will be described.

<準備>
まず、本実施形態で用いる各種アルゴリズム等を準備する。
<Preparation>
First, various algorithms and the like used in this embodiment are prepared.

≪鍵カプセル化メカニズム≫
鍵カプセル化メカニズム(KEM:Key Encapsulation Mechanism)は以下の3つのアルゴリズム(KeyGen,EnCap,DeCap)で構成される。
≪Key encapsulation mechanism≫
The Key Encapsulation Mechanism (KEM) is composed of the following three algorithms (KeyGen, EnCap, and DeCap).

(ek,dk)←KeyGen(1κ):セキュリティパラメータ1κを入力とし、公開鍵と秘密鍵のペア(ek,dk)を生成する。 (ek, dk)←KeyGen(1 κ ): Inputs security parameter 1 κ and generates a public key/private key pair (ek, dk).

(K,C)←EnCap(ek):公開鍵ekを入力とし、鍵と暗号文のペア(K,C)を生成する。 (K, C)←EnCap(ek): Takes the public key ek as input and generates a key-ciphertext pair (K, C).

K'←DeCap(dk,C):秘密鍵dkと暗号文Cを入力とし、鍵K'を出力する。 K'←DeCap (dk, C): Inputs secret key dk and ciphertext C, and outputs key K'.

更に、任意の(ek,dk)←KeyGen(1κ),(K,C)←EnCap(ek)に対して、K=DeCap(dk,C)を満たすものとする。 Furthermore, it is assumed that K=DeCap(dk, C) is satisfied for any (ek, dk)←KeyGen(1 κ ), (K, C)←EnCap(ek).

上記のKEMの例としては、RSA-OAEPやElGamal暗号等が挙げられる。 Examples of the above KEM include RSA-OAEP and ElGamal encryption.

≪失効可能階層型IDベース暗号≫
失効可能階層型IDベース暗号(RHIBE:revocable hierarchical identity-based encryption)は以下の7つのアルゴリズム(Setup,SKGen,KeyUP,DKGen,Enc,Dec,Revoke)で構成される。
≪Revocable hierarchical ID-based encryption≫
Revocable hierarchical identity-based encryption (RHIBE) is composed of the following seven algorithms (Setup, SKGen, KeyUP, DKGen, Enc, Dec, Revoke).

(mpk,msk,RL)←Setup(1κ,N,l):セキュリティパラメータ1κと各レベルにおける最大ID数Nと最大の階層の深さl(lは小文字のL)とを入力とし、公開パラメータmpkとマスター秘密鍵mskと失効リストRLとを生成する。ここで、レベルとは階層構造における各階層を表すインデックスのことであり、0以上l(lは小文字のL)以下の整数である。例えば、各階層のレベルは、ルートKGCが存在する階層をレベル0として深くなる順に1,・・・,lとなる。なお、1以上l-1(lは小文字のL)未満のレベルの階層には中間KGCが存在し、レベルl-1(lは小文字のL)の階層には子KGCが存在する。また、レベルl(lは小文字のL)の階層には、子KGCから鍵発行を受けるユーザ(の通信端末)が存在する。そして、ルートKGC及び中間KGCは1つ大きいレベルの階層にある1以上のKGCを子として持ち、また子KGCは1以上のユーザを子として持ち、グラフ構造における親子関係を形成している。 (mpk, msk, RL) ←Setup (1 κ , N, l): Input the security parameter 1 κ , the maximum number of IDs N at each level, and the maximum hierarchy depth l (l is a lowercase letter L), A public parameter mpk, master secret key msk, and revocation list RL are generated. Here, a level is an index representing each layer in a hierarchical structure, and is an integer from 0 to l (l is a lowercase letter L) and less. For example, the levels of each hierarchy are 1, . . . , l in descending order, with the layer where the root KGC exists being level 0. Note that an intermediate KGC exists in a hierarchy of level 1 or more and less than l-1 (l is a lowercase letter L), and a child KGC exists in a hierarchy of level l-1 (l is a lowercase letter L). Further, in the hierarchy of level l (l is a lowercase letter L), there is a user (communication terminal) who receives a key issue from a child KGC. The root KGC and the intermediate KGC have one or more KGCs at the next higher level as children, and the child KGCs have one or more users as children, forming a parent-child relationship in a graph structure.

なお、公開パラメータmpkはSKGen,KeyUP,DKGen,Enc,Dec及びRevokeの入力になるが、自明であるため記載を省略することがある。 Note that the public parameter mpk is input to SKGen, KeyUP, DKGen, Enc, Dec, and Revoke, but since it is self-explanatory, the description may be omitted.

Figure 0007444378000001
:公開パラメータmpkと秘密鍵
Figure 0007444378000001
:Public parameter mpk and private key

Figure 0007444378000002
とレベルkの識別子IDとを入力とし、IDの秘密鍵
Figure 0007444378000002
and an identifier ID k of level k as input, and the secret key of ID k is

Figure 0007444378000003
と更新された秘密鍵
Figure 0007444378000003
and the updated private key

Figure 0007444378000004
とを生成する。
Figure 0007444378000004
and generate.

なお、以降では、上記の数2~数4のように或る文字の添え字に更に添え字が付与されている場合、明細書のテキスト中では、2番目の添え字は下付きにせずに、その前に下線記号「_」を付与して表現するものとする。例えば、上記の数2に示す秘密鍵はskID_k-1と表し、上記の数3に示す秘密鍵はskID_kと表すものとする。 In addition, from now on, when a subscript is added to the subscript of a certain character as in numbers 2 to 4 above, the second subscript will not be subscripted in the text of the specification. , shall be expressed by adding an underscore symbol "_" in front of it. For example, the private key shown in Equation 2 above is expressed as sk ID_k-1 , and the secret key shown in Equation 3 above is expressed as sk ID_k .

(kuID_k,T,sk'ID_k)←KeyUP(mpk,skID_k,kuID_k-1,RLID_k,T):公開パラメータmpkと秘密鍵skID_k(ただし、k=0のときはマスター秘密鍵msk)と更新鍵kuID_k-1(ただし、k=0のときは何も入力しない)と失効リストRLID_kと更新期間Tとを入力とし、更新鍵kuID_k,Tと更新された秘密鍵sk'ID_kとを生成する。 (ku ID_k, T , sk' ID_k )←KeyUP(mpk, sk ID_k , ku ID_k-1 , RL ID_k , T): Public parameter mpk and private key sk ID_k (However, when k=0, master private key msk ), update key ku ID_k-1 (however, nothing is input when k=0), revocation list RL ID_k , and update period T, and update key ku ID_k,T and updated private key sk' ID_k is generated.

dkID_k,T←DKGen(mpk,skID_k,kuID_k-1,T):公開パラメータmpkと秘密鍵skID_kと親が生成した更新鍵kuID_k-1,Tとを入力とし、復号鍵dkID_k,Tを生成する。 dk ID_k,T ←DKGen (mpk, sk ID_k , ku ID_k-1, T ): Inputs the public parameter mpk, private key sk ID_k , and update key ku ID_k-1, T generated by the parent, and decrypts the decryption key dk ID_k. , T.

C←Enc(mpk,ID,m,T):公開パラメータmpkと識別子IDと平文mと更新期間Tとを入力とし、暗号文Cを生成する。 C←Enc(mpk, ID, m, T): Generates ciphertext C by inputting public parameter mpk, identifier ID, plaintext m, and update period T.

m'←Dec(mpk,dkID_k,T,C):公開パラメータmpkと復号鍵dkID_k,Tと暗号文Cとを入力とし、平文m'を生成する。 m'←Dec(mpk, dk ID_k, T , C): Inputs public parameter mpk, decryption key dk ID_k, T , and ciphertext C, and generates plaintext m'.

RL'ID_k-1←Revoke(ID,T,RLID_k-1):識別子IDと更新期間Tと失効リストRLID_k-1とを入力とし、失効リストRLID_k-1に(ID,T)を追加した失効リストRL'ID_k-1を生成する。なお、これは、親が子のIDを失効できることを意味する。 RL' ID_k-1 ←Revoke (ID k , T, RL ID_k-1 ): Inputs the identifier ID k , update period T, and revocation list RL ID_k-1 , and revoke (ID k , T ) is added to generate a revocation list RL' ID_k-1 . Note that this means that the parent can revoke the child's ID.

更に、任意の(mpk,msk,RL)←Setup(1κ,N,l)と、任意の平文mと、任意の識別子IDと、任意の更新期間Tとに対して、IDがTで失効していなければm=Dec(dkID_k,T,Enc(ID,m,T))を満たすものとする。 Furthermore, for any (mpk, msk, RL)←Setup(1 κ , N, l), any plaintext m, any identifier ID k , and any update period T, ID k is T. If it has not expired, it is assumed that m=Dec(dk ID_k, T , Enc(ID k , m, T)).

上記のRHIBEの例としては、以下の参考文献1や2で提案されている方式等が挙げられる。 Examples of the above RHIBE include the methods proposed in References 1 and 2 below.

参考文献1:Seo, Jae Hong, and Keita Emura. "Revocable hierarchical identity-based encryption: history-free update, security against insiders, and short ciphertexts." Cryptographers Track at the RSA Conference. Springer, Cham, 2015.
参考文献2:Lee, Kwangsu, and Seunghwan Park. "Revocable hierarchical identity-based
encryption with shorter private keys and update keys." Designs, Codes and Cryptography 86.10 (2018): 2407-2440.
ここで、本実施形態では、失効可能階層型IDベース暗号の平文空間と鍵カプセル化メカニズムのEnCapで生成される鍵の空間は同じものであるとする。以降では、この空間をKSと表記する。
Reference 1: Seo, Jae Hong, and Keita Emura. "Revocable hierarchical identity-based encryption: history-free update, security against insiders, and short ciphertexts." Cryptographers Track at the RSA Conference. Springer, Cham, 2015.
Reference 2: Lee, Kwangsu, and Seunghwan Park. “Revocable hierarchical identity-based
"encryption with shorter private keys and update keys." Designs, Codes and Cryptography 86.10 (2018): 2407-2440.
In this embodiment, it is assumed that the plaintext space of the revocable hierarchical ID-based encryption and the key space generated by the key encapsulation mechanism EnCap are the same. Hereinafter, this space will be referred to as KS 1 .

<全体構成>
次に、本実施形態に係る鍵交換システムについて説明する。本実施形態に係る鍵交換システムは、インターネット等の通信ネットワークを介して相互に接続されるエンティティで構成される。エンティティには、KGC(ルートKGC、中間KGC、子KGC)と、通信端末と、タイムサーバとが存在する。ここで、タイムサーバとは、各KGC及び各通信端末に対して更新期間Tを配信するサーバである。
<Overall configuration>
Next, a key exchange system according to this embodiment will be explained. The key exchange system according to this embodiment is composed of entities that are interconnected via a communication network such as the Internet. The entity includes a KGC (root KGC, intermediate KGC, child KGC), a communication terminal, and a time server. Here, the time server is a server that distributes the update period T to each KGC and each communication terminal.

本実施形態では、一例として、図1に示す鍵交換システム10を想定する。図1に示す鍵交換システム10には階層構造1と階層構造2とが存在し、階層構造1はルートKGC1000、中間KGC2000~2001等、子KGC3000~3001等、通信端末4000等で構成されており、階層構造2はルートKGC1100、中間KGC2100~2101等、子KGC3100~3101等、通信端末4100等で構成されている。 In this embodiment, the key exchange system 10 shown in FIG. 1 is assumed as an example. The key exchange system 10 shown in FIG. 1 has a hierarchical structure 1 and a hierarchical structure 2, and the hierarchical structure 1 is composed of a root KGC 1000, intermediate KGCs 2000 to 2001, etc., child KGCs 3000 to 3001, etc., and a communication terminal 4000. , the hierarchical structure 2 is composed of a root KGC 1100, intermediate KGCs 2100 to 2101, child KGCs 3100 to 3101, and a communication terminal 4100.

図1に示すように、ルートKGC1000の子が中間KGC2000~2001等であり、中間KGC2000の子が子KGC3000~3001等である。また、子KGC3000の子が通信端末4000である。同様に、ルートKGC1100の子が中間KGC2100~2101等であり、中間KGC2100の子が子KGC3100~3101等である。また、子KGC3100の子が通信端末4100である。 As shown in FIG. 1, children of the root KGC 1000 are intermediate KGCs 2000 to 2001, etc., and children of the intermediate KGC 2000 are child KGCs 3000 to 3001, etc. Furthermore, a child of the child KGC 3000 is a communication terminal 4000. Similarly, children of the root KGC 1100 are intermediate KGCs 2100 to 2101, etc., and children of the intermediate KGC 2100 are child KGCs 3100 to 3101, etc. Further, a child of the child KGC 3100 is a communication terminal 4100.

なお、図1に示す例では、階層構造1及び2はいずれも4階層(つまり、l=4)であるが、これは一例であって、任意の階層数であってもよい。また、図1に示す例では、階層構造が2つであるが、任意の個数の階層構造が存在してもよい。 In the example shown in FIG. 1, the hierarchical structures 1 and 2 both have four layers (that is, l=4), but this is just an example, and any number of layers may be used. Further, in the example shown in FIG. 1, there are two hierarchical structures, but any number of hierarchical structures may exist.

タイムサーバ5000は自身以外の他のすべてのエンティティ(各KGC及び各通信端末)と通信可能に接続され、これら他のすべてのエンティティに対して更新期間Tを定期的に配信する。言い換えれば、タイムサーバ5000以外の各エンティティは、定期的にタイムサーバ5000から配信される更新期間Tを受信する。この更新期間Tは、失効可能階層型IDベース暗号の鍵交換や暗号化に使用される情報である。 The time server 5000 is communicably connected to all other entities (each KGC and each communication terminal) other than itself, and regularly distributes the update period T to all these other entities. In other words, each entity other than the time server 5000 receives the update period T periodically distributed from the time server 5000. This update period T is information used for key exchange and encryption of revocable hierarchical ID-based encryption.

なお、図1に示す例では、タイムサーバ5000は1つとしているが、これは一例であって、互いに時刻同期されていれば複数のタイムサーバ5000が存在してもよい。 Note that in the example shown in FIG. 1, there is one time server 5000, but this is just an example, and a plurality of time servers 5000 may exist as long as they are time synchronized with each other.

ここで、中間KGCや子KGC、その配下の通信端末には階層に応じた識別子IDが割り振られているものとする。なお、上記の準備ではレベルkの階層に存在するエンティティの識別子IDとしたが、以下では、レベルkの階層に存在するエンティティの符号を用いて、符号kXXXのエンティティの識別子をIDkXXXと表すものとする。 Here, it is assumed that the intermediate KGC, the child KGC, and the communication terminals under them are assigned identifier IDs according to the hierarchy. In addition, in the above preparation, the identifier of the entity existing in the hierarchy of level k was set as ID k , but below, using the code of the entity existing in the hierarchy of level k, the identifier of the entity with code kXXX will be expressed as ID kXXX . shall be taken as a thing.

具体的には、例えば、中間KGC2000にはID2000=ID1,2000が割り振られており、子KGC3000にはID3000=(ID1,2000,ID1,3000)が割り振られており、通信端末4000にはID4000=(ID1,2000,ID1,3000,ID1,4000)が割り振られているものとする。同様に、例えば、中間KGC2001にはID2001=ID1,2001が割り振られている。また、同様に、例えば、中間KGC2100にはID2100=ID2,2100が割り振られており、子KGC3100にはID3100=(ID2,2100,ID2,3100)が割り振られており、通信端末4100にはID4100=(ID2,2100,ID2,3100,ID2,4100)が割り振られているものとする。 Specifically, for example, the intermediate KGC 2000 is assigned ID 2000 = ID 1,2000 , the child KGC 3000 is assigned ID 3000 = (ID 1,2000 , ID 1,3000 ), and the communication terminal It is assumed that ID 4000 = (ID 1,2000 , ID 1,3000 , ID 1,4000 ) is assigned to ID 4000. Similarly, for example, the intermediate KGC 2001 is assigned ID 2001 = ID 1,2001 . Similarly, for example, the intermediate KGC 2100 is assigned ID 2100 = ID 2,2100 , the child KGC 3100 is assigned ID 3100 = (ID 2,2100 , ID 2,3100 ), and the communication terminal 4100 is assigned ID 4100 = (ID 2,2100 , ID 2,3100 , ID 2,4100 ).

また、以下の関数・値はシステム共通のパラメータとして、各エンティティが保持しているものとする。 In addition, the following functions and values are assumed to be held by each entity as system-common parameters.

・疑似ランダム関数F:KS×{0,1}→{0,1}κ
・鍵導出関数KDF:Salt×KS→KS
・鍵導出関数のソルトs∈Salt
ここで、KSは疑似ランダム関数の鍵空間である。疑似ランダム関数の例としては、HMAC等が挙げられる。また、鍵導出関数の例としては、HKDF等が挙げられる。なお、セキュリティパラメータκは安全性強度を表すものであり、例えば、κ=128やκ=256等とすることが考えられる。
・Pseudo-random function F: KS 2 ×{0,1} * →{0,1} κ
・Key derivation function KDF: Salt×KS 1 → KS 2
・Salt of key derivation function s∈Salt
Here, KS 2 is the key space of the pseudorandom function. Examples of pseudorandom functions include HMAC and the like. Furthermore, examples of key derivation functions include HKDF and the like. Note that the security parameter κ represents security strength, and may be set to κ=128, κ=256, etc., for example.

<ハードウェア構成>
次に、各エンティティのハードウェア構成について説明する。各エンティティは、例えば、図2に示すコンピュータ900は、入力装置901と、表示装置902と、外部I/F903と、通信I/F904と、プロセッサ905と、メモリ装置906とを有する。これら各ハードウェアは、それぞれがバス907を介して通信可能に接続される。
<Hardware configuration>
Next, the hardware configuration of each entity will be explained. Each entity, for example, the computer 900 shown in FIG. 2, includes an input device 901, a display device 902, an external I/F 903, a communication I/F 904, a processor 905, and a memory device 906. Each of these pieces of hardware is communicably connected via a bus 907.

入力装置901は、例えば、キーボードやマウス、タッチパネル等である。表示装置902は、例えば、ディスプレイ等である。なお、コンピュータ900は、入力装置901及び表示装置902のうちの少なくても一方を有していなくてもよい。 The input device 901 is, for example, a keyboard, a mouse, a touch panel, or the like. The display device 902 is, for example, a display. Note that the computer 900 does not need to have at least one of the input device 901 and the display device 902.

外部I/F903は、記録媒体903a等の外部装置とのインタフェースである。なお、記録媒体903aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。 The external I/F 903 is an interface with an external device such as a recording medium 903a. Note that examples of the recording medium 903a include a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), and a USB (Universal Serial Bus) memory card.

通信I/F904は、インターネット等の通信ネットワークに接続するためのインタフェースである。プロセッサ905は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等の各種演算装置である。メモリ装置906は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等の各種記憶装置である。 Communication I/F 904 is an interface for connecting to a communication network such as the Internet. The processor 905 is, for example, various arithmetic devices such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). The memory device 906 is, for example, various storage devices such as a HDD (Hard Disk Drive), an SSD (Solid State Drive), a RAM (Random Access Memory), a ROM (Read Only Memory), and a flash memory.

本実施形態に係る鍵交換システム10に含まれる各エンティティは、図2に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図2に示すハードウェア構成は一例であって、各エンティティのハードウェア構成は、これに限定されるものではない。 Each entity included in the key exchange system 10 according to the present embodiment has the hardware configuration shown in FIG. 2, thereby being able to implement various processes described below. Note that the hardware configuration shown in FIG. 2 is an example, and the hardware configuration of each entity is not limited to this.

<機能構成>
次に、本実施形態に係る鍵交換システム10に含まれる各エンティティの機能構成について説明する。
<Functional configuration>
Next, the functional configuration of each entity included in the key exchange system 10 according to this embodiment will be explained.

≪ルートKGC≫
図3に示すように、ルートKGC1000及び1100は、セットアップ処理部101と、長期秘密鍵生成部102と、更新鍵生成部103と、失効リスト更新部104とを有する。これら各部は、例えば、ルートKGCにインストールされたプログラムがプロセッサに実行させる処理により実現される。
≪Route KGC≫
As shown in FIG. 3, the root KGCs 1000 and 1100 include a setup processing section 101, a long-term secret key generation section 102, an update key generation section 103, and a revocation list update section 104. Each of these units is realized, for example, by a process that a program installed in the root KGC causes a processor to execute.

また、ルートKGC1000及び1100は、記憶部105を有する。記憶部105は、例えば、メモリ装置等により実現される。 Furthermore, the root KGCs 1000 and 1100 have a storage unit 105. The storage unit 105 is realized by, for example, a memory device or the like.

セットアップ処理部101は、Setupアルゴリズムを実行して公開パラメータとマスター秘密鍵と失効リストとを生成する。これらの公開パラメータ、マスター秘密鍵及び失効リストは記憶部105に保存される。また、公開パラメータは、配下の中間KGCや子KGC、通信端末に配布される。 The setup processing unit 101 executes the Setup algorithm to generate public parameters, a master private key, and a revocation list. These public parameters, master private key, and revocation list are stored in the storage unit 105. Further, the public parameters are distributed to subordinate intermediate KGCs, child KGCs, and communication terminals.

長期秘密鍵生成部102は、SKGenアルゴリズムを実行して、子の秘密鍵と更新されたマスター秘密鍵とを生成する。子の秘密鍵は、該当の子に対して送信される。なお、この秘密鍵は長期秘密鍵とも呼ばれる。 The long-term private key generation unit 102 executes the SKGen algorithm to generate a child private key and an updated master private key. The child's private key is sent to the child. Note that this private key is also called a long-term private key.

更新鍵生成部103は、KeyUPアルゴリズムを実行して、更新鍵と更新されたマスター秘密鍵とを生成する。この更新鍵は子のKGCに配信される。 The update key generation unit 103 executes the KeyUP algorithm to generate an update key and an updated master private key. This update key is distributed to the child KGC.

失効リスト更新部104は、Revokeアルゴリズムを実行して失効リストを更新する。 The revocation list update unit 104 executes the Revoke algorithm to update the revocation list.

記憶部105は、各種情報(例えば、公開パラメータ、マスター秘密鍵、失効リスト等)を記憶する。 The storage unit 105 stores various information (eg, public parameters, master private key, revocation list, etc.).

≪中間KGC≫
図4に示すように、中間KGC2000~2001及び2100~2101は、最新秘密鍵生成部201と、長期秘密鍵生成部202と、更新鍵生成部203と、失効リスト更新部204とを有する。これら各部は、例えば、中間KGCにインストールされたプログラムがプロセッサに実行させる処理により実現される。
≪Intermediate KGC≫
As shown in FIG. 4, the intermediate KGCs 2000 to 2001 and 2100 to 2101 include a latest secret key generation section 201, a long-term secret key generation section 202, an update key generation section 203, and a revocation list update section 204. Each of these units is realized, for example, by a process that a program installed in the intermediate KGC causes a processor to execute.

また、中間KGC2000~2001及び2100~2101は、記憶部205を有する。記憶部205は、例えば、メモリ装置等により実現される。 Further, the intermediate KGCs 2000 to 2001 and 2100 to 2101 have a storage unit 205. The storage unit 205 is realized by, for example, a memory device.

最新秘密鍵生成部201は、親のKGCから更新鍵が配信された場合、DKGenアルゴリズムを実行して自身の復号鍵を更新する。なお、復号鍵は秘密鍵の一種であり、更新期間Tの配信に応じて定期的に更新されるため、最新秘密鍵や中期秘密鍵等とも呼ばれるが、以下では、最新秘密鍵という。 When the latest private key generation unit 201 receives an update key from the parent KGC, it executes the DKGen algorithm to update its own decryption key. Note that the decryption key is a type of secret key, and is updated periodically according to the distribution of the update period T, so it is also called the latest secret key, medium-term secret key, etc.; hereinafter, it will be referred to as the latest secret key.

長期秘密鍵生成部202は、SKGenアルゴリズムを実行して、子の長期秘密鍵と更新された自身の長期秘密鍵とを生成する。 The long-term secret key generation unit 202 executes the SKGen algorithm to generate a child's long-term secret key and its own updated long-term secret key.

更新鍵生成部203は、KeyUPアルゴリズムを実行して、更新鍵と更新された自身の長期秘密鍵とを生成する。この更新鍵は子のKGCに配信される。 The update key generation unit 203 executes the KeyUP algorithm to generate an update key and its own updated long-term private key. This update key is distributed to the child KGC.

失効リスト更新部204は、Revokeアルゴリズムを実行して失効リストを更新する。 The revocation list update unit 204 executes the Revoke algorithm to update the revocation list.

記憶部205は、各種情報(例えば、長期秘密鍵や最新秘密鍵(復号鍵)、失効リスト等)を記憶する。 The storage unit 205 stores various information (for example, a long-term secret key, the latest secret key (decryption key), a revocation list, etc.).

≪子KGC≫
図5に示すように、子KGC3000~3001及び3100~3101は、最新秘密鍵生成部301と、長期秘密鍵生成部302と、更新鍵生成部303と、失効リスト更新部304とを有する。これら各部は、例えば、子KGCにインストールされたプログラムがプロセッサに実行させる処理により実現される。
≪Child KGC≫
As shown in FIG. 5, the child KGCs 3000 to 3001 and 3100 to 3101 have a latest secret key generation section 301, a long-term secret key generation section 302, an update key generation section 303, and a revocation list update section 304. Each of these units is realized, for example, by a process that a program installed in the child KGC causes a processor to execute.

また、子KGC3000~3001及び3100~3101は、記憶部305を有する。記憶部305は、例えば、メモリ装置等により実現される。 Furthermore, the child KGCs 3000 to 3001 and 3100 to 3101 have a storage unit 305. The storage unit 305 is realized by, for example, a memory device.

最新秘密鍵生成部301は、親のKGCから更新鍵が配信された場合、DKGenアルゴリズムを実行して自身の最新秘密鍵を更新する。 When the update key is distributed from the parent KGC, the latest private key generation unit 301 executes the DKGen algorithm to update its own latest private key.

長期秘密鍵生成部302は、SKGenアルゴリズムを実行して、子の長期秘密鍵と更新された自身の長期秘密鍵とを生成する。 The long-term secret key generation unit 302 executes the SKGen algorithm to generate a child's long-term secret key and its own updated long-term secret key.

更新鍵生成部303は、KeyUPアルゴリズムを実行して、更新鍵と更新された自身の長期秘密鍵とを生成する。この更新鍵は子のKGCに配信される。 The update key generation unit 303 executes the KeyUP algorithm to generate an update key and its own updated long-term private key. This update key is distributed to the child KGC.

失効リスト更新部304は、Revokeアルゴリズムを実行して失効リストを更新する。 The revocation list update unit 304 executes the Revoke algorithm to update the revocation list.

記憶部305は、各種情報(例えば、長期秘密鍵や最新秘密鍵、失効リスト等)を記憶する。 The storage unit 305 stores various information (eg, long-term secret key, latest secret key, revocation list, etc.).

≪通信端末≫
図6に示すように、通信端末4000及び4100は、最新秘密鍵生成部401と、RHIBE暗号化部402と、RHIBE復号部403と、KEM鍵ペア生成部404と、時刻情報取得部405と、カプセル化処理部406と、カプセル化復号部407と、鍵導出部408と、セッション鍵生成部409と、メッセージ受信部410と、メッセージ送信部411とを有する。これら各部は、例えば、通信端末にインストールされたプログラムがプロセッサに実行させる処理により実現される。
≪Communication terminal≫
As shown in FIG. 6, communication terminals 4000 and 4100 include a latest secret key generation section 401, an RHIBE encryption section 402, an RHIBE decryption section 403, a KEM key pair generation section 404, a time information acquisition section 405, It includes an encapsulation processing section 406, an encapsulation decryption section 407, a key derivation section 408, a session key generation section 409, a message reception section 410, and a message transmission section 411. Each of these units is realized, for example, by a process that a program installed in the communication terminal causes a processor to execute.

また、通信端末4000及び4100は、記憶部412を有する。記憶部412は、例えば、メモリ装置等により実現される。 Furthermore, communication terminals 4000 and 4100 have a storage section 412. The storage unit 412 is realized by, for example, a memory device.

最新秘密鍵生成部401は、親のKGC(つまり、子KGC)から更新鍵が配信された場合、DKGenアルゴリズムを実行して自身の最新秘密鍵を更新する。 When the update key is distributed from the parent KGC (that is, child KGC), the latest private key generation unit 401 executes the DKGen algorithm to update its own latest private key.

RHIBE暗号化部402は、Encアルゴリズムを実行して暗号文を生成する。 The RHIBE encryption unit 402 executes the Enc algorithm to generate a ciphertext.

RHIBE復号部403は、Decアルゴリズムを実行して暗号文を復号する。 The RHIBE decryption unit 403 executes the Dec algorithm to decrypt the ciphertext.

KEM鍵ペア生成部404は、KeyGenアルゴリズムを実行してKEMの公開鍵と秘密鍵のペアを生成する。 The KEM key pair generation unit 404 executes the KeyGen algorithm to generate a KEM public key and private key pair.

時刻情報取得部405は、タイムサーバ5000から配信された更新期間Tを取得する。 The time information acquisition unit 405 acquires the update period T distributed from the time server 5000.

カプセル化処理部406は、EnCapアルゴリズムを実行してKEMの鍵と暗号文のペアを生成する。 The encapsulation processing unit 406 executes the EnCap algorithm to generate a KEM key and ciphertext pair.

カプセル化復号部407は、DeCapアルゴリズムを実行してKEMの鍵を得る。 The encapsulation/decryption unit 407 executes the DeCap algorithm to obtain the KEM key.

鍵導出部408は、鍵導出関数KDFにより鍵を生成する。 The key derivation unit 408 generates a key using a key derivation function KDF.

セッション鍵生成部409は、鍵導出部408で生成された鍵を用いて、疑似ランダム関数Fによりセッション鍵を生成する。 The session key generation unit 409 generates a session key using the pseudo-random function F using the key generated by the key derivation unit 408.

メッセージ受信部410は、他の通信端末からのメッセージ(以下、プロトコルメッセージともいう)を受信する。 Message receiving section 410 receives messages (hereinafter also referred to as protocol messages) from other communication terminals.

メッセージ送信部411は、他の通信端末にプロトコルメッセージを送信する。 Message transmitter 411 transmits protocol messages to other communication terminals.

記憶部412は、各種情報(例えば、長期秘密鍵や最新秘密鍵、鍵導出関数KDF、疑似ランダム関数F、ソルトs等)を記憶する。 The storage unit 412 stores various information (eg, long-term secret key, latest secret key, key derivation function KDF, pseudorandom function F, salt s, etc.).

<各種処理の詳細>
以下、本実施形態に係る鍵交換システム10が実行する各種処理の詳細について説明する。
<Details of various processing>
Hereinafter, details of various processes executed by the key exchange system 10 according to this embodiment will be explained.

≪セットアップ≫
セットアップは、主に、ルートKGC1000及び1100によってそれぞれ実行されう。以下、一例として、ルートKGC1000が実行する処理について説明する。なお、ルートKGC1100も、ルートKGC1000と同様の処理を実行する。
≪Setup≫
Setup is primarily performed by root KGCs 1000 and 1100, respectively. Hereinafter, as an example, processing executed by the root KGC 1000 will be described. Note that the root KGC 1100 also executes the same processing as the root KGC 1000.

まず、ルートKGC1000のセットアップ処理部101は、(mpk,msk,RL)←Setup(1κ,N,l)を実行する。なお、公開パラメータmpk、マスター秘密鍵msk及び失効リストRLは記憶部105に保存される。 First, the setup processing unit 101 of the root KGC 1000 executes (mpk, msk, RL)←Setup (1 κ , N, l). Note that the public parameter mpk, master secret key msk, and revocation list RL are stored in the storage unit 105.

次に、ルートKGC1000のセットアップ処理部101は、自身の配下の中間KGC2000及び2001や子KGC3000及び3001、通信端末4000等に公開パラメータmpkを配布する。また、ルートKGC1000のセットアップ処理部101は、別途信頼関係(例えば、PKIによる相互認証)を構築したルートKGC(例えば、ルートKGC1100等)にも公開パラメータmpkを配布する。 Next, the setup processing unit 101 of the root KGC 1000 distributes the public parameter mpk to the intermediate KGCs 2000 and 2001, the child KGCs 3000 and 3001, the communication terminal 4000, etc. under the root KGC 1000. The setup processing unit 101 of the root KGC 1000 also distributes the public parameter mpk to the root KGC (for example, the root KGC 1100, etc.) with which a trust relationship (for example, mutual authentication using PKI) has been established separately.

また、ルートKGC1000のセットアップ処理部101は、他のルートKGC(例えば、ルートKGC1100等)から公開パラメータが配布された場合には、自身の配下の中間KGC2000及び2001や子KGC3000及び3001、通信端末4000等にその公開パラメータを配布する。 Furthermore, when public parameters are distributed from another root KGC (for example, root KGC 1100, etc.), the setup processing unit 101 of the root KGC 1000 sends information to the intermediate KGCs 2000 and 2001 under itself, the child KGCs 3000 and 3001, and the communication terminal 4000. Distribute the public parameters to other users.

更に、ルートKGC以外のKGC(中間KGC及び子KGC)も、失効リストRLを生成して保存しておく。なお、この時点では空の失効リストRLを生成すればよい。 Furthermore, KGCs other than the root KGC (intermediate KGCs and child KGCs) also generate and store revocation lists RL. Note that at this point, it is sufficient to generate an empty revocation list RL.

以下、IDを持つKGCが管理する失効リストをRLと書くことにする。また、公開パラメータ及びマスター秘密鍵も、mpkやmsk等と書いて区別することにする。例えば、mpk1000はルートKGC1000が生成した公開パラメータ、mpk1100はルートKGC1100が生成した公開パラメータを表す。 Hereinafter, the revocation list managed by KGC with ID m will be written as RL m . Furthermore, public parameters and master private keys will also be distinguished by writing mpk m , msk m , etc. For example, mpk 1000 represents a public parameter generated by the root KGC 1000, and mpk 1100 represents a public parameter generated by the root KGC 1100.

≪長期秘密鍵生成≫
長期秘密鍵生成は、ルートKGC、中間KGC及び子KGCによってそれぞれ実行される。以下、一例として、ルートKGC1000、中間KGC2000及び子KGC3000が長期秘密鍵を生成する場合を想定し、これらのKGCをまとめて「KGCn000」と表し、n=1の場合はルートKGC1000、n=2の場合は中間KGC2000、n=3の場合は子KGC3000であるものとする。
≪Long-term private key generation≫
Long-term secret key generation is performed by the root KGC, intermediate KGC, and child KGC, respectively. In the following, as an example, assume that the root KGC 1000, intermediate KGC 2000, and child KGC 3000 generate long-term secret keys, and these KGCs are collectively referred to as "KGCn000". In this case, the intermediate KGC is 2000, and in the case of n=3, it is the child KGC 3000.

長期秘密鍵生成では、KGCn000は自身の子(n=1及び2の場合は子に該当するKGC、n=3の場合は子に該当する通信端末)の長期秘密鍵を生成する。KGCn000の識別子をIDn000とし、長期秘密鍵を生成しようとする子の識別子をID(n+1)000とする。 In long-term secret key generation, KGCn000 generates a long-term secret key for its child (the KGC corresponding to the child when n=1 and 2, and the communication terminal corresponding to the child when n=3). Let the identifier of KGCn000 be ID n000 , and let the identifier of the child for which a long-term secret key is to be generated be ID (n+1)000 .

このとき、KGCn000の長期秘密鍵生成部n02は、(skID_(n+1)000,sk'ID_n000)←SKGen(skID_n000,ID(n+1)000)を実行して、長期秘密鍵skID_(n+1)000と更新後の長期秘密鍵sk'ID_n000を生成する。 At this time, the long-term private key generation unit n02 of KGCn000 executes (sk ID_(n+1)000 , sk' ID_n000 )←SKGen(sk ID_n000 , ID (n+1)000 ) to generate the long-term private key sk ID_(n+1) 000 and an updated long-term secret key sk' ID_n000 .

そして、KGCn000の長期秘密鍵生成部n02は、例えばTLSのような安全な通信路を経由して長期秘密鍵skID_(n+1)000を子に送信する。また、KGCn000の長期秘密鍵生成部n02は、自身の長期秘密鍵skID_n000をsk'ID_n000に更新する。 Then, the long-term secret key generation unit n02 of KGCn000 transmits the long-term secret key sk ID_(n+1)000 to the child via a secure communication channel such as TLS. Further, the long-term private key generation unit n02 of KGCn000 updates its own long-term private key sk ID_n000 to sk' ID_n000 .

ただし、上記でn=1の場合は、skID_1000及びsk'ID_1000はそれぞれマスター秘密鍵msk1000及び更新後のマスター秘密鍵msk'1000である。 However, in the above case where n=1, sk ID_1000 and sk' ID_1000 are master private key msk 1000 and updated master private key msk' 1000 , respectively.

≪更新鍵生成≫
更新鍵生成は、システムセットアップ時又はタイムサーバ5000から定期的な更新期間Tが配信されたときに、各KGCによってそれぞれ実行される。以降では、上記の長期秘密鍵生成と同様に、KGCn000は、n=1の場合はルートKGC1000、n=2の場合は中間KGC2000、n=3の場合は子KGC3000であるものとする。
≪Update key generation≫
The update key generation is executed by each KGC at the time of system setup or when the regular update period T is distributed from the time server 5000. Hereinafter, similarly to the above long-term secret key generation, KGCn000 is assumed to be the root KGC1000 when n=1, the intermediate KGC2000 when n=2, and the child KGC3000 when n=3.

KGCn000の更新鍵生成部n03は、(kuID_n000,T,sk'ID_n000)←KeyUP(skID_n000,kuID_(n-1)000,RLID_n000,T)を実行して、更新鍵kuID_n000,Tと更新された長期秘密鍵sk'ID_n000とを生成する。ここで、n=2,3の場合、kuID_(n-1)000は、KGCn000の親であるKGCから配信された更新鍵である。 The update key generation unit n03 of KGCn000 executes (ku ID_n000, T , sk' ID_n000 )←KeyUP(sk ID_n000 , ku ID_(n-1)000 , RL ID_n000 , T) to generate the update key ku ID_n000, T. and an updated long-term secret key sk' ID_n000 . Here, when n=2, 3, ku ID_(n-1)000 is an update key distributed from KGC, which is the parent of KGCn000.

そして、KGCn000の更新鍵生成部n03は、自身の長期秘密鍵をsk'ID_n000に更新すると共に、更新鍵kuID_n000,Tを配信する。なお、この更新鍵kuID_n000,Tは自身の子に対してのみに配信するのではなく、例えば、他のエンティティが見れるような公開情報としてもよい。 Then, the update key generation unit n03 of KGCn000 updates its own long-term secret key to sk' ID_n000 and distributes the update key ku ID_n000,T . Note that this update key ku ID_n000,T is not distributed only to its own children, but may be made public information that can be viewed by other entities, for example.

ただし、上記でn=1の場合は、KeyUPアルゴリズムには更新鍵は入力されない。また、n=1の場合は、長期秘密鍵はマスター秘密鍵である。 However, if n=1 in the above, no update key is input to the KeyUP algorithm. Further, when n=1, the long-term secret key is the master secret key.

≪最新秘密鍵生成≫
最新秘密鍵生成は、親のKGCから更新鍵が配信されたときに、各KGC及び各通信端末によってそれぞれ実行される。以下、一例として、中間KGC2000、子KGC3000及び通信端末4000が最新秘密鍵を生成する場合を想定し、これらをまとめて「機器n000」と表し、n=2の場合は中間KGC2000、n=3の場合は子KGC3000、n=4の場合は通信端末4000であるものとする。
≪Latest private key generation≫
The latest secret key generation is executed by each KGC and each communication terminal when an update key is distributed from the parent KGC. In the following, as an example, it is assumed that the intermediate KGC 2000, the child KGC 3000, and the communication terminal 4000 generate the latest private key, and these are collectively referred to as "device n000". In this case, it is assumed that the child KGC is 3000, and when n=4, it is assumed that it is the communication terminal 4000.

機器n0000の最新秘密鍵生成部n01は、dkID_n000,T←DKGen(skID_n000,kuID_(n-1)000,T)を実行して、最新秘密鍵dkID_n000,Tを生成する。そして、機器n0000の最新秘密鍵生成部n01は、自身の最新秘密鍵をdkID_n000,Tに更新する。 The latest private key generation unit n01 of the device n0000 executes dk ID_n000,T ←DKGen(sk ID_n000 , ku ID_(n-1)000,T ) to generate the latest private key dk ID_n000,T . Then, the latest private key generation unit n01 of the device n0000 updates its own latest private key to dk ID_n000,T .

≪失効リストの更新≫
失効リストの更新は、子のエンティティのIDを失効する場合にKGCによって実行される。以降では、上記の長期秘密鍵生成と同様に、KGCn000は、n=1の場合はルートKGC1000、n=2の場合は中間KGC2000、n=3の場合は子KGC3000であるものとする。
≪Revocation list update≫
Revocation list updates are performed by the KGC when revoking child entity IDs. Hereinafter, similarly to the above long-term secret key generation, KGCn000 is assumed to be the root KGC1000 when n=1, the intermediate KGC2000 when n=2, and the child KGC3000 when n=3.

KGCn000が自身の子のエンティティのIDの1つであるID(n+1)000を失効しようとする場合について説明する。また、タイムサーバ5000から配信された最新の更新期間はTであるものとする。 A case will be described in which KGCn000 attempts to revoke ID (n+1)000, which is one of the IDs of its child entities. Further, it is assumed that the latest update period distributed from the time server 5000 is T.

このとき、KGCn000の失効リスト更新部n04は、RL'ID_n←Revoke(ID(n+1)000,T,RLID_n000)を実行して、失効リストRLID_n000に(ID(n+1)000,T)を追加する。追加後の失効リストがRL'ID_nである。この失効リストを用いて生成された更新鍵では、当該失効リストに含まれるIDに対して最新秘密鍵を生成することができない。これにより、IDの失効が可能となる。 At this time, the revocation list update unit n04 of KGCn000 executes RL' ID_n ←Revoke (ID (n+1)000 , T, RL ID_n000 ) and adds (ID (n+1)000 , T) to the revocation list RL ID_n000 . do. The revocation list after addition is RL' ID_n . With the update key generated using this revocation list, it is not possible to generate the latest secret key for the ID included in the revocation list. This allows the ID to be revoked.

≪鍵交換≫
通信端末4000と通信端末4100の間(つまり、異なる階層構造にある通信端末間)で鍵交換を行う場合について、図7を参照しながら説明する。なお、この時点で通信端末4000の時刻情報取得部405と通信端末4100の時刻情報取得部405とによって取得された最新の更新期間はTであるものとする。また、通信端末4000と通信端末4100は互いに相手のIDを事前に得ているものとする。更に、通信端末4000はルートKGC1100が生成した公開パラメータmpk1100を、通信端末4100はルートKGC1000が生成した公開パラメータmpk1000をそれぞれ事前に取得しているものとする。
≪Key exchange≫
A case in which key exchange is performed between communication terminal 4000 and communication terminal 4100 (that is, between communication terminals in different hierarchical structures) will be described with reference to FIG. 7. Note that it is assumed that the latest update period acquired by time information acquisition section 405 of communication terminal 4000 and time information acquisition section 405 of communication terminal 4100 at this point is T. Further, it is assumed that communication terminal 4000 and communication terminal 4100 have each obtained the other party's ID in advance. Further, it is assumed that the communication terminal 4000 has acquired in advance the public parameter mpk 1100 generated by the root KGC 1100, and the communication terminal 4100 has acquired the public parameter mpk 1000 generated by the root KGC 1000.

ステップS101:通信端末4000のRHIBE暗号化部402は、K∈KSを一様ランダムにとり、C←Enc(mpk1100,ID4100,K,T)を実行して、RHIBEの暗号文Cを生成する。また、通信端末4000のKEM鍵ペア生成部404は、(ek,dk)←KeyGen(1κ)を実行して、KEMの鍵ペア(ek,dk)を生成する。 Step S101: The RHIBE encryption unit 402 of the communication terminal 4000 takes K A ∈KS 1 uniformly at random, executes C A ← Enc (mpk 1100 , ID 4100 , K A , T), and generates the RHIBE ciphertext. Generate CA. Further, the KEM key pair generation unit 404 of the communication terminal 4000 executes (ek T , dk T )←KeyGen(1 κ ) to generate a KEM key pair (ek T , dk T ).

なお、上記のステップS101におけるRIBEの暗号化とKEMの鍵生成では、出力を確率的なものにするために、アルゴリズム内部で生成した乱数を使って出力を生成していることがある。このとき使用した乱数生成器の脆弱性等で内部乱数が漏洩するという脅威があるが、その脅威の対策として、以下の参考文献3で提案されているNAXOSトリック(長期秘密鍵と短期秘密鍵をハッシュした値を乱数の代わりに使用する)や参考文献4で提案されているねじれ疑似ランダム関数トリックを使用してもよい。 Note that in the RIBE encryption and KEM key generation in step S101 above, random numbers generated within the algorithm may be used to generate the output in order to make the output probabilistic. There is a threat that the internal random numbers may be leaked due to the vulnerability of the random number generator used at this time, but as a countermeasure to this threat, the NAXOS trick (using the long-term private key and short-term private key) proposed in Reference 3 below is proposed. (using hashed values instead of random numbers) or the twisted pseudorandom function trick proposed in Reference 4 may also be used.

参考文献3:LaMacchia, Brian, Kristin Lauter, and Anton Mityagin. "Stronger security of authenticated key exchange." International conference on provable security. Springer, Berlin, Heidelberg, 2007.
参考文献4:Fujioka, Atsushi, et al. "Strongly secure authenticated key exchange from factoring, codes, and lattices." Designs, Codes and Cryptography 76.3 (2015): 469-504.
ステップS102:通信端末4000のメッセージ送信部411は、(ID4000,ID4100,T,C,ek)を含むプロトコルメッセージを通信端末4100に送信する。
Reference 3: LaMacchia, Brian, Kristin Lauter, and Anton Mityagin. "Stronger security of authenticated key exchange." International conference on provable security. Springer, Berlin, Heidelberg, 2007.
Reference 4: Fujioka, Atsushi, et al. "Strongly secure authenticated key exchange from factoring, codes, and lattices." Designs, Codes and Cryptography 76.3 (2015): 469-504.
Step S102: The message transmitting unit 411 of the communication terminal 4000 transmits a protocol message including (ID 4000 , ID 4100 , T, C A , ek T ) to the communication terminal 4100 .

ステップS103:通信端末4100のメッセージ受信部410は、(ID4000,ID4100,T,C,ek)を含むプロトコルメッセージを通信端末4000から受信する。すると、通信端末4100のRHIBE暗号化部402は、K∈KSを一様ランダムにとり、C←Enc(mpk1000,ID4000,K,T)を実行して、RHIBEの暗号文Cを生成する。また、通信端末4100のカプセル化処理部406は、(K,C)←EnCap(ek)を実行して、鍵と暗号文のペア(K,C)を生成する。 Step S103: The message receiving unit 410 of the communication terminal 4100 receives a protocol message including (ID 4000 , ID 4100 , T, C A , ek T ) from the communication terminal 4000 . Then, the RHIBE encryption unit 402 of the communication terminal 4100 takes K B ∈KS 1 uniformly at random, executes C B ← Enc (mpk 1000 , ID 4000 , K B , T), and converts the RHIBE ciphertext C Generate B. Furthermore, the encapsulation processing unit 406 of the communication terminal 4100 executes (K T , C T )←EnCap(ek T ) to generate a key-ciphertext pair (K T , C T ).

なお、上記のステップS101と同様に、上記のステップS103でもRHIBEの暗号化とKEMのカプセル化におけるアルゴリズム内部で使用した乱数の漏洩対策として、NAXOSトリックやねじれ疑似ランダム関数トリックを使用してもよい。 Note that, similar to step S101 above, in step S103 above, a NAXOS trick or a twisted pseudo-random function trick may be used as a countermeasure against leakage of the random numbers used inside the algorithm in RHIBE encryption and KEM encapsulation. .

ステップS104:通信端末4100のメッセージ送信部411は、(ID4000,ID4100,T,C,C)を含むプロトコルメッセージを通信端末4000に送信する。 Step S104: The message transmitting unit 411 of the communication terminal 4100 transmits a protocol message including (ID 4000 , ID 4100 , T, CB , C T ) to the communication terminal 4000.

ステップS105-1:通信端末4000のメッセージ受信部410は、(ID4000,ID4100,T,C,C)を含むプロトコルメッセージを通信端末4100から受信する。すると、通信端末4000のRHIBE復号部403は、K←Dec(mpk1000,dkID_4000,T,C)を実行して、暗号文CをKに復号する。また、通信端末4000のカプセル化復号部407は、K←DeCap(dk,C)を実行して、暗号文CをKに復号する。 Step S105-1: The message receiving unit 410 of the communication terminal 4000 receives a protocol message including (ID 4000 , ID 4100 , T, CB , C T ) from the communication terminal 4100. Then, the RHIBE decryption unit 403 of the communication terminal 4000 executes K B ←Dec (mpk 1000 , dk ID_4000, T , C B ) to decrypt the ciphertext C B to K B. Furthermore, the encapsulation decryption unit 407 of the communication terminal 4000 executes K T ←DeCap(dk T , C T ) to decrypt the ciphertext CT to K T.

ステップS106-1:続いて、通信端末4000の鍵導出部408は、K'←KDF(s,K)と、K'←KDF(s,K)と、K'←KDF(s,K)とを計算する。そして、通信端末4000のセッション鍵生成部409は、ST=(ID4000,ID4100,T,C,ek,C,C)を計算し、セッション鍵 Step S106-1: Next, the key deriving unit 408 of the communication terminal 4000 calculates K' A ←KDF (s, K A ), K' B ← KDF (s, K B ), and K' T ← KDF ( s, K T ). Then, the session key generation unit 409 of the communication terminal 4000 calculates ST=(ID 4000 , ID 4100 , T, CA , ek T , CB , C T ), and generates the session key

Figure 0007444378000005
を生成する。
Figure 0007444378000005
generate.

ステップS105-2:通信端末4100のRHIBE復号部403は、K←Dec(mpk1100,dkID_4100,T,C)を実行して、暗号文CをKに復号する。なお、本ステップは、上記のステップS104の直後、すぐに実行を開始してよい。 Step S105-2: The RHIBE decryption unit 403 of the communication terminal 4100 executes K A ←Dec(mpk 1100 , dk ID_4100, T , C A ) to decrypt the ciphertext C A to K A. Note that this step may start to be executed immediately after step S104 described above.

ステップS106-2:続いて、通信端末4100の鍵導出部408は、K'←KDF(s,K)と、K'←KDF(s,K)と、K'←KDF(s,K)とを計算する。そして、通信端末4100のセッション鍵生成部409は、ST=(ID4000,ID4100,T,C,ek,C,C)を計算し、セッション鍵 Step S106-2: Next, the key deriving unit 408 of the communication terminal 4100 calculates K' A ←KDF (s, K A ), K' B ← KDF (s, K B ), and K' T ← KDF ( s, K T ). Then, the session key generation unit 409 of the communication terminal 4100 calculates ST=(ID 4000 , ID 4100 , T, CA , ek T , CB , C T ), and generates the session key

Figure 0007444378000006
を生成する。
Figure 0007444378000006
generate.

これにより、通信端末4000と通信端末4100との間(つまり、異なる階層構造、言い換えれば異なるルートKGCの配下にある通信端末間)で同じセッション鍵SKが共有される。したがって、通信端末4000と通信端末4100は、このセッション鍵SKにより様々なアプリケーション処理の通信をセキュアに行うことが可能となる。 As a result, the same session key SK is shared between communication terminal 4000 and communication terminal 4100 (that is, between communication terminals under different hierarchical structures, in other words, different routes KGC). Therefore, communication terminal 4000 and communication terminal 4100 can securely perform communication for various application processes using session key SK.

以上のように、本実施形態に係る鍵交換システム10では、各階層のエンティティ間で正しく時刻(更新期間T)を共有させるためのタイムサーバ5000を導入すると共に、失効可能階層型IDベース暗号を利用することで、異なる階層構造配下のユーザ(通信端末)同士の鍵交換とID失効とを実現することができる。これにより、本実施形態に係る鍵交換システム10は、PKIベースの鍵交換が満たすスケーラビリティ(階層型及び複数ルートCA)と、証明書失効性と同等のスケーラビリティ及び機能とを有するIDベース暗号鍵交換を実現することができる。本実施形態に係る鍵交換システム10を利用することで、例えば、PKIベースの方式では要求されていた個々のエンドユーザによる証明書管理(証明書作成・発行申請・失効・更新等)も不要となる。 As described above, the key exchange system 10 according to the present embodiment introduces the time server 5000 for correctly sharing time (update period T) between entities in each hierarchy, and uses revocable hierarchical ID-based encryption. By using this, it is possible to realize key exchange and ID revocation between users (communication terminals) under different hierarchical structures. As a result, the key exchange system 10 according to the present embodiment has the scalability (hierarchical and multiple root CAs) that PKI-based key exchange satisfies, and the ID-based cryptographic key exchange that has the same scalability and functionality as certificate revocation. can be realized. By using the key exchange system 10 according to this embodiment, for example, certificate management (certificate creation, issuance application, revocation, renewal, etc.) by individual end users, which is required in PKI-based systems, is no longer necessary. Become.

本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。 The present invention is not limited to the above-described specifically disclosed embodiments, and various modifications and changes, combinations with known techniques, etc. are possible without departing from the scope of the claims.

10:鍵交換システム
101:セットアップ処理部
102:長期秘密鍵生成部
103:更新鍵生成部
104:失効リスト更新部
105:記憶部
201:最新秘密鍵生成部
202:長期秘密鍵生成部
203:更新鍵生成部
204:失効リスト更新部
205:記憶部
301:最新秘密鍵生成部
302:長期秘密鍵生成部
303:更新鍵生成部
304:失効リスト更新部
305:記憶部
401:最新秘密鍵生成部
402:RHIBE暗号化部
403:RHIBE復号部
404:KEM鍵ペア生成部
405:時刻情報取得部
406:カプセル化処理部
407:カプセル化復号部
408:鍵導出部
409:セッション鍵生成部
410:メッセージ受信部
411:メッセージ送信部
412:記憶部
900:コンピュータ
901:入力装置
902:表示装置
903:外部I/F
903a:記録媒体
904:通信I/F
905:プロセッサ
906:メモリ装置
907:バス
1000、1100:ルートKGC
2000、2001、2100、2101:中間KGC
3000、3001、3100、3101:子KGC
4000、4100:通信端末
10: Key exchange system 101: Setup processing unit 102: Long-term secret key generation unit 103: Update key generation unit 104: Revocation list update unit 105: Storage unit 201: Latest secret key generation unit 202: Long-term secret key generation unit 203: Update Key generation unit 204: Revocation list update unit 205: Storage unit 301: Latest private key generation unit 302: Long-term secret key generation unit 303: Update key generation unit 304: Revocation list update unit 305: Storage unit 401: Latest private key generation unit 402: RHIBE encryption unit 403: RHIBE decryption unit 404: KEM key pair generation unit 405: Time information acquisition unit 406: Encapsulation processing unit 407: Encapsulation decryption unit 408: Key derivation unit 409: Session key generation unit 410: Message Receiving unit 411: Message transmitting unit 412: Storage unit 900: Computer 901: Input device 902: Display device 903: External I/F
903a: Recording medium 904: Communication I/F
905: Processor 906: Memory device 907: Bus 1000, 1100: Root KGC
2000, 2001, 2100, 2101: Intermediate KGC
3000, 3001, 3100, 3101: Child KGC
4000, 4100: Communication terminal

Claims (10)

階層構造をそれぞれ形成する第1の鍵生成センタ群及び第2の鍵生成センタ群と、前記第1の鍵生成センタ群の配下にある第1の通信端末と、前記第2の鍵生成センタ群の配下にある第2の通信端末と、時刻情報を配信する時刻サーバとが少なくとも含まれる鍵交換システムであって、
前記第1の通信端末は、
前記時刻サーバから取得した時刻情報と、前記第2の通信端末の識別子と、前記第2の鍵生成センタ群のルート鍵生成センタによって生成された公開パラメータとを用いて、失効可能階層型IDベース暗号により第1の暗号文を生成する第1の暗号化部と、
鍵カプセル化メカニズムにより公開鍵と秘密鍵の鍵ペアを生成する第1の鍵生成部と、
少なくとも前記第1の暗号文と前記公開鍵とを前記第2の通信端末に送信する第1の送信部と、
前記第2の通信端末から第2の暗号文と第3の暗号文とを少なくとも受信すると、自身の中期秘密鍵を用いて前記第2の暗号文を前記失効可能階層型IDベース暗号により復号すると共に、前記第3の暗号文を前記鍵カプセル化メカニズムにより復号する第1の復号部と、
前記第1の復号部による復号結果を用いて、セッション鍵を生成する第1のセッション鍵生成部と、を有し、
前記第2の通信端末は、
前記第1の通信端末から前記第1の暗号文と前記公開鍵とを少なくとも受信すると、前記時刻サーバから取得した時刻情報と、前記第1の通信端末の識別子と、前記第1の鍵生成センタ群のルート鍵生成センタによって生成された公開パラメータとを用いて、前記失効可能階層型IDベース暗号により前記第2の暗号文を生成する第2の暗号化部と、
前記鍵カプセル化メカニズムにより前記公開鍵から前記第3の暗号文を生成する第3の暗号化部と、
少なくとも前記第2の暗号文と前記第3の暗号文とを前記第1の通信端末に送信する第2の送信部と、
自身の中期秘密鍵を用いて前記第1の暗号文を前記失効可能階層型IDベース暗号により復号する第2の復号部と、
前記第2の復号部による復号結果を用いて、前記セッション鍵を生成する第2のセッション鍵生成部と、を有する鍵交換システム。
A first key generation center group and a second key generation center group forming a hierarchical structure, a first communication terminal under the first key generation center group, and the second key generation center group. A key exchange system that includes at least a second communication terminal under a second communication terminal and a time server that distributes time information,
The first communication terminal is
A revocable hierarchical ID base is created using the time information acquired from the time server, the identifier of the second communication terminal, and the public parameter generated by the root key generation center of the second key generation center group. a first encryption unit that generates a first ciphertext by encryption;
a first key generation unit that generates a key pair of a public key and a private key using a key encapsulation mechanism;
a first transmitter that transmits at least the first ciphertext and the public key to the second communication terminal;
Upon receiving at least the second ciphertext and the third ciphertext from the second communication terminal, the second ciphertext is decrypted by the revocable hierarchical ID-based encryption using its own medium-term secret key. and a first decryption unit that decrypts the third ciphertext using the key encapsulation mechanism;
a first session key generation unit that generates a session key using the decryption result by the first decryption unit,
The second communication terminal is
Upon receiving at least the first ciphertext and the public key from the first communication terminal, the first key generation center receives the time information acquired from the time server, the identifier of the first communication terminal, and the first key generation center. a second encryption unit that generates the second ciphertext using the revocable hierarchical ID-based encryption using a public parameter generated by a root key generation center of the group;
a third encryption unit that generates the third ciphertext from the public key using the key encapsulation mechanism;
a second transmitter that transmits at least the second ciphertext and the third ciphertext to the first communication terminal;
a second decryption unit that decrypts the first ciphertext using the revocable hierarchical ID-based encryption using its own medium-term secret key;
A key exchange system comprising: a second session key generation unit that generates the session key using a decryption result by the second decryption unit.
前記第1の鍵生成センタ群及び前記第2の鍵生成センタ群に含まれる各鍵生成センタは、
前記時刻サーバから取得した時刻情報と、自身よりも1つ下の階層に存在する他の鍵生成センタ又は通信端末の識別子とを用いて、前記他の鍵生成センタ又は通信端末が自身の中期秘密鍵を更新するための更新鍵を生成する更新鍵生成部と、
自身よりも1つ下の階層に存在する他の鍵生成センタ又は通信端末の識別子を失効させる失効部と、を有し、
前記更新鍵生成部は、
前記失効部によって失効された識別子を用いた場合、前記識別子を持つ他の鍵生成センタ又は通信端末が中期秘密鍵を更新できない更新鍵を生成する、請求項1に記載の鍵交換システム。
Each key generation center included in the first key generation center group and the second key generation center group is
The other key generation center or communication terminal uses the time information acquired from the time server and the identifier of another key generation center or communication terminal that exists in the hierarchy one level lower than itself, to determine the medium-term secret of the other key generation center or communication terminal. an update key generation unit that generates an update key for updating the key;
It has a revocation unit that revokes the identifier of another key generation center or communication terminal that exists one level below the key generation center,
The update key generation unit includes:
2. The key exchange system according to claim 1, wherein when an identifier revoked by the revocation unit is used, an update key is generated in which another key generation center or communication terminal having the identifier cannot update the medium-term secret key.
前記第1の通信端末及び前記第2の通信端末は、
自身よりも1つ上の階層に存在する鍵生成センタから更新鍵を受信した場合、前記更新鍵と、自身の長期秘密鍵とを用いて、自身の最新の中期秘密鍵を更新する鍵更新部を有する、請求項2に記載の鍵交換システム。
The first communication terminal and the second communication terminal are
When receiving an update key from a key generation center that is one level above the key generation center, the key update unit updates its own latest medium-term secret key using the update key and its own long-term secret key. The key exchange system according to claim 2, comprising:
階層構造を形成する形成する第1の鍵生成センタ群の配下にある通信端末であって、
時刻サーバから取得した時刻情報と、階層構造を形成する第2の鍵生成センタ群の配下にある他の通信端末の識別子と、前記第2の鍵生成センタ群のルート鍵生成センタによって生成された公開パラメータとを用いて、失効可能階層型IDベース暗号により第1の暗号文を生成する暗号化部と、
鍵カプセル化メカニズムにより公開鍵と秘密鍵の鍵ペアを生成する鍵生成部と、
少なくとも前記第1の暗号文と前記公開鍵とを前記他の通信端末に送信する送信部と、
前記他の通信端末から第2の暗号文と第3の暗号文とを少なくとも受信すると、自身の中期秘密鍵を用いて前記第2の暗号文を前記失効可能階層型IDベース暗号により復号すると共に、前記第3の暗号文を前記鍵カプセル化メカニズムにより復号する復号部と、
前記復号部による復号結果を用いて、前記他の通信端末との間で共有されるセッション鍵を生成するセッション鍵生成部と、
を有する通信端末。
A communication terminal under a first key generation center group forming a hierarchical structure,
The time information obtained from the time server, the identifiers of other communication terminals under the second key generation center group forming a hierarchical structure, and the time information generated by the root key generation center of the second key generation center group. an encryption unit that generates a first ciphertext by revocable hierarchical ID-based encryption using a public parameter;
a key generation unit that generates a key pair of a public key and a private key using a key encapsulation mechanism;
a transmitting unit that transmits at least the first ciphertext and the public key to the other communication terminal;
Upon receiving at least the second ciphertext and the third ciphertext from the other communication terminal, the second ciphertext is decrypted by the revocable hierarchical ID-based encryption using the own medium-term secret key; , a decryption unit that decrypts the third ciphertext using the key encapsulation mechanism;
a session key generation unit that generates a session key to be shared with the other communication terminal using the decryption result by the decryption unit;
A communication terminal with
階層構造を形成する第2の鍵生成センタ群の配下にある通信端末であって、
階層構造を形成する第1の鍵生成センタ群の配下にある他の通信端末から第1の暗号文と公開鍵とを少なくとも受信すると、時刻サーバから取得した時刻情報と、前記他の通信端末の識別子と、前記第1の鍵生成センタ群のルート鍵生成センタによって生成された公開パラメータとを用いて、失効可能階層型IDベース暗号により第2の暗号文を生成する第1の暗号化部と、
鍵カプセル化メカニズムにより前記公開鍵から第3の暗号文を生成する第2の暗号化部と、
少なくとも前記第2の暗号文と前記第3の暗号文とを前記他の通信端末に送信する送信部と、
自身の中期秘密鍵を用いて前記第1の暗号文を前記失効可能階層型IDベース暗号により復号する復号部と、
前記復号部による復号結果を用いて、前記他の通信端末との間で共有されるセッション鍵を生成するセッション鍵生成部と、
を有する通信端末。
A communication terminal under a second key generation center group forming a hierarchical structure,
When at least the first ciphertext and public key are received from another communication terminal under the first key generation center group forming a hierarchical structure, the time information acquired from the time server and the other communication terminal are a first encryption unit that generates a second ciphertext by revocable hierarchical ID-based encryption using an identifier and a public parameter generated by a root key generation center of the first key generation center group; ,
a second encryption unit that generates a third ciphertext from the public key by a key encapsulation mechanism;
a transmitter that transmits at least the second ciphertext and the third ciphertext to the other communication terminal;
a decryption unit that decrypts the first ciphertext using the revocable hierarchical ID-based encryption using its own medium-term secret key;
a session key generation unit that generates a session key to be shared with the other communication terminal using the decryption result by the decryption unit;
A communication terminal with
他の情報処理装置と階層構造を形成する情報処理装置であって、
前記階層構造において子となる他の情報処理装置の識別子と、自身の長期秘密鍵とを用いて、前記子となる他の情報処理装置の長期秘密鍵を生成する長期秘密鍵生成部と、
時刻サーバから取得した時刻情報と、自身の長期秘密鍵と、失効された識別子が含まれる失効リストとを用いて、前記子となる他の情報処理装置が中期秘密鍵を更新する際に使用する更新鍵を生成する更新鍵生成部と、
前記時刻サーバから取得した時刻情報と、前記子となる他の情報処理装置の識別子とを用いて、前記失効リストに対して、前記子となる他の情報処理装置の識別子を追加する失効部と、
を有し、
前記更新鍵生成部は、
前記失効リストに含まれる識別子を持つ他の情報処理装置が中期秘密鍵を更新できない更新鍵を生成する、情報処理装置。
An information processing device that forms a hierarchical structure with other information processing devices,
a long-term secret key generation unit that generates a long-term secret key of another information processing device that is a child using an identifier of another information processing device that is a child in the hierarchical structure and its own long-term secret key;
Used when the other child information processing device updates the medium-term secret key using the time information obtained from the time server, its own long-term secret key, and a revocation list that includes revoked identifiers. an update key generation unit that generates an update key;
a revocation unit that adds an identifier of the other child information processing device to the revocation list using time information acquired from the time server and an identifier of the other child information processing device; ,
has
The update key generation unit includes:
An information processing device that generates an update key that prevents other information processing devices having an identifier included in the revocation list from updating a medium-term private key.
階層構造をそれぞれ形成する第1の鍵生成センタ群及び第2の鍵生成センタ群と、前記第1の鍵生成センタ群の配下にある第1の通信端末と、前記第2の鍵生成センタ群の配下にある第2の通信端末と、時刻情報を配信する時刻サーバとが少なくとも含まれる鍵交換システムに用いられる鍵交換方法であって、
前記第1の通信端末が、
前記時刻サーバから取得した時刻情報と、前記第2の通信端末の識別子と、前記第2の鍵生成センタ群のルート鍵生成センタによって生成された公開パラメータとを用いて、失効可能階層型IDベース暗号により第1の暗号文を生成する第1の暗号化手順と、
鍵カプセル化メカニズムにより公開鍵と秘密鍵の鍵ペアを生成する第1の鍵生成手順と、
少なくとも前記第1の暗号文と前記公開鍵とを前記第2の通信端末に送信する第1の送信手順と、
前記第2の通信端末から第2の暗号文と第3の暗号文とを少なくとも受信すると、自身の中期秘密鍵を用いて前記第2の暗号文を前記失効可能階層型IDベース暗号により復号すると共に、前記第3の暗号文を前記鍵カプセル化メカニズムにより復号する第1の復号手順と、
前記第1の復号手順による復号結果を用いて、セッション鍵を生成する第1のセッション鍵生成手順と、を実行し、
前記第2の通信端末が、
前記第1の通信端末から前記第1の暗号文と前記公開鍵とを少なくとも受信すると、前記時刻サーバから取得した時刻情報と、前記第1の通信端末の識別子と、前記第1の鍵生成センタ群のルート鍵生成センタによって生成された公開パラメータとを用いて、前記失効可能階層型IDベース暗号により前記第2の暗号文を生成する第2の暗号化手順と、
前記鍵カプセル化メカニズムにより前記公開鍵から前記第3の暗号文を生成する第3の暗号化手順と、
少なくとも前記第2の暗号文と前記第3の暗号文とを前記第1の通信端末に送信する第2の送信手順と、
自身の中期秘密鍵を用いて前記第1の暗号文を前記失効可能階層型IDベース暗号により復号する第2の復号手順と、
前記第2の復号手順による復号結果を用いて、前記セッション鍵を生成する第2のセッション鍵生成手順と、を実行する鍵交換方法。
A first key generation center group and a second key generation center group forming a hierarchical structure, a first communication terminal under the first key generation center group, and the second key generation center group. A key exchange method used in a key exchange system that includes at least a second communication terminal under a second communication terminal and a time server that distributes time information,
The first communication terminal is
A revocable hierarchical ID base is created using the time information acquired from the time server, the identifier of the second communication terminal, and the public parameter generated by the root key generation center of the second key generation center group. a first encryption procedure for generating a first ciphertext by encryption;
a first key generation step of generating a key pair of a public key and a private key by a key encapsulation mechanism;
a first transmission procedure of transmitting at least the first ciphertext and the public key to the second communication terminal;
Upon receiving at least the second ciphertext and the third ciphertext from the second communication terminal, the second ciphertext is decrypted by the revocable hierarchical ID-based encryption using its own medium-term secret key. and a first decryption procedure for decrypting the third ciphertext using the key encapsulation mechanism;
a first session key generation procedure of generating a session key using the decryption result of the first decryption procedure;
The second communication terminal,
Upon receiving at least the first ciphertext and the public key from the first communication terminal, the first key generation center receives the time information acquired from the time server, the identifier of the first communication terminal, and the first key generation center. a second encryption procedure of generating the second ciphertext by the revocable hierarchical ID-based encryption using a public parameter generated by a root key generation center of the group;
a third encryption procedure of generating the third ciphertext from the public key by the key encapsulation mechanism;
a second transmission procedure of transmitting at least the second ciphertext and the third ciphertext to the first communication terminal;
a second decryption step of decrypting the first ciphertext using the revocable hierarchical ID-based encryption using its own medium-term secret key;
A second session key generation procedure for generating the session key using a decryption result from the second decryption procedure.
コンピュータを、請求項4に記載の通信端末として機能させるプログラム。 A program that causes a computer to function as the communication terminal according to claim 4 . コンピュータを、請求項5に記載の通信端末として機能させるプログラム。A program that causes a computer to function as the communication terminal according to claim 5. コンピュータを、請求項6に記載の情報処理装置として機能させるプログラム。A program that causes a computer to function as the information processing device according to claim 6.
JP2021002424A 2021-01-08 2021-01-08 Key exchange system, communication terminal, information processing device, key exchange method, and program Active JP7444378B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021002424A JP7444378B2 (en) 2021-01-08 2021-01-08 Key exchange system, communication terminal, information processing device, key exchange method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021002424A JP7444378B2 (en) 2021-01-08 2021-01-08 Key exchange system, communication terminal, information processing device, key exchange method, and program

Publications (2)

Publication Number Publication Date
JP2022107460A JP2022107460A (en) 2022-07-21
JP7444378B2 true JP7444378B2 (en) 2024-03-06

Family

ID=82457631

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021002424A Active JP7444378B2 (en) 2021-01-08 2021-01-08 Key exchange system, communication terminal, information processing device, key exchange method, and program

Country Status (1)

Country Link
JP (1) JP7444378B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021035612A (en) * 2020-11-27 2021-03-04 株式会社三洋物産 Game machine
JP2021045592A (en) * 2020-12-04 2021-03-25 株式会社三洋物産 Game machine

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050629A1 (en) 2002-03-21 2007-03-01 Gentry Craig B Hierarchical identity-based encryption and signature schemes
JP2014220669A (en) 2013-05-09 2014-11-20 日本電信電話株式会社 Key exchange system, key generation device, communication device, key exchange method, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050629A1 (en) 2002-03-21 2007-03-01 Gentry Craig B Hierarchical identity-based encryption and signature schemes
JP2014220669A (en) 2013-05-09 2014-11-20 日本電信電話株式会社 Key exchange system, key generation device, communication device, key exchange method, and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
江村 恵太,鍵失効機能付きIDベース暗号,情報通信研究機構研究報告 第62巻 第2号 ,日本,国立研究開発法人情報通信研究機構 ,2016年12月,第62巻, 第2号,pp.149-151

Also Published As

Publication number Publication date
JP2022107460A (en) 2022-07-21

Similar Documents

Publication Publication Date Title
US9426131B2 (en) Server apparatus and program to re-encrypt ciphertext data
US10805076B2 (en) Information processing apparatus, server apparatus, and computer program product
KR100568233B1 (en) Device Authentication Method using certificate and digital content processing device using the method
CN108347404B (en) Identity authentication method and device
KR20150032928A (en) New cryptographic systems using pairing with errors
KR100670017B1 (en) Method for broadcast encryption based on the combination
CN111953479B (en) Data processing method and device
JP7444378B2 (en) Key exchange system, communication terminal, information processing device, key exchange method, and program
CN112104453A (en) Anti-quantum computation digital signature system and signature method based on digital certificate
Lai et al. Self-generated-certificate public key encryption without pairing and its application
JP2024506026A (en) Threshold key exchange
Hoang et al. Forward-secure data outsourcing based on revocable attribute-based encryption
JP2008288837A (en) Key management method, key generation method, cipher processing method, decipher processing method, access management method, and communication network system
WO2022239129A1 (en) Key exchange system, device, key exchange method, and program
CN115694827A (en) SM 2-based certificate encryption method and system
JP2010113181A (en) Key management method, key generation method, encryption processing method, decryption processing method, access control method, communication network system
Mishra et al. A certificateless authenticated key agreement protocol for digital rights management system
CN112019553A (en) Data sharing method based on IBE/IBBE
Li et al. Key management using certificateless public key cryptography in ad hoc networks
JP4612027B2 (en) Signature system
JP2008176040A (en) Key management method, key creation method, code processing method, transfer method for decryption authority, and communication network system
Xu et al. New construction of affiliation‐hiding authenticated group key agreement
JP7377495B2 (en) Cryptographic systems and methods
Zaidan et al. New Comprehensive Study to Assess Comparatively the QKD, XKMS, KDM in the PKI encryption algorithms
WO2024090057A1 (en) Authentication system

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20210120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20210120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240213

R150 Certificate of patent or registration of utility model

Ref document number: 7444378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150