IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許7574791認証鍵交換システム、方法、及びプログラム
<>
  • 特許-認証鍵交換システム、方法、及びプログラム 図1
  • 特許-認証鍵交換システム、方法、及びプログラム 図2
  • 特許-認証鍵交換システム、方法、及びプログラム 図3
  • 特許-認証鍵交換システム、方法、及びプログラム 図4
  • 特許-認証鍵交換システム、方法、及びプログラム 図5
  • 特許-認証鍵交換システム、方法、及びプログラム 図6
  • 特許-認証鍵交換システム、方法、及びプログラム 図7
  • 特許-認証鍵交換システム、方法、及びプログラム 図8
  • 特許-認証鍵交換システム、方法、及びプログラム 図9
  • 特許-認証鍵交換システム、方法、及びプログラム 図10
  • 特許-認証鍵交換システム、方法、及びプログラム 図11
  • 特許-認証鍵交換システム、方法、及びプログラム 図12
  • 特許-認証鍵交換システム、方法、及びプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】認証鍵交換システム、方法、及びプログラム
(51)【国際特許分類】
   H04L 9/08 20060101AFI20241022BHJP
   H04L 9/14 20060101ALI20241022BHJP
【FI】
H04L9/08 D
H04L9/08 F
H04L9/14
【請求項の数】 5
(21)【出願番号】P 2021201659
(22)【出願日】2021-12-13
(65)【公開番号】P2023087337
(43)【公開日】2023-06-23
【審査請求日】2024-01-29
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】岡野 裕樹
(72)【発明者】
【氏名】永井 彰
(72)【発明者】
【氏名】青柳 光太郎
【審査官】塩澤 如正
(56)【参考文献】
【文献】特開2009-302861(JP,A)
【文献】米国特許第07685414(US,B1)
【文献】Berkant Ustaoglu,Integrating identity-based and certificate-based authenticated key exchange protocols,International Journal of Information Security,2011年05月28日,Vol. 10,pp. 201-212,インターネット<URL: https://link.springer.com/article/10.1007/s10207-011-0136-3>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
H04L 9/14
(57)【特許請求の範囲】
【請求項1】
IDベース暗号のKGCとして機能するサーバと、前記IDベース暗号に基づく認証を行う第1の機器と、電子署名に基づく認証を行う第2の機器とが含まれ、前記第1の機器と前記第2の機器との間で認証鍵交換を行う認証鍵交換システムであって、
前記サーバは、
前記IDベース暗号で用いられる双線形群と、前記IDベース暗号のマスター秘密鍵と、前記マスター秘密鍵に対応するマスター公開鍵とを生成するように構成されているセットアップ部と、
前記第1の機器の識別子を示す第1の識別子に対する第1の長期秘密鍵を生成するように構成されている長期秘密鍵生成部と、を有し、
前記第1の機器は、
第1の一時秘密鍵を生成すると共に、前記第1の一時秘密鍵及び前記第1の長期秘密鍵から第1の一時公開鍵を生成するように構成されている第1の一時鍵生成部と、
前記第1の一時公開鍵と前記第1の識別子とを前記第2の機器に送信するように構成されている第1の一時鍵送信部と、
少なくとも第2の一時公開鍵と前記第2の機器の長期公開鍵と前記第2の機器の識別子を示す第2の識別子とを前記第2の機器から受信すると、前記第1の一時公開鍵と前記第2の一時公開鍵と前記第2の機器の長期公開鍵と前記第1の一時秘密鍵と前記第1の長期秘密鍵と前記第1の識別子と前記第2の識別子からセッション鍵を生成するように構成されている第1のセッション鍵生成部と、を有し、
前記第2の機器は、
第2の長期秘密鍵と、前記第2の長期秘密鍵に対応する前記長期公開鍵とを生成するように構成されている長期鍵生成部と、
第2の一時秘密鍵を生成すると共に、前記第2の一時秘密鍵及び前記第2の長期秘密鍵から前記第2の一時公開鍵を生成するように構成されている第2の一時鍵生成部と、
少なくとも前記第2の一時公開鍵と前記長期公開鍵と前記第2の識別子とを前記第1の機器に送信するように構成されている第2の一時鍵送信部と、
前記第1の一時公開鍵と前記第2の一時公開鍵と前記第2の一時秘密鍵と前記マスター公開鍵と前記第1の識別子と前記第2の識別子から前記セッション鍵を生成するように構成されている第2のセッション鍵生成部と、有
前記第1の一時鍵生成部は、
前記双線形群におけるペアリング演算の第一引数側の定義域である巡回群の生成元を底、前記第1の一時秘密鍵と前記第1の長期秘密鍵とを入力とするハッシュ関数H の出力値である第1の値をべき指数とするべき乗を前記第1の一時公開鍵として生成するように構成されており、
前記第1のセッション鍵生成部は、
前記長期公開鍵に対する証明書を更に受信すると共に、前記証明書が所定の認証局で発行されたものであるか否かを検証し、
前記検証に成功した場合、前記第2の一時公開鍵を第一引数、前記第1の長期秘密鍵を第二引数とするペアリング演算の演算結果を第1の鍵要素として計算し、
前記長期公開鍵を底、前記第1の値をべき指数とするべき乗を第2の鍵要素として計算し、
前記第2の一時公開鍵を底、前記第1の値をべき指数とするべき乗を第3の鍵要素として計算し、
前記第1の鍵要素と前記第2の鍵要素と前記第3の鍵要素と前記第1の一時公開鍵と前記第2の一時公開鍵と前記第1の識別子と前記第2の識別子と前記長期公開鍵と前記証明書とを入力とするハッシュ関数Hの出力値を前記セッション鍵として生成するように構成されており、
前記第2の一時鍵送信部は、
前記証明書を前記第1の機器に更に送信するように構成されており、
前記第2の一時鍵生成部は、
前記双線形群におけるペアリング演算の第一引数側の定義域である巡回群の生成元を底、前記第2の一時秘密鍵と前記第2の長期秘密鍵とを入力とする前記ハッシュ関数H の出力値である第2の値をべき指数とするべき乗を前記第2の一時公開鍵として生成するように構成されており、
前記第2のセッション鍵生成部は、
前記マスター公開鍵を底、前記第2の値をべき指数とするべき乗を第一引数、前記第1の識別子を入力とするハッシュ関数H の出力値を第二引数とするペアリング演算の演算結果を前記第1の鍵要素として計算し、
前記第1の一時公開鍵を底、前記第2の長期秘密鍵をべき指数とするべき乗を前記第2の鍵要素として計算し、
前記第1の一時公開鍵を底、前記第2の値をべき指数とするべき乗を前記第3の鍵要素として計算し、
前記第1の鍵要素と前記第2の鍵要素と前記第3の鍵要素と前記第1の一時公開鍵と前記第2の一時公開鍵と前記第1の識別子と前記第2の識別子と前記長期公開鍵と前記証明書とを入力とする前記ハッシュ関数Hの出力値を前記セッション鍵として生成するように構成されている、
認証鍵交換システム。
【請求項2】
IDベース暗号のKGCとして機能するサーバと、前記IDベース暗号に基づく認証を行う第1の機器と、電子署名に基づく認証を行う第2の機器とが含まれ、前記第1の機器と前記第2の機器との間で認証鍵交換を行う認証鍵交換システムであって、
前記サーバは、
前記IDベース暗号で用いられる双線形群と、前記IDベース暗号のマスター秘密鍵と、前記マスター秘密鍵に対応するマスター公開鍵とを生成するように構成されているセットアップ部と、
前記第1の機器の識別子を示す第1の識別子に対する第1の長期秘密鍵を生成するように構成されている長期秘密鍵生成部と、を有し、
前記第1の機器は、
第1の一時秘密鍵を生成すると共に、前記第1の一時秘密鍵及び前記第1の長期秘密鍵から第1の一時公開鍵を生成するように構成されている第1の一時鍵生成部と、
前記第1の一時公開鍵と前記第1の識別子とを前記第2の機器に送信するように構成されている第1の一時鍵送信部と、
少なくとも第2の一時公開鍵と前記第2の機器の長期公開鍵と前記第2の機器の識別子を示す第2の識別子とを前記第2の機器から受信すると、前記第1の一時公開鍵と前記第2の一時公開鍵と前記第2の機器の長期公開鍵と前記第1の一時秘密鍵と前記第1の長期秘密鍵と前記第1の識別子と前記第2の識別子からセッション鍵を生成するように構成されている第1のセッション鍵生成部と、を有し、
前記第2の機器は、
第2の長期秘密鍵と、前記第2の長期秘密鍵に対応する前記長期公開鍵とを生成するように構成されている長期鍵生成部と、
第2の一時秘密鍵を生成すると共に、前記第2の一時秘密鍵及び前記第2の長期秘密鍵から前記第2の一時公開鍵を生成するように構成されている第2の一時鍵生成部と、
少なくとも前記第2の一時公開鍵と前記長期公開鍵と前記第2の識別子とを前記第1の機器に送信するように構成されている第2の一時鍵送信部と、
前記第1の一時公開鍵と前記第2の一時公開鍵と前記第2の一時秘密鍵と前記マスター公開鍵と前記第1の識別子と前記第2の識別子から前記セッション鍵を生成するように構成されている第2のセッション鍵生成部と、有し、
前記第1の一時鍵生成部は、
前記双線形群におけるペアリング演算の第一引数側の定義域である巡回群の生成元を底、前記第1の一時秘密鍵と前記第1の長期秘密鍵とを入力とするハッシュ関数Hの出力値である第1の値をべき指数とするべき乗を前記第1の一時公開鍵として生成するように構成されており、
前記第1のセッション鍵生成部は、
前記長期公開鍵に対する証明書と前記第2の機器の署名とを更に受信すると共に、前記証明書が所定の認証局で発行されたものであるか否かの検証を示す第1の検証と前記署名の検証を示す第2の検証とを行い、
前記第1の検証と前記第2の検証に成功した場合、前記第2の一時公開鍵を第一引数、前記第1の長期秘密鍵を第二引数とするペアリング演算の演算結果を第1の鍵要素として計算し、
前記第2の一時公開鍵を底、前記第1の値をべき指数とするべき乗を第2の鍵要素として計算し、
前記第1の鍵要素と前記第2の鍵要素と前記第1の一時公開鍵と前記第2の一時公開鍵と前記第1の識別子と前記第2の識別子と前記長期公開鍵と前記証明書と前記署名とを入力とするハッシュ関数Hの出力値を前記セッション鍵として生成するように構成されており、
前記第2の一時鍵送信部は、
前記証明書と前記署名を前記第1の機器に更に送信するように構成されており、
前記第2の一時鍵生成部は、
前記双線形群におけるペアリング演算の第一引数側の定義域である巡回群の生成元を底、前記第2の一時秘密鍵と前記第2の長期秘密鍵とを入力とするハッシュ関数Hの出力値である第2の値をべき指数とするべき乗を前記第2の一時公開鍵として生成するように構成されており、
前記第2のセッション鍵生成部は、
前記マスター公開鍵を底、前記第2の値をべき指数とするべき乗を第一引数、前記第1の識別子を入力とするハッシュ関数Hの出力値を第二引数とするペアリング演算の演算結果を前記第1の鍵要素として計算し、
前記第1の一時公開鍵を底、前記第2の値をべき指数とするべき乗を前記第2の鍵要素として計算し、
前記第1の鍵要素と前記第2の鍵要素と前記第1の一時公開鍵と前記第2の一時公開鍵と前記第1の識別子と前記第2の識別子と前記長期公開鍵と前記証明書と前記署名とを入力とする前記ハッシュ関数Hの出力値を前記セッション鍵として生成するように構成されている、
証鍵交換システム。
【請求項3】
IDベース暗号のKGCとして機能するサーバと、前記IDベース暗号に基づく認証を行う第1の機器と、電子署名に基づく認証を行う第2の機器とが含まれ、前記第1の機器と前記第2の機器との間で認証鍵交換を行う認証鍵交換システムに用いられる方法であって、
前記サーバが、
前記IDベース暗号で用いられる双線形群と、前記IDベース暗号のマスター秘密鍵と、前記マスター秘密鍵に対応するマスター公開鍵とを生成するセットアップ手順と、
前記第1の機器の識別子を示す第1の識別子に対する第1の長期秘密鍵を生成する長期秘密鍵生成手順と、を実行し、
前記第1の機器が、
第1の一時秘密鍵を生成すると共に、前記第1の一時秘密鍵及び前記第1の長期秘密鍵から第1の一時公開鍵を生成する第1の一時鍵生成手順と、
前記第1の一時公開鍵と前記第1の識別子とを前記第2の機器に送信する第1の一時鍵送信手順と、
少なくとも第2の一時公開鍵と前記第2の機器の長期公開鍵と前記第2の機器の識別子を示す第2の識別子とを前記第2の機器から受信すると、前記第1の一時公開鍵と前記第2の一時公開鍵と前記第2の機器の長期公開鍵と前記第1の一時秘密鍵と前記第1の長期秘密鍵と前記第1の識別子と前記第2の識別子からセッション鍵を生成する第1のセッション鍵生成手順と、を実行し、
前記第2の機器が、
第2の長期秘密鍵と、前記第2の長期秘密鍵に対応する前記長期公開鍵とを生成する長期鍵生成手順と、
第2の一時秘密鍵を生成すると共に、前記第2の一時秘密鍵及び前記第2の長期秘密鍵から前記第2の一時公開鍵を生成する第2の一時鍵生成手順と、
少なくとも前記第2の一時公開鍵と前記長期公開鍵と前記第2の識別子とを前記第1の機器に送信する第2の一時鍵送信手順と、
前記第1の一時公開鍵と前記第2の一時公開鍵と前記第2の一時秘密鍵と前記マスター公開鍵と前記第1の識別子と前記第2の識別子から前記セッション鍵を生成する第2のセッション鍵生成手順と、を実行
前記第1の一時鍵生成手順は、
前記双線形群におけるペアリング演算の第一引数側の定義域である巡回群の生成元を底、前記第1の一時秘密鍵と前記第1の長期秘密鍵とを入力とするハッシュ関数H の出力値である第1の値をべき指数とするべき乗を前記第1の一時公開鍵として生成し、
前記第1のセッション鍵生成手順は、
前記長期公開鍵に対する証明書を更に受信すると共に、前記証明書が所定の認証局で発行されたものであるか否かを検証し、
前記検証に成功した場合、前記第2の一時公開鍵を第一引数、前記第1の長期秘密鍵を第二引数とするペアリング演算の演算結果を第1の鍵要素として計算し、
前記長期公開鍵を底、前記第1の値をべき指数とするべき乗を第2の鍵要素として計算し、
前記第2の一時公開鍵を底、前記第1の値をべき指数とするべき乗を第3の鍵要素として計算し、
前記第1の鍵要素と前記第2の鍵要素と前記第3の鍵要素と前記第1の一時公開鍵と前記第2の一時公開鍵と前記第1の識別子と前記第2の識別子と前記長期公開鍵と前記証明書とを入力とするハッシュ関数Hの出力値を前記セッション鍵として生成し、
前記第2の一時鍵送信手順は、
前記証明書を前記第1の機器に更に送信し、
前記第2の一時鍵生成手順は、
前記双線形群におけるペアリング演算の第一引数側の定義域である巡回群の生成元を底、前記第2の一時秘密鍵と前記第2の長期秘密鍵とを入力とする前記ハッシュ関数H の出力値である第2の値をべき指数とするべき乗を前記第2の一時公開鍵として生成し、
前記第2のセッション鍵生成手順は、
前記マスター公開鍵を底、前記第2の値をべき指数とするべき乗を第一引数、前記第1の識別子を入力とするハッシュ関数H の出力値を第二引数とするペアリング演算の演算結果を前記第1の鍵要素として計算し、
前記第1の一時公開鍵を底、前記第2の長期秘密鍵をべき指数とするべき乗を前記第2の鍵要素として計算し、
前記第1の一時公開鍵を底、前記第2の値をべき指数とするべき乗を前記第3の鍵要素として計算し、
前記第1の鍵要素と前記第2の鍵要素と前記第3の鍵要素と前記第1の一時公開鍵と前記第2の一時公開鍵と前記第1の識別子と前記第2の識別子と前記長期公開鍵と前記証明書とを入力とする前記ハッシュ関数Hの出力値を前記セッション鍵として生成する、
方法。
【請求項4】
IDベース暗号のKGCとして機能するサーバと、前記IDベース暗号に基づく認証を行う第1の機器と、電子署名に基づく認証を行う第2の機器とが含まれ、前記第1の機器と前記第2の機器との間で認証鍵交換を行う認証鍵交換システムに用いられる方法であって、
前記サーバが、
前記IDベース暗号で用いられる双線形群と、前記IDベース暗号のマスター秘密鍵と、前記マスター秘密鍵に対応するマスター公開鍵とを生成するセットアップ手順と、
前記第1の機器の識別子を示す第1の識別子に対する第1の長期秘密鍵を生成する長期秘密鍵生成手順と、を実行し、
前記第1の機器が、
第1の一時秘密鍵を生成すると共に、前記第1の一時秘密鍵及び前記第1の長期秘密鍵から第1の一時公開鍵を生成する第1の一時鍵生成手順と、
前記第1の一時公開鍵と前記第1の識別子とを前記第2の機器に送信する第1の一時鍵送信手順と、
少なくとも第2の一時公開鍵と前記第2の機器の長期公開鍵と前記第2の機器の識別子を示す第2の識別子とを前記第2の機器から受信すると、前記第1の一時公開鍵と前記第2の一時公開鍵と前記第2の機器の長期公開鍵と前記第1の一時秘密鍵と前記第1の長期秘密鍵と前記第1の識別子と前記第2の識別子からセッション鍵を生成する第1のセッション鍵生成手順と、を実行し、
前記第2の機器が、
第2の長期秘密鍵と、前記第2の長期秘密鍵に対応する前記長期公開鍵とを生成する長期鍵生成手順と、
第2の一時秘密鍵を生成すると共に、前記第2の一時秘密鍵及び前記第2の長期秘密鍵から前記第2の一時公開鍵を生成する第2の一時鍵生成手順と、
少なくとも前記第2の一時公開鍵と前記長期公開鍵と前記第2の識別子とを前記第1の機器に送信する第2の一時鍵送信手順と、
前記第1の一時公開鍵と前記第2の一時公開鍵と前記第2の一時秘密鍵と前記マスター公開鍵と前記第1の識別子と前記第2の識別子から前記セッション鍵を生成する第2のセッション鍵生成手順と、を実行し、
前記第1の一時鍵生成手順は、
前記双線形群におけるペアリング演算の第一引数側の定義域である巡回群の生成元を底、前記第1の一時秘密鍵と前記第1の長期秘密鍵とを入力とするハッシュ関数H の出力値である第1の値をべき指数とするべき乗を前記第1の一時公開鍵として生成し、
前記第1のセッション鍵生成手順は、
前記長期公開鍵に対する証明書と前記第2の機器の署名とを更に受信すると共に、前記証明書が所定の認証局で発行されたものであるか否かの検証を示す第1の検証と前記署名の検証を示す第2の検証とを行い、
前記第1の検証と前記第2の検証に成功した場合、前記第2の一時公開鍵を第一引数、前記第1の長期秘密鍵を第二引数とするペアリング演算の演算結果を第1の鍵要素として計算し、
前記第2の一時公開鍵を底、前記第1の値をべき指数とするべき乗を第2の鍵要素として計算し、
前記第1の鍵要素と前記第2の鍵要素と前記第1の一時公開鍵と前記第2の一時公開鍵と前記第1の識別子と前記第2の識別子と前記長期公開鍵と前記証明書と前記署名とを入力とするハッシュ関数Hの出力値を前記セッション鍵として生成し、
前記第2の一時鍵送信手順は、
前記証明書と前記署名を前記第1の機器に更に送信し、
前記第2の一時鍵生成手順は、
前記双線形群におけるペアリング演算の第一引数側の定義域である巡回群の生成元を底、前記第2の一時秘密鍵と前記第2の長期秘密鍵とを入力とするハッシュ関数H の出力値である第2の値をべき指数とするべき乗を前記第2の一時公開鍵として生成し、
前記第2のセッション鍵生成手順は、
前記マスター公開鍵を底、前記第2の値をべき指数とするべき乗を第一引数、前記第1の識別子を入力とするハッシュ関数H の出力値を第二引数とするペアリング演算の演算結果を前記第1の鍵要素として計算し、
前記第1の一時公開鍵を底、前記第2の値をべき指数とするべき乗を前記第2の鍵要素として計算し、
前記第1の鍵要素と前記第2の鍵要素と前記第1の一時公開鍵と前記第2の一時公開鍵と前記第1の識別子と前記第2の識別子と前記長期公開鍵と前記証明書と前記署名とを入力とする前記ハッシュ関数Hの出力値を前記セッション鍵として生成する、
方法。
【請求項5】
コンピュータを、請求項1又は2に記載の認証鍵交換システムに含まれるサーバ、第1の機器、又は第2の機器として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証鍵交換システム、方法、及びプログラムに関する。

