(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-25
(45)【発行日】2025-03-05
(54)【発明の名称】認証鍵交換システム、機器、認証鍵交換方法、及びプログラム
(51)【国際特許分類】
H04L 9/08 20060101AFI20250226BHJP
G09C 1/00 20060101ALI20250226BHJP
H04L 9/16 20060101ALI20250226BHJP
【FI】
H04L9/08 B
G09C1/00 630B
H04L9/16
(21)【出願番号】P 2022041306
(22)【出願日】2022-03-16
【審査請求日】2024-05-21
【新規性喪失の例外の表示】特許法第30条第2項適用 2022年1月12日及び2022年1月20日に2022年暗号と情報セキュリティシンポジウムにて公開
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】592218300
【氏名又は名称】学校法人神奈川大学
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】中川 皓平
(72)【発明者】
【氏名】永井 彰
(72)【発明者】
【氏名】岡野 裕樹
(72)【発明者】
【氏名】藤岡 淳
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2021-019223(JP,A)
【文献】国際公開第2018/169489(WO,A1)
【文献】石田 優 ほか,選択暗号文攻撃に対して安全な鍵失効機能付きIDベース暗号,CSS2014 コンピュータセキュリティシンポジウム2014 論文集 [CD-ROM],日本,一般社団法人情報処理学会 コンピュータセキュリティ,2014年10月15日,Vol.2014 No.2,p. 292 - 299
【文献】岡野 裕樹 ほか,失効可能な階層型IDベース認証鍵交換の安全性モデルと構成について,2021年 暗号と情報セキュリティシンポジウム予稿集 [online],日本,2021年01月15日,3B1-2,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
G09C 1/00
H04L 9/16
(57)【特許請求の範囲】
【請求項1】
鍵生成装置と複数の機器とが含まれる認証鍵交換システムであって、
前記鍵生成装置は、
セキュリティパラメータ1
λと前記機器の総数Nとを入力として、マスタ秘密鍵MSKとマスタ公開鍵MPKと初期の失効者リストRLとを出力するように構成されているパラメータ生成部と、
前記マスタ秘密鍵MSKと前記マスタ公開鍵MPKと前記機器の識別子IDとを入力として、前記識別子IDに対応する静的秘密鍵ssk
IDを出力するように構成されている静的秘密鍵生成部と、
前記マスタ公開鍵MPKと新たな失効者リストRLとを入力として、現在の時刻Tをインクリメントすると共に、現在の時刻Tの失効者リストRL
Tを前記
新たな失効者リストRLに更新するように構成されている失効者リスト更新部と、
前記マスタ秘密鍵MSKと前記マスタ公開鍵MPKと現在の時刻Tと前記
現在の時刻Tの失効者リストRL
T
とを入力として、KUNodeアルゴリズムを利用して現在の時刻Tの鍵更新情報ku
Tを出力するように構成されている鍵更新情報生成部と、を有し、
前記機器は、
前記マスタ公開鍵MPKと自身の識別子IDに対応する静的秘密鍵ssk
IDと現在の時刻Tの鍵更新情報ku
Tとを入力として、ペアリング計算を用いずに、
Schnorr署名を利用して現在の時刻Tの最新秘密鍵csk
ID,Tを出力するように構成されている最新秘密鍵生成部と、
前記マスタ公開鍵MPKと現在の時刻Tにおける自身の識別子IDに対応する最新秘密鍵csk
ID,Tを入力として、一時秘密鍵esk
IDと一時公開鍵epk
IDとを出力するように構成されている一時鍵生成部と、
前記マスタ公開鍵MPKと自身の識別子IDと通信相手の識別子ID'と現在の時刻Tにおける自身の識別子IDに対応する最新秘密鍵csk
ID,Tと自身の識別子IDに対応する一時秘密鍵esk
IDと通信相手の識別子ID'に対応する一時公開鍵epk
ID'とを入力として、前記通信相手と共有するセッション鍵SKを出力するように構成されているセッション鍵生成部と、
を有する認証鍵交換システム。
【請求項2】
前記最新秘密鍵生成部は、
前記静的秘密鍵ssk
IDに含まれる値s
IDと、前記鍵更新情報ku
Tに含まれる複数の値s
T||θのうち自身の識別子IDから一意に決まる値θに対応するs
T||θとの和又は線形結合を署名鍵とした前記Schnorr署名を利用して、前記識別子IDと現在の時刻Tとを含む情報のハッシュ値に対して署名を付与することで、前記最新秘密鍵csk
ID,Tを出力するように構成されている、請求項
1に記載の認証鍵交換システム。
【請求項3】
通信相手となる他の機器との間でセッション鍵を共有する機器であって、
マスタ公開鍵MPKと自身の識別子IDに対応する静的秘密鍵ssk
IDと現在の時刻Tの鍵更新情報ku
Tとを入力として、ペアリング計算を用いずに、
Schnorr署名を利用して現在の時刻Tの最新秘密鍵csk
ID,Tを出力するように構成されている最新秘密鍵生成部と、
前記マスタ公開鍵MPKと現在の時刻Tにおける自身の識別子IDに対応する最新秘密鍵csk
ID,Tを入力として、一時秘密鍵esk
IDと一時公開鍵epk
IDとを出力するように構成されている一時鍵生成部と、
前記マスタ公開鍵MPKと自身の識別子IDと通信相手の識別子ID'と現在の時刻Tにおける自身の識別子IDに対応する最新秘密鍵csk
ID,Tと自身の識別子IDに対応する一時秘密鍵esk
IDと通信相手の識別子ID'に対応する一時公開鍵epk
ID'とを入力として、前記通信相手と共有するセッション鍵SKを出力するように構成されているセッション鍵生成部と、
を有する機器。
【請求項4】
鍵生成装置と複数の機器とが含まれる認証鍵交換システムに用いられる認証鍵交換方法であって、
前記鍵生成装置が、
セキュリティパラメータ1
λと前記機器の総数Nとを入力として、マスタ秘密鍵MSKとマスタ公開鍵MPKと初期の失効者リストRLとを出力するパラメータ生成手順と、
前記マスタ秘密鍵MSKと前記マスタ公開鍵MPKと前記機器の識別子IDとを入力として、前記識別子IDに対応する静的秘密鍵ssk
IDを出力する静的秘密鍵生成手順と、
前記マスタ公開鍵MPKと新たな失効者リストRLとを入力として、現在の時刻Tをインクリメントすると共に、現在の時刻Tの失効者リストRL
Tを前記
新たな失効者リストRLに更新する失効者リスト更新手順と、
前記マスタ秘密鍵MSKと前記マスタ公開鍵MPKと現在の時刻Tと前記
現在の時刻Tの失効者リストRL
T
とを入力として、KUNodeアルゴリズムを利用して現在の時刻Tの鍵更新情報ku
Tを出力する鍵更新情報生成手順と、を実行し、
前記機器が、
前記マスタ公開鍵MPKと自身の識別子IDに対応する静的秘密鍵ssk
IDと現在の時刻Tの鍵更新情報ku
Tとを入力として、ペアリング計算を用いずに、
Schnorr署名を利用して現在の時刻Tの最新秘密鍵csk
ID,Tを出力する最新秘密鍵生成手順と、
前記マスタ公開鍵MPKと現在の時刻Tにおける自身の識別子IDに対応する最新秘密鍵csk
ID,Tを入力として、一時秘密鍵esk
IDと一時公開鍵epk
IDとを出力する一時鍵生成手順と、
前記マスタ公開鍵MPKと自身の識別子IDと通信相手の識別子ID'と現在の時刻Tにおける自身の識別子IDに対応する最新秘密鍵csk
ID,Tと自身の識別子IDに対応する一時秘密鍵esk
IDと通信相手の識別子ID'に対応する一時公開鍵epk
ID'とを入力として、前記通信相手と共有するセッション鍵SKを出力するセッション鍵生成手順と、
を実行する認証鍵交換方法。
【請求項5】
コンピュータを、請求項1
又は2に記載の認証鍵交換システムに含まれる鍵生成装
置として機能させるためのプログラム。
【請求項6】
コンピュータを、請求項1又は2に記載の認証鍵交換システムに含まれる機器として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証鍵交換システム、機器、認証鍵交換方法、及びプログラムに関する。
【背景技術】
【0002】
認証鍵交換(AKE:Authenticated Key Exchange)プロトコルは、各ユーザが自身の秘密鍵に基づいて通信相手と秘密にかつ確実に共通のセッション鍵を生成するためのプロトコルである。AKEプロトコルには、電子証明書を用いるPKI(Public Key Infrastructure)ベースのAKEプロトコルの他、ID(例えば、機器の製造固有番号等)を公開鍵として用いるIDベースAKEプロトコルがある。IDベースAKEプロトコルは、PKIベースAKEプロトコルと比較して、通信相手と公開鍵の紐付けを検証する必要がない、というメリットがある。
【0003】
また、AKEプロトコルには長期運用の観点から、ユーザの失効機能が必要とされる。PKIベースの場合は証明書に記載の有効期間等によって証明書の有効性・失効確認を行えるが、IDベースの場合は、各ユーザは通信相手のIDを知るのみであるため、通信相手のIDや秘密鍵が失効されているか否かを確認する方法はない。このため、既存のIDベースAKEプロトコル(例えば、非特許文献1)では、鍵生成センタ(KGC:Key Generation Center)が一定期間毎に鍵更新情報を各ユーザに配布し、有効なユーザのみが自身の秘密鍵と鍵更新情報から最新の秘密鍵が得られる、という方式を用いることにより、ユーザの失効機能を実現している。
【先行技術文献】
【非特許文献】
【0004】
【文献】Tung-Tso Tsai, Yun-Hsin Chuang, Yuh-Min Tseng, Sen-Shan Huang, Ying-Hao Hung. "A Leakage-Resilient ID-Based Authenticated Key Exchange Protocol With a Revocation Mechanism", 2021.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、既存の失効機能付きIDベースAKEプロトコルでは、鍵更新情報の生成にユーザ数に関して線形な時間を要し、またペアリング計算が必要なため計算コストが高いという問題点がある。
【0006】
大規模な運用を行うためには鍵更新情報の生成に要する時間を削減する必要があると共に、IDベース鍵交換はIoT機器等の比較的計算リソースが小さい機器上で応用されることが期待されているため、より小さい計算コストでプロトコルを実行できることが望ましい。このため、鍵更新情報の生成に要する時間がユーザ数に依存せずに、かつ、ペアリング計算を要しない失効機能付きIDベースAKEプロトコルの実現が必要である。
【0007】
本発明の一実施形態は、上記の点に鑑みてなされたもので、鍵更新情報の生成に要する時間がユーザ数に依存せずに、かつ、ペアリング計算を要しない失効機能付きIDベースAKEプロトコルを実現することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するため、一実施形態に係る認証鍵交換システムは、鍵生成装置と複数の機器とが含まれる認証鍵交換システムであって、前記鍵生成装置は、セキュリティパラメータ1λと前記機器の総数Nとを入力として、マスタ秘密鍵MSKとマスタ公開鍵MPKと初期の失効者リストRLとを出力するように構成されているパラメータ生成部と、前記マスタ秘密鍵MSKと前記マスタ公開鍵MPKと前記機器の識別子IDとを入力として、前記識別子IDに対応する静的秘密鍵sskIDを出力するように構成されている静的秘密鍵生成部と、前記マスタ公開鍵MPKと新たな失効者リストRLとを入力として、現在の時刻Tをインクリメントすると共に、現在の時刻Tの失効者リストRLTを前記失効者リストRLに更新するように構成されている失効者リスト更新部と、前記マスタ秘密鍵MSKと前記マスタ公開鍵MPKと現在の時刻Tと前記失効者リストRLとを入力として、KUNodeアルゴリズムを利用して現在の時刻Tの鍵更新情報kuTを出力するように構成されている鍵更新情報生成部と、を有し、前記機器は、前記マスタ公開鍵MPKと自身の識別子IDに対応する静的秘密鍵sskIDと現在の時刻Tの鍵更新情報kuTとを入力として、ペアリング計算を用いずに、現在の時刻Tの最新秘密鍵cskID,Tを出力するように構成されている最新秘密鍵生成部と、前記マスタ公開鍵MPKと現在の時刻Tにおける自身の識別子IDに対応する最新秘密鍵cskID,Tを入力として、一時秘密鍵eskIDと一時公開鍵epkIDとを出力するように構成されている一時鍵生成部と、前記マスタ公開鍵MPKと自身の識別子IDと通信相手の識別子ID'と現在の時刻Tにおける自身の識別子IDに対応する最新秘密鍵cskID,Tと自身の識別子IDに対応する一時秘密鍵eskIDと通信相手の識別子ID'に対応する一時公開鍵epkID'とを入力として、前記通信相手と共有するセッション鍵SKを出力するように構成されているセッション鍵生成部と、を有する。
【発明の効果】
【0009】
鍵更新情報の生成に要する時間がユーザ数に依存せずに、かつ、ペアリング計算を要しない失効機能付きIDベースAKEプロトコルを実現することができる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態に係るIDベース認証鍵交換システムの全体構成の一例を示す図である。
【
図2】本実施形態に係る鍵生成装置の機能構成の一例を示す図である。
【
図3】本実施形態に係る機器の機能構成の一例を示す図である。
【
図4】一実施例におけるパラメータ生成から静的秘密鍵生成までの流れを示すシーケンス図である。
【
図5】一実施例における失効リスト更新から最新秘密鍵生成までの流れを示すシーケンス図である。
【
図6】一実施例における一時鍵生成からセッション鍵生成までの流れを示すシーケンス図である。
【
図7】コンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の一実施形態について説明する。以下で説明する実施形態では、鍵更新情報の生成に要する時間がユーザ数に依存せずに、かつ、ペアリング計算を要しない失効機能付きIDベースAKEプロトコルを実現するIDベース認証鍵交換システム1について説明する。
【0012】
<準備>
まず、本実施形態を説明する前に、いくつかの記号や概念、アルゴリズム等を準備する。
【0013】
λをセキュリティパラメータ、qを或る大きさの素べき、Zq:=Z/qZとする。また、{0,1}*を任意長のバイナリ系列、{0,1}λをλビット長のバイナリ系列とする。また、|| はビット列の連結を表す。
【0014】
≪KUNodeアルゴリズム≫
既存の多くの失効機能付きIDベース暗号(例えば、参考文献1~3等)では、二分木とKUNodeアルゴリズムを用いることで、鍵更新情報の生成に要する時間を削減している。
【0015】
BTを各ユーザのIDに紐づく葉を持つ二分木、RLを失効したユーザのIDに紐づく葉のリスト、rootを二分木BTの根、Path(ID)をIDに紐づく葉からrootへの経路に含まれるノードの集合、xleftをノードxの左側の子ノード、xrightをノードxの右側の子ノードとする。
【0016】
このとき、KUNodeアルゴリズムは、以下の手順1~手順5で構成される
手順1:X=φ,Y=φとする。
【0017】
手順2:各ID∈RLに対して、Path(ID)をXに加える。
【0018】
手順3:各x∈Xに対して、xleftがXに含まれない場合はxleftをYに加え、xrightがXに含まれない場合はxrightをYに加える。
【0019】
手順4:Y=φである場合、rootをYに加える。
【0020】
手順5:Yを出力する。
【0021】
≪失効機能付きIDベースAKEプロトコル≫
失効機能付きIDベースAKEプロトコルは、以下の7つの確率的多項式時間(PPT)アルゴリズムにより構成される。なお、一時鍵生成アルゴリズムEKGenとセッション鍵生成アルゴリズムSKGenはイニシエータとレスポンダで対称なアルゴリズムであるため、以下では、イニシエータは識別子IDA、レスポンダは識別子IDBをそれぞれ持つものとして、イニシエータ側のアルゴリズムについて説明する。
【0022】
・ParGen(1λ,N)→(MSK,MPK,RL)
セキュリティパラメータλ長の1ビット列1λ(この1λもセキュリティパラメータと呼ぶことがある。)とユーザ数Nとを入力として、マスタ秘密鍵MSKとマスタ公開鍵MPKと初期の失効者リストRLとを出力するパラメータ生成アルゴリズムである。パラメータ生成アルゴリズムParGenはKGCによって一度だけ実行される。なお、以下のすべてのアルゴリズムはマスタ公開鍵MPKも入力とするが、以下では、簡単なのため、マスタ公開鍵MPKを省略して記載する。
【0023】
・SSKGen(MSK,ID)→sskID
マスタ秘密鍵MSKとユーザの識別子IDとを入力として、そのIDに対応する静的秘密鍵sskIDを出力する静的秘密鍵生成アルゴリズムである。静的秘密鍵生成アルゴリズムSSKGenはKGCによって各ユーザに対して一度だけ実行される。
【0024】
・Revoke(RL)
新たな失効者リストRLを入力として、時刻Tをインクリメントすると共に、時刻Tの失効者リストを更新する失効者リスト更新アルゴリズムである。失効者リスト更新アルゴリズムRevokeはKGCによって一定期間毎に実行される。なお、失効者リストとは、失効した識別子IDのリストのことである。
【0025】
・KeyUp(MSK,T,RL)→kuT
マスタ秘密鍵MSKと時刻Tとその時刻の失効者リストRLとを入力として、鍵更新情報kuTを出力する鍵更新情報生成アルゴリズムである。鍵更新情報生成アルゴリズムKeyUpはKGCによって一定期間毎に実行される。
【0026】
・CSKGen(sskID,kuT)→cskID,T
静的秘密鍵sskIDと鍵更新情報kuTとを入力として、最新秘密鍵cskID,T又は⊥を出力する最新秘密鍵生成アルゴリズムである。最新秘密鍵生成アルゴリズムCSKGenはユーザによって一定期間毎に実行される。なお、⊥はIDが失効していることを意味する。
【0027】
・EKGen(IDA,IDB,T,cskA,T)→(eskA,epkA)
ユーザの識別子IDAとそのユーザの通信相手の識別子IDBと現在の時刻Tとそのユーザの時刻Tにおける最新秘密鍵cskA,Tとを入力として、通信相手とのセッションにおけるそのユーザの一時秘密鍵eskA及び一時公開鍵epkAを出力する一時鍵生成アルゴリズムである。一時鍵生成アルゴリズムEKGenはユーザによってセッション毎に実行される。
【0028】
・SKGen(IDA,IDB,T,cskA,T,eskA,epkB)→SK
ユーザの識別子IDAとそのユーザの通信相手の識別子IDBと現在の時刻Tとそのユーザの時刻Tにおける最新秘密鍵cskA,Tとそのユーザの一時秘密鍵eskAと通信相手の一時公開鍵epkBとを入力として、セッション鍵SKを出力するセッション鍵生成アルゴリズムである。セッション鍵生成アルゴリズムSKGenはユーザによってセッション毎に実行される。
【0029】
なお、一時鍵生成アルゴリズムEKGenとセッション鍵生成アルゴリズムSKGenは、セッションのイニシエータとレスポンダとで異なるアルゴリズムが用いられてもよい。
【0030】
本実施形態では、後述するように、KUNodeアルゴリズムを用いて、鍵更新情報生成アルゴリズムKeyUpを構成する。これにより、鍵更新情報の生成に要する時間を削減することができる。また、後述するように、Schnorr署名と呼ばれる署名を用いて、最新秘密鍵生成アルゴリズムCSKGenを構成する。これにより、ペアリング計算を不要とすることができる。
【0031】
Schnorr署名とは、内部でペアリング計算を用いないIDベース署名である。より具体的には、各ユーザが自身の静的秘密鍵と自身に紐付いた鍵更新情報とを足し合わせることで得られる値を署名鍵として、識別子IDと時刻Tの情報を含む文(平文)に対して署名を生成し、これを最新秘密鍵とするものである。署名の性質により、この最新秘密鍵は署名鍵を持たなければ生成できず、したがって正しい静的秘密鍵及び鍵更新情報を持つユーザのみがその値を求めることができる。また、正しい署名と平文と公開鍵の組は或る等式を満たすという性質を用いることにより、正しい最新秘密鍵を持つユーザ間で同一の値をセッション鍵として計算することができる。
【0032】
<全体構成例>
次に、本実施形態に係るIDベース認証鍵交換システム1の全体構成例について、
図1を参照しながら説明する。
図1は、本実施形態に係るIDベース認証鍵交換システム1の全体構成の一例を示す図である。
【0033】
図1に示すように、本実施形態に係るIDベース認証鍵交換システム1には、鍵生成装置10と、複数の機器20とが含まれる。鍵生成装置10と各機器20は通信ネットワーク30を介して通信可能に接続される。同様に、各機器20同士は通信ネットワーク30を介して通信可能に接続される。
【0034】
鍵生成装置10は、鍵生成センタ(KGC)として機能するコンピュータ又はコンピュータシステムである。鍵生成装置10は、パラメータ生成アルゴリズムParGen、静的秘密鍵生成アルゴリズムSSKGen、失効者リスト更新アルゴリズムRevoke、及び鍵更新情報生成アルゴリズムKeyUpを実行する。
【0035】
機器20は、他の機器20との間で認証鍵交換を行うコンピュータ又はコンピュータシステムである。機器20は、最新秘密鍵生成アルゴリズムCSKGen、一時鍵生成アルゴリズムEKGen、及びセッション鍵生成アルゴリズムSKGenを実行する。
【0036】
機器20としては、例えば、IoT機器、スマートフォン、タブレット端末、PC(パーソナルコンピュータ)、ウェアラブルデバイス、産業用機器、エッジコンピュータ、汎用サーバ等といった様々な端末、機器、デバイス、装置等を用いることができる。例えば、各種IoT機器からデータを収集するシステムに適用される場合、イニシエータ側の機器20はIoT機器、レスポンダ側の機器20はエッジコンピュータ等となることが考えられる。
【0037】
以下、複数の機器20の各々を区別する場合は、「機器20A」、「機器20B」等と表記する。また、機器20Aの識別子IDを「IDA」、機器20Bの識別子IDを「IDB」とし、機器20Aをイニシエータ、機器20Bをレスポンダであるものとする。なお、識別子IDとしては、製造固有番号の他、例えば、MAC(Media Access Control address)アドレス、IP(Internet Protocol)アドレス、ユーザID、メールアドレス、電話番号等を用いることができる。
【0038】
<機能構成例>
次に、本実施形態に係る鍵生成装置10及び機器20の機能構成例について、それぞれ
図2及び
図3を参照しながら説明する。
図2は、本実施形態に係る鍵生成装置10の機能構成の一例を示す図である。また、
図3は、本実施形態に係る機器20の機能構成の一例を示す図である。
【0039】
≪鍵生成装置10≫
図2に示すように、本実施形態に係る鍵生成装置10は、パラメータ生成部101と、秘密鍵生成部102と、リスト更新部103と、鍵更新情報生成部104と、通信部105とを有する。これら各部は、例えば、鍵生成装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等といったプロセッサに実行させる処理により実現される。また、本実施形態に係る鍵生成装置10は、記憶部106を有する。記憶部106は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等といった記憶装置により実現される。
【0040】
パラメータ生成部101は、パラメータ生成アルゴリズムParGenを実行する。秘密鍵生成部102は、静的秘密鍵生成アルゴリズムSSKGenを実行する。リスト更新部103は、失効者リスト更新アルゴリズムRevokeを実行する。鍵更新情報生成部104は、鍵更新情報生成アルゴリズムKeyUpを実行する。通信部105は、機器20等との間で各種通信を行う。記憶部106は、各種データ、各種アルゴリズムの結果や途中の計算結果等を記憶する。
【0041】
≪機器20≫
図3に示すように、本実施形態に係る機器20は、鍵更新部201と、一時鍵生成部202と、セッション鍵生成部203と、通信部204とを有する。これら各部は、例えば、機器20にインストールされた1以上のプログラムが、CPU等といったプロセッサに実行させる処理により実現される。また、本実施形態に係る機器20は、記憶部205を有する。記憶部205は、例えば、HDD、SSD、フラッシュメモリ等といった記憶装置により実現される。
【0042】
鍵更新部201は、最新秘密鍵生成アルゴリズムCSKGenを実行する。一時鍵生成部202は、一時鍵生成アルゴリズムEKGenを実行する。セッション鍵生成部203は、セッション鍵生成アルゴリズムSKGenを実行する。通信部204は、鍵生成装置10や他の機器20との間で各種通信を行う。記憶部205は、各種データ、各種アルゴリズムの結果や途中の計算結果等を記憶する。
【0043】
<実施例1>
以下、実施例1について説明する。
【0044】
本実施例では、失効機能付きIDベースAKEプロトコルの各アルゴリズムを以下により構成する。なお、本実施例では、一時鍵生成アルゴリズムEKGenは最新秘密鍵cskID,Tのみを入力として構成される。また、一時鍵生成アルゴリズムEKGenとセッション鍵生成アルゴリズムSKGenはイニシエータとレスポンダで対称なアルゴリズムであるため、以下では、セッション鍵生成アルゴリズムSKGenに関してはイニシエータ側である機器20Aのアルゴリズムについて説明する。
【0045】
・ParGen(1λ,N)→(MSK,MPK,RL)
手順1-1:qを大きさがO(2λ)の素べき、Gを位数qの巡回群、gをGの生成元とする。
【0046】
手順1-2:x∈UZqを選択し、y=gxとする。
【0047】
手順1-3:BTを葉の数がNの二分木とし、各機器20のIDを各葉に紐付ける。
【0048】
手順1-4:2つのハッシュ関数H1:{0,1}*×G→ZqとH2:G×G→{0,1}λを用意する。
【0049】
手順1-5:MSK=x、MPK=(q,G,g,y,BT,H1,H2)、RL=φを出力する。
【0050】
なお、以下のすべてのアルゴリズムではマスタ公開鍵MPKも入力とするが、その記載を省略していることに留意されたい。
【0051】
・SSKGen(MSK,ID)→sskID
手順2-1:k∈UZqを選択し、rID=gkとする。
【0052】
手順2-2:sID=k+xH1(ID,rID)とする。
【0053】
手順2-3:sskID=(sID,rID)を出力する。
【0054】
なお、
【0055】
【0056】
・KeyUp(MSK,T,RL)→kuT
手順3-1:各θ∈KUNode(BT,RL)に対して、(sT||θ,rT||θ)←SSKGen(MSK,T||θ)を計算する。
【0057】
手順3-2:kuT={(θ,sT||θ,rT||θ)}θ∈KUNode(BT,RL)として出力する。
【0058】
・CSKGen(sskID,kuT)→cskID,T
手順4-1:θ∈KUNode(BT,RL)∩Path(ID)を選択する。もしそのようなθが存在しなければ⊥を出力する。
【0059】
手順4-2:k∈UZqを選択し、rID,T=gkとする。
【0060】
手順4-3:sID,T=k+(sID+sT||θ)H1(ID||T,rID,T)とする。
【0061】
手順4-4:cskID,T=(sID,T,rID,T,rID,rT||θ,θ)として出力する。
【0062】
・EKGen(cskID,T)→(eskID,epkID)
手順5-1:vID∈UZqを選択し、wID=gv_IDとする。ただし、「v_ID」はvIDを表す。
【0063】
手順5-2:eskID=vID、epkID=(wID,rID,rT||θ,rID,T,θ)として出力する。
【0064】
・SKGen(IDA,IDB,T,cskA,T,eskA,epkB)→SK
手順6-1:以下によりZ1を計算する。
【0065】
【数2】
手順6-2:Z
2=w
B
v_Aとして、SK=H
2(Z
1,Z
2)を出力する。ただし、「v_A」はv
Aを表す。
【0066】
・Revoke(RL)
手順7-1:現在の時刻Tの失効者リストRLTがRLに含まれない場合は⊥を出力する。
【0067】
手順7-2:RLT⊆RLである場合は、T←T+1として、RLT←RLと更新する。
【0068】
なお、上記の手順6-2において、セッション鍵SKを生成する際のハッシュ関数H2の入力として、例えば、マスタ公開鍵MPKやイニシエータとレスポンダ両者のID、時刻T等が追加されてもよい。具体的には、例えば、SK=H2(Z1,Z2,MPK,IDA,IDB,T)等としてもよく、これ以外にも様々な情報をハッシュ関数H2の入力として用いることが可能である。
【0069】
≪パラメータ生成から静的秘密鍵生成までの流れ≫
パラメータ生成から静的秘密鍵生成までの流れの一例について、
図4を参照しながら説明する。なお、
図4は、例えば、システムセットアップ時に一度実行される。
【0070】
鍵生成装置10のパラメータ生成部101は、ParGen(1λ,N)を実行する(ステップS101)。これにより、マスタ秘密鍵MSK、マスタ公開鍵MPK、初期の失効者リストRLが得られる。なお、マスタ公開鍵MPKは各機器20に公開される。
【0071】
鍵生成装置10の秘密鍵生成部102は、静的秘密鍵生成アルゴリズムSSKGen(MSK,ID)を実行する(ステップS102)。例えば、識別子IDAを持つ機器20Aと識別子IDBを機器20Bが存在する場合、鍵生成装置10の秘密鍵生成部102は、SSKGen(MSK,IDA)とSSKGen(MSK,IDB)をそれぞれ実行する。これにより、機器20Aの静的秘密鍵sskAと機器20Bの静的秘密鍵sskBが得られる。以下では、静的秘密鍵sskAと静的秘密鍵sskBが得られたものとして説明する。なお、識別子IDは公開情報であることに留意されたい。
【0072】
鍵生成装置10の通信部105は、静的秘密鍵sskAを機器20Aに送信する(ステップS103)。同様に、鍵生成装置10の通信部105は、静的秘密鍵sskBを機器20Bに送信する(ステップS104)。なお、静的秘密鍵sskIDはセキュアな通信路により機器20に送信される。又は、例えば、外部記録媒体を介して機器20に送信されたり、鍵生成装置10と直接に有線接続して機器20に送信されたりする等してもよい。
【0073】
≪失効リスト更新から最新秘密鍵生成までの流れ≫
失効リスト更新から最新秘密鍵生成までの流れの一例について、
図5を参照しながら説明する。なお、
図5は、例えば、一定期間毎に繰り返し実行される。また、
図5が開始する前に、新たな失効者リストRLが得られているものとする。
【0074】
鍵生成装置10のリスト更新部103は、失効者リスト更新アルゴリズムRevoke(RL)を実行する(ステップS201)。これにより、現在時刻Tがインクリメントされると共に、現在の失効者リストRLTが更新される。
【0075】
鍵生成装置10の鍵更新情報生成部104は、鍵更新情報生成アルゴリズムKeyUp(MSK,T,RL)を実行する(ステップS202)。これにより、鍵更新情報kuTが得られる。
【0076】
鍵生成装置10の通信部105は、鍵更新情報kuTを機器20Aに送信する(ステップS203)。同様に、鍵生成装置10の通信部105は、鍵更新情報kuTを機器20Bに送信する(ステップS204)。
【0077】
機器20Aの鍵更新部201は、最新秘密鍵生成アルゴリズムCSKGen(sskA,kuT)を実行する(ステップS205)。これにより、機器20Aの最新秘密鍵cskA,Tが得られる。同様に、機器20Bの鍵更新部201は、最新秘密鍵生成アルゴリズムCSKGen(sskB,kuT)を実行する(ステップS206)。これにより、機器20Bの最新秘密鍵cskB,Tが得られる。
【0078】
≪一時鍵生成からセッション鍵生成までの流れ≫
一時鍵生成からセッション鍵生成までの流れの一例について、
図6を参照しながら説明する。なお、
図6は、例えば、機器20Aと機器20Bとの間でセッションが開始された際に実行される。
【0079】
機器20Aの一時鍵生成部202は、一時鍵生成アルゴリズムEKGen(cskA,T)を実行する(ステップS301)。これにより、一時秘密鍵eskAと一時公開鍵epkAが得られる。
【0080】
機器20Aの通信部105は、自身の識別子IDAと一時公開鍵epkAを機器20Bに送信する(ステップS302)。
【0081】
機器20Bの一時鍵生成部202は、一時鍵生成アルゴリズムEKGen(cskB,T)を実行する(ステップS303)。これにより、一時秘密鍵eskBと一時公開鍵epkBが得られる。
【0082】
機器20Bの通信部105は、自身の識別子IDBと一時公開鍵epkBを機器20Aに送信する(ステップS304)。
【0083】
機器20Aのセッション鍵生成部203は、セッション鍵生成アルゴリズムSKGen(IDA,IDB,T,cskA,T,eskA,epkB)を実行する(ステップS305)。これにより、セッション鍵SKが得られる。
【0084】
機器20Bのセッション鍵生成部203は、セッション鍵生成アルゴリズムSKGen(IDB,IDA,T,cskB,T,eskB,epkA)を実行する(ステップS306)。これにより、セッション鍵SKが得られる。
【0085】
<実施例2>
以下、実施例2について説明する。
【0086】
本実施例は、実施例1で説明した失効機能付きIDベースAKEプロトコルの各アルゴリズムのうち、最新秘密鍵生成アルゴリズムCSKGenと一時鍵生成アルゴリズムEKGenとセッション鍵生成アルゴリズムSKGenの構成を変更したものである。その他の点は実施例1と同様であるため、以下では、変更点のみを説明する。
【0087】
・CSKGen(sskID,kuT)→cskID,T
手順4'-1:θ∈KUNode(BT,RL)∩Path(ID)を選択する。もしそのようなθが存在しなければ⊥を出力する。
【0088】
手順4'-2:k∈UZqを選択し、rID,T=gkとする。
【0089】
手順4'-3:α,β∈UZqを選択する。
【0090】
手順4'-4:sID,T=k+(α・sID+β・sT||θ)H1(ID||T,rID,T)とする。
【0091】
手順4'-5:cskID,T=(sID,T,rID,T,rID,rT||θ,rID
α,rT||θ
β,yα,yβ,θ)として出力する。
【0092】
・EKGen(cskID,T)→(eskID,epkID)
手順5'-1:vID∈UZqを選択し、wID=gv_IDとする。ただし、「v_ID」はvIDを表す。
【0093】
手順5'-2:eskID=vID、epkID=(wID,rID,rT||θ,rID,T,rID
α,rT||θ
β,yα,yβ,θ)として出力する。
【0094】
・SKGen(IDA,IDB,T,cskA,T,eskA,epkB)→SK
手順6'-1:以下によりZ1を計算する。
【0095】
【数3】
手順6'-2:Z
2=w
B
v_Aとして、SK=H
2(Z
1,Z
2)を出力する。ただし、「v_A」はv
Aを表す。
【0096】
本実施例と実施例1の本質的な違いは最新秘密鍵生成アルゴリズムCSKGenの4番目の手順(手順4-4及び手順4'-4)である。実施例1の手順4-4ではsIDとsT||θの和を署名鍵としてSchnorr署名を実行しているが、本実施例の手順4'-4ではsIDとsT||θの線形結合を署名鍵としている。
【0097】
<ハードウェア構成例>
本実施形態に係る鍵生成装置10と機器20は、例えば、
図7に示すようなコンピュータ500のハードウェア構成により実現される。
図7は、コンピュータ500のハードウェア構成の一例を示す図である。
【0098】
図7に示すコンピュータ500は、入力装置501と、表示装置502と、外部I/F503と、通信I/F504と、プロセッサ505と、メモリ装置506とを有する。これら各ハードウェアは、それぞれがバス507を介して通信可能に接続されている。
【0099】
入力装置501は、例えば、キーボードやマウス、タッチパネル、各種物理ボタン、スイッチ等である。表示装置502は、例えば、ディスプレイ、表示パネル等である。なお、コンピュータ500は、例えば、入力装置501及び表示装置502のうちの少なくとも一方を有していなくてもよい。
【0100】
外部I/F503は、記録媒体503a等の外部装置とのインタフェースである。記録媒体503aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
【0101】
通信I/F504は、通信ネットワークに接続するためのインタフェースである。プロセッサ505は、CPU等といった各種演算装置である。メモリ装置506は、例えば、HDD、SSD、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等といった各種記憶装置である。
【0102】
本実施形態に係る鍵生成装置10と機器20は、例えば、
図7に示すようなコンピュータ500のハードウェア構成により実現することができる。ただし、
図7に示すコンピュータ500のハードウェア構成は一例であることはいうまでもない。
図7に示すコンピュータ500は、例えば、複数のプロセッサ505を有していてもよいし、複数のメモリ装置506を有していてもよいし、図示しない様々なハードウェアを有していてもよい。
【0103】
<まとめ>
以上のように、本実施形態に係るIDベース認証鍵交換システム1は、KUNodeアルゴリズムを用いて、失効機能付きIDベースAKEプロトコルの鍵更新情報生成アルゴリズムKeyUpを実現する。これにより、鍵更新情報の生成に要する時間がユーザ数に依存せず、大規模な運用となった場合でも効率的な鍵更新情報の生成が可能となる。
【0104】
また、本実施形態に係るIDベース認証鍵交換システム1は、Schnorr署名を用いて、失効機能付きIDベースAKEプロトコルの最新秘密鍵生成アルゴリズムCSKGenを実現する。これにより、ペアリング計算を用いずに、比較的計算コストが小さい計算(群上のスカラー倍算や乗算等)により最新秘密鍵の生成が可能となる。
【0105】
したがって、本実施形態に係るIDベース認証鍵交換システム1によれば、鍵更新情報の生成に要する時間がユーザ数に依存せずに、かつ、ペアリング計算を要しない失効機能付きIDベースAKEプロトコルを実現することが可能となる。
【0106】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【0107】
[参考文献]
参考文献1:Alexandra Boldyreva, Vipul Goyal, Virendra Kumar. "Identity-Based Encryption with Efficient Revocation", 2008.
参考文献2:Jae Hong Seo and Keita Emura. "Revocable Identity-Based Encryption Revisited: Security Model and Construction", 2013.
参考文献3:Xuecheng Ma and Dongdai Lin. "A Generic Construction of Revocable Identity-Based Encryption", 2019.
【符号の説明】
【0108】
1 IDベース認証鍵交換システム
10 鍵生成装置
20 機器
30 通信ネットワーク
101 パラメータ生成部
102 秘密鍵生成部
103 リスト更新部
104 鍵更新情報生成部
105 通信部
106 記憶部
201 鍵更新部
202 一時鍵生成部
203 セッション鍵生成部
204 通信部
205 記憶部