(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-06
(45)【発行日】2025-02-17
(54)【発明の名称】秘密値生成装置、鍵交換システム、秘密値生成方法及び秘密値生成プログラム
(51)【国際特許分類】
H04L 9/30 20060101AFI20250207BHJP
G09C 1/00 20060101ALI20250207BHJP
【FI】
H04L9/30 Z
G09C1/00 650B
(21)【出願番号】P 2021033601
(22)【出願日】2021-03-03
【審査請求日】2023-03-06
【前置審査】
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(72)【発明者】
【氏名】福島 和英
(72)【発明者】
【氏名】清本 晋作
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2002-314534(JP,A)
【文献】KHADER, A. S. and LAI, D.,Preventing Man-In-The-Middle Attack in Diffie-Hellman Key Exchange Protocol,22nd International Conference on Telecommunications (ICT 2015),2015年04月,pp.204-208
【文献】SCHNEIER, B.,APPLIED CRYPTOGRAPHY, SECOND EDITION,John Wiley & Sons, Inc.,1996年,pp.381-383
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/30
G09C 1/00
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
第1の乱数
を秘密値
として生成し、当該秘密値に基づいて演算された公開値を出力する秘密値生成装置であって、
3つ以上の
互いに独立した擬似乱数生成器と、
前記擬似乱数生成器のいずれか1つを選択するための選択用擬似乱数生成器と、を備え、
前記選択用擬似乱数生成器により
生成した第2の乱数に基づき選択した、いずれか
1つの前記擬似乱数生成器により前記
第1の乱数
の全体を生成する秘密値生成装置。
【請求項2】
請求項1に記載の秘密値生成装置が2つで前記公開値を交換し、
少なくとも一方の秘密値生成装置が、前記秘密値及び交換により取得した前記公開値に基づいて、秘密鍵を算出して他方の秘密値生成装置と共有する鍵交換システム。
【請求項3】
前記他方の秘密値生成装置は、前記秘密鍵として
第3の乱数を生成し、当該
第3の乱数に基づく前記演算により前記公開値を生成する請求項2に記載の鍵交換システム。
【請求項4】
前記他方の秘密値生成装置は、前記選択用擬似乱数生成器により
生成した第4の乱数に基づき選択した、いずれか
1つの前記擬似乱数生成器により
前記第3の乱数
の全体を生成する請求項3に記載の鍵交換システム。
【請求項5】
第1の乱数
を秘密値
として生成し、当該秘密値に基づいて演算された公開値を出力する秘密値生成装置が、
3つ以上の
互いに独立した擬似乱数生成器と、
前記擬似乱数生成器のいずれか1つを選択するための選択用擬似乱数生成器と、を用いて、
前記選択用擬似乱数生成器により
生成した第2の乱数に基づき選択した、いずれか
1つの前記擬似乱数生成器により前記
第1の乱数
の全体を生成する秘密値生成方法。
【請求項6】
請求項1に記載の秘密値生成装置としてコンピュータを機能させるための秘密値生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、公開値から秘密値に関する情報を入手する攻撃を防ぐシステムに関する。
【背景技術】
【0002】
暗号化通信プロトコルであるTLS(Transport Layer Security)の最新バージョンTLS1.3においては、静的な秘密鍵の漏洩により過去の通信内容までが漏洩するリスクを避けるため、RSA暗号等の静的な秘密鍵を利用する鍵交換が廃止されている。その一方で、アメリカ国立標準技術研究所(NIST)による耐量子暗号の標準化プロジェクト(NIST-PQC)では、静的な秘密鍵を利用する鍵交換のみを標準化の対象としている。
【0003】
このような状況において、耐量子暗号方式である格子暗号を用いて、Diffie-Hellman鍵交換と同様に一時鍵の公開値を交換し、両者が演算により秘密鍵を共有するプロトコルが検討されている(例えば、非特許文献1~3参照)。
【先行技術文献】
【非特許文献】
【0004】
【文献】Jintai Ding, Xiang Xie, Xiaodong Lin, “A Simple Provably Secure Key Exchange Scheme Based on the Learning with Errors Problem,” Cryptology ePrint Archive, Report 2012/688
【文献】V. Singh, “A Practical Key Exchange for the Internet using Lattice Cryptography,” Cryptology ePrint Archive, Report 2015/138
【文献】E. Alkim, L. Ducas, T. P¨oppelmann, and P. Schwabe, “Post-quantum key exchange - a new hope,” Cryptology ePrint Archive, Report 2015/1092
【文献】Satoshi Okada, Yuntao Wang, Tsuyoshi Takagi, “Improving Key Mismatch Attack on NewHope with Fewer Queries”, 25th Australasian Conference on Information Security and Privacy, ACISP 2020, LNCS 12248, pp. 505-524, 2020
【文献】大住,上村,工藤,高木,“格子暗号SABERに対する鍵不一致攻撃,” 2021年暗号と情報セキュリティシンポジウム(SCIS2021),3A3-2
【文献】岡田,王,”格子暗号CRYSTALS-KYBERとSABERに対する鍵再利用攻撃の提案,” 2021年暗号と情報セキュリティシンポジウム(SCIS2021),3A3-1
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1~3のような鍵交換プロトコルにおいて、同じ乱数を再利用すると、その乱数を復元できる攻撃が示されている(例えば、非特許文献4~6参照)。また、乱数を毎回変えたとしても、同一の擬似乱数生成器を利用した場合には、ランダム性に関する一部の情報が漏洩することも示されている(例えば、非特許文献6参照)。
【0006】
本発明は、秘密値のランダム性に関する情報が漏洩するリスクを低減できる秘密値生成装置、鍵交換システム、秘密値生成方法及び秘密値生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る秘密値生成装置は、乱数に基づく秘密値を生成し、当該秘密値に基づいて演算された公開値を出力する装置であって、2つ以上の独立した擬似乱数生成器と、前記擬似乱数生成器のいずれか1つを選択するための選択用擬似乱数生成器と、を備え、前記選択用擬似乱数生成器により選択した、いずれかの前記擬似乱数生成器により前記乱数を生成する。
【0008】
本発明に係る鍵交換システムは、前記秘密値生成装置が2つで前記公開値を交換し、少なくとも一方の秘密値生成装置が、前記秘密値及び交換により取得した前記公開値に基づいて、秘密鍵を算出して他方の秘密値生成装置と共有する。
【0009】
前記他方の秘密値生成装置は、前記秘密鍵として乱数を生成し、当該乱数に基づく前記演算により前記公開値を生成してもよい。
【0010】
前記他方の秘密値生成装置は、前記選択用擬似乱数生成器により選択した、いずれかの前記擬似乱数生成器により、前記秘密鍵としての乱数を生成してもよい。
【0011】
本発明に係る秘密値生成方法は、乱数に基づく秘密値を生成し、当該秘密値に基づいて演算された公開値を出力する秘密値生成装置が、2つ以上の独立した擬似乱数生成器と、前記擬似乱数生成器のいずれか1つを選択するための選択用擬似乱数生成器と、を用いて、前記選択用擬似乱数生成器により選択した、いずれかの前記擬似乱数生成器により前記乱数を生成する。
【0012】
本発明に係る秘密値生成プログラムは、前記秘密値生成装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0013】
本発明によれば、秘密値のランダム性に関する情報が漏洩するリスクを低減できる。
【図面の簡単な説明】
【0014】
【
図1】実施形態における秘密値生成装置の機能構成を示す図である。
【
図2】従来の鍵交換のアルゴリズムを例示する図である。
【
図3】実施形態における鍵交換のアルゴリズムを例示する図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態の一例について説明する。
本実施形態の秘密値生成装置は、乱数に基づく秘密値を生成し、この秘密値に基づいて演算された公開値を出力する情報処理装置である。ここでは、一例として、耐量子暗号方式による鍵交換プロトコルが実装された2つの端末装置(秘密値生成装置)からなる鍵交換システムを示す。
【0016】
図1は、本実施形態における秘密値生成装置1の機能構成を示す図である。
秘密値生成装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備える。
【0017】
制御部10は、秘密値生成装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0018】
記憶部20は、ハードウェア群を秘密値生成装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(秘密値生成プログラム)の他、処理途中の各種データ等を記憶する。
【0019】
制御部10は、2つ以上の独立した擬似乱数生成器11と、これらの擬似乱数生成器11のいずれか1つを選択するための選択用擬似乱数生成器12と、演算部13とを備える。
【0020】
演算部13は、鍵交換のプロトコルを実行する機能部であり、このプロトコルにおいて一時的な秘密値として用いられる乱数を、選択用擬似乱数生成器12により選択した、いずれかの擬似乱数生成器11により生成する。
【0021】
鍵交換システムは、2つの秘密値生成装置1が秘密値から演算された公開値を交換し、2つの秘密値生成装置1の少なくとも一方が、秘密値及び交換により取得した公開値に基づいて、秘密鍵を算出して他方の秘密値生成装置1と共有する。
【0022】
ここで、他方の秘密値生成装置1は、適用するプロトコルに従い、共有する秘密鍵として乱数を生成し、この乱数に基づく演算により交換するための公開値を生成してもよい。
このとき、他方の秘密値生成装置1は、選択用擬似乱数生成器12により選択した、いずれかの擬似乱数生成器11により、秘密鍵としての乱数を生成してもよい。
【0023】
次に、従来の鍵交換のアルゴリズムと、本実施形態における鍵交換のアルゴリズムとを比較して説明する。
図2は、従来の鍵交換のアルゴリズムを例示する図である。
ここでは、一例として、2つの端末(秘密値生成装置)AliceとBobとの間での、格子暗号CRYSTALS-KYBERに基づく鍵交換のアルゴリズムを示している。
【0024】
Aliceは、使い捨ての秘密値として、乱数sA及びeAを生成し、公開値PAを演算している。
Bobは、使い捨ての秘密値として、乱数sB,eB,e’Bを生成し、さらに、秘密鍵としての乱数m、及びAliceから受信した公開値PAを用いて、公開値(c1,c2)を演算している。
【0025】
Aliceは、受信した公開値(c1,c2)と、自身が保持している秘密値とを用いて、秘密鍵m’を算出し、これにより、AliceとBobとが秘密鍵m=m’を共有する。
【0026】
図3は、本実施形態における鍵交換のアルゴリズムを例示する図である。
従来のアルゴリズム(
図2)と比べて、破線枠内の処理が変更されている。
この例では、2つの端末Alice及びBobのそれぞれに、擬似乱数生成器11が3つ(rand
0,rand
1,rand
2)ずつ設けられている。
【0027】
seed0,seed1,seed2,seed3は、それぞれ擬似乱数生成器rand0,rand1,rand2,rand3に与える初期値であり、互いに独立した異なる値である。
擬似乱数生成器rand3(選択用擬似乱数生成器12)により生成された乱数(0から2までの整数)に基づき、秘密値としての乱数生成時に、使用する擬似乱数生成器rand0,rand1,又はrand2が選択される。
なお、便宜上、両端末の擬似乱数生成器及び初期値に同一の添え字を用いているが、互いに独立した擬似乱数生成器及び初期値が設けられる。
【0028】
このアルゴリズムでは、Bobが生成する秘密鍵mは、
m←rand()
のように、乱数そのものであるが、この乱数についても、他の秘密値と同様に、
b←rand3[0:2], m←randb()
のように、rand3(選択用擬似乱数生成器12)により選択された擬似乱数生成器rand0,rand1,又はrand2により生成されてもよい。
【0029】
本実施形態によれば、秘密値生成装置1は、乱数に基づく秘密値を生成し、この秘密値に基づいて演算された公開値を出力する際に、2つ以上の独立した擬似乱数生成器11のうちのいずれか1つを、選択用擬似乱数生成器12により選択する。
したがって、秘密値生成装置1は、独立な初期値で初期化した複数の擬似乱数生成器11をランダムに選択し、選択した擬似乱数生成器11により乱数を生成する2段階の構成により、秘密値のランダム性に関する情報が漏洩するリスクを低減できる。
【0030】
ここで、擬似乱数生成器11の数を増やすほど安全性の向上が期待できるが、処理負荷が上昇するため、秘密値生成装置1の処理性能、及び要求される安全性に応じて、適宜設計されてよい。
また、選択用擬似乱数生成器12を複数設け、さらに別の擬似乱数生成器により選択用擬似乱数生成器12が選択されてもよく、同様に、3段階以上の多段階のランダム性が構築されてもよい。
【0031】
2つの秘密値生成装置1が公開値を交換することで、2つの秘密値生成装置1の少なくとも一方(例えば、前述の端末Alice)が、秘密値及び交換により取得した公開値に基づいて、秘密鍵を算出して他方の秘密値生成装置1と共有する鍵交換システムが構築される。特に、耐量子暗号に基づく鍵交換プロトコルにおいて、秘密値としての乱数を、ランダムに選択された擬似乱数生成器11により生成することにより、公開値から秘密値及び秘密値に関連する情報を入手する攻撃を防ぐことができる。
【0032】
鍵交換プロトコルにおいて、他方の秘密値生成装置1(前述の端末Bob)は、秘密鍵として乱数を生成し、この乱数と、秘密値及び取得した公開値とに基づく演算により自身の公開値を生成してもよい。この場合においても、秘密値生成装置1は、安全性の対策を施した秘密値に基づく演算により公開値を算出するので、秘密鍵の安全性が担保される。
【0033】
また、秘密値生成装置1は、この秘密鍵としての乱数を、選択用擬似乱数生成器12により選択した、いずれかの擬似乱数生成器11により生成してもよい。これにより、秘密鍵の漏洩に関する安全性をさらに向上できる。
【0034】
なお、本実施形態により、例えば、安全な耐量子鍵交換プロトコルを実現できることから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0035】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0036】
秘密値生成装置1による秘密値生成方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0037】
1 秘密値生成装置
10 制御部
11 擬似乱数生成器
12 選択用擬似乱数生成器
13 演算部
20 記憶部