JPWO2019107129A1 - 鍵交換システム、端末装置、鍵交換方法、プログラム、および記録媒体 - Google Patents

鍵交換システム、端末装置、鍵交換方法、プログラム、および記録媒体 Download PDF

Info

Publication number
JPWO2019107129A1
JPWO2019107129A1 JP2019557118A JP2019557118A JPWO2019107129A1 JP WO2019107129 A1 JPWO2019107129 A1 JP WO2019107129A1 JP 2019557118 A JP2019557118 A JP 2019557118A JP 2019557118 A JP2019557118 A JP 2019557118A JP WO2019107129 A1 JPWO2019107129 A1 JP WO2019107129A1
Authority
JP
Japan
Prior art keywords
key
mod
exclusive
function value
terminal device
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.)
Granted
Application number
JP2019557118A
Other languages
English (en)
Other versions
JP6988912B2 (ja
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
Original Assignee
Nippon Telegraph and Telephone Corp
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 filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019107129A1 publication Critical patent/JPWO2019107129A1/ja
Application granted granted Critical
Publication of JP6988912B2 publication Critical patent/JP6988912B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Electromagnetism (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Round1で各端末装置が隣の端末装置に対して耐量子計算機暗号に則った鍵暗号化鍵を送信し、Round2で各端末装置が受け取った鍵暗号化鍵を用いて二者間共有鍵の鍵カプセルを生成して鍵暗号化鍵の送信元の端末装置に返信し、Round3で各端末装置が二者間共有鍵に基づく情報を生成して鍵配送管理装置に送信し、鍵配送管理装置がそれらの情報に基づいて得られる情報を各端末装置に配送する。各端末装置は配送された情報に基づいて共有鍵を計算する。

Description

本発明は、暗号技術に関し、特に多者間鍵交換技術に関する。
多者間鍵交換技術にはmesh型の鍵交換であるGKE(Group Key Exchange)とstar型の鍵交換であるMKD(Multi Key Distribution)がある。これらの鍵交換は参加人数に比例して通信コストが上がる、鍵配送管理装置に共有鍵を伝達してしまう等の課題があった。これらの課題を解決したのがDMKD(Multi-Cast Key Distribution: Scalable, Dynamic and Provably Secure Construction)である(例えば、特許文献1および非特許文献1等参照)。この方式では、人数に依らず定数Roundで鍵交換を行うことができ、鍵配送管理装置にも共有鍵を秘匿できる。
近年量子コンピュータの研究開発は急激に進んでおり、暗号の安全性を脅かすものとなっている。それに伴い、量子コンピュータの解読にも耐え得る暗号方式の検討が進められている。量子コンピュータによる解読に耐え得る暗号のことを「耐量子安全」である暗号という。
特開2016−134826号公報
Kazuki Yoneyama, Reo Yoshida, Yuto Kawahara, Tetsutaro Kobayashi, Hitoshi Fuji, Tomohide Yamamoto, "Multi-Cast Key Distribution: Scalable, Dynamic and Provably Secure Construction," International Conference on Provable Security (ProvSec 2016), LNCS10005, pp.207-226, Nov. 2016.
DMKDは多者間の鍵交換を効率よく安全に行うことができるが、耐量子安全でない。そのため、今後、十分な計算量を持った量子コンピュータが実用化すると、安全性が担保されない。またDMKDは耐量子性を持たせることが困難なDH(Diffie-Hellman)型の二者間鍵交換に基づいており、DMKDを耐量子安全な方式に変更することも容易ではない。
本発明はこのような点に鑑みてなされたものであり、耐量子性を持つ多者間鍵交換技術を提供することを目的とする。
端末装置Uは、公開鍵暗号方式の耐量子計算機暗号に則った鍵カプセル復号鍵skを格納し、鍵カプセル復号鍵skに対応する鍵暗号化鍵pkを出力する。ただし、nが3以上の整数であり、i=1,…,nである。
端末装置Uは、耐量子計算機暗号に則った鍵暗号化鍵pk(i mod n)+1を受け付け、乱数kを設定し、鍵暗号化鍵pk(i mod n)+1を用い、二者間共有鍵Ri,(i mod n)+1および二者間共有鍵Ri,(i mod n)+1の暗号文である鍵カプセルCi,(i mod n)+1を得、鍵カプセルCi,(i mod n)+1を出力し、鍵カプセルC(i−2 mod n)+1,iを受け付ける。ただし、正整数αに対して−1 mod α=α−1である。
端末装置Uは、鍵カプセル復号鍵skを用いて鍵カプセルCn,1を復号して二者間共有鍵Rn,1を得、二者間共有鍵Rn,1の関数値K (L)を得、二者間共有鍵R1,2の関数値K (R)を得、関数値K (L)と関数値K (R)との排他的論理和Tを得、乱数kの関数値と関数値K (L)との排他的論理和T’を得、排他的論理和TおよびT’を出力する。端末装置Uは、鍵カプセル復号鍵skを用いて鍵カプセルC(v−2 mod n)+1,vを復号して二者間共有鍵R(v−2 mod n)+1,vを得、二者間共有鍵R(v−2 mod n)+1,vの関数値K (L)を得、二者間共有鍵Rv,(v mod n)+1の関数値K (R)を得、関数値K (L)と関数値K (R)との排他的論理和Tを得、乱数kおよび排他的論理和Tを出力する。ただし、v=2,…,nである。
鍵配送管理装置は、乱数k,…,kを含む複数の値の排他的論理和k’を得て出力し、排他的論理和T,…,Tv‐1の排他的論理和T’を得て出力する。
端末装置Uは、排他的論理和k’と乱数kとの排他的論理和の関数値を共有鍵SKとして得る。端末装置Uは、排他的論理和T’と関数値K (L)との排他的論理和によって関数値K (L)を得、排他的論理和T’と関数値K (L)との排他的論理和によって乱数kの関数値を得、排他的論理和k’と乱数kの関数値から得られる乱数kとの排他的論理和の関数値を共有鍵SKとして得る。
以上により、耐量子性を持つ多者間鍵交換を実現できる。
図1は第1実施形態の鍵交換システムの構成を例示したブロック図である。 図2は実施形態の鍵交換装置の構成を例示したブロック図である。 図3は実施形態の鍵配送管理装置の構成を例示したブロック図である。 図4は実施形態の鍵交換方法(Round 1)を説明するための図である。 図5は実施形態の鍵交換方法(Round 2)を説明するための図である。 図6は実施形態の鍵交換方法(Round 3)を説明するための図である。 図7は実施形態の鍵交換方法(共有鍵生成)を説明するための図である。 図8は第2実施形態の鍵交換システムの構成を例示したブロック図である。 図9は実施形態の鍵交換装置の構成を例示したブロック図である。 図10は端末装置が追加された際に行われる実施形態の鍵交換方法(Round 1)を説明するための図である。 図11は端末装置が追加された際に行われる実施形態の鍵交換方法(Round 2)を説明するための図である。 図12は端末装置が追加された際に行われる実施形態の鍵交換方法(Round 3)を説明するための図である。 図13は端末装置が追加された際に行われる実施形態の鍵交換方法(共有鍵生成)を説明するための図である。 図14は第3実施形態の鍵交換システムの構成を例示したブロック図である。 図15は端末装置が除外された際に行われる実施形態の鍵交換方法(Round 1)を説明するための図である。 図16は端末装置が除外された際に行われる実施形態の鍵交換方法(Round 2)を説明するための図である。 図17は端末装置が除外された際に行われる実施形態の鍵交換方法(Round 3)を説明するための図である。 図18は端末装置が除外された際に行われる実施形態の鍵交換方法(共有鍵生成)を説明するための図である。
以下、図面を参照して本発明の実施形態を説明する。
[第1実施形態]
第1実施形態を説明する。第1実施形態では複数の端末装置の間で共有鍵を共有する処理を説明する。
<構成>
図1に例示するように、本形態の鍵交換システム1は、n個の端末装置100−1〜100−n(端末装置U,…,U)と鍵配送管理装置150とを有する。nは3以上の整数である。各端末装置100−i(端末装置U)(ただし、i=1,…,n)は、インターネット等を通じて鍵配送管理装置150と通信可能に構成されている。
図2に例示するように、端末装置100−iは、入力部101−i、出力部102−i、記憶部103−i、制御部104−i、鍵ペア生成部105−i、乱数設定部106−i、二者間共有鍵生成部107−i、復号部108−i、関数演算部109−i、排他的論理和部110−i、関数値復元部111−i、乱数復元部113−i、および共有鍵生成部112−iを有する。端末装置100−iは、制御部104−iの制御の下で各処理を実行する。当該処理で得られたデータは記憶部103−iに格納され、必要に応じて記憶部103−iから読み出されて他の処理に用いられる。
図3に例示するように、鍵配送管理装置150は、入力部151、出力部152、演算部153、制御部154、SID設定部155、排他的論理和部156、および記憶部157を有する。鍵配送管理装置150は、制御部154の制御の下で各処理を実行する。当該処理で得られたデータは記憶部157に格納され、必要に応じて記憶部157から読み出されて他の処理に用いられる。
<処理>
次に、本形態の鍵交換処理を説明する。本形態の鍵交換処理は、Round1〜3および共有鍵生成を含む。
≪Round1(図4)≫
端末装置100−i(図2)の鍵ペア生成部105−i(ただし、i=1,…,n)は、公開鍵暗号方式の耐量子計算機暗号に則った鍵カプセル復号鍵skおよび当該鍵カプセル復号鍵skに対応する鍵暗号化鍵pkからなる鍵ペア(pk,sk)を生成する。例えば、鍵ペア生成部105−iは、乱数rを生成し、これを鍵カプセル化アルゴリズムの鍵生成アルゴリズムに適用して鍵ペア(pk,sk)を生成して出力する。乱数は疑似乱数であってもよいし、真正乱数であってもよい(以下、同様)。公開鍵暗号方式の耐量子計算機暗号としては、例えば、格子暗号、コードベース暗号などを例示できる。鍵カプセル化アルゴリズムとしては、例えば、以下のものを用いることができる。
参考文献1:Chris Peikert, Lattice Cryptography for the Internet, PQCrypto 2014, LNCS 8772, pp. 197-219, 2014.
生成された鍵カプセル復号鍵skおよび鍵暗号化鍵pkは各端末装置100−iの記憶部103−iに格納される。また、鍵暗号化鍵pkは出力部102−iから出力され、鍵配送管理装置150に送信される。
鍵暗号化鍵pkは鍵配送管理装置150(図3)の入力部151に入力される(受け付けられる)。鍵暗号化鍵pkが入力部151に入力され次第、制御部154は当該鍵暗号化鍵pkを出力部152に送り、出力部152は当該鍵暗号化鍵pkを端末装置100−((i−2 mod n)+1)に送信する。なお、正整数αに対して−1 mod α=α−1を満たす。
≪Round2(図5)≫
端末装置100−i(図2)の入力部101−iは鍵暗号化鍵pk(i mod n)+1を受信し(受け付け)、鍵暗号化鍵pk(i mod n)+1を記憶部103−iに格納する。
端末装置100−iの乱数設定部106−iは乱数kを設定して出力する。乱数kは記憶部103−iに格納される。
端末装置100−iの二者間共有鍵生成部107−iは、鍵暗号化鍵pk(i mod n)+1を用い、二者間共有鍵Ri,(i mod n)+1および当該二者間共有鍵Ri,(i mod n)+1の暗号文である鍵カプセルCi,(i mod n)+1を得て出力する。例えば、二者間共有鍵生成部107−iは参考文献1に記載された方法で二者間共有鍵Ri,(i mod n)+1および鍵カプセルCi,(i mod n)+1を生成して出力する。二者間共有鍵Ri,(i mod n)+1は記憶部103−iに格納される。鍵カプセルCi,(i mod n)+1は出力部102−iから出力され、鍵配送管理装置150に送信される。
鍵配送管理装置150(図3)の入力部151は、各端末装置100−i(ただし、i=1,…,n)から送信された鍵カプセルCi,(i mod n)+1を受信する。SID設定部155はsid(セッションID)を生成し、代表端末装置として端末装置100−1を選択する。演算部153は(sid,Ci,(i mod n)+1)を生成する。(sid,Ci,(i mod n)+1)は出力部152から出力され、端末装置100−((i mod n)+1)に送信される。すなわち、出力部152は(sid,C(i−2 mod n)+1,i)を端末装置100−iに送信する。また、出力部152は、端末装置100−1に対し、端末装置100−1が代表端末装置として選択された旨を表す情報(代表通知)を送信する。
≪Round3(図6)≫
本形態のRound3の処理は、端末装置100−1(端末装置U)とそれ以外の端末装置100−v(端末装置U)とで相違する。ただし、v=2,…,nである。
端末装置100−1(端末装置U):
(sid,Cn,1)および代表通知は、端末装置100−1の入力部101−1に入力される(受け付けられる)。代表通知が受信された場合、制御部104−1は以下の制御を行う。
復号部108−1は、記憶部103−1から読み出した鍵カプセル復号鍵skを用い、鍵カプセルCn,1を復号して二者間共有鍵Rn,1を得て出力する。例えば、復号部108−1は、参考文献1に記載された方法で二者間共有鍵Rn,1を得て出力する。二者間共有鍵Rn,1は記憶部103−1に格納される。
次に、関数演算部109−1は、二者間共有鍵Rn,1の関数値K (L)を得て出力する。関数値K (L)は二者間共有鍵Rn,1のみに依存する値であってもよいし、二者間共有鍵Rn,1と他の付加情報とに依存する値であってもよい。「αのみに依存する値」はαそのものであってもよいし、αに対応する値であってもよい。ただし、後述のK (R)に対してK (L)=K (R)を満たさなければならない。例えば、関数演算部109−1は、二者間共有鍵Rn,1とsidとに依存する関数値K (L)=F(sid,Rn,1
を得て出力する。F(α,α)の例は、αとαとのビット連結値α|αの関数値である。Fの例は一方向性関数である。一方向性関数の例は、ハッシュ関数(例えば、暗号学的なハッシュ関数)である。関数値K (L)は記憶部103−1に格納される。
また、関数演算部109−1は、記憶部103−1から二者間共有鍵R1,2を読み出し、当該二者間共有鍵R1,2の関数値K (R)を得て出力する。関数値K (R)は二者間共有鍵R1,2のみに依存する値であってもよいし、二者間共有鍵R1,2と他の付加情報とに依存する値であってもよい。ただし、後述のK (L)に対してK (R)=K (L)を満たさなければならない。例えば、関数演算部109−1は、二者間共有鍵R1,2とsidとに依存する関数値
(R)=F(sid,R1,2
を得て出力する。関数値K (R)は記憶部103−1に格納される。
関数値K (L)と関数値K (R)とは排他的論理和部110−1に入力される。排他的論理和部110−1は、関数値K (L)と関数値K (R)との排他的論理和
=K (L)(+)K (R)
を得て出力する。α(+)αはαとαとの排他的論理和を表す。αおよびαの少なくとも一方がビット列でない場合、αとαとの排他的論理和とは、ビット列で表現されたαおよびαの排他的論理和を表す。
排他的論理和部110−1には、さらに記憶部103−1から読み込まれた乱数kが入力される。排他的論理和部110−1は、乱数kの関数値B(k)と関数値K (L)との排他的論理和
T’=B(k)(+)K (L)
を得て出力する。関数値B(k)は乱数kのみに依存する値であってもよいし、乱数kと他の付加情報とに依存する値であってもよい。ただし、関数値B(k)から容易に乱数kを抽出できなければならない。関数値B(k)の例は乱数kと他の付加情報βとのビット連結k|βである。
排他的論理和TおよびT’は出力部102−1から出力され、鍵配送管理装置150に送信される。
端末装置100−v(端末装置U):
(sid,C(v−2 mod n)+1,v)は、端末装置100−v(ただし、v=2,…,n)の入力部101−vに入力される(受け付けられる)。代表通知が受信されなかった場合、制御部104−vは以下の制御を行う。
復号部108−vは、記憶部103−vから読み出した鍵カプセル復号鍵skを用い、鍵カプセルC(v−2 mod n)+1,vを復号して二者間共有鍵R(v−2 mod n)+1,vを得て出力する。例えば、復号部108−vは、参考文献1に記載された方法で二者間共有鍵R(v−2 mod n)+1,vを得て出力する。二者間共有鍵R(v−2 mod n)+1,vは記憶部103−vに格納される。
関数演算部109−vは、二者間共有鍵R(v−2 mod n)+1,vの関数値K (L)を得て出力する。関数値K (L)は二者間共有鍵R(v−2 mod n)+1,vのみに依存する値であってもよいし、二者間共有鍵R(v−2 mod n)+1,vと他の付加情報とに依存する値であってもよい。ただし、後述のK(v−2 mod n)+1 (R)に対してK (L)=K(v−2 mod n)+1 (R)を満たさなければならない。例えば、関数演算部109−vは、二者間共有鍵R(v−2 mod n)+1,vとsidとに依存する関数値
(L)=F(sid,R(v−2 mod n)+1,v
を得て出力する。関数値K (L)は記憶部103−vに格納される。
関数演算部109−vは、記憶部103−vから二者間共有鍵Rv,(v mod n)+1を読み出し、当該二者間共有鍵Rv,(v mod n)+1の関数値K (R)を得て出力する。関数値K (R)は二者間共有鍵Rv,(v mod n)+1のみに依存する値であってもよいし、二者間共有鍵Rv,(v mod n)+1と他の付加情報とに依存する値であってもよい。ただし、K (R)=K(v mod n)+1 (L)を満たさなければならない。例えば、関数演算部109−vは、二者間共有鍵Rv,(v mod n)+1とsidとに依存する関数値
(R)=F(sid,Rv,(v mod n)+1
を得て出力する。関数値K (R)は記憶部103−vに格納される。
関数値K (L)と関数値K (R)とは排他的論理和部110−vに入力される。排他的論理和部110−vは、関数値K (L)と関数値K (R)との排他的論理和
=K (L)(+)K (R)
を得て出力する。
乱数kおよび排他的論理和Tは出力部102−vから出力され、鍵配送管理装置150に送信される。
排他的論理和T,…,T、T’、および乱数k,…,kは、鍵配送管理装置150(図3)の入力部151に入力され、記憶部157に格納される。排他的論理和部156は、記憶部157から読み込んだ乱数k,…,kを含む複数の値の排他的論理和k’を得て出力する。乱数k,…,kを含む複数の値の排他的論理和k’は、乱数k,…,kの排他的論理和であってもよいし、乱数k,…,kと他の付加値との排他的論理和であってもよい。例えば、演算部153が乱数kを生成し、排他的論理和部156が乱数k,…,k,kの排他的論理和
k’=k(+)…(+)k(+)k
を得て出力する。
また排他的論理和部156は、v=2,…,nについて、記憶部157から排他的論理和T,…,Tv‐1を読み込み、排他的論理和T,…,Tv‐1の排他的論理和
’=T(+)…(+)Tv‐1
を得て出力する。
出力部152は、排他的論理和k’を端末装置100−1に対して送信し、排他的論理和T’,k’,T’を端末装置100−v(ただし、v=2,…,n)に対して送信する。
≪共有鍵生成(図7)≫
共有鍵生成の処理は、端末装置100−1(端末装置U)とそれ以外の端末装置100−v(端末装置U)とで相違する。
端末装置100−1(端末装置U):
排他的論理和k’は、端末装置100−1の入力部101−1に入力される(受け付けられる)。共有鍵生成部112−1は、当該排他的論理和k’と記憶部103−1から読み出した乱数kとの排他的論理和k’(+)kの関数値を共有鍵
SK=F’(k’(+)k
として得て出力する。F’の例は一方向性関数である。共有鍵SKは、k’(+)kのみに依存する値であってもよいし、k’(+)kと他の付加情報とに依存する値であってもよい。当該他の付加情報の例はsidや他の暗号方式(例えば、属性ベース暗号)に基づいて得られた鍵などである。
参考文献2(属性ベース暗号):Yongtao Wang, "Lattice Ciphertext Policy Attribute-based Encryption in the Standard Model," International Journal of Network Security, Vol.16, No.6, PP.444-451, Nov. 2014.
端末装置100−v(端末装置U):
排他的論理和T’,k’,T’は、端末装置100−vの入力部101−vに入力される(受け付けられる)。関数値復元部111−vは、当該排他的論理和T’と記憶部103−vから読み出した関数値K (L)との排他的論理和によって関数値K (L)を得て出力する。関数値K (L)が得られる理由は以下の通りである。
’(+)K (L)
=T(+)…(+)Tv‐1(+)K (L)
=K (L)(+)K (R)(+)K (L)(+)K (R)(+)・・・(+)Kv−1 (L)(+)Kv−1 (R)(+)K (L)
=K (L)
乱数復元部113−vは、当該排他的論理和T’と当該関数値K (L)との排他的論理和によって乱数kの関数値B(k)を得て出力する。関数値B(k)が得られる理由は以下の通りである。
T’(+)K (L)
=B(k)(+)K (L)(+)K (L)
=B(k
共有鍵生成部112−vは、関数値B(k)(例えば、B(k)=k|β)から乱数kを抽出し、排他的論理和k’と関数値B(k)から得られた乱数kとの排他的論理和k’(+)kの関数値を共有鍵
SK=F’(k’(+)k
として得て出力する。
各端末装置100−i(端末装置U)の記憶部103−i(ただし、i=1,…,n)には、共通鍵SKを用いて更新された関数値r=F”(SK)および二者間共有鍵H (L)=R(i−2 mod n)+1,iおよびH (R)=Ri,(i mod n)+1が格納される。
<本形態の特徴>
本形態では、鍵カプセル型の二者間鍵交換を採用したため、公開鍵暗号方式の耐量子計算機暗号に則った二者間鍵交換が可能になり、これを利用することで耐量子安全な多者間鍵交換システムを構成できる。すなわち、Round1で各端末装置が隣の端末装置に対して耐量子計算機暗号に則った鍵暗号化鍵を送信し、Round2で各端末装置が受け取った鍵暗号化鍵を用いて二者間共有鍵の鍵カプセルを生成して鍵暗号化鍵の送信元の端末装置に返信し、Round3で各端末装置が二者間共有鍵に基づく情報を生成して鍵配送管理装置に送信し、鍵配送管理装置がそれらの情報に基づいて得られる情報を各端末装置に配送する。各端末装置は配送された情報に基づいて共有鍵を計算できる。一方で鍵配送管理装置は各端末装置から送られた情報から共有鍵を知ることはできない。二者間共有鍵を共有する処理は耐量子安全であり、これに基づく多者間鍵交換も耐量子安全である。
[第2実施形態]
第2実施形態を説明する。第2実施形態では、第1実施形態の処理が行われた後、新たな端末装置100−(n+1)(端末装置Un+1)が追加され、n+1個の端末装置100−1〜100−(n+1)(端末装置U,…,Un+1)で共有鍵SKの共有を行う。
<構成>
図8に例示するように、本形態の鍵交換システム2は、n個の端末装置100−1〜100−n(端末装置U,…,U)と新たに追加される端末装置100−(n+1)(端末装置Ui+1)と鍵配送管理装置150とを有する。各端末装置100−i(端末装置U)(ただし、i=1,…,n)および端末装置100−(n+1)は、インターネット等を通じて鍵配送管理装置150と通信可能に構成されている。
図9に例示するように、端末装置100−(n+1)は、入力部101−(n+1)、出力部102−(n+1)、記憶部103−(n+1)、制御部104−(n+1)、鍵ペア生成部105−(n+1)、乱数設定部106−(n+1)、二者間共有鍵生成部107−(n+1)、復号部108−(n+1)、関数演算部109−(n+1)、排他的論理和部110−(n+1)、関数値復元部111−(n+1)、乱数復元部113−(n+1)、および共有鍵生成部112−(n+1)を有する。端末装置100−(n+1)は、制御部104−(n+1)の制御の下で各処理を実行する。当該処理で得られたデータは記憶部103−(n+1)に格納され、必要に応じて記憶部103−(n+1)から読み出されて他の処理に用いられる。
<処理>
次に、端末装置100−(n+1)が追加された後の鍵交換処理を説明する。本形態の鍵交換処理は、Round1〜3および共有鍵生成を含む。前提として、各端末装置100−i(端末装置U)(図2)の記憶部103−i(ただし、i=i,…,n)には、第1実施形態の処理で得られた共有鍵SKの関数値r=F”(SK)、二者間共有鍵H (L)=R(i−2 mod n)+1,iおよびH (R)=Ri,(i mod n)+1が格納されていることにする。
≪Round1(図10)≫
端末装置100−1(端末装置U):
端末装置100−1(図2)の鍵ペア生成部105−1は、公開鍵暗号方式の耐量子計算機暗号に則った鍵カプセル復号鍵skおよび当該鍵カプセル復号鍵skに対応する鍵暗号化鍵pkからなる鍵ペア(pk,sk)を生成する。生成された鍵カプセル復号鍵skおよび鍵暗号化鍵pkは記憶部103−1に格納される。また、鍵暗号化鍵pkは出力部102−1から出力され、鍵配送管理装置150に送信される。
端末装置100−(n+1)(端末装置Un+1):
端末装置100−(n+1)(図9)の鍵ペア生成部105−(n+1)は、公開鍵暗号方式の耐量子計算機暗号に則った鍵カプセル復号鍵skn+1および当該鍵カプセル復号鍵skn+1に対応する鍵暗号化鍵pkn+1からなる鍵ペア(pkn+1,skn+1)を生成する。生成された鍵カプセル復号鍵skn+1および鍵暗号化鍵pkn+1は記憶部103−(n+1)に格納される。また、鍵暗号化鍵pkn+1は出力部102−(n+1)から出力され、鍵配送管理装置150に送信される。
鍵暗号化鍵pk,pkn+1は鍵配送管理装置150(図3)の入力部151に入力される。鍵暗号化鍵pkが入力部151に入力され次第、制御部154は当該鍵暗号化鍵pkを出力部152に送り、出力部152は当該鍵暗号化鍵pkを端末装置100−(n+1)に送信する。鍵暗号化鍵pkn+1が入力部151に入力され次第、制御部154は当該鍵暗号化鍵pkn+1を出力部152に送り、出力部152は当該鍵暗号化鍵pkn+1を端末装置100−nに送信する。
≪Round2(図11)≫
端末装置100−n(端末装置U):
端末装置100−n(図2)の入力部101−nは鍵暗号化鍵pkn+1を受信し、鍵暗号化鍵pkn+1を記憶部103−nに格納する。
端末装置100−nの乱数設定部106−nは乱数kを設定して出力する。乱数kは記憶部103−nに格納される。
二者間共有鍵生成部107−nは、鍵暗号化鍵pkn+1を用い、二者間共有鍵Rn,n+1および当該二者間共有鍵Rn,n+1の暗号文である鍵カプセルCn,n+1を得て出力する(例えば、参考文献1等参照)。二者間共有鍵Rn,n+1は記憶部103−nに格納される。鍵カプセルCn,n+1は出力部102−nから出力され、鍵配送管理装置150に送信される。
端末装置100−(n+1)(端末装置Un+1):
端末装置100−(n+1)(図9)の入力部101−(n+1)は鍵暗号化鍵pkを受信し(受け付け)、鍵暗号化鍵pkを記憶部103−(n+1)に格納する。
端末装置100−(n+1)の乱数設定部106−(n+1)は乱数kn+1を設定して出力する。乱数kn+1は記憶部103−(n+1)に格納される。
二者間共有鍵生成部107−(n+1)は、鍵暗号化鍵pkを用い、二者間共有鍵Rn+1,1および当該二者間共有鍵Rn+1,1の暗号文である鍵カプセルCn+1,1を得て出力する(例えば、参考文献1等参照)。二者間共有鍵Rn+1,1は記憶部103−(n+1)に格納される。鍵カプセルCn+1,1は出力部102−(n+1)から出力され、鍵配送管理装置150に送信される。
端末装置100−ρ(端末装置Uρ):
端末装置100−ρ(ただし、ρ=1,…,n‐1)の乱数設定部106−ρは乱数kρを設定して出力する。乱数kρは記憶部103−ρに格納される。
鍵配送管理装置150(図3)の入力部151は、端末装置100−nから送信された鍵カプセルCn,n+1、および端末装置100−(n+1)から送信された鍵カプセルCn+1,1を受信する。SID設定部155はsidを新たに生成し、代表端末装置として端末装置100−1を選択する。演算部153は(sid,Cn,n+1)および(sid,Cn+1,1)を生成する。(sid,Cn,n+1)は出力部152から出力され、端末装置100−(n+1)に送信される。(sid,Cn+1,1)は出力部152から出力され、端末装置100−1に送信される。出力部152は、端末装置100−1に対し、端末装置100−1が代表端末装置として選択された旨を表す情報(代表通知)を送信する。さらにsidが出力部152から出力され、端末装置100−v(ただし、v=2,…,n)に対して送信される。
≪Round3(図12)≫
本形態のRound3の処理は、端末装置100−1(端末装置U)と端末装置100−n(端末装置U)と端末装置100−(n+1)(端末装置Un+1)とそれら以外の端末装置100−z(端末装置U)とで相違する。ただし、z=2,…,n−1である。
端末装置100−1(端末装置U):
(sid,Cn+1,1)および代表通知は、端末装置100−1の入力部101−1に入力される。代表通知が受信された場合、制御部104−1は以下の制御を行う。
復号部108−1は、記憶部103−1から読み出した鍵カプセル復号鍵skを用い、鍵カプセルCn+1,1を復号して二者間共有鍵Rn+1,1を得て出力する。二者間共有鍵Rn+1,1は記憶部103−1に格納される。
次に、関数演算部109−1は、二者間共有鍵Rn+1,1の関数値K (L)を得て出力する。関数値K (L)は二者間共有鍵Rn+1,1のみに依存する値であってもよいし、二者間共有鍵Rn+1,1と他の付加情報とに依存する値であってもよい。ただし、後述のKn+1 (R)に対してK (L)=Kn+1 (R)を満たさなければならない。例えば、関数演算部109−1は、二者間共有鍵Rn+1,1とsidとに依存する関数値
(L)=F(sid,Rn+1,1
を得て出力する。関数値K (L)は記憶部103−1に格納される。
また、関数演算部109−1は、記憶部103−1から関数値rを読み出し、当該関数値rの関数値K (R)を得て出力する。関数値K (R)は関数値rのみに依存する値であってもよいし、関数値rと他の付加情報とに依存する値であってもよい。ただし、K (R)=K (L)を満たさなければならない。例えば、関数演算部109−1は、関数値rとsidとに依存する関数値
(R)=F(sid,r)
を得て出力する。関数値K (R)は記憶部103−1に格納される。
関数値K (L)と関数値K (R)とは排他的論理和部110−1に入力される。排他的論理和部110−1は、関数値K (L)と関数値K (R)との排他的論理和
=K (L)(+)K (R)
を得て出力する。
排他的論理和部110−1には、さらに記憶部103−1から読み込まれた乱数kが入力される。排他的論理和部110−1は、乱数kの関数値B(k)と関数値K (L)との排他的論理和
T’=B(k)(+)K (L)
を得て出力する。前述のように、関数値B(k)の例は乱数kと他の付加情報βとのビット連結k|βである。
排他的論理和TおよびT’は出力部102−1から出力され、鍵配送管理装置150に送信される。
端末装置100−n(端末装置U):
関数演算部109−nは、記憶部103−nから関数値rを読み出し、当該関数値rの関数値K (L)を得て出力する。関数値K (L)は関数値rのみに依存する値であってもよいし、関数値rと他の付加情報とに依存する値であってもよい。ただし、K (L)=K (R)を満たさなければならない。例えば、関数演算部109−nは、関数値rとsidとに依存する関数値
(L)=F(sid,r)
を得て出力する。関数値K (L)は記憶部103−nに格納される。
関数演算部109−nは、記憶部103−nから二者間共有鍵Rn,n+1を読み出し、当該二者間共有鍵H (R)の関数値K (R)を得て出力する。関数値K (R)は二者間共有鍵H (R)のみに依存する値であってもよいし、二者間共有鍵H (R)と他の付加情報とに依存する値であってもよい。ただし、K (R)=Kn+1 (L)を満たさなければならない。例えば、関数演算部109−nは、二者間共有鍵H (R)とsidとに依存する関数値
(R)=F(sid,Rn,n+1
を得て出力する。関数値K (R)は記憶部103−nに格納される。
関数値K (L)と関数値K (R)とは排他的論理和部110−nに入力される。排他的論理和部110−nは、関数値K (L)と関数値K (R)との排他的論理和
=K (L)(+)K (R)
を得て出力する。
記憶部103−nから読み出された乱数kおよび排他的論理和Tは出力部102−nから出力され、鍵配送管理装置150に送信される。
端末装置100−(n+1)(端末装置Un+1):
(sid,Cn,n+1)は、端末装置100−(n+1)の入力部101−(n+1)に入力される。
復号部108−(n+1)は、記憶部103−(n+1)から読み出した鍵カプセル復号鍵skn+1を用い、鍵カプセルCn,n+1を復号して二者間共有鍵Rn,n+1を得て出力する。二者間共有鍵Rn,n+1は記憶部103−(n+1)に格納される。
次に、関数演算部109−(n+1)は、二者間共有鍵Rn,n+1の関数値Kn+1 (L)を得て出力する。関数値Kn+1 (L)は二者間共有鍵Rn,n+1のみに依存する値であってもよいし、二者間共有鍵Rn,n+1と他の付加情報とに依存する値であってもよい。ただし、Kn+1 (L)=K (R)を満たさなければならない。例えば、関数演算部109−(n+1)は、二者間共有鍵Rn,n+1とsidとに依存する関数値Kn+1 (L)=F(sid,Rn,n+1
を得て出力する。関数値K (L)は記憶部103−(n+1)に格納される。
関数演算部109−(n+1)は、記憶部103−(n+1)から二者間共有鍵Rn+1,1を読み出し、当該二者間共有鍵Rn+1,1の関数値Kn+1 (R)を得て出力する。関数値Kn+1 (R)は二者間共有鍵Rn+1,1のみに依存する値であってもよいし、二者間共有鍵Rn+1,1と他の付加情報とに依存する値であってもよい。ただし、Kn+1,1 (R)=K (L)を満たさなければならない。例えば、関数演算部109−(n+1)は、二者間共有鍵Rn+1,1とsidとに依存する関数値
n+1 (R)=F(sid,Rn+1,1
を得て出力する。関数値Kn+1 (R)は記憶部103−(n+1)に格納される。
関数値Kn+1 (L)と関数値Kn+1 (R)とは排他的論理和部110−(n+1)に入力される。排他的論理和部110−(n+1)は、関数値Kn+1 (L)と関数値Kn+1 (R)との排他的論理和
n+1=Kn+1 (L)(+)Kn+1 (R)
を得て出力する。
記憶部103−(n+1)から読み出された乱数kn+1および排他的論理和Tn+1は出力部102−(n+1)から出力され、鍵配送管理装置150に送信される。
端末装置100−z(端末装置U)(z=2,…,n−1):
記憶部103−zから読み出された乱数kが出力部102−zから出力され、鍵配送管理装置150に送信される。
排他的論理和T,T,Tn+1、T’、および乱数k,…,kn+1は、鍵配送管理装置150(図3)の入力部151に入力され、記憶部157に格納される。排他的論理和部156は、記憶部157から読み込んだ乱数k,…,kn+1を含む複数の値の排他的論理和k’を得て出力する。乱数k,…,kn+1を含む複数の値の排他的論理和k’は、乱数k,…,kn+1の排他的論理和であってもよいし、乱数k,…,kn+1と他の付加値との排他的論理和であってもよい。例えば、演算部153が乱数kを生成し、排他的論理和部156が乱数k,…,kn+1,kの排他的論理和
k’=k(+)…(+)kn+1(+)k
を得て出力する。
また排他的論理和部156は、w=2,…,n+1について、記憶部157から排他的論理和T,…,Tw‐1を読み込み、排他的論理和T,…,Tn‐1を空とした排他的論理和T,…,Tw‐1の排他的論理和
’=T(+)…(+)Tw‐1
を得て出力する。すなわち、2≦w≦nではT’=Tであり、w=n+1ではT’=T(+)Tである。
出力部152は、排他的論理和k’を端末装置100−1に対して送信し、排他的論理和T’,k’,T’を端末装置100−w(ただし、w=2,…,n+1)に対して送信する。
≪共有鍵生成(図13)≫
共有鍵生成の処理は、端末装置100−1(端末装置U)と端末装置100−n(端末装置U)と端末装置100−(n+1)(端末装置Un+1)とそれら以外の端末装置100−ρ(端末装置Uρ)とで相違する。
端末装置100−1(端末装置U):
排他的論理和k’は、端末装置100−1の入力部101−1に入力される。共有鍵生成部112−1は、当該排他的論理和k’と記憶部103−1から読み出した乱数kとの排他的論理和k’(+)kの関数値を共有鍵
SK=F’(k’(+)k
として得て出力する。
端末装置100−n(端末装置U):
排他的論理和T’,k’,T’は、端末装置100−nの入力部101−nに入力される。関数値復元部111−nは、当該排他的論理和T’と記憶部103−nから読み出した関数値K (L)との排他的論理和によって関数値K (L)を得て出力する。関数値K (L)が得られる理由は以下の通りである(排他的論理和T,…,Tn‐1は空であり、K (R)=K (L))。
’(+)K (L)
=T(+)…(+)Tn‐1(+)K (L)
=T(+)K (L)
=K (L)(+)K (R)(+)K (L)
=K (L)
乱数復元部113−nは、当該排他的論理和T’と当該関数値K (L)との排他的論理和によって乱数kの関数値B(k)を得て出力する。関数値B(k)が得られる理由は前述の通りである。
共有鍵生成部112−nは、関数値B(k)(例えば、B(k)=k|β)から乱数kを抽出し、排他的論理和k’と関数値B(k)から得られた乱数kとの排他的論理和k’(+)kの関数値を共有鍵
SK=F’(k’(+)k
として得て出力する。
端末装置100−(n+1)(端末装置Un+1):
排他的論理和T’,k’,Tn+1’は、端末装置100−(n+1)の入力部101−(n+1)に入力される。関数値復元部111−(n+1)は、当該排他的論理和Tn+1’と記憶部103−(n+1)から読み出した関数値Kn+1 (L)との排他的論理和によって関数値K (L)を得て出力する。なお、関数値K (L)が得られる理由は以下の通りである(排他的論理和T,…,Tn‐1は空であり、K (R)=K (L)かつK (R)=Kn+1 (L))。
n+1’(+)Kn+1 (L)
=T(+)…(+)T(+)Kn+1 (L)
=T(+)T(+)Kn+1 (L)
=K (L)(+)K (R)(+)K (L)(+)K (R)(+)Kn+1 (L)
=K (L)
乱数復元部113−(n+1)は、当該排他的論理和T’と当該関数値K (L)との排他的論理和によって乱数kの関数値B(k)を得て出力する。
共有鍵生成部112−(n+1)は、関数値B(k)(例えば、B(k)=k|β)から乱数kを抽出し、排他的論理和k’と関数値B(k)から得られた乱数kとの排他的論理和k’(+)kの関数値を共有鍵
SK=F’(k’(+)k
として得て出力する。
端末装置100−ρ(端末装置Uρ)(ρ=1,…,n−1):
排他的論理和T’,k’,Tρ’は、端末装置100−ρの入力部101−ρに入力される。関数値復元部111−ρは、当該排他的論理和Tρ’と記憶部103−ρから読み出した関数値rの関数値(=K (R))との排他的論理和によって関数値K (L)を得て出力する。
乱数復元部113−ρは、当該排他的論理和T’と当該関数値K (L)との排他的論理和によって乱数kの関数値B(k)を得て出力する。
共有鍵生成部112−ρは、関数値B(k)(例えば、B(k)=k|β)から乱数kを抽出し、排他的論理和k’と関数値B(k)から得られた乱数kとの排他的論理和k’(+)kの関数値を共有鍵
SK=F’(k’(+)k
として得て出力する。
各端末装置100−i”(端末装置Ui”)の記憶部103−i”(ただし、i”=1,…,n+1)には、新たな共通鍵SKを用いて更新された関数値r=F”(SK)および二者間共有鍵Hi” (L)=R(i”−2 mod n)+1,i”およびHi” (R)=Ri”,(i” mod n)+1が格納される。
<本形態の特徴>
本形態では、鍵カプセル型の二者間鍵交換を採用したため、公開鍵暗号方式の耐量子計算機暗号に則った二者間鍵交換が可能になり、これを利用して上述の処理を行うことで、追加された新たな端末装置との間で耐量子安全な多者間鍵交換を行うことができる。
[第3実施形態]
第3実施形態を説明する。第3実施形態では、第1実施形態の処理が行われた後、何れかの端末装置100−j(端末装置U)(jは1以上n以下の整数)がシステムから離脱し、残りのn−1個の端末装置100−1〜100−(j−1),100−(j+1)〜100−n(端末装置U,…,Uj−1,Uj+1,…,U)で新たな共有鍵SKを共有する。
<構成>
図14に例示するように、本形態の鍵交換システム3は、n個の端末装置100−1〜100−n(端末装置U,…,U)と鍵配送管理装置150とを有する。各端末装置100−i(端末装置U)(ただし、i=1,…,n)は、インターネット等を通じて鍵配送管理装置150と通信可能に構成されている。
<処理>
次に、端末装置100−jが鍵交換システム3から離脱した後の鍵交換処理を説明する。本形態の鍵交換処理は、Round1〜3および共有鍵生成を含む。前提として、各端末装置100−i(端末装置U)(図2)の記憶部103−i(ただし、i=1,…,n)には、第1実施形態の処理で得られた二者間共有鍵H (L)=R(i−2 mod n)+1,iおよびH (R)=Ri,(i mod n)+1が格納されていることにする。
≪Round1(図15)≫
端末装置100−((j mod n)+1)(端末装置U(j mod n)+1):
端末装置100−((j mod n)+1)(図2)の鍵ペア生成部105−((j mod n)+1)は、公開鍵暗号方式の耐量子計算機暗号に則った鍵カプセル復号鍵s
(j mod n)+1および当該鍵カプセル復号鍵sk(j mod n)+1に対応する鍵暗号化鍵pkからなる鍵ペア(pk(j mod n)+1,sk(j mod n)+1)を生成する。生成された鍵カプセル復号鍵sk(j mod n)+1および鍵暗号化鍵pk(j mod n)+1は記憶部103−((j mod n)+1)に格納される。また、鍵暗号化鍵pk(j mod n)+1は出力部102−1から出力され、鍵配送管理装置150に送信される。
鍵暗号化鍵pk(j mod n)+1は鍵配送管理装置150(図3)の入力部151に入力される。鍵暗号化鍵pk(j mod n)+1が入力部151に入力され次第、制御部154は当該鍵暗号化鍵pk(j mod n)+1を出力部152に送り、出力部152は当該鍵暗号化鍵pk(j mod n)+1を端末装置100−((j−2 mod n)+1)に送信する。
≪Round2(図16)≫
端末装置100−((j−2 mod n)+1)(端末装置U(j−2 mod n)+1):
端末装置100−((j−2 mod n)+1)(図2)の入力部101−((j−2 mod n)+1)は鍵暗号化鍵pk(j mod n)+1を受信し、鍵暗号化鍵pk(j mod n)+1を記憶部103−((j−2 mod n)+1)に格納する。
端末装置100−((j−2 mod n)+1)の乱数設定部106−((j−2 mod n)+1)は乱数k(j−2 mod n)+1を設定して出力する。乱数k(j−2 mod n)+1は記憶部103−((j−2 mod n)+1)に格納される。
二者間共有鍵生成部107−((j−2 mod n)+1)は、鍵暗号化鍵pk(j mod n)+1を用い、二者間共有鍵R(j−2 mod n)+1,(j mod n)+1および当該二者間共有鍵R(j−2 mod n)+1,(j mod n)+1の暗号文である鍵カプセルC(j−2 mod n)+1,(j mod n)+1を得て出力する。二者間共有鍵R(j−2 mod n)+1,(j mod n)+1は記憶部103−nに格納される。鍵カプセルC(j−2 mod n)+1,(j mod n)+1は出力部102−nから出力され、鍵配送管理装置150に送信される。
端末装置100−y(端末装置U)(y=1,…,nかつy≠jかつy≠(j−2)modn+1):
端末装置100−yの乱数設定部106−yは乱数kを設定して出力する。乱数kは記憶部103−(n+1)に格納される。ただし、y=1,…,nかつy≠jかつy≠(j−2)modn+1である。
鍵配送管理装置150(図3)の入力部151は、端末装置100−((j−2 mod n)+1)から送信された鍵カプセルC(j−2 mod n)+1,(j mod n)+1を受信する。SID設定部155はsidを新たに生成し、代表端末装置として端末装置100−((j−2 mod n)+1)を選択する。演算部153は(sid,C(j−2 mod n)+1,(j mod n)+1)を生成する。(sid,C(j−2mod n)+1,(j mod n)+1)は出力部152から出力され、端末装置100−((j−2 mod n)+1)に送信される。出力部152は、端末装置100−((j−2 mod n)+1)に対し、端末装置100−((j−2 mod n)+1)が代表端末装置として選択された旨を表す情報(代表通知)を送信する。さらにsidが出力部152から出力され、端末装置100−φに対して送信される。ただし、φ=1,…,nかつφ≠jかつx≠(φ mod n)+1である。
≪Round3(図17)≫
本形態のRound3の処理は、端末装置100−(j−1)(端末装置Uj−1)と端末装置100−(j+1)(端末装置Uj+2)と端末装置100−x(端末装置U)とで相違する。ただし、x=1,…,nかつx≠jかつx≠(j−2modn)+1かつx≠(jmodn)+1である。
端末装置100−((j−2 mod n)+1)(端末装置U(j−2mod n)+1):
関数演算部109−((j−2 mod n)+1)は、記憶部103−((j−2 mod n)+1)から二者間共有鍵H(j−2 mod n)+1 (L)=R(j−3mod n)+1,(j−2 mod n)+1を読み出し、当該二者間共有鍵H(j−2 mod n)+1 (L)の関数値K(j−2 mod n)+1 (L)を得て出力する。関数値K(j−2 mod n)+1 (L)は二者間共有鍵H(j−2 mod n)+1 (L)のみに依存する値であってもよいし、二者間共有鍵H(j−2 mod n)+1 (L)と他の付加情報とに依存する値であってもよい。ただし、K(j−2 mod n)+1 (L)=K(j−3 mod n)+1 (R)を満たさなければならない。例えば、関数演算部109−nは、二者間共有鍵H(j−2 mod n)+1 (L)=R(j−3mod n)+1,(j−2 mod n)+1とsidとに依存する関数値
(j−2mod n)+1 (L)
=F(sid,H(j−2 mod n)+1 (L)
=F(sid,R(j−3mod n)+1,(j−2 mod n)+1
を得て出力する。関数値K(j−2mod n)+1 (L)は記憶部103−((j−2 mod n)+1)に格納される。
関数演算部109−((j−2 mod n)+1)は、記憶部103−((j−2 mod n)+1)から二者間共有鍵R(j−2mod n)+1,(j mod n)+1を読み出し、当該二者間共有鍵R(j−2mod n)+1,(j mod n)+1の関数値K(j−2mod n)+1 (R)を得て出力する。関数値K(j−2mod n)+1 (R)は二者間共有鍵R(j−2mod n)+1,(j mod n)+1のみに依存する値であってもよいし、二者間共有鍵R(j−2mod n)+1,(j mod n)+1と他の付加情報とに依存する値であってもよい。ただし、K(j−2 mod n)+1 (R)=K(j mod n)+1 (L)を満たさなければならない。例えば、関数演算部109−((j−2 mod n)+1)は、二者間共有鍵R(j−2 mod n)+1,(jmod n)+1とsidとに依存する関数値
(j−2mod n)+1 (R)=F(sid,R(j−2mod n)+1,(j mod n)+1
を得て出力する。関数値K(j−2mod n)+1 (R)は記憶部103−((j−2 mod n)+1)に格納される。
関数値K(j−2mod n)+1 (L)と関数値K(j−2mod n)+1 (R)とは排他的論理和部110−((j−2 mod n)+1)に入力される。排他的論理和部110−((j−2 mod n)+1)は、関数値K(j−2mod n)+1 (L)と関数値K(j−2mod n)+1 (R)との排他的論理和
(j−2mod n)+1=K(j−2 mod n)+1 (L)(+)K(j−2mod n)+1 (R)
を得て出力する。
排他的論理和部110−((j−2 mod n)+1)には、さらに記憶部103−((j−2 mod n)+1)から読み込まれた乱数k(j−2 mod n)+1が入力される。排他的論理和部110−((j−2 mod n)+1)は、乱数k(j−2 mod n)+1の関数値B(k(j−2 mod n)+1)と関数値K(j−2 mod n)+1 (L)との排他的論理和
T’=B(k(j−2 mod n)+1)(+)K(j−2 mod n)+1 (L)
を得て出力する。関数値B(k(j−2 mod n)+1)の例は乱数k(j−2 mod n)+1と他の付加情報βとのビット連結k(j−2 mod n)+1|βである。
排他的論理和T(j−2mod n)+1および排他的論理和T’は出力部102−((j−2 mod n)+1)から出力され、鍵配送管理装置150に送信される。
端末装置100−((j mod n)+1)(端末装置U(jmod n)+1):
(sid,C(j−2mod n)+1,(j mod n)+1)は、端末装置100−((j mod n)+1)の入力部101−((j mod n)+1)に入力される。
復号部108−((j mod n)+1)は、記憶部103−((j mod n)+1)から読み出した鍵カプセル復号鍵sk(jmod n)+1を用い、鍵カプセルC(j−2 mod n)+1,(jmod n)+1を復号して二者間共有鍵R(j−2 mod n)+1,(jmod n)+1を得て出力する。二者間共有鍵R(j−2 mod n)+1,(jmod n)+1は記憶部103−((j mod n)+1)に格納される。
関数演算部109−((j mod n)+1)は、二者間共有鍵R(j−2mod n)+1,(j mod n)+1の関数値K(jmod n)+1 (L)を得て出力する。関数値K(jmod n)+1 (L)は二者間共有鍵R(j−2mod n)+1,(j mod n)+1のみに依存する値であってもよいし、二者間共有鍵R(j−2mod n)+1,(j mod n)+1と他の付加情報とに依存する値であってもよい。ただし、K(j mod n)+1 (L)=K(j−2 mod n)+1 (R)を満たさなければならない。例えば、関数演算部109−((j mod n)+1)は、二者間共有鍵R(j−2mod n)+1,(j mod n)+1とsidとに依存する関数値
(jmod n)+1 (L)=F(sid,R(j−2mod n)+1,(j mod n)+1
を得て出力する。関数値K(jmod n)+1 (L)は記憶部103−((j mod n)+1)に格納される。
関数演算部109−((j mod n)+1)は、記憶部103−((j mod n)+1)から二者間共有鍵H(jmod n)+1 (R)=R(jmod n)+1,(j+1 mod n)+1を読み出し、当該二者間共有鍵H(jmod n)+1 (R)の関数値K(jmod n)+1 (R)を得て出力する。関数値K(jmod n)+1 (R)は二者間共有鍵H(jmod n)+1 (R)のみに依存する値であってもよいし、二者間共有鍵H(jmod n)+1 (R)と他の付加情報とに依存する値であってもよい。ただし、K(j mod n)+1 (R)=K(j+1 mod n)+1 (L)を満たさなければならない。例えば、関数演算部109−((j mod n)+1)は、二者間共有鍵H(jmod n)+1 (R)とsidとに依存する関数値
(jmod n)+1 (R)
=F(sid,H(jmod n)+1 (R)
=F(sid,R(jmod n)+1,(j+1 mod n)+1
を得て出力する。関数値K(jmod n)+1 (R)は記憶部103−((j mod n)+1)に格納される。
関数値K(jmod n)+1 (L)と関数値K(jmod n)+1 (R)とは排他的論理和部110−((j mod n)+1)に入力される。排他的論理和部110−((j mod n)+1)は、関数値K(jmod n)+1 (L)と関数値K(jmod n)+1 (R)との排他的論理和
(jmod n)+1=K(j mod n)+1 (L)(+)K(jmod n)+1 (R)
を得て出力する。
乱数k(jmod n)+1および排他的論理和T(j mod n)+1は出力部102−((j mod n)+1)から出力され、鍵配送管理装置150に送信される。
端末装置100−x(端末装置U)(x=1,…,nかつx≠jかつx≠(j−2modn)+1かつx≠(jmodn)+1):
関数演算部109−xは、記憶部103−xから二者間共有鍵H (L)=R(x−2mod n)+1,xを読み出し、当該二者間共有鍵H (L)の関数値K (L)を得て出力する。関数値K (L)は二者間共有鍵H (L)のみに依存する値であってもよいし、二者間共有鍵H (L)と他の付加情報とに依存する値であってもよい。ただし、K (L)=K(x−2 mod n)+1 (R)を満たさなければならない。例えば、関数演算部109−xは、二者間共有鍵H (L)とsidとに依存する関数値
(L)=F(sid,H (L))=F(sid,R(x−2mod n)+1,x
を得て出力する。関数値K (L)は記憶部103−xに格納される。
関数演算部109−xは、記憶部103−xから二者間共有鍵H (R)=Rx,(xmod n)+1を読み出し、当該二者間共有鍵H (R)の関数値K (R)を得て出力する。関数値K (R)は二者間共有鍵H (R)のみに依存する値であってもよいし、二者間共有鍵H (R)と他の付加情報とに依存する値であってもよい。ただし、K (R)=K(x mod n)+1 (L)を満たさなければならない。例えば、関数演算部109−xは、二者間共有鍵H (R)とsidとに依存する関数値
(R)=F(sid,H (R))=F(sid,Rx,(xmod n)+1
を得て出力する。関数値K (R)は記憶部103−xに格納される。
関数値K (L)と関数値K (R)とは排他的論理和部110−xに入力される。排他的論理和部110−xは、関数値K (L)と関数値K (R)との排他的論理和
=K (L)(+)K (R)
を得て出力する。
記憶部103−xから読み出された乱数kおよび排他的論理和Tは出力部102−xから出力され、鍵配送管理装置150に送信される。
排他的論理和T,…,Tn+1(ただし、Tを除く)、T’、および乱数k,…,k(ただし、k,kj+1を除く)は、鍵配送管理装置150(図3)の入力部151に入力され、記憶部157に格納される。排他的論理和部156は、記憶部157から読み込んだ乱数k,…,k(ただし、k,kj+1を除く)を含む複数の値の排他的論理和k’を得て出力する。この排他的論理和k’は、乱数k,…,k(ただし、k,kj+1を除く)の排他的論理和であってもよいし、乱数k,…,k(ただし、k,kj+1を除く)と他の付加値との排他的論理和であってもよい。例えば、演算部153が乱数kを生成し、排他的論理和部156が乱数k,…,k(ただし、k,kj+1を除く)の排他的論理和
k’=k(+)…(+)kj‐1(+)kj+2(+)…(+)k(+)k
を得て出力する。
また排他的論理和部156は、y=1,…,n(ただし、y≠jかつy≠(j−2modn)+1)について、y<j−1のときに排他的論理和T,…,Ty‐1,Tj‐1,…,Tの排他的論理和T’を得て出力し、j+1≦yのときに排他的論理和Tj‐1,…,Ty‐1の排他的論理和T’を得て出力する。
y<j−1のとき:T’=T(+)…(+)Ty‐1(+)Tj‐1(+)…(+)T
j+1≦yのとき:T’=Tj‐1(+)…(+)Ty‐1
出力部152は、排他的論理和k’を端末装置100−((j−2 mod n)+1)に対して送信し、排他的論理和T’,k’,T’を端末装置100−y(ただし、ただし、y≠jかつy≠(j−2)modn+1)に対して送信する。
≪共有鍵生成(図18)≫
共有鍵生成の処理は、端末装置100−(j−1)(端末装置Uj−1)と端末装置100−y(端末装置U)(ただし、y≠jかつy≠(j−2modn)+1)とで相違する。離脱した端末装置100−j(端末装置U)では共有鍵生成が行われない。
端末装置100−y(端末装置U):
排他的論理和T’,k’,T’ 、端末装置100−yの入力部101−yに入力される。関数値復元部111−yは、当該排他的論理和T’と記憶部103−yから読み出した関数値K (L)との排他的論理和によって関数値K(j−2 mod n)+1 (L)を得て出力する。関数値K(j−2 mod n)+1 (L)が得られる理由は以下の通りである。
y<j−1のとき:
’(+)K (L)
=T(+)…(+)Ty‐1(+)Tj‐1(+)…(+)T(+)K (L)
=K (L)(+)K (R)(+)K (L)(+)K (R)…(+)Ky‐1 (L)(+)Ky‐1 (R)(+)Kj‐1 (L)(+)Kj‐1 (R)(+)…(+)K (L)(+)K (R)(+)K (L)
=Kj‐1 (L)(+){K (R)(+)K (L)(+)K (R)…(+)Ky‐1 (L)}(+){Kj‐1 (R)(+)…(+)K (L)}(+){K (R)(+)K (L)}(+){Ky‐1 (R)(+)K (L)
=Kj‐1 (L)
j+1≦yのとき:
’(+)K (L)
=Tj‐1(+)…(+)Ty‐1(+)K (L)
=Kj‐1 (L)
乱数復元部113−yは、当該排他的論理和T’と当該関数値K(j−2 mod n)+1 (L)との排他的論理和によって乱数k(j−2 mod n)+1の関数値B(k(j−2 mod n)+1)を得て出力する。関数値B(k(j−2 mod n)+1)が得られる理由は以下の通りである。
T’(+)K(j−2 mod n)+1 (L)
=B(k(j−2 mod n)+1)(+)K(j−2 mod n)+1 (L)(+)K(j−2 mod n)+1 (L)
=B(k(j−2 mod n)+1
共有鍵生成部112−yは、関数値B(k(j−2 mod n)+1)(例えば、B(k(j−2 mod n)+1)=k(j−2 mod n)+1|β)から乱数k(j−2 mod n)+1を抽出し、排他的論理和k’と関数値B(k(j−2 mod n)+1)から得られた乱数k(j−2 mod n)+1との排他的論理和k’(+)k(j−2 mod n)+1の関数値を共有鍵
SK=F’(k’)(+)k(j−2 mod n)+1
として得て出力する。
端末装置100−(j−1)(端末装置Uj−1):
排他的論理和k’は、端末装置100−(j−1)の入力部101−(j−1)に入力される。共有鍵生成部112−(j−1)は、当該排他的論理和k’と記憶部103−(j−1)から読み出した乱数k(j−2 mod n)+1との排他的論理和k’(+)k(j−2 mod n)+1の関数値を共有鍵
SK=F’(k’)(+)k(j−2 mod n)+1
として得て出力する。
各端末装置100−i(端末装置U)の記憶部103−i(ただし、i=1,…,n、i≠j)には、新たな共通鍵SKを用いて更新された関数値r=F”(SK)および二者間共有鍵H (L)=R(i−2 mod n)+1,iおよびH (R)=Ri,(imod n)+1が格納される。
<本形態の特徴>
本形態では、鍵カプセル型の二者間鍵交換を採用したため、公開鍵暗号方式の耐量子計算機暗号に則った二者間鍵交換が可能になる。これを利用して上述の処理を行うことで、任意の端末装置がシステムから離脱した後に、残りの端末装置の間で耐量子安全な多者間鍵交換を行うことができる。また、第1実施形態の処理で得られた二者間共有鍵H (L)=R(i−2 mod n)+1,iおよびH (R)=Ri,(i mod n)+1を再利用することで演算量および通信料を削減できる。
[実施例]
耐量子計算機暗号として格子暗号を用いる場合、各実施形態で説明した鍵カプセル復号鍵skνはκ(ν)個の整数からなるベクトルsνであり、鍵暗号化鍵pkνはbν=Aνν+eνである。また、鍵カプセルCν,(νmod μ)+1は{γν,ξν’}であり、二者間共有鍵Rν,(νmod μ)+1はROUND(2ξν /q)である。ただし、Aνはκ(ν)×κ(ν)の基底行列であり、κ(ν)およびκ(ν)は正整数であり、νおよびμは正整数であり、eνはκ(ν)個の要素からなるベクトルである。γν=Aνν’+eν’であり、ξν’はfloor(4ξν /q)mod2である。sν’はκ(ν)個の整数からなるベクトル(例えば、正規分布に従ってランダムに選択されたベクトル)であり、eν’およびeν”はκ(ν)個の要素からなるベクトル(例えば、正規分布に従ってランダムに選択されたベクトル)である。ξν=b(νmod μ)+1ν’+eν”であり、ξν はξνのランダム関数値(ξνをランダム関数に適用して得られる値)である。qは2以上の整数であり、floorは床関数であり、ROUNDは四捨五入関数である。
各端末装置が公知のコミットメントアルゴリズム(例えば、参考文献3)を用い、乱数kにコミットメントとでコミットメントを生成し、二者間共有鍵の鍵カプセルとともに出力してもよい。sidが各端末装置から出力されたコミットメントの関数値であってもよい。各端末装置が各情報の認証子を生成して出力し、他の端末装置または鍵配送管理装置で認証子の検証が行われてもよい。共有鍵SKがさらにsidに依存する関数値であってもよい。共有鍵SKがさらに属性ベースアルゴリズム(参考文献2)に基づいて得られた暗号文の復号値に依存する関数値であってもよい。sidが省略されてもよい。
参考文献3(コミットメントアルゴリズム):Fabrice Benhamouda, Stephan Krenn, Vadim Lyuba-shevsky, Krzysztof Pietrzak, "Effcient Zero-Knowledge Proofs for Commitments from Learning With Errors over Rings," In: ESORICS: European Symposium on Research in Computer Security, September 21-25, 2015.
[その他の変形例]
なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上記の各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されるのではなく、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
本発明の多者間鍵交換技術は、例えば、暗号技術を用いたアプリケーションに利用できる。例えば、本発明の多者間鍵交換技術は、複数人がアクセス可能なデータの暗号化、多者間通信でやり取りされるデータの暗号化、多者間での電子署名および署名検証、電子投票、または電子マネーなどの様々な実用的なアプリケーションで用いられる共通鍵の交換(共有)処理に利用できる。
1〜3 鍵交換システム
100−1〜(n+1) 端末装置
多者間鍵交換技術にはmesh型の鍵交換であるGKE(Group Key Exchange)とstar型の鍵交換であるMKD(Multi Key Distribution)がある。これらの鍵交換は参加人数に比例して通信コストが上がる、鍵配送管理装置に共有鍵を伝達してしまう等の課題があった。これらの課題を解決したのがDMKD(Dynamic Multi-Cast Key Distribution: Scalable, Dynamic and Provably Secure Construction)である(例えば、特許文献1および非特許文献1等参照)。この方式では、人数に依らず定数Roundで鍵交換を行うことができ、鍵配送管理装置にも共有鍵を秘匿できる。
[図1]図1は第1実施形態の鍵交換システムの構成を例示したブロック図である。
[図2]図2は実施形態の端末装置の構成を例示したブロック図である。
[図3]図3は実施形態の鍵配送管理装置の構成を例示したブロック図である。
[図4]図4は実施形態の鍵交換方法(Round1)を説明するための図である。
[図5]図5は実施形態の鍵交換方法(Round2)を説明するための図である。
[図6]図6は実施形態の鍵交換方法(Round3)を説明するための図である。
[図7]図7は実施形態の鍵交換方法(共有鍵生成)を説明するための図である。
[図8]図8は第2実施形態の鍵交換システムの構成を例示したブロック図である。
[図9]図9は実施形態の端末装置の構成を例示したブロック図である。
[図10]図10は端末装置が追加された際に行われる実施形態の鍵交換方法(Roun
d1)を説明するための図である。
[図11]図11は端末装置が追加された際に行われる実施形態の鍵交換方法(Roun
d2)を説明するための図である。
[図12]図12は端末装置が追加された際に行われる実施形態の鍵交換方法(Roun
d3)を説明するための図である。
[図13]図13は端末装置が追加された際に行われる実施形態の鍵交換方法(共有
鍵生成)を説明するための図である。
[図14]図14は第3実施形態の鍵交換システムの構成を例示したブロック図であ
る。
[図15]図15は端末装置が除外された際に行われる実施形態の鍵交換方法(Roun
d1)を説明するための図である。
[図16]図16は端末装置が除外された際に行われる実施形態の鍵交換方法(Roun
d2)を説明するための図である。
[図17]図17は端末装置が除外された際に行われる実施形態の鍵交換方法(Roun
d3)を説明するための図である。
[図18]図18は端末装置が除外された際に行われる実施形態の鍵交換方法(共有
鍵生成)を説明するための図である。
各端末装置100−i(端末装置U)の記憶部103−i(ただし、i=1,…,n)には、共鍵SKを用いて更新された関数値r=F”(SK)および二者間共有鍵H (L)=R(i−2 mod n)+1,iおよびH (R)=Ri,(i mod n)+1が格納される。
<処理>
次に、端末装置100−(n+1)が追加された後の鍵交換処理を説明する。本形態の鍵交換処理は、Round1〜3および共有鍵生成を含む。前提として、各端末装置100−i(端末装置U)(図2)の記憶部103−i(ただし、i=1,…,n)には、第1実施形態の処理で得られた共有鍵SKの関数値r=F”(SK)、二者間共有鍵H (L)=R(i−2 mod n)+1,iおよびH (R)=Ri,(i mod n)+1が格納されていることにする。
関数演算部109−nは、記憶部103−nから二者間共有鍵Rn,n+1を読み出し、当該二者間共有鍵 n,n+1 の関数値K (R)を得て出力する。関数値K (R)は二者間共有鍵 n,n+1 のみに依存する値であってもよいし、二者間共有鍵 n,n+1 と他の付加情報とに依存する値であってもよい。ただし、K (R)=Kn+1 (L)を満たさなければならない。例えば、関数演算部109−nは、二者間共有鍵 n,n+1 とsidとに依存する関数値
(R)=F(sid,Rn,n+1
を得て出力する。関数値K (R)は記憶部103−nに格納される。
次に、関数演算部109−(n+1)は、二者間共有鍵Rn,n+1の関数値Kn+1 (L)を得て出力する。関数値Kn+1 (L)は二者間共有鍵Rn,n+1のみに依存する値であってもよいし、二者間共有鍵Rn,n+1と他の付加情報とに依存する値であってもよい。ただし、Kn+1 (L)=K (R)を満たさなければならない。例えば、関数演算部109−(n+1)は、二者間共有鍵Rn,n+1とsidとに依存する関数
n+1 (L)=F(sid,Rn,n+1
を得て出力する。関数値 n+1 (L) は記憶部103−(n+1)に格納される。
各端末装置100−i”(端末装置Ui”)の記憶部103−i”(ただし、i”=1,…,n+1)には、新たな共鍵SKを用いて更新された関数値r=F”(SK)および二者間共有鍵Hi” (L)=R(i”−2 mod n)+1,i”およびHi” (R)=Ri”,(i” mod n)+1が格納される。
≪Round1(図15)≫
端末装置100−((j mod n)+1)(端末装置U(j mod n)+1):
端末装置100−((j mod n)+1)(図2)の鍵ペア生成部105−((j mod n)+1)は、公開鍵暗号方式の耐量子計算機暗号に則った鍵カプセル復号鍵sk(j mod n)+1および当該鍵カプセル復号鍵sk(j mod n)+1に対応する鍵暗号化鍵pk (j mod n)+1 からなる鍵ペア(pk(j mod n)+1,sk(j mod n)+1)を生成する。生成された鍵カプセル復号鍵sk(j mod n)+1および鍵暗号化鍵pk(j mod n)+1は記憶部103−((j mod n)+1)に格納される。また、鍵暗号化鍵pk(j mod n)+1は出力部102−((j mod n)+1)から出力され、鍵配送管理装置150に送信される。
二者間共有鍵生成部107−((j−2 mod n)+1)は、鍵暗号化鍵pk(j mod n)+1を用い、二者間共有鍵R(j−2 mod n)+1,(j mod n)+1および当該二者間共有鍵R(j−2 mod n)+1,(j mod n)+1の暗号文である鍵カプセルC(j−2 mod n)+1,(j mod n)+1を得て出力する。二者間共有鍵R(j−2 mod n)+1,(j mod n)+1は記憶部103−((j−2 mod n)+1)に格納される。鍵カプセルC(j−2mod n)+1,(j mod n)+1は出力部102−((j−2 mod n)+1)から出力され、鍵配送管理装置150に送信される。
端末装置100−y(端末装置U)(y=1,…,nかつy≠jかつy≠(j−2) mod n+1):
端末装置100−yの乱数設定部106−yは乱数kを設定して出力する。乱数kは記憶部103−に格納される。ただし、y=1,…,nかつy≠jかつy≠(j−2) mod n+1である。
鍵配送管理装置150(図3)の入力部151は、端末装置100−((j−2 mod n)+1)から送信された鍵カプセルC(j−2 mod n)+1,(j mod n)+1を受信する。SID設定部155はsidを新たに生成し、代表端末装置として端末装置100−((j−2 mod n)+1)を選択する。演算部153は(sid,C(j−2 mod n)+1,(j mod n)+1)を生成する。(sid,Cj−2 mod n)+1,(j mod n)+1)は出力部152から出力され、端末装置100−((j−2 mod n)+1)に送信される。出力部152は、端末装置100−((j−2 mod n)+1)に対し、端末装置100−((j−2 mod n)+1)が代表端末装置として選択された旨を表す情報(代表通知)を送信する。さらにsidが出力部152から出力され、端末装置100−φに対して送信される。ただし、φ=1,…,nかつφ≠jかつx≠(φ modn)+1である。
≪Round3(図17)≫
本形態のRound3の処理は、端末装置100−(j−1)(端末装置Uj−1)と端末装置100−(j+1)(端末装置 j+1 )と端末装置100−x(端末装置U)とで相違する。ただし、x=1,…,nかつx≠jかつx≠(j−2 mod n)+1かつx≠(j mod n)+1である。
端末装置100−((j−2 mod n)+1)(端末装置Uj−2 mod n)+1 ):
関数演算部109−((j−2 mod n)+1)は、記憶部103−((j−2 mod n)+1)から二者間共有鍵H(j−2 mod n)+1 (L)=Rj−3 mod n)+1,(j−2 mod n)+1を読み出し、当該二者間共有鍵H(j−2 mod n)+1 (L)の関数値K(j−2 mod n)+1 (L)を得て出力する。関数値K(j−2 mod n)+1 (L)は二者間共有鍵H(j−2 mod n)+1 (L)のみに依存する値であってもよいし、二者間共有鍵H(j−2 mod n)+1 (L)と他の付加情報とに依存する値であってもよい。ただし、K(j−2 mod n)+1 (L)=K(j−3 mod n)+1 (R)を満たさなければならない。例えば、関数演算部109−nは、二者間共有鍵H(j−2 mod n)+1 (L)=Rj−3 mod n)+1,(j−2 mod n)+1とsidとに依存する関数値
j−2 mod n)+1 (L)
=F(sid,H(j−2 mod n)+1 (L)
=F(sid,R(j−3 mod n)+1,(j−2 mod n)+1
を得て出力する。関数値Kj−2 mod n)+1 (L)は記憶部103−((j−2modn)+1)に格納される。
関数演算部109−((j−2 mod n)+1)は、記憶部103−((j−2 mod n)+1)から二者間共有鍵Rj−2 mod n)+1,(j mod n)+1を読み出し、当該二者間共有鍵Rj−2 mod n)+1,(j mod n)+1の関数値Kj−2 mod n)+1 (R)を得て出力する。関数値Kj−2 mod n)+1 (R)は二者間共有鍵Rj−2 mod n)+1,(j mod n)+1のみに依存する値であってもよいし、二者間共有鍵Rj−2 mod n)+1,(j mod n)+1と他の付加情報とに依存する値であってもよい。ただし、K(j−2 mod n)+1 (R)=K(j mod n)+1 (L)を満たさなければならない。例えば、関数演算部109−((j−2 mod n)+1)は、二者間共有鍵R(j−2 mod n)+1,(j mod n)+1とsidとに依存する関数値
j−2 mod n)+1 (R)=F(sid,Rj−2 mod n)+1,(j mod n)+1
を得て出力する。関数値Kj−2 mod n)+1 (R)は記憶部103−((j−2modn)+1)に格納される。
関数値Kj−2 mod n)+1 (L)と関数値Kj−2 mod n)+1 (R)とは排他的論理和部110−((j−2 mod n)+1)に入力される。排他的論理和部110−((j−2 mod n)+1)は、関数値Kj−2 mod n)+1 (L)と関数値Kj−2 mod n)+1 (R)との排他的論理和
j−2 mod n)+1=K(j−2 mod n)+1 (L)(+)Kj−2 mod n)+1 (R)
を得て出力する。
排他的論理和Tj−2 mod n)+1および排他的論理和T’は出力部102−((j−2 mod n)+1)から出力され、鍵配送管理装置150に送信される。
端末装置100−((j mod n)+1)(端末装置Uj mod n)+1):
(sid,Cj−2 mod n)+1,(j mod n)+1)は、端末装置100−((j mod n)+1)の入力部101−((j mod n)+1)に入力される。
復号部108−((j mod n)+1)は、記憶部103−((j mod n)+1)から読み出した鍵カプセル復号鍵skj mod n)+1を用い、鍵カプセルC(j−2 mod n)+1,(j mod n)+1を復号して二者間共有鍵R(j−2 mod n)+1,(j mod n)+1を得て出力する。二者間共有鍵R(j−2 mod n)+1,(j mod n)+1は記憶部103−((j mod n)+1)に格納される。
関数演算部109−((j mod n)+1)は、二者間共有鍵Rj−2 mod n)+1,(j mod n)+1の関数値Kj mod n)+1 (L)を得て出力する。関数値Kj mod n)+1 (L)は二者間共有鍵Rj−2 mod n)+1,(j mod n)+1のみに依存する値であってもよいし、二者間共有鍵Rj−2 mod n)+1,(j mod n)+1と他の付加情報とに依存する値であってもよい。ただし、K(j mod n)+1 (L)=K(j−2 mod n)+1 (R)を満たさなければならない。例えば、関数演算部109−((j mod n)+1)は、二者間共有鍵Rj−2 mod n)+1,(j mod n)+1とsidとに依存する関数値
j mod n)+1 (L)=F(sid,Rj−2 mod n)+1,(j mod n)+1
を得て出力する。関数値Kj mod n)+1 (L)は記憶部103−((j mod n)+1)に格納される。
関数演算部109−((j mod n)+1)は、記憶部103−((j mod n)+1)から二者間共有鍵Hj mod n)+1 (R)=Rj mod n)+1,(j+1 mod n)+1を読み出し、当該二者間共有鍵Hj mod n)+1 (R)の関数値Kj mod n)+1 (R)を得て出力する。関数値Kj mod n)+1 (R)は二者間共有鍵Hj mod n)+1 (R)のみに依存する値であってもよいし、二者間共有鍵Hj mod n)+1 (R)と他の付加情報とに依存する値であってもよい。ただし、K(j mod n)+1 (R)=K(j+1 mod n)+1 (L)を満たさなければならない。例えば、関数演算部109−((j mod n)+1)は、二者間共有鍵Hj mod n)+1 (R)とsidとに依存する関数値
j mod n)+1 (R)
=F(sid,Hj mod n)+1 (R)
=F(sid,Rj mod n)+1,(j+1 mod n)+1
を得て出力する。関数値Kj mod n)+1 (R)は記憶部103−((j mod n)+1)に格納される。
関数値Kj mod n)+1 (L)と関数値Kj mod n)+1 (R)とは排他的論理和部110−((j mod n)+1)に入力される。排他的論理和部110−((j mod n)+1)は、関数値Kj mod n)+1 (L)と関数値Kj mod n)+1 (R)との排他的論理和
j mod n)+1=K(j mod n)+1 (L)(+)Kj mod n)+1 (R)
を得て出力する。
乱数kj mod n)+1および排他的論理和T(j mod n)+1は出力部102−((j mod n)+1)から出力され、鍵配送管理装置150に送信される。
端末装置100−x(端末装置U)(x=1,…,nかつx≠jかつx≠(j−2 mod n)+1かつx≠(j mod n)+1):
関数演算部109−xは、記憶部103−xから二者間共有鍵H (L)=Rx−2 mod n)+1,xを読み出し、当該二者間共有鍵H (L)の関数値K (L)を得て出力する。関数値K (L)は二者間共有鍵H (L)のみに依存する値であってもよいし、二者間共有鍵H (L)と他の付加情報とに依存する値であってもよい。ただし、K (L)=K(x−2 mod n)+1 (R)を満たさなければならない。例えば、関数演算部109−xは、二者間共有鍵H (L)とsidとに依存する関数値
(L)=F(sid,H (L))=F(sid,Rx−2 mod n)+1,x
を得て出力する。関数値K (L)は記憶部103−xに格納される。
関数演算部109−xは、記憶部103−xから二者間共有鍵H (R)=Rx,(x mod n)+1を読み出し、当該二者間共有鍵H (R)の関数値K (R)を得て出力する。関数値K (R)は二者間共有鍵H (R)のみに依存する値であってもよいし、二者間共有鍵H (R)と他の付加情報とに依存する値であってもよい。ただし、K (R)=K(x mod n)+1 (L)を満たさなければならない。例えば、関数演算部109−xは、二者間共有鍵H (R)とsidとに依存する関数値
(R)=F(sid,H (R))=F(sid,Rx,(x mod n)+1
を得て出力する。関数値K (R)は記憶部103−xに格納される。
排他的論理和T,…,Tn+1(ただし、Tを除く)、T’、および乱数k,…,k(ただし、k,kj+1を除く)は、鍵配送管理装置150(図3)の入力部151に入力され、記憶部157に格納される。排他的論理和部156は、記憶部157から読み込んだ乱数k,…,k(ただし、k,kj+1を除く)を含む複数の値の排他的論理和k’を得て出力する。この排他的論理和k’は、乱数k,…,k(ただし、k,kj+1を除く)の排他的論理和であってもよいし、乱数k,…,k(ただし、k,kj+1を除く)と他の付加値との排他的論理和であってもよい。例えば、演算部153が乱数kを生成し、排他的論理和部156が乱数k,…,k(ただし、k,kj+1を除く),k の排他的論理和
k’=k(+)…(+)kj‐1(+)kj+2(+)…(+)k(+)k
を得て出力する。
また排他的論理和部156は、y=1,…,n(ただし、y≠jかつy≠(j−2 mod n)+1)について、y<j−1のときに排他的論理和T,…,Ty‐1,Tj‐1,…,Tの排他的論理和T’を得て出力し、j+1≦yのときに排他的論理和Tj‐1,…,Ty‐1の排他的論理和T’を得て出力する。
y<j−1のとき:T’=T(+)…(+)Ty‐1(+)Tj‐1(+)…(+)T
j+1≦yのとき:T’=Tj‐1(+)…(+)Ty‐1
出力部152は、排他的論理和k’を端末装置100−((j−2 mod n)+1)に対して送信し、排他的論理和T’,k’,T’を端末装置100−y(ただし、y≠jかつy≠(j−2) mod n+1)に対して送信する。
≪共有鍵生成(図18)≫
共有鍵生成の処理は、端末装置100−(j−1)(端末装置Uj−1)と端末装置100−y(端末装置U)(ただし、y≠jかつy≠(j−2 mod n)+1)とで相違する。離脱した端末装置100−j(端末装置U)では共有鍵生成が行われない。
端末装置100−y(端末装置U):
排他的論理和T’,k’, ’は、端末装置100−yの入力部101−yに入力される。関数値復元部111−yは、当該排他的論理和T’と記憶部103−yから読み出した関数値K (L)との排他的論理和によって関数値K(j−2 mod n)+1 (L)を得て出力する
数復元部113−yは、当該排他的論理和T’と当該関数値K(j−2 mod n)+1 (L)との排他的論理和によって乱数k(j−2 mod n)+1の関数値B(k(j−2 mod n)+1)を得て出力する。関数値B(k(j−2 mod n)+1)が得られる理由は以下の通りである。
T’(+)K(j−2 mod n)+1 (L)
=B(k(j−2 mod n)+1)(+)K(j−2 mod n)+1 (L)(+)K(j−2 mod n)+1 (L)
=B(k(j−2 mod n)+1
各端末装置100−i(端末装置U)の記憶部103−i(ただし、i=1,…,n、i≠j)には、新たな共鍵SKを用いて更新された関数値r=F”(SK)および二者間共有鍵H (L)=R(i−2 mod n)+1,iおよびH (R)=Ri,(i mod n)+1が格納される。
<本形態の特徴>
本形態では、鍵カプセル型の二者間鍵交換を採用したため、公開鍵暗号方式の耐量子計算機暗号に則った二者間鍵交換が可能になる。これを利用して上述の処理を行うことで、任意の端末装置がシステムから離脱した後に、残りの端末装置の間で耐量子安全な多者間鍵交換を行うことができる。また、第1実施形態の処理で得られた二者間共有鍵H (L)=R(i−2 mod n)+1,iおよびH (R)=Ri,(i mod n)+1を再利用することで演算量および通信を削減できる。
各端末装置が公知のコミットメントアルゴリズム(例えば、参考文献3)を用い、乱数kにコミットメントとでコミットメントを生成し、二者間共有鍵の鍵カプセルとともに出力してもよい。sidが各端末装置から出力されたコミットメントの関数値であってもよい。各端末装置が各情報の認証子を生成して出力し、他の端末装置または鍵配送管理装置で認証子の検証が行われてもよい。共有鍵SKがさらにsidに依存する関数値であってもよい。共有鍵SKがさらに属性ベースアルゴリズム(参考文献2)に基づいて得られた暗号文の復号値に依存する関数値であってもよい。sidが省略されてもよい。
参考文献3(コミットメントアルゴリズム):Fabrice Benhamouda, Stephan Krenn, Vadim Lyubashevsky, Krzysztof Pietrzak, "Efficient Zero-Knowledge Proofs for Commitments from Learning With Errors over Rings," In: ESORICS: European Symposium on Research in Computer Security, September 21-25, 2015.
本発明の多者間鍵交換技術は、例えば、暗号技術を用いたアプリケーションに利用できる。例えば、本発明の多者間鍵交換技術は、複数人がアクセス可能なデータの暗号化、多者間通信でやり取りされるデータの暗号化、多者間での電子署名および署名検証、電子投票、または電子マネーなどの様々な実用的なアプリケーションで用いられる共鍵の交換(共有)処理に利用できる。

Claims (9)

  1. 端末装置U,…,Uと鍵配送管理装置と有し、nが3以上の整数であり、i=1,…,nであり、v=2,…,nであり、正整数αに対して−1 mod α=α−1であり、
    端末装置Uは、
    公開鍵暗号方式の耐量子計算機暗号に則った鍵カプセル復号鍵skを格納する第i記憶部と、
    前記鍵カプセル復号鍵skに対応する鍵暗号化鍵pkを出力する第i出力部と、
    前記耐量子計算機暗号に則った鍵暗号化鍵pk(i mod n)+1を受け付ける第i入力部と、
    乱数kを設定する第i乱数設定部と、
    前記鍵暗号化鍵pk(i mod n)+1を用い、二者間共有鍵Ri,(i mod n)+1および前記二者間共有鍵Ri,(i mod n)+1の暗号文である鍵カプセルCi,(i mod n)+1を得る第i二者間共有鍵生成部と、
    前記鍵カプセルCi,(i mod n)+1を出力する前記第i出力部と、を含み、
    前記第i入力部は、鍵カプセルC(i−2 mod n)+1,iを受け付け、
    端末装置Uは、
    鍵カプセル復号鍵skを用いて鍵カプセルCn,1を復号して二者間共有鍵Rn,1を得る第1復号部と、
    前記二者間共有鍵Rn,1の関数値K (L)を得、二者間共有鍵R1,2の関数値K (R)を得る第1関数演算部と、
    前記関数値K (L)と前記関数値K (R)との排他的論理和Tを得、乱数kの関数値と前記関数値K (L)との排他的論理和T’を得る第1排他的論理和部と、
    前記排他的論理和TおよびT’を出力する第1出力部と、を含み、
    端末装置Uは、
    鍵カプセル復号鍵skを用いて鍵カプセルC(v−2 mod n)+1,vを復号して二者間共有鍵R(v−2 mod n)+1,vを得る第v復号部と、
    前記二者間共有鍵R(v−2 mod n)+1,vの関数値K (L)を得、二者間共有鍵Rv,(v mod n)+1の関数値K (R)を得る第v関数演算部と、
    前記関数値K (L)と前記関数値K (R)との排他的論理和Tを得る第v排他的論理和部と、
    乱数kおよび前記排他的論理和Tを出力する第v出力部と、を含み、
    前記鍵配送管理装置は、
    前記乱数k,…,kを含む複数の値の排他的論理和k’を得て出力し、排他的論理和T,…,Tv‐1の排他的論理和T’を得て出力する排他的論理和部と、を含み、
    前記端末装置Uは、
    前記排他的論理和k’と前記乱数kとの排他的論理和の関数値を共有鍵SKとして得る第1共有鍵生成部を含み、
    前記端末装置Uは、
    前記排他的論理和T’と前記関数値K (L)との排他的論理和によって前記関数値K (L)を得る第v関数値復元部と、
    前記排他的論理和T’と前記関数値K (L)との排他的論理和によって前記乱数kの関数値を得る第v乱数復元部と、
    前記排他的論理和k’と前記乱数kの関数値から得られる前記乱数kとの排他的論理和の関数値を前記共有鍵SKとして得る第v共有鍵生成部と、を含む鍵交換システム。
  2. 端末装置U,…,Un+1と鍵配送管理装置と有し、nが3以上の整数であり、i=1,…,nであり、v=2,…,nであり、w=2,…,n+1であり、z=2,…,n−1であり、ρ=1,…,n−1であり、正整数αに対して−1 mod α=α−1であり、
    端末装置Uは関数値rを格納する第i記憶部を含み、
    端末装置Uは、
    公開鍵暗号方式の耐量子計算機暗号に則った鍵カプセル復号鍵skを格納する第1記憶部と、
    前記鍵カプセル復号鍵skに対応する鍵暗号化鍵pkを出力する第1出力部と、を含み、
    端末装置Un+1は、
    前記耐量子計算機暗号に則った鍵カプセル復号鍵skn+1を格納する第(n+1)記憶部と、
    前記鍵カプセル復号鍵skn+1に対応する鍵暗号化鍵pkn+1を出力する第(n+1)出力部と、を含み、
    端末装置Uは、
    前記鍵暗号化鍵pkn+1を受け付ける第n入力部を含み、
    乱数kを設定する第n乱数設定部と、
    前記鍵暗号化鍵pkn+1を用い、二者間共有鍵Rn,n+1および前記二者間共有鍵Rn,n+1の暗号文である鍵カプセルCn,n+1を得る第n二者間共有鍵生成部と、
    前記鍵カプセルCn,n+1を出力する第n出力部と、を含み、
    前記端末装置Un+1は、
    前記鍵暗号化鍵pkを受け付ける第(n+1)入力部と、
    乱数kn+1を設定する第(n+1)乱数設定部と、
    前記鍵暗号化鍵pkを用い、二者間共有鍵Rn+1,1および前記二者間共有鍵Rn+1,1の暗号文である鍵カプセルCn+1,1を得る第(n+1)二者間共有鍵生成部と、
    前記鍵カプセルCn+1,1を出力する前記第(n+1)出力部と、
    前記鍵カプセルCn,n+1を受け付ける前記第(n+1)入力部と、を含み、
    前記端末装置Uρは、乱数kρを設定する第ρ乱数設定部を含み、
    前記端末装置Uは、
    前記鍵カプセルCn+1,1を受け付ける第1入力部と、
    前記鍵カプセル復号鍵skを用いて前記鍵カプセルCn+1,1を復号して前記二者間共有鍵Rn+1,1を得る第1復号部と、
    前記二者間共有鍵Rn+1,1の関数値K (L)を得、前記関数値rの関数値K (R)を得る第1関数演算部と、
    前記関数値K (L)と前記関数値K (R)との排他的論理和Tを得、乱数kの関数値と前記関数値K (L)との排他的論理和T’を得る第1排他的論理和部と、
    前記排他的論理和TおよびT’を出力する前記第1出力部と、を含み、
    前記端末装置Uは、
    前記関数値rの関数値K (L)を得、前記二者間共有鍵Rn,n+1の関数値K (R)を得る第n関数演算部と、
    前記関数値K (L)と前記関数値K (R)との排他的論理和Tを得る第n排他的論理和部と、
    乱数kおよび前記排他的論理和Tを出力する前記第n出力部と、を含み、
    前記端末装置Un+1は、
    鍵カプセル復号鍵skn+1を用いて前記鍵カプセルCn,n+1を復号して前記二者間共有鍵Rn,n+1を得る第(n+1)復号部と、
    前記二者間共有鍵Rn,n+1の関数値Kn+1 (L)を得、前記二者間共有鍵Rn+1,1の関数値Kn+1 (R)を得る第(n+1)関数演算部と、
    前記関数値Kn+1 (L)と前記関数値Kn+1 (R)との排他的論理和Tn+1を得る第(n+1)排他的論理和部と、
    乱数kn+1および前記排他的論理和Tn+1を出力する前記第(n+1)出力部と、を含み、
    端末装置Uは、
    乱数kを出力する第z出力部を含み、
    前記鍵配送管理装置は、
    前記乱数k,…,kn+1を含む複数の値の排他的論理和k’を得て出力し、排他的論理和T,…,Tn‐1を空とした排他的論理和T,…,Tw‐1の排他的論理和T’を得て出力する排他的論理和部と、を含み、
    前記端末装置Uは、
    前記排他的論理和k’と前記乱数kとの排他的論理和の関数値を共有鍵SKとして得る第1共有鍵生成部を含み、
    前記端末装置Uは、
    排他的論理和T’と関数値K (L)との排他的論理和によって前記関数値K (L)を得る第n関数値復元部と、
    前記排他的論理和T’と前記関数値K (L)との排他的論理和によって前記乱数kの関数値を得る第n乱数復元部と、
    前記排他的論理和k’と前記乱数kの関数値から得られる前記乱数kとの排他的論理和の関数値を前記共有鍵SKとして得る第n共有鍵生成部と、を含み、
    前記端末装置Un+1は、
    排他的論理和Tn+1’と関数値Kn+1 (L)との排他的論理和によって前記関数値K (L)を得る第(n+1)関数値復元部と、
    前記排他的論理和T’と前記関数値K (L)との排他的論理和によって前記乱数kの関数値を得る第(n+1)乱数復元部と、
    前記排他的論理和k’と前記乱数kとの排他的論理和の関数値を前記共有鍵SKとして得る第(n+1)共有鍵生成部と、を含み、
    前記端末装置Uρは、
    排他的論理和Tρ’と前記関数値rの関数値K (R)との排他的論理和によって前記関数値K (L)を得る第ρ関数値復元部と、
    前記排他的論理和T’と前記関数値K (L)との排他的論理和によって前記乱数kの関数値を得る第ρ乱数復元部と、
    前記排他的論理和k’と前記乱数kとの排他的論理和の関数値を前記共有鍵SKとして得る第ρ共有鍵生成部と、を含み、鍵交換システム。
  3. 端末装置U,…,Uと鍵配送管理装置と有し、nが3以上の整数であり、i=1,…,nであり、jが1以上n以下の整数であり、y=1,…,nかつy≠jかつy≠(j−2 mod n)+1であり、x=1,…,nかつx≠jかつx≠(j−2 mod n)+1かつx≠(j mod n)+1であり、正整数αに対して−1 mod α=α−1であり、
    端末装置Uは、
    二者間共有鍵H (L)=R(i−2 mod n)+1,iおよびH (R)=Ri,(i mod n)+1を格納する第i記憶部を含み、
    端末装置U(j mod n)+1は、
    公開鍵暗号方式の耐量子計算機暗号に則った鍵カプセル復号鍵sk(j mod n)+1を格納する第(j+1)記憶部と、
    前記鍵カプセル復号鍵sk(j mod n)+1に対応する鍵暗号化鍵pk(j mod n)+1を出力する第(j+1)出力部と、を含み、
    端末装置U(j−2 mod n)+1は、
    前記鍵暗号化鍵pk(j mod n)+1を受け付ける第(j−1)入力部と、
    乱数k(j−2 mod n)+1を設定する第(j−1)乱数設定部と、
    前記鍵暗号化鍵pk(j mod n)+1を用い、二者間共有鍵R(j−2 mod n)+1,(j mod n)+1および前記二者間共有鍵R(j−2 mod n)+1,(j mod n)+1の暗号文である鍵カプセルC(j−2 mod n)+1,(j mod n)+1を得る第(j−1)二者間共有鍵生成部と、
    前記鍵カプセルC(j−2 mod n)+1,(j mod n)+1を出力する第(j−1)出力部と、を含み、
    端末装置Uは、
    乱数kを設定する第y乱数設定部を含み、
    前記端末装置U(j mod n)+1は、
    前記鍵カプセルC(j−2 mod n)+1,(j mod n)+1を受け付ける第(j+1)入力部を含み、
    前記端末装置U(j−2 mod n)+1は、
    二者間共有鍵H(j−2 mod n)+1 (L)の関数値K(j−2 mod n)+1 (L)を得、前記二者間共有鍵R(j−2 mod n)+1,(j mod n)+1の関数値K(j−2 mod n)+1 (R)を得る第(j−1)関数演算部と、
    前記関数値K(j−2 mod n)+1 (L)と前記関数値K(j−2 mod n)+1 (R)との排他的論理和T(j−2 mod n)+1を得、乱数k(j−2 mod n)+1の関数値と前記関数値K(j−2 mod n)+1 (L)との排他的論理和T’を得る第(j−1)排他的論理和部と、
    前記排他的論理和T(j−2 mod n)+1および前記排他的論理和T’を出力する前記第(j−1)出力部と、を含み、
    前記端末装置U(j mod n)+1は、
    鍵カプセル復号鍵sk(j mod n)+1を用いて前記鍵カプセルC(j−2 mod n)+1,(j mod n)+1を復号して前記二者間共有鍵R(j−2 mod n)+1,(j mod n)+1を得る第(j+1)復号部と、
    前記二者間共有鍵R(j−2 mod n)+1,(j mod n)+1の関数値K(jmod n)+1 (L)を得、二者間共有鍵H(j mod n)+1 (R)の関数値K(j mod n)+1 (R)を得る第(j+1)関数演算部と、
    前記関数値K(j mod n)+1 (L)と前記関数値K(j mod n)+1 (R)との排他的論理和T(j mod n)+1を得る第(j+1)排他的論理和部と、
    乱数k(j mod n)+1および前記排他的論理和T(j mod n)+1を出力する前記第(j+1)出力部と、を含み、
    前記端末装置Uは、
    二者間共有鍵H (L)の関数値K (L)を得、二者間共有鍵H (R)の関数値K (R)を得る第x関数演算部と、
    前記関数値K (L)と前記関数値K (R)との排他的論理和Tを得る第x排他的論理和部と、
    乱数kおよび前記排他的論理和Tを出力する第x出力部と、を含み、
    前記鍵配送管理装置は、
    前記乱数k,…,k(ただし、k,kj+1を除く)を含む複数の値の排他的論理和k’を得て出力するk’生成部と、
    y<j−1のときに排他的論理和T,…,Ty‐1,Tj‐1,…,Tの排他的論理和T’を得て出力し、j+1≦iのときに排他的論理和Tj‐1,…,Ty‐1の排他的論理和T’を得て出力する排他的論理和部と、を含み、
    前記端末装置Uは、
    排他的論理和T’と関数値K (L)との排他的論理和によって前記関数値K(j−2 mod n)+1 (L)を得る第y関数値復元部と、
    前記排他的論理和T’と前記関数値K(j−2 mod n)+1 (L)との排他的論理和によって前記乱数k(j−2 mod n)+1の関数値を得る第y乱数復元部と、
    前記排他的論理和k’と前記乱数k(j−2 mod n)+1の関数値から得られる前記乱数k(j−2 mod n)+1との排他的論理和の関数値を共有鍵SKとして得る第y共有鍵生成部と、を含み、
    前記端末装置Uj−1は、
    前記排他的論理和k’と前記乱数k(j−2 mod n)+1との排他的論理和の関数値を前記共有鍵SKとして得る第(j−1)共有鍵生成部を含む、鍵交換システム。
  4. 請求項1から3のいずれかの鍵交換システムであって、
    前記耐量子計算機暗号は、格子暗号、コードベース暗号、または多変数暗号である、鍵交換システム。
  5. 請求項1から3のいずれかの鍵交換システムであって、
    κ(ν)およびκ(ν)が正整数であり、Aνがκ(ν)×κ(ν)の基底行列であり、νおよびμが正整数であり、eνがκ(ν)個の要素からなるベクトルであり、
    鍵カプセル復号鍵skνがκ(ν)個の整数からなるベクトルsνであり、
    鍵暗号化鍵pkνがbν=Aνν+eνであり、
    鍵カプセルCν,(ν mod μ)+1が{γν,ξν’}であり、二者間共有鍵Rν,(ν mod μ)+1がROUND(2ξν /q)であり、
    γν=Aνν’+eν’であり、ξν’がfloor(4ξν /q) mod 2であり、sν’がκ(ν)個の整数からなるベクトルであり、eν’およびeν”がκ(ν)個の要素からなるベクトルであり、ξν=b(ν mod μ)+1ν’+eν”であり、ξν がξνのランダム関数値であり、qが2以上の整数であり、floorが床関数であり、ROUNDが四捨五入関数である、鍵交換システム。
  6. 請求項1から5のいずれかの鍵交換システムが有する端末装置。
  7. 請求項1から5のいずれかの鍵交換システムの鍵交換方法。
  8. 請求項6の端末装置としてコンピュータを機能させるためのプログラム。
  9. 請求項6の端末装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2019557118A 2017-11-29 2018-11-12 鍵交換システム、端末装置、鍵交換方法、プログラム、および記録媒体 Active JP6988912B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017229195 2017-11-29
JP2017229195 2017-11-29
PCT/JP2018/041804 WO2019107129A1 (ja) 2017-11-29 2018-11-12 鍵交換システム、端末装置、鍵交換方法、プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JPWO2019107129A1 true JPWO2019107129A1 (ja) 2020-11-19
JP6988912B2 JP6988912B2 (ja) 2022-01-05

Family

ID=66664550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019557118A Active JP6988912B2 (ja) 2017-11-29 2018-11-12 鍵交換システム、端末装置、鍵交換方法、プログラム、および記録媒体

Country Status (3)

Country Link
US (1) US11316676B2 (ja)
JP (1) JP6988912B2 (ja)
WO (1) WO2019107129A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI672932B (zh) * 2018-09-27 2019-09-21 國立交通大學 基於質數陣列的後量子非對稱密鑰產生方法及系統、加密方法、解密方法及加密通訊系統
US11228432B2 (en) * 2019-03-04 2022-01-18 Siavash Bayat-Sarmadi Quantum-resistant cryptoprocessing
US11973743B2 (en) 2019-12-13 2024-04-30 TripleBlind, Inc. Systems and methods for providing a systemic error in artificial intelligence algorithms
US10924460B2 (en) 2019-12-13 2021-02-16 TripleBlind, Inc. Systems and methods for dividing filters in neural networks for private data computations
US11431688B2 (en) 2019-12-13 2022-08-30 TripleBlind, Inc. Systems and methods for providing a modified loss function in federated-split learning
US11449799B1 (en) * 2020-01-30 2022-09-20 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US20220100835A1 (en) 2020-02-05 2022-03-31 Quantum Digital Solutions Corporation Systems and methods for controlling a digital ecosystem using digital genomic data sets
WO2021158791A1 (en) * 2020-02-05 2021-08-12 Quantum Digital Solutions Corporation Information theory genomics-enabled hyper-scalability
US11507693B2 (en) 2020-11-20 2022-11-22 TripleBlind, Inc. Systems and methods for providing a blind de-identification of privacy data
KR20240005674A (ko) 2021-02-04 2024-01-12 퀀텀 디지털 솔루션즈 코포레이션 사이퍼제닉스 기반 생태계 보안 플랫폼들
US12052350B2 (en) * 2021-07-08 2024-07-30 Cisco Technology, Inc. Quantum resistant secure key distribution in various protocols and technologies
US11625377B1 (en) 2022-02-03 2023-04-11 TripleBlind, Inc. Systems and methods for enabling two parties to find an intersection between private data sets without learning anything other than the intersection of the datasets
US11539679B1 (en) * 2022-02-04 2022-12-27 TripleBlind, Inc. Systems and methods for providing a quantum-proof key exchange
US20230269075A1 (en) * 2022-02-23 2023-08-24 Mellanox Technologies, Ltd. Devices, systems, and methods for integrating encryption service channels with a data path
WO2023218574A1 (ja) * 2022-05-11 2023-11-16 日本電信電話株式会社 鍵交換システム、qkd装置、拠点装置、方法、及びプログラム
WO2023218575A1 (ja) * 2022-05-11 2023-11-16 日本電信電話株式会社 鍵交換システム、拠点装置、qkd装置、方法、及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6259402B2 (ja) 2015-01-21 2018-01-10 日本電信電話株式会社 鍵配送管理装置、端末装置、鍵配送システム、およびプログラム
US11271724B2 (en) * 2019-02-21 2022-03-08 Quantum Lock, Inc. One-time-pad encryption system and methods

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SINGH, VIKRAM ET AL.: "Even More Practical Key Exchanges for the Internet using Lattice Cryptography", CRYPTOLOGY EPRINT ARCHIVE, vol. Report 2015/138, Ver. 20151222:164906, JPN6019004147, 22 December 2015 (2015-12-22), pages 1 - 20, XP061019861, ISSN: 0004562144 *
YONEYAMA, KAZUKI ET AL.: "Multi-Cast Key Distribution: Scalable, Dynamic and Provably Secure Construction", CRYPTOLOGY EPRINT ARCHIVE, vol. Report 2016/883, Ver. 20160901:074357, JPN6019004145, 1 September 2016 (2016-09-01), pages 1 - 28, XP061021678, ISSN: 0004562143 *

Also Published As

Publication number Publication date
US11316676B2 (en) 2022-04-26
JP6988912B2 (ja) 2022-01-05
US20200322141A1 (en) 2020-10-08
WO2019107129A1 (ja) 2019-06-06

Similar Documents

Publication Publication Date Title
JP6988912B2 (ja) 鍵交換システム、端末装置、鍵交換方法、プログラム、および記録媒体
Benhamouda et al. Can a public blockchain keep a secret?
US9960906B2 (en) Proxy computing system, computing apparatus, capability providing apparatus, proxy computing method, capability providing method, program, and recording medium
KR100596404B1 (ko) 다자간 또는 다그룹사이의 양자 키 분배 방법
JP6497747B2 (ja) 鍵交換方法、鍵交換システム
CN111510281A (zh) 一种同态加密方法及装置
CN105721428B (zh) 一种基于五粒子簇态的隐私比较方法
Min et al. Novel multi-party quantum key agreement protocol with g-like states and bell states
US20210314146A1 (en) Key exchange method and key exchange system
Liu et al. Cryptanalysis and improvement of quantum private comparison protocol based on Bell entangled states
CN101908961B (zh) 一种短密钥环境下多方秘密握手方法
Liu et al. Secure quantum private comparison of equality based on asymmetric W state
JP2023552263A (ja) 秘密分散の再分配
US11411720B2 (en) Key distribution system, terminal device, key distribution method, and program
Kuo et al. Efficient multiparty quantum secret sharing based on a novel structure and single qubits
CN108028751A (zh) 用于具有近似最佳弹性的移动主动秘密共享的信息安全协议
Lai et al. Hybrid threshold adaptable quantum secret sharing scheme with reverse Huffman-Fibonacci-tree coding
Araki et al. High-throughput secure three-party computation of kerberos ticket generation
CN105099693B (zh) 一种传输方法及传输装置
Yang et al. Quantum authenticated direct communication using Bell states
WO2022239129A1 (ja) 鍵交換システム、機器、鍵交換方法、及びプログラム
US20220069984A1 (en) Encryption system and method employing permutation group-based cryptographic technology
Xu et al. SilenTower: A Robust, Scalable and Secure Watchtower with Silent Executors
CN109936442A (zh) 一种服务器辅助的多密钥共享方法及其装置
Babu et al. Quantum Identity Authentication Using Non-Orthogonal State Encoding

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200519

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210924

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: 20211102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211115

R150 Certificate of patent or registration of utility model

Ref document number: 6988912

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150