(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-04
(45)【発行日】2022-02-15
(54)【発明の名称】キー交換デバイス及び方法
(51)【国際特許分類】
H04L 9/08 20060101AFI20220207BHJP
【FI】
H04L9/08 C
H04L9/08 E
(21)【出願番号】P 2019565064
(86)(22)【出願日】2018-02-15
(86)【国際出願番号】 EP2018053766
(87)【国際公開番号】W WO2018149912
(87)【国際公開日】2018-08-23
【審査請求日】2021-02-10
(32)【優先日】2017-02-15
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】590000248
【氏名又は名称】コーニンクレッカ フィリップス エヌ ヴェ
【氏名又は名称原語表記】KONINKLIJKE PHILIPS N.V.
(74)【代理人】
【識別番号】110001690
【氏名又は名称】特許業務法人M&Sパートナーズ
(72)【発明者】
【氏名】バタチャリア サウヴィク
(72)【発明者】
【氏名】ガルシア モーション オスカー
(72)【発明者】
【氏名】トルフィツェン ルドヴィクス マリヌス ジェラルダス マリア
(72)【発明者】
【氏名】リートマン ロナルド
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2005-252864(JP,A)
【文献】特表2013-524277(JP,A)
【文献】CHEON, Jung Hee et al.,A Practical Post-Quantum Public-Key Cryptosystem Based on spLWE,Cryptology ePrint Archive,International Association for Cryptologic Research (IACR),2016年11月,Report 2016/1055, Ver. 20161121:021856,pp. 1-19,[2021年12月14日検索], インターネット, <URL: https://eprint.iacr.org/2016/1055/20161121:021856>
【文献】BOS, Joppe et al.,Frodo: Take off the ring! Practical, Quantum-Secure Key Exchange from LWE,Cryptology ePrint Archive,International Association for Cryptologic Research (IACR),2016年09月,Report 2016/659, Ver. 20160910:010217,pp. 1-26,[2021年12月14日検索], インターネット, <URL: https://eprint.iacr.org/2016/659/20160910:010217>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
キー交換プロトコル用の第1の電子的ネットワークノードであって、前記第1の電子的ネットワークノードが、
第2のネットワークノードとのデジタル通信用の通信インターフェースと、
プロセッサ回路とを備え、前記プロセッサ回路は、
前記通信インターフェースを介して前記第2のネットワークノードと共有される共有マトリクスを取得することであって、前記共有マトリクスのエントリが第1の係数を法として選択される、取得することと、
プライベートキーマトリクスを生成することであって、前記プライベートキーマトリクスのエントリが絶対値において限界によって制限される、生成することと、
パブリックキーマトリクスを生成することであって、
マトリクス積を取得する前記第1の係数を法として、前記共有マトリクスと前記プライベートキーマトリクスとの間のマトリクス積を計算することと、
前記マトリクス積のエントリを第2の係数までスケールダウンすることであって、スケーリングされたエントリが、スケーリング前の前記エントリに前記第2の係数を掛け、前記第1の係数で割ってから、最近隣数に丸めたものに等しく、前記第2の係数が前記第1の係数よりも小さく、前記限界が最大でも前記第2の係数である、スケールダウンすることとによって、生成することと、
前記第1の
電子的ネットワークノードの前記パブリックキーマトリクスを前記第2のネットワークノードに送信することと、
前記第2のネットワークノードのパブリックキーマトリクスを受信することと、
前記第2の係数を法とする、前記第2の
ネットワークノードの受信された前記パブリックキー
マトリクスと前記第1の
電子的ネットワークノードの前記プライベートキーマトリクスとの間のマトリクス積として、生キーを計算することとを行い、
前記第1の電子的ネットワークノードが、
前記第2のネットワークノードの一致データを受信することと、
受信した前記一致データ及び前記生キーに対して一致関数を適用して共有キーを計算することとをさらに行うか、又は
前記第1の電子的ネットワークノードが、
前記生キーから前記共有キー及び一致データを取得することと、
前記一致データを前記第2のネットワークノードに送信することとをさらに行う、第1の電子的ネットワークノード。
【請求項2】
前記プライベートキーマトリクスのエントリに対する絶対値の前記限界が2又は1であり、後者は符号付き2進数に対応する、請求項1に記載の第1の電子的ネットワークノード。
【請求項3】
前記プライベートキーマトリクスの列及び/又は行が一定のハミング重みを有する、請求項1又は2に記載の第1の電子的ネットワークノード。
【請求項4】
前記プライベートキーマトリクスが、候補のプライベートキーマトリクスから一様ランダムに選択される、請求項1
から3のいずれか一項に記載の第1の電子的ネットワークノード。
【請求項5】
前記プライベートキーマトリクスのエントリは、ゼロエントリの確率が非ゼロエントリの確率よりも大きい非一様な確率分布から選択される、請求項1
から4のいずれか一項に記載の第1の電子的ネットワークノード。
【請求項6】
前記プライベートキーマトリクスが、前記プライベートキーマトリクスの前記列及び/又は行向けの一定の予期されたハミング重みを有する確率分布から選択される、請求項5に記載の第1の電子的ネットワークノード。
【請求項7】
【数73】
が少なくとも127であり、より好ましくは少なくとも255であって、nはマトリクスの次元であり、h
sはハミング重みである、請求項2に従属する請求項3に記載の第1の電子的ネットワークノード。
【請求項8】
前記第1の係数が前記第2の係数によって割られる、請求項1
から7のいずれか一項に記載の第1の電子的ネットワークノード。
【請求項9】
前記第2の係数及び/又は前記第1の係数が2の累乗である、請求項1
から8のいずれか一項に記載の第1の電子的ネットワークノード。
【請求項10】
それぞれの新規のキー交換用に新規のマトリクス及び/又は新規のプライベートキーを取得する、請求項1
から9のいずれか一項に記載の第1の電子的ネットワークノード。
【請求項11】
前記一致データのサイズが2ビット以上である、請求項1
から10のいずれか一項に記載の第1の電子的ネットワークノード。
【請求項12】
ランダムシードを生成して、通信チャネルを通じて前記ランダムシードを他のノードに送信することにより、共有マトリクスを取得し、前記第1の
電子的ネットワークノード及び前記第2のネットワークノードが、前記ランダムシードを使用して決定論的擬似乱数発生器のシードを設定し、前記
決定論的擬似乱数発生器の出力から前記共有マトリクスを生成する、請求項1
から11のいずれか一項に記載の第1の電子的ネットワークノード。
【請求項13】
前記共有マトリクスがnと等しい少なくとも1つの次元を有し、前記共有マトリクスが任意選択でn×nの正方マトリクスであり、
前記第1の
電子的ネットワークノードのプライベートキーがn及び
【数74】
の次元を有し、
前記第2の
ネットワークノードのプライベートキーが
【数75】
及びnの次元を有し、ここで、
【数76】
及び
【数77】
がnよりも小さい、請求項1
から12のいずれか一項に記載の第1の電子的ネットワークノード。
【請求項14】
前記第1の係数のビットサイズが12以上であり、及び/又は
前記第2の係数のビットサイズが7以上である、請求項1
から13のいずれか一項に記載の第1の
電子的ネットワークノード。
【請求項15】
第1の電子的ネットワークノード用の電子キー交換方法であって、前記電子キー交換方法が、
前記第1の
電子的ネットワークノードと第2のネットワークノードとの間にデジタル通信を確立するステップと、
前記デジタル通信を介して前記第2のネットワークノードと共有される共有マトリクスを取得するステップであって、前記共有マトリクスのエントリが第1の係数を法として選択される、取得するステップと、
プライベートキーマトリクスを生成するステップであって、前記プライベートキーマトリクスのエントリが絶対値において限界によって制限される、生成するステップと、
パブリックキーマトリクスを生成するステップであって、
マトリクス積を取得する第1の係数を法として、前記共有マトリクスと前記プライベートキーマトリクスとの間のマトリクス積を計算するステップと、
前記マトリクス積の前記エントリを第2の係数までスケールダウンするステップであって、スケーリングされたエントリが、スケーリング前の前記エントリに前記第2の係数を掛け、前記第1の係数で割ってから、最近隣数に丸めたものに等しく、前記第2の係数が前記第1の係数よりも小さく、前記限界が最大でも前記第2の係数である、スケールダウンするステップとによって、前記パブリックキーマトリクスを生成するステップと、
前記第1の
電子的ネットワークノードの前記パブリックキーマトリクスを前記第2のネットワークノードに送信するステップと、
前記第2のネットワークノードのパブリックキーマトリクスを受信するステップと、
前記第2の係数を法とする、前記第2の
ネットワークノードの受信された前記パブリックキー
マトリクスと前記第1の
電子的ネットワークノードの前記プライベートキーマトリクスとの間のマトリクス積として、生キーを計算するステップとを有し、
前記電子キー交換方法が、
前記第2のネットワークノードの一致データを受信するステップと、
受信された前記一致データ及び前記生キーに対して一致関数を適用することにより、共有キーを計算するステップとをさらに有するか、又は
前記電子キー交換方法が、
前記生キーから前記共有キー及び一致データを取得するステップと、
前記一致データを前記第2のネットワークノードに送信するステップとをさらに有する、電子キー交換方法。
【請求項16】
請求項15に記載の電子キー交換方法をプロセッサシステムに遂行させる命令を表わす一時的データ又は非一時的データを含む、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークノード、キー合意方法及びコンピュータ可読媒体に関するものである。
【背景技術】
【0002】
暗号手法では、キー合意プロトコルは、まだ共通キーを共有していない2つ以上のパーティがそのようなキーに合意することができるようにするプロトコルである。どちらのパーティもキーの選択を強要することができないように、両方のパーティが結果に影響を及ぼすことができるのが望ましい。2つのパーティ間のすべての通信を盗聴する攻撃者が、キーについて何かを学習できてはならない。さらに、パーティは自分たちの共有キーを導出することができるが、同一の通信を調べる攻撃者は何も学習することができず、できたとしても僅かである。
【0003】
たとえば通信を確実にするために、たとえばパーティのメッセージを暗号化し且つ/又は認証するのに、キー合意プロトコルは有用である。
【0004】
実用的なキー合意プロトコルは、1976年にWhitfield Diffie及びMartin Hellmanがパブリックキー暗号作成法の概念を導入したとき導入された。2つのパーティ間のキー合意のための提案されたシステムは、q個の要素を有する有限フィールドGF(q)にわたって対数を計算するという明らかな難点を利用するものであった。2人のユーザが、このシステムを使用して、対称キーに基づいて合意することができる。次いで、対称キーは、たとえば2つのパーティ間の暗号化された通信に使用される。
【0005】
パーティ間にまだDiffie-Hellmanのキー合意方法などの共有秘密がないとき適用可能な現行のキー合意方法では、大量のリソースを消費する数学的演算が必要となる。たとえば、Diffie-Hellmanのキー合意方法は、有限フィールドにわたる指数演算を遂行する必要がある。指数とフィールド長とが、どちらも大きくなりがちである。このため、キー合意プロトコルは、少ないリソースのデバイス向けにはあまり適切ではない。他方では、リソースを抑制されたデバイスではキー合意プロトコルが非常に有用であろう。たとえば、モノのインターネット、アドホック無線ネットワークなどの応用分野では、デバイス間のリンクを保護するためにキー合意が使用され得る。別の例には、たとえばカードリーダとスマートカードといったリーダと電子タグとの間の通信、又はタグリーダと例えばRFIDタグ若しくはNFCタグといったタグとの間の通信がある。2つのパーティのうち少なくとも1つすなわち電子タグの負荷が小さいキー合意プロトコルが有利であろう。
【0006】
パーティ間の安全な通信を容易にするために、キー合意プロトコルが、暗号化キー交換(KEX)方式と暗号化キーカプセル化(KEM)方式とに、さらに細分されることがある。暗号化キーカプセル化(KEM)方式は、2つのパーティ間の共有秘密を確立するために、それぞれのパーティ向けに、公的に知られた値(たとえばパブリックキー)及び秘密裡に所有された値(たとえば秘密キー)を使用する、非対称の暗号手法を使用する。
【0007】
KEX方式は各パーティによるパブリックキーの交換を包含しており、次いで、パブリックキーが、共通の共有秘密を計算するために、他方のパーティによってそれ自体の秘密キーとともに独立して使用される。KEX方式のよく知られている例には、前述のDiffie-Hellmanのキー交換があり、そのセキュリティは離散対数問題を解くことに基づくものである。いくつかのKEX方式の興味深い特徴には、実際の最終的な共有秘密が、暗号化された形式でさえパーティ間で交換されるのではなく、各エンドにおいて2つのパーティによって別個に計算されることがある。これによって、将来、攻撃者によってパーティの長期秘密キーが漏洩しても、過去に交換された、暗号化されたメッセージの秘密通信方式が漏洩しないことを保証する、フォワード秘密通信方式として知られている望ましい特徴がもたらされる。
【0008】
KEM方式は、通常は通信のイニシエータである一方のパーティが、非対称の暗号手法を使用して(他方のパーティのパブリックキーを使用して)暗号化し、2つのエンティティ又はパーティ間の共有秘密を確立して、レスポンダとして知られている他方のパーティに共有秘密を送信し、次いで、レスポンダが(自身の秘密キーを使用して)共有秘密を解読することができ、そこで、イニシエータパーティと安全に通信するために使用することができる。パーティの過去のセッションの秘密キーを漏洩してそのセッションにおいてパーティ間で交換されたすべてのメッセージを記録した何らかの攻撃者は、特別なそのセッションに関する共有秘密を再生することができるので、KEM方式はフォワード秘密通信方式を達成することができない。
【発明の概要】
【発明が解決しようとする課題】
【0009】
モノのインターネットにおけるセキュリティの必要性が増しているので、キー交換方式は、高効率(すなわち最小量の通信要件又は帯域幅要件)を達成する必要があり、また典型的な敵対者ならびに量子対応の敵対者に対して安全なままである必要もある。
【課題を解決するための手段】
【0010】
キー交換プロトコル用の電子的ネットワークノードが提供される。このネットワークノードは、これと通信する第2のネットワークノードと区別するために第1のネットワークノードと称される。
【0011】
第1のネットワークノードは、
第2のネットワークノードとのデジタル通信用に構成された通信インターフェースと、
プロセッサ回路とを備え、プロセッサ回路は、
通信インターフェースを介して第2のネットワークノードと共有される共有マトリクスを取得することであって、共有マトリクスAのエントリが第1の係数qを法として選択される、取得することと、
プライベートキーマトリクスを生成することであって、プライベートキーマトリクスのエントリが、限界によって絶対値を制限された整数である、生成することと、
パブリックキーマトリクスを生成することであって、
マトリクス積を取得する第1の係数を法として、共有マトリクスとプライベートキーマトリクスとの間のマトリクス積を計算することと、
マトリクス積のエントリを第2の係数までスケールダウンすることであって、スケーリングされたエントリが、スケーリング前のエントリに第2の係数を掛け、第1の係数で割ってから、最近隣数に丸めたものに等しく、第2の係数が第1の係数よりも小さく、上記の限界が最大でも第2の係数である、スケールダウンすることとによって、生成することと、
第1のネットワークノードのパブリックキーマトリクスを第2のネットワークノードに送信することと、
第2のネットワークノードのパブリックキーマトリクスを受信することと、
第2の係数を法とする、第2のノードの受信されたパブリックキーと第1のネットワークノードのプライベートキーマトリクスとの間のマトリクス積として、生キーを計算することとを行うように構成される。
【0012】
プライベートキーマトリクスが制限され、パブリックキーマトリクスがスケールダウンされるので、キー合意の計算及び通信のオーバヘッドが低減される。一致データを使用すると、第1のネットワークノード及び第2のネットワークノードにおいて計算された生キーマトリクス間の差が克服される。ノードの一方が一致データを計算して、他方がそれを使用する。たとえば、第1のネットワークノードのプロセッサ回路は、
第2のネットワークノードの一致データを受信し、
受信した一致データ及び生キーに対して一致関数を適用して共有キーを計算するように構成されており、或いは
生キーから共有キー及び一致データを取得して、
一致データを第2のネットワークノードに送信するように構成されている。
【0013】
ネットワークノードは電子デバイスである。たとえば、ネットワークノードは、携帯電話、タブレット、又はスマートカード、コンピュータなどのモバイル電子デバイスである。ネットワークノードは、セットトップボックス、コンピュータ、テレビなどである。本明細書で説明されたキー合意の方法は、広範囲の実用的な用途に適用される。そのような実用的な用途は、(モノの)インターネットにおけるセキュリティを含む。プロトコルは、IKE、TLS、SSHなどのプロトコルに適用され得る。一般に、提案された方式は、一般的なインターネットの使用事例とリソースを抑制された環境との両方のためのポスト量子セキュアである。キー合意は、2つのノード間の安全な、たとえば機密の通信が必要とされるときは常に使用される。これはセンサネットワークにおけるものであるが、たとえば金融取引を安全にするためでもある。
【0014】
本発明による方法は、コンピュータで実施される方法として、コンピュータ上で、専用ハードウェアにおいて、又は両方の組合せで実施される。本発明による方法に関する実行可能コードは、コンピュータプログラム製品に記憶される。コンピュータプログラム製品の例は、記憶デバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどを含む。好ましくは、コンピュータプログラム製品は、コンピュータ上で実行されたとき、本発明による方法を遂行するための、コンピュータ可読媒体に記憶された非一時的プログラムコードを含む。
【0015】
好ましい実施形態では、コンピュータプログラムが含むコンピュータプログラムコードは、コンピュータプログラムがコンピュータ上で実行されたとき本発明による方法のすべてのステップを遂行するように適合されている。好ましくは、コンピュータプログラムはコンピュータ可読媒体上に具現される。
【0016】
本発明の別の態様は、コンピュータプログラムをダウンロード可能にする方法を提供するものである。この態様は、コンピュータプログラムが、たとえばApple社のApp Store、Google社のPlay Store、又はMicrosoft社のWindows Storeにアップロードされていて、そのような店舗からダウンロード可能なとき使用される。
【0017】
本発明のさらなる詳細、態様、及び実施形態を、図面を参照しながら、例としてのみ説明する。図における要素は簡単さ及び明瞭さのために示されており、必ずしも原寸に比例しない。図では、既に説明された要素に対応する要素は同一の参照番号を有する。
【図面の簡単な説明】
【0018】
【
図1】キー合意ネットワークの一実施形態の一例を示す概略図である。
【
図2】生キーの一実施形態の一例を示す概略図である。
【
図3】電子キー交換方法の一実施形態の一例を示す概略図である。
【
図4a】一実施形態による、コンピュータプログラムを含む書込み可能部分を有するコンピュータ可読媒体を示す概略図である。
【
図4b】一実施形態によるプロセッサシステムの表現を示す概略図である。
【0019】
以下は
図1~
図2における参照番号のリストである。
100 キー合意ネットワーク
110 イニシエータタイプのネットワークノード
120 通信インターフェース
130 共有マトリクスユニット
140 プライベートキーマトリクスユニット
150 パブリックキーマトリクスユニット
160 共有キーユニット
162 生キー
164 一致データ(h)
166 共有キー
210 レスポンダタイプのネットワークノード
220 通信インターフェース
230 共有マトリクスユニット
240 プライベートキーマトリクスユニット
250 パブリックキーマトリクスユニット
260 共有キーユニット
262 生キー
264 一致データ(h)
266 共有キー
300 生キー
301 最上位部分
302 中位部分
303 最下位部分
【発明を実施するための形態】
【0020】
この発明は多くの異なる形式における実施形態の余地があるが、1つ又は複数の特定の実施形態が図面に示されて本明細書で詳細に説明され、本開示は、本発明の原理の例示と見なされるべきであり、本発明を、示されて説明された特定の実施形態に限定するように意図されたものではないという理解を伴う。
【0021】
以下では、理解のために、実施形態の要素が動作において説明される。しかしながら、それぞれの要素が、遂行すると説明されている機能を遂行するように構成されていることは明らかであろう。
【0022】
さらに、本発明は、実施形態に限定されることなく、本明細書で説明されるあらゆる斬新な特徴若しくは特徴の組合せにあり、又は互いに異なる従属請求項において詳述される。
【0023】
図1は、キー合意ネットワーク100の一実施形態の一例を概略的に示すものである。
【0024】
図1には、イニシエータタイプのネットワークノード110及びレスポンダタイプのネットワークノード210といった、システムにおける2つのネットワークノードが示されている。キー合意システムの実施形態ではノードの数が多く、2つよりもはるかに多いことさえあり、たとえば1000ノードよりも多く、たとえば10
6以上のノードである場合もある。
【0025】
イニシエータタイプのネットワークノードとレスポンダタイプのネットワークノードとの間の違いは、一致データを処理するやり方にある。イニシエータタイプのネットワークノードは、一致データを受信して、共有キーを取得するために適用するが、レスポンダタイプのネットワークノードは、一致データを生成してイニシエータタイプのネットワークノードに送信する。レスポンダタイプのネットワークノードは、共有キーを取得するのに一致データを必要としない。一般的には、イニシエータタイプは、2つのネットワークノード間で実行される丸めの数を低減し得るので、2つのネットワークノード間のキー合意プロトコルも起動することになる。しかしながら、レスポンダタイプのネットワークノードもキー合意プロトコルを起動し得ることは、必須ではない。
【0026】
その上、ネットワークノードの一実施形態では、ネットワークノードはイニシエータモード及びレスポンダモードに従って動作するように構成されている。たとえば、ネットワークノードは、キー合意を起動する場合、たとえばキー合意プロトコルの開始をシグナリングするメッセージを別のネットワークノードに送信して、イニシエータモードに切り換わる。ネットワークノードは、たとえばキー合意プロトコルの開始をシグナリングする別のネットワークノードからのメッセージを受信してキー合意に応答する場合には、レスポンダモードに切り換わる。これは実際には便利であるが、また、この選択肢は厳密に必須ではなく、たとえば、キー合意システムでは、いくつかのノードのみがイニシエータノードとして構成され、いくつかのノードのみがレスポンダノードとして構成される。この結果、いくつかのノードは、共有キーに対して一緒に合意することはできないはずである。このことは、たとえばアドホックネットワーク又はアドホック無線グリッドなどのいくつかのネットワークについては、十分に多くの対のネットワークノードが通信して共有キーに合意することができる限り、問題にはならない。
【0027】
イニシエータノード110は通信インターフェース120を備える。レスポンダノード210は通信インターフェース220を備える。通信インターフェースは、キー合意システムにおける他のノードとのデジタル通信用に構成される。しかし、システムにおけるすべてのノードが常に連絡される必要はない。
【0028】
通信インターフェース120及び220はデジタル通信用に構成されている。たとえば、通信インターフェースは、コンピュータネットワークにわたって通信するように構成される。たとえば、通信インターフェースは、たとえばWi-Fi(登録商標)、ZigBee(登録商標)、Bluetooth(登録商標)などの無線通信用及び/又はたとえばイーサネット(登録商標)、USBなどの有線通信用に構成される。ノード110と210との間の通信は、有線接続と無線接続との組合せでもよい。たとえば、ノード110及び120を含むシステム100のノードは、システム100の内部のノードを一意的に識別する通信識別子を含有している電子記憶機構を備える。たとえば、通信識別子は、たとえばメッセージをアドレス指定するためにノード110と210との間で交換されるデジタルメッセージに含まれる。たとえば、通信識別子は、IPアドレス、MACアドレスなどである。
【0029】
電子ネットワークノードは、キー交換(KEX)プロトコル用に構成されている。KEXプロトコルは、通信インターフェース120及び220にわたってノード110と210との間でメッセージを交換することと、たとえば他のノードから受信されたデータに対して計算を遂行することとを包含する。キー合意プロトコルはプロセッサ回路において実行され、その例を以下に示す。
図1が示す機能ユニットはプロセッサ回路の機能ユニットである。たとえば、
図1は、プロセッサ回路の可能な機能組織のブループリントとして使用される。プロセッサ回路は、
図1のユニットから分離して示されてはいない。たとえば、
図1に示された機能ユニットはまた、ネットワークノードのマイクロプロセッサが実行可能な、ネットワークノードに記憶されたコンピュータ命令で、全体的又は部分的に実施される。
【0030】
イニシエータノード110及びレスポンダノード210はキー交換(KEX)プロトコル用に構成されている。KEX方式は、各パーティによる、多くの場合パブリックキーと称されるパブリックデータの交換を包含しており、交換されたパブリックデータは、他方のパーティによって、多くの場合秘密キーと称されるそれらのプライベートデータとともに、共通の共有秘密を計算するために別個に使用される。いくつかの実施形態の興味深い特徴には、実際の最終的な共有秘密が、暗号化された形式でさえパーティ間で交換されるのではなく、各エンドにおいて2つのパーティによって別個に計算される。これによって、将来、攻撃者によってパーティの長期秘密キーが漏洩しても、過去に交換された、暗号化されたメッセージの秘密が漏洩しないことを保証する、フォワード秘密通信方式として知られている望ましい特徴がもたらされる。
【0031】
本発明の実施形態は、信頼されたサードパーティによる秘密情報の提供に頼ることがない。通信インターフェース120と220との間の通信チャネルは、必ずしも安全なチャネルでなくてもよい。攻撃者が通信チャネルを盗聴する可能性がある。盗聴されても、ノード110と210との間で合意したキーは安全である。通信チャネルが改造に対して保護されていれば、チャネルによってもたらされるものである限り、ある程度の認証が取得される。しかしながら、通信インターフェース120と220との間のチャネルが改造に対して保護されていなければ、KEX方式は認証しないことになる。認証を取得するために、実施形態は、たとえば保証されたパブリックキーを使用する明示的認証機構、又はたとえばデジタル署名を使用する暗示的認証機構といった、何らかの知られている認証機構と組み合わされる。
【0032】
KEX方式のよく知られている例には、Diffie-Hellmanのキー交換があり、そのセキュリティは離散対数問題を解くことに基づくものである。本発明で定義されるキー交換機構の困難さは、いわゆるLearning with Rounding(LWR)問題に基づくものである。LWEインスタンスの数が制限されるとき、LWR問題の困難さは、いわゆるLearning with Errors(LWE)問題の困難さに基づくものと想定される。LWE問題の平均的な場合の困難さは、量子コンピュータにとって解くのが困難な特定の関連する格子ベースの問題の最悪の場合の困難さに基づくものであるため、このキー交換方式は、ポスト量子の安全なキー合意プロトコルである。
【0033】
Learning with Errors(LWE)問題は数学的に困難な問題であり、その推定された難点のために量子コンピュータに対してさえポスト量子の暗号方式を生じさせる、よく理解されているセキュリティである。しかしながら、LWE問題から生じる方式は、一般的には計算複雑度及び通信複雑度の両方に関して、性能上の負荷が重い。Learning with Errors(LWE)問題は以下のように説明され得る。
【0034】
n次元のベクトルs∈Z
q
n及びZ
qにわたる誤差分布χに関して、
【数1】
にわたるLWE分布
【数2】
は、
【数3】
及びχからの誤差eからベクトルaを一様且つランダムに選択して、
【数4】
を出力することよって取得される。
【0035】
探索LWE問題は、
【数5】
から多くの独立したサンプル(ai、bi)を任意に与えられて
【数6】
を見いだすことである。
【0036】
LWEn,q,χ(D)によって表される決定LWE問題は、分布
【数7】
を、
【数8】
にわたる均一分布から識別することであり、一定のs←Dについて無視できない利益がある。
【0037】
LWR問題は、LWE問題の、秘密情報を隠すために誤差を挿入する代わりに係数「p」を用いる丸めを使用し、次いで、Zq(qは元のLWE係数である)からZpにスケールダウンして決定論的な誤差を導入することによって「非ランダム化された」バージョンである。
【0038】
n次元のベクトル
【数9】
について、
【数10】
にわたるLWR分布
【数11】
は、
【数12】
から、ベクトルaを一様且つランダムに選択して、
【数13】
を出力することによって取得される。
【0039】
ここで、
【数14】
はxに最も近い整数を表す。探索LWR問題は、探索LWE問題と正確に類似している秘密sを見いだすことに関して定義される。決定LWR問題は、分布
【数15】
を、
【数16】
にわたる均一な分布から識別することであり、一定のs←Dについてm個のインスタンスがある。探索LWR問題及び決定LWR問題は、2mBp/q(BはLWE問題における誤差の限界である)が一定であるようにmが制限されるとき、対応するLWE問題と少なくとも同じくらい困難であることが示されている。
【0040】
LWE問題に基づくポスト量子キー交換方式は、LWE問題のよく理解されているセキュリティのために、広範囲にわたる信頼を享受する。しかしながら、リソースを抑制された環境において使用され得る、性能上の負荷が軽いLWEベースのキー交換方式はない。既存のアルゴリズムは、qを法とするマトリクス乗算、ガウス分布などの確率分布からのサンプリング、大きなエントリを伴うマトリクスの計算又は伝送など、リソースを制限されたデバイス上では遅くなる様々な演算を含む。
【0041】
本発明では、2つのパーティが、正確に等しいわけではないがほぼ等しい2つのマトリクスを生成する。正確に合意するために、いくつかの一致データが送信される。こうするための方式は、2016年11月4日に同一の出願人がヨーロッパ特許庁に出願した「REACHING AGREEMENT ON A SECRET VALUE」という名称の特許出願(出願番号16197277.3)に説明されており、たとえば、7~10頁の方法は、本発明による実施形態における一致に使用され得る。引用された特許出願の他のところに開示された変形形態も採用され得る。
【0042】
この出願では、以下の3つの関数に関して以下の表記法を使用する。
1.丸め関数
【数17】
:q,b
h,B∈Z、b
h≧1、B<log
2q-b
h、について、
【数18】
とする。その場合、
【数19】
となる。直観的に、
【数20】
は、
【数21】
のB個の最上位ビットを抽出し、ここで、第2の要素は、バイアスがない丸め誤差を保証するための丸め係数である。
2.相互丸め関数
【数22】
:q,b
h,B∈Z、b
h>1、B<log
2q-b
h、について、
【数23】
とする。その場合、
【数24】
となる。直観的に、
【数25】
は、vの(B+b
h)個の最上位ビットのうちb
h個の最下位ビットを抽出する。
3.一致関数rec(w,b):
【数26】
について、
【数27】
である。ここで、vはwに最も近い要素であり、
【数28】
となる。
【0043】
上記で引用された一致関数は、本明細書で一例として使用される。前述のように、上記で引用された出願における調整法も使用され得る。
図2は丸め関数及び相互丸め関数の概略図である。例として、
図2は生キー300を示す。生キー300は、左側に最上位ビットがあって右側に最下位ビットがあるビットストリングとして示される。直観的に、生キーに適用される丸め関数は最上位部分301におけるB個のビットに対応し、相互丸め関数は中間部分302における次のb
h個のビットに対応する。最下位のlog
2q-B-b
h個は棄却される。
【0044】
イニシエータノード110は共有マトリクスユニット130を備える。レスポンダノード210は共有マトリクスユニット230を備える。共有マトリクスユニット130及び230は、2つのノード間で共有される共有マトリクス(A)を取得するように構成されている。共有マトリクスAにおけるエントリは、第1の係数qを法として選択された整数である。マトリクスAがノード110及び210に必ずしも秘密に保たれないという事実を特に所与として、ノード110と210との間で同一のマトリクスが共有されることを保証するための多くのやり方がある。
【0045】
たとえばノードの一方である、たとえば共有マトリクスユニット130のイニシエータノード110が、マトリクスAを、たとえばqを法とする要素を用いてランダムに選択する。次いで、エントリが、通信ユニットを通じて、たとえば共有マトリクスユニット230といった他方のノードに送信される。この場合、後者の共有マトリクスユニット230は、単にマトリクスAを受信して記憶することになる。マトリクスAは、代わりに、レスポンダノード210によって選択されてイニシエータノード110に送信されてもよい。
【0046】
マトリクスAを選択するのに2つのノードが協働してもよい。たとえば、各ノードがエントリのうちいくつかを選択して他方に送信する。たとえば、イニシエータノードが奇数のエントリを選択し、レスポンダノードが偶数のエントリを選択する、などである。このようにして、2つのノードのどれも、最終的なマトリクスAを制御することはない。たとえば、2つのノードのそれぞれが、完全なマトリクスAを選択して他方へ通信することができる。この後に、2つのマトリクスがqを法として加算される。最後のノードにマトリクスを送信する有利な立場を与えるのを避けるために、まず、最後のノードが、選択されたマトリクスに関するコミットメントを送信する。
【0047】
完全なマトリクスAの送信のオーバヘッドを低減するための興味深いやり方には、ランダムシードを生成して、通信チャネルを通じて方のノードに送信するものがある。ランダムシードを受信した後、第1のネットワークノード及び第2のネットワークノードは、受信したランダムシードを使用して、上記のやり方のうち任意のものでマトリクスAを生成する。同一のランダムシードが、決定論的擬似乱数発生器のシードを設定するために使用され、擬似乱数発生器の出力からマトリクス(A)が生成される。上記のように、各ノードが、たとえばAの異なる部分を生成するためのシードを送信することができ、又は、2つのシードが、たとえば加算若しくは排他的論理和などによって組み合わされて、Aを生成するために使用される。
【0048】
シードは、たとえば、真の乱数発生器といったさらなる乱数発生器から選択される。ノードは、たとえば生産において乱数のリストを伴って構成される。この場合、ノードは、新規のキー合意のために新規のマトリクスAが生成されるたびにリストから次の乱数を選択する。乱数のリストが使い尽くされると、信頼されたソースから補充される。
【0049】
一実施形態では、マトリクスAは次元n×nの正方マトリクスである。これは厳密に必須ではなく、プロトコルの他の要素の次元は、非正方マトリクスAを考慮に入れるように適合されてよい。しかしながら、正方マトリクスAを選択することが最も便利であり、全体にわたって想定される。
【0050】
イニシエータノード110はプライベートキーマトリクスユニット140を備える。レスポンダノード210はプライベートキーマトリクスユニット240を備える。プライベートキーマトリクスユニット140はプライベートキーマトリクスSIを生成するように構成されており、プライベートキーマトリクスユニット240はプライベートキーマトリクスSRを生成するように構成されている。プライベートキーマトリクスのエントリは、絶対値においてsという限界のある整数である。たとえば、プライベートキーマトリクスのエントリは-s~s(境界値を含む)の間で選択される。
【0051】
意外にも、小さい限界を選択すると、プライベートキーマトリクスとのマトリクス乗算がより高速になり、両側で計算される生キー間の距離が小さくなる(下記を参照されたい)、といった2重の利点があることが分かった。後者の利点は、必要な一致データが少なくなること、及び/又は異なるキーについて合意するノードが少なくなるため、プロトコルにおける失敗の可能性が低下することを意味する。限界sは、最大でも第2の係数、たとえば第2の係数以下に選択される。後にpを法とする乗算があるので、この選択は有利である。Sにおける符号付きエントリを可能にすれば、sは第2の係数の2分の1(p/2)以下(又はp/2未満)に制限され得る。
【0052】
限界は第2の係数又は第2の係数の2分の1よりも小さく、実際には、それよりも、一般的にははるかに小さく選択される。一実施形態では、プライベートキーマトリクス(SI、SR)におけるエントリの絶対値に対する限界sは2である(s=2)。すなわち、プライベートキーマトリクスにおけるすべてのエントリが、-2、-1、0、1、又は2のいずれかである。マトリクスAにプライベートキーマトリクスを掛けるために必要なのは、加算、減算及び1ビットにわたるシフトのみである。したがって、そのようなマトリクス乗算は非常に効率的に実施され得る。
【0053】
実装形態の見地からすれば、限界を1に選択する(s=1)ことによって最善の結果が達成される。すなわち、プライベートキーマトリクスのエントリの値は、-1、0及び1のみである。これは「符号付き2進数」とも称される。符号付き2進数におけるマトリクスとのマトリクス乗算に包含されるのは加算及び減算のみである。p又はqを法とする乗算には、乗算ユニットは不要である。
【0054】
sに関する他の小さい数も可能であり、たとえばs=3であれば、可能なエントリは0、1、-1、2、-2、3、-3である。これらの数を掛けるための乗算ルーチンはノードに含まれる。たとえば、+1、-1は加算器/減算器によって処理され、-2、+2はシフトとそれに続く加算器/減算器とによって処理され、+3、-3はシフトされた数とシフトされていない数の両方の加算/減算によって処理される。
【0055】
一実施形態では、プライベートキーマトリクスが含むエントリは、掛けるのが容易な0、2の累乗、及び任意選択の2の負の累乗のみである。
【0056】
一実施形態では、プライベートキーマトリクスは正の数と負の数の両方を含有している。しかしながら、プライベートキーマトリクスを0以上の数に制限することもさらに可能である。たとえば、プライベートキーマトリクスのエントリは0~sの間にある(境界値を含む)。たとえば、後者の場合においてs=1に選択することより、乗算及び減算の両方の演算が回避される。
【0057】
プライベートキーマトリクスは、マトリクスAを掛けられ得るように、次元を選択される。たとえば、Aがn×nのマトリクスであれば、イニシエータノードのプライベートキーマトリクスはn×
【数29】
のマトリクスとなり、レスポンダノードのプライベートキーマトリクスはn×
【数30】
のマトリクスとなる。
【数31】
及び
【数32】
の大きさは、共有キーにおける十分なビット数と十分に高いセキュリティレベルとを取得するように十分に大きく選択される。
【0058】
プライベートキーマトリクスのエントリの大きさを制限することに加えて、非ゼロ要素の数を制限することによってさらなる利益が取得される。マトリクスの列又は行のハミング重みを、マトリクスの非ゼロエントリの数と称することにする。
【0059】
プライベートキーマトリクスのハミング重みを制限するための異なるやり方を調査した。一般に、プライベートキーマトリクスに対してマトリクスAを左に掛けるのか右に掛けるのかということに依拠して、ハミング重みを列又は行のいずれかに制限すれば十分である。たとえば、マトリクスAの右にプライベートキーマトリクスを掛ける(たとえばAS)場合には、ハミング重みをプライベートキーマトリクスの列に制限すれば十分である。
【0060】
たとえば、プライベートキーマトリクスの列及び/又は行のハミング重みに関して上限が選択される。上限は、すべての列及び/又は行に対して同一でよい。一実施形態では、プライベートキーマトリクス(SI、SR)の列及び/又は行は、同一の一定のハミング重みを有する。
【0061】
プライベートキーマトリクスが、たとえばエントリに対する限界と列又は行におけるハミング重みとに関して選択された要件を満たすマトリクスからの候補のプライベートキーマトリクスから一様ランダムに選択されるという条件が与えられると、セキュリティが改善される。たとえば、各列のハミング重みが50であるという条件を強制する場合には、各列について50のハミング重みを有する正確な次元を伴うすべてのマトリクスのセットからプライベートキーマトリクスを選択するのが有利である。任意の所望のハミング重みの一様ランダムなビットストリングを選択するための効率的なアルゴリズムが知られている。
【0062】
プライベートキーマトリクスのハミング重みを制限するための異なるやり方には、確率分布からプライベートキーマトリクス(SI、SR)の列及び/又は行を選択するものがある。たとえば、プライベートキーマトリクス(SI、SR)のエントリは、ゼロエントリの確率が非ゼロエントリの確率よりも大きい非一様な確率分布から選択される。一実施形態では、確率分布は、列及び/又は行に対して所定の予期されたハミング重みを与えるように選択される。たとえば、長さnの列と予期されるハミング重みhsとを選択するために、各エントリを、確率hs/nを伴う非ゼロとして選択する。非ゼロエントリは、たとえば等確率で1又は-1に選択される。
【0063】
小さすぎる列又は行におけるハミング重みはセキュリティに影響を与える可能性がある。たとえば、符号付きバイナリの場合には、ハミング重みh
sは、
【数33】
が少なくとも127になるように、より好ましくは少なくとも255になるように選択される。理由は、プライベートキーマトリクスにわたってループすることによるブルートフォースアタックを実行不可能にするためである。一実施形態では、ハミング重みh
sは、上記の制限を満たす、できるだけ小さいものである。
【0064】
イニシエータノード110はパブリックキーマトリクスユニット150を備える。レスポンダノード210はパブリックキーマトリクス250を備える。パブリックキーマトリクスユニットは、マトリクスA及びプライベートキーマトリクスSからパブリックキーマトリクスを計算する。
【0065】
パブリックやプライベートという用語は、パブリック情報の知見だけでは、すなわちいくつかのプライベート情報の知見なしでは、共有キーを取得することができないということを示唆するように意図されている。そのパブリック情報はアクティブに共有されるが、要件はない。たとえば、キー合意プロトコルは、盗聴者からパブリックキーを安全に保つ(推定された)安全なチャネルにわたって実行され得る。この場合、キー合意プロトコルは、チャネルのセキュリティが突破されるとセキュリティの追加層をもたらす。
【0066】
パブリックキーマトリクスユニットは、第1の係数(q)を法として共有マトリクス(A)とプライベートキーマトリクス(それぞれSI又はSR)との間のマトリクス積を計算することにより、パブリックキーマトリクスP(イニシエータ用のPI及びレスポンダ用のPR)を計算してマトリクス積を取得し、結果をスケールダウンする。
【0067】
しかしながら、この中間のマトリクス乗算は明らかにされない。プライベートキーは、共有マトリクスAの逆マトリクスを求めることによって計算されるので、共有マトリクスAの知見及びこのマトリクス乗算の結果によって明らかになる。この選択肢は、パブリックキーマトリクスユニットによって遂行されたスケーリングのステップによって阻止される。パブリックキーマトリクスユニットは、マトリクス積のエントリを第2の係数pまでスケールダウンする。第2の係数pは第1の係数qよりも小さい。スケーリングされたエントリは、スケーリング前のエントリに第2の係数(p)を掛けてから第1の係数(q)で割って、最近隣数に丸めたものと等しい。たとえば、xが、マトリクス積におけるqを法とするスケーリングの前のエントリである場合、スケーリングされたエントリは、
【数34】
として選択され、この式で
【数35】
は最近隣数を表す。スケーリング演算の後は、単純にパブリックキー及びマトリクスAからプライベートキーを計算することはもはや不可能である。
【0068】
パブリックキーマトリクスのエントリは、区間[0,p-1]における整数として表される。プライベートキーマトリクスのエントリも、区間[0,p-1]における整数として表される。エントリを、区間
【数36】
において選択すると、それに続く乗算のための整数が小さくなるという利益がある。上記で指摘されたように、プライベートキーマトリクスは、区間[-s,s]において、さらには区間[0,s]において選択されたエントリを有し得る。
【0069】
マトリクスAとプライベートキーマトリクスSとの乗算は、第1の係数qを法として行われる。このために、ネットワークノードは、モジューロqを減少するためのモジュラー減少ユニットを含む。プライベートキーマトリクスSのエントリが、たとえば1に制限されて、又は絶対値において1に制限されて、小さい場合には、モジュラー減少が簡単になり、マトリクス乗算中に、エントリがqよりも大きくなるか又は0未満になるたびに、qを差し引くか又は加算することにより、結果が0~q-1の区間へ戻される。
【0070】
イニシエータノード及びレスポンダノードの両方が、たとえば通信インターフェース120及び220を使用して、それらのパブリックキーマトリクスを他方のノードに送信する。マトリクス積をスケールダウンすることによって実現される少なくとも3つの利益が見いだされた。まず第1に、マトリクス積へのノイズの発生及び明示的加算が回避される。ノイズの導入は、たとえばガウス分布といった確率分布の計算を必要とする。これらはかなり計算集約的である。第2に、通信の要件が低減される。第2の係数pが第1の係数qよりも小さいので、パブリックキーマトリクスのエントリを表すために必要なビット数は、プライベートキーマトリクスのエントリを表すために必要なビット数よりも少ない。第3に、パブリックキーマトリクスを包含する計算は、包含する数が少ないので、より小さい。驚くべきことに、1つの方策によって同時に3つの利益がもたらされる。
【0071】
第2の係数pが第1の係数qを分割することが強く望まれる。興味深いことに、第1の係数及び第2の係数のどちらも、素数である必要はないことが分かった。実際には、第2の係数(p)及び/又は第1の係数(q)を2の累乗に選択すると、パブリックキー及びプライベートキーが均一に分布するという利点があることが分かった。一実施形態では、第1の係数と第2の係数の両方が2の累乗である。
【0072】
一実施形態では、2の累乗である係数p及びqに加えて、
【数37】
がさらに必要とされる。これによって、一致データが観測されても、均一な共有キーがもたらされる。Bは、生キーの1つのエントリについて抽出される共有キーのビット数である。
【0073】
係数はあまり大きくなくてよい。たとえば、一実施形態では、第2の係数が12以上のビットサイズを有し、且つ/又は第1の係数が8以上のビットサイズを有する。セキュリティ要件に依拠して、より大きいサイズ又はより小さいサイズが可能である。一実施形態では、qは212~215の範囲にあり、pは27~29の範囲にある(境界値を含む)。p及びqの値は、セキュリティ要求の規定に従って、より大きく、又はより小さく選択される。
【0074】
イニシエータノード110は共有キーユニット160を備える。レスポンダノード210は共有キーユニット260を備える。共有キーユニットは、一致データを、生成して伝送するものと、受信して適用するものとで、異なる。
【0075】
共有キーユニット160と共有キーユニット260の両方が、受信した他方のノードのパブリックキーとネットワークノード自体のプライベートキーマトリクスとの間で、第2の係数(p)を法とするマトリクス積として、生キー162、262を計算するように構成されている。マトリクスの次元及びマトリクスの乗算は、スケーリング演算が省略された場合には両方のパーティが同一の生キーを計算するように選択される。すなわち、スケーリングがなければ同一のキーがもたらされ、すべての計算はqを法として行われる。しかしながら、両方の生キーのスケーリングが同一である必要がない。生キーの計算はpを法として行われる。ネットワークノードは、pを法とした乗算の結果を低減するためのモジュラーユニットを備える。
【0076】
レスポンダノード210の共有キーユニット260は、共有キー266及び生キー262から一致データ264を取得してイニシエータネットワークノード110に送信するように構成されている。一致データは、生キーにおける1つ又は複数のビットという形をとる。一致データとして選択されたビットは、キーを生成する目的では無視される。
【0077】
共有キーユニット260は、生キーのエントリからいくつかのビットを選択してキーを形成する。たとえば、選択されたビットが連結される。一実施形態では、選択されたビットは、たとえば暗号のハッシュ関数といったキー導出関数(KDF)に入力される。KDFの一例は、たとえば、CMLA Technical Specification、Version:V1.43-20131218からのCMLA_KDF、又は「DRM specification」、OMA-TS-DRM-DRM-V2_0_2-20080723-A、Open Mobile Alliance(商標)、Version 2.0.2、7.1.2節で定義されているKDF関数で与えられる。キー導出関数は、たとえば連結の後にたとえば丸め関数によって、又は、たとえばこれも連結の後に一致関数の出力から取得されて、生キーにおけるキービットのエントリに適用される。
【0078】
キービットとして選択されないいくつかのビットが一致データとして選択される。最後に、いくつかのビットがすべて棄却される。一実施形態では、キービットは生キーエントリのMSB部分から選択され、一致データは生キーエントリの中間部分から選択され、生キーの最下位部分は棄却される。たとえば、キービットは、生キーのエントリに丸め関数を適用することによって取得され、一致ビットは、生キーのエントリに相互丸め関数を適用することによって取得される。
【0079】
共有キーユニット260によって生キーから得られたキー一致データは、イニシエータノード110に送信される。
【0080】
共有キーユニット160は、第2のネットワークノードの一致データ164(h)を受信し、受信した一致データに一致関数を適用することにより、生キーマトリクス162及び共有キーを計算するように構成されている。たとえば、一致関数は、生キー162のエントリ及び一致データの対応する部分のエントリの各々に適用される。たとえば、一致データ164がレスポンダユニット210によって生成された生キーの一部分であれば、イニシエータノードは、ノード210によって取得されている、受信された一致データと互換性のある(たとえば、受信されたものと同一の中間ビットを有する)生キーを選択する。こうするためのやり方の1つには、上記で定義された一致関数を使用するものがある。その結果、ノード210が共有キーを生成するために使用したものと同一のビットが回復される。これらのビットを、同様に連結することにより、又は同一のKDFへ入力することにより、同一の共有キー166が取得される。一実施形態では、共有キーは対称キーである。
【0081】
多くの一致データは必要ではなく、1ビットで十分である。しかしながら、一致ビットの数を2ビット以上に増加するとプロトコルの失敗確率が低下するので有利であることが観測された。
【0082】
B及びb
hの標準値は1又は2である。ここでは、Bは生キーのエントリごとに抽出されるキービットの数であり、b
hは生キーエントリごとの一致ビットの数である。
【数38】
及び
【数39】
の大きさは、
【数40】
が十分に大きくなるように選択され、たとえば
【数41】
となる。たとえば、
【数42】
と
【数43】
とはほぼ同一に選択される。これらは、オーバヘッドを小さく保つために、
【数44】
として選択される。
【0083】
キー合意プロトコルを複数回の実行するために、マトリクスA及びプライベートキーマトリクスのうち1つを再利用することができる(両方が同一であれば同一の共有キーが取得されるはずである)。こうすると、特にマトリクスAが再利用される場合には、通信のオーバヘッドが低減される。しかしながら、マトリクスA及びプライベートキーマトリクスは、認証が接続されていないので、再利用する必要性はないことが理解される。好ましい実施形態では、それぞれの新規のキー交換のために新規のマトリクスA及び新規のプライベートキーマトリクスが取得される。これには、攻撃者がプロトコルの複数回の実行を観測してもオブザーバの付加的情報への選択肢を得られないという利点がある。その上に、フォワード秘密通信方式が改善される。
【0084】
プロトコルが完成し、両方のノードが共有キーを計算した後に、ノードの一方が、同一のキーに対する両者の合意を検証するために、他方のノードへキー確認メッセージを送信する。たとえば、キー確認メッセージは、共有キーのハッシュ、固定値の暗号化のハッシュ、ランダムな値に加えたランダムな値の暗号化のハッシュである。チャレンジレスポンスプロトコルを使用してキー確認も遂行され得る。キー確認を省略することも選択され得る。各パーティが異なる共有キーを取得した場合には、それに続く両者の間の通信は失敗することになる。たとえば、共有キーは、たとえばデジタルメッセージといったさらなる通信を暗号化するため、及び/又は認証するために使用される。それらが異なる共有キーで到達すると復号化及び/又は検証は失敗する。
【0085】
以下で、さらなる具体的且つ有利な実施形態を説明する。この発明を表す基本システムは、今後キー交換(KEX)方式という名で呼ばれるプロトコルであり、今後イニシエータ及びレスポンダという名で呼ばれる2つのエンティティ又はパーティによって、両者の間で第3者に知られない共有秘密を確立するために実行されるものである。この目的のために、イニシエータ及びレスポンダは、KEX方式を実行する前に合意する必要がある複数の共通のシステムパラメータと、今後秘密キーという名で呼ばれて各々に所有されるいくつかのプライベート情報と、今後パブリックキーという名で呼ばれて各々に所有されるいくつかの公開情報とを使用する。KEX方式のセキュリティは、そのセキュリティがLearning with Errors(LWE)問題に基づくLearning with Rounding(LWR)問題に基づくものであり、共有秘密の秘密通信方式と、イニシエータの秘密通信方式及びレスポンダの秘密キーの秘密通信方式とを保護する。以下の例では、プライベートキーマトリクスは符号付き2進数である。
【0086】
KEX方式の一実施形態は以下の3つの段階を含む。
1. セットアップ:
イニシエータとレスポンダは、正整数である以下のシステムパラメータに関する共通値について合意する。
i. q:LWR問題の係数。
ii. n:LWR問題の次元。LWR問題のパブリックパラメータであるマトリクス
【数45】
の次元も表す。
iii. h
s:h
s<nとなるような、符号付き2進数(すなわち3進数)ストリングの分布における各ストリングのハミング重み。
iv.
【数46】
:KEXプロトコル中にイニシエータによって生成されるLWR問題のインスタンス又はサンプルの数。
v.
【数47】
:KEXプロトコル中にレスポンダによって生成されるLWR問題のインスタンス又はサンプルの数。
vi. B:最後の共有秘密又はキーを生成する一方で、2つのパーティの生キーの1つの係数当たりの抽出されるビット数。
vii. b
h:一致データを生成する一方で、2つのパーティの生キーの1つの係数当たりの抽出されるビット数。
viii. p:LWR問題の丸め係数。
【数48】
の整数倍数であり、p|qを満たすものである。2の累乗としてのpの要件により、より高速でより効率的な実装形態が可能になることに留意されたい。
その上に、2つのパーティはパブリックマトリクスに関して合意する。
i.
【数49】
:このマトリクスの新規のインスタンスが各KEXセッション用に選択される。
【0087】
特定のパラメータが所与の識別子にマッピングされる場合には、共通パラメータの選択は、TLS又はIKEなどのプロトコルに組み込まれ得る。たとえば、共通パラメータを符号化するために、たとえばTLSでは暗号スイート要素であるプロトコル識別子が使用される。パブリックマトリクスは、たとえばハッシュ関数によってシードからも導出され得る。異なる解決策では、イニシエータが、レスポンダに送信されるいくつかのパラメータを決定する。
2. キー生成:
イニシエータは、h
sのハミング重みを有する{0,±1}
nの均一なベクトルの分布を表す分布HWT
n(h
s)から
【数50】
回サンプリングすることによって新規の秘密キー
【数51】
を生成する。
イニシエータは、それ自体のパブリックキー
【数52】
を生成する。
レスポンダは、h
sのハミング重みを有する{0,±1}
nの均一なベクトルの分布を表す分布HWT
n(h
s)から
【数53】
回サンプリングすることによって新規の秘密キー
【数54】
を生成する。
レスポンダは、それ自体のパブリックキー
【数55】
を生成する。
3. キー交換:
表1:丸めと、3進のエントリを含有している秘密のスパースマトリクスとを利用する、イニシエータIとレスポンダRとの間のキー交換であり、IとRとの間の共有秘密Kを確立する。中間の列は、イニシエータとレスポンダとの間で交換されるメッセージの一例を示す。
【0088】
【0089】
セキュリティを改善するためにパラメータに課される4つの要件が見いだされた。4つの要件は以下の通りである。
1. 最小のキー長さ:共有秘密が、少なくとも、目標とされたビット数を含有することを保証するために、イニシエータのパラメータ
【数56】
、レスポンダのパラメータ
【数57】
、及びシステムのパラメータBは、次式を満たすべきである。
【数58】
2. 秘密キーの全数探索攻撃に対する防衛手段:S(ポスト量子)及び2S(古典的)のビットの目標とされたセキュリティレベルを想定する。秘密キーのエントリを推定するための秘密キーの全数ブルートフォース探索の作業負荷が十分に大きくなることを保証するために、(それぞれがハミング重みh
sを有する)秘密キーベクトルにおける秘密の数は
【数59】
を満たすべきであり、ここで、2
2SはGroverの量子探索アルゴリズムの実行回数であり、2Sは古典的探索アルゴリズムの実行回数である。たとえば、Sは128又は256などである。この限界は、プライベートキーマトリクスのエントリの絶対値に対する限界が1である場合に関するものであることに留意されたい。より大きな限界sに関して、類似の限界が確立される。
3. 成功確率:イニシエータ及びレスポンダが同一の最終的な共有秘密に到達しない確率が高くてもp
failであることを保証するために、パラメータ
【数60】
、
【数61】
、h
s及び定数ξの値は、
【数62】
となるように選択されるべきであり、
【数63】
である。
4. セキュリティ分析:BKZ格子基底縮小アルゴリズムの時間計算量が少なくとも2
128であることを保証して、128ビットポスト量子のセキュリティを保証するために、LWRの次元nは、BKZ Root-Hermite係数δ(BKZアルゴリズムのパラメータ)、丸め係数p及びスパース度θ=h
s/nによって表現された次式の下限以上でなくてはならない。
【数64】
【0090】
BKZ Root-Hermite係数δはBKZアルゴリズムの精度の指示である。たとえば、古典的セキュリティについては、BKZブロックサイズ=409でδ=1.003922を想定し、ポスト量子暗号については、BKZブロックサイズ=450でδ=1.00367を想定し、ポスト量子暗号の向上したセキュリティについては、BKZブロックサイズ=573でδ=1.00309を想定する。
【0091】
プライベートキーマトリクスは確率論を使用して選択される。確率的な秘密キー発生により、実装形態が簡単になる。秘密キー
【数65】
及び
【数66】
を生成する一方で、秘密キーの1つの列当たりh
s個の非ゼロエントリを生成する代わりに、この実施形態におけるそれぞれの(i,j)番目の秘密キーエントリsk
(i,j)は、以下の式のように生成される。
【数67】
、
【数68】
、
【数69】
【0092】
あるいは、決定論的に生成される場合には、標準的且つ安全なPRFを使用して以下の処理が行われる。n個の位置のベクトルにh
s個の非ゼロ要素(1又は-1)がある場合には、PRFの出力は、PRFが異なるロケーションにおいてh
s個の非ゼロ要素を選択するまで、列におけるランダムな位置を、ランダムな+1又は-1の値とともに選択する。たとえば、PRF出力は
【数70】
ビットのブロックに分割され、このブロックの最初の
【数71】
ビットが非ゼロ要素の位置を識別し、ブロックの最終ビットは、この要素が1なのかそれとも-1なのかということを決定する。
【0093】
提案されたキー交換にはいくつかの利点がある。
【0094】
計算の複雑さ:秘密キーマトリクスがスパースであってエントリ0、1及び-1を有するので、この方式におけるqを法とする計算は高速である。具体的には、(たとえばパブリックキー及び生キーの生成中の)高次元のマトリクスを包含する乗算が高度に最適化される。提案されたキー交換方式の計算上の性能が次の表に定量化されており、Intel社のXeon Quad-core 3.2GHzのプロセッサで実行するとき、キー交換方式の各段階について必要なCPUクロックサイクルを与える。
【0095】
表2:3つのセキュリティレベルについてキー生成及び全体のキー交換に関する必要なCPUクロックサイクルを示す、提案された方式の計算上の性能。選択された最終的なキービットの数(すなわちB)は第6列に示されている。
【0096】
【0097】
ケースIは、たとえば古典的セキュリティ向けの中間セキュリティ用に選択される。ケースIIはポスト量子セキュリティ用に選択される。ケースIIIはケースIIよりも安全である。
【0098】
通信の複雑さ:より小さい係数への丸めが使用されるので、パブリックキー及び生キーの各エントリの大きさが低減され、帯域幅要件が大幅に低下する。このことは、以下2つの表に定量化されており、提案された方式の帯域幅要件が(それぞれ丸め使用の有無について)明示されている。実施形態は、J.Bos、C.Costello、L.Ducas、I.Mironov、M.Naehrig、V.Nikolaenko、A.Raghunathan、D. Stebilaによる「Frodo: Take off the ring! Practical, Quantum-Secure Key Exchange from LWE」が説明するLWEベースのプロトコルと比較されている。
【0099】
帯域幅は、交換されるキー交換メッセージ(すなわちパブリックキー及び一致データ)の合計サイズとして計算され、パブリックマトリクスAの交換は含まない。
【0100】
表3:現況技術のLWEベースのキー交換方式Frodoに対する帯域幅要件における改善を示す、提案された方式の通信性能(最終的なキービットの数B=2、一致データビットの数bh=2)
【0101】
【0102】
LWEと、スパース且つ小さい秘密とを使用する帯域幅利得:
表4:丸めと組み合わせることなく、スパースで小さい秘密のみ使用したときの、提案された方式の通信性能(最終的なキービットの数B=2、一致データビットの数bh=2)
【0103】
【0104】
表3のスパースLWR(スパース且つ小さい秘密と組み合わせて使用された丸め)の帯域幅利得は、以下の理由により、表4の(スパース且つ小さい秘密のみ使用された)スパースLWEよりも望ましいものである。スパースLWE問題の次元nの最小値が、スパースLWR問題の次元nの最小値と比較して、より大きい。これは、スパースLWE問題の次元nの最小値が、スパースLWR問題(nの最小値の限界が、比
【数72】
によって制御される)の場合よりも厳密な最小値の限界をnに強いるガウス誤差分布の分散によって決定されるからである。スパースLWRにおける帯域幅は、(スパースLWEの場合の)log
2qよりも小さいlog
2pによって制御される。
【0105】
様々な実施形態において、通信インターフェースは様々な選択肢から選択される。たとえば、通信インターフェースは、ローカルエリアネットワーク又は広域ネットワークに対するネットワークインターフェースであり、たとえばインターネット、内部又は外部のデータ記憶機構に対する記憶機構インターフェース、キーボードなどである。
【0106】
ネットワークノードは、たとえばマトリクスA、パブリックキーマトリクス及びプライベートキーマトリクス、及び共有キーなどの中間データを記憶するための電子記憶機構を備える。記憶機構は、たとえばフラッシュメモリといった電子メモリ、又はたとえばハードディスクなどの磁気記憶装置として実施される。記憶機構が備える複数の離散記憶装置が、ともに記憶機構を構成する。記憶機構は、たとえばRAMといった一時的メモリでもよい。一時的記憶機構の場合には、使用前に共通パラメータを取得するために、たとえば任意選択のネットワーク接続(別個には示されていない)を通じて取得することにより、いくつかの手段を使用する。
【0107】
一般的には、デバイス110及び210は、デバイス110及び210に記憶された適切なソフトウェアを実行するマイクロプロセッサ(
図1には別個には示されていない)をそれぞれ備え、たとえば、そのソフトウェアは、たとえばRAMなどの揮発性メモリ又はフラッシュメモリなどの不揮発性メモリ(別個には示されていない)といった対応する記憶装置にダウンロードされ、且つ/又は記憶されている。あるいは、デバイス110及び210は、全体又は一部において、たとえばフィールドプログラマブルゲートアレイ(FPGA)としてプログラマブルロジックで実施される。デバイス110及び210は、全体又は一部において、いわゆる特定用途向け集積回路(ASIC)すなわち特別な用途向けにカスタマイズされた集積回路(IC)として実施される。たとえば、回路は、たとえばVerilog、VHDLなどのハードウェア記述言語を使用してCMOSで実施される。
【0108】
一実施形態では、ネットワークノードは、通信用インターフェース回路、共有マトリクス回路、プライベートキーマトリクス回路、パブリックキーマトリクス回路、及び共有キー回路を備える。これらの回路は、本明細書で説明された対応するユニットを実施する。これらの回路はプロセッサ回路及び記憶回路であり、プロセッサ回路は、記憶回路において電子的に表現された命令を実行する。
【0109】
プロセッサ回路は、たとえば複数のサブプロセッサ回路として分散型のやり方で実施される。記憶機構は、複数の分散型サブ記憶機構にわたって分散している。記憶装置の一部又はすべてが、電子メモリ、磁気記憶装置などである。たとえば、記憶機構は揮発性の部分及び不揮発性の部分を有する。記憶機構の一部は読取り専用である。回路は、FPGA、ASICなどでもよい。
【0110】
図3は、電子キー交換方法の一実施形態の一例を概略的に示すものである。この方法は、イニシエータノード110又はレスポンダノード210などの第1の電子的ネットワークノードによって実行される。
【0111】
方法400は、
第1のネットワークノードと第2のネットワークノードとの間にデジタル通信を確立するステップ(410)と、
デジタル通信を介して第2のネットワークノードと共有される共有マトリクス(A)を取得するステップ(420)であって、共有マトリクスAのエントリが第1の係数qを法として選択される、取得するステップ(420)と、
プライベートキーマトリクス(SI)を生成するステップ(430)であって、プライベートキーマトリクスのエントリが絶対値において限界(s)によって制限される、生成するステップ(430)と、
パブリックキーマトリクス(PI)を生成するステップ(440)であって、
マトリクス積を取得する第1の係数(q)を法として、共有マトリクス(A)とプライベートキーマトリクス(SI)との間のマトリクス積を計算するステップ(442)と、
マトリクス積のエントリを第2の係数(p)までスケールダウンするステップ(444)であって、スケールダウンされたエントリが、スケールダウン前のエントリに第2の係数(p)を掛けてから第1の係数(q)で割って最近隣数に丸めたものと等しく、第2の係数(p)は第1の係数(q)よりも小さく、限界(s)は最大でも第2の係数(p)である、スケールダウンするステップ(444)とによって、生成するステップ(440)と、
第1のネットワークノードのパブリックキーマトリクスを第2のネットワークノードに送信するステップ(452)と、
第2のネットワークノードのパブリックキーマトリクス(PR)を受信するステップ(454)と、
第2の係数(p)を法とする、第2のノードの受信されたパブリックキーと第1のネットワークノードのプライベートキーマトリクスとの間のマトリクス積として、生キーを計算するステップ(460)とを有する。
【0112】
第1のネットワークノードがイニシエータモードによって動作している場合、第1のネットワークノードは、
第2のネットワークノードの一致データ(h)を受信すること(472)と、
受信された一致データ及び生キーに対して一致関数(rec)を適用することにより、共有キーを計算すること(482)とをさらに遂行する。
【0113】
第1のネットワークノードがレスポンダモードによって動作している場合、第1のネットワークノードは、
生キーから共有キー及び一致データを取得すること(474)と、
一致データを第1のネットワークノードに送信すること(484)とをさらに遂行する。
【0114】
当業者には明らかなように、方法を実行する様々なやり方が可能である。たとえば、ステップの順序を変えることができ、又はいくつかのステップを並行して実行することができる。その上に、ステップの間に、他の方法のステップが挿入され得る。挿入されるステップは、本明細書で説明された方法などの改善を表現するものでよく、又は方法とは無関係でもよい。たとえば、所与のステップは、次のステップが開始される前に完了していなくてもよい。
【0115】
本発明による方法は、プロセッサシステムに方法400を遂行させるための命令を含むソフトウェアを使用して実行される。ソフトウェアは、システムの特定のサブエンティティによって採用されたステップのみ含めばよい。ソフトウェアは、ハードディスク、フロッピーディスク、メモリ、光ディスクなどの適切な記憶媒体に記憶される。ソフトウェアは、ワイヤに沿った信号、無線、又はたとえばインターネットといったデータネットワークを使用して送られる。ソフトウェアは、ダウンロードして使用されるように、且つ/又はサーバ上にあって遠隔で利用されるように作成される。本発明による方法は、本方法を遂行するための、たとえばフィールドプログラマブルゲートアレイ(FPGA)といったプログラマブルロジックを構築するように構成されたビットストリームを使用して実行される。
【0116】
本発明は、本発明を実行するように適合されたコンピュータプログラム、特にキャリア上のコンピュータプログラム又はキャリアにおけるコンピュータプログラムにも及ぶことが理解されよう。プログラムは、ソースコード、オブジェクトコード、コードの中間のソース、及び部分的にコンパイルされた形式などのオブジェクトコードの形式、又は本発明による方法の実装形態において使用するのに適した任意の他の形式でよい。コンピュータプログラム製品に関する一実施形態は、説明された方法の少なくとも1つの処理ステップの各々に対応するコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに細分され、並びに/或いは静的又は動的にリンクされる1つ若しくは複数のファイルに記憶される。コンピュータプログラム製品に関する別の実施形態は、説明されたシステム及び/又は製品のうち少なくとも1つの手段の各々に対応するコンピュータ実行可能命令を含む。
【0117】
図4aは、コンピュータプログラム1020を含む書込み可能な部分1010を有するコンピュータ可読媒体1000を示すものであり、コンピュータプログラム1020は、プロセッサシステムに、一実施形態によるキー合意方法を遂行させるための命令を含む。コンピュータプログラム1020は、コンピュータ可読媒体1000上の物理マークとして、又はコンピュータ可読媒体1000を磁化することにより、具現される。しかしながら、任意の他の適切な実施形態も同様に考えられる。その上、コンピュータ媒体1000は、ここでは光ディスクとして示されているが、ハードディスク、ソリッドステートメモリ、フラッシュメモリなどの任意の適切なコンピュータ可読媒体でよく、記録不可能でも記録可能でもよいことが理解されよう。コンピュータプログラム1020は、プロセッサシステムに、前記キー合意方法400を遂行させるための命令を含む。
【0118】
図4bは、一実施形態によるプロセッサシステム1140を概略的に示すものである。プロセッサシステムは1つ又は複数の集積回路1110を備える。
図4bには1つ又は複数の集積回路1110の構造が概略的に示されている。回路1110は、一実施形態による方法を実行するため、及び/又はそのモジュール若しくはユニットを実施するためのコンピュータプログラムコンポーネントを走らせるための、たとえばCPUである処理ユニット1120を備える。回路1110は、プログラムコード、データなどを記憶するためのメモリ1122を備える。メモリ1122の一部は読取り専用である。回路1110は、たとえばアンテナ、コネクタ、又は両方などの通信要素1126を備える。回路1110は、方法において定義された処理の一部分又はすべてを遂行するための専用の集積回路1124を備えてよい。プロセッサ1120と、メモリ1122と、専用のIC 1124と、通信要素1126とは、たとえばバスである相互接続1130を介して互いに接続されている。プロセッサシステム1110は、コネクタを使用する接触型通信用、及び/又はアンテナを使用する非接触型通信用に構成されている。
【0119】
たとえば、一実施形態では、ネットワークノードはプロセッサ回路及びメモリ回路を備え、プロセッサはメモリ回路に記憶されたソフトウェアを実行するように構成されている。たとえば、プロセッサ回路は、Intel社のCore i7プロセッサ、ARM社のCortex-R8などである。一実施形態では、プロセッサ回路はARM社のCortex M0である。メモリ回路は、ROM回路、すなわち、たとえばフラッシュメモリといった不揮発性メモリである。メモリ回路は、たとえばSRAMメモリである揮発性メモリである。後者の場合には、検証デバイスは、たとえばハードディスク、ネットワークインターフェースなど、ソフトウェアを供給するように構成される、不揮発性のソフトウェアインターフェースを備える。
【0120】
前述の実施形態は、本発明を限定するのではなく、当業者が、多くの代替実施形態を設計することを可能にするように説明するものであることに留意されたい。
【0121】
特許請求の範囲では、括弧の間のいかなる参照符号も、特許請求の範囲を限定するものとして解釈されないものとする。動詞「備える」及びその語形変化の使用は、特許請求の範囲において明示されたもの以外の要素又はステップの存在を排除するものではない。要素の前の冠詞「1つの(a)」又は「1つの(an)」は、そのような要素が複数存在すること排除するものではない。本発明は、いくつかの別個の要素を含むハードウェアと、適切にプログラムされたコンピュータとによって実施される。いくつかの手段を列挙しているデバイスの請求項では、これらの手段のいくつかは、ハードウェアの同一の品目によって具現され得る。特定の方策が互いに異なる従属請求項において詳述されるという単なる事実は、これらの方策の組合せが有利に使用され得ないことを指示するわけではない。
【0122】
特許請求の範囲では、括弧の中の参照は、実施形態を例示する図面における参照符号又は実施形態の式を参照するものであり、したがって特許請求の範囲における理解し易さが向上する。これらの参照は、特許請求の範囲を限定するものとして解釈されることはないものとする。