【背景技術】
【0002】
近年、IoT(Internet of Things)機器が普及したことに伴って、IoT機器でも重要性の高い通信が行われるようになってきた。このため、通信時に互いに正しい機器・サーバであるかを確認するための認証技術がIoT機器でも必要になっている。
【0003】
IoT機器向けの認証技術としてはパスワードや電子証明書等が従来から知られているが、近年では、より安全性が高い認証鍵交換プロトコルの導入が求められている。認証鍵交換プロトコルとは、認証が成功した場合に互いに共通した鍵(この鍵は共有鍵とも呼ばれる。)を生成し、その共有鍵で暗号化通信が可能となるプロトコルである。このような認証鍵交換プロトコルの1つとして、IDベース暗号を用いた認証鍵交換プロトコルが知られている。
【0004】
IDベース暗号を用いた認証鍵交換プロトコルは、一般に、有限体上の楕円曲線における双線形群を用いて実現される。このような双線形群はペアリング群とも呼ばれ、対称ペアリング群と非対称ペアリング群とに分類することができる。現在、ペアリング群を暗号で用いる場合には、効率性や安全性の観点から非対称ペアリング群が用いられることが多い。
【0005】
一方で、IDベース暗号はKGC(Key Generation Center)と呼ばれるサーバが端末の秘密鍵を生成するため、IoT機器の管理者は外部のKGCサービスを利用するよりも自前でKGCを運用する可能性が高い。したがって、エッジコンピューティングサービスのユースケースのように、IoT機器が外部のエッジサーバと通信する場合、IoT機器側はIDベース暗号に基づく認証を行い、エッジサーバ側は電子証明書に基づく認証を行うことがある。非特許文献1には、一方の機器がIDベースのKGCドメイン下で、もう一方の機器(サーバ)がPKI(Public Key Infrastructure、公開鍵暗号基盤)の或るCA(Certificate Authority、認証局)ドメイン下であるようなクロスドメイン認証鍵交換プロトコルが記載されている。
【先行技術文献】
【非特許文献】
【0006】
【文献】Ustaoglu, B.: Integrating identity-based and certificate-based authenticated key exchange protocols. Int. J. Inf. Security 10(4), 201-212 (2011)
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、非特許文献1では、ペアリング演算と呼ばれる群演算を2回行う必要がある。ペアリング演算は一般に計算コストが高いため、IoT機器等の計算リソースが限られた機器が非特許文献1に記載されているプロトコルによって鍵交換を行う場合、鍵交換に時間を要することがある。例えば、動作クロック数が数百MHz程度のプロセッサで462ビットのBN(Barret-Naehrig)曲線上のペアリング演算を行った場合、1回あたり約600msec程度の計算時間を要する。
【0008】
本発明の一実施形態は、上記の点に鑑みてなされたもので、IDベース暗号に基づく認証を行う機器と、電子証明書に基づく認証を行う機器との間で効率的な認証鍵交換を行うことを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、一実施形態に係る認証鍵交換システムは、IDベース暗号のKGCとして機能するサーバと、前記IDベース暗号に基づく認証を行う第1の機器と、電子署名に基づく認証を行う第2の機器とが含まれ、前記第1の機器と前記第2の機器との間で認証鍵交換を行う認証鍵交換システムであって、前記サーバは、前記IDベース暗号で用いられる双線形群と、前記IDベース暗号のマスター秘密鍵と、前記マスター秘密鍵に対応するマスター公開鍵とを生成するように構成されているセットアップ部と、前記第1の機器の識別子を示す第1の識別子に対する第1の長期秘密鍵を生成するように構成されている長期秘密鍵生成部と、を有し、前記第1の機器は、第1の一時秘密鍵を生成すると共に、前記第1の一時秘密鍵及び前記第1の長期秘密鍵から第1の一時公開鍵を生成するように構成されている第1の一時鍵生成部と、前記第1の一時公開鍵と前記第1の識別子とを前記第2の機器に送信するように構成されている第1の一時鍵送信部と、少なくとも第2の一時公開鍵と前記第2の機器の長期公開鍵と前記第2の機器の識別子を示す第2の識別子とを前記第2の機器から受信すると、前記第1の一時公開鍵と前記第2の一時公開鍵と前記第2の機器の長期公開鍵と前記第1の一時秘密鍵と前記第1の長期秘密鍵と前記第1の識別子と前記第2の識別子からセッション鍵を生成するように構成されている第1のセッション鍵生成部と、を有し、前記第2の機器は、第2の長期秘密鍵と、前記第2の長期秘密鍵に対応する前記長期公開鍵とを生成するように構成されている長期鍵生成部と、第2の一時秘密鍵を生成すると共に、前記第2の一時秘密鍵及び前記第2の長期秘密鍵から前記第2の一時公開鍵を生成するように構成されている第2の一時鍵生成部と、少なくとも前記第2の一時公開鍵と前記長期公開鍵と前記第2の識別子とを前記第1の機器に送信するように構成されている第2の一時鍵送信部と、前記第1の一時公開鍵と前記第2の一時公開鍵と前記第2の一時秘密鍵と前記マスター公開鍵と前記第1の識別子と前記第2の識別子から前記セッション鍵を生成するように構成されている第2のセッション鍵生成部と、有する。
【発明の効果】
【0010】
IDベース暗号に基づく認証を行う機器と、電子証明書に基づく認証を行う機器との間で効率的な認証鍵交換を行うことができる。
【図面の簡単な説明】
【0011】
図1】本実施形態に係る認証鍵交換システムの全体構成例を示す図である。
図2】本実施形態に係る鍵生成装置のハードウェア構成例を示す図である。
図3】本実施形態に係る第1の通信機器のハードウェア構成例を示す図である。
図4】本実施形態に係る第2の通信機器のハードウェア構成例を示す図である。
図5】本実施形態に係る鍵生成装置の機能構成例を示す図である。
図6】本実施形態に係る第1の通信機器の機能構成例を示す図である。
図7】本実施形態に係る第2の通信機器の機能構成例を示す図である。
図8】実施例1におけるセットアップ処理を説明するための図である。
図9】実施例1における第1の通信機器の長期秘密鍵生成処理を説明するための図である。
図10】実施例1における第2の通信機器の長期鍵生成処理を説明するための図である。
図11】実施例1における認証鍵交換処理を説明するための図である。
図12】実施例2における第2の通信機器の長期鍵生成処理を説明するための図である。
図13】実施例2における認証鍵交換処理を説明するための図である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施形態について説明する。本実施形態では、IDベース暗号に基づく認証を行う機器と、電子証明書に基づく認証を行う機器との間で効率的な認証鍵交換を行うことができる認証鍵交換システム1について説明する。
【0013】
<準備>
本実施形態で使用する記号や概念、アルゴリズム等について説明する。
【0014】
pを素数として、整数の加法群におけるpを法とする剰余類のなす加法群をZとする。
【0015】
また、κをセキュリティパラメータとする。セキュリティパラメータκは認証鍵交換システム1の安全性強度(単位はビット)を表すものであり、例えば、κ=128やκ=256等を取り得る。
【0016】
・双線形群
双線形群G=(p,G,G,G,g,g,e)は、素数pと、位数pの巡回群G、G、Gと、Gの生成元gと、Gの生成元gと、以下の双線形性及び非退化性を満たす双線形写像e:G×G→Gとで構成される。
【0017】
双線形性:任意のh∈G、h∈G、a,b∈Zに対して、e(h ,h )=e(h,habが成り立つ。
【0018】
非退化性:e(g,g)はGの生成元である。
【0019】
このような双線形群の例としては、参考文献1に記載されているOptimal-ate paring等が挙げられる。
【0020】
・デジタル署名
デジタル署名は以下の3つのアルゴリズム{KeyGen,Sign,Ver}で構成される。
【0021】
(pk,sk)←KeyGen(1κ):1κを入力として、公開鍵と秘密鍵のペア(pk,sk)を生成する。なお、1κは1のκビット列である。
【0022】
σ←Sign(sk,m):秘密鍵skとメッセージmを入力として、署名σを生成する。
【0023】
1/0←Ver(pk,m,σ):公開鍵pkとメッセージmと署名σを入力として、1又は0を出力する。
【0024】
更に、任意の(pk,sk)←KeyGen(1κ)に対して、1=Ver(pk,m,Sign(sk,m))を満たすものとする。デジタル署名の例としては、ECDSAやRSA-PSS等が挙げられる。
【0025】
<全体構成>
本実施形態に係る認証鍵交換システム1の全体構成例を図1に示す。図1に示すように、本実施形態に係る認証鍵交換システム1には、鍵生成装置10と、第1の通信機器20と、第2の通信機器30とが含まれる。また、鍵生成装置10、第1の通信機器20、及び第2の通信機器30は、例えば、インターネット等を含む通信ネットワーク40を介して通信可能に接続される。なお、鍵生成装置10、第1の通信機器20、及び第2の通信機器30の各々は「エンティティ」等とも呼ばれる。
【0026】
鍵生成装置10は、IDベース暗号のKGCとして機能するサーバであり、公開パラメータ等を生成するためのセットアップ処理を実行したり、第1の通信機器20からの要求に応じてその第1の通信機器20の長期秘密鍵を生成したりする。なお、鍵生成装置10は、例えば、「鍵発行サーバ」や「鍵生成サーバ」等と呼ばれてもよい。
【0027】
第1の通信機器20は、IDベース暗号を用いた認証を行う機器(例えば、IoT機器等)であり、第2の通信機器30との間で暗号化通信のための認証鍵交換を行う。以下、第1の通信機器20を一意に識別する識別子をIDとする。なお、識別子IDとしては、例えば、製造固有番号、ユーザID、メールアドレス、電話番号、IPアドレス、MACアドレス等といったものを用いることができる。
【0028】
第2の通信機器30は、電子証明書(以下、単に「証明書」ともいう。)を用いた認証を行う機器(例えば、サーバ等)であり、第1の通信機器20との間で暗号化通信のための認証鍵交換を行う。すなわち、第2の通信機器30は、PKIベースで認証を行う機器である。以下、第2の通信機器30を一意に識別する識別子をIDとする。なお、識別子IDとしては、例えば、製造固有番号、ユーザID、メールアドレス、電話番号、IPアドレス、MACアドレス等といったものを用いることができる。
【0029】
ここで、第2の通信機器30は自身の長期公開鍵と長期秘密鍵を生成し、その長期公開鍵に対する証明書(より正確には識別子IDと長期公開鍵に対する証明書)の発行を外部の認証局に要求するが、本実施形態では、第2の通信機器30の通信相手となる第1の通信機器20は、その認証局を信頼しているものとする。すなわち、当該第1の通信機器20は、その認証局の公開鍵とその公開鍵に対する証明書(当該認証局がルート認証局であればルート証明書、そうでなければ上位の認証局が発行した証明書)とを保持しているものとする。
【0030】
なお、図1に示す認証鍵交換システム1の構成は一例であって、これに限られるものではない。例えば、図1に示す例では、第1の通信機器20と第2の通信機器30がそれぞれ1台のみ図示されているが、第1の通信機器20が複数存在してもよいし、同様に第2の通信機器30が複数存在してもよい。また、以下では、第1の通信機器20はIoT機器、第2の通信機器30はサーバであることを想定するが、これに限られるものではない。
【0031】
<ハードウェア構成>
本実施形態に係る認証鍵交換システム1に含まれる鍵生成装置10、第1の通信機器20、及び第2の通信機器30のハードウェア構成例について説明する。
【0032】
≪鍵生成装置10≫
本実施形態に係る鍵生成装置10のハードウェア構成例を図2に示す。図2に示すように、本実施形態に係る鍵生成装置10は、入力装置11と、表示装置12と、外部I/F13と、通信I/F14と、RAM(Random Access Memory)15と、ROM(Read Only Memory)16と、補助記憶装置17と、プロセッサ18とを有する。これらの各ハードウェアは、それぞれがバス19を介して通信可能に接続される。
【0033】
入力装置11は、例えば、キーボード、マウス、タッチパネル、各種物理ボタン等である。表示装置12は、例えば、ディスプレイ、表示パネル等である。なお、鍵生成装置10は、例えば、入力装置11及び表示装置12のうちの少なくとも一方を有していなくてもよい。
【0034】
外部I/F13は、記録媒体13a等の外部装置とのインタフェースである。記録媒体13aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
【0035】
通信I/F14は、鍵生成装置10を通信ネットワーク40に接続するためのインタフェースである。RAM15は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。ROM16は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。補助記憶装置17は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性の記憶装置であり、プログラムやデータが格納される。プロセッサ18は、例えば、CPU(Central Processing Unit)等の各種演算装置である。
【0036】
なお、図2に示すハードウェア構成は一例であって、鍵生成装置10は、他のハードウェア構成を有していてもよい。例えば、鍵生成装置10は、複数の補助記憶装置17や複数のプロセッサ18を有していてもよいし、図示したハードウェア以外の種々のハードウェアを有していてもよい。
【0037】
≪第1の通信機器20≫
本実施形態に係る第1の通信機器20のハードウェア構成例を図3に示す。図3に示すように、本実施形態に係る第1の通信機器20は、外部I/F21と、通信I/F22と、メモリ装置23と、プロセッサ24とを有する。これらの各ハードウェアは、それぞれがバス25を介して通信可能に接続される。
【0038】
外部I/F21は、記録媒体21a等の外部装置とのインタフェースである。記録媒体21aとしては、例えば、SDメモリカード、USBメモリカード等が挙げられる。
【0039】
通信I/F22は、第1の通信機器20を通信ネットワーク40に接続するためのインタフェースである。メモリ装置23は、例えば、フラッシュメモリ等の各種記憶装置である。プロセッサ24は、例えば、CPUやMPU(Micro-Processing Unit)等の各種演算装置である。
【0040】
なお、図3に示すハードウェア構成は一例であって、第1の通信機器20は、他のハードウェア構成を有していてもよい。例えば、第1の通信機器20は、複数のメモリ装置23や複数のプロセッサ24を有していてもよいし、図示した以外の種々のハードウェアを有していてもよい。
【0041】
≪第2の通信機器30≫
本実施形態に係る第2の通信機器30のハードウェア構成例を図4に示す。図4に示すように、本実施形態に係る第2の通信機器30は、入力装置31と、表示装置32と、外部I/F33と、通信I/F34と、RAM35と、ROM36と、補助記憶装置37と、プロセッサ38とを有する。これらの各ハードウェアは、それぞれがバス39を介して通信可能に接続される。
【0042】
入力装置31は、例えば、キーボード、マウス、タッチパネル、各種物理ボタン等である。表示装置32は、例えば、ディスプレイ、表示パネル等である。なお、第2の通信機器30は、例えば、入力装置31及び表示装置32のうちの少なくとも一方を有していなくてもよい。
【0043】
外部I/F33は、記録媒体33a等の外部装置とのインタフェースである。記録媒体33aとしては、例えば、CD、DVD、SDメモリカード、USBメモリカード等が挙げられる。
【0044】
通信I/F34は、第2の通信機器30を通信ネットワーク40に接続するためのインタフェースである。RAM35は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。ROM36は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。補助記憶装置37は、例えば、HDDやSSD等の不揮発性の記憶装置であり、プログラムやデータが格納される。プロセッサ38は、例えば、CPU等の各種演算装置である。
【0045】
なお、図4に示すハードウェア構成は一例であって、第2の通信機器30は、他のハードウェア構成を有していてもよい。例えば、第2の通信機器30は、複数の補助記憶装置37や複数のプロセッサ38を有していてもよいし、図示したハードウェア以外の種々のハードウェアを有していてもよい。
【0046】
<機能構成>
本実施形態に係る認証鍵交換システム1に含まれる鍵生成装置10、第1の通信機器20、及び第2の通信機器30の機能構成例について説明する。
【0047】
≪鍵生成装置10≫
本実施形態に係る鍵生成装置10の機能構成例を図5に示す。図5に示すように、本実施形態に係る鍵生成装置10は、セットアップ処理部101と、長期秘密鍵生成部102とを有する。これら各部は、例えば、鍵生成装置10にインストールされた1以上のプログラムが、プロセッサ18に実行させる処理により実現される。また、本実施形態に係る鍵生成装置10は、記憶部103を有する。記憶部103は、例えば、補助記憶装置17により実現される。
【0048】
セットアップ処理部101は、マスター秘密鍵や公開パラメータ等を生成するためのセットアップ処理を実行する。
【0049】
長期秘密鍵生成部102は、第1の通信機器20からの要求に応じて、その第1の通信機器20の識別子に対する長期秘密鍵を生成する。
【0050】
記憶部103は、各種情報(例えば、マスター秘密鍵や公開パラメータ等)を記憶する。
【0051】
≪第1の通信機器20≫
本実施形態に係る第1の通信機器20の機能構成例を図6に示す。図6に示すように、本実施形態に係る第1の通信機器20は、長期秘密鍵要求部201と、長期秘密鍵受信部202と、一時鍵生成部203と、一時鍵送信部204と、一時鍵受信部205と、セッション鍵生成部206とを有する。これら各部は、例えば、第1の通信機器20にインストールされた1以上のプログラムが、プロセッサ24に実行させる処理により実現される。また、本実施形態に係る第1の通信機器20は、記憶部207を有する。記憶部207は、例えば、メモリ装置23により実現される。
【0052】
長期秘密鍵要求部201は、自身の識別子IDに対する長期秘密鍵の生成を鍵生成装置10に要求する。以下、識別子IDに対する長期秘密鍵をsskとする。
【0053】
長期秘密鍵受信部202は、鍵生成装置10から長期秘密鍵sskを受信する。
【0054】
一時鍵生成部203は、自身の長期秘密鍵sskを用いて、一時秘密鍵eskと一時公開鍵Xを生成する。
【0055】
一時鍵送信部204は、一時公開鍵Xと自身の識別子IDを第2の通信機器30に送信する。
【0056】
一時鍵受信部205は、第2の通信機器30からその第2の通信機器30の一時公開鍵X等を受信する。
【0057】
セッション鍵生成部206は、自身の長期秘密鍵sskや第2の通信機器30から受信した一時公開鍵X等を用いて鍵要素を生成した上で、これらの鍵要素からセッション鍵を生成する。なお、このセッション鍵が、第2の通信機器30との間で共有される共有鍵である。
【0058】
記憶部207は、各種情報(例えば、公開パラメータ、自身の長期秘密鍵ssk等)を記憶する。
【0059】
≪第2の通信機器30≫
本実施形態に係る第2の通信機器30の機能構成例を図7に示す。図7に示すように、本実施形態に係る第2の通信機器30は、長期鍵生成部301と、証明書発行要求部302と、一時鍵受信部303と、一時鍵生成部304と、一時鍵送信部305と、セッション鍵生成部306とを有する。これら各部は、例えば、第2の通信機器30にインストールされた1以上のプログラムが、プロセッサ38に実行させる処理により実現される。また、本実施形態に係る第2の通信機器30は、記憶部307を有する。記憶部307は、例えば、補助記憶装置37により実現される。
【0060】
長期鍵生成部301は、長期秘密鍵と長期公開鍵を生成する。以下、第2の通信機器30の長期秘密鍵をssk、長期公開鍵をspkとする。
【0061】
証明書発行要求部302は、自身の識別子IDと長期公開鍵spkに対する証明書certの発行を外部の認証局に要求する。
【0062】
一時鍵受信部303は、第1の通信機器20から一時公開鍵Xと識別子IDを受信する。
【0063】
一時鍵生成部304は、自身の長期秘密鍵sskを用いて、一時秘密鍵eskと一時公開鍵Xを生成する。
【0064】
一時鍵送信部305は、一時公開鍵Xと自身の長期公開鍵spkと自身の識別子IDと証明書cert等を第1の通信機器20に送信する。
【0065】
セッション鍵生成部306は、マスター公開鍵や第1の通信機器20から受信した一時公開鍵X等を用いて鍵要素を生成した上で、これらの鍵要素からセッション鍵を生成する。
【0066】
記憶部307は、各種情報(例えば、公開パラメータ、自身の長期秘密鍵ssk等)を記憶する。
【0067】
[実施例1]
以下、本実施形態の実施例1について説明する。本実施例では、各エンティティは、システム共通のパラメータとして以下のハッシュ関数H,H,Hを保持しているものとする。
【0068】
:識別子を入力として、Gの元を出力するハッシュ関数
:κビットのビット列とGの元を入力として、Zの元を出力するハッシュ関数
H:可変長の長さの文字列を入力として、κビットのビット列を出力するハッシュ関数
<セットアップ処理>
実施例1におけるセットアップ処理について、図8を参照しながら説明する。
【0069】
鍵生成装置10のセットアップ処理部101は、双線形群G=(p,G,G,G,g,g,e)を生成する(ステップS101)。
【0070】
次に、鍵生成装置10のセットアップ処理部101は、マスター秘密鍵w∈Zを一様ランダムに生成する(ステップS102)。
【0071】
次に、鍵生成装置10のセットアップ処理部101は、マスター公開鍵W=g を生成する(ステップS103)。
【0072】
そして、鍵生成装置10のセットアップ処理部101は、双線形群Gとマスター秘密鍵wとマスター公開鍵Wとを記憶部103に保存する(ステップS104)。ここで、公開パラメータは(G,W)であり、この公開パラメータ(G,W)は第1の通信機器20及び第2の通信機器30に公開される。以下では、第1の通信機器20及び第2の通信機器30は公開パラメータ(G,W)を保持しているものとする。
【0073】
<第1の通信機器20の長期秘密鍵生成処理>
実施例1における第1の通信機器20の長期秘密鍵生成処理について、図9を参照しながら説明する。
【0074】
第1の通信機器20の長期秘密鍵要求部201は、自身の識別子IDに対する長期秘密鍵の生成を鍵生成装置10に要求する(ステップS201)。なお、この要求には、少なくとも識別子IDが指定される。
【0075】
鍵生成装置10の長期秘密鍵生成部102は、長期秘密鍵の生成要求を受信すると、長期秘密鍵ssk=H(ID∈Gを生成する(ステップS202)。
【0076】
次に、鍵生成装置10の長期秘密鍵生成部102は、長期秘密鍵sskを第1の通信機器20に送信する(ステップS203)。
【0077】
そして、第1の通信機器20の長期秘密鍵受信部202は、長期秘密鍵sskを受信し、この長期秘密鍵sskを記憶部207に保存する(ステップS204)。なお、長期秘密鍵sskはセキュアな通信路を介して鍵生成装置10から第1の通信機器20に送信されるものとする。
【0078】
<第2の通信機器30の長期鍵生成処理>
実施例1における第2の通信機器30の長期鍵生成処理について、図10を参照しながら説明する。
【0079】
第2の通信機器30の長期鍵生成部301は、長期秘密鍵ssk∈Zを一様ランダムに生成する(ステップS301)。
【0080】
次に、第2の通信機器30の長期鍵生成部301は、長期公開鍵spk=g ssk_Sを生成する(ステップS302)。なお、「ssk_S」はsskを表す。
【0081】
次に、第2の通信機器30の証明書発行要求部302は、自身の識別子IDと長期公開鍵spkに対する証明書certの発行を外部の認証局に要求する(ステップS303)。これにより、当該認証局から証明書certが返信される。
【0082】
そして、第2の通信機器30の長期鍵生成部301は、長期秘密鍵sskと長期公開鍵spkと証明書certとを記憶部307に保存する(ステップS304)。
【0083】
<認証鍵交換処理>
実施例1における認証鍵交換処理について、図11を参照しながら説明する。なお、以下では、第1の通信機器20から第2の通信機器30に対して開始要求を行うものとする。すなわち、第1の通信機器20がイニシエータ、第2の通信機器30がレスポンダであるものとする。また、第1の通信機器20は、第2の通信機器30の通信先情報(例えば、IPアドレスやMACアドレス等)を既に取得しているものとする。
【0084】
第1の通信機器20の一時鍵生成部203は、一時秘密鍵esk∈{0,1}κを一様ランダムに生成した上で、x=H(esk,ssk)を計算して一時公開鍵X=g x_Cを生成する(ステップS401)。一時秘密鍵eskは記憶部207に保存される。なお、「x_C」はxを表す。
【0085】
次に、第1の通信機器20の一時鍵送信部204は、一時公開鍵Xと自身の識別子IDを第2の通信機器30に送信する(ステップS402)。
【0086】
第2の通信機器30の一時鍵生成部304は、一時公開鍵Xと識別子IDを一時鍵受信部303が受信すると、一時秘密鍵esk∈{0,1}κを一様ランダムに生成した上で、x=H(esk,ssk)を計算して一時公開鍵X=g x_Sを生成する(ステップS403)。一時秘密鍵eskは記憶部307に保存される。なお、「x_S」はxを表す。
【0087】
次に、第2の通信機器30の一時鍵送信部305は、一時公開鍵Xと自身の長期公開鍵spkと証明書certと自身の識別子IDとを第1の通信機器20に送信する(ステップS404)。
【0088】
第1の通信機器20のセッション鍵生成部206は、一時公開鍵Xと長期公開鍵spkと証明書certと識別子IDとを一時鍵受信部205が受信すると、長期公開鍵spk及び識別子IDが証明書certに記載の通りであるかを検証すると共に、証明書certが所定の認証局によって正しくされたことをその認証局の公開鍵を用いて検証する(ステップS405)。なお、いずれかの検証に失敗した場合、第1の通信機器20は、認証鍵交換処理を終了する。一方で、いずれの検証にも成功した場合、第1の通信機器20は、次のステップS406を実行する。
【0089】
第1の通信機器20のセッション鍵生成部206は、鍵要素σ=e(X,ssk)、σ=spk x_C、σ=X x_Cを生成した上で、セッション鍵SK=H(σ,σ,σ,ID,ID,X,X,spk,cert)を生成する(ステップS406)。なお、xは、記憶部207に保存されている長期秘密鍵sskと一時秘密鍵eskからx=H(esk,ssk)により計算される。
【0090】
第2の通信機器30のセッション鍵生成部306は、鍵要素σ=e(Wx_S,H(ID))、σ=X ssk_S、σ=X x_Sを生成した上で、セッション鍵SK=H(σ,σ,σ,ID,ID,X,X,spk,cert)を生成する(ステップS407)。なお、xは、記憶部307に保存されている長期秘密鍵sskと一時秘密鍵eskからx=H(esk,ssk)により計算される。また、本ステップは、上記のステップS404の終了後にすぐ実行してもよい。
【0091】
<まとめ>
以上のように、本実施例では、第1の通信機器20と第2の通信機器30はセッション鍵SKを共有することができる。これにより、これ以降、第1の通信機器20と第2の通信機器30は当該セッション鍵SKを用いて暗号化通信を行うことができる。
【0092】
このとき、本実施例では、第1の通信機器20と第2の通信機器30の各々でペアリング演算を1回のみ計算すればよい。このため、例えば、非特許文献1に記載されているプロトコルと比較してペアリング演算の回数が削減されるため、効率的な認証鍵交換を実現することができる。
【0093】
また、本実施例では、第1の通信機器20と第2の通信機器30の各々でG上のスカラ倍算を3回のみ計算すればよい。これに対して、例えば、非特許文献1に記載されているプロトコルでは、G上のスカラ倍算を4回(又は5回)、G上のスカラ倍算を2回計算する必要がある。このため、例えば、非特許文献1に記載されているプロトコルと比較してスカラ倍算の回数が削減されるため、効率的な認証鍵交換を実現することができる。
【0094】
なお、本実施例では、鍵要素σにより第1の通信機器20が認証され、鍵要素σにより第2の通信機器30が認証される。また、鍵要素σにより認証鍵交換における必須の安全性(前方秘匿性)が保証される。
【0095】
[実施例2]
以下、本実施形態の実施例2について説明する。本実施例では、各エンティティは、システム共通のパラメータとして上記のハッシュ関数H,H,Hに加えて、以下のハッシュ関数Hも保持しているものとする。
【0096】
:κビットのビット列とデジタル署名の秘密鍵を入力として、Zの元を出力するハッシュ関数
なお、本実施例では、実施例1との相違点について説明し、実施例1と同様の構成要素についてはその説明を省略するものとする。
【0097】
<セットアップ処理>
実施例1と同様であるため、その説明を省略する。
【0098】
<第1の通信機器20の長期秘密鍵生成処理>
実施例1と同様であるため、その説明を省略する。
【0099】
<第2の通信機器30の長期鍵生成処理>
実施例2における第2の通信機器30の長期鍵生成処理について、図12を参照しながら説明する。
【0100】
第2の通信機器30の長期鍵生成部301は、長期公開鍵spkと長期秘密鍵sskの鍵ペア(spk,ssk)←KeyGen(1κ)を生成する(ステップS501)。なお、長期公開鍵spkはデジタル署名の公開鍵、長期秘密鍵sskはデジタル署名の秘密鍵である。
【0101】
次に、第2の通信機器30の証明書発行要求部302は、自身の識別子IDと長期公開鍵spkに対する証明書certの発行を外部の認証局に要求する(ステップS502)。これにより、当該認証局から証明書certが返信される。
【0102】
そして、第2の通信機器30の長期鍵生成部301は、長期秘密鍵sskと長期公開鍵spkと証明書certとを記憶部307に保存する(ステップS503)。
【0103】
<認証鍵交換処理>
実施例2における認証鍵交換処理について、図13を参照しながら説明する。なお、以下では、第1の通信機器20から第2の通信機器30に対して開始要求を行うものとする。すなわち、第1の通信機器20がイニシエータ、第2の通信機器30がレスポンダであるものとする。また、第1の通信機器20は、第2の通信機器30の通信先情報(例えば、IPアドレスやMACアドレス等)を既に取得しているものとする。
【0104】
第1の通信機器20の一時鍵生成部203は、一時秘密鍵esk∈{0,1}κを一様ランダムに生成した上で、x=H(esk,ssk)を計算して一時公開鍵X=g x_Cを生成する(ステップS601)。一時秘密鍵eskは記憶部207に保存される。
【0105】
次に、第1の通信機器20の一時鍵送信部204は、一時公開鍵Xと自身の識別子IDを第2の通信機器30に送信する(ステップS602)。
【0106】
第2の通信機器30の一時鍵生成部304は、一時公開鍵Xと識別子IDを一時鍵受信部303が受信すると、一時秘密鍵esk∈{0,1}κを一様ランダムに生成した上で、x=H(esk,ssk)を計算して一時公開鍵X=g x_Sを生成する(ステップS603)。一時秘密鍵eskは記憶部307に保存される。
【0107】
次に、第2の通信機器30の一時鍵生成部304は、一時公開鍵Xと識別子IDと識別子IDとが含まれるメッセージmに対する署名sign←Sign(ssk,m)を生成する(ステップS604)。
【0108】
次に、第2の通信機器30の一時鍵送信部305は、一時公開鍵Xと署名signと自身の長期公開鍵spkと証明書certと自身の識別子IDとを第1の通信機器20に送信する(ステップS605)。
【0109】
第1の通信機器20のセッション鍵生成部206は、一時公開鍵Xと署名signと自身の長期公開鍵spkと証明書certと自身の識別子IDとを一時鍵受信部205が受信すると、長期公開鍵spk及び識別子IDが証明書certに記載の通りであるかを検証すると共に、証明書certが所定の認証局によって正しくされたことをその認証局の公開鍵を用いて検証し、更に1=Ver(spk,m,sign)が成り立つかを検証する(ステップS606)。なお、いずれかの検証に失敗した場合、第1の通信機器20は、認証鍵交換処理を終了する。一方で、いずれの検証にも成功した場合、第1の通信機器20は、次のステップS607を実行する。
【0110】
第1の通信機器20のセッション鍵生成部206は、鍵要素σ=e(X,ssk)、σ=X x_Cを生成した上で、セッション鍵SK=H(σ,σ,ID,ID,X,X,sign,spk,cert)を生成する(ステップS607)。なお、xは、記憶部207に保存されている長期秘密鍵sskと一時秘密鍵eskからx=H(esk,ssk)により計算される。
【0111】
第2の通信機器30のセッション鍵生成部306は、鍵要素σ=e(Wx_S,H(ID))、σ=X x_Sを生成した上で、セッション鍵SK=H(σ,σ,ID,ID,X,X,sign,spk,cert)を生成する(ステップS608)。なお、xは、記憶部307に保存されている長期秘密鍵sskと一時秘密鍵eskからx=H(esk,ssk)により計算される。また、本ステップは、上記のステップS605の終了後にすぐ実行してもよい。
【0112】
<まとめ>
以上のように、本実施例では、第1の通信機器20と第2の通信機器30はセッション鍵SKを共有することができる。これにより、これ以降、第1の通信機器20と第2の通信機器30は当該セッション鍵SKを用いて暗号化通信を行うことができる。
【0113】
このとき、本実施例では、実施例1と同様に、第1の通信機器20と第2の通信機器30の各々でペアリング演算を1回のみ計算すればよい。このため、例えば、非特許文献1に記載されているプロトコルと比較してペアリング演算の回数が削減されるため、効率的な認証鍵交換を実現することができる。
【0114】
また、本実施例では、デジタル署名により第2の通信機器30を認証することで、第2の通信機器30を認証するための鍵要素が不要となり、第1の通信機器20と第2の通信機器30の各々でG上のスカラ倍算を2回のみ計算すればよくなる。このため、実施例1と比較して、更に効率的な認証鍵交換を実現することができる。
【0115】
なお、本実施例では、鍵要素σにより第1の通信機器20が認証され、デジタル署名により第2の通信機器30が認証される。また、鍵要素σにより認証鍵交換における必須の安全性(前方秘匿性)が保証される。
【0116】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【0117】
[参考文献]
参考文献1:Vercauteren, F.: Optimal pairings. IEEE Trans. Inf. Theory 56, 455-461 (2010)
【符号の説明】
【0118】
1 認証鍵交換システム
10 鍵生成装置
11 入力装置
12 表示装置
13 外部I/F
13a 記録媒体
14 通信I/F
15 RAM
16 ROM
17 補助記憶装置
18 プロセッサ
19 バス
20 第1の通信機器
21 外部I/F
21a 記録媒体
22 通信I/F
23 メモリ装置
24 プロセッサ
25 バス
30 第2の通信機器
31 入力装置
32 表示装置
33 外部I/F
33a 記録媒体
34 通信I/F
35 RAM
36 ROM
37 補助記憶装置
38 プロセッサ
39 バス
101 セットアップ処理部
102 長期秘密鍵生成部
103 記憶部
201 長期秘密鍵要求部
202 長期秘密鍵受信部
203 一時鍵生成部
204 一時鍵送信部
205 一時鍵受信部
206 セッション鍵生成部
207 記憶部
301 長期鍵生成部
302 証明書発行要求部
303 一時鍵受信部
304 一時鍵生成部
305 一時鍵送信部
306 セッション鍵生成部
307 記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13