(57)【要約】  キー交換（ＫＥＸ）プロトコル用に構成された第１の電子的ネットワークノード１１０が提供される。第１の電子的ネットワークノード１１０は、第２のネットワークノードと共有される共有マトリクスＡを取得することであって、共有マトリクスＡのエントリが第１の係数ｑを法として選択される、取得することと、プライベートキーマトリクスＳＩを生成することであって、プライベートキーマトリクスのエントリが絶対値において限界ｓによって制限される、生成することと、第１の係数ｑを法として共有マトリクスＡとプライベートキーマトリクスＳＩとの間のマトリクス積を計算することにより、パブリックキーマトリクスＰＩを生成することと、マトリクス積のエントリを第２の係数ｐまでスケールダウンすることとを行うように構成されている。
2020508021.tif 000002
【特許請求の範囲】
【請求項１】
キー交換プロトコル用の第１の電子的ネットワークノードであって、前記第１の電子的ネットワークノードが、
第２のネットワークノードとのデジタル通信用の通信インターフェースと、
プロセッサ回路とを備え、前記プロセッサ回路は、
前記通信インターフェースを介して前記第２のネットワークノードと共有される共有マトリクスを取得することであって、前記共有マトリクスのエントリが第１の係数を法として選択される、取得することと、
プライベートキーマトリクスを生成することであって、前記プライベートキーマトリクスのエントリが絶対値において限界によって制限される、生成することと、
パブリックキーマトリクスを生成することであって、
マトリクス積を取得する前記第１の係数を法として、前記共有マトリクスと前記プライベートキーマトリクスとの間のマトリクス積を計算することと、
前記マトリクス積のエントリを第２の係数までスケールダウンすることであって、スケーリングされたエントリが、スケーリング前の前記エントリに前記第２の係数を掛け、前記第１の係数で割ってから、最近隣数に丸めたものに等しく、前記第２の係数が前記第１の係数よりも小さく、前記限界が最大でも前記第２の係数である、スケールダウンすることとによって、生成することと、
前記第１のネットワークノードの前記パブリックキーマトリクスを前記第２のネットワークノードに送信することと、
前記第２のネットワークノードのパブリックキーマトリクスを受信することと、
前記第２の係数を法とする、前記第２のノードの受信された前記パブリックキーと前記第１のネットワークノードの前記プライベートキーマトリクスとの間のマトリクス積として、生キーを計算することとを行い、
前記第１の電子的ネットワークノードが、
前記第２のネットワークノードの一致データを受信することと、
受信した前記一致データ及び前記生キーに対して一致関数を適用して共有キーを計算することとをさらに行うか、又は
前記第１の電子的ネットワークノードが、
前記生キーから前記共有キー及び一致データを取得することと、
前記一致データを前記第２のネットワークノードに送信することとをさらに行う、第１の電子的ネットワークノード。
【請求項２】
前記プライベートキーマトリクスのエントリに対する絶対値の前記限界が２又は１であり、後者は符号付き２進数に対応する、請求項１に記載の第１の電子的ネットワークノード。
【請求項３】
前記プライベートキーマトリクスの列及び／又は行が一定のハミング重みを有する、請求項１又は２に記載の第１の電子的ネットワークノード。
【請求項４】
前記プライベートキーマトリクスが、候補のプライベートキーマトリクスから一様ランダムに選択される、請求項１乃至３のいずれか一項に記載の第１の電子的ネットワークノード。
【請求項５】
前記プライベートキーマトリクスのエントリは、ゼロエントリの確率が非ゼロエントリの確率よりも大きい非一様な確率分布から選択される、請求項１乃至４のいずれか一項に記載の第１の電子的ネットワークノード。
【請求項６】
前記プライベートキーマトリクスが、前記プライベートキーマトリクスの前記列及び／又は行向けの一定の予期されたハミング重みを有する確率分布から選択される、請求項５に記載の第１の電子的ネットワークノード。
【請求項７】
【数７３】
2020508021.tif 000079
が少なくとも１２７であり、より好ましくは少なくとも２５５であって、ｎはマトリクスの次元であり、ｈｓはハミング重みである、請求項２に従属する請求項３に記載の第１の電子的ネットワークノード。
【請求項８】
前記第１の係数が前記第２の係数によって割られる、請求項１乃至７のいずれか一項に記載の第１の電子的ネットワークノード。
【請求項９】
前記第２の係数及び／又は前記第１の係数が２の累乗である、請求項１乃至８のいずれか一項に記載の第１の電子的ネットワークノード。
【請求項１０】
それぞれの新規のキー交換用に新規のマトリクス及び／又は新規のプライベートキーを取得する、請求項１乃至９のいずれか一項に記載の第１の電子的ネットワークノード。
【請求項１１】
前記一致データのサイズが２ビット以上である、請求項１乃至１０のいずれか一項に記載の第１の電子的ネットワークノード。
【請求項１２】
ランダムシードを生成して、通信チャネルを通じて前記ランダムシードを他のノードに送信することにより、共有マトリクスを取得し、前記第１のネットワークノード及び前記第２のネットワークノードが、前記ランダムシードを使用して決定論的擬似乱数発生器のシードを設定し、前記擬似乱数発生器の出力から前記共有マトリクスを生成する、請求項１乃至１１のいずれか一項に記載の第１の電子的ネットワークノード。
【請求項１３】
前記共有マトリクスがｎと等しい少なくとも１つの次元を有し、前記共有マトリクスが任意選択でｎ×ｎの正方マトリクスであり、
前記第１のノードのプライベートキーがｎ及び
【数７４】
2020508021.tif 000080
の次元を有し、
前記第２のノードのプライベートキーが
【数７５】
2020508021.tif 000081
及びｎの次元を有し、ここで、
【数７６】
2020508021.tif 000082
及び
【数７７】
2020508021.tif 000083
がｎよりも小さい、請求項１乃至１２のいずれか一項に記載の第１の電子的ネットワークノード。
【請求項１４】
前記第１の係数のビットサイズが１２以上であり、及び／又は
前記第２の係数のビットサイズが７以上である、請求項１乃至１３のいずれか一項に記載の第１のネットワークノード。
【請求項１５】
第１の電子的ネットワークノード用の電子キー交換方法であって、前記電子キー交換方法が、
前記第１のネットワークノードと第２のネットワークノードとの間にデジタル通信を確立するステップと、
前記デジタル通信を介して前記第２のネットワークノードと共有される共有マトリクスを取得するステップであって、前記共有マトリクスのエントリが第１の係数を法として選択される、取得するステップと、
プライベートキーマトリクスを生成するステップであって、前記プライベートキーマトリクスのエントリが絶対値において限界によって制限される、生成するステップと、
パブリックキーマトリクスを生成するステップであって、
マトリクス積を取得する第１の係数を法として、前記共有マトリクスと前記プライベートキーマトリクスとの間のマトリクス積を計算するステップと、
前記マトリクス積の前記エントリを第２の係数までスケールダウンするステップであって、スケーリングされたエントリが、スケーリング前の前記エントリに前記第２の係数を掛け、前記第１の係数で割ってから、最近隣数に丸めたものに等しく、前記第２の係数が前記第１の係数よりも小さく、前記限界が最大でも前記第２の係数である、スケールダウンするステップとによって、前記パブリックキーマトリクスを生成するステップと、
前記第１のネットワークノードの前記パブリックキーマトリクスを前記第２のネットワークノードに送信するステップと、
前記第２のネットワークノードのパブリックキーマトリクスを受信するステップと、
前記第２の係数を法とする、前記第２のノードの受信された前記パブリックキーと前記第１のネットワークノードの前記プライベートキーマトリクスとの間のマトリクス積として、生キーを計算するステップとを有し、
前記電子キー交換方法が、
前記第２のネットワークノードの一致データを受信するステップと、
受信された前記一致データ及び前記生キーに対して一致関数を適用することにより、共有キーを計算するステップとをさらに有するか、又は
前記電子キー交換方法が、
前記生キーから前記共有キー及び一致データを取得するステップと、
前記一致データを前記第２のネットワークノードに送信するステップとをさらに有する、電子キー交換方法。
【請求項１６】
請求項１５に記載の電子キー交換方法をプロセッサシステムに遂行させる命令を表わす一時的データ又は非一時的データを含む、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークノード、キー合意方法及びコンピュータ可読媒体に関するものである。
【背景技術】
【０００２】
暗号手法では、キー合意プロトコルは、まだ共通キーを共有していない２つ以上のパーティがそのようなキーに合意することができるようにするプロトコルである。どちらのパーティもキーの選択を強要することができないように、両方のパーティが結果に影響を及ぼすことができるのが望ましい。２つのパーティ間のすべての通信を盗聴する攻撃者が、キーについて何かを学習できてはならない。さらに、パーティは自分たちの共有キーを導出することができるが、同一の通信を調べる攻撃者は何も学習することができず、できたとしても僅かである。
【０００３】
たとえば通信を確実にするために、たとえばパーティのメッセージを暗号化し且つ／又は認証するのに、キー合意プロトコルは有用である。
【０００４】
実用的なキー合意プロトコルは、１９７６年にＷｈｉｔｆｉｅｌｄ  Ｄｉｆｆｉｅ及びＭａｒｔｉｎ  Ｈｅｌｌｍａｎがパブリックキー暗号作成法の概念を導入したとき導入された。２つのパーティ間のキー合意のための提案されたシステムは、ｑ個の要素を有する有限フィールドＧＦ（ｑ）にわたって対数を計算するという明らかな難点を利用するものであった。２人のユーザが、このシステムを使用して、対称キーに基づいて合意することができる。次いで、対称キーは、たとえば２つのパーティ間の暗号化された通信に使用される。
【０００５】
パーティ間にまだＤｉｆｆｉｅ−Ｈｅｌｌｍａｎのキー合意方法などの共有秘密がないとき適用可能な現行のキー合意方法では、大量のリソースを消費する数学的演算が必要となる。たとえば、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎのキー合意方法は、有限フィールドにわたる指数演算を遂行する必要がある。指数とフィールド長とが、どちらも大きくなりがちである。このため、キー合意プロトコルは、少ないリソースのデバイス向けにはあまり適切ではない。他方では、リソースを抑制されたデバイスではキー合意プロトコルが非常に有用であろう。たとえば、モノのインターネット、アドホック無線ネットワークなどの応用分野では、デバイス間のリンクを保護するためにキー合意が使用され得る。別の例には、たとえばカードリーダとスマートカードといったリーダと電子タグとの間の通信、又はタグリーダと例えばＲＦＩＤタグ若しくはＮＦＣタグといったタグとの間の通信がある。２つのパーティのうち少なくとも１つすなわち電子タグの負荷が小さいキー合意プロトコルが有利であろう。
【０００６】
パーティ間の安全な通信を容易にするために、キー合意プロトコルが、暗号化キー交換（ＫＥＸ）方式と暗号化キーカプセル化（ＫＥＭ）方式とに、さらに細分されることがある。暗号化キーカプセル化（ＫＥＭ）方式は、２つのパーティ間の共有秘密を確立するために、それぞれのパーティ向けに、公的に知られた値（たとえばパブリックキー）及び秘密裡に所有された値（たとえば秘密キー）を使用する、非対称の暗号手法を使用する。
【０００７】
ＫＥＸ方式は各パーティによるパブリックキーの交換を包含しており、次いで、パブリックキーが、共通の共有秘密を計算するために、他方のパーティによってそれ自体の秘密キーとともに独立して使用される。ＫＥＸ方式のよく知られている例には、前述のＤｉｆｆｉｅ−Ｈｅｌｌｍａｎのキー交換があり、そのセキュリティは離散対数問題を解くことに基づくものである。いくつかのＫＥＸ方式の興味深い特徴には、実際の最終的な共有秘密が、暗号化された形式でさえパーティ間で交換されるのではなく、各エンドにおいて２つのパーティによって別個に計算されることがある。これによって、将来、攻撃者によってパーティの長期秘密キーが漏洩しても、過去に交換された、暗号化されたメッセージの秘密通信方式が漏洩しないことを保証する、フォワード秘密通信方式として知られている望ましい特徴がもたらされる。
【０００８】
ＫＥＭ方式は、通常は通信のイニシエータである一方のパーティが、非対称の暗号手法を使用して（他方のパーティのパブリックキーを使用して）暗号化し、２つのエンティティ又はパーティ間の共有秘密を確立して、レスポンダとして知られている他方のパーティに共有秘密を送信し、次いで、レスポンダが（自身の秘密キーを使用して）共有秘密を解読することができ、そこで、イニシエータパーティと安全に通信するために使用することができる。パーティの過去のセッションの秘密キーを漏洩してそのセッションにおいてパーティ間で交換されたすべてのメッセージを記録した何らかの攻撃者は、特別なそのセッションに関する共有秘密を再生することができるので、ＫＥＭ方式はフォワード秘密通信方式を達成することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
モノのインターネットにおけるセキュリティの必要性が増しているので、キー交換方式は、高効率（すなわち最小量の通信要件又は帯域幅要件）を達成する必要があり、また典型的な敵対者ならびに量子対応の敵対者に対して安全なままである必要もある。
【課題を解決するための手段】
【００１０】
キー交換プロトコル用の電子的ネットワークノードが提供される。このネットワークノードは、これと通信する第２のネットワークノードと区別するために第１のネットワークノードと称される。
【００１１】
第１のネットワークノードは、
第２のネットワークノードとのデジタル通信用に構成された通信インターフェースと、
プロセッサ回路とを備え、プロセッサ回路は、
通信インターフェースを介して第２のネットワークノードと共有される共有マトリクスを取得することであって、共有マトリクスＡのエントリが第１の係数ｑを法として選択される、取得することと、
プライベートキーマトリクスを生成することであって、プライベートキーマトリクスのエントリが、限界によって絶対値を制限された整数である、生成することと、
パブリックキーマトリクスを生成することであって、
マトリクス積を取得する第１の係数を法として、共有マトリクスとプライベートキーマトリクスとの間のマトリクス積を計算することと、
マトリクス積のエントリを第２の係数までスケールダウンすることであって、スケーリングされたエントリが、スケーリング前のエントリに第２の係数を掛け、第１の係数で割ってから、最近隣数に丸めたものに等しく、第２の係数が第１の係数よりも小さく、上記の限界が最大でも第２の係数である、スケールダウンすることとによって、生成することと、
第１のネットワークノードのパブリックキーマトリクスを第２のネットワークノードに送信することと、
第２のネットワークノードのパブリックキーマトリクスを受信することと、
第２の係数を法とする、第２のノードの受信されたパブリックキーと第１のネットワークノードのプライベートキーマトリクスとの間のマトリクス積として、生キーを計算することとを行うように構成される。
【００１２】
プライベートキーマトリクスが制限され、パブリックキーマトリクスがスケールダウンされるので、キー合意の計算及び通信のオーバヘッドが低減される。一致データを使用すると、第１のネットワークノード及び第２のネットワークノードにおいて計算された生キーマトリクス間の差が克服される。ノードの一方が一致データを計算して、他方がそれを使用する。たとえば、第１のネットワークノードのプロセッサ回路は、
第２のネットワークノードの一致データを受信し、
受信した一致データ及び生キーに対して一致関数を適用して共有キーを計算するように構成されており、或いは
生キーから共有キー及び一致データを取得して、
一致データを第２のネットワークノードに送信するように構成されている。
【００１３】
ネットワークノードは電子デバイスである。たとえば、ネットワークノードは、携帯電話、タブレット、又はスマートカード、コンピュータなどのモバイル電子デバイスである。ネットワークノードは、セットトップボックス、コンピュータ、テレビなどである。本明細書で説明されたキー合意の方法は、広範囲の実用的な用途に適用される。そのような実用的な用途は、（モノの）インターネットにおけるセキュリティを含む。プロトコルは、ＩＫＥ、ＴＬＳ、ＳＳＨなどのプロトコルに適用され得る。一般に、提案された方式は、一般的なインターネットの使用事例とリソースを抑制された環境との両方のためのポスト量子セキュアである。キー合意は、２つのノード間の安全な、たとえば機密の通信が必要とされるときは常に使用される。これはセンサネットワークにおけるものであるが、たとえば金融取引を安全にするためでもある。
【００１４】
本発明による方法は、コンピュータで実施される方法として、コンピュータ上で、専用ハードウェアにおいて、又は両方の組合せで実施される。本発明による方法に関する実行可能コードは、コンピュータプログラム製品に記憶される。コンピュータプログラム製品の例は、記憶デバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどを含む。好ましくは、コンピュータプログラム製品は、コンピュータ上で実行されたとき、本発明による方法を遂行するための、コンピュータ可読媒体に記憶された非一時的プログラムコードを含む。
【００１５】
好ましい実施形態では、コンピュータプログラムが含むコンピュータプログラムコードは、コンピュータプログラムがコンピュータ上で実行されたとき本発明による方法のすべてのステップを遂行するように適合されている。好ましくは、コンピュータプログラムはコンピュータ可読媒体上に具現される。
【００１６】
本発明の別の態様は、コンピュータプログラムをダウンロード可能にする方法を提供するものである。この態様は、コンピュータプログラムが、たとえばＡｐｐｌｅ社のＡｐｐ  Ｓｔｏｒｅ、Ｇｏｏｇｌｅ社のＰｌａｙ  Ｓｔｏｒｅ、又はＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ  Ｓｔｏｒｅにアップロードされていて、そのような店舗からダウンロード可能なとき使用される。
【００１７】
本発明のさらなる詳細、態様、及び実施形態を、図面を参照しながら、例としてのみ説明する。図における要素は簡単さ及び明瞭さのために示されており、必ずしも原寸に比例しない。図では、既に説明された要素に対応する要素は同一の参照番号を有する。
【図面の簡単な説明】
【００１８】
【図１】キー合意ネットワークの一実施形態の一例を示す概略図である。
【図２】生キーの一実施形態の一例を示す概略図である。
【図３】電子キー交換方法の一実施形態の一例を示す概略図である。
【図４ａ】一実施形態による、コンピュータプログラムを含む書込み可能部分を有するコンピュータ可読媒体を示す概略図である。
【図４ｂ】一実施形態によるプロセッサシステムの表現を示す概略図である。
【００１９】
以下は図１〜図２における参照番号のリストである。
１００  キー合意ネットワーク
１１０  イニシエータタイプのネットワークノード
１２０  通信インターフェース
１３０  共有マトリクスユニット
１４０  プライベートキーマトリクスユニット
１５０  パブリックキーマトリクスユニット
１６０  共有キーユニット
１６２  生キー
１６４  一致データ（ｈ）
１６６  共有キー
２１０  レスポンダタイプのネットワークノード
２２０  通信インターフェース
２３０  共有マトリクスユニット
２４０  プライベートキーマトリクスユニット
２５０  パブリックキーマトリクスユニット
２６０  共有キーユニット
２６２  生キー
２６４  一致データ（ｈ）
２６６  共有キー
３００  生キー
３０１  最上位部分
３０２  中位部分
３０３  最下位部分
【発明を実施するための形態】
【００２０】
この発明は多くの異なる形式における実施形態の余地があるが、１つ又は複数の特定の実施形態が図面に示されて本明細書で詳細に説明され、本開示は、本発明の原理の例示と見なされるべきであり、本発明を、示されて説明された特定の実施形態に限定するように意図されたものではないという理解を伴う。
【００２１】
以下では、理解のために、実施形態の要素が動作において説明される。しかしながら、それぞれの要素が、遂行すると説明されている機能を遂行するように構成されていることは明らかであろう。
【００２２】
さらに、本発明は、実施形態に限定されることなく、本明細書で説明されるあらゆる斬新な特徴若しくは特徴の組合せにあり、又は互いに異なる従属請求項において詳述される。
【００２３】
図１は、キー合意ネットワーク１００の一実施形態の一例を概略的に示すものである。
【００２４】
図１には、イニシエータタイプのネットワークノード１１０及びレスポンダタイプのネットワークノード２１０といった、システムにおける２つのネットワークノードが示されている。キー合意システムの実施形態ではノードの数が多く、２つよりもはるかに多いことさえあり、たとえば１０００ノードよりも多く、たとえば１０６以上のノードである場合もある。
【００２５】
イニシエータタイプのネットワークノードとレスポンダタイプのネットワークノードとの間の違いは、一致データを処理するやり方にある。イニシエータタイプのネットワークノードは、一致データを受信して、共有キーを取得するために適用するが、レスポンダタイプのネットワークノードは、一致データを生成してイニシエータタイプのネットワークノードに送信する。レスポンダタイプのネットワークノードは、共有キーを取得するのに一致データを必要としない。一般的には、イニシエータタイプは、２つのネットワークノード間で実行される丸めの数を低減し得るので、２つのネットワークノード間のキー合意プロトコルも起動することになる。しかしながら、レスポンダタイプのネットワークノードもキー合意プロトコルを起動し得ることは、必須ではない。
【００２６】
その上、ネットワークノードの一実施形態では、ネットワークノードはイニシエータモード及びレスポンダモードに従って動作するように構成されている。たとえば、ネットワークノードは、キー合意を起動する場合、たとえばキー合意プロトコルの開始をシグナリングするメッセージを別のネットワークノードに送信して、イニシエータモードに切り換わる。ネットワークノードは、たとえばキー合意プロトコルの開始をシグナリングする別のネットワークノードからのメッセージを受信してキー合意に応答する場合には、レスポンダモードに切り換わる。これは実際には便利であるが、また、この選択肢は厳密に必須ではなく、たとえば、キー合意システムでは、いくつかのノードのみがイニシエータノードとして構成され、いくつかのノードのみがレスポンダノードとして構成される。この結果、いくつかのノードは、共有キーに対して一緒に合意することはできないはずである。このことは、たとえばアドホックネットワーク又はアドホック無線グリッドなどのいくつかのネットワークについては、十分に多くの対のネットワークノードが通信して共有キーに合意することができる限り、問題にはならない。
【００２７】
イニシエータノード１１０は通信インターフェース１２０を備える。レスポンダノード２１０は通信インターフェース２２０を備える。通信インターフェースは、キー合意システムにおける他のノードとのデジタル通信用に構成される。しかし、システムにおけるすべてのノードが常に連絡される必要はない。
【００２８】
通信インターフェース１２０及び２２０はデジタル通信用に構成されている。たとえば、通信インターフェースは、コンピュータネットワークにわたって通信するように構成される。たとえば、通信インターフェースは、たとえばＷｉ−Ｆｉ（登録商標）、ＺｉｇＢｅｅ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの無線通信用及び／又はたとえばイーサネット（登録商標）、ＵＳＢなどの有線通信用に構成される。ノード１１０と２１０との間の通信は、有線接続と無線接続との組合せでもよい。たとえば、ノード１１０及び１２０を含むシステム１００のノードは、システム１００の内部のノードを一意的に識別する通信識別子を含有している電子記憶機構を備える。たとえば、通信識別子は、たとえばメッセージをアドレス指定するためにノード１１０と２１０との間で交換されるデジタルメッセージに含まれる。たとえば、通信識別子は、ＩＰアドレス、ＭＡＣアドレスなどである。
【００２９】
電子ネットワークノードは、キー交換（ＫＥＸ）プロトコル用に構成されている。ＫＥＸプロトコルは、通信インターフェース１２０及び２２０にわたってノード１１０と２１０との間でメッセージを交換することと、たとえば他のノードから受信されたデータに対して計算を遂行することとを包含する。キー合意プロトコルはプロセッサ回路において実行され、その例を以下に示す。図１が示す機能ユニットはプロセッサ回路の機能ユニットである。たとえば、図１は、プロセッサ回路の可能な機能組織のブループリントとして使用される。プロセッサ回路は、図１のユニットから分離して示されてはいない。たとえば、図１に示された機能ユニットはまた、ネットワークノードのマイクロプロセッサが実行可能な、ネットワークノードに記憶されたコンピュータ命令で、全体的又は部分的に実施される。
【００３０】
イニシエータノード１１０及びレスポンダノード２１０はキー交換（ＫＥＸ）プロトコル用に構成されている。ＫＥＸ方式は、各パーティによる、多くの場合パブリックキーと称されるパブリックデータの交換を包含しており、交換されたパブリックデータは、他方のパーティによって、多くの場合秘密キーと称されるそれらのプライベートデータとともに、共通の共有秘密を計算するために別個に使用される。いくつかの実施形態の興味深い特徴には、実際の最終的な共有秘密が、暗号化された形式でさえパーティ間で交換されるのではなく、各エンドにおいて２つのパーティによって別個に計算される。これによって、将来、攻撃者によってパーティの長期秘密キーが漏洩しても、過去に交換された、暗号化されたメッセージの秘密が漏洩しないことを保証する、フォワード秘密通信方式として知られている望ましい特徴がもたらされる。
【００３１】
本発明の実施形態は、信頼されたサードパーティによる秘密情報の提供に頼ることがない。通信インターフェース１２０と２２０との間の通信チャネルは、必ずしも安全なチャネルでなくてもよい。攻撃者が通信チャネルを盗聴する可能性がある。盗聴されても、ノード１１０と２１０との間で合意したキーは安全である。通信チャネルが改造に対して保護されていれば、チャネルによってもたらされるものである限り、ある程度の認証が取得される。しかしながら、通信インターフェース１２０と２２０との間のチャネルが改造に対して保護されていなければ、ＫＥＸ方式は認証しないことになる。認証を取得するために、実施形態は、たとえば保証されたパブリックキーを使用する明示的認証機構、又はたとえばデジタル署名を使用する暗示的認証機構といった、何らかの知られている認証機構と組み合わされる。
【００３２】
ＫＥＸ方式のよく知られている例には、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎのキー交換があり、そのセキュリティは離散対数問題を解くことに基づくものである。本発明で定義されるキー交換機構の困難さは、いわゆるＬｅａｒｎｉｎｇ  ｗｉｔｈ  Ｒｏｕｎｄｉｎｇ（ＬＷＲ）問題に基づくものである。ＬＷＥインスタンスの数が制限されるとき、ＬＷＲ問題の困難さは、いわゆるＬｅａｒｎｉｎｇ  ｗｉｔｈ  Ｅｒｒｏｒｓ（ＬＷＥ）問題の困難さに基づくものと想定される。ＬＷＥ問題の平均的な場合の困難さは、量子コンピュータにとって解くのが困難な特定の関連する格子ベースの問題の最悪の場合の困難さに基づくものであるため、このキー交換方式は、ポスト量子の安全なキー合意プロトコルである。
【００３３】
Ｌｅａｒｎｉｎｇ  ｗｉｔｈ  Ｅｒｒｏｒｓ（ＬＷＥ）問題は数学的に困難な問題であり、その推定された難点のために量子コンピュータに対してさえポスト量子の暗号方式を生じさせる、よく理解されているセキュリティである。しかしながら、ＬＷＥ問題から生じる方式は、一般的には計算複雑度及び通信複雑度の両方に関して、性能上の負荷が重い。Ｌｅａｒｎｉｎｇ  ｗｉｔｈ  Ｅｒｒｏｒｓ（ＬＷＥ）問題は以下のように説明され得る。
【００３４】
ｎ次元のベクトルｓ∈Ｚｑｎ及びＺｑにわたる誤差分布χに関して、
【数１】
2020508021.tif 000003
にわたるＬＷＥ分布
【数２】
2020508021.tif 000004
は、
【数３】
2020508021.tif 000005
及びχからの誤差ｅからベクトルａを一様且つランダムに選択して、
【数４】
2020508021.tif 000006
を出力することよって取得される。
【００３５】
探索ＬＷＥ問題は、
【数５】
2020508021.tif 000007
から多くの独立したサンプル（ａｉ、ｂｉ）を任意に与えられて
【数６】
2020508021.tif 000008
を見いだすことである。
【００３６】
ＬＷＥｎ，ｑ，χ（Ｄ）によって表される決定ＬＷＥ問題は、分布
【数７】
2020508021.tif 000009
を、
【数８】
2020508021.tif 000010
にわたる均一分布から識別することであり、一定のｓ←Ｄについて無視できない利益がある。
【００３７】
ＬＷＲ問題は、ＬＷＥ問題の、秘密情報を隠すために誤差を挿入する代わりに係数「ｐ」を用いる丸めを使用し、次いで、Ｚｑ（ｑは元のＬＷＥ係数である）からＺｐにスケールダウンして決定論的な誤差を導入することによって「非ランダム化された」バージョンである。
【００３８】
ｎ次元のベクトル
【数９】
2020508021.tif 000011
について、
【数１０】
2020508021.tif 000012
にわたるＬＷＲ分布
【数１１】
2020508021.tif 000013
は、
【数１２】
2020508021.tif 000014
から、ベクトルａを一様且つランダムに選択して、
【数１３】
2020508021.tif 000015
を出力することによって取得される。
【００３９】
ここで、
【数１４】
2020508021.tif 000016
はｘに最も近い整数を表す。探索ＬＷＲ問題は、探索ＬＷＥ問題と正確に類似している秘密ｓを見いだすことに関して定義される。決定ＬＷＲ問題は、分布
【数１５】
2020508021.tif 000017
を、
【数１６】
2020508021.tif 000018
にわたる均一な分布から識別することであり、一定のｓ←Ｄについてｍ個のインスタンスがある。探索ＬＷＲ問題及び決定ＬＷＲ問題は、２ｍＢｐ／ｑ（ＢはＬＷＥ問題における誤差の限界である）が一定であるようにｍが制限されるとき、対応するＬＷＥ問題と少なくとも同じくらい困難であることが示されている。
【００４０】
ＬＷＥ問題に基づくポスト量子キー交換方式は、ＬＷＥ問題のよく理解されているセキュリティのために、広範囲にわたる信頼を享受する。しかしながら、リソースを抑制された環境において使用され得る、性能上の負荷が軽いＬＷＥベースのキー交換方式はない。既存のアルゴリズムは、ｑを法とするマトリクス乗算、ガウス分布などの確率分布からのサンプリング、大きなエントリを伴うマトリクスの計算又は伝送など、リソースを制限されたデバイス上では遅くなる様々な演算を含む。
【００４１】
本発明では、２つのパーティが、正確に等しいわけではないがほぼ等しい２つのマトリクスを生成する。正確に合意するために、いくつかの一致データが送信される。こうするための方式は、２０１６年１１月４日に同一の出願人がヨーロッパ特許庁に出願した「ＲＥＡＣＨＩＮＧ  ＡＧＲＥＥＭＥＮＴ  ＯＮ  Ａ  ＳＥＣＲＥＴ  ＶＡＬＵＥ」という名称の特許出願（出願番号１６１９７２７７．３）に説明されており、たとえば、７〜１０頁の方法は、本発明による実施形態における一致に使用され得る。引用された特許出願の他のところに開示された変形形態も採用され得る。
【００４２】
この出願では、以下の３つの関数に関して以下の表記法を使用する。
１．丸め関数
【数１７】
2020508021.tif 000019
：ｑ，ｂｈ，Ｂ∈Ｚ、ｂｈ≧１、Ｂ＜ｌｏｇ２ｑ−ｂｈ、について、
【数１８】
2020508021.tif 000020
とする。その場合、
【数１９】
2020508021.tif 000021
となる。直観的に、
【数２０】
2020508021.tif 000022
は、
【数２１】
2020508021.tif 000023
のＢ個の最上位ビットを抽出し、ここで、第２の要素は、バイアスがない丸め誤差を保証するための丸め係数である。
２．相互丸め関数
【数２２】
2020508021.tif 000024
：ｑ，ｂｈ，Ｂ∈Ｚ、ｂｈ＞１、Ｂ＜ｌｏｇ２ｑ−ｂｈ、について、
【数２３】
2020508021.tif 000025
とする。その場合、
【数２４】
2020508021.tif 000026
となる。直観的に、
【数２５】
2020508021.tif 000027
は、ｖの（Ｂ＋ｂｈ）個の最上位ビットのうちｂｈ個の最下位ビットを抽出する。
３．一致関数ｒｅｃ（ｗ，ｂ）：
【数２６】
2020508021.tif 000028
について、
【数２７】
2020508021.tif 000029
である。ここで、ｖはｗに最も近い要素であり、
【数２８】
2020508021.tif 000030
となる。
【００４３】
上記で引用された一致関数は、本明細書で一例として使用される。前述のように、上記で引用された出願における調整法も使用され得る。図２は丸め関数及び相互丸め関数の概略図である。例として、図２は生キー３００を示す。生キー３００は、左側に最上位ビットがあって右側に最下位ビットがあるビットストリングとして示される。直観的に、生キーに適用される丸め関数は最上位部分３０１におけるＢ個のビットに対応し、相互丸め関数は中間部分３０２における次のｂｈ個のビットに対応する。最下位のｌｏｇ２ｑ−Ｂ−ｂｈ個は棄却される。
【００４４】
イニシエータノード１１０は共有マトリクスユニット１３０を備える。レスポンダノード２１０は共有マトリクスユニット２３０を備える。共有マトリクスユニット１３０及び２３０は、２つのノード間で共有される共有マトリクス（Ａ）を取得するように構成されている。共有マトリクスＡにおけるエントリは、第１の係数ｑを法として選択された整数である。マトリクスＡがノード１１０及び２１０に必ずしも秘密に保たれないという事実を特に所与として、ノード１１０と２１０との間で同一のマトリクスが共有されることを保証するための多くのやり方がある。
【００４５】
たとえばノードの一方である、たとえば共有マトリクスユニット１３０のイニシエータノード１１０が、マトリクスＡを、たとえばｑを法とする要素を用いてランダムに選択する。次いで、エントリが、通信ユニットを通じて、たとえば共有マトリクスユニット２３０といった他方のノードに送信される。この場合、後者の共有マトリクスユニット２３０は、単にマトリクスＡを受信して記憶することになる。マトリクスＡは、代わりに、レスポンダノード２１０によって選択されてイニシエータノード１１０に送信されてもよい。
【００４６】
マトリクスＡを選択するのに２つのノードが協働してもよい。たとえば、各ノードがエントリのうちいくつかを選択して他方に送信する。たとえば、イニシエータノードが奇数のエントリを選択し、レスポンダノードが偶数のエントリを選択する、などである。このようにして、２つのノードのどれも、最終的なマトリクスＡを制御することはない。たとえば、２つのノードのそれぞれが、完全なマトリクスＡを選択して他方へ通信することができる。この後に、２つのマトリクスがｑを法として加算される。最後のノードにマトリクスを送信する有利な立場を与えるのを避けるために、まず、最後のノードが、選択されたマトリクスに関するコミットメントを送信する。
【００４７】
完全なマトリクスＡの送信のオーバヘッドを低減するための興味深いやり方には、ランダムシードを生成して、通信チャネルを通じて方のノードに送信するものがある。ランダムシードを受信した後、第１のネットワークノード及び第２のネットワークノードは、受信したランダムシードを使用して、上記のやり方のうち任意のものでマトリクスＡを生成する。同一のランダムシードが、決定論的擬似乱数発生器のシードを設定するために使用され、擬似乱数発生器の出力からマトリクス（Ａ）が生成される。上記のように、各ノードが、たとえばＡの異なる部分を生成するためのシードを送信することができ、又は、２つのシードが、たとえば加算若しくは排他的論理和などによって組み合わされて、Ａを生成するために使用される。
【００４８】
シードは、たとえば、真の乱数発生器といったさらなる乱数発生器から選択される。ノードは、たとえば生産において乱数のリストを伴って構成される。この場合、ノードは、新規のキー合意のために新規のマトリクスＡが生成されるたびにリストから次の乱数を選択する。乱数のリストが使い尽くされると、信頼されたソースから補充される。
【００４９】
一実施形態では、マトリクスＡは次元ｎ×ｎの正方マトリクスである。これは厳密に必須ではなく、プロトコルの他の要素の次元は、非正方マトリクスＡを考慮に入れるように適合されてよい。しかしながら、正方マトリクスＡを選択することが最も便利であり、全体にわたって想定される。
【００５０】
イニシエータノード１１０はプライベートキーマトリクスユニット１４０を備える。レスポンダノード２１０はプライベートキーマトリクスユニット２４０を備える。プライベートキーマトリクスユニット１４０はプライベートキーマトリクスＳＩを生成するように構成されており、プライベートキーマトリクスユニット２４０はプライベートキーマトリクスＳＲを生成するように構成されている。プライベートキーマトリクスのエントリは、絶対値においてｓという限界のある整数である。たとえば、プライベートキーマトリクスのエントリは−ｓ〜ｓ（境界値を含む）の間で選択される。
【００５１】
意外にも、小さい限界を選択すると、プライベートキーマトリクスとのマトリクス乗算がより高速になり、両側で計算される生キー間の距離が小さくなる（下記を参照されたい）、といった２重の利点があることが分かった。後者の利点は、必要な一致データが少なくなること、及び／又は異なるキーについて合意するノードが少なくなるため、プロトコルにおける失敗の可能性が低下することを意味する。限界ｓは、最大でも第２の係数、たとえば第２の係数以下に選択される。後にｐを法とする乗算があるので、この選択は有利である。Ｓにおける符号付きエントリを可能にすれば、ｓは第２の係数の２分の１（ｐ／２）以下（又はｐ／２未満）に制限され得る。
【００５２】
限界は第２の係数又は第２の係数の２分の１よりも小さく、実際には、それよりも、一般的にははるかに小さく選択される。一実施形態では、プライベートキーマトリクス（ＳＩ、ＳＲ）におけるエントリの絶対値に対する限界ｓは２である（ｓ＝２）。すなわち、プライベートキーマトリクスにおけるすべてのエントリが、−２、−１、０、１、又は２のいずれかである。マトリクスＡにプライベートキーマトリクスを掛けるために必要なのは、加算、減算及び１ビットにわたるシフトのみである。したがって、そのようなマトリクス乗算は非常に効率的に実施され得る。
【００５３】
実装形態の見地からすれば、限界を１に選択する（ｓ＝１）ことによって最善の結果が達成される。すなわち、プライベートキーマトリクスのエントリの値は、−１、０及び１のみである。これは「符号付き２進数」とも称される。符号付き２進数におけるマトリクスとのマトリクス乗算に包含されるのは加算及び減算のみである。ｐ又はｑを法とする乗算には、乗算ユニットは不要である。
【００５４】
ｓに関する他の小さい数も可能であり、たとえばｓ＝３であれば、可能なエントリは０、１、−１、２、−２、３、−３である。これらの数を掛けるための乗算ルーチンはノードに含まれる。たとえば、＋１、−１は加算器／減算器によって処理され、−２、＋２はシフトとそれに続く加算器／減算器とによって処理され、＋３、−３はシフトされた数とシフトされていない数の両方の加算／減算によって処理される。
【００５５】
一実施形態では、プライベートキーマトリクスが含むエントリは、掛けるのが容易な０、２の累乗、及び任意選択の２の負の累乗のみである。
【００５６】
一実施形態では、プライベートキーマトリクスは正の数と負の数の両方を含有している。しかしながら、プライベートキーマトリクスを０以上の数に制限することもさらに可能である。たとえば、プライベートキーマトリクスのエントリは０〜ｓの間にある（境界値を含む）。たとえば、後者の場合においてｓ＝１に選択することより、乗算及び減算の両方の演算が回避される。
【００５７】
プライベートキーマトリクスは、マトリクスＡを掛けられ得るように、次元を選択される。たとえば、Ａがｎ×ｎのマトリクスであれば、イニシエータノードのプライベートキーマトリクスはｎ×
【数２９】
2020508021.tif 000031
のマトリクスとなり、レスポンダノードのプライベートキーマトリクスはｎ×
【数３０】
2020508021.tif 000032
のマトリクスとなる。
【数３１】
2020508021.tif 000033
及び
【数３２】
2020508021.tif 000034
の大きさは、共有キーにおける十分なビット数と十分に高いセキュリティレベルとを取得するように十分に大きく選択される。
【００５８】
プライベートキーマトリクスのエントリの大きさを制限することに加えて、非ゼロ要素の数を制限することによってさらなる利益が取得される。マトリクスの列又は行のハミング重みを、マトリクスの非ゼロエントリの数と称することにする。
【００５９】
プライベートキーマトリクスのハミング重みを制限するための異なるやり方を調査した。一般に、プライベートキーマトリクスに対してマトリクスＡを左に掛けるのか右に掛けるのかということに依拠して、ハミング重みを列又は行のいずれかに制限すれば十分である。たとえば、マトリクスＡの右にプライベートキーマトリクスを掛ける（たとえばＡＳ）場合には、ハミング重みをプライベートキーマトリクスの列に制限すれば十分である。
【００６０】
たとえば、プライベートキーマトリクスの列及び／又は行のハミング重みに関して上限が選択される。上限は、すべての列及び／又は行に対して同一でよい。一実施形態では、プライベートキーマトリクス（ＳＩ、ＳＲ）の列及び／又は行は、同一の一定のハミング重みを有する。
【００６１】
プライベートキーマトリクスが、たとえばエントリに対する限界と列又は行におけるハミング重みとに関して選択された要件を満たすマトリクスからの候補のプライベートキーマトリクスから一様ランダムに選択されるという条件が与えられると、セキュリティが改善される。たとえば、各列のハミング重みが５０であるという条件を強制する場合には、各列について５０のハミング重みを有する正確な次元を伴うすべてのマトリクスのセットからプライベートキーマトリクスを選択するのが有利である。任意の所望のハミング重みの一様ランダムなビットストリングを選択するための効率的なアルゴリズムが知られている。
【００６２】
プライベートキーマトリクスのハミング重みを制限するための異なるやり方には、確率分布からプライベートキーマトリクス（ＳＩ、ＳＲ）の列及び／又は行を選択するものがある。たとえば、プライベートキーマトリクス（ＳＩ、ＳＲ）のエントリは、ゼロエントリの確率が非ゼロエントリの確率よりも大きい非一様な確率分布から選択される。一実施形態では、確率分布は、列及び／又は行に対して所定の予期されたハミング重みを与えるように選択される。たとえば、長さｎの列と予期されるハミング重みｈｓとを選択するために、各エントリを、確率ｈｓ／ｎを伴う非ゼロとして選択する。非ゼロエントリは、たとえば等確率で１又は−１に選択される。
【００６３】
小さすぎる列又は行におけるハミング重みはセキュリティに影響を与える可能性がある。たとえば、符号付きバイナリの場合には、ハミング重みｈｓは、
【数３３】
2020508021.tif 000035
が少なくとも１２７になるように、より好ましくは少なくとも２５５になるように選択される。理由は、プライベートキーマトリクスにわたってループすることによるブルートフォースアタックを実行不可能にするためである。一実施形態では、ハミング重みｈｓは、上記の制限を満たす、できるだけ小さいものである。
【００６４】
イニシエータノード１１０はパブリックキーマトリクスユニット１５０を備える。レスポンダノード２１０はパブリックキーマトリクス２５０を備える。パブリックキーマトリクスユニットは、マトリクスＡ及びプライベートキーマトリクスＳからパブリックキーマトリクスを計算する。
【００６５】
パブリックやプライベートという用語は、パブリック情報の知見だけでは、すなわちいくつかのプライベート情報の知見なしでは、共有キーを取得することができないということを示唆するように意図されている。そのパブリック情報はアクティブに共有されるが、要件はない。たとえば、キー合意プロトコルは、盗聴者からパブリックキーを安全に保つ（推定された）安全なチャネルにわたって実行され得る。この場合、キー合意プロトコルは、チャネルのセキュリティが突破されるとセキュリティの追加層をもたらす。
【００６６】
パブリックキーマトリクスユニットは、第１の係数（ｑ）を法として共有マトリクス（Ａ）とプライベートキーマトリクス（それぞれＳＩ又はＳＲ）との間のマトリクス積を計算することにより、パブリックキーマトリクスＰ（イニシエータ用のＰＩ及びレスポンダ用のＰＲ）を計算してマトリクス積を取得し、結果をスケールダウンする。
【００６７】
しかしながら、この中間のマトリクス乗算は明らかにされない。プライベートキーは、共有マトリクスＡの逆マトリクスを求めることによって計算されるので、共有マトリクスＡの知見及びこのマトリクス乗算の結果によって明らかになる。この選択肢は、パブリックキーマトリクスユニットによって遂行されたスケーリングのステップによって阻止される。パブリックキーマトリクスユニットは、マトリクス積のエントリを第２の係数ｐまでスケールダウンする。第２の係数ｐは第１の係数ｑよりも小さい。スケーリングされたエントリは、スケーリング前のエントリに第２の係数（ｐ）を掛けてから第１の係数（ｑ）で割って、最近隣数に丸めたものと等しい。たとえば、ｘが、マトリクス積におけるｑを法とするスケーリングの前のエントリである場合、スケーリングされたエントリは、
【数３４】
2020508021.tif 000036
として選択され、この式で
【数３５】
2020508021.tif 000037
は最近隣数を表す。スケーリング演算の後は、単純にパブリックキー及びマトリクスＡからプライベートキーを計算することはもはや不可能である。
【００６８】
パブリックキーマトリクスのエントリは、区間［０，ｐ−１］における整数として表される。プライベートキーマトリクスのエントリも、区間［０，ｐ−１］における整数として表される。エントリを、区間
【数３６】
2020508021.tif 000038
において選択すると、それに続く乗算のための整数が小さくなるという利益がある。上記で指摘されたように、プライベートキーマトリクスは、区間［−ｓ，ｓ］において、さらには区間［０，ｓ］において選択されたエントリを有し得る。
【００６９】
マトリクスＡとプライベートキーマトリクスＳとの乗算は、第１の係数ｑを法として行われる。このために、ネットワークノードは、モジューロｑを減少するためのモジュラー減少ユニットを含む。プライベートキーマトリクスＳのエントリが、たとえば１に制限されて、又は絶対値において１に制限されて、小さい場合には、モジュラー減少が簡単になり、マトリクス乗算中に、エントリがｑよりも大きくなるか又は０未満になるたびに、ｑを差し引くか又は加算することにより、結果が０〜ｑ−１の区間へ戻される。
【００７０】
イニシエータノード及びレスポンダノードの両方が、たとえば通信インターフェース１２０及び２２０を使用して、それらのパブリックキーマトリクスを他方のノードに送信する。マトリクス積をスケールダウンすることによって実現される少なくとも３つの利益が見いだされた。まず第１に、マトリクス積へのノイズの発生及び明示的加算が回避される。ノイズの導入は、たとえばガウス分布といった確率分布の計算を必要とする。これらはかなり計算集約的である。第２に、通信の要件が低減される。第２の係数ｐが第１の係数ｑよりも小さいので、パブリックキーマトリクスのエントリを表すために必要なビット数は、プライベートキーマトリクスのエントリを表すために必要なビット数よりも少ない。第３に、パブリックキーマトリクスを包含する計算は、包含する数が少ないので、より小さい。驚くべきことに、１つの方策によって同時に３つの利益がもたらされる。
【００７１】
第２の係数ｐが第１の係数ｑを分割することが強く望まれる。興味深いことに、第１の係数及び第２の係数のどちらも、素数である必要はないことが分かった。実際には、第２の係数（ｐ）及び／又は第１の係数（ｑ）を２の累乗に選択すると、パブリックキー及びプライベートキーが均一に分布するという利点があることが分かった。一実施形態では、第１の係数と第２の係数の両方が２の累乗である。
【００７２】
一実施形態では、２の累乗である係数ｐ及びｑに加えて、
【数３７】
2020508021.tif 000039
がさらに必要とされる。これによって、一致データが観測されても、均一な共有キーがもたらされる。Ｂは、生キーの１つのエントリについて抽出される共有キーのビット数である。
【００７３】
係数はあまり大きくなくてよい。たとえば、一実施形態では、第２の係数が１２以上のビットサイズを有し、且つ／又は第１の係数が８以上のビットサイズを有する。セキュリティ要件に依拠して、より大きいサイズ又はより小さいサイズが可能である。一実施形態では、ｑは２１２〜２１５の範囲にあり、ｐは２７〜２９の範囲にある（境界値を含む）。ｐ及びｑの値は、セキュリティ要求の規定に従って、より大きく、又はより小さく選択される。
【００７４】
イニシエータノード１１０は共有キーユニット１６０を備える。レスポンダノード２１０は共有キーユニット２６０を備える。共有キーユニットは、一致データを、生成して伝送するものと、受信して適用するものとで、異なる。
【００７５】
共有キーユニット１６０と共有キーユニット２６０の両方が、受信した他方のノードのパブリックキーとネットワークノード自体のプライベートキーマトリクスとの間で、第２の係数（ｐ）を法とするマトリクス積として、生キー１６２、２６２を計算するように構成されている。マトリクスの次元及びマトリクスの乗算は、スケーリング演算が省略された場合には両方のパーティが同一の生キーを計算するように選択される。すなわち、スケーリングがなければ同一のキーがもたらされ、すべての計算はｑを法として行われる。しかしながら、両方の生キーのスケーリングが同一である必要がない。生キーの計算はｐを法として行われる。ネットワークノードは、ｐを法とした乗算の結果を低減するためのモジュラーユニットを備える。
【００７６】
レスポンダノード２１０の共有キーユニット２６０は、共有キー２６６及び生キー２６２から一致データ２６４を取得してイニシエータネットワークノード１１０に送信するように構成されている。一致データは、生キーにおける１つ又は複数のビットという形をとる。一致データとして選択されたビットは、キーを生成する目的では無視される。
【００７７】
共有キーユニット２６０は、生キーのエントリからいくつかのビットを選択してキーを形成する。たとえば、選択されたビットが連結される。一実施形態では、選択されたビットは、たとえば暗号のハッシュ関数といったキー導出関数（ＫＤＦ）に入力される。ＫＤＦの一例は、たとえば、ＣＭＬＡ  Ｔｅｃｈｎｉｃａｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ、Ｖｅｒｓｉｏｎ：Ｖ１．４３−２０１３１２１８からのＣＭＬＡ＿ＫＤＦ、又は「ＤＲＭ  ｓｐｅｃｉｆｉｃａｔｉｏｎ」、ＯＭＡ−ＴＳ−ＤＲＭ−ＤＲＭ−Ｖ２＿０＿２−２００８０７２３−Ａ、Ｏｐｅｎ  Ｍｏｂｉｌｅ  Ａｌｌｉａｎｃｅ（商標）、Ｖｅｒｓｉｏｎ  ２．０．２、７．１．２節で定義されているＫＤＦ関数で与えられる。キー導出関数は、たとえば連結の後にたとえば丸め関数によって、又は、たとえばこれも連結の後に一致関数の出力から取得されて、生キーにおけるキービットのエントリに適用される。
【００７８】
キービットとして選択されないいくつかのビットが一致データとして選択される。最後に、いくつかのビットがすべて棄却される。一実施形態では、キービットは生キーエントリのＭＳＢ部分から選択され、一致データは生キーエントリの中間部分から選択され、生キーの最下位部分は棄却される。たとえば、キービットは、生キーのエントリに丸め関数を適用することによって取得され、一致ビットは、生キーのエントリに相互丸め関数を適用することによって取得される。
【００７９】
共有キーユニット２６０によって生キーから得られたキー一致データは、イニシエータノード１１０に送信される。
【００８０】
共有キーユニット１６０は、第２のネットワークノードの一致データ１６４（ｈ）を受信し、受信した一致データに一致関数を適用することにより、生キーマトリクス１６２及び共有キーを計算するように構成されている。たとえば、一致関数は、生キー１６２のエントリ及び一致データの対応する部分のエントリの各々に適用される。たとえば、一致データ１６４がレスポンダユニット２１０によって生成された生キーの一部分であれば、イニシエータノードは、ノード２１０によって取得されている、受信された一致データと互換性のある（たとえば、受信されたものと同一の中間ビットを有する）生キーを選択する。こうするためのやり方の１つには、上記で定義された一致関数を使用するものがある。その結果、ノード２１０が共有キーを生成するために使用したものと同一のビットが回復される。これらのビットを、同様に連結することにより、又は同一のＫＤＦへ入力することにより、同一の共有キー１６６が取得される。一実施形態では、共有キーは対称キーである。
【００８１】
多くの一致データは必要ではなく、１ビットで十分である。しかしながら、一致ビットの数を２ビット以上に増加するとプロトコルの失敗確率が低下するので有利であることが観測された。
【００８２】
Ｂ及びｂｈの標準値は１又は２である。ここでは、Ｂは生キーのエントリごとに抽出されるキービットの数であり、ｂｈは生キーエントリごとの一致ビットの数である。
【数３８】
2020508021.tif 000040
及び
【数３９】
2020508021.tif 000041
の大きさは、
【数４０】
2020508021.tif 000042
が十分に大きくなるように選択され、たとえば
【数４１】
2020508021.tif 000043
となる。たとえば、
【数４２】
2020508021.tif 000044
と
【数４３】
2020508021.tif 000045
とはほぼ同一に選択される。これらは、オーバヘッドを小さく保つために、
【数４４】
2020508021.tif 000046
として選択される。
【００８３】
キー合意プロトコルを複数回の実行するために、マトリクスＡ及びプライベートキーマトリクスのうち１つを再利用することができる（両方が同一であれば同一の共有キーが取得されるはずである）。こうすると、特にマトリクスＡが再利用される場合には、通信のオーバヘッドが低減される。しかしながら、マトリクスＡ及びプライベートキーマトリクスは、認証が接続されていないので、再利用する必要性はないことが理解される。好ましい実施形態では、それぞれの新規のキー交換のために新規のマトリクスＡ及び新規のプライベートキーマトリクスが取得される。これには、攻撃者がプロトコルの複数回の実行を観測してもオブザーバの付加的情報への選択肢を得られないという利点がある。その上に、フォワード秘密通信方式が改善される。
【００８４】
プロトコルが完成し、両方のノードが共有キーを計算した後に、ノードの一方が、同一のキーに対する両者の合意を検証するために、他方のノードへキー確認メッセージを送信する。たとえば、キー確認メッセージは、共有キーのハッシュ、固定値の暗号化のハッシュ、ランダムな値に加えたランダムな値の暗号化のハッシュである。チャレンジレスポンスプロトコルを使用してキー確認も遂行され得る。キー確認を省略することも選択され得る。各パーティが異なる共有キーを取得した場合には、それに続く両者の間の通信は失敗することになる。たとえば、共有キーは、たとえばデジタルメッセージといったさらなる通信を暗号化するため、及び／又は認証するために使用される。それらが異なる共有キーで到達すると復号化及び／又は検証は失敗する。
【００８５】
以下で、さらなる具体的且つ有利な実施形態を説明する。この発明を表す基本システムは、今後キー交換（ＫＥＸ）方式という名で呼ばれるプロトコルであり、今後イニシエータ及びレスポンダという名で呼ばれる２つのエンティティ又はパーティによって、両者の間で第３者に知られない共有秘密を確立するために実行されるものである。この目的のために、イニシエータ及びレスポンダは、ＫＥＸ方式を実行する前に合意する必要がある複数の共通のシステムパラメータと、今後秘密キーという名で呼ばれて各々に所有されるいくつかのプライベート情報と、今後パブリックキーという名で呼ばれて各々に所有されるいくつかの公開情報とを使用する。ＫＥＸ方式のセキュリティは、そのセキュリティがＬｅａｒｎｉｎｇ  ｗｉｔｈ  Ｅｒｒｏｒｓ（ＬＷＥ）問題に基づくＬｅａｒｎｉｎｇ  ｗｉｔｈ  Ｒｏｕｎｄｉｎｇ（ＬＷＲ）問題に基づくものであり、共有秘密の秘密通信方式と、イニシエータの秘密通信方式及びレスポンダの秘密キーの秘密通信方式とを保護する。以下の例では、プライベートキーマトリクスは符号付き２進数である。
【００８６】
ＫＥＸ方式の一実施形態は以下の３つの段階を含む。
１．  セットアップ：
イニシエータとレスポンダは、正整数である以下のシステムパラメータに関する共通値について合意する。
ｉ．  ｑ：ＬＷＲ問題の係数。
ｉｉ．  ｎ：ＬＷＲ問題の次元。ＬＷＲ問題のパブリックパラメータであるマトリクス
【数４５】
2020508021.tif 000047
の次元も表す。
ｉｉｉ．  ｈｓ：ｈｓ＜ｎとなるような、符号付き２進数（すなわち３進数）ストリングの分布における各ストリングのハミング重み。
ｉｖ．
【数４６】
2020508021.tif 000048
：ＫＥＸプロトコル中にイニシエータによって生成されるＬＷＲ問題のインスタンス又はサンプルの数。
ｖ．
【数４７】
2020508021.tif 000049
：ＫＥＸプロトコル中にレスポンダによって生成されるＬＷＲ問題のインスタンス又はサンプルの数。
ｖｉ．  Ｂ：最後の共有秘密又はキーを生成する一方で、２つのパーティの生キーの１つの係数当たりの抽出されるビット数。
ｖｉｉ．  ｂｈ：一致データを生成する一方で、２つのパーティの生キーの１つの係数当たりの抽出されるビット数。
ｖｉｉｉ．  ｐ：ＬＷＲ問題の丸め係数。
【数４８】
2020508021.tif 000050
の整数倍数であり、ｐ｜ｑを満たすものである。２の累乗としてのｐの要件により、より高速でより効率的な実装形態が可能になることに留意されたい。
その上に、２つのパーティはパブリックマトリクスに関して合意する。
ｉ．
【数４９】
2020508021.tif 000051
：このマトリクスの新規のインスタンスが各ＫＥＸセッション用に選択される。
【００８７】
特定のパラメータが所与の識別子にマッピングされる場合には、共通パラメータの選択は、ＴＬＳ又はＩＫＥなどのプロトコルに組み込まれ得る。たとえば、共通パラメータを符号化するために、たとえばＴＬＳでは暗号スイート要素であるプロトコル識別子が使用される。パブリックマトリクスは、たとえばハッシュ関数によってシードからも導出され得る。異なる解決策では、イニシエータが、レスポンダに送信されるいくつかのパラメータを決定する。
２．  キー生成：
イニシエータは、ｈｓのハミング重みを有する｛０，±１｝ｎの均一なベクトルの分布を表す分布ＨＷＴｎ（ｈｓ）から
【数５０】
2020508021.tif 000052
回サンプリングすることによって新規の秘密キー
【数５１】
2020508021.tif 000053
を生成する。
イニシエータは、それ自体のパブリックキー
【数５２】
2020508021.tif 000054
を生成する。
レスポンダは、ｈｓのハミング重みを有する｛０，±１｝ｎの均一なベクトルの分布を表す分布ＨＷＴｎ（ｈｓ）から
【数５３】
2020508021.tif 000055
回サンプリングすることによって新規の秘密キー
【数５４】
2020508021.tif 000056
を生成する。
レスポンダは、それ自体のパブリックキー
【数５５】
2020508021.tif 000057
を生成する。
３．  キー交換：
表１：丸めと、３進のエントリを含有している秘密のスパースマトリクスとを利用する、イニシエータＩとレスポンダＲとの間のキー交換であり、ＩとＲとの間の共有秘密Ｋを確立する。中間の列は、イニシエータとレスポンダとの間で交換されるメッセージの一例を示す。
【００８８】
【表１】
2020508021.tif 000058
【００８９】
セキュリティを改善するためにパラメータに課される４つの要件が見いだされた。４つの要件は以下の通りである。
１．  最小のキー長さ：共有秘密が、少なくとも、目標とされたビット数を含有することを保証するために、イニシエータのパラメータ
【数５６】
2020508021.tif 000059
、レスポンダのパラメータ
【数５７】
2020508021.tif 000060
、及びシステムのパラメータＢは、次式を満たすべきである。
【数５８】
2020508021.tif 000061
２．  秘密キーの全数探索攻撃に対する防衛手段：Ｓ（ポスト量子）及び２Ｓ（古典的）のビットの目標とされたセキュリティレベルを想定する。秘密キーのエントリを推定するための秘密キーの全数ブルートフォース探索の作業負荷が十分に大きくなることを保証するために、（それぞれがハミング重みｈｓを有する）秘密キーベクトルにおける秘密の数は
【数５９】
2020508021.tif 000062
を満たすべきであり、ここで、２２ＳはＧｒｏｖｅｒの量子探索アルゴリズムの実行回数であり、２Ｓは古典的探索アルゴリズムの実行回数である。たとえば、Ｓは１２８又は２５６などである。この限界は、プライベートキーマトリクスのエントリの絶対値に対する限界が１である場合に関するものであることに留意されたい。より大きな限界ｓに関して、類似の限界が確立される。
３．  成功確率：イニシエータ及びレスポンダが同一の最終的な共有秘密に到達しない確率が高くてもｐｆａｉｌであることを保証するために、パラメータ
【数６０】
2020508021.tif 000063
、
【数６１】
2020508021.tif 000064
、ｈｓ及び定数ξの値は、
【数６２】
2020508021.tif 000065
となるように選択されるべきであり、
【数６３】
2020508021.tif 000066
である。
４．  セキュリティ分析：ＢＫＺ格子基底縮小アルゴリズムの時間計算量が少なくとも２１２８であることを保証して、１２８ビットポスト量子のセキュリティを保証するために、ＬＷＲの次元ｎは、ＢＫＺ  Ｒｏｏｔ−Ｈｅｒｍｉｔｅ係数δ（ＢＫＺアルゴリズムのパラメータ）、丸め係数ｐ及びスパース度θ＝ｈｓ／ｎによって表現された次式の下限以上でなくてはならない。
【数６４】
2020508021.tif 000067
【００９０】
ＢＫＺ  Ｒｏｏｔ−Ｈｅｒｍｉｔｅ係数δはＢＫＺアルゴリズムの精度の指示である。たとえば、古典的セキュリティについては、ＢＫＺブロックサイズ＝４０９でδ＝１．００３９２２を想定し、ポスト量子暗号については、ＢＫＺブロックサイズ＝４５０でδ＝１．００３６７を想定し、ポスト量子暗号の向上したセキュリティについては、ＢＫＺブロックサイズ＝５７３でδ＝１．００３０９を想定する。
【００９１】
プライベートキーマトリクスは確率論を使用して選択される。確率的な秘密キー発生により、実装形態が簡単になる。秘密キー
【数６５】
2020508021.tif 000068
及び
【数６６】
2020508021.tif 000069
を生成する一方で、秘密キーの１つの列当たりｈｓ個の非ゼロエントリを生成する代わりに、この実施形態におけるそれぞれの（ｉ，ｊ）番目の秘密キーエントリｓｋ（ｉ，ｊ）は、以下の式のように生成される。
【数６７】
2020508021.tif 000070
、
【数６８】
2020508021.tif 000071
、
【数６９】
2020508021.tif 000072
【００９２】
あるいは、決定論的に生成される場合には、標準的且つ安全なＰＲＦを使用して以下の処理が行われる。ｎ個の位置のベクトルにｈｓ個の非ゼロ要素（１又は−１）がある場合には、ＰＲＦの出力は、ＰＲＦが異なるロケーションにおいてｈｓ個の非ゼロ要素を選択するまで、列におけるランダムな位置を、ランダムな＋１又は−１の値とともに選択する。たとえば、ＰＲＦ出力は
【数７０】
2020508021.tif 000073
ビットのブロックに分割され、このブロックの最初の
【数７１】
2020508021.tif 000074
ビットが非ゼロ要素の位置を識別し、ブロックの最終ビットは、この要素が１なのかそれとも−１なのかということを決定する。
【００９３】
提案されたキー交換にはいくつかの利点がある。
【００９４】
計算の複雑さ：秘密キーマトリクスがスパースであってエントリ０、１及び−１を有するので、この方式におけるｑを法とする計算は高速である。具体的には、（たとえばパブリックキー及び生キーの生成中の）高次元のマトリクスを包含する乗算が高度に最適化される。提案されたキー交換方式の計算上の性能が次の表に定量化されており、Ｉｎｔｅｌ社のＸｅｏｎ  Ｑｕａｄ−ｃｏｒｅ  ３．２ＧＨｚのプロセッサで実行するとき、キー交換方式の各段階について必要なＣＰＵクロックサイクルを与える。
【００９５】
表２：３つのセキュリティレベルについてキー生成及び全体のキー交換に関する必要なＣＰＵクロックサイクルを示す、提案された方式の計算上の性能。選択された最終的なキービットの数（すなわちＢ）は第６列に示されている。
【００９６】
【表２】
2020508021.tif 000075
【００９７】
ケースＩは、たとえば古典的セキュリティ向けの中間セキュリティ用に選択される。ケースＩＩはポスト量子セキュリティ用に選択される。ケースＩＩＩはケースＩＩよりも安全である。
【００９８】
通信の複雑さ：より小さい係数への丸めが使用されるので、パブリックキー及び生キーの各エントリの大きさが低減され、帯域幅要件が大幅に低下する。このことは、以下２つの表に定量化されており、提案された方式の帯域幅要件が（それぞれ丸め使用の有無について）明示されている。実施形態は、Ｊ．Ｂｏｓ、Ｃ．Ｃｏｓｔｅｌｌｏ、Ｌ．Ｄｕｃａｓ、Ｉ．Ｍｉｒｏｎｏｖ、Ｍ．Ｎａｅｈｒｉｇ、Ｖ．Ｎｉｋｏｌａｅｎｋｏ、Ａ．Ｒａｇｈｕｎａｔｈａｎ、Ｄ．  Ｓｔｅｂｉｌａによる「Ｆｒｏｄｏ：  Ｔａｋｅ  ｏｆｆ  ｔｈｅ  ｒｉｎｇ！  Ｐｒａｃｔｉｃａｌ，  Ｑｕａｎｔｕｍ−Ｓｅｃｕｒｅ  Ｋｅｙ  Ｅｘｃｈａｎｇｅ  ｆｒｏｍ  ＬＷＥ」が説明するＬＷＥベースのプロトコルと比較されている。
【００９９】
帯域幅は、交換されるキー交換メッセージ（すなわちパブリックキー及び一致データ）の合計サイズとして計算され、パブリックマトリクスＡの交換は含まない。
【０１００】
表３：現況技術のＬＷＥベースのキー交換方式Ｆｒｏｄｏに対する帯域幅要件における改善を示す、提案された方式の通信性能（最終的なキービットの数Ｂ＝２、一致データビットの数ｂｈ＝２）
【０１０１】
【表３】
2020508021.tif 000076
【０１０２】
ＬＷＥと、スパース且つ小さい秘密とを使用する帯域幅利得：
表４：丸めと組み合わせることなく、スパースで小さい秘密のみ使用したときの、提案された方式の通信性能（最終的なキービットの数Ｂ＝２、一致データビットの数ｂｈ＝２）
【０１０３】
【表４】
2020508021.tif 000077
【０１０４】
表３のスパースＬＷＲ（スパース且つ小さい秘密と組み合わせて使用された丸め）の帯域幅利得は、以下の理由により、表４の（スパース且つ小さい秘密のみ使用された）スパースＬＷＥよりも望ましいものである。スパースＬＷＥ問題の次元ｎの最小値が、スパースＬＷＲ問題の次元ｎの最小値と比較して、より大きい。これは、スパースＬＷＥ問題の次元ｎの最小値が、スパースＬＷＲ問題（ｎの最小値の限界が、比
【数７２】
2020508021.tif 000078
によって制御される）の場合よりも厳密な最小値の限界をｎに強いるガウス誤差分布の分散によって決定されるからである。スパースＬＷＲにおける帯域幅は、（スパースＬＷＥの場合の）ｌｏｇ２ｑよりも小さいｌｏｇ２ｐによって制御される。
【０１０５】
様々な実施形態において、通信インターフェースは様々な選択肢から選択される。たとえば、通信インターフェースは、ローカルエリアネットワーク又は広域ネットワークに対するネットワークインターフェースであり、たとえばインターネット、内部又は外部のデータ記憶機構に対する記憶機構インターフェース、キーボードなどである。
【０１０６】
ネットワークノードは、たとえばマトリクスＡ、パブリックキーマトリクス及びプライベートキーマトリクス、及び共有キーなどの中間データを記憶するための電子記憶機構を備える。記憶機構は、たとえばフラッシュメモリといった電子メモリ、又はたとえばハードディスクなどの磁気記憶装置として実施される。記憶機構が備える複数の離散記憶装置が、ともに記憶機構を構成する。記憶機構は、たとえばＲＡＭといった一時的メモリでもよい。一時的記憶機構の場合には、使用前に共通パラメータを取得するために、たとえば任意選択のネットワーク接続（別個には示されていない）を通じて取得することにより、いくつかの手段を使用する。
【０１０７】
一般的には、デバイス１１０及び２１０は、デバイス１１０及び２１０に記憶された適切なソフトウェアを実行するマイクロプロセッサ（図１には別個には示されていない）をそれぞれ備え、たとえば、そのソフトウェアは、たとえばＲＡＭなどの揮発性メモリ又はフラッシュメモリなどの不揮発性メモリ（別個には示されていない）といった対応する記憶装置にダウンロードされ、且つ／又は記憶されている。あるいは、デバイス１１０及び２１０は、全体又は一部において、たとえばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）としてプログラマブルロジックで実施される。デバイス１１０及び２１０は、全体又は一部において、いわゆる特定用途向け集積回路（ＡＳＩＣ）すなわち特別な用途向けにカスタマイズされた集積回路（ＩＣ）として実施される。たとえば、回路は、たとえばＶｅｒｉｌｏｇ、ＶＨＤＬなどのハードウェア記述言語を使用してＣＭＯＳで実施される。
【０１０８】
一実施形態では、ネットワークノードは、通信用インターフェース回路、共有マトリクス回路、プライベートキーマトリクス回路、パブリックキーマトリクス回路、及び共有キー回路を備える。これらの回路は、本明細書で説明された対応するユニットを実施する。これらの回路はプロセッサ回路及び記憶回路であり、プロセッサ回路は、記憶回路において電子的に表現された命令を実行する。
【０１０９】
プロセッサ回路は、たとえば複数のサブプロセッサ回路として分散型のやり方で実施される。記憶機構は、複数の分散型サブ記憶機構にわたって分散している。記憶装置の一部又はすべてが、電子メモリ、磁気記憶装置などである。たとえば、記憶機構は揮発性の部分及び不揮発性の部分を有する。記憶機構の一部は読取り専用である。回路は、ＦＰＧＡ、ＡＳＩＣなどでもよい。
【０１１０】
図３は、電子キー交換方法の一実施形態の一例を概略的に示すものである。この方法は、イニシエータノード１１０又はレスポンダノード２１０などの第１の電子的ネットワークノードによって実行される。
【０１１１】
方法４００は、
第１のネットワークノードと第２のネットワークノードとの間にデジタル通信を確立するステップ（４１０）と、
デジタル通信を介して第２のネットワークノードと共有される共有マトリクス（Ａ）を取得するステップ（４２０）であって、共有マトリクスＡのエントリが第１の係数ｑを法として選択される、取得するステップ（４２０）と、
プライベートキーマトリクス（ＳＩ）を生成するステップ（４３０）であって、プライベートキーマトリクスのエントリが絶対値において限界（ｓ）によって制限される、生成するステップ（４３０）と、
パブリックキーマトリクス（ＰＩ）を生成するステップ（４４０）であって、
マトリクス積を取得する第１の係数（ｑ）を法として、共有マトリクス（Ａ）とプライベートキーマトリクス（ＳＩ）との間のマトリクス積を計算するステップ（４４２）と、
マトリクス積のエントリを第２の係数（ｐ）までスケールダウンするステップ（４４４）であって、スケールダウンされたエントリが、スケールダウン前のエントリに第２の係数（ｐ）を掛けてから第１の係数（ｑ）で割って最近隣数に丸めたものと等しく、第２の係数（ｐ）は第１の係数（ｑ）よりも小さく、限界（ｓ）は最大でも第２の係数（ｐ）である、スケールダウンするステップ（４４４）とによって、生成するステップ（４４０）と、
第１のネットワークノードのパブリックキーマトリクスを第２のネットワークノードに送信するステップ（４５２）と、
第２のネットワークノードのパブリックキーマトリクス（ＰＲ）を受信するステップ（４５４）と、
第２の係数（ｐ）を法とする、第２のノードの受信されたパブリックキーと第１のネットワークノードのプライベートキーマトリクスとの間のマトリクス積として、生キーを計算するステップ（４６０）とを有する。
【０１１２】
第１のネットワークノードがイニシエータモードによって動作している場合、第１のネットワークノードは、
第２のネットワークノードの一致データ（ｈ）を受信すること（４７２）と、
受信された一致データ及び生キーに対して一致関数（ｒｅｃ）を適用することにより、共有キーを計算すること（４８２）とをさらに遂行する。
【０１１３】
第１のネットワークノードがレスポンダモードによって動作している場合、第１のネットワークノードは、
生キーから共有キー及び一致データを取得すること（４７４）と、
一致データを第１のネットワークノードに送信すること（４８４）とをさらに遂行する。
【０１１４】
当業者には明らかなように、方法を実行する様々なやり方が可能である。たとえば、ステップの順序を変えることができ、又はいくつかのステップを並行して実行することができる。その上に、ステップの間に、他の方法のステップが挿入され得る。挿入されるステップは、本明細書で説明された方法などの改善を表現するものでよく、又は方法とは無関係でもよい。たとえば、所与のステップは、次のステップが開始される前に完了していなくてもよい。
【０１１５】
本発明による方法は、プロセッサシステムに方法４００を遂行させるための命令を含むソフトウェアを使用して実行される。ソフトウェアは、システムの特定のサブエンティティによって採用されたステップのみ含めばよい。ソフトウェアは、ハードディスク、フロッピーディスク、メモリ、光ディスクなどの適切な記憶媒体に記憶される。ソフトウェアは、ワイヤに沿った信号、無線、又はたとえばインターネットといったデータネットワークを使用して送られる。ソフトウェアは、ダウンロードして使用されるように、且つ／又はサーバ上にあって遠隔で利用されるように作成される。本発明による方法は、本方法を遂行するための、たとえばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）といったプログラマブルロジックを構築するように構成されたビットストリームを使用して実行される。
【０１１６】
本発明は、本発明を実行するように適合されたコンピュータプログラム、特にキャリア上のコンピュータプログラム又はキャリアにおけるコンピュータプログラムにも及ぶことが理解されよう。プログラムは、ソースコード、オブジェクトコード、コードの中間のソース、及び部分的にコンパイルされた形式などのオブジェクトコードの形式、又は本発明による方法の実装形態において使用するのに適した任意の他の形式でよい。コンピュータプログラム製品に関する一実施形態は、説明された方法の少なくとも１つの処理ステップの各々に対応するコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに細分され、並びに／或いは静的又は動的にリンクされる１つ若しくは複数のファイルに記憶される。コンピュータプログラム製品に関する別の実施形態は、説明されたシステム及び／又は製品のうち少なくとも１つの手段の各々に対応するコンピュータ実行可能命令を含む。
【０１１７】
図４ａは、コンピュータプログラム１０２０を含む書込み可能な部分１０１０を有するコンピュータ可読媒体１０００を示すものであり、コンピュータプログラム１０２０は、プロセッサシステムに、一実施形態によるキー合意方法を遂行させるための命令を含む。コンピュータプログラム１０２０は、コンピュータ可読媒体１０００上の物理マークとして、又はコンピュータ可読媒体１０００を磁化することにより、具現される。しかしながら、任意の他の適切な実施形態も同様に考えられる。その上、コンピュータ媒体１０００は、ここでは光ディスクとして示されているが、ハードディスク、ソリッドステートメモリ、フラッシュメモリなどの任意の適切なコンピュータ可読媒体でよく、記録不可能でも記録可能でもよいことが理解されよう。コンピュータプログラム１０２０は、プロセッサシステムに、前記キー合意方法４００を遂行させるための命令を含む。
【０１１８】
図４ｂは、一実施形態によるプロセッサシステム１１４０を概略的に示すものである。プロセッサシステムは１つ又は複数の集積回路１１１０を備える。図４ｂには１つ又は複数の集積回路１１１０の構造が概略的に示されている。回路１１１０は、一実施形態による方法を実行するため、及び／又はそのモジュール若しくはユニットを実施するためのコンピュータプログラムコンポーネントを走らせるための、たとえばＣＰＵである処理ユニット１１２０を備える。回路１１１０は、プログラムコード、データなどを記憶するためのメモリ１１２２を備える。メモリ１１２２の一部は読取り専用である。回路１１１０は、たとえばアンテナ、コネクタ、又は両方などの通信要素１１２６を備える。回路１１１０は、方法において定義された処理の一部分又はすべてを遂行するための専用の集積回路１１２４を備えてよい。プロセッサ１１２０と、メモリ１１２２と、専用のＩＣ  １１２４と、通信要素１１２６とは、たとえばバスである相互接続１１３０を介して互いに接続されている。プロセッサシステム１１１０は、コネクタを使用する接触型通信用、及び／又はアンテナを使用する非接触型通信用に構成されている。
【０１１９】
たとえば、一実施形態では、ネットワークノードはプロセッサ回路及びメモリ回路を備え、プロセッサはメモリ回路に記憶されたソフトウェアを実行するように構成されている。たとえば、プロセッサ回路は、Ｉｎｔｅｌ社のＣｏｒｅ  ｉ７プロセッサ、ＡＲＭ社のＣｏｒｔｅｘ−Ｒ８などである。一実施形態では、プロセッサ回路はＡＲＭ社のＣｏｒｔｅｘ  Ｍ０である。メモリ回路は、ＲＯＭ回路、すなわち、たとえばフラッシュメモリといった不揮発性メモリである。メモリ回路は、たとえばＳＲＡＭメモリである揮発性メモリである。後者の場合には、検証デバイスは、たとえばハードディスク、ネットワークインターフェースなど、ソフトウェアを供給するように構成される、不揮発性のソフトウェアインターフェースを備える。
【０１２０】
前述の実施形態は、本発明を限定するのではなく、当業者が、多くの代替実施形態を設計することを可能にするように説明するものであることに留意されたい。
【０１２１】
特許請求の範囲では、括弧の間のいかなる参照符号も、特許請求の範囲を限定するものとして解釈されないものとする。動詞「備える」及びその語形変化の使用は、特許請求の範囲において明示されたもの以外の要素又はステップの存在を排除するものではない。要素の前の冠詞「１つの（ａ）」又は「１つの（ａｎ）」は、そのような要素が複数存在すること排除するものではない。本発明は、いくつかの別個の要素を含むハードウェアと、適切にプログラムされたコンピュータとによって実施される。いくつかの手段を列挙しているデバイスの請求項では、これらの手段のいくつかは、ハードウェアの同一の品目によって具現され得る。特定の方策が互いに異なる従属請求項において詳述されるという単なる事実は、これらの方策の組合せが有利に使用され得ないことを指示するわけではない。
【０１２２】
特許請求の範囲では、括弧の中の参照は、実施形態を例示する図面における参照符号又は実施形態の式を参照するものであり、したがって特許請求の範囲における理解し易さが向上する。これらの参照は、特許請求の範囲を限定するものとして解釈されることはないものとする。
【図１】
2020508021.tif 000084
【図２】
2020508021.tif 000085
【図３】
2020508021.tif 000086
【図４ａ】
2020508021.tif 000087
【図４ｂ】
2020508021.tif 000088
【国際調査報告】
2020508021.tif 000089
2020508021.tif 000090