(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-24
(54)【発明の名称】鍵確立のためのシステムおよび方法
(51)【国際特許分類】
H04L 9/08 20060101AFI20240117BHJP
H04L 9/12 20060101ALI20240117BHJP
【FI】
H04L9/08 C
H04L9/12
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023542684
(86)(22)【出願日】2022-01-13
(85)【翻訳文提出日】2023-09-06
(86)【国際出願番号】 GB2022050069
(87)【国際公開番号】W WO2022153051
(87)【国際公開日】2022-07-21
(32)【優先日】2021-01-13
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】522181326
【氏名又は名称】アーキット リミテッド
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100141553
【氏名又は名称】鈴木 信彦
(72)【発明者】
【氏名】ウェッブ デイヴィッド
(72)【発明者】
【氏名】バーンズ ダリル
(72)【発明者】
【氏名】ウィリアムズ デイヴィッド
(57)【要約】
量子によって安全が保障されたネットワークを使って第一の機器と第二の機器の間にキーを作成する方法、機器、およびシステムを、ここに示す。量子配布キー1セットを含む第一のキーノード、および同じセットの量子配布ふきーを含む第二のキーノードからなる。最初の機器は最初のキー作成データを少なくとも最初のキーノードを、そして二番目の機器はバイロケーションキーを計算するのにつかわれる。バイロケーションキーは第一のキーノードおよび第二のキーノードの一連の量子配布キーに基づいている。第二の機器は第二のキーノードのバイロケーションを要求するのに使用される第二のキー作成データ
【特許請求の範囲】
【請求項1】
ネットワーク内の第1のデバイスと第2のデバイスの間でキーを確立するコンピュータの実装方法であって、ネットワークは第1のキーノードと第2のキーノードを含み、第1のキーノードと第2のキーノードは同じキー一式にアクセスできる。その方法は以下のものである。
第1のデバイスにおいて、少なくとも第1のキーノードおよび第2のデバイスから、第1キーの確立したデータで代表なデータを受信し、これを用いてBilocation Keyを計算する。そこでのBilocation Keyは、キーの一式から選択されたキーに基づいている。
そして、第2のデバイスにおいては、第2のキーノードにBilocation Keyを要求する目的で、少なくとも第1のデバイスから第2キーの確立したデータで代表なデータを受信する。そこでのBilocation Keyは、キーの一式から選択されたキーに基づいて計算されている。
ここで、第1および第2のデバイスは、それぞれ対応するBilocation Keyを使用して、第1キーおよび第2キーそれぞれの確立したデータのうち、合意された部分に基づいてFinal Keyを生成する。
【請求項2】
クレーム1のコンピュータ実装方法において、第1のデバイスと第2のデバイスは量子セキュアネットワークを使用している。このネットワークは、第1のキーノードと第2のキーノードを含んでおり、これらキーノードの一式は、量子分散キーの一式であり、同様のものである。本方法はさらに以下の事を含んでいる。
第1のデバイスにおいて、Bilocation Keyの計算に使用するために、少なくとも第1のキーノードと第2のデバイスから第1キーの確立したデータで代表データを受信する。そこでのBilocation Keyは、一連の量子分散キーの中から選び出されたキーに基づいている。
そして、第2のデバイスにおいては、第2のキーノードにBilocation Keyを要求する目的で、少なくとも第1のデバイスから第2キーの確立したデータで代表するデータを受信する。そこにおいても、Bilocation Keyは一連の量子分散キーの中から選び出されたキーに基づいて計算がなされている。
ここで、第1および第2のデバイスは、それぞれ対応するBilocation Keyを使用して、第1キーおよび第2キーそれぞれの確立したデータのうち、合意された部分に基づいてFinal Keyを生成する。
【請求項3】
クレーム1あるいは2のコンピュータ実装方法においては、Final Keyは第1と第2それぞれのデバイスによって計算され、Bilocation Keyと、第1または第2のセッションで確立したデータに受容された、1または複数のランダムノンスの合意結合との組み合わせに基づいて計算されている。
【請求項4】
クレーム1からクレーム3のいずれかに記載のコンピュータ実装方法においては、Final Keyは、第1および第2のデバイスの各々によって、対応するBilocation Keyと、Final Keyに合意するために使用されるチャレンジ・レスポンス・プロトコルに基づいて計算されることを特徴としている。
【請求項5】
先のクレームのコンピュータ実装方法においては、第1のデバイスで、第1のセッションの確立データで代表的なデータを受信する際にさらに下記の事が含まれる。
第2のデバイスとの間で第1の応答確認を実行し、第2のデバイスと第2のキーノードに関連付けられたIDデータで代表的なものと、第2のデバイスによって生成された第1のノンスを受信する。
第1のキーノードにIntermediate Bilocation Keyを要求する。その要求には、検索されたIDデータで代表的なものと、受信した第1のノンスと第1のデバイスによって生成された第2のノンスから計算された第3のノンスとが含まれている。そこで、第1のキーノードは要求データとキーセットから選択されたキーを使用し、Intermediate Bilocation Keyと第1のアンチ・リプレイ・ノンスとを確立する。
第1のキーノードからIntermediate Bilocation Keyと第1のアンチリプレイ・ノニースを受信する。
第2のデバイスが第2のキーノードからBilocation Keyと第2のアンチリプレイ・ノンスを受信した後、第2のデバイスから第2のアンチリプレイ・ノンスを受信するために、第2のデバイスとさらなる応答確認を実行する。
【請求項6】
クレーム5のコンピュータ実施方法においては、第2のデバイスで、第2のセッション確立データで代表なものを受信する際にさらに下記の事を含んでいる。
第1のデバイスとの間で第2の応答確認を実行し、第1のデバイスおよび第1のキーノードに関連付けられたIDデータで代表的なものと、第1のアンチ・リプレイ・ノンスおよび第2のノンスを受信する。
第2のキーノードにBilocation Keyを要求する。要求には、検索されたIDデータで代表的なもの、第1のノ ンスと第2のノンスから計算された第3のノンス、および第1のアンチ・リプレイ・ノンスが含まれ、 第2のキーノードは、要求データと一連のキーから選び出されたキーを使用してBilocation Keyを生成する。
第 2 のキーノードから Bilocation Key を受信し、第 2 のキーノードによって生成された第 2 のアンチ・リプレイ・ノンス を受信する。
【請求項7】
先のクレームのコンピュータ実装方法においては、第1のデバイスで、第1のセッション確立データで代表的なものを受信する際にさらに下記の事が含まれる。
第1のデバイスが第1の応答確認要求を送信する。これは、第2のデバイスが、第2のデバイスのアイデンティティ、第2のキーノードのアイデンティティ、および第2のデバイスによって生成された第1のノンスに関する代表的なデータを提供するために行う。
第2のデバイスから、生成された第1のノンス、第2のデバイスの識別情報、および第2のキーノードの識別情報を代表するデータを受信し、第1のデバイスによって第2のランダムノンスを生成する。
第1のデバイスが第1のキーノードにIntermediate Bilocation Keyの要求を送信する。この要求には、第2のデバイスの識別情報、第2のノードの識別情報、第1および第2の非通知の組み合わせに基づく第3のノンスに関する代表的なデータが含まれている。
第1のデバイスにおいて、第1のキーノードによって確立されたIntermediate Bilocation Keyと、第1のキーノードによって生成された第1のアンチ・リプレイ・ノンスを受信する。
第1のデバイスが、第2の応答確認メッセージを第2のデバイスに送信する。ここには、第2のノンスと第1のアンチ・リプレイ・ノンス、第1のデバイスの識別情報および第1のキーノードの識別情報に関する代表的なデータが含まれている。
受信した第2のノンスと生成された第1のノンスに基づいて、第2のデバイスで第3のノンスを生成する。
第2のデバイスが、第2のキーノードへのBilocation Keyの要求を送信する。ここには、第3および第1のアンチ・リプレイ・ノンス、第1のデバイスの識別情報、および第1の鍵ノードの識別情報に関する代表的なデータが含まれている。
第2のデバイスにおいて、第2のキーノードによって確立されたBilocation Keyと、第2のキーノードによって生成された第2のアンチ・リプレイ・ノンスを受信する。第2のキーノードはIntermediate Bilocation Key の生成に基づいてBilocation Keyを確立し、第2のデバイスによって得られたデータと、Intermediate Bilocation Keyと第2のアンチ・リプレイ・ノンスの組み合わせによって得られたデータがその基礎となっている。
第2のデバイスが、さらなる応答確認メッセージで、受信した第2のアンチ・リプレイ・ノンスを第1のデバイスに送信する。
第1のデバイスにおいて、受信した第2のアンチ・リプレイ・ノンスと受信したIntermediate Bilocation Keyとの組み合わせに基づいて、Bilocation Keyを生成する。
ここで、第1のデバイスと第2のデバイスはそれぞれ、少なくともIntermediate Bilocation Keyに基づいて、両者間にFinal Keyを確立する。
【請求項8】
クレーム5から7のコンピュータ実装方法はさらに、第1のキーノードにおいて、第1のデバイスがBilocation Keyを計算する際に使用するIntermediate Bilocation Keyの確立を含んでいる。このIntermediate Bilocation Keyの確立は、以下の事を含んでいる。
第1のキーノードにおいて、第1のデバイスから、Intermediate Bilocation Keyを生成するためのIntermediate Bilocation Key要求を受信する。その要求には、第2のデバイスの識別情報、第2のキーノードの識別情報、および第2のデバイスによって生成された第1のランダムノンスと第1のデバイスによって生成された第2のランダムノンスとから導出される第3のノンスに関する代表的なデータが含まれている。
第1のキーノードにおいて、少なくとも第2のデバイスの識別情報、第2のキーノードの識別情報、第1のデバイスの識別情報、第1のキーノードの識別情報、および第3のノンスに関する代表的なデータに基づきインプットを行い、第1のキーノードによってアクセス可能なキーの集合からキーを選択する。第1の鍵ノードによってアクセス可能なキーの集合は、第2のキーノードによってアクセス可能なキーの集合と同じである。
第1のキーノードにおいて、第1のランダム アンチ・リプレイ・ノンスを生成する。同じく、第1のキーノードにおいて、選択されたキー、第1のアンチ・リプレイ・ノンス、第2のデバイスの識別情報、第2のキーノードの識別情報、第1のデバイスの識別情報、第1のキーノードの識別情報、および第3のノンスに基づいて、Intermediate Bilocation Keyを生成する。
第1のキーノードから第1のデバイスへ、Intermediate Bilocation Keyと第1のアンチリプレイ・ノンスを送信する。
【請求項9】
クレーム5から8のコンピュータ実装方法はさらに、第2のキーノードにおいて、第2のデバイスがキーを計算する際に使用するためのIntermediate Bilocation Keyの確立を含んでいる。Intermediate Bilocation Keyの確立は以下のことを含んでいる。
第2のキーノードにおいて、第2のデバイスからBilocation Keyの要求を受信する。この要求には、第1のデバイスの識別情報、第1のキーノードの識別情報、第2のデバイスによって生成された第1のランダムノンス、および第1のデバイスによって生成された第2のランダムノンスから導出された第3のノンス、および第2のデバイスにおいて第1のデバイスから受信された第1のアンチ・リプレイ・ノンスに関する代表的なデータが含まれている。
少なくとも第2のデバイスの識別情報、第2のキーノードの識別情報、第1のデバイスの識別情報、第1のキーノードの識別情報、および第3のノンスに基づくキー選択アルゴリズムを使用して、第2のキーノードによってアクセス可能な一連のキーからキーを選択する。第1のキーノードがアクセス可能な一連のキーは、第2のキーノードがアクセス可能なキーと同じである。
第2のキーノードにおいて、選択されたキー、第1のアンチ・リプレイ・ノンス、第2のデバイスの識別情報、第2のキーノードの識別情報、第1のデバイスの識別情報、第1のキーノードの識別情報、および第3のノンスに基づいて、Intermediate Bilocation Keyを生成する。
第2のキーノードにおいて、第2のランダムなアンチ・リプレイ・ノンスを生成し、第2のキーノードにおいて、Intermediate Bilocation Keyと第2のアンチ・リプレイ・ノンスの組み合わせに基づいて、Bilocation Keyを生成する。
第2のキーノードから第2のデバイスに、Bilocation Keyと第2のアンチ・リプレイ・ノンスの代表データを送信する。
【請求項10】
クレーム5から9のコンピュータ実装方法はさらに、第1のデバイスからIntermediate Bilocation Keyの要求を送信する際に以下のことを含む。。
第1のデバイスによって、第2のランダムノンスN_Iを生成し、第1のデバイスによって、第2のランダムノンスN_Iと第1のランダムノンスN_Rに基づいて第3のノンスN_IRを生成する。;
第1のデバイスによって、少なくとも、第2のデバイスのID_R、第2のキーノードのID_KID_R、および第3のノンスN_IR’の代表データに基づいて、第1の不完全リンク情報データパケットL_Iを作成する、
第1のデバイスから第1のキーノードへ、Intermediate Bilocation Keyの要求を送信する。
【請求項11】
クレーム10のコンピュータ実装方法では、第1の不完全リンク情報パケットは、L_I={ID_R,KID_R,N_IR}の形をとる。
【請求項12】
クレーム10のコンピュータ実装方法では、第3のノンスN_IRの代表データは、第3のノンスN_IR’のハッシュの代表データを含んでいる。
【請求項13】
クレーム12のコンピュータ実装方法では、第1の不完全リンク情報パケットは、L_I={ID_R,KID_R,N_IR’}の形をとる。
【請求項14】
クレーム10から13のいずれかに記載のコンピュータ実施方法では、第1のキーノードはIntermediate Bilocation Keyを確立し、さらに以下のことを含む。
第1のキーノードにおいて、第1のデバイスから、Intermediate Bilocation Keyを受信する。
第1のキーノードが、少なくとも第1のデバイスの識別情報ID_I、第1のキーノードの識別情報KID_I、受信した第1の不完全リンク情報パケットL_Iを代表するデータを使用して、第1の完全リンク情報データパケットL_Iを生成する。
第1のキーノードは、#(L’)で示されるL’のハッシュを計算し、#(L’)を、第1のキーノードと第2のキーノードに関連付けられたキーのセットを選択するためのインデックスとして使用する。
第1のキーノードが、完全なリンクインフォL’に適用されるキー選択関数を使用して、第1のキーノードによってアクセス可能なキーのセットからキーK_Qを選択する;
第1のキーノードが、第1のランダム アンチ・リプレイ・ノンス N_REPI を生成する。
第1のキーノードが、第2のキーノードのID_Rに基づいて、第2のキーノードに関連付けられたIDキーK_Rのルックアップを実行する。
第1のキーノードによって、第1のキーノードに関連付けられたIDキーK_Iのルックアップを実行する。
第1の完全なリンク情報、選択されたキーK_Q、第1のキーノードの識別キーK_I、第2のキーノードの識別キーK_R、および第1のアンチ・リプレイ・ノンスN_REPIの代表データを組み合わせて、第1のキーノードによって、Intermediate Bilocation Key K_IBKを作成する。
第1のキーノードから第1のデバイスへ、Intermediate Bilocation Key K_IBKと第1のアンチ・リプレイ・ノンスN_REPIを送信する。
【請求項15】
クレーム10または11に従属するクレーム14に記載のコンピュータ実装方法では、第1の完全なリンク情報パケットは、L’=(ID_I||KID_I||L_I.ID_R||L_I.KID_R||L_I.N_IR)の形をとり、||は連結を示す。
【請求項16】
クレーム12または13に従属するクレーム14に記載のコンピュータ実装方法では、第1の完全なリンク情報パケットは、L’=(ID_I||KID_I||L_I.ID_R||L_I.KID_R||L_I.N_IR’)の形をとり、||は連結を示す。
【請求項17】
クレーム14から16のいずれかに記載のコンピュータ実装方法では、Intermediate Bilocation Key K_ISは、K_IS=#(K_Q,#(L’),N_REPI) XOR K_I XOR K_Rに基づいて作成される。
【請求項18】
クレーム14から17のいずれかに記載のコンピュータ実装方法では、キー選択機能は、以下のうちの1つ以上を含む。N>=1ならば#(L’)の最下位Nビットを選択する。N>=1ならば、#(L’)の最上位Nビットを選択する。N>=1ならば、#(L’)のNビットの特定部分を選択する。N>=1ならば、#(L’)の最下位Nビットを選択する。N>=1ならば、#(L’)の最下位Nビットを選択する。N>=1ならば、キー一式からキー選択するための特定インデックスの生成に適した他の選択関数または#(L)を表す配列内の任意の数の要素から選択するように構成された他の任意関数。
【請求項19】
クレーム5から18に記載のコンピュータ実装方法では、第2のデバイスから、Bilocation Keyリクエストを送信する際にをさらに以下の事を含む。
第1のデバイスから第2のデバイスで、第2のランダムノンスN_Iと第1のアンチ・リプレイ・ノンスN_REPIを受信する。
第2のデバイスによって、第2のランダムノンスN_Iと第1のランダムノンスN
Rに基づいて、第3のノンスN_IRを生成する。
第2のデバイスによって、少なくとも第1のデバイスのID_I、第1のキーノードのID_KID_I、および第3のノンスN_IR’の代表データに基づいて、第2の不完全リンク情報データパケットL_Rを作成する。
第2のデバイスから第2のキーノードに、第2の不完全リンク情報データパケットL_Rと、第1のアンチ・リプレイ・ノンスN_REPIの代表データを含む、Bilocation Keyの要求を送信する。
【請求項20】
クレーム19のコンピュータ実装方法では、第2の不完全リンク情報パケットは、L_R={ID_I,KID_I,N_IR}の形式をとる。
【請求項21】
クレーム19に記載のコンピュータ実装方法では、第3のノンスN_IRの代表データは、第3のノンスN_IR’のハッシュの代表データを含む。
【請求項22】
クレーム21に記載のコンピュータ実装方法では、第1の不完全リンク情報パケットは、L_I={ID_R,KID_R,N_IR’}の形式をとる。
【請求項23】
クレーム19から22のいずれかに記載のコンピュータ実施方法では、第2のキーノードは、Bilocation Keyを確立する際にさらに下記の事を含む。
第2のデバイスは、第2のキーノードで、第2の不完全リンク情報データパケットL_Rと、第1のアンチ・リプレイ・ノンスN_REPIの代表データを含む、Bilocation Keyの要求を受信する。
第2のキーノードは、少なくとも、第2のデバイスの識別情報ID_R、第2のキーノードの識別情報KID_R、および受信した第2の不完全リンク情報パケットL_Rの代表データを使用して、第2の完全リンク情報データパケットL’を生成する。
第2のキーノードは、#(L’)で示されるL’のハッシュを計算し、#(L’)を第2のキーノードと第1のキーノードに関連付けられたキー一式を選択するためのインデックスとして使用する。
第2のキーノードは、第2の完全リンク情報L’に適用されるキー選択関数を使用して、第2のキーノードのキー一式からキーK_Qを選択する。
第2のキーノードは、第2のランダムアンチ・リプレイ・ノンス N_REPRを生成する。
第2のキーノードは、第1のキーノードの識別情報KID_Iに基づいて、第1のキーノードに関連付けられた識別情報K_Iのルックアップを実行する。
第2のキーノードは、第2のキーノードに関連付けられた識別キーK_Rのルックアップを実行する。
第2の完全なリンク情報と選択されたキーのデータを組み合わせて、第2のキーノードがIntermediate Bilocation Key K_IBKを作成する。
K_Qは第1のキーノードの識別キーを、K_Iは第2のキーノードの識別キーを、K_Rは第1のアンチ・リプレイ・ノンスを、そしてN_REPIは、
第2の鍵ノードが、次のデータを結合することに基づいて、Bilocation Key K_BKを生成する。つまり、Intermediate Bilocation Key K_IBKと、第2のアンチ・リプレイ・ノンスN_REPRを生成する。そして、
第2のキーノードから第2のデバイスへ、Bilocation Key K_BKと第2のアンチ・リプレイ・ノンスN_REPRを送信する。
【請求項24】
クレーム19または20に従属するクレーム23のコンピュータ実装方法では、第2の完全なリンク情報パケットは、L’=(L_R.ID_I||L_R.KID_I||ID_R||KID_R||L_R.N_IR)の形をとり、||は連結を示す。
【請求項25】
クレーム21または22に従属するクレーム23のコンピュータ実装方法では、第2の完全なリンク情報パケットは、L’=(L_R.ID_I||L_R.KID_I||ID_R||KID_R||L_R.N_IR’)の形をとり、||は連結を示す。
【請求項26】
クレーム23から25のいずれかに記載のコンピュータ実装方法では、Intermediate Bilocation Key K_IBKは、K_IBK=#(K_Q,#(L’),N_REPI)XOR K_I XOR K_Rに基づいて作成される。
【請求項27】
クレーム23から26のいずれかのコンピュータ実装方法では、Bilocation KeyであるK_BKは、K_BK=#(K_IBK,N_REPR)に基づいて作成される。
【請求項28】
クレーム27のコンピュータ実装方法では、Bilocation Key K_BKのは、最終的なIntermediate Bilocation Key K_BK’の生成を含む。
【請求項29】
請求項28のコンピュータ実装方法では、最終的なBilocation KeyであるK_BK’が、K_BK’=#(N_IR,K_BK)’に基づいて作成される。
【請求項30】
先のクレームのいずれかのコンピュータ実装方法では、Final Keyは、第1および第2のデバイスの各々によって、対応するBilocation Keyと合意されたノンスとの組み合わせに基づいて計算される。
【請求項31】
31クレーム28または29のコンピュータ実装方法では、Final Keyは、第1および第2のデバイスの各々によって、対応する最終的なBilocation Keyと合意されたノンスとの結合に基づいて計算される。
【請求項32】
先のクレームのいずれかのコンピュータ実装方法では、第2のデバイスによる、ノンスN_Tの生成とノンスN_Tの第1のデバイスへの送信をさらに含んでおり、さらなるノンスがFinal Keyを計算するために使用される。
【請求項33】
クレーム32のコンピュータ実装方法では、Final Keyは、以下のグループからの1つに基づいて計算される。すなわち、K_S=K_BK×OR・N_T、K_S=K_BK×OR・K_EN×OR・N_T、K_BK’×OR・N_T、K_S=K_BK’×OR・K_EN×OR・N_T(K_ENは第1および第2のデバイス間で使用される暗号化キー)、K_S=K_BK×OR・K_TLS×OR・N_T、K_S=K_BK’×OR・K_TLS×OR・N_T(K_TLSは第1および第2のデバイス間で使用されるTLSセッションキー)。
【請求項34】
先のいずれかのコンピュータ実装方法では、Final Keyは、第1および第2のデバイスの各々によって、対応するBilocation Key K_BKから導出される中間キー値K_Xと、Final Keyに合意するために使用されるチャレンジ・レスポンス・プロトコルとに基づいて計算され、チャレンジ・レスポンス・プロトコルはさらに以下を含む。
第1のデバイスで、第1のチャレンジ・ノンスC_Iを作成する
第2のデバイスで、第2のチャレンジ・ノンスC_Rを作成する
第1のデバイスから第2のデバイスに、第1のチャレンジ・ノンスC_Iを送信する
第2のデバイスから第1のデバイスに、第2のチャレンジ・ノンスC_Rを送信する
第1のデバイスにおいて、以下の値に基づいてC_Iおよび受信したC_Rを使用して、第1の符号付き応答を計算する。
X_I=#(K_X,C_I,0);X_R=#(K_X,C_R,1);R_I=#(X_I,C_R);R_R=#(X_R,C_I)
(ここの#はハッシュ関数)
第2のデバイスにおいて、以下の値に基づいて、C_Rと受信したC_Iを使用して第2の符号付き応答を計算する。
X_I=#(K_X,C_I,0);X_R=#(K_X,C_R,1);R_I=#(X_I,C_R);R_R=#(X_R,C_I)
(ここの#は第1のデバイスで使用されたものと同じハッシュ関数)
第1のデバイスから第2のデバイスに、第1の署名付き応答R_Iを送信し、第2のデバイスから第1のデバイスに、第2の署名付き応答R_Rを送信し、第1のデバイスにおいて、第2のデバイスから受信したR_Rが、第1のデバイスによって計算されたR_Rの値と一致すると判断したことに応答して、K_S=X_I XOR X_RとしてFinal Keyを計算する。
第2のデバイスにおいて、第1のデバイスから受信したR_Iが、第2のデバイスによって計算されたR_Iの値と一致すると判断したことに応答して、K_S=X_I XOR X_RとしてFinal Keyを計算する。
受信した署名付き応答が、計算された署名付き応答と一致しないと判断された場合には、第1のデバイスおよび/または第2のデバイスのいずれかに応答して、接続を放棄する。
【請求項35】
クレーム34のコンピュータ実装方法では、中間キー値K_Xは、以下のグループからの少なくとも1つに基づいて、第1および第2のデバイスの両方で計算される。
K_X=K_BK;
K_X=#(K_BK,K_TLS)
(ここでK_TLSは、第1デバイスと第2デバイスの間のTLSセッションキー)
K_X=K_BK XOR K_TLS
(ここでK_TLSは第1と第2のデバイス間のTLSセッションキー)
K_X=#(K_BK, K_EN)
(ここでK_ENは第1と第2のデバイス間で共有されるキー)
K_X=K_BK XOR K_EN
(ここでK_ENは第1および第2のデバイス間で共有されるキー)
そして、K_BKを第1および第2のデバイスの両方が知っている1つまたは複数の合意された値で変更するための他の関数。
【請求項36】
クレーム28またはクレーム28に従属するクレーム29からクレーム33いずれかのコンピュータ実装方法では、Final Keyは、第1および第2のデバイスの各々によって、対応する最終的なBilocation Key K_BK’から導出される中間キー値K_Xと、Final Keyを合意するために使用されるチャレンジ応答プロトコルとに基づいて計算され、チャレンジ応答プロトコルはさらに以下を含む。
第1のデバイスで、第1のチャレンジ・ノンスC_Iを作成する
第2のデバイスで、第2のチャレンジ・ノンスC_Rを作成する
第1のデバイスから第2のデバイスに第1のチャレンジ・ノンスC_Iを送信する
第2のデバイスから第1のデバイスに第2のチャレンジ・ノンスC_Rを送信する
第1のデバイスにおいて、以下の値に基づいて、C_Iおよび受信したC_Rを使用して、第1の符号付き応答を計算する
X_I=#(K_X,C_I,0);X_R=#(K_X,C_R,1);R_I=#(X_I,C_R);R_R=#(X_R,C_I)
(ここで#はハッシュ関数)
第2のデバイスにおいて、以下の値に基づいて、C_Rと受信したC_Iを使用して第2の符号付き応答を計算する
X_I=#(K_X,C_I,0);X_R=#(K_X,C_R,1);R_I=#(X_I,C_R);R_R=#(X_R,C_I)
(ここで#は第1のデバイスで使用されたものと同じハッシュ関数)
第1のデバイスから第2のデバイスへ、第1の署名付きレスポンスR_Iを送信し、第2のデバイスから第1のデバイスへ、第2の署名付きレスポンスR_Rを送信し、第2のデバイスから受信したR_Rが第1のデバイスによって計算されたR_Rの値と一致すると第1のデバイスで判断したことに応答して、K_S=X_IXORX_R、またはK_S=#(X_I,X_R)としてFinal Keyを計算する。
第2のデバイスにおいて、第1のデバイスから受信したR_Iが、第2のデバイスによって計算されたR_Iの値と一致すると判断したことに応答して、K_S=X_IXORX_RまたはK_S=#(X_I,X_R)としてFinal Keyを計算する。
受信した署名付き応答が、計算された署名付き応答と一致しないと判断した場合には、第1のデバイスおよび/または第2のデバイスのいずれかに応答して、接続を放棄する。
【請求項37】
クレーム36のコンピュータ実装方法において、中間キー値K_Xは、以下のグループからの少なくとも1つに基づいて、第1および第2のデバイスの両方で計算される。
K_X=K_BK’:
K_X=#(K_BK’,K_TLS)
(ここでK_TLSは第1デバイスと第2デバイス間のTLSセッションキー)
K_X=K_BK’XORK_TLS
(ここでK_TLSは第1と第2のデバイス間のTLSセッションキー)
K_X=#(K_BK’,K_EN)
(ここでK_ENは第1と第2のデバイス間で共有されるキー)
K_X=K_BK’XORK_ENであり、K_ENは第1および第2のデバイス間で共有されるキーである。
そして、K_BKを第1および第2のデバイスの両方が知っている1つまたは複数の合意された値で変更するための他の関数。
【請求項38】
先のクレームのいずれかのコンピュータ実装方法では、第3のノンスは、第1のランダムノンスと第2のランダムノンスとの排他的論理和(XOR)演算に基づいて計算される。
【請求項39】
第1のデバイスによって実行される本方法は、ネットワークを使用して第1のデバイスと第2のデバイスとの間でキーを確立するコンピュータ実装方法である。ネットワークは、第1のキーノードと第2のキーノードとを含み、第1のキーノードは、一連のキーにアクセスするためのものであり、第2のキーノードは、同じ一連のキーにアクセスするためのものである。
そして、以下の事を含む。
第1のデバイスにおいて、第1のキーノードおよび第2のデバイスから、少なくとも第1のキー確立データの代表データを受信し、Bilocation Keyを計算するのに使用する。Bilocation Keyは、第1のキーノードおよび第2のキーノード一式から選び出されたキーに基づいている。
第2のデバイスが、第2のキーノードにBilocation Keyを要求する際に使用するために、少なくとも第1のデバイスから第2のキー確立データの代表データを受信する。Bilocation Keyは、第2のキーノードのキー一式からら選び出されたキーに基づいて第2のキーノードによって計算される。
ここで、第1および第2のデバイスは、それぞれ対応するBilocation Keyを使用して、第1と第2のキー確立データの合意された部分に基づいてFinal Keyを生成する。
【請求項40】
クレーム39のコンピュータ実装方法では、クレーム1から38のいずれか1つにおいて、第1のデバイスで実行されるコンピュータ実装方法をさらに含んでいる。
【請求項41】
第1のデバイスによって実行される本方法は、ネットワークを使用して第1のデバイスと第2のデバイスとの間でキーを確立するコンピュータ実装方法である。ネットワークは、第1のキーノードと第2のキーノードを含み、第1のキーノードは、キー一式にアクセスするためのものであり、第2の鍵ノードは、同じ鍵のセットにアクセスするためのものである。そして、以下の事を含む。
Bilocation Keyを計算するのに使用する目的で、第1のデバイスにおいて、第1のキーノードおよび第2のデバイスから、少なくとも第1のキー確立データの代表データを受信する。Bilocation Keyは、第1のキーノードおよび第2のキーノードのキー一式から選び出されたキーに基づいている。
第2のデバイスは、第2のキーノードにBilocation Keyを要求する際に使用するために、少なくとも第1のデバイスから第2のキー確立データの代表データを受信する。Bilocation Keyは、第2のキーノードのキー一式から選択されたキーに基づいて第2のキーノードによって計算される。
ここで、第1および第2のデバイスは、それぞれ対応するBilocation Keyを使用して最終的なBilocation Keyを生成し、それぞれの最終的なBilocation Keyを使用して、第1のキー確立データおよび第2のキー確立データの合意された部分に基づいてFinal Keyを生成する。
【請求項42】
クレーム41のコンピュータ実装方法では、クレーム1から38のいずれか一つにおいて、第1のデバイスで実行されるコンピュータ実装方法をさらに含んでいる。
【請求項43】
第2のデバイスによって実行される本方法は、ネットワークを使用して第1のデバイスと第2のデバイスの間でキーを確立するコンピュータ実装方法である。ネットワークは、第1のキーノードと第2のキーノードを含み、第1のキーノードは、キー一式にアクセスするためのものである。第2のキーノードも、同じキー一式にアクセスするためのものであり、以下の事を含んでいる。
第1のデバイスが、少なくとも第1のキーノードと第2のデバイスから、第1のキーの確立データの代表データを受信し、Bilocation Keyを計算するのに使用する。Bilocation Keyは、第1のキーノードと第2のキーノードのキー一式から選び出されたキーに基づいている。
第2のデバイスにおいて、第2のキーノードに第2のキーを要求する際に使用するために、少なくとも第1のデバイスから第2のキーの確立データの代表データを受信する。第2のキーノードは、第2のキーノード一式から選択されたキーに基づいて、第2のキーノードによって、第2のキーノードから第2のキーの確立データが計算される。
ここで、第1および第2のデバイスは、それぞれ対応するBilocation Keyを使用して、第1のキー確立データおよび第2のキー確立データの合意された部分に基づいてFinal Keyを生成する。
【請求項44】
クレーム43のコンピュータ実装方法では、クレーム1から38のいずれか一項に記載の第2のデバイスで実行されるコンピュータ実装方法をさらに含む。
【請求項45】
第1のキーノードによって実行される本方法は、ネットワークを使用して第1のデバイスと第2のデバイスの間でキーを確立するコンピュータ実装方法である。ネットワークは第1のキーノードと第2のキーノードを含み、第1のキーノードはキーセットにアクセスするように構成され、第2のキーノードも同じキーセットにアクセスするように構成されており、以下の事を含んでいる。
第1のデバイスからIntermediate Bilocation Keyの要求を受信する。この要求には、第1のデバイスが第2のデバイスから受信した第1のキー確立データの一部を代表するデータを含み、第1のデバイスによるBilocation Keyの計算に使用される。Bilocation Keyは、第1のキーノードおよび第2のキーノードのキーセットから選び出された鍵に基づいている。
受信した要求データとキーセットから選び出されたキーに基づいてIntermediate Bilocation Keyが計算され、Intermediate Bilocation Keyと第1のアンチ・プレイ・ノンスが確立される。
Bilocation Keyの計算に使用するために、Intermediate Bilocation Keyと第1のアンチリ・プレイ・ノンスを第1のデバイスに送信する。
ここで、第1および第2のデバイスは、それぞれ対応するBilocation Keyを使用して、第1のキー確立データおよび第2のキー確立データの合意された部分に基づいてFinal Keyを生成する。
【請求項46】
クレーム45のコンピュータ実装方法では、クレーム1から38のいずれか一項に記載の第1のキーノードで実行されるコンピュータ実施方法をさらに含む。
【請求項47】
本方法は、ネットワークを使用して第1のデバイスと第2のデバイスの間でキーを確立するコンピュータ実装方法で、ネットワークは第1のキーノードと第2のキーノードを含む。第1のキーノードはキーセットを含み、第2のキーノードも同じキーセットを含む。
第2のデバイスから第2のキーの要求を受信する。この要求には、第2のキーの確立データの一部を代表するデータを含み、第2のキーの確立データを第2のデバイスが少なくとも第1のデバイスから受信して、第2のキーの確立を要求するために使用する。
受信したリクエストデータとキーのセットから選び出されたキーに基づきIntermediate Bilocation Keyが確立される。
確立されたIntermediate Bilocation Keyと第2のアンチ・リプレイ・ノンスに基づいてBilocation Keyを確立する。
Bilocation Keyと第2のアンチ・リプレイ・ノンスを第2のデバイスに送信する。
ここで、第1および第2のデバイスは、それぞれ対応するBilocation Keyを使用して、第1のキー確立データおよび第2のキー確立データの合意された部分に基づいてFinal Keyを生成する。
【請求項48】
クレーム47のコンピュータ実装方法では、クレーム1から38のいずれか一項に記載の第2のキーノードで実行されるコンピュータ実装方法にさらに下記の事を含む。
【請求項49】
ネットワークを使用して第1のデバイスと第2のデバイスの間でキーを確立するコンピュータ実装方法において、ネットワークは第1のキーノードと第2のキーノードを含み、第1のキーノードはキー一式を、第2のキーノードも同様のキー一式を含み、第2のキーノードによって実行される。この方法は下記の事を含んでいる。
第2のデバイスからBilocation Keyの要求を受信する。この要求には、第2のキーの確立データの一部を代表するデータを含み、このデータは、Bilocation Keyを要求するために使用する目的で、第2のデバイスが少なくとも第1のデバイスから受信したものである。
受信した要求データとキーセットから選び出されたキーに基づき、Intermediate Bilocation Keyを確立する。
確立されたIntermediate Bilocation Keyと第2のアンチ・リプレイ・ノンスに基づいて、Intermediate Bilocation Keyを確立する。
第1および第2のデバイスが、対応するBilocation Keyを使用してそれぞれ最終的なBilocation Keyを生成する。この最終的なBilocation Keyを使用して、第1のキー確立データと第2のキー確立データの合意された部分に基づいて、それぞれのFinal Keyを生成する。
【請求項50】
クレーム49に記載のコンピュータ実装方法では、クレーム1から38のいずれか一項に記載の第2のキーノードで実行されるコンピュータ実装方法を含む。
【請求項51】
先のクレームのいずれかのコンピュータ実装方法では、各キーノードは、量子セキュアネットワークの一部であり、各キーセットは、量子キー配布システムを使用して配信される量子配信キーセットである。
【請求項52】
クレーム1ないし50のいずれかに載のコンピュータ実装方法では、各キーノードは古典的セキュアネットワークの一部であり、各キーセットまたは分散キーは古典的キー配布システムを用いて配布される。
【請求項53】
クレーム51に記載のコンピュータ実装方法では、量子キー配布システムは、以下から選択される少なくとも1つを含み得る。
衛星量子キー配布システム
地上光-量子キー配布システム、または
量子セキュアまたは量子セキュアな方法で、量子キーセットを第1および第2のキーノードに配布することができる任意の量子キー配信システム。
【請求項54】
前記クレームのいずれかに記載のコンピュータ実装方法では、第1のデバイスと第1のキーノードとの間の通信は、第1の量子セキュアチャネルを介して実行される。
第2のデバイスと第2のキーノードとの間の通信は、第2の量子セキュアチャネルを介して実行される。
古典的な通信チャネルを介したFinal Keyの確立中に、第1のデバイスと第2のデバイスの間で通信が実行される。
【請求項55】
先行するクレームのいずれかに記載のコンピュータ実施方法では、キー一式がワンタイムパッドキー一式となる。
【請求項56】
クレーム54または55に記載のコンピュータ実装方法では、古典的通信チャネルが標準暗号化通信チャネルである。
【請求項57】
先行するクレームのいずれかに記載のコンピュータ実装方法では、第1のキーノードと第2のキーノードが異なる地理的位置にあり、第1のキーノードが第2のキーノードと異なる。
【請求項58】
クレーム1から56のいずれかに記載のコンピュータ実装方法では、第1のキーノードと第2のキーノードが同じ地理的位置に配置されている。
【請求項59】
クレーム1から56、または58のいずれかに記載のコンピュータ実装方法では、第1のキーノードと第2のキーノードが同じ論理位置に配置される。
【請求項60】
クレーム1から56、58または59のいずれか1項に記載のコンピュータ実装方法では、第1のキーノードと第2のキーノードが同じキーノードであり、キーのセットは第1のキーノードと第2のキーノードによってのみ知られている。
【請求項61】
クレーム1から56、58、59または60のいずれか1項に記載のコンピュータ実装方法では、第1のキーノードと第2のキーノードが同一の論理キーノードであり、論理キーノードのキーのセットがそれ自身と共有されているか、論理キーノードだけが所有しており、選択されたキーが論理キーノードだけが知っているキーのセットから選択される。
【請求項62】
対応するステップを実施するように適合されているプロセッサユニットと、メモリユニットと、通信インターフェースとを備える装置である。プロセッサユニットは、メモリユニットと通信インターフェースに接続され、プロセッサユニットとメモリユニットと通信インターフェースはクレーム1から61のいずれかに記載のコンピュータ実装方法の対応するステップを実装するように適合されている。
【請求項63】
第1のデバイスおよび第2のデバイスと、セキュア・ネットワークを含むシステムである。セキュア・ネットワークは、第1のキーノードおよび第2のキーノードを含み、第1のキーノードは、キーセットを含むか、またはキーセットにアクセスする。第2の鍵ノードも、同じキーセットを含むか、またはキーセットにアクセスする。第1のデバイス、第2のデバイス、および第2のキーノードは、プロセッサ・ユニット、メモリ・ユニット、および通信インターフェースを含み、プロセッサ・ユニットは、メモリ・ユニットおよび通信インターフェースに接続されている。システム、第1のキーノードおよび第2のキーノードの各々は、プロセッサユニット、メモリユニット、および通信インタフェースを含み、プロセッサユニットは、前記メモリユニットおよび通信インタフェースに接続され、プロセッサユニット、メモリユニット、および通信インタフェースは、クレーム1から61のいずれかに記載のコンピュータ実装方法の対応するステップを実装するように適合されている。
【請求項64】
第1のデバイスは、プロセッサユニットと、メモリユニットと、通信インターフェースを備え、プロセッサユニットは、メモリユニットと通信インターフェースとに接続されており、プロセッサユニットとメモリユニットと通信インターフェースは、請求項1から61のいずれかに記載のコンピュータ実装方法の対応するステップを実施するように適合されている。
【請求項65】
第2のデバイスは、プロセッサユニット、メモリユニットと通信インターフェースを備える第2のデバイスであって、プロセッサユニットは、メモリユニットと通信インターフェースとに接続されており、プロセッサユニット、メモリユニット、および通信インターフェースは、請求項1から61のいずれかに記載のコンピュータ実装方法の対応するステップを実施するように適合されている。
【請求項66】
プロセッサユニットと、メモリユニットと、通信インターフェースとを備える第1のキーノードでは、プロセッサユニットは、メモリユニット及び通信インターフェースに接続され、プロセッサユニット、メモリユニット及び通信インターフェースは、クレーム1から61のいずれかに記載のコンピュータ実装方法に対応するステップを実施するように適合される。
【請求項67】
プロセッサユニットと、メモリユニットと、通信インターフェースとを備える第2のキーノードでは、プロセッサユニットは、メモリユニットと通信インターフェースとに接続されており、プロセッサユニット、メモリユニット、通信インターフェースは、クレーム1から61のいずれかに記載のコンピュータ実装方法に対応するステップを実施するように適合されている。
【請求項68】
システム:
請求項64に記載の装置を含む第1の装置
請求項65に記載の装置を含む第2の装置
請求項66に記載の装置からなる第1のキーノードおよび
請求項67に記載の装置からなる第2のキーノード
ここで、第1のデバイスと第2のデバイスは、第1のデバイスと第2のデバイス間の通信セッションのためのFinal Keyを確立するために、標準通信チャネルを介して互いに通信し、対応する量子セキュアチャネルを介して第1のキーノードと第2のキーノードとそれぞれ通信するように構成される。
【請求項69】
クレーム68に記載のシステムにおいて、システムは、複数の衛星を含む衛星量子キー配布システムであり、各衛星は量子キー配布の機能を含み、各衛星は1つ以上の地上受信局と通信し、各地上受信局は量子セキュアチャネルを介して第1および第2のキーノードの1つに結合または接続されることを特徴とするシステムである。
【請求項70】
クレーム68に記載のシステムにおいて、システムは、複数の地上量子トランシーバを含む地上量子キー配信システムであり、各トランシーバは、量子キー配信の機能を含み、量子セキュアチャネルを介して第1および第2のキーノードの一方に結合または接続されることを特徴とするシステムである。
【請求項71】
システム:
請求項64に記載の装置を含む第1の装置
請求項65に記載の装置を含む第2の装置
請求項66に記載の装置からなる第1のキーノードおよび
請求項67に記載の装置からなる第2のキーノード
ここで、第1のデバイスと第2のデバイスは、第1のデバイスと第2のデバイス間の通信セッションのためのFinal Keyを確立するために、標準通信チャネルを介して互いに通信し、対応する古典的に安全なチャネルを介して第1のキーノードと第2のキーノードとそれぞれ通信するように構成される。
【請求項72】
クレーム71に記載のシステムは、第1および第2のキーノードに対して、古典的に安全なチャネルを介して安全なキーを配布する機能を含む古典的キー配布システムを含むシステムである。
【請求項73】
プロセッサ上で実行されると、プロセッサにクレーム1から61のいずれかに記載のコンピュータ実装方法を実行させ、コンピュータコードまたはその上に格納された命令を含むコンピュータ可読媒体である。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、鍵確立のためのシステム、装置、方法、およびその応用に関するものである。
【背景技術】
【0002】
量子鍵配布(QKD)は、暗号鍵を配布するための量子力学の要素を含む暗号QKDプロトコルを実装する安全な通信方法である。QKDは、2つの当事者だけが知っている共有のランダムな秘密鍵または暗号鍵を生成し、これを使用してメッセージを暗号化および復号化することを可能にする。衛星QKDシステムは、量子セキュアチャネルを使用して、同一の量子安全鍵を2つ以上のグローバル拠点に配信するため、衛星と受信地上局間の伝送中に盗聴者が鍵を傍受できないようにすることができる。これにより、大規模な組織や政府は、衛星QKDシステムの1つまたは複数の衛星から量子安全鍵を受信するために、世界中の戦略的な場所に独自の光地上受信機(OGR)を設置し、OGRのハードウェアセキュリティモジュール(HSM)から量子安全鍵を直接、量子安全通信および/または他のアプリケーションなどのインフラやソフトウェアアプリケーションに取り込むことができる。
【0003】
しかし、大多数の消費者、個人及び/又は組織にとって、OGRのセットをリースし、設置し、維持することに関連する初期費用及び複雑さは法外であり、そのようなものとして、衛星QKDシステム(又は光ファイバーリンク及び地上受信機を使用する地上QKDシステム)のような量子鍵配布(QKD)システムにアクセスすることはできない。
【0004】
確立された鍵に関連する鍵情報を交換する際に使用される、信頼された、または信頼されていない当事者によって、鍵が未知であるか、または未確認である、2つの当事者がその間に鍵を確立することを可能にする、または可能にする要望がある。また、確立された鍵は、例えば2つの当事者間の安全な通信、2つの当事者を含む当事者グループ間でグループ鍵を確立するための他のグループ鍵確立プロトコルで 使用するための2つの当事者間の共有鍵の確立、2つの当事者間の通信セッションの 安全確保、2つの当事者間の長寿命通信チャネルの確立、確立された鍵は、例えばMACなどを作成するために使用される2つの当事者間の署名秘密を形成することができるが、以下に限定されるものではない。確立された鍵は、両者間で署名秘密を形成することができる。(クラウド)サーバ);限定されないが、例えば2つの別個のクラウドサービスおよび/または2つの別個のアプリケーションのような2つのパーティで同じ確立された鍵を使用する;確立された鍵を2つのパーティに対する対称署名鍵として使用する;2つのパーティ間で確立された鍵は、2つのパーティの各々または2つのパーティ間などで実行される他の任意のタイプの暗号化、および/またはアプリケーションの要求に応じて使用することができる。QKDクラウドベースのインフラストラクチャ/ネットワークを介して提供されるQKDアプリケーション/サービスには、より多くの当事者、消費者、個人、および/または組織が、独自のOGRをリースおよびインストールする必要なく、信頼できる当事者によってホストされるクラウドベースのインフラストラクチャを介してQKDのパワーを利用できるようにする、または可能にするためのさらなる要望がある。特に、クラウドベースのインフラストラクチャの外部にいる2つの当事者が、2つの当事者間で量子安全な方法で安全に鍵を確立することを可能にするQKDサービスが望まれている。
【0005】
以下に説明する実施形態は、上述した公知のアプローチの欠点のいずれかまたはすべてを解決する実施形態に限定されない。
【発明の概要】
【0006】
本概要は、詳細な説明において後述される概念の一部を単純化して紹介するために提供される。本概要は、特許請求される主題の重要な特徴または本質的な特徴を特定することを意図するものではなく、特許請求される主題の範囲を決定するために使用されることを意図するものでもない。本発明の実施を容易にし、および/または実質的に同様の技術的効果を達成するのに役立つ変形例および代替的な特徴は、本書に開示される本発明の範囲に含まれると考えられるべきである。
【0007】
本開示は、少なくとも2つの異なるシステム、エンドポイント、または当事者が、同じ共有鍵を要求すること、または同じ鍵を確立することを可能にする、鍵を確立または共有する方法、装置、およびシステムを提供する。この場合、第一のシステム、エンドポイント、または当事者は、通信システム(例えばQKD通信ネットワーク/システム)内のサーバおよび/または鍵サービングノードからそのコピーを導出するために必要な鍵情報を取得し、他の第二のシステム、エンドポイント、または当事者は、通信システム(例えばQKD通信ネットワーク)内の同じまたは異なる鍵サービングノードに接続された同じまたは異なるサーバからそのコピーを導出するために必要な鍵情報を安全に取得する。QKD通信ネットワーク/システムなど)において、共有鍵(共有鍵の導出にQKD鍵セットが使用される場合、QKD鍵などをクラウドサービスを通じて配信することができる。
【0008】
第1の態様において、本開示は、ネットワークにおいて第1のデバイスと第2のデバイスとの間で鍵を確立するコンピュータ実装方法を提供し、ネットワークは、第1の鍵ノードと第2の鍵ノードとを含み、第1の鍵ノードと第2の鍵ノードとは、同じ鍵セットにアクセスすることができ、本方法は、以下を含む:
第一のデバイスにおいて、少なくとも第一の鍵ノードと第二のデバイスから、第一の 鍵の確立データを代表するデータを受信する;また、第二のデバイスにおいて、少なくとも第一のデバイスから、第二の鍵ノードにBilocation鍵を要求する際に使用する第二の鍵確立データを代表するデータを受信し、Bilocation鍵は鍵セットから選択された鍵に基づいて計算される。第一のデバイスと第二のデバイスは、対応するBilocation鍵を使用して、第一の鍵確立データと第二の鍵確立データの合意された部分 に基づいて、それぞれ最終鍵を生成する。
【0009】
オプションとして、第1の側面によるコンピュータ実装方法であって、第1のデバイスと第2のデバイスは量子セキュアネットワークを使用し、量子セキュアネットワークは第1の鍵ノードと第2の鍵ノードを含み、第1の鍵ノードと第2の鍵ノードの鍵セットは同じ量子分散鍵セットであり、本方法はさらに以下を含む:第1のデバイスにおいて、バイロケーション鍵の計算に使用するために、少なくとも第1の鍵ノードおよび第2のデバイスから第1の鍵確立データを代表するデータを受信するステップであって、バイロケーション鍵は、量子分散鍵のセットから選択された量子分散鍵に基づく、ステップと第2のデバイスにおいて、少なくとも第1のデバイスから、第2の鍵ノードに「コロケーション鍵」を 要求するために使用する「第2の鍵確立データ」を受信し、「コロケーション鍵」は「量子分散鍵」のセットから選択された「量子分散鍵」に基づいて計算される。第1及び第2のデバイスは、対応する「コロケーション鍵」を使用して、それぞれ「第1の鍵確立データ」と「第2の鍵確立データ」の合意された部分に基づいて「最終鍵」を生成する。
【0010】
別の選択肢として、第1および第2のデバイスの各々は、対応するBilocation Keyと、その間の第1または第2のセッション確立データにおいて受信された1つまたは複数のランダムなNonceの合意された組み合わせとを組み合わせることに基づいて、最終鍵を計算する、第1の側面によるコンピュータ実装方法。
【0011】
別のオプションとして、第1の側面によるコンピュータ実装方法であって、最終鍵は、第1および第2のデバイスの各々によって、対応するBilocation Keyと、最終鍵に合意するために使用されるチャレンジ・レスポンス・プロトコルとの結果に基づいて計算される。
【0012】
オプションとして、第1の局面に従うコンピュータ実装方法は、第1のデバイスにおいて、第1のセッション確立データを代表するデータを受信することが、以下の工程をさらに含む。第2のデバイスと第1のハンドシェイクを実行して、第2のデバイスおよび第2の鍵ノードに関連付けられたIDデータを代表するデータと、第2のデバイスによって生成された第1のnonceとを受信する工程;第1の鍵ノードにIntermediate Bilocation鍵を要求するステップであって、要求が、取得されたIDデータを代表するデータと、受信された第1のノンスと第1のデバイスによって生成された第2のノンスとから計算された第3のノンスとを含み、第1の鍵ノードが、要求データと、鍵セットから選択された鍵とを使用して、中間バイロケーション鍵と第1のアンチリプレイノンスとを確立するステップと第二のデバイスが第二の鍵ノードから中間バイロケーション鍵と第二のアンチリプレイ・ノニ ースを受信した後、第二のデバイスから第二のアンチリプレイ・ノニースを受信するために、第二のデバイスとさらなるハンドシェイクを実行する。
【0013】
別の選択肢として、第1の態様によるコンピュータ実装方法は、第2のデバイスにおいて、第2のセッション確立データを代表するデータを受信することをさらに含む:第1のデバイスとの間で第2のハンドシェイクを実行し、第1のデバイスおよび第1の鍵ノードに関連付けられたIDデータ、ならびに第1のアンチリプレイ・ノンス、および第2のノンスを代表するデータを受信するステップと第二の鍵ノードにバイロケーション鍵を要求するステップであって、要求が、取得されたIDデータを代表するデータと、第一のノンスと第二のノンスから計算された第三のノンスと、第一のアンチリプレイ・ノンスとを含み、第二の鍵ノードが、要求のデータと、鍵セットから選択された鍵とを使用してバイロケーション鍵を生成するステップと、第二の鍵ノードからバイロケーション鍵を受信するステップと、第二の鍵ノードによって生成された第二のアンチリプレイ・ノンスを受信するステップとを含む。
【0014】
別の選択肢として、第1の側面によるコンピュータ実装方法は、第1のデバイスにおいて、第1のセッション確立データを代表するデータを受信することと、第1のデバイスによって、第2のデバイスに対して、第2のデバイスの識別情報、第2の鍵ノードの識別情報、および第2のデバイスによって生成された第1のノンスを代表するデータを提供するための第1のハンドシェイク要求を送信することと、第2のデバイスから、以下を代表するデータを受信することをさらに含む:生成された第一のノンス、第二のデバイスの識別情報、および第二の鍵ノードの識別情報 を代表するデータを第二のデバイスから受信するステップと、第一のデバイスによって第二のランダムノンスを生成するステップと、第一のデバイスから第一の鍵ノードに中間コロケーション鍵リクエストを送信するステップであって、中間コロケーション鍵リクエストは以下を代表する データを含む:ここで、中間バイロケーション鍵リクエストは、以下の代表的なデータを含む:第2のデバイスの識別情報、第2のノードの識別情報、第1および第2のノンスを結合した第3のノンス;第1のデバイスにおいて、第1の鍵ノードによって確立された中間バイロケーション鍵、および第1の鍵ノードによって生成された第1のアンチリプレイノンスを受信する;第1のデバイスによって、以下の代表的なデータを含む第2のハンドシェイクメッセージを第2のデバイスに送信する:第二のノンスと第一のアンチリプレイ・ノンス、第一のデバイスの識別情報、および第一の鍵ノードの識別情報、受信した第二のノンスと生成された第一のノンスに基づいて第三のノンスを第二のデバイスで生成する、第二のデバイスによって、第三のノンスと第一のアンチリプレイ・ノンスを代表するデータを含むBilocation Key Requestを第二の鍵ノードに送信する、第二の鍵ノードによって、第三のノンスと第一のアンチリプレイ・ノンスを代表するデータを含むBilocation Key Requestを第二の鍵ノードに送信する;第1のデバイスの認識情報、第1の鍵ノードの識別情報、第2のデバイスにおいて、第2の鍵ノードによって確立されたBilocation Keyと、第2の鍵ノードによって生成された第2のアンチリプレイ・ノニースを受信するステップであって、第2の鍵ノードは、第2のデバイスからの受信データに基づいて中間Bilocation Keyを生成し、中間Bilocation Keyと第2のアンチリプレイ・ノニースを組み合わせることに基づいて、Bilocation Keyを確立する、ステップ;第2のデバイスから、さらなるハンドシェイクメッセージで、受信した第2のアンチリプレイ・ノンスを第1のデバイスに送信し、第1のデバイスで、受信した第2のアンチリプレイ・ノンスと受信した中間コロケーション鍵との結合に基づいて、コロケーション鍵を生成し、第1のデバイスと第2のデバイスはそれぞれ、少なくともコロケーション鍵に基づいて、最終鍵を確立する。
【0015】
オプションとして、第1の局面によるコンピュータ実装方法は、第1の鍵ノードにおいて、第1のデバイスによって、ビロケーション鍵を計算する際に使用される中間ビロケーション鍵を確立することをさらに含み、中間ビロケーション鍵を確立することは、第1の鍵ノードにおいて、第1のデバイスから、中間ビロケーション鍵を生成するための中間ビロケーション鍵要求を受信することであって、要求が以下を代表するデータを含む、ことを含む:第二のデバイスの識別情報、第二の鍵ノードの識別情報、および第二のデバイスによって生成された第一のランダムノンスと第一のデバイスによって生成された第二のランダムノンスから導出された第三のノンス;第1の鍵ノードにおいて、少なくとも第2のデバイスの識別情報、第2の鍵ノードの識別情報、第1のデバイスの識別情報、第1の鍵ノードの識別情報、および第3のノンスを代表するデータに基づく入力を有する鍵選択関数を使用して、第1の鍵ノードによってアクセス可能な鍵の集合から鍵を選択するステップ(ここで、第1の鍵ノードによってアクセス可能な鍵の集合は、第2の鍵ノードによってアクセス可能な鍵の集合と同じである);第一の鍵ノードにおいて、第一のランダムなアンチリプレイ・ノニースを生成するステップと、第一の鍵ノードにおいて、選択された鍵、第一のアンチリプレイ・ノンス、第二のデバイスの身元、第二の鍵ノードの身元、第一のデバイスの身元、第一の鍵ノードの身元、および第三のノンスに基づいて、中間バイロケーション鍵を生成するステップと、第一の鍵ノードから第一のデバイスに、中間バイロケーション鍵および第一のアンチリプレイ・ノンスを送信するステップと、を含む。
【0016】
さらなる選択肢として、第1の局面によるコンピュータ実装方法は、第2の鍵ノードにおいて、第2のデバイスが鍵を計算する際に使用するためのバイロケーション鍵を確立することをさらに含み、バイロケーション鍵を確立することは、第2の鍵ノードにおいて、第2のデバイスから、バイロケーション鍵の要求を受信することであって、要求が以下を代表するデータを含む、ことを含む:第一のデバイスの識別情報、第一の鍵ノードの識別情報、第二のデバイスによって生成された第一のランダムノンスと第一のデバイスによって生成された第二のランダムノンスから派生した第三のノンス、および第一のデバイスから第二のデバイスで受信した第一のアンチプレーノンス;
少なくとも第2のデバイスの識別情報、第2の鍵ノードの識別情報、第1のデバイスの識別情報、第1の鍵ノードの識別情報、および第3のノンスに基づく鍵選択アルゴリズムを使用して、第2の鍵ノードによってアクセス可能な鍵のセットから鍵を選択するステップ(ここで、第1の鍵ノードによってアクセス可能な鍵のセットは、第2の鍵ノードによってアクセス可能な鍵のセットと同じである);第二の鍵ノードにおいて、選択された鍵、第一のアンチリプレイ・ノンス、第二のデバイスの識別情報、第二の鍵ノードの識別情報、第一のデバイスの識別情報、第一の鍵ノードの識別情報、および第三のノンスに基づいて、中間的なコロケーション鍵を生成する;第二の鍵ノードにおいて、第二のランダムなアンチ・リプレイ・ノニースを生成するステップと、第二の鍵ノードにおいて、中間コロケーション・キーと第二のアンチ・リプレイ・ノニースを組み合わせることに基づいて、コロケーション・キーを生成するステップと、第二の鍵ノードから第二のデバイスに、コロケーション・キーと第二のアンチ・リプレイ・ノニースを代表するデータを送信するステップ。
【0017】
任意選択で、第1のデバイスから、中間バイロケーション鍵要求を送信することは、第1のデバイスによって、第2のランダムノンスN_Iを生成することと、第1のデバイスによって、第2のランダムノンスN_Iおよび第1のランダムノンスN_Rに基づいて、第3のノンスN_IRを生成することと、第1のデバイスによって、少なくとも以下の代表的なデータに基づいて、第1の不完全リンクインフォデータパケットL_Iを作成することと、をさらに含む、第1の局面によるコンピュータ実装方法:第2のデバイスの識別情報ID_Rと、第2の鍵ノードの識別情報KID_Rと、第3のノンスN_IRとに基づいて、第1の不完全リンク情報データパケットL_Iを作成するステップと、第1のデバイスから第1の鍵ノードに、中間バイロケーション鍵要求を送信するステップであって、要求には、第1の不完全リンク情報データパケットL_Iを代表するデータが含まれる。
【0018】
別の選択肢として、第1の態様によるコンピュータ実装方法は、第1の不完全リンクインフォパケットがL_I={ID_R、KID_R、N_IR}の形式をとる。
【0019】
別の選択肢として、第1の態様によるコンピュータ実装方法は、第3のノンス、N_IRを代表するデータが、第3のノンス、N_IR’のハッシュを代表するデータを含む。
【0020】
別のオプションとして、第1の側面によるコンピュータ実装方法は、第1の不完全リンク情報パケットが、L_I={ID_R,KID_R,N_IR’}の形式をとる。
【0021】
オプションとして、第1の鍵ノードによって、中間バイロケーション鍵を確立することは、第1の鍵ノードにおいて、第1のデバイスから、中間バイロケーション鍵要求を受信することであって、要求が、不完全リンクインフォデータパケットL_Iを代表するデータを含む、ことと、第1の鍵ノードによって、少なくとも以下を代表するデータを使用して、第1の完全リンクインフォデータパケットL’を生成することと、をさらに含む、第1の側面によるコンピュータ実装方法: L’を生成するステップと、第1のデバイスの識別情報ID_Iと、第1の鍵ノードの識別情報KIDIと、受信した第1の不完全リンク情報パケットL_Iを代表するデータと、第1の鍵ノードによって、L’のハッシュ(#(L’)と表記)を計算するステップと、#(L’)を、第1の鍵ノードと第2の鍵ノードに関連付けられた鍵のセットを選択するためのインデックスとして使用するステップとを含む;第1の鍵ノードによって、完全なリンク情報L’に適用される鍵選択関数を使用して、第1の鍵ノードによってアクセス可能な鍵の集合から鍵K_Qを選択する;第一の鍵ノードによって、第一のランダムなアンチリプレイ・ノンスN_REPIを生成するステップと、第一の鍵ノードによって、第二の鍵ノードのID_Rに基づいて、第二の鍵ノードに関連付けられたID鍵K_Rのルックアップを実行するステップであって、第一の鍵ノードと第二の鍵ノードは、ネットワーク内の鍵ノードのID鍵と対応する鍵ノード識別子のマッピングテーブルまたはルックアップテーブルを保持する、ステップと;第1の鍵ノードによって、第1の鍵ノードに関連付けられたID鍵K_Iのルックアップを実行し、第1の鍵ノードによって、以下の代表的なデータを組み合わせて、中間バイロケーション鍵K_IBKを作成する:第1の完全なリンク情報、選択された鍵、K_Q、第1の鍵ノードの識別鍵、K_I、第2の鍵ノードの識別鍵、K_R、および第1のアンチリプレイ・ノンス、N_REPI、および第1の鍵ノードから第1のデバイスに中間バイロケーション鍵、K_IBK、および第1のアンチリプレイ・ノンス、N_REPIを送信する。
【0022】
オプションとして、第1の完全なリンク情報パケットはL’=(ID_I||KID_I||L_I.ID_R||L_I.KID_R||L_I.N_IR)の形をとり、||は連結を表す、第1の側面によるコンピュータ実装方法。
【0023】
オプションとして、第1の態様によるコンピュータ実装方法は、第1の完全なリンク情報パケットがL’=(ID_I||KID_I||L_I.ID_R||L_I.KID_R||L_I.N_IR’)の形をとり、ここで||は連結を示す。
【0024】
別の選択肢として、第1の側面によるコンピュータ実装方法は、中間バイロケーション鍵K_ISが、K_IS=#(K_Q,#(L’),N_REPI)XORK_IXORK_Rに基づいて作成される。
【0025】
さらなるオプションとして、第1の側面によるコンピュータ実装方法は、キー選択機能が以下の1つ以上を含む: N>=1である#(L’)の最下位Nビットを選択する;N>=1である#(L’)の最上位Nビットを選択する;N>=1である#(L’)のNビットの特定部分を選択する;N>=1である#(L’)の最下位Nビットを選択する;N>=1である#(L’)の最下位Nビットを選択する;キーの集合からキーを選択するための一意のインデックスを生成するのに適した他の任意の選択関数;または#(L)を表す配列内の任意の数の要素から選択するように構成された他の任意の関数。
【0026】
任意選択で、第1の態様によるコンピュータ実装方法は、第2のデバイスから、第2のデバイスで、第2のランダムノンスN_Iおよび第1のアンチプレイノンスN_REPIを受信するステップと、第2のデバイスによって、第2のランダムノンスN_Iおよび第1のランダムノンスN_Rに基づいて、第3のノンスN_IRを生成するステップと、以下をさらに含む;第2のデバイスによって、少なくとも、第1のデバイスの識別情報ID_I、第1の鍵ノードの識別情報KID_I、および第3のノンスN_IRを代表するデータに基づいて、第2の不完全リンク情報データパケットL_Rを生成するステップと、第2のデバイスから第2の鍵ノードに、第2の不完全リンク情報データパケットL_R、および第1のアンチリプレイノンスN_REPIを代表するデータを含む、Bilocation Keyリクエストを送信するステップ。
【0027】
別の選択肢として、第1の局面によるコンピュータ実装方法は、第2の不完全リンク情報パケットが、L_R={ID_I,KID_I,N_IR}の形式をとる。}
【0028】
別の選択肢として、第1の局面によるコンピュータ実装方法は、第3のノンス、N_IRを代表するデータが、第3のノンス、N_IR’のハッシュを代表するデータを含む。
【0029】
別の選択肢として、第1の態様によるコンピュータ実装方法は、第1の不完全リンク情報パケットがL_I={ID_R、KID_R、N_IR’}の形式をとる。
【0030】
オプションとして、第1の局面によるコンピュータ実装方法は、第2の鍵ノードによって、第2の鍵ノードによって、Bilocation Keyを確立することをさらに含み、第2の鍵ノードにおいて、第2のデバイスから、Bilocation Key要求を受信することであって、要求が、第2の不完全なlink-infoデータパケットを代表するデータL_Rと、第1のリプレイ防止nonceであるN_REPIとを含む、ステップと、第2の鍵ノードによって、少なくとも以下のデータを代表するデータを使用して、第2の完全なlink-infoデータパケットL’を生成するステップと第二の鍵ノードが、第二のデバイスの識別情報ID_R、第二の鍵ノードの識別情報KID_R、および受信した第二の不完全リンク情報パケットL_Rを代表するデータを用いて、第二の完全リンク情報データパケットL’を生成するステップと、第二の鍵ノードが、#(L’)で示されるL’のハッシュを計算し、#(L’)を、第二の鍵ノードおよび第一の鍵ノードに関連付けられた鍵のセットを選択するためのインデックスとして使用するステップと第二の鍵ノードによって、第二の完全リンク情報L’に適用される鍵選択関数を使用して、第二の鍵ノードの鍵の集合から鍵K_Qを選択する;第二の鍵ノードによって、第二のランダムなアンチリプレイ・ノンスN_REPRを生成するステップと第二の鍵ノードによって、第一の鍵ノードのアイデンティティKID_Iに基づいて、第一の鍵ノードに関連付けられたアイデンティティ鍵K_Iのルックアップを実行するステップと、を含み、第一の鍵ノードと第二の鍵ノードは、ネットワーク内の鍵ノードのアイデンティティ鍵と対応する鍵ノード識別子のマッピングテーブルまたはルックアップテーブルを保持する;第二の鍵ノードが、第二の鍵ノードに関連付けられたID鍵K_Rのルックアップを実行し、第二の鍵ノードが、以下を代表するデータの結合に基づいて、中間バイロケーション鍵K_IBKを作成する: 第二の完全なリンク情報、選択された鍵K_Q、第一の鍵ノードの識別鍵K_I、第二の鍵ノードの識別鍵K_R、および第一のアンチリプレイ・ノンスN_REPI;
【0031】
任意に、第2の完全なリンク情報パケットは、L’=(L_R.ID_I||L_R.KID_I||ID_R||KID_R||L_R.N_IR)の形をとり、||は連結を表す、第1の側面によるコンピュータ実装方法。
【0032】
任意に、第1の態様に係るコンピュータ実装方法であって、第2の完全なリンク情報パケットは、L’=(L_R.ID_I||L_R.KID_I||ID_R||KID_R||L_R.N_IR’)の形をとり、ここで||は結合を示す、方法。
【0033】
任意に、第1の態様に係るコンピュータ実装方法であって、媒介バイロケーション鍵K_IBK=#(K_Q,#(L’),N_REPI)XOR K_I XOR K_Rに基づいて作成される、方法。
【0034】
別の選択肢として、第1の態様に係るコンピュータ実装方法であって、バイロケーション鍵K_BK=#(K_IBK,N_REPR)に基づいて作成される、方法。
【0035】
別の選択肢として、第1の態様に係るコンピュータ実装方法であって、バイロケーション鍵K_BKを生成することは、最後のバイロケーション鍵K_BK’を生成することを含む、方法。
【0036】
別の選択肢として、第1の態様に係るコンピュータ実装方法であって、最後のバイロケーション鍵K_BK’は、K_BK’=#(N_IR,K_BK)に基づいて作成される、方法。
【0037】
別の選択肢として、第1の態様に係るコンピュータ実装方法であって、最後の鍵は、それらの対応するバイロケーション鍵と同意されたノンスとの組み合わせに基づいて、第1の装置及び第2の装置のそれぞれによって計算される、方法。
【0038】
選択肢として、第1の態様に係るコンピュータ実装方法であって、最後の鍵は、それらの対応する最後のバイロケーション鍵と同意されたノンスとの組み合わせに基づいて、第1の装置及び第2の装置のそれぞれによって計算される、方法。
【0039】
選択肢として、第1の態様に係るコンピュータ実装方法であって、第2の装置によって、更なるノンスN_Tを生成することと、第2の装置によって、更なるノンスN_Tを第1の装置に送信することとを更に含み、更なるノンスは、最後の鍵を計算するのに用いられる、方法。
【0040】
任意に、第1の態様に係るコンピュータ実装方法であって、最後の鍵は、K_S=K_BK XOR N_T;K_S=K_BK XOR K_EN XOR N_T;K_BK’ XOR N_T;K_S=K_BK’ XOR K_EN XOR N_Tのグループからの1つに基づいて計算され、K_ENは、第1の装置及び第2の装置の間で用いられる暗号鍵であり、K_S=K_BKXOR K_TLS XOR N_T; K_S=K_BK’ XOR K_TLS XOR N_Tであり、ここでK_TLSは第1の装置及び第2の装置の間で用いられるTLSセッション鍵である、方法。
【0041】
別の選択肢として、第1の態様に係るコンピュータ実装方法であって、最後の鍵は、それらの対応するバイロケーション鍵K_BKから引き出される媒介鍵値K_X及びチャレンジレスポンスプロトコルに基づいて第1の装置及び第2の装置のそれぞれによって計算され、その結果は最後の鍵に同意するために用いられ、チャレンジレスポンスプロトコルは、第1のチャレンジノンスC_Iを第1の装置において作成することと、第2のチャレンジノンスC_Rを第2の装置において作成することと、第1のチャレンジノンスC_Iを第1の装置から第2の装置へ送信することと、第2のチャレンジノンスC_Rを第2の装置から第1の装置へ送信することと、以下の値、すなわち、X_I=#(K_X,C_I,0);X_R=#(K_X,C_R,1);R_I=#(X_I,C_R);R_R=#(X_R,C_I)に基づいてC_I及び受信されたC_Rを用いて第1の署名済みレスポンスを第1の装置において計算することであって、#はハッシュ関数であることと、以下の値、すなわち、X_I=#(K_X,C_I,0);X_R=#(K_X,CR,1);R_I=#(X_I,C_R);R_R=#(X_R,C_I)に基づいてC_R及び受信されたC_Iを用いて第2の署名済みレスポンスを第2の装置において計算することであって、#は第1の装置によって用いられた同じハッシュ関数であることと、第1の署名済みレスポンスR_Iを第1の装置から第2の装置へ送信することと、第2の署名済みR_Rを第2の装置から第1の装置へ送信することと、第2の装置から受信したR_Rが第1の装置によって計算されたR_Rの値と合致していると、第1の装置が判断したことに応じて、最後の鍵をK_S=X_I XOR X_Rとして計算することと、第1の装置から受信したR_Iが第2の装置によって計算されたR_Iの値と合致していると、第2の装置が判断したことに応じて、最後の鍵をK_S=X_I XOR X_Rとして計算することと、第1の装置及び/又は第2の装置いずれかに応じて、受信した署名済みレスポンスが対応する計算された署名済レスポンスと合致していないと判断することと、その接続を放棄することとを更に含む、方法。
【0042】
更なる選択肢として、第1の態様に係るコンピュータ実装方法であって、媒介鍵値K_Xは、K_X=K_BK、K_X=#(K_BK,K_TLS)のグループからの少なくとも1つに基づいて第1の装置及び第2の装置両方において計算され、K_TLSは、第1の装置及び第2の装置の間のTLSセッション、K_X=K_BK XOR K_TLSであり、K_TLSは、第1の装置及び第2の装置の間のTLSセッション鍵、K_X=#(K_BK,K_EN)であり、K_ENは、第1の装置及び第2の装置の間で共有された鍵、K_X=K_BK XOR K_ENであり、K_ENは、第1の装置及び第2の装置の間で教諭された鍵であり、第1の装置及び第2の装置両方に既知である1つ以上の同意された値を用いてK_BKを修正する任意の他の関数である、方法。
【0043】
さらなる選択肢として、第1の態様によるコンピュータ実装方法であって、最終鍵は、第1および第2のデバイスの各々によって、対応する最終的なBilocation Key、K_BK’から導出される中間鍵値K_Xと、最終鍵に合意するために使用されるチャレンジレスポンスプロトコルとに基づいて計算され、チャレンジレスポンスプロトコルはさらに以下を含む。
第1デバイスにおいて、第1チャレンジノンスC_Iを作成するステップ
第2デバイスにおいて、第2チャレンジ・ノンスC_Rを作成するステップ
第1デバイスから第2デバイスへ、第1チャレンジ・ノンスC_Iを送信するステップ
第2デバイスから第1デバイスへ、第2チャレンジ・ノンスC_Rを送信するステップ
第1デバイスにおいて、X_I=#(K_X,C_I,0);X_R=#(K_X,C_R,1);R_I=#(X_I,C_R);R_R=#(X_R,C_I)(ここで、#はハッシュ関数である)の値に基づいて、C_Iと受信したC_Rを用いて、第1の署名付き応答を計算する
第2デバイスにおいて、C_Rと受信したC_Iを用いて、X_I=#(K_X,C_I,0);X_R=#(K_X,C_R,1);R_I=#(X_I,C_R);R_R=#(X_R,C_I)(ここで、#は第1デバイスで使用されたものと同じハッシュ関数である)の値に基づいて第2の署名付き応答を計算する
第1デバイスから第2デバイスへ、第1の署名付き応答R_Iを送信する
第2デバイスから第1デバイスへ、第2の署名付きレスポンスR_Rを送信する
第1デバイスにおいて、第2デバイスから受信したR_Rが、第1デバイスによって計算されたR_Rの値と一致すると判断したことに応答して、K_S=X_I XOR X_R、またはK_S=#(X_I、X_R)として最終鍵を計算する
第2デバイスにおいて、第2のデバイスから受信したR_Rが、第1デバイスによって計算されたR_Rの値と一致すると判断したことに応答して、K_S=#(X_I、X_R)として最終鍵を計算する
第2のデバイスにおいて、第1のデバイスから受信したR_Iが、第2のデバイスによって計算されたR_Iの値と一致すると判断したことに応答して、K_S=X_I XOR X_RまたはK_S=#(X_I,X_R)として最終鍵を計算する
第1デバイスおよび/または第2デバイスのいずれかにおいて、受信した署名付き応答が、対応する計算された署名付き応答と一致しないと判断したことに応答して、接続を放棄する
【0044】
さらなるオプションとして、第1の態様によるコンピュータ実装方法は請求項36に記載のコンピュータ実装請求項において、中間鍵値K_Xは、以下のグループからの少なくとも1つに基づいて、第1および第2デバイスの両方で計算される。
K_X=K_BK’;K_X=#(K_BK’,K_TLS)、ここでK_TLSは第1および第2のデバイス間のTLSセッションキーである
K_X=K_BK’XORK_TLS、ここでK_TLSは第1および第2のデバイス間のTLSセッションキーである;
K_X=#(K_BK’,K_EN)、ここでK_ENは第1および第2のデバイス間で共有されるキーである
K_X=K_BK’XORK_EN、ここでK_ENは第1および第2のデバイス間で共有される鍵である
K_BKを第1および第2のデバイスの両方が知っている1つまたは複数の合意された値で修正するための他の関数。
【0045】
オプションとして、第1の態様によるコンピュータ実装方法において、第3ノンスは、第1ランダムノンスと第2ランダムノンスとの排他的論理和(XOR)演算に基づいて計算される。
【0046】
第2の態様において、本開示は、ネットワークを使用して第1デバイスと第2デバイスとの間で鍵を確立するコンピュータ実装方法を提供し、ネットワークは、第1鍵ノードと第2鍵ノードとを含み、第1鍵ノードは、鍵のセットにアクセスするためのものであり、第2鍵ノードは、同じ鍵のセットにアクセスするためのものであり、第1デバイスによって実行される本方法は、以下を含む。
第1デバイスにおいて、少なくとも第1鍵ノードと第2デバイスから、第1鍵確立データを代表するデータを受信し、これを用いて1鍵ノードと第2鍵ノードの鍵セットから選択された鍵に基づきBilocation Keyを計算する。
そして、第2デバイスが、第2鍵ノードにBilocation Keyを要求する際に使用するために、少なくとも第1のデバイスから第2の鍵確立データを代表するデータを受信し、ここで、Bilocation Keyは、第2鍵ノードの鍵セットから選択された鍵に基づいて第2鍵ノードによって計算され、そして、第1および第2デバイスが、最終的なBilocation Keyを生成するために、対応するBilocation Keyをそれぞれ使用し、第1鍵確立データおよび第2鍵確立データの合意された部分に基づいて最終鍵を生成するために、最終的なBilocation Keyをそれぞれ使用する。
【0047】
オプションとして、第2の態様によるコンピュータ実施方法は、第1の態様のいずれかによる第1の装置で実行されるコンピュータ実施方法ステップをさらに含む。
【0048】
第3の態様において、本開示は、ネットワークを使用して第1のデバイスと第2のデバイスとの間で鍵を確立するコンピュータ実装方法を提供し、ネットワークは、第1の鍵ノードと第2の鍵ノードとを含み、第1の鍵ノードは、鍵のセットにアクセスするためのものであり、第2の鍵ノードは、同じ鍵のセットにアクセスするためのものであり、第1のデバイスによって実行される本方法は、以下を含む:
第1デバイスにおいて、少なくとも第1鍵ノードと第2デバイスから、第1鍵確立データを代表するデータを受信し、これを用いて1鍵ノードと第2鍵ノードの鍵セットから選択された鍵に基づきBilocation Keyを計算する
そして、第2デバイスが、第2鍵ノードにBilocation Keyを要求する際に使用するために、少なくとも第1のデバイスから第2の鍵確立データを代表するデータを受信し、ここで、Bilocation Keyは、第2鍵ノードの鍵セットから選択された鍵に基づいて第2鍵ノードによって計算され、そして、第1および第2デバイスが、最終的なBilocation Keyを生成するために、対応するBilocation Keyをそれぞれ使用し、第1鍵確立データおよび第2鍵確立データの合意された部分に基づいて最終鍵を生成するために、最終的なBilocation Keyをそれぞれ使用する。
【0049】
オプションとして、第3の態様によるコンピュータ実施方法は、第1の態様による第1の装置で実行されるコンピュータ実施方法ステップをさらに含む。
【0050】
第4の態様において、本開示は、ネットワークを使用して第1デバイスと第2デバイスとの間で鍵を確立するコンピュータ実装方法を提供し、ネットワークは、第1鍵ノードと第2鍵ノードとを含み、第1鍵ノードは、鍵のセットにアクセスするためのものであり、第2のノードは、同じ鍵のセットにアクセスするためのものであり、第2デバイスによって実行される本方法は、以下を含む。
第1デバイスにおいて、少なくとも第1鍵ノードと第2デバイスから、第1鍵確立データを代表するデータを受信し、これを用いて1鍵ノードと第2鍵ノードの鍵セットから選択された鍵に基づきBilocation Keyを計算する
そして、第2デバイスが、第2鍵ノードにBilocation Keyを要求する際に使用するために、少なくとも第1のデバイスから第2の鍵確立データを代表するデータを受信し、ここで、Bilocation Keyは、第2鍵ノードの鍵セットから選択された鍵に基づいて第2鍵ノードによって計算され、そして、第1および第2デバイスが、最終的なBilocation Keyを生成するために、対応するBilocation Keyをそれぞれ使用し、第1鍵確立データおよび第2鍵確立データの合意された部分に基づいて最終鍵を生成するために、最終的なBilocation Keyをそれぞれ使用する。
【0051】
オプションとして、第4の態様によるコンピュータ実施方法は、第1、第2または第3の態様のいずれか1つによる第2の装置で実行されるコンピュータ実施方法ステップをさらに含む。
【0052】
第5の態様において、本開示は、ネットワークを使用して第1デバイスと第2デバイスとの間で鍵を確立するコンピュータ実装方法を提供し、ネットワークは、第1鍵ノードと第2鍵ノードとを含み、第1鍵ノードは鍵のセットを含み、第2鍵ノードは同じ鍵のセットを含み、第2鍵ノードによって実行される、本方法は以下を含む。
第2のデバイスからBilocation Keyリクエストを受信するプロセスにあって、当該リクエストは、Bilocation Keyのリクエストに使用するために、少なくとも第1のデバイスから第2のデバイスによって受信された第2の鍵確立データの一部を代表するデータを含むプロセスと、受信されたリクエストデータと鍵セットから選択された鍵とに基づいて中間Bilocation Keyを確立するプロセスと確立された中間Bilocation Keyと第2アンチリプレイノンスに基づいてBilocation Keyを確立するステップ
Bilocation Keyと第2アンチリプレイノンスを第2のデバイスに送信するステップ
ここで、第1および第2デバイスは、対応するBilocation Keyを使用して、それぞれ、第1鍵確立データと第2鍵確立データの合意された部分に基づいて最終鍵を生成する。
【0053】
オプションとして、第5の態様によるコンピュータ実施方法は、第1、第2、第3および/または第4の態様のいずれか1つに従って第1鍵ノードで実行されるコンピュータ実施方法ステップをさらに含む。
【0054】
第6の態様において、本開示は、ネットワークを使用して第1デバイスと第2デバイスとの間で鍵を確立するコンピュータ実装方法を提供し、ネットワークは、第1鍵ノードと第2鍵ノードとを含み、第1鍵ノードは鍵のセットを含み、第2鍵ノードは同じ鍵のセットを含み、第2鍵ノードによって実行される、本方法は以下を含む。
第2のデバイスからBilocation Keyリクエストを受信するプロセスにあって、当該リクエストは、Bilocation Keyのリクエストに使用するために、少なくとも第1のデバイスから第2のデバイスによって受信された第2の鍵確立データの一部を代表するデータを含むプロセスと、受信されたリクエストデータと鍵セットから選択された鍵とに基づいて中間Bilocation Keyを確立するプロセスと確立された中間Bilocation Keyと第2アンチリプレイノンスに基づいてBilocation Keyを確立するステップ
Bilocation Keyと第2アンチリプレイノンスを第2のデバイスに送信するステップ
ここで、第1および第2デバイスは、対応するBilocation Keyを使用して、それぞれ、第1鍵確立データと第2鍵確立データの合意された部分に基づいて最終鍵を生成する。
【0055】
オプションとして、第6の態様によるコンピュータ実装方法は、第1、第2、第3、第4、および/または第5の態様のいずれか1つに従って第2の鍵ノードで実行されるコンピュータ実装方法ステップをさらに含む。
【0056】
第7の態様において、本開示は、ネットワークを使用して第1のデバイスと第2のデバイスとの間で鍵を確立するコンピュータ実装方法を提供し、ネットワークは、第1鍵ノードと第2鍵ノードとを含み、第1鍵ノードは鍵のセットを含み、第2鍵ノードは同じ鍵のセットを含み、第2鍵ノードによって実行される、本方法は以下を含む。
第2のデバイスからBilocation Keyリクエストを受信するプロセスにあって、当該リクエストは、Bilocation Keyのリクエストに使用するために、少なくとも第1デバイスから第2デバイスによって受信された第2の鍵確立データの一部を代表するデータを含むプロセスと、受信されたリクエストデータと鍵セットから選択された鍵とに基づいて中間Bilocation Keyを確立するプロセスと確立された中間Bilocation Keyおよび第2アンチリプレイノンスに基づいてBilocation Keyを確立するステップと、Bilocation Keyおよび第2アンチリプレイノンスを第2デバイスに送信するステップを含み、第1および第2デバイスは、対応するBilocation Keyを使用してそれぞれ最終的なBilocation Keyを生成し、最終的なBilocation Keyを使用して、第1鍵確立データおよび第2鍵確立データの合意された部分に基づいてそれぞれ最終鍵を生成する。
【0057】
オプションとして、第7の態様によるコンピュータ実装方法は、第1、第2、第3、第4、第5、および/または第6の態様のいずれか1つに従って第2鍵ノードで実行されるコンピュータ実装方法ステップをさらに含む。
【0058】
オプションとして、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかによるコンピュータ実装方法は、鍵ノードの各々が量子安全ネットワークの一部であり、鍵の各セットは、量子鍵配布システムを使用して配信される量子分散鍵のセットである。
【0059】
オプションとして、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかに従うコンピュータ実装方法にあって、鍵ノードの各々は古典的に安全なネットワークの一部であり、各鍵セットまたは分散鍵は古典的な鍵配布システムを使用して配信される。
【0060】
オプションとして、第1、第2、第3、第4、第5、第6、および/または第7の態様のいずれかに従うコンピュータ実装方法にあって、量子鍵配布システムは以下の群から少なくとも1つが含まれうる。
衛星量子鍵配布システム
地上光量子鍵配布システム
量子セキュアまたは量子セキュアな方法で第1および第2鍵ノードに量子鍵セットを配布することができる任意のタイプの量子鍵配布システム
【0061】
オプションとして、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかに従うコンピュータ実装方法にあって、第1デバイスと第1鍵ノードとの間の通信は、第1の量子セキュアチャネルを介して実行され、第2デバイスと第2鍵ノードとの間の通信は、第2の量子セキュアチャネルを介して実行され、第1デバイスと第2デバイスとの間の通信は、古典的通信チャネルを介して、最終鍵の確立中に実行される。
【0062】
オプションとして、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかに従うコンピュータ実装方法にあって、鍵のセットは1つのタイムパッド鍵のセットである。
【0063】
オプションとして、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかに従うコンピュータ実施方法であって、古典的通信チャネルが標準暗号化通信チャネルである。
【0064】
オプションとして、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかに従うコンピュータ実装方法であって、第1鍵ノードおよび第2鍵ノードは異なる地理的位置に配置され、第1鍵ノードは第2鍵ノードとは異なる。
【0065】
オプションとして、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかに従うコンピュータ実装方法は、第1鍵ノードと第2鍵ノードとが同じ地理的位置に配置される。
【0066】
オプションとして、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかに従うコンピュータ実装方法は、第1鍵ノードと第2鍵ノードが同じ論理位置に配置される。
【0067】
オプションとして、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかに従うコンピュータ実装方法は、第1鍵ノードと第2鍵ノードが同じ鍵ノードであり、鍵のセットは第1鍵ノードと第2鍵ノードによってのみ知られる。
【0068】
オプションとして、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかに従うコンピュータ実装方法は、第1鍵ノードと第2鍵ノードが同じ論理鍵ノードであり、論理鍵ノードの鍵のセットはそれ自身と共有されるか、論理鍵ノードだけが所有し、選択された鍵は論理鍵ノードだけが知っている鍵のセットから選択される。
【0069】
第8の態様では、本開示は、プロセッサユニットと、メモリユニットと、通信インターフェースとを備える装置であって、プロセッサユニットは、メモリユニットおよび通信インターフェースに接続され、プロセッサユニット、メモリユニットおよび通信インターフェースは、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれかによるコンピュータ実装方法の対応するステップを実装するように適合される、装置を提供する。
【0070】
第9の態様では、本開示は、第1デバイスおよび第2デバイスと、セキュアネットワークとを含むシステムであって、セキュアネットワークは、第1鍵ノードおよび第2鍵ノードを含み、第1鍵ノードは、鍵のセットを含むか、または鍵のセットにアクセスし、第2鍵ノードは、同じ鍵のセットを含むか、または鍵のセットにアクセスする、システムを提供し、第1デバイス、第2デバイスの各々は、第1鍵ノードおよび第2鍵ノードを含む。第1鍵ノードおよび第2鍵ノードは、プロセッサユニット、メモリユニット、および通信インタフェースを含み、プロセッサユニットは、メモリユニットおよび通信インタフェースに接続され、プロセッサユニット、メモリユニット、および通信インタフェースは、第1、第2、第3、第4、第5、第6、および/または第7の態様のいずれかによるコンピュータ実装方法の対応するステップを実装するように適合される。
【0071】
第10の態様では、本開示は、プロセッサユニットと、メモリユニットと、通信インターフェースとを備える第1デバイスであって、プロセッサユニットは、メモリユニットおよび通信インターフェースに接続され、プロセッサユニット、メモリユニットおよび通信インターフェースは、第1、第2、第3、第4、第5、第6および/または第7の態様(複数可)のいずれかによるコンピュータ実装方法の対応するステップを実装するように適合される、第1デバイスを提供する。
【0072】
第11の態様において、本開示は、プロセッサユニット、メモリユニット、および通信インターフェースを備える第2のデバイスであって、プロセッサユニットは、メモリユニットおよび通信インターフェースに接続され、プロセッサユニット、メモリユニット、および通信インターフェースは、第1、第2、第3、第4、第5、第6、および/または第7の態様(複数可)のいずれかによるコンピュータ実装方法の対応するステップを実装するように適合される、第2デバイスを提供する。
【0073】
第12の態様では、本開示は、プロセッサユニットと、メモリユニットと、通信インターフェースとを備える第1のキーノードを提供し、プロセッサユニットは、メモリユニットおよび通信インターフェースに接続され、プロセッサユニット、メモリユニットおよび通信インターフェースは、第1、第2、第3、第4、第5、第6および/または第7の態様(複数可)のいずれかによるコンピュータ実装方法の対応するステップを実装するように適合される。
【0074】
第13の態様では、本開示は、プロセッサユニットと、メモリユニットと、通信インターフェースとを備える第2のキーノードを提供し、プロセッサユニットは、メモリユニットおよび通信インターフェースに接続され、プロセッサユニット、メモリユニットおよび通信インターフェースは、第1、第2、第3、第4、第5、第6および/または第7の態様(複数可)のいずれかによるコンピュータ実装方法の対応するステップを実装するように適合される。
【0075】
第14の態様において、本開示は、以下を備えるシステムを提供する。
第8および/または第10の態様のいずれかによる装置を備える第1デバイス
第8および/または第11の態様のいずれかによる装置を備える第2デバイス
第8および/または第12の態様のいずれかによる装置を備える第1鍵ノード
第8および/または第13の態様のいずれかによる装置を備える第2鍵ノード
ここで、第1デバイスおよび第2のデバイスは、第1デバイスと第2デバイスとの間の通信セッションのための最終鍵を確立するために、標準通信チャネルを介して互いに通信し、対応する量子セキュアチャネルを介して第1鍵ノードおよび第2鍵ノードとそれぞれ通信するように構成される。
【0076】
オプションとして、第10の態様に係るシステムは、複数の衛星から構成される衛星量子鍵配信システムであって、各衛星が量子鍵配信の機能を含み、各衛星が1つ以上の地上受信局と通信し、各地上受信局が量子セキュアチャネルを介して第1及び第2鍵ノードの1つに結合又は接続される、システムである。
【0077】
オプションとして、第14の態様によるシステムは、複数の地上量子トランシーバを含む地上量子鍵配信システムであり、各トランシーバは量子鍵配信の機能を含み、量子セキュアチャネルを介して第1および第2鍵ノードの一方に結合または接続される。
【0078】
第15の態様において、本開示は、以下を含むシステムを提供する
第8および/または第10の態様のいずれかによる装置を備える第1デバイス
第8および/または第11の態様のいずれかによる装置を備える第2デバイス
第8および/または第12の態様のいずれかによる装置を備える第1のキーノード
第8および/または第13の態様のいずれかによる装置を備える第2のキーノード
ここで、第1のデバイスおよび第2のデバイスは、第1のデバイスと第2のデバイスとの間の通信セッションのための最終鍵を確立するために、標準的な通信チャネルを介して互いに通信し、対応する古典的に安全なチャネルを介して第1の鍵ノードおよび第2の鍵ノードとそれぞれ通信するように構成される。
【0079】
オプションとして、第15の態様によるシステムは、システムが、第1および第2鍵ノードの各々に対して古典的に安全なチャネルを介して安全な鍵を配布する機能を含む古典的鍵配布システムを含む。
【0080】
第16の態様において、本開示は、プロセッサ上で実行されると、プロセッサに、本明細書で説明される、および/またはアプリケーションが要求する、第1、第2、第3、第4、第5、第6および/または第7の態様のいずれか、および/またはそれらの特徴、それらの修正、それらの組み合わせによるコンピュータ実装方法を実行させる、コンピュータコードまたはその上に記憶された命令を含むコンピュータ可読媒体を提供する。
【0081】
本書に記載される方法は、例えば、プログラムがコンピュータ上で実行されるときに本書に記載される方法のいずれかのすべてのステップを実行するように適合されたコンピュータプログラムコード手段を含むコンピュータプログラムの形態で、有形の記憶媒体上の機械可読形態のソフトウェアによって実行されてもよく、コンピュータプログラムはコンピュータ可読媒体上に具現化されてもよい。有形(または非一過性)記憶媒体の例には、ディスク、サムドライブ、メモリカードなどが含まれ、伝搬信号は含まれない。ソフトウェアは、方法ステップが任意の適切な順序で、または同時に実行され得るように、並列プロセッサまたは直列プロセッサ上での実行に適し得る。
【0082】
本出願は、ファームウェアとソフトウェアが、価値のある、別個に取引可能な商品となり得ることを認識するものである。これは、所望の機能を実行するために、「ダム」または標準的なハードウェア上で実行または制御されるソフトウェアを包含することを意図している。また、HDL(ハードウェア記述言語)ソフトウェアのように、ハードウェアのコンフィギュレーションを「記述」または定義するソフトウェアも包含することを意図している。
【0083】
好ましい特徴は、当業者には明らかであろうように、適宜組み合わせることができ、本発明の任意の態様と組み合わせることができる。
本発明の実施形態を、例として、以下の図面を参照して説明する
【図面の簡単な説明】
【0084】
【
図1a】
図1aは、本発明の具体的な実施形態による、イニシエータデバイスとレシーバデバイスとの間に適用される鍵確立プロトコルまたはプロセスと共に使用するための例示的なシステムを示す概略図である。
【
図1b】
図1bは、本発明の具体的な実施形態による、イニシエータデバイスとレシーバデバイスとの間に適用される鍵確立プロトコルまたはプロセスとともに使用するための別の例示的なシステムを示す概略図である。
【
図1c】
図1cは、本発明の具体的な実施形態による、イニシエータデバイスとレシーバデバイスとの間に適用される鍵確立プロトコルまたはプロセスと共に使用するための、さらに別の例示的なシステムを示す概略図である。
【
図2a】
図2aは、本発明の具体的な実施形態による
図1aおよび
図1bのシステムと共に使用するための例示的な鍵確立プロセスを示すフロー図である。
【
図2b】
図2bは、本発明の具体的な実施形態による
図1aおよび
図1bのシステムで使用するための、別の例示的な鍵確立プロセスを示すフロー図である。
【
図2c】
図2cは、本発明の具体的な実施形態による、
図2bのイニシエータデバイスのための別の例示的な鍵確立プロセスを示すフロー図である。
【
図2d】
図2dは、本発明の具体的な実施形態による、
図2bの受信側デバイスのための別の例示的な鍵確立プロセスを示すフロー図である。
【
図2e】
図2eは、本発明の具体的な実施形態による、
図2bのイニシエータデバイスによって使用される鍵ノードのための別の例示的な鍵確立プロセスを示すフロー図である。
【
図2f】
図2fは、本発明の具体的な実施形態による、
図2bの受信側デバイスによって使用される鍵ノードのための別の例示的な鍵確立プロセスを示すフロー図である。
【
図2g】
図2gは、本発明の具体的な実施形態による、別の例の鍵確立プロセスを示すフロー図である。
【
図3a】
図3aは、本発明の具体的な実施形態による鍵確立プロセスで使用するシステム初期化プロセスの一例を示す信号フローシーケンス図である。
【
図3b】
図3bは、本発明の具体的な実施形態による鍵確立プロセスのための、例示的な第1ハンドシェイクプロセス、例示的な中間Bilocation Keyリクエストプロセス、および例示的な中間Bilocation Key確立プロセスを示す信号フローシーケンス図である。
【
図3c】
図3cは、本発明の具体的な実施形態による鍵確立プロセスのための、例示的な第2ハンドシェイクプロセス、例示的なBilocation Keyリクエストプロセス、例示的なBilocation Key確立プロセス、および最終ハンドシェイクプロセスを示す信号フローシーケンス図である。
【
図3d】
図3dは、本発明の具体的な実施形態による、鍵作成プロセス例と、鍵確立プロセスで使用する別の鍵作成プロセス例を示す信号フローシーケンス図である。
【
図4a】
図4aは、本発明による例示的な鍵確立プロトコル/プロセスの1つまたは複数の部分を実施する際に使用する例示的なコンピューティングシステム、デバイスまたは装置を示す概略図である。
【
図4b】
図4bは、本発明による例示的な鍵確立プロトコル/プロセスを実施する際に使用する例示的なシステムを示す概略図である。
【0085】
図全体を通して、同様の特徴を示すために共通の参照番号が使用されている。
【発明を実施するための形態】
【0086】
以下、本発明の実施形態を例示としてのみ説明する。これらの実施例は、これが達成され得る唯一の方法ではないが、出願人に現在知られている本発明を実施するための最良の態様を表している。本書では、実施例の機能、および実施例を構築し操作するための一連のステップを示す。しかしながら、同一または同等の機能およびシーケンスは、異なる実施例によって達成され得る。
【0087】
本開示は、通信ネットワーク内の1つまたは複数の鍵サービングノード(KNodes)と通信する第1デバイスまたはエンドポイント(例:イニシエータデバイス/エンドポイント)と第2デバイスまたはエンドポイント(例:レシーバデバイス/エンドポイント)との間で暗号鍵または鍵を確立するために鍵確立プロトコルを使用する方法(複数可)、装置およびシステム(複数可)を提供する。
第1および第2デバイス間で確立される鍵、または鍵確立プロトコルの結果得られる鍵は、互換的に本書では、本書で説明する鍵確立プロトコルの終了時に第1および第2のデバイスによって導出される最終鍵、確立鍵、および/または結果得られる鍵、その修正、および/またはそれらの組み合わせと呼ばれる。第1および第2デバイスの各々は、対応する第1および第2鍵サービングノードと通信しており、各鍵サービングノードは、第1および第2デバイスがアクセスできない分散鍵の同じセット(鍵セットとも呼ばれる)にアクセスできる。各鍵セットは、第1および第2デバイスの各鍵サービングノードに安全な方法で確立または配布されている。例えば、各鍵セットは、限定するものではないが、古典的な鍵配布プロトコルを使用して鍵セットを形成することや量子鍵配布プロトコルを使用して量子分散鍵を構成する鍵セットを形成することおよび/または、トラストレスな方法で第1および第2デバイス間の鍵(例えば、確立鍵または最終鍵)を確立するための鍵確立プロトコルと共に使用するために、KNodesに鍵セットを提供するのに適した任意の他のタイプの鍵配布プロトコルに基づいて配布および/または形成することができる。
【0088】
オプションとして、第1鍵サービングノードまたは鍵ノード(例:KNode A)と第2鍵サービングノードまたは鍵ノード(例:KNode B)は、地理的に異なる場所に配置されていてもよく、第1鍵ノードは第2鍵ノードとは異なる。したがって、イニシエータデバイス/エンドポイントとレシーバデバイス/エンドポイントは、地理的に離れているため、異なる鍵ノードと通信する。この結果、確立された鍵は、第1および第2鍵ノードの地理的位置(例:サーバ/KNodes)に安全な方法で配信された各鍵ノードにおいて、分散鍵のセットから選択された同じ分散鍵(例:QKD鍵)(または鍵のセットから選択された鍵)をルートとすることになる。言い換えれば、イニシエータエンドポイント/デバイスとレシーバエンドポイント/デバイスの両方がKNodeの同じコンピューティング・デバイス/サーバと効果的に通信する場合である。この場合、論理KNodeは 「それ自身と共有される 」鍵の配列またはセットから鍵(例:QKD鍵)を選択するように構成される(すなわち、分散された鍵はKNodeのみが所有または知っている鍵のセットである)。従って、確立された鍵はKNodeのみが安全な方法でアクセスできる分散鍵または鍵にルートされる。この場合、第1鍵ノードと第2鍵ノードは同じ地理的な場所に配置されてもよいし、サーバやコンピューティングデバイスなどの同じ論理的な場所に配置されてもよい。別の例として、第1鍵ノードと第2鍵ノードは、イニシエータデバイス/エンドポイントとレシーバエンドポイント/デバイスが共に通信する同じ鍵ノードであってもよく、この場合、鍵のセットはこの同じ鍵ノードによってのみ知られる(例:第1鍵ノードと第2鍵ノードによってのみ知られる)。代替的または付加的に、第1鍵ノードと第2鍵ノードが同じ論理鍵ノードであり、論理鍵ノードの鍵セットが論理鍵ノード自身と共有されているか、論理鍵ノードのみが所有しており、選択された鍵が論理鍵ノードのみが知っている鍵セットから選択される。任意の鍵合意において、使用されるKNodeは同じKNodeであることもあれば、異なるKNodeであることもある。さらに、各KNodeは単一のデータセンターで構成されることもあれば、QKDリンクで保護された複数のデータセンターで構成されることもある。
【0089】
下記に述べるいかなる場合でも、本発明及び/又は
図1a~
図4bに基づき本文書で述べる、及び/又はその修正、それらの組み合わせ、及び/又は本文書で述べるイニシエータエンドポイント/デバイスとレシーバエンドポイントデバイス間のキー確立に使用されるキー確立プロトコル又はプロセスは、同様の方法又は態様で実装することができる。第1のキーノードが、第2のキーノードと物理的に異なる位置に存在し、第1と第2のキーノードが同じ分散キーセットを保有している。第1と第2のキーノードが同じ、即ち同じキーノードは、同じキーノードだけが知っている分散キーセットを持つ。又は、第1と第2のキーノードが同じロジカルキーノードである、即ち同じロジカルキーノードは、同じロジカルキーノードだけが知っている分散キーセットを持つ等
【0090】
一例として、この限りではないが、通信ネットワークは、古典的な通信ネットワーク(例:クラウドネットワーク/インフラストラクチャ等)に基づくことが可能である。この場合、ネットワーク内の通信チャネルは、古典的な暗号化/暗号化又は非量子暗号化/暗号化を使用して保護され、古典的なセキュリティで保護された通信ネットワーク又は古典的なセキュリティで保護されたネットワーク(保護されたネットワークとも呼ばれる)を形成する。例えば、1つ以上のキーサービングノード(KNodes)は古典的な保護されたネットワークの一部であり、古典的な保護された通信チャネルを介して通信する。本発明によると、キー確立プロトコルで使用されるキーセットは、1つ又は複数の様々なキー分散プロトコルを用いてキーセットを生成し、古典的な保護されたネットワーク(例:1つ又は複数のHSMや安全なサーバー等への格納等)に分散される。そのため、KNodeは、保護されたネットワーク内の安全なチャネルを介して、キーセットに安全にアクセスすることができる。KNodes及び/又は保護されたネットワークの他のコンピューターデバイス、ノード及び/又はコンポーネント間の各古典的安全通信チャネルは、この限りではないが、例えば、キーセットからのキー、キーセットから導出されたキー、あるいは手動キーフィルプロセス等から導出された分散キーで暗号化された通信チャネルに基づくことができる。第1及び第2のデバイスのそれぞれは、キー確立プロトコルの間、それぞれのKNodeと古典的安全通信チャネルを設定することができる。古典的安全通信チャネルの設定方法は、この限りではないが、以下は例である。キーセットからのキーによって暗号化された通信チャネルから構成;キーセットから導出したキーであれば、手動のキーフィルプロセスから導出した分散キーでも可能;それぞれのKNodeとデバイス間で交換されるキー;KNodeとデバイス間の通信チャネルを確保するその他の方法;その他及び/又はアプリケーションの要求に応じる。
【0091】
分散キーセット(又はキーセット)は、古典的安全なネットワーク内の1つ又は複数のサーバー(HSM、安全なサーバー等)内に格納してもよい。この限りではないが、キーセットは、例えばQKDキーセットの場合がある。サーバーが2つ以上ある場合、少なくとも2つのサーバーは、もう1つのサーバーと物理的に異なる位置にある可能性があり、この時キー配布システムは、分散キーセットを生成し、前記少なくとも2つのサーバーに安全に分散する。この場合、キー確立プロトコルは、イニシエーターデバイス/エンドポイント(例:第1のデバイス)とレシーバーデバイス/エンドポイント(例:第2のデバイス)間で、安全な方法でそれらの物理的な場所(サーバー/KNodes等)に配信された分散キーにrootしている物理的に異なる位置(例:異なるサーバ/KNode)から同じキーを受信するために使用することができる。あるいは、又はさらに、キー確立プロトコルは、イニシエーターデバイス/エンドポイント(例:第1のデバイス)とレシーバーデバイス/エンドポイント(例:第2のデバイス)間で、それらが同じサーバ及び/又は物理的に同じ場所にある1つ以上のサーバから同じキーを受信するように使用されることがあり、事実上、イニシエーターデバイス/エンドポイントとレシーバーデバイス/エンドポイントは、同じサーバ/KNode及び/又は同じ地理的な場所にあるサーバ/KNodeとコンタクトする。このような場合、イニシエーターとレシーバーのデバイス/エンドポイントによって使用されるKNodeが同じ(例:KNode A ==KNodeB)でなら、このKNodeは、それ自身と共有される分散されたキーセットからのキーを使用して、又はKNodeがが単独で所有又は知っているキーを使用して、キーを導出してもよい。例えば、KNodeは共有されたQKDキーの配列からQKDキーを用いてキーを導出することができる。すなわち、QKDキーとは、QKDキーにのみ共有されており、他のKNode/サーバーには共有されていない。従って、このrootされた受信するキーは、KNodeのみが安全な方法でアクセスできる。
【0092】
あるいは、又はさらに、通信ネットワークは、この限りではないが、例えば量子安全ネットワーク(例:量子クラウド)及び/又は古典的通信ネットワークに基づくことができる。例えば、1つ又は複数のキーサービングノード(KNodes)が量子安全ネットワーク内にある場合、それぞれの量子安全通信チャネルを介して相互に通信することができる。このキーセットは、量子キー配布プロトコルを用いて量子安全なネットワークに分散され、量子分散キーセットを生成する。そのため、KNodesは量子分散キーの集合であるキーセットに量子安全アクセスすることができる。KNode及び/又はデバイス間の各量子安全通信チャネルは、量子分散キー、又は手動キーフィルプロセス等から得られる分散キーで暗号化された通信チャネルから構成される、又は通信チャネルを表すことができる。
【0093】
ただし、量子安全性を確保するためには、量子分散キーのセット又は1つ又は複数の量子分散キーのセットから導出された安全な量子分散キー又はキーでもよい。及び/又は、1つ又は複数の量子分散キー及び量子分散キーを及び量子安全なキーフィルプロセスで導出されたものでもよい。
量子分散キーのセットは、2つ又はそれ以上の量子安全ネットワーク上(例:OGR/地上トランシーバ等)にある量子サーバーに格納してもよい。各量子サーバは、他の量子サーバー明らかに異なる物理的位置にあり、量子キー分散システムは、量子分散キーのセットを各量子サーバーに導出及び分散する。イニシエーターデバイス/エンドポイントとレシーバーデバイス/エンドポイント間でキー確立プロトコルを使用してもよく、両者は異なる物理的位置(例:異なる量子サーバ/KNode)から同じキーを受信するが、量子安全な方法(例:光子的)で物理的位置に送られた量子分散キーにrootしている。
【0094】
例えば、量子分散キーは、この限りではないが、量子キー分散システム/プロトコルに基づき物理的に異なる箇所にある量子サーバーに送ることができる。例えば、衛星量子キー分散システムと衛星及び2つ又は複数の異なった箇所に位置する光地上受信機間の光/衛星通信、2つ又は複数の物理的位置に存在する地上トランシーバーの光ファイバーチャネルを持つ地上の量子キー分散システム、又は上記述べた両方、それらの修正、本文書に記載されている通りである。
及び/又はアプリケーションの需要等に応じる。
【0095】
量子安全ネットワーク、量子保護ネットワーク、量子クラウド又は量子クラウドインフラストラクチャは、通信ネットワークのインフラストラクチャ部分又は要素間の通信のために量子安全/保護チャネルを使用する任意の通信ネットワークを構成又は表すことができ、インフラストラクチャ部分又は要素は、この限りではないが、例えばクラウドインフラストラクチャ要素、量子サーバー、キーノードサーバ、OGR、地上受信機、ノード、通信ネットワークのコンピューターデバイス、及び/又は通信ネットワーク内の量子安全チャネルを介して相互接続された他のコンピューターデバイス、装置又はコンポーネントを含む。インフラストラクチャ要素又はその一部間の各量子安全/安心通信チャネルは、量子分散キー、あるいは1つ又は複数の量子分散キーから導出されたキー、及び/又はキー生成のための自動/手動キーフィルプロセスなどで暗号化された通信チャネル(例:古典通信チャネル)を構成又は表す場合がある。量子ネットワーク、量子安全ネットワーク、量子安全ネットワーク、量子クラウド、及び/又は量子クラウドインフラストラクチャ等の用語は、本文書において互換的に使用される場合がある。
【0096】
デバイス又はエンドポイントは、ここで定義するキー確立プロトコルの要求又は使用をリクエストする古典的な保護されたネットワーク、クラウドインフラストラクチャ、量子保護ネットワーク及び/又は量子クラウドインフラストラクチャのクライアントであるコンピューターデバイスを含む又は代表例とする。これには、古典的な保護されたネットワーク及び/又は量子保護チャネルと量子保護ネットワーク、及び/又はその両方にある古典的な保護されたチャネルを用いてのキーの確立を要求することも含まれる。本発明によるデバイス又はエンドポイントデバイスの例としては、この限りではないが、例えば、ユーザーデバイス;モバイルデバイス;スマートフォン;パーソナルコンピュータ;ラップトップ;ポータブルコンピューターデバイス;いかなるタイプのIoTデバイス(Information of Things);M2M(Machine-to-Machine)デバイス、他の例としては、この限りではないが、クラウドサーバ又は通信ネットワークと通信するモバイルデバイス、サーバーアプリケーション(例:サーバー)と通信するクライアントアプリケーション(例:モバイルクライアント)、クラウドサーバーと通信する携帯電話、サーバーと通信する一般的なアプリケーションクライアント、データベースと通信するクライアントアプリケーション、ドローン又は他のデバイス/コンピューターデバイスと通信するコマンド・アンド・コントロール・アプリケーション、他の衛星電話と通信する衛星電話、他の車両又はクラウドサービス/プロバイダーと通信する自律走行車、クラウドサービスと通信する産業用監視IoTデバイス等が挙げられる。これには、古典的な保護されたネットワークにおける古典的な保護チャネル、及び/又は量子保護ネットワークにおける量子保護チャネル、及び/又はその両方の組み合わせ、本文書に記載されるようなそれらの組み合わせ、それらの変更、及び/又はアプリケーションの要求に応じて、古典保護チャネルを使用して確立されたキーを要求することが含まれる。これには、古典的な保護されたネットワークにおける古典的な保護チャネル、及び/又は量子保護ネットワークにおける量子保護チャネル、及び/又はその両方の組み合わせ、本文書に記載されるようなそれらの組み合わせ、それらの変更、及び/又はアプリケーションの要求に応じて、古典保護チャネルを使用して確立されたキーを要求することが含まれる。本発明によるデバイス又はエンドポイントデバイスの例としては、この限りではないが、ユーザーデバイス;モバイルデバイス;スマートフォン;パーソナルコンピュータ;ラップトップ;ポータブル/コンピューターデバイス;いかなるタイプのIoT(Information of Things)デバイス;M2M(Machine-to-Machine)デバイス;他の例としては、この限りではないが、クラウドサーバー又は通信ネットワークと通信する携帯電話、サーバーアプリケーション(例:サーバー)と通信するクライアントアプリケーション(例:モバイルクライアント)、クラウドサーバーと通信する携帯電話、サーバーと通信する一般的なアプリケーションクライアント、データベースと通信するクライアントアプリケーション、ドローン又はその他デバイス/コンピューターデバイスと通信するコマンド・アンド・コントロール・アプリケーション、他の衛星電話と通信する衛星電話、他の車両又はクラウドサービス/プロバイダーと通信する自律走行車、クラウドサービスと通信する産業用監視IoTデバイス、いかなるコミュニケーションデバイス、コンピューターデバイス又はサーバー等その他古典的保護されたネットワーク又はクラウドインフラストラクチャのクライアントであるもので古典的保護されたチャネルを通じて通信している古典的保護されたネットワーク/クラウドインフラストラクチャ及びその他アプリケーションの要求;及び/又は通信デバイス、コンピューターデバイス、サーバーなどその他量子保護ネットワーク又は量子クラウドインフラストラクチャのクライアントであり、量子保護チャネル又は量子クラウドインフラストラクチャ上でアプリケーションデマンドとして通信できるものが挙げられる。
【0097】
イニシエータデバイス又はエンドポイントは、受信デバイス又はエンドポイントとの間で鍵確立プロトコルを最初に開始するデバイス又はエンドポイントを構成又は表す場合がある。その中で、バイロケーションキーは、イニシエータデバイス/エンドポイントとレシーバーデバイス/エンドポイントに分散され、その間の最終キーを確立する。バイロケーションキーは、2つの論理的又は物理的な場所に確立された乱数R_Bを代表するデータ又は記号から構成又は表すことができ、R_Bの各異なるコピーが乱数にrootされている場合、量子安全な手段を通じて、異なる論理的又は物理的位置にある乱数R_Qに送ることができる。バイロケーションキー(古典的ネットワーク/量子クラウド/量子ネットワークに既知)は、古典的ネットワークや量子クラウド/ネットワークを信頼できないとレンダリングする既知ではない古典的ネットワーク/量子クラウド/量子ネットワークに位置するイニシエーターとレシーバーデバイス間で共有されるキーの確立又は作成のために用いることができる。レシーバーデバイス又はエンドポイントはイニシエーターデバイス又はエンドポイントと同じバイローケーションキーを受信するキーの確立を要求する異なるデバイス又はエンドポイントを構成又は表すことができる。但し、
図1aから
図4bにてレシーバーデバイスはエンドデバイスとして表されているが、これは例示であり、本発明はこの限りではない。レシーバーデバイスはこの限りではないが、キーサービングノード又はキーノードデバイス(例:KNode)等の他のネットワークデバイス/ノードのコンポーネントであり、これにより、イニシエータデバイスは、キーノード等でのさらなる処理のために、及び/又はアプリケーションの要求に応じて、キーノード(例:KNode)とキーを確立することができることを有識者には理解を願う。
【0098】
キーサービングノード(KNode)は、この限りではないが、例えば通信ネットワーク内に安全に分散されたキーのセットにアクセスする機能、及び/又は、本文書で説明するキー確立プロトコルにおいてキーのセットを使用するための暗号処理機能を含むいかなるコンピューターデバイス又はノードを構成又は表すことができる。例えば、量子保護されたネットワーク(又は量子クラウド)内のキーサービングノードは、量子安全なサーバー(例:OGR又は地上トランシーバ)の一部あるいは量子安全サーバーに接続され、量子安全サーバーから量子分散キーのセットを受信する/コンピューターデバイス又はノードで構成される、又はそれを表すことができる。この例では、キーサービングノードは、量子安全サーバの構成要素又は一部である可能性があり、したがって、本発明によると、キー確立プロセスを実施するために、量子分散キーセットの1つ又は複数の量子分散キーを受信する可能性がある。別の例では、当発明によると、量子安全ネットワーク内の量子安全チャネルを介して量子安全サーバーに接続されおり、キー確立プロセスを実行するための量子分散キーのセットの1つ又は複数の量子分散キーを受信すると、キーサービングノードは量子安全サーバーの外部に位置してもよい。
【0099】
キー確立プロトコルは、イニシエーター、レシーバー、キーサービングノード(KNodes)によって生成される様々なノンスを使用するように構成されており、これらは、KNodeに適切なイニシエーターやレシーバーリンク情報(L)パケットに伝達され、各KNodeが通信ネットワーク上に安全に分散された同じキーのセットを含むキープール(又はKEYPOOL)にアクセスを許可され、バイローケーションキー及び/又はintermediateバイローケーションキーその他を導出するために用いられる。これによりイニシエーターデバイスとレシーバーデバイスの間でネゴシエートされたバイローケーションキー(K_BK)が、ユニークでリプレイ攻撃を防御する最終キー又は確立キーを形成するために使用されることが保証される。最終的なキーは、バイローケーションキーであってもよいし、バイローケーションキーからイニシエーターデバイスとレシーバーデバイスのそれぞれが導出した共有キーであってもよい。例えば、イニシエーターデバイスがIntermediate バイローケーションキーを要求すると、イニシエーターデバイスは対応するKNodeからリクエスト毎に異なるIntermediateバイローケーションキーを受信する(例:call to create_intermediate_bilocation_key)。同じリンク情報データを通過する(L)際にも、これはIntermediate バイローケーションキー要求において、イニシエーターであるKNodeのキープールから選択されたキーをランダム化するために、Nonce N_IRを使用する必要があるためである(例:ネットワークが量子安全ネットワークである場合、キーセットはQKDキーセットでもよい)。あるいは又はさらに、対応するキーサービングノード(KNode)がイニシエーターからのIntermediate バイローケーションキー要求に対するレスポンスとして生成したアンチリプレイノンスN_REPIも可能。キー確立プロトコルはさらに、受信側デバイスが、指定された、又はそれぞれのキーサービングノード(KNode)からのみバイローケーションキーを要求及び受信できないように構成される。例えば、最初のKNodeがバイローケーションキーを要求した場合、(例:create_intermediate_bilocation_key()の代わりにcreate_bilocation_key()を呼び出す)、異なるバイローケーションキーが生成される。なぜなら、レシーバーの識別は、(例:create_bilocation_key()関数などで)呼び出し元の認証から生成されるため、もしイニシエーターがレシーバーのふりをしたり、バイローケーションキーを要求したりすると、異なるリンク情報が形成され、その結果、レシーバーに与えられるキーとは異なるものとなるからである。同様に、レシーバーデバイスは、同じリンク情報データ(L)を渡しても、各バイローケーションキーリクエスト(例えば、create_bilocation_key()の呼び出し)ごとに異なるバイローケーションキーを受け取ることになる。これは、キーセットの同じキーがイニシエーターのKNodeのキープールから選択されることを保証するために、バイローケーションキー要求でノンスN_IRを使用する要求は、レシーバーのKNodeのキープールからも選択されること、及び/又はレシーバーからのバイローケーションキー要求に応答して、レシーバーのKNodeによって生成されるアンチリプレイノンスN_REPRを使用するからである。言い換えると、与えられたレシーバーのペアに対して、各レシーバーに関連付けられたそれぞれのKNodeが異なる場合、(例:create_biolocation_key()を呼び出すことにより)異なる鍵がイニシエーターKNode によって生成される。これは、イニシエーターを生成する際に、レシーバーのKNodeアイデンティティキーを使用するためである。
【0100】
例えば、”eavesdropper”(例:Eve)が量子安全ネットワーク(又は量子クラウド)に安全な接続を作成し、イニシエーターデバイスとレシーバデバイスの接続間で通信されたデータでバイローケーションキーを要求(例:create_bilocation_key()の呼び出し)した場合、Eveは異なるバイローケーションキー(例:K_BK_BK)を受信ことになる。なぜなら、リンク情報パケット(L)を形成する際にEveのアイデンティティが必要となり(この際に異なるキーが与えられる)Intermediate バイローケーションキーとイニシエーターデバイスとレシーバーデバイスの間で交渉された最終バイローケーションキーを生成する際には、イニシャルデバイスとレシーバーデバイス間で確立したユニークなバイローケーションキー(例:K_BK)に基づいたものとなり、リプレイ攻撃に対して守る。
【0101】
各キー、キーセット、量子安全/保護キー、バイロケーション・キー、intermediateバイロケーションキー、最終/確立キー等及び/又はノンスは、記号列又は記号列のセット(例:記号あたりn≧1の場合、n ビットはM=2n個の異なる記号で表される。)から構成又は表される。記号列の処理には、記号列のセットの結合が含まれる。例えば、この限りではないが、ワンタイムパッド暗号化/復号化、マスキング、記号がビットに変換されたときのビットに対する排他的論理和(XOR)演算、又は記号又は記号列の難読化セットに対する拡張XOR演算などに基づいて、第1の記号列が第2の記号列と結合される場合がある。
【0102】
第1の記号文字列の第1の記号集合と第2の記号文字列の第2の記号集合との結合は、この限りではないが、以下が挙げられる。第1及び第2の記号文字列の記号セットの対応する記号に対する排他的論理和(XOR)演算(例:記号文字列をビット列に変換し、ビット単位のXORの実行);第1及び第2の秘密記号列がビット記号の場合、ビットごとのXOR演算の実行;第1及び第2の記号文字列の記号セットに対する拡張XOR演算(例:ビット単位のXOR演算の数学的特性を保持する記号に対する「記号XOR」演算の数学的に定義された拡張セットを使用);第2の秘密の記号の記号セットを使用して、第1の秘密の記号の記号セットをワンタイムパッド暗号化;最初の記号文字列の記号集合に対する他のトラップドア又は暗号化操作し、第2のデバイスは、第2のデバイスによって受信された第2の記号文字列の記号セットを使用して、第1の記号文字列の記号セットを復号化して導出することができる。
【0103】
従ってイニシエーターデバイスとレシーバーデバイスは、上記のキー確立プロセスを使用して、キーを生成することができ、確立/最終キーは、この限りではないが、例えばイニシエーターデバイスとレシーバーデバイス間の安全な通信のために使用される;又は、イニシエーターとレシーバーを含むパーティ間でグループキーを確立するために、他のグループキー確立プロトコルで使用するための共有キーをイニシエーターとレシーバーの間で確立する;又は、イニシエーターデバイスとレシーバーデバイス間の通信セッションを保護する;イニシエーターデバイスとレシーバーデバイスの間に長寿命の通信チャネルを確立する;確立されたキーは、イニシエーターデバイスとレシーバーデバイス間で署名のサイン認証を確立し、この限りではないが、以下のように使ってもよい。
メッセージ認証コード(MAC)やタグなどを作成する。イニシエーターデバイスとレシーバーデバイス間で確立されたキーは、各イニシエーターデバイスとレシーバーデバイス間で実行される他のタイプの暗号アプリケーション/操作に使用することができる。
【0104】
図1aは、安全な通信ネットワーク102(例:古典的暗号技術を用いる古典的な安全なネットワーク)クラウドシステム/インフラストラクチャ100、そして少なくとも第1及び第2のデバイス104a~104bが安全な通信ネットワーク102を用いた通信を示す概略図である。ネットワーク102は、少なくとも第1のキーノード106a及び第2のキーノード106b(又は複数のキーノード106a~106b)を含む。第1及び第2のデバイス104a~104bの各々ならびに対応する第1及び第2のキーノード106a~106bは、第1及び第2のデバイス104a~104bが第1及び第2のデバイス104a~104bの間でキー(又は確立キー/最終キー)を交換及び/又はキーに合致することを可能にするために、本文書で説明するようなキー交換プロトコル/プロセスを実行するように構成することができる。確立されたキーは、限定するものではないが、例えば、その間の通信セッションの確保、グループキーの形成、以降のメッセージ署名、及び/又は他の暗号操作もしくはアプリケーションなどに使用することができる。これを行うために、キーノード106a~106bの各々は、キーセットとも呼ばれる安全に分散されたキーの同じセット、又は各キーノード106a~106bに関連付けられたキープール内のキーセットにアクセスすることができる。この例では、キーノード106a~106bの各々は、それぞれ、安全なサーバー108a又は108bを確保するためチャネル107a又は107b(例:古典的な暗号化技術を使用する古典的に安全なチャネル)の通信を用いていてもよい。あるいは、キーノード106a~106bの各々は、それぞれ、安全なサーバ108a又は108bの一部であってもよいが、安全なチャネル107a又は107bを省略してもよい。この例では、ネットワーク102の各安全なサーバ108a又は108bは、安全な分散キーストア108a-1(例:ハードウェア・セキュリティ・モジュール(HSM))又は108b-1(例:HSM)を含んでもよい。あるいは、各安全なサーバ、分散キーストア108a-1又は108b-1を含まず、安全なネットワーク102の別のユーザーノード又はデバイス/サーバ(例:顧客所有の機器又は企業の機器等)が安全な分散キーストア(又はHSM)を含み、そこから安全なサーバ108a又は108bが、当該別のユーザノード、デバイス/サーバなど内に格納するための分散キーを送信又は安全に預けることができる。安全な分散キーストア108a-1又は108b-2は、分散されたキーセット又はキーセットを安全に格納するように構成することもできる。各キーセットは、アプリケーションの要求に応じて、安全な分散キーストア108a-1と108b-2との間で同じキーセットが共有されるように構成された適切なキー配布システム又は他のシステム109を介して生成され、安全なサーバ108a-108bの各々に送信されることが想定される。キー配信システム109は、限定するものではないが、例えば古典的キー分散、手動キー分散、量子キー分散等、及び/又はアプリケーションの要求に応じて、適切なキー分散プロセス、システム又は技術を使用することができる。キー分散システム109は、第1及び第2の安全なサーバ108a及び108bが同じキーセットにアクセスできるようにし、第1のキーノード106a及び第2のキーノード106bも、保護通信ネットワーク102の保護通信チャネル107a及び107bを介してこの同じキーセットにアクセスできるようにすると仮定する。
【0105】
HSMは、物理的なコンピューターデバイス、コンポーネント、又は装置(例:インテル・ソフトウェア・ガード・エクステンション(SGX)(RTM)エンクレーブの機能を含む装置/コンポーネント)であって、この限りではないが、例えば、キーの分散セット、暗号キー又は分散キーを保護及び管理するように構成され、この限りではないが、例えば、量子サーバ等の暗号操作及び/又はコア機能を実装し、この限りではないが、例えば、クリティカル命令、コード、コンピュータ実装メソッド/プロセス等のコアモジュール/コンポーネントの安全な実行を提供する。HSMは、例えば、この限りではないが物理的及び/又はソフトウェア的な侵害等の場合に秘密/キー/QDキー等を消去することができる改ざん防止技術を含む。HSM は、安全なサーバ外にある顧客が提供する機器とすることも可能であり、配布システム109は、顧客のHSMにキーを転送するだけである。
【0106】
さらに、キーノード106a及び106bは、本発明によりキー確立プロセス中に暗号処理を実行することができると記載されているが、これは例示に過ぎず、本発明はその限りではない。HSMは、関連するキーノード106a又は106bに代わって、各HSM内部に格納されたキーセットの1つ又は複数のキーに対して暗号処理を実行する機能を含むこともでき、これは、本発明によるキー確立プロセスをさらに安全にするため、及び/又は、アプリケーションの要求に応じて使用することができることは、有識者には理解願う。例えば、キー自体は、第1のキーノード106aに接続された第1のHSM108a-1の内部に安全に格納されてもよいので、本発明によるキー確立プロセス/プロトコル中に、及び/又は
図1a~
図4bを参照して本明細書に記載されるように、対応するキー、intermediateキー、及び/又はバイロケーション鍵などを使用して鍵ノード106aによって実行される暗号処理の一部、あるいは大部分及び/又は全てが、対応するHSM108a-1の内部で実行されてもよい。同様に、第2のキーノード106bによって接続又はアクセス可能な第2のHSM108b-1についても、本発明によるキー確立プロセス中、及び/又は
図1a~
図4bを参照して本文書に記載されている通り、第2のキーノード106bによってキーセットの対応するキー、中間キー、及び/又はバイロケーションキーなどを用いて実行される暗号処理の一部又は大部分及び/又は全部が、第2のHSM 108b-1内部で実行してもよい。これにより、第一のキーノード106aは、キーセットのキー及び/又はその上で実行される操作を決して見えないようにすることができ、本文書で述べるキー確立プロセスのセキュリティをさらに強化することができる。同様に、第2のキーノード106bによって接続又はアクセス可能な第2のHSM108b-1については、本発明によるキー確立プロセス中、及び/又は
図1a~
図4bを参照して本文書に記載している通り、キーセット、intermediateキー、及び/又はバイロケーションキー等からの対応する鍵を用いて第2の鍵ノード106bによって実行される暗号処理の一部又は大部分及び/又は全部が、第2のHSM108b-1の内部で実行してもよい。これにより、第2のキーノード106bが、キーセットのキー及び/又はその上で実行される操作を決して見えないようにすることもでき、本文書で述べるキー確立プロセスのセキュリティをさらに強化することができる。
【0107】
下記では、第1のキーノード(例:KNodeA)と第2のキーノード(例:KNodeB)が物理的に異なる位置(例:KNodeAoKNodeB)に配置してもよいと記されているが、これは単純化のためであり、例示であって、本発明はこの限りではないことに対する有識者の理解を願う。本発明又は
図1a~
図4bに基づき本文書で述べる通り、及び/又は本文書で述べるキー確立システム、装置、及びプロセスは、第1と第2のキーノードが同じキーノードである場合、又は同じキーノード上の異なる2つの論理的位置にある場合、又は同じ論理的キーノードである場合(例:KNode A==KNode B)にも適用可能であるか、又は、考慮するように変更可能である。これは、イニシエーターエンドポイント/デバイスとレシーバーエンドポイント/デバイスが、地理的に異なる2つのKNodeのサーバー/コンピューターデバイスではなく、KNode又は論理KNodeの同じサーバー/コンピューターデバイスと通信している場合であり、その結果、KNodeは、「それ自身と共有されるキー(すなわちキーのみが保有又は既知している)のセット」(例:QKDキーの配列から1つのQKDキー)からキーを1つ選択し、バイローケーション又は Intermediate バイローケーションキーを対応するエンドポイント/デバイスのためのイニシエーターエンドポイント/デバイスとレシーバーエンドポイント/デバイス間のキーを確立するための生成に使用するように構成されている。
【0108】
図1aは、安全なサーバ108a~108bの各々が他とは明らかに異なるものであり、他とは異なる位置に配置されていることを示す。この例では、キーノード106a~106bの各々は、古典的安全チャネル107a~107b(又は安全な古典的チャネル)を介して、対応する安全なサーバー108a~108bに接続されている。いくつかの例では、キーノード106a~106bの各々は、安全なサーバ108a~108bに古典的安全チャネル107a~107bを介して接続し、物理的に同じ位置に配置してもよい。他の例では、キーノード106a~106bの一方は、安全なチャネル107a~107bを介して接続されるそれぞれの安全なサーバー108a~108bとは異なる物理的位置に配置してもよい。安全なチャネル107a~107b(例:古典的な安全なチャネル)を介して接続されている物理的に異なる場所に位置する安全なサーバー108a~108bは、2つしか存在せず、それぞれの2つのキーノード106a~106bと接続されているが、これは例示であり、本発明はこれに限らず、それぞれが異なる物理的位置に配置された複数の異なる安全なサーバーがネットワーク102に存在してもよいことを有識者の理解を願う。ネットワーク102内には、それぞれが物理的に異なる位置に配置された複数の異なる安全なサーバが存在し、各安全なサーバーは、当該各安全なサーバーの位置に配置された対応するキーノードを有し、及び/又はそれぞれが物理的に異なる位置に配置され、それぞれが対応するキーノードに安全なチャネルを介して接続された複数の異なる安全なサーバが存在し、各安全なサーバーは、接続先の安全なサーバーと同位置に配置しなくてもよい。
【0109】
例えば、
図1aにおいて、分散キーセット又はキーセットは、これに限らず、例えば、安全なチャネル109a及び109bを介して分散キーセットを代表するデータを生成し、安全なサーバ108a及び108bとそれぞれ通信するための安全なキー分散プロトコルを実行するように構成された従来の古典的又は手動のキー分散システム109を使用して生成及び分散することができる。使用される安全なキー分散システム109に関わらず、安全な分散キーストア108a-1~108b-1の各々には、安全に分散された分散キーのセットが含まれる。安全なサーバー108a~108bの各々は、対応する安全な分散キーストア108a~108b-1に格納されている分散キーの同じセット又はサブセットを含んでもよい。安全な分散キーストア108a-1~108b-1に格納された分散キーセットは、安全なネットワーク102の安全な通信チャネル107a~107cの各々、及び/又は、ネットワーク102及び/又はキーノード106a/106bと、第1及び第2のデバイス104a~104bとの間の安全なチャネル105a~105bの各々の設定のために使用してもよい。すなわち、各安全な通信チャネルは、分散キーセットから対応する安全なに分散されたキーで暗号化され、及び/又は分散キーセット又はキーセットの1つ以上の安全なに分散されたキーから導出されたキーで暗号化された通信チャネルから構成されるか、又は通信チャネルを表すことができる。各安全なチャネルは、チャネルの各側によって合致したキーセットのキーに基づく対称暗号化を使用する。簡易化のため、第1のデバイス/エンドポイント104a、第2のデバイス/エンドポイント104b及び量子保護されたネットワーク102間の接続は、予め確立された分散キーによって、及び/又は任意の他のタイプのキー確立プロトコルを介して保護され、保護されたネットワーク102及び/又はクラウドシステム/インフラストラクチャ100内のサービス間通信も同様に、キーセット等からの安全なチャネル/接続によって保護されると仮定する。
【0110】
図1aの例では、第1のキーノード106aは、第1のクラス的に安全なチャネル105aを介して第1のデバイス104aと通信している。第2のキーノード106bは、第2のクラス的に安全なチャネル105bを介して第2のデバイス104bと通信している。さらに、保護されたネットワーク102内の各キーノード106a~106bは、第3のクラス的に安全なチャネル107cを介して互いに通信している。キーノード106a~106bと安全なサーバ108a~108bと対応する古典的安全なチャネル105c、107a、107b、107cは、安全なクラウド/ネットワーク102の一部を形成する。第1及び第2のキーノード106a~106bが記載されているが、これは例示に過ぎず、本発明はそれに限らず、安全ネットワーク102は、複数のキーノードと複数の安全サーバを含むことができ、各安全なサーバは、複数のキーノードの対応するキーノードに古典的安全チャネルを介して接続され、キーノードの各々は、必要及び/又は要求に応じて、1つ又は複数の他のキーノードと古典的安全なチャネルによって(例:必要時に)接続されることを特徴とすることに有識者の理解を願う。
【0111】
本文書に記載通り、第1及び第2のデバイス104a~104bの各々ならびに対応する第1及び第2のキーノード106a~106bは、第1及び第2のデバイス104a~104bが、以下のような確立キー又は最終キーを交換及び/又は合致することを可能にするためのキー確立/交換プロトコル/プロセスを実行するように構成され得る。この限りではないが、例えば、各デバイス104a~104b上で、及び/又は各デバイス104a~104b間で、暗号操作/アプリケーションで使用するための、キーセットの1つ又は複数の分散キーなどから導出される確立/最終キーなどである。例えば、確立されたキーは、第1及び第2のデバイス104a~104b間の通信セッションを保護するために、第1及び第2のデバイス104a~104b間で使用してもよい。
別の例では、確立された/最終キーは、第1及び第2のデバイス104a~104bの各々上で、及び/又は第1及び第2のデバイス104a~104bの各々間で、その上で動作する暗号アプリケーションのタイプなどに基づいて、他の暗号操作において使用してもよい。この例では、第1のデバイス104aをイニシエーターエンドポイント104aと呼び、第2のデバイス104bをレシーバエンドポイント104bと呼ぶ。各デバイス/エンドポイントは固有の識別を有し、各デバイス/エンドポイント104a~104bは、保護されたネットワーク102の異なる又は固有のキーサービスノード(KNode)106a又は106bと通信するための安全なチャネル105a及び105bを既に確立しているものと仮定する。この限りではないが、例えば、ネットワーク102内のアプリケーション・プログラマブル・インタフェース(API)ゲートウェイ、ゲートウェイ及び/又はロードバランサー等を使用して達成することができる。例えば、各エンドポイント104a/104bの一意的な識別は、限この限りではないが、例えば、対応するKNode106a/106b、及び/又はKNode106a/106bを含むネットワーク102のゲートウェイ等との当該各エンドポイント104a/104bの認証中に基づいてもよく、これにより、当該各エンドポイント104a/104bのエンドポイント識別子(ID)が一意的かつ不可逆的に識別される。各エンドポイント104a/104bは、対応するKNode 106a/106bとバイロケーションキーのコピーをネゴシエーションする。エンドポイント104a/104bの両方が対応する異なるKNodeに対して別々に認証するので、相互認証が提供される。また、量子ネットワーク102内のKNode104a~104b及び/又は安全なサーバ108a~108b間の全ての通信チャネル107a~107c(例:クラウドインフラストラクチャ内の全てのサービス間接続)は適切に安全であり、チャネル107a~107cの各々は古典的に安全な通信チャネルであると想定する。さらに、イニシエーターエンドポイント104aとレシーバーエンドポイント104b間の接続は、もし存在すれば、この限りではないが、例えば、トランスポートレイヤセキュリティ(TLS)又は同等の古典的に安全な又は暗号化された通信チャネルを介することができる。これは明確なチャネルではない。
【0112】
キーの確立/交換プロトコル/プロセスは、対応するKNode106aと106bがそれぞれイニシエーターエンドポイント104aとレシーバーエンドポイント104bと共有するバイローケーションキーから導出されるキーを確立する。ここで、イニシエーターエンドポイント104aは、レシーバーエンドポイント104bで使用されているKNode106bとは異なるKNode106aからバイローケーションキーのコピーを収集するために使用するKNode106bとは異なるKNode106aからバイローケーションキーのコピーを収集する。あるいは、又はさらに、これはイニシエーターエンドポイント104a及び/又はレシーバーエンドポイント104bが、バイローケーションキーを使用して、例えば量子安全通信、量子安全デジタル署名アプリケーションなど、この限りではないが、1つ以上の他の暗号操作やアプリケーションで使用するための最終的なキーを生成することを可能にする;イニシエーターデバイスとレシーバーデバイスを含むパーティーのグループ間でグループキーを確立するための他のグループキー確立プロトコル;イニシエーターデバイスとレシーバーデバイスの間で長寿命の通信チャネルを確立する;イニシエーターデバイスとレシーバーデバイスの間で確立されたキーは、それぞれによって、又はイニシエーターデバイスとレシーバーデバイスの間などで実行される他の任意のタイプの暗号アプリケーション/操作のために、及び/又はアプリケーションの要求に応じて使用することができる。
【0113】
さらに、キー確立プロセスは、1つ又は複数のハンドシェーキングプロセスの組み合わせ、エンドポイント及び/又はKNode間の異なるノンスの分散、及び/又はエンドポイントへの異なる中間バイロケーションキーの分散を使用するように構成されているが、この限りでなく、例えば、数学的/暗号学的にリプレイ攻撃を防止すること、eavesdropper(例:Eve)が1つ又は複数のハンドシェーキングプロセスの一部として交換されたデータを傍受した場合にキーにアクセスすることを防止すること、及び/又はEveが1つ又は複数のハンドシェーキングプロセスの一部として交換されたデータを傍受した場合に結果/最終キーにアクセスすることを防止することができる。1つ又は複数のハンドシェーキングプロセスの一部として交換されたデータを傍受した場合に、キーにアクセスすることを防止すること、及び/又はEveが保護されたネットワーク102に侵入した場合に、Eveが結果/最終キーにアクセスすることを防止することが可能である。
【0114】
確立又は最終キーは、以下のいずれかによって生成される:a)イニシエーターデバイス104aとレシーバーデバイス104bは、物理的に全く異なる位置から収集されたバイローケーションキーのコピー又はその関連部分とレシーバーデバイス104bによって生成された両デバイス104a-104bに既知のノンスに基づいて生成されている。b)InitiatorとReceiverデバイス104a-104bが互いにチャレンジノンスを送信し、受信したチャレンジノンスとバイローケーションキーに基づいて対応するチャレンジレスポンスを計算するチャレンジ/レスポンスプロトコル。その中で、受信したチャレンジレスポンスがイニシエーターとレシーバーデバイス104a-104bによって確認されると、チャレンジレスポンスの対応する未送信部分の組み合わせによって最終キーが生成される。
【0115】
従ってイニシエーターデバイスとレシーバーデバイス104a-104bは、上述したキー確立プロセス(及び/又は
図1bから
図4bを参照して述べたプロセス)を用いて、最終キーを生成又は確立することができる。この限りではないが、例として、イニシエーターデバイスとレシーバーデバイス間の安全な通信を確立し、イニシエーターデバイスとレシーバーデバイスを含むパーティーのグループ間でグループキーを確立するための他のグループキー確立プロトコルで使用するために、イニシエーターデバイスとレシーバーデバイス間で共有キーを確立する;イニシエーターデバイスとレシーバーデバイス間の通信セッションを安全にする;イニシエーターデバイスとレシーバーデバイス間に長寿命の通信チャネルを確立する。確立されたキーは、例えばメッセージ認証コード(MAC)やタグなどを作成するために、限定されることなく使用することができる。イニシエーターデバイスとレシーバーデバイスの間で確立された最終キーは、イニシエーターデバイスとレシーバーデバイスの各々によって、又はそれらの間で実行される他のタイプの暗号アプリケーション/オペレーションなどに使用されてもよいなどそれらの変更や組み合わせ及び/又は用途に応じての解釈を要する。
【0116】
本文書では、第1のキーノード(例:KNode A)と第2のキーノード(例:KNode B)が物理的に異なる位置(例:KNode AoKNode B)に配置されることを記すが、これは簡略化のためであり、例示であって、本発明は限りではなく、有識者の理解を願う。本発明によるキー確立システム、装置及びプロセスは、第1のキーノードと第2のキーノードが同一のキーノードである場合、又は同一のキーノード上の2つの異なる論理的位置を有する場合、又は同一の論理的キーノード(例:KNode A==KNode B)である場合にも適用可能である。ここで、イニシエーターのエンドポイント/デバイスとレシーバーのエンドポイント/デバイスは、物理的に異なる位置にある2つのKNodeのサーバー/コンピューターデバイスではなく、KNode又は論理KNodeの同じサーバー/コンピューターデバイスと通信し、その結果、KNodeは、キーセットからキーを選択するように構成される(例.その結果、KNodeは、イニシエーターエンドポイント/デバイスとレシーバーエンドポイント/デバイスの間でキーを確立する際に、対応するエンドポイント/デバイスのためのバイローケーションキー又はIntermediate バイローケーションキーを生成する際に使用するために、「それ自身と共有されるキー(すなわちキーのみが保有又は既知しである)」のセットからキーを選択するように構成されている。
【0117】
図1b及び
図1cは、量子クラウドシステム/インフラストラクチャ110及び120の例を示す概略図である。安全な通信ネットワーク102は、量子安全ネットワーク(又は量子クラウド)112又は122であり、少なくとも第1及び第2のデバイス104a~104bは、量子安全ネットワーク102と通信するように構成される。
簡易化するため、
図1aで使用された参照数字は、
図1b及び
図1cを説明するときに同じ又は類似の構成要素に再使用される。量子安全ネットワーク110又は120は、少なくとも第1のキーノード106a及び第2のキーノード106b(又は複数のキーノード106a~106b)を含む。第1及び第2のデバイス104a~104bの各々ならびに対応する第1及び第2のキーノード106a~106bは、第1及び第2のデバイス104a~104bが、第1及び第2のデバイス104a~104b間の最終キー又は確立キーとして、量子安全な方法でキーを交換及び/又は合致することを可能にするためのキー確立/交換プロトコル/プロセスを実行するように構成されている。(例:その間の通信セッションの保護、グループキーの形成、将来のメッセージ署名及び/又はその他暗号操作もしくはアプリケーション等のため)これを実行するには、キーノード106a~106bの各々は、量子安全分散キーセットであるキーセットにアクセスすることができる。 この例では、キーノード106a~106bのそれぞれは、量子安全チャネル117a又は117bを介して、安全サーバ108a及び108bと通信することができる。セキュアサーバ108a及び108bは、現在、それぞれ、量子サーバ108a又は108b(例:OGR A又はOGR B)と呼ばれ、キーノード106a~106bは、それぞれ量子サーバ108a又は108b(例:OGR A又はOGR B)の一部であり、量子安全チャネル117a又は117bを省略してもよい。この例では、各量子サーバー108a又は108bは、量子分散キーストア108a-1及び108b-1と呼ばれ、量子分散キーセット(キーセット)を確保するための安全な分散キーストア108a-1(例:HSM)又は108b-1と、量子トランシーバ108a-2又は108b-2(例:
図1bではこれは望遠鏡であってもよく、
図1cではこれは光量子トランシーバであってもよい)とを含んでもよい。あるいは、各量子サーバー108a又は108bは、量子分散キーストア108a-1又は108b-1を持たず、別のユーザノード又は装置/サーバ(例:顧客所有の装置又は企業設備等)が量子分散キーストア(又はHSM)を含み、そこから量子サーバ108a又は108b(例:OGR A又はOGR B)が、当該別のユーザノード又は装置/サーバ等内に保管するための量子分散キーを送信又は安全に預けることができる。量子分散キーストア108a-1又は108b-2は、量子安全分散キーセットを安全に格納するように構成される。
【0118】
量子分散キーストア108a-1、108a-2は、
図1aを参照して述べた通り、保護・管理するように構成されたHSMであってもよい。この限りではないが、例えば量子サーバ等の暗号操作及び/又はコア機能を実装する、この限りではないが、例えば、重要な命令、コード、コンピュータに実装されたメソッド/プロセスなど、限定されるものではないが、暗号操作や量子サーバーのコア機能などを実装するコアモジュール/コンポーネントの安全な実行などである。HSMは、例えば、物理的及び/又はソフトウェア的な侵害等があった場合に、秘密キー/QDキー等を消去することができる改ざん防止技術を含むが、この限りではない。HSMは、物理的及び/又はソフトウェア的な侵害などの場合に、秘密キー/QDキーなどを消去することができる改ざん防止技術を含む。HSMは、OGRの外部にある顧客が用意した機器と使用することもでき、OGRは顧客のHSMにキーを転送するだけでよい。
【0119】
さらに、キーノード106a及び106bは、本発明によるキー確立プロセス中に暗号化操作を実行することができると述べることがあるが、これは例示に過ぎず、本発明はこの限りではなく、HSMは、関連するキーノード106a又は106bに代わって、HSM内に格納されたQKDキーに対して暗号処理を実行する機能を含む場合もある、
HSMは、関連するキーノード106a又は106bに代わって、HSM内部に格納されたQKDキーに対して暗号化操作を実行するための機能を含むこともでき、これは、本発明によるキー確立プロセスをさらに安全にするため、及び/又はアプリケーションの要求に応じて使用することができることを有識者には理解願う。例えば、QKDキー自体は、第1のキーノード106a/OGR 108a-2に接続された第1のHSM 108a-1の内部に安全に格納でき、本発明によるキー確立プロセス中に、及び/又は
図1a~
図4bを参照して本文書で述べるように、対応するQKDキー、intermediateキー、及び/又はバイロケーションキーなどを使用してキーノード106aによって実行される暗号処理の一部又は大部分及び/又は全てが、HSM 108a-1の内部で実行される。これにより、キーノード106aがQKDキー及び/又はその上で実行される操作を見えないようにすることができ、本文書で述べるキー確立プロセスのセキュリティを強化することができる。同様に、第2のキーノード106b/OGR108b-2に接続された第2のHSM108b-1では、本発明による及び/又は
図1a~
図4bを参照して本文書で述べるキー確立プロセス中に、対応するQKDキー、intermediateキー、及び/又はバイロケーションキー等を用いてキーノード106bによって実行される暗号処理の一部又は大部分及び/又は全部が、HSM108b-1の内部で実行される。これにより、キーノード106bがQKDキー及び/又はその上で実行される操作を見ることを防止することもでき、本文書でもベルキー確立プロセスのセキュリティをさらに高めることができる。
【0120】
図1b及び
図1cは、量子サーバー108a~108b(例:OGR/地上量子トランシーバ)の各々が他とは全く異なり、異なる位置に配置されていることを示す。キーノード106a~106bのそれぞれは、量子安全チャネル117a~117b(又は安全な古典チャネル)を介して、対応する量子サーバ108a~108bに接続されている。いくつかの例では、キーノード106a~106bの各々は、量子安全なチャネル117a~117bを介して接続されるそれぞれの量子サーバ108a~108bと同じ地理的位置に配置されている。その他の例では、1つ又は両方のキーノード106a~106bは、量子安全チャネル117a~117bを介して接続されるそれぞれの量子サーバー108a~108bと物理的に異なる位置に配置されている。異なる量子サーバー108a-108bは2つしかないが、それぞれ物理的に異なる位置に配置されていて、量子安全チャンネル117a-117bを介して2つのキーノード106a-106bと接続している。 これはあくまで例であり、この限りではないが、複数の量子サーバーが存在し、各量子サーバーは対応するキーノードがあり、これらのノードは量子サーバーは物理的に異なる位置にあり、各量子サーバーは量子安全チャネルを介して同じ又は異なる位置にある対応するキーノードに接続される。
【0121】
例えば、
図1bの場合、量子安全分散キーは、衛星量子キー分散システムを用いて生成・分散することができる。この限りでなく、例えば、衛星量子キー分散システム119は、量子トランシーバ108a-2~108b-2それぞれと、量子/非量子衛星チャネル119a-119bを介して量子分散キーセットを代表するデータを生成し、通信するための衛星量子キー分散プロトコルを実行するように構成される。別の例では、
図1cにおいて、量子安全分散キーは、例えば限定されないが、量子/非量子ファイバーチャネル119cを用いて量子分散キーセットを生成し分散するための地上量子キー配布プロトコルを、対応する量子トランシーバ108a-2~108b-2(例:光量子トランシーバ)とそれぞれ実行するように構成された地上ベースの量子キー配布システムを用いて生成され分散される。2つのタイプの量子キー配布システムについて簡単に説明したが、これは例示に過ぎず、本発明はこれに限らず、例えば、衛星量子キー分散、地上量子キー分散、衛星/地上ハイブリッド量子キー配布、及び/又は、本文書で説明するような、及び/又は、アプリケーションの要求に応じて、他のタイプの量子キー配布システム、それらの組み合わせ、それらの変更など、限定されることなく、任意のタイプの量子キー配布プロトコル及び/又は量子キー配布システムを使用できることを有識者に理解を願う。
【0122】
いかなる量子キー分散システム119(例:衛星/地上 QKD、又はそれらの組み合わせ、修正、アプリケーションの要求に応じる)を使用しても、量子分散キーストア108a-1~108b-1の各々には、量子分散キーセットが1つ含まれる。各量子サーバ108a~108bは、対応する量子分散キーストア108a~108b-1に格納されている量子分散鍵と同じセット又はサブセットが含まれる。量子分散キーストア108a-1~108b-1に格納された量子安全分散キーセットは、量子安全ネットワーク102の各量子安全通信チャネル117a~117c、及び/又は量子安全ネットワーク102と第1及び第2のデバイス104a~104b間の量子安全チャネル115a~115bをそれぞれ設定するために使用することができる。すなわち、各量子安全通信チャネル(又は量子保護通信チャネル)は、量子安全分散キーセットから対応する量子安全分散キーにより暗号化され、及び/又は量子安全分散キーセットの1つ又は複数の量子安全分散キーから導出された量子安全キーで暗号化された通信チャネルから構成され、又は通信チャネルを表すことができる。量子安全通信チャネルでは、通信チャネルの各側で合致する量子安全キーに基づく対称暗号を使用することができる。簡易化のため、第1のデバイス/エンドポイント104a、第2のデバイス/エンドポイント104b、及び量子安全ネットワーク112又は122間の接続は、事前に確立された量子安全分散キーによって保護されていると仮定する。また、量子安全ネットワーク112/122及び/又は量子クラウドシステム/インフラストラクチャ110/120内のサービス間通信も同様に、量子安全チャネル/コネクションによって保護されていると仮定する。
【0123】
図1bと
図1cの例では、第1のキーノード106aは最初の量子安全チャネル115aを介して第1のデバイス104aと通信している。第2のキーノード106bは、第2の量子安全チャネル115bを介して第2のデバイス104bと通信している。さらに、各キーノード106a~106bは、第3の量子安全チャネル117cを介して互いに通信している。キーノード106a~106b、量子サーバー108a~108b、対応する量子安全チャンネル115c、117a、117b、117cは、量子クラウド/ネットワーク112/122の一部を形成している。第1及び第2のキーノード106a~106bが記述されているが、これは例示であり、本発明はこの限りではなく、量子セキュアネットワーク112/122は、複数のキーノードと複数の量子サーバとを含み、各量子サーバは、量子セキュアチャネルを介して複数のキーノードのうちの対応するキーノードに接続され、各キーノードは、量子セキュアチャネルによって(例:必要時に)、必要に応じて、及び/又は要求に応じて、1つ又は複数の他のキーノードに接続される。
【0124】
本文書に記載の通り、第1及び第2のデバイス104a~104bの各々ならびに対応する第1及び第2のキーノード106a~106bは、第1及び第2のデバイス104a~104bが、以下のような確立キー又は最終キーを交換及び/又は合致することを可能にするためのキー確立/交換プロトコル/プロセスを実行するように構成される。この限りではないが、例えば、各デバイス104a~104b上で及び/又は各デバイス104a~104b間で暗号操作/アプリケーションに使用するために、量子安全な方法で1つ又は複数の量子分散キー等から導出された確立/最終キー等である。例えば、確立キーは、第1及び第2のデバイス104a~104b間の通信セッションを保護するために、第1及び第2のデバイス104a~104b間で使用されることがある。別例では、確立キーは、暗号化アプリケーションのタイプ等に基づいて、第1及び第2のデバイス104a~104bの各々上で、及び/又は第1及び第2のデバイス104a~104bの各々間で、他の任意の暗号化操作において使用されることがある。この例では、第1のデバイス104aをイニシエータエンドポイント104aと呼び、第2のデバイス104bをレシーバエンドポイント104bと呼ぶ。各デバイス/エンドポイントは固有の識別情報を持ち、各デバイス/エンドポイント104a~104bは、量子安全ネットワーク112/122(例:量子クラウド)の異なる又は固有のキーサービングノード(KNode)106a又は106bと通信するための量子安全なチャネル115a及び115bを既に確立しているものと仮定する。これ限りではないが、例えば、量子ネットワーク112/122(又は量子クラウド)内のAPIゲートウェイ、ゲートウェイ及び/又はロードバランサ等を用いて達成することができる。例えば、各エンドポイント104a/104bの一意の識別は、この限りではないが、例えば、対応するKNode106a/106bとの当該各エンドポイント104a/104bの認証中、及び/又はKNode106a/106bを含む量子ネットワークのゲートウェイ等に基づくことができる。これにより、前記各エンドポイント104a/104bのエンドポイント識別子(ID)を一意的かつ不可逆的に識別する。各エンドポイント104a/104bは、対応するKNode 106a/106bとバイロケーションキーのコピーをネゴシエーションする。エンドポイント104a/104bの両方が、対応する異なるKNodeに対して別々に認証するため、相互認証が提供される。また、量子ネットワーク112/122内のKNode104a~104b及び/又は量子サーバ108a~108b間の全ての通信チャネル117a~117c(例:量子クラウドインフラストラクチャ内の全てのサービス間接続)は、適切に量子安全である、即ち、各チャンネル117a-117cは量子安全通信チャネルであると仮定される。さらに、Initiator エンドポイント 104a と Receiver エンドポイント 104b の間の接続は、限定するものではないが、例えば、トランスポートレイヤセキュリティ(TLS)又は同等のような、古典的に安全な又は暗号化された通信チャネルを介することができる。さらに、この限りではないが、例えばイニシエーター エンドポイント104a とレシーバーエンドポイント104b間の接続は、接続がある場合は、トランスポートレイヤーセキュリティ(TLS)又は同等のもののような、古典的に安全な、又は暗号化された通信チャネルを介することができる。
【0125】
キー交換プロトコル/プロセスは、この限りではないが、例えば第1及び第2のデバイス104a~104bが、量子安全な方法で導出されたキー等のキーを交換又は合致できるようにするためのものである。これにより、イニシエーターエンドポイント104aは、バイローケーションキーにより暗号化された通信チャネルを介し、レシーバーエンドポイント104bと通信することが可能となる。そして、イニシエーターエンドポイント104aはレシーバーエンドポイント104bがバイローケーションキーのコピーを収集するために使用したKNode106bとは異なるKNode106aからバイローケーションキーのコピーを収集する。
【0126】
さらに、1つ又は複数のハンドシェイク処理、エンドポイント及び/又はKNode間の異なるノンスの分散、及び/又はエンドポイントへの異なるintermediateバイロケーションキーの分散の組み合わせは、この限りではないが、下記のように使用される。リプレイ攻撃の数学的/暗号学的に防ぐ;Eveが1つ又は複数のハンドシェイクプロセスの一部として交換されたデータを傍受した場合に、eavesdropper(例:Eve)がキーにアクセスすることを防ぐ;Eveが量子クラウド112/122(又は量子安全ネットワーク112/122)のインフラストラクチャに侵入した場合に、Eveが結果/最終キーにアクセスするのを防ぐ。
【0127】
最終/確立キーはいずれかの方法で生成される。a)イニシエーターデバイス104aとレシーバーデバイス104bは、物理的に異なる位置から収集されたバイローケーションキーのコピー又はその関連部分と、レシーバーデバイス104bによって生成された、両デバイス104a-104bに既知のノンスに基づいれ生成される。b)イニシエーターとレシーバーデバイス104a-104bが互いにチャレンジノンスを送信し、受信したチャレンジノンスとその間に送信されたバイローケーションキーに基づいて、対応するチャレンジレスポンスを計算するチャレンジ/レスポンスプロトコルでは、受信したチャレンジレスポンスが イニシエーターとレシーバーデバイス104a-104bによって確認されると、最終キーはチャレンジレスポンスの対応する未送信部分の組み合わせによって生成される。
【0128】
従って、イニシエーターデバイスとレシーバーデバイス104a-104bは、上述のキー確立プロセスを使用して、この限りではないが、下記のようなことが可能となる。イニシエーターデバイスとレシーバーデバイス間の安全な通信に使用される最終キーを生成又は確立することができる;その間の量子安全通信;イニシエーターとレシーバーを含む間でグループキーを確立するために、他のグループキー確立プロトコルで使用するための共有キーをイニシエーターとレシーバーの間で確立する;イニシエーターデバイスとレシーバーデバイス間の通信セッションを確保する;イニシエーターデバイスとレシーバーデバイスの間に長寿命の通信チャネルを確立する;この限りではないが、確立されたキーは、メッセージ認証コード(MAC)又はタグ等を生成するために使用される、イニシエーターデバイスとレシーバーデバイス間の署名秘密を形成するイニシエーターとレシーバーの間で確立された最終キーは、各イニシエーターとレシーバーの間で実行される他のタイプの暗号アプリケーション/操作などに使用することができる。
【0129】
図2aは、本発明の具体的な実施形態において、
図1aから
図1cのシステム100、110及び/又は120と共に使用される異なる例示的な鍵確立プロセス200を示すフロー図表である。簡単のため、
図1a、
図1b及び/又は
図1cの参照番号は、同一又は類似の構成要素に再利用されている。確立される最終的な鍵は、第1デバイスまたはエンドポイント104a(例:イニシエータデバイス/エンドポイント)と第2デバイスまたはエンドポイント104b(例:レシーバデバイス/エンドポイント)とが使用するためのものであり、鍵の確立中、第1デバイス104aと第2デバイス104bとは、セキュアなチャネル(例:古典的セキュリティチャネル105a/105bまたは量子セキュリティチャネル115a/115b)上で102、112、又は122とそれらに類似(例:e.g.ネットワーク102又は量子クラウド112/122)のセキュアネットワークの第1鍵ノード106aと第2鍵ノード106bを用いて通信され、第1鍵ノード106aは第2鍵ノード106bとは異なる地理的位置にある。鍵ノード106aおよび106bの各々は、異なる地理的位置に同じ鍵セットを配布するように構成された鍵配布システム109(例:衛星QKDシステム119または地上QKDシステム119cなどを含む量子配布システム)からそれぞれのセキュア/量子サーバ108a及び08bによって受信された同じ鍵セット(例;量子セキュアネットワーク112又は120が使用される場合、同じ量子分散鍵セット)を共有するという点でペアを形成することができる。第1デバイス104aと第2デバイス104bとの間で最終鍵を確立するための鍵確立プロセス200は、以下のステップのうちの1つ以上を含む:
【0130】
ステップ201では、第1デバイス104a(又はイニシエータデバイス/エンドポイント)は、Bilocation Keyの生成または導出に使用するために、セキュアなチャネル(例:ネットワーク102中の古典的セキュアチャネル105a、又はネットワーク112や122中の量子セキュアチャネル115a)を介して第1鍵ノード106aから鍵確立データを代表するデータを受信し、標準的な暗号化通信チャネルを介して第2デバイス104b(例:レシーバデバイス/エンドポイント)から鍵確立データを受信する。Bilocation Keyは、第1及び第2鍵ノード106a及び106bの両方が分散鍵セット(例:量子セキュアネットワーク112又は120が使用される場合、同じ量子分散鍵セット)から選択した同じ分散鍵を代表するデータ、及び/又は、第1デバイス104a、第2デバイス104b、及び/又は第1及び/又は第2鍵ノード106a及び106b、及び/又はそれらの組み合わせによって生成された1つ以上のランダムノンスを代表する暗号データに基づいて、第1鍵ノード106aによって生成/導出される。例えば、第1及び第2の鍵ノード106a及び106bの各々は、対応する鍵プールから鍵を選択し(例えば、各鍵プールは同じ分散鍵セットを含む)、第1及び第2の鍵ノード106a及び106bがBilocation Keyの導出に使用するために同じ分散鍵を選択することを可能にする分散鍵セット内の同じ分散鍵インデックス又は位置を出力する受信データに基づいて鍵選択アルゴリズムを実行する。例えば、量子セキュアネットワーク112又は120を使用する場合、第1鍵ノード106a及び第2鍵ノード106bで実行される鍵選択アルゴリズムは、量子分散鍵の集合から同じ量子分散鍵を選択する。
【0131】
ステップ202では、第2デバイス104b(又はレシーバデバイス/エンドポイント)は、Bilocation Keyの導出に使用するために、安全なチャネル(例:暗号化されたチャネル105b/115b)を介して第2鍵ノード106bから鍵確立データを代表するデータを受信し、標準暗号化通信チャネルを介して第1デバイス104a(例:イニシエータデバイス/エンドポイント)から鍵確立データを受信する。第1デバイスによって導出または受信されたBilocation Keyは、第2デバイスによって受信、又は導出された Bilocation Keyと同じである。第2鍵ノード106bは、分散鍵のセットから第1及び第2鍵ノード106a及び106bの両方によって選択された同じ分散鍵を代表するデータと、第1デバイス104a、第2デバイス104b、及び/又は、第1及び/又は第2鍵ノード106a及び106b、及び/又はそれらの組み合わせによって生成された1つ以上のランダムノンスを代表する暗号データとに基づいて、第2鍵ノード106bによって生成/導出されるBilocation Keyを生成する。
【0132】
ステップ203では、第1及び第2デバイス104a、104bは、対応するBilocation Keyを使用して、同じ最終鍵を生成する。最終鍵は限定されることなく、例えば、セキュア通信;量子分散鍵を鍵セットが含む場合の量子セキュア通信;グループ鍵形成;デジタル署名;及び/又は、第1及び第2デバイス104a及び104bの各々において及び/又は第1及び第2のデバイス104a及び104b間における他の暗号操作/アプリケーション及び/又は目的等に使用され得る。例えば、第1及び第2デバイス104a及び104bは、対応するBilocation Keyとその間に受信されたランダムノンスの合意された組み合わせとを組み合わせることに基づいて、最終的な鍵を形成することができる。代替的又は付加的に、第1及び第2のデバイス104a及び104bは、対応するBilocation Keyから得られる最終的な鍵に合意するために使用されるBilocation Keyに基づく1つ以上のチャレンジ・レスポンス・プロトコルを実行することに基づいて、最終的な鍵を生成することができる。
【0133】
その後、第1デバイス104a及び第2デバイス104bは、暗号操作/アプリケーションなどで使用するために最終鍵を使用することができる。例えば、第1及び第2のデバイス104a-104bは、通信チャネル及び/又はその間に通信されるデータを暗号化するために、最終鍵を使用して通信セッションを開始してもよい。代替的または付加的に、別の例として、第1及び第2デバイス104a-104bは、第1及び第2デバイス104a-104bを含む他のデバイスのグループとのグループ鍵の確立に使用するために、最終鍵をその間の共有鍵として使用してもよい。
【0134】
鍵確立プロトコルは、イニシエータデバイス/エンドポイント104aとレシーバデバイス/エンドポイント104bの間で使用され、異なる地理的な場所(例:異なるセキュアサーバ/KNode)から同じ最終鍵を受信するが、地理的な場所(例:量子サーバ/KNode)に量子的に安全な方法(例:光子的な方法)で配信された分散鍵(例:量子ネットワーク112又は122の場合の量子分散鍵)をルートとする。最終鍵のいくつかの応用例または用途が示されているが、これは例示に過ぎず、本発明はそのように限定されるものではなく、第1デバイスと第2デバイス104a、104bで同じである最終鍵は、本書に記載されているように、その組み合わせ、その修正、及び/又は用途の要求に応じて、任意の適切な暗号操作、アプリケーション、システム、通信などで使用され得ることが、当業者には理解されよう。
【0135】
図2bは、本発明の具体的な実施形態に従って、
図1a、
図1b及び/又は
図1cのネットワークシステム100、110及び/又は120と共に使用するために、
図2aの鍵確立プロセス200をさらに修正するために使用することができる別の例示的な鍵確立プロセス210を示すフロー図表である。簡単のため、
図1a、
図1b及び/又は
図1cの参照番号は、同一又は類似の構成要素に再利用される。この例では、第1デバイス104aをイニシエータエンドポイントと呼び、第2デバイス104bをレシーバエンドポイントと呼ぶ。イニシエータデバイス/エンドポイント104aは、イニシエータデバイス/エンドポイント104aとレシーバデバイス/エンドポイント104bの間で最終鍵を確立するために、鍵確立手順を開始する。例えば、最終鍵は、イニシエータデバイス104aとレシーバデバイス104bとの間の通信セッションを保護するため、及び/又は、他の適切な目的のために使用される。鍵確立プロセス210は、以下の1つ以上のステップを含む:
【0136】
ステップ21では、イニシエータエンドポイント104aは、レシーバエンドポイント104bに対し、a)レシーバエンドポイント104bのID(例:ID_R)、104bがネゴシエーションを希望するKNode106bのID(例:KID_R)、レシーバエンドポイント104bが生成した第1ノンス(例:N_R)を提供するよう要求する。
【0137】
ステップ212では、レシーバエンドポイントは、a)生成された第1のノンス(例:N_R)、b)レシーバエンドポイント104bのID(例:ID_R)、c)及びKNode104bのID(例:KID_R)を代表データで応答する。
【0138】
ステップ213では、イニシータは第2ノンス(例:N_I)を生成し、KNode 106aにレシーバエンドポイント104bのものとは異なる中間Bilocation Key(例:Int_Bilocation_Key)をリクエストし、そのリクエストは以下の代表データを含む、ないし、渡す。a)レシーバエンドポイント104bのID(例:ID_R)、b)レシーバエンドポイントのKNode106bのID(例:KID_R)、c)第1及び第2ノンスから導出される第3ノンス。第3ノンスは、第1ノンスと第2ノンスに基づく組み合わせまたは関数(例:第1及び第2ノンスを使用するXOR型演算即ちN_IR=N_R XOR N_I 、バイナリーシンボルが使用される場合、又は第1及び第2ノンスを使用するハッシュ型操作の場合、即ちN_IR= #(N_R, N_I))に依拠しうる。
【0139】
ステップ214では、中間Bilocation Keyリクエストに応答して、イニシエーターエンドポイント104aは、中間Bilocation Key(例:Int_Bilocation_Key)とKNode 106aからその生成に使用された第4ノンス(例:第1アンチリプレイノンス)を返される/受信する。
【0140】
ステップ215では、イニシエータはレシーバエンドポイント104bに以下を代表するデータを送信または渡す。a)第2、第4ノンス(例:N_I、第1アンチリプレイノンス)、b)イニシエータエンドポイント104aのID(ID_I)、c)あるKNode106aのID(例:ID_I)。レシーバエンドポイント104bは、受信した第2ノンスとその生成された第1ノンス(例:N_IR= N_I XOR N_R又はN_IR =#(N_I, N_R))から第3ノンス(例:N_IR)を生成する。
【0141】
ステップ216では、レシーバエンドポイント104bは、KNode106bからBilocation Keyを要求し、以下の代表データをKNode106bに送信する/渡す。 a)第3及び第4ノンス、b)ID_I、c)KID_I。なお、第3ノンスN_IRは、イニシエータ104aとレシーバ104bの両方でクラウドに送信される前にハッシュ化(例:N_IR’のように)されてもよい。
【0142】
ステップ217では、レシーバエンドポイント104bは、KNode106bからBilocation Keyと、その作成に使用された第5ノンス(例:第2アンチリプレイノンス)を送信される/渡される。
【0143】
ステップ218では、レシーバエンドポイント104bは、第5ノンス(例:第2アンチリプレイノンス)をイニシエータエンドポイント104aに送り返す。
【0144】
ステップ219では、イニシエータエンドポイント104aは、第5ノンス(例:第2アンチリプレイノンス)と中間Bilocation Keyを結合する。と中間Bilocation Key を結合し、共有Bilocation Keyを形成する。レシーバエンドポイント104bによって受信されたBilocation Keyは、イニシエータエンドポイント104aで計算されたBilocation Keyと同じであるため、共有されたことになる。従って、各エンドポイント104a-104bのBilocation Keyは、共有Bilocation Keyと呼ばれることがある。
【0145】
ステップ220では、イニシエータエンドポイント104aとレシーバエンドポイント104bは、以下のいずれかに基づいて最終鍵を形成する。a)Bilocation Keyと合意されたノンス(例:第1及び第2ノンスの組み合わせである第3ノンス)を組み合わせる、b) チャレンジ・レスポンス方式の使用、c)第3ノンス、N_IRをハッシュ化し、バイロケーション鍵にする。最終的なバイロケーション鍵は、量子クラウド112/122には知られない。
【0146】
その後、イニシエータエンドポイント104aとレシーバエンドポイント104bは、限定はしないが、例えば、通信チャネル及び/又はその間に通信されるデータを暗号化するため、及び/又は他の目的で、最終鍵を使用して通信セッションを開始する。この例では、最終鍵はイニシエータエンドポイント104aとレシーバエンドポイント104b間の通信チャネルをセキュアにするために使用されるが、これはあくまで例であり、本発明はそのように限定されるものではなく、イニシエータエンドポイント104aとレシーバエンドポイント104bで同一である最終鍵は、任意の適切な目的、暗号操作、暗号アプリケーション、システム、データ及び/又は通信のセキュア化等、それらの組み合わせ、それらの修正、本書で説明される通り、及び/又はアプリケーションの要求に応じて使用され得ることが当業者には理解されよう。
【0147】
図2cは、本発明の具体的な実施形態による、
図2bの鍵確立プロセス210に対してイニシエータデバイス104aによって実行される例示的なイニシエータ鍵確立プロセス230を示すフロー図表である。簡略化のため、
図1a、
図1b、及び/又は
図1cの参照番号は、同一または類似のコンポーネントに再利用されている。イニシエータデバイス/エンドポイント104aは、イニシエータデバイス/エンドポイント104aとレシーバエンドポイント104bとの間で最終鍵を確立するために、鍵確立手順を開始する。例えば、最終鍵は、限定するものではないが、例えばイニシエータデバイス104aとレシーバエンドポイント104bとの間の通信セッションを確保するため、及び/又は、他の適切な目的のために使用することができる。イニシエータデバイス104aによって実行されるイニシエータ鍵確立プロセス 230は、以下のステップの1つ以上を含む:
【0148】
ステップ231では、イニシエータエンドポイント104aは、レシーバエンドポイント104bに対し、a)レシーバエンドポイント104bのID(例:ID_R)、b)レシーバエンドポイント104bがネゴシエーションを希望するKNode106bのID(例:KID_R)、c)レシーバエンドポイント104bが生成した第1ランダムノンス(例:N_R)を要求する。
【0149】
ステップ232では、イニシエータエンドポイント104aは、レシーバエンドポイント104bから、a)ID_R、b)KID_R、c)第1ランダムノンス(例:N_R)を代表するデータを受信する。
【0150】
ステップ233において、イニシエータエンドポイント104aは、第2ランダムノンス(例:N_I)を生成し、レシーバエンドポイント104bのKNode106bとは異なる地理的位置にあるKNod106aに中間Bilocation Key(Int_Bilocation_Key)を要求し、第1及び第2ノンス(例:N_R及びN_I)から導出される第3ランダムノンス(例:N_IR)。第3ノンスは、第1ノンスと第2ノンスに基づく組み合わせまたは関数(第1及び第2ノンスを使用するXOR型演算即ちN_IR=N_R XOR N_I、バイナリーシンボルが使用される場合、又は第1及び第2ノンスを使用するハッシュ型操作の場合、即ちN_IR=#(N_R, N_I))に依拠しうる。
【0151】
ステップ234では、イニシエータエンドポイント104aは、KNode106aから Int_Bilocation_Keyと、KNode106aが自身を生成する際に使用した第4ノンス(例:第1アンチリプレイノンス)を受信する。
【0152】
ステップ235では、イニシエータエンドポイントは、以下の代表データをレシーバエンドポイント104bに送信または渡す。a)第4ノンス(例:第1アンチリプレイノンス)、b)イニシエータエンドポイントのID、b)イニシエータエンドポイント104aのID(ID_I)、c)あるのKNode106aのID(KID_I)。レシーバエンドポイント104bはレシーバエンドポイント104bが使用/交渉しているKNode106bからBilocation Keyを要求するために、この受信した情報を送信する。ここで、Knode106bは、Bilocation Keyと第5ノンス(例:第2アンチリプレイノンス)を生成し、Bilocation Keyと第5ノンスの代表データをレシーバエンドポイント104bに送り返す。
【0153】
ステップ236では、イニシエータエンドポイント104aはレシーバエンドポイント104bから第5ノンス(例:第2アンチリプレイノンス)を受信する。
【0154】
ステップ237では、イニシエータエンドポイント104aは、第5ノンス(例:第2アンチリプレイノンス)とInt_Bilocation_Keyを結合して共有Bilocation Keyを形成する。例えば、これはInt_Bilocation_Keyと第2アンチリプレイノンスのハッシュに基づいてもよい。
レシーバエンドポイント104bが受信したBilocation Keyは、イニシエータエンドポイント104aで計算されたBilocation Keyと同じであるため、両者の間で共有されている。従って、各エンドポイント104a-104bのBilocation Keyは、共有Bilocation Keyと呼ばれることがある。
【0155】
ステップ238では、イニシエータエンドポイント104aは以下のいずれかを実行する。a)共有Bilocation Keyと、レシーバエンドポイント104bと合意された共通ノンス(例:第1及び第2ノンスを組み合わせた第3ノンス)を組み合わせて最終鍵を形成し、レシーバエンドポイント104bも同様の操作を行って、レシーバエンドポイント104bで同じ最終鍵を形成する、又は、b)チャレンジ・レスポンス・プロトコルを使用してレシーバエンドポイント104bと通信し、共通の最終鍵を形成する。
【0156】
その後、イニシエータエンドポイント104aとレシーバエンドポイント104bは、限定するわけではないが、例えば通信チャネル及び/又はその間に通信されるデータを暗号化するため、及び/又は他の目的のために、最終鍵を使用して通信セッションを開始する。この例では、最終鍵はイニシエータエンドポイント104aとレシーバエンドポイント104bの間の通信チャネルをセキュアにするために使用されるが、これはあくまで例であり、本発明はそのように限定されるものではなく、イニシエータエンドポイント104aとレシーバエンドポイント104bで同じである最終鍵は、任意の適切な目的、暗号操作、暗号アプリケーション、システム、データ及び/又は通信のセキュア化等、それらの組み合わせ、それらの修正、本書で説明される通り、及び/又はアプリケーションの要求に応じて使用され得ることが当業者には理解されよう。
【0157】
図2dは、本発明の具体的な実施形態による、
図2bの鍵確立プロセス210に対してレシーバデバイス104bが実行するレシーバ鍵確立プロセス240の例を示すフロー図表である。簡略化のため、
図1a、
図1b、及び/又は
図1cの参照番号は、同一又は類似のコンポーネントに再利用される。イニシエータデバイス/エンドポイント104aは、イニシエータデバイス/エンドポイント104aとレシーバデバイス/エンドポイント104bとの間で最終鍵を確立するために、鍵確立手順を開始する。例えば、最終鍵は、限定するものではないが、例えば、イニシエータデバイス104aとレシーバデバイス104bとの間の通信セッションを確保するため、及び/又は、他の適切な目的のために使用することができる。レシーバデバイス104bによって実行されるレシーバ鍵確立プロセス240は、以下のステップのうちの1つ以上を含む:
【0158】
ステップ241では、鍵確立プロセス中にイニシエータエンドポイント104aから以下の要求を受信する。レシーバエンドポイント104bのID(例:ID_R)、レシーバエンドポイント104bがネゴシエーションを希望するKNode106bのID(例:KID_R)、及び、レシーバエンドポイント104bがネゴシエーションを希望するKNode106bのID(例:KID_R)、c)レシーバエンドポイント104bが生成する第1ランダムノンス(例:N_R)。レシーバエンドポイント104bは、ランダムな第1ノンス(例:N_R)を生成する。
【0159】
ステップ242では、イニシエータエンドポイント104aに以下の代表データを送信する。a)ID、b)KID_R、c)生成されたランダムな第1ノンス(例:N_R)。この情報を受信すると、プロセス230中のステップ233において、イニシエータデバイス104aは第2のランダムノンス(例:N_I)を生成し、第1ノンスと第2ノンス(例:N_RとN_I)に基づく第3ノンス(例:N_R)を導出する。第3ノンスは、第1ノンスと第2ノンスに基づく組み合わせ又は関数(例:第1及び第2ノンスを使用するXOR型演算即ちN_IR=N_R XOR N_I、バイナリーシンボルが使用される場合、又は第1及び第2ノンスを使用するハッシュ型操作の場合、即ちN_IR=#(N_R, N_I))に依拠しうる。イニシエータデバイス104aは、中間Bilocation Key(Int_Bilocation_Key)をレシーバエンドポイント104bが使用するKNode106bとは地理的に異なる場所にある異なるKNode106aに要求する。KNode106bはInt_Bilocation_Keyと第4ノンス(例:第1アンチリプレイノンス)を生成し、プロセス230中のステップ234でイニシエータデバイス104aに送り返す。
【0160】
ステップ243では、レシーバエンドポイント104bはイニシエータエンドポイント104aから以下の代表データを受信する。a)イニシエータデバイス104aによって生成された第2ノンス(例:N_I)と、第1鍵ノード106aによって生成された第4ノンス(例:第1アンチリプレイノンス)、b)イニシエータエンドポイント104aのID(ID_I)、及びc)イニシエータエンドポイントのあるKNode106aのID(KID_I)。
【0161】
ステップ244では、レシーバエンドポイント104bは、そのKNode106bからBilocation Keyを要求し、以下の代表的なデータを送信する/渡す。a)第3及び第4ノンス(例:N_IR及び第1アンチリプレイノンス)、b)ID_I、c)KID_I。この情報を受信すると、Knode106bはBilocation Keyと第5ノンス(例:第2アンチリプレイノンス)を生成し、Bilocation Keyと第5ノンス(例:第2アンチリプレイノンス)を代表するデータを送り返す。
【0162】
ステップ245では、レシーバエンドポイント104bは、KNode106bから、KNode106bに作成される際に使用されたBilocation Keyと第5ノンス(例:第2アンチリプレイノンス)を受信する。
【0163】
ステップ247では、レシーバエンドポイント104bは、第5ノンス(例:第2アンチリプレイノンス)とInt_Bilocation_Keyを結合して共有Bilocation Keyを形成する。例えば、これはInt_Bilocation_Keyと第2アンチリプレイノンスのハッシュに基づいてもよい。レシーバエンドポイント104bが受信したBilocation Keyは、イニシエータエンドポイント104aで計算されたBilocation Keyと同じであるため、両者の間で共有されている。従って、各エンドポイント104a-104bのBilocation Keyは、共有Bilocation Keyと呼ばれることがある。
【0164】
ステップ248では、レシーバエンドポイント104bとイニシエータエンドポイント104aは、以下のいずれかに基づいて最終鍵を形成する。a)Bilocation Keyと合意されたノンス(例:第1及び第2ノンスの組み合わせ)を組み合わせる、b)チャレンジ・レスポンス方式の使用。
【0165】
その後、イニシエータエンドポイント104aとレシーバエンドポイント104bは、限定するわけではないが、例えば通信チャネル及び/又はその間に通信されるデータを暗号化するため、及び/又は他の目的のために、最終鍵を使用して通信セッションを開始する。この例では、最終鍵はイニシエータエンドポイント104aとレシーバエンドポイント104bの間の通信チャネルをセキュアにするために使用されるが、これはあくまで例であり、本発明はそのように限定されるものではなく、イニシエータエンドポイント104aとレシーバエンドポイント104bで同じである最終鍵は、任意の適切な目的、暗号操作、暗号アプリケーション、システム、データ及び/又は通信のセキュア化等、それらの組み合わせ、それらの修正、本書で説明される通り、及び/又はアプリケーションの要求に応じて使用され得ることが当業者には理解されよう。
【0166】
図2eは、本発明の具体的な実施形態による、
図2bの鍵確立プロセス210でイニシエータデバイス104aが使用する第1鍵ノード106aが実行する第1鍵ノード鍵確立プロセス250の例を示すフロー図表である。簡単のため、
図1a、
図1b、及び/又は
図1cの参照番号は、同一又は類似の構成要素に再利用される。この例では、第1鍵ノード106aは分散鍵のセット(または鍵のセット)を含み、レシーバエンドポイント104bが使用する第2鍵ノード106bの分散鍵のセットと同じである。例えば、セキュアネットワークが量子ネットワーク112又は120である場合、分散鍵のセットは量子分散鍵のセットである。イニシエータデバイス/エンドポイント104aは、イニシエータデバイス/エンドポイント104aとレシーバデバイス/エンドポイント104bの間で最終鍵を確立するために鍵確立手順を開始する。例えば、最終鍵は、限定するものではないが、イニシエータデバイス104aとレシーバデバイス104bとの間の通信セッションを確保するため、及び/又は、その他の適切な目的のために使用されることがある。鍵ノード鍵確立プロセス250は、以下のステップのうち1つ以上を含む:
【0167】
ステップ251では、イニシエータデバイス104aから、中間Bilocation Keyを生成する要求を受信し、そのリクエストは以下の代表データを含む。a)レシーバエンドポイント104bのID(ID_R)、b)レシーバエンドポイントのKNode106b、即ち第2鍵ノード106bのID(KID_R)、c)レシーバエンドポイント104bによって生成された第1ランダムノンス(例:N_R)とイニシエータエンドポイント104aによって生成された第2ランダムノンス(例:N_I)から導出される第3ノンス(例:N_IR)。第3ノンスは、第1ノンスと第2ノンスに基づく組み合わせ又は関数(例:第1及び第2ノンスを使用するXOR型演算即ちN_IR=N_R XOR N_I、バイナリーシンボルが使用される場合、又は第1及び第2ノンスを使用するハッシュ型操作の場合、即ちN_IR=#(N_R, N_I))に依拠しうる。
【0168】
ステップ252では、少なくともID_R、KID_R、イニシエータエンドポイント104aのID(ID_I)、第1鍵ノード106aのID(KID_R)に基づいて、鍵選択アルゴリズム/関数を使用して、分散鍵セット(または鍵セット)から鍵を選択する。イニシエータエンドポイント104aのID_Iは、イニシエータエンドポイント104aと第1の鍵ノード106aとの認証中に受信される若しくは、導出される場合がある。鍵の選択アルゴリズム/関数は、ハッシュ関数に基づいてもよい。例えば、セキュアネットワークが量子セキュアネットワーク112又は120である場合、選択された鍵は、量子分散鍵のセットから選択されるため、量子分散鍵となる。
【0169】
ステップ253において、第1鍵ノード106aは、Int_Bilocation_Keyの導出/生成に使用する第1のランダムなアンチリプレイノンスを生成する。
【0170】
ステップ254において、第1鍵ノード106aは、選択された鍵、第1アンチリプレイノンス、及び少なくともID_R、KID_R、ID_I、KID_I、及び受信した第3ノンス(例:N_IR)に基づいてInt_Bilocation_Keyを生成する。例えば、Int_Bilocation_Keyは、少なくとも選択された鍵、第1アンチリプレイノンス、及び少なくともID_R、KID_R、ID_I、KID_I、及び受信した第3ノンスのハッシュに基づいてもよい。
【0171】
ステップ255では、第1鍵ノード106aは、
図2aから
図2dのプロセス中のプロセス200、210、230、240に基づき、及び/又は本書で説明するようにイニシエータデバイス104aとレシーバデバイス104bが最終鍵を確立する際に使用するために、Int_Bilocation_Keyと第1アンチリプレイノンス(例:プロセス230中のステップ236における第4ノンス)をイニシエータデバイス104aに送信する。
【0172】
その後、イニシエータエンドポイント104aとレシーバエンドポイント104bは、限定するわけではないが、例えば通信チャネル及び/又はその間に通信されるデータを暗号化するため、及び/又は他の目的のために、最終鍵を使用して通信セッションを開始する。この例では、最終鍵はイニシエータエンドポイント104aとレシーバエンドポイント104bの間の通信チャネルをセキュアにするために使用されるが、これはあくまで例であり、本発明はそのように限定されるものではなく、イニシエータエンドポイント104aとレシーバエンドポイント104bで同じである最終鍵は、任意の適切な目的、暗号操作、暗号アプリケーション、システム、データ及び/又は通信のセキュア化等、それらの組み合わせ、それらの修正、本書で説明される通り、及び/又はアプリケーションの要求に応じて使用され得ることが当業者には理解されよう。
【0173】
図2fは、本発明の具体的な実施形態による、
図2bから
図2eの鍵確立プロセス210、230、240、及び/又は250においてレシーバデバイス104bが使用する第2鍵ノード106bによって実行される例示的な第2鍵ノード鍵確立プロセス260を示すフロー図表である。簡単のため、
図1a、
図1b及び/又は
図1cの参照番号は、同一または類似の構成要素に再利用される。この例では、第1鍵ノード106aは分散鍵のセット(又は、鍵のセット)を含み、レシーバエンドポイント104bが使用する第2鍵ノード106bの分散鍵のセットと同じであり、鍵配布プロトコル/システムに基づいて第1および第2鍵ノード106a、106bに配信されている。例えば、セキュアネットワークが量子セキュアネットワーク112又は120である場合、分散鍵のセットは、衛星量子鍵配布システム及び/又は地上量子鍵配布システムなどを用いて配布され得る量子分散鍵のセットである。第1鍵ノード106aは、第2鍵ノード106bとは異なる地理的位置に配置される。第2鍵ノード106bは、レシーバデバイス104bによって使用される。イニシエータデバイス/エンドポイント104aは、イニシエータデバイス/エンドポイント104aとレシーバデバイス/エンドポイント104bとの間で 最終鍵を確立するために、鍵確立手順を開始する。例えば、最終鍵は、限定するものではないが、イニシエータデバイス104aとレシーバデバイス104bとの間の通信セッションを確保するため、及び/又は、その他の適切な目的のために使用されることがある。第2鍵ノード鍵確立プロセス260は、以下のステップのうち1つ以上を含む:
【0174】
ステップ261では、レシーバデバイス104bから、Bilocation Keyを生成する要求を受信し、そのリクエストには以下の代表データを含む。a)イニシエータエンドポイント104aのID(ID_I)、b)イニシエータエンドポイントのKNode106a、即ち第1鍵ノード106aのID(KID_I)、c)レシーバエンドポイント104bによって生成された第1ランダムノンス(例:N_R)とイニシエータエンドポイント104aによって生成された第2ランダムノンス(例:N_I)から導出される第3ノンス(例:N_IR)。第3ノンスは、第1ノンスと第2ノンスに基づく組み合わせ又は関数(例:第1及び第2ノンスを使用するXOR型演算即ちN_IR=N_R XOR N_I、バイナリーシンボルが使用される場合、又は第1及び第2ノンスを使用するハッシュ型操作の場合、即ちN_IR=#(N_R, N_I))と第1鍵ノード106aからイニシエータエンドポイント104aによって受信されたイニシエータまたは第1アンチリプレイノンスに依拠しうる。
【0175】
ステップ262では、少なくともID_I、KID_I、レシーバエンドポイント104bのID(ID_R)、第2鍵ノード106bのID(KID_R)、および第3ノンス(例:N_IR)に基づいて、鍵選択アルゴリズム/関数を使用して、分散鍵のセットから鍵を選択する。レシーバエンドポイント104bのID_Rは、レシーバエンドポイント104bと第2鍵ノード106bとの認証時に、第2鍵ノード106bによって受信または導出される可能性があることに留意されたい。第2鍵ノード106bが使用する鍵選択アルゴリズム/関数は、プロセス250のステップ252で第1鍵ノード106aが使用した鍵選択アルゴリズム/関数と同じである。鍵選択アルゴリズム/関数は、ハッシュ関数に基づいてもよい。つまり、第1鍵ノードと第2鍵ノードが同じ分散鍵セットを持ち、第2鍵ノードが同じ入力を鍵選択アルゴリズム/関数に提供できる入力セットを渡された場合、第2鍵ノード106bによって選択される鍵は、プロセス250のステップ252で第1鍵ノード106aによって選択される鍵と同じである。
【0176】
ステップ263では、第2鍵ノード106bは、Bilocation Keyの導出/生成に使用するランダムなレシーバアンチリプレイノンスを生成する。
【0177】
ステップ264では、第2鍵ノード106bは、選択された鍵と、少なくともID_I、KID_I、レシーバエンドポイント104bのID(例:ID_R)、第2鍵ノード106bのID(例:KID_R)、第3ノンス(例:N_IR)、受信したイニシエータまたは第1アンチリプレイノンスに基づきInt_Bilocation_Keyを生成する。例えば、Int_Bilocation_Keyは、少なくとも選択された鍵、第1アンチリプレイノンス、及び少なくともID_R、KID_R、ID_I、KID_I、及び受信した第3ノンスのハッシュに基づいている。
【0178】
ステップ265では、第2鍵ノード106bは、Int_Bilocation_Keyと受信者または第2アンチリプレイノンスを組み合わせることに基づいて、Bilocation Keyを生成する。例えば、これはInt_Bilocation_Keyと第2アンチリプレイノンスのハッシュに基づいてもよい。
【0179】
ステップ266では、第2鍵ノード106bは、
図2aから
図2eのプロセス200、210、230、240、250に基づいて、及び/又は本書で説明するように、最終鍵を確立する際にレシーバエンド104bとイニシエータデバイス104aが使用するために、Bilocation Keyとレシーバ又は第2アンチリプレイノンス(例:プロセス240中のステップ245 における第5ノンス)をレシーバデバイス104bに送信する。
【0180】
その後、イニシエータエンドポイント104aとレシーバエンドポイント104bは、限定するわけではないが、例えば通信チャネル及び/又はその間に通信されるデータを暗号化するため、及び/又は他の目的のために、最終鍵を使用して通信セッションを開始する。この例では、最終鍵はイニシエータエンドポイント104aとレシーバエンドポイント104bの間の通信チャネルをセキュアにするために使用されるが、これはあくまで例であり、本発明はそのように限定されるものではなく、イニシエータエンドポイント104aとレシーバエンドポイント104bで同じである最終鍵は、任意の適切な目的、暗号操作、暗号アプリケーション、システム、データ及び/又は通信のセキュア化等、それらの組み合わせ、それらの修正、本書で説明される通り、及び/又はアプリケーションの要求に応じて使用され得ることが当業者には理解されよう。
【0181】
図2gは
図1a、
図1b及び/又は
図1cのシステム100、110及び/又は120と共に使用するため、及び/又は本発明の具体的な実施形態を参照してセッション確立プロトコル/プロセス200、210、230、240、250、及び/又は260を修正するための、別の例示的な鍵確立プロセス270を示すフロー図表である。簡単のため、
図1a、
図1b及び/又は
図1cの参照番号は、同一または類似の構成要素に再利用される。鍵確立プロセス270は、以下のステップを1つ以上含む:
【0182】
ステップ271では、システムの初期化が、少なくとも対応する鍵ノード(KNodes)106a、106bのペアの各々が同じ分散鍵セットにアクセスでき、各々が一意のKNode識別子(ID)を持ち、各々が自身のID鍵を持つことを保証するために実行されうる。このID鍵は安全なチャネル107c(又は量子安全なチャネル117c)を介してKNode106a-106bのペア間で共有される。各KNodeの分散鍵セットは一意の対称鍵セットであってもよい。オプションとして、及び/又は前述のように、分散鍵は、一致するか、又は対応する少なくとも1つのKNode106a又は106bによって安全にアクセス可能なeHSM(例:対応するOGRに接続されたHSM108a-2及び108b-2)に格納されてもよく、暗号化処理は、対応するKNode106a又は16bなどに代わってHSM内で実行されることがある。
【0183】
ステップ272では、イニシエータエンドポイント104aとレシーバエンドポイント104bとの間の第1ハンドシェイクにおいて、イニシエータエンドポイント104aは、レシーバエンドポイント104bの固有IDであるID_R、レシーバエンドポイントが接続するKNode106bの固有IDであるKID_R(これはイニシエータエンドポイントが接続するKNode106aとは異なるKNode106bである)、及びレシーバランダムノンスである N_Rを代表する第1ハンドシェイクデータを要求する。レシーバエンドポイント104bは、N_Rをランダムに生成し、要求された全ての第1ハンドシェイクデータ情報(例:N_R、KID_R、ID_R)をイニシエータエンドポイント104aに送信する。
【0184】
ステップ273では、第1ハンドシェイクデータがイニシエータエンドポイント104aによって受信されると、イニシエータエンドポイント104aは、KNode106aに中間Bilocation Keyリクエストを送信する。これは、イニシエータエンドポイント104aがイニシエータランダムノンス N_Iを生成し、これ (例:XOR 関数やハッシュ型演算により)を受信した N_R(ステップ202で受信)と組み合わせることで複合イニシエータ/レシーバランダムノンス、N_IRを生成するために実行される。イニシエータエンドポイント104aは、Knode106aとセキュアチャネル105a(又は量子セキュアチャネル115a)をオープンする。KNode106aはKNode106bと異なる固有ID、KID_Rを持つ。イニシエータエンドポイント104aとのセキュアチャネル105aの開通時に、KNode106aはイニシエータエンドポイント104aの識別子ID_Iを(例:認証などにより)証明される。イニシエータエンドポイント104aは、中間Bilocation Key(IBK)リクエストデータパケットをKNode106aに送信し、ここでは、IBKリクエストデータパケットは複合ノンスN_IR、レシーバエンドポイント/デバイス104bの固有ID、ID_R、KNode106bの固有ID、KID_Rの代表データを含む。
【0185】
ステップ274では、KNode106aは、イニシエータエンドポイント104aとのセキュアチャネル105a経由で、IBKリクエストを受信した後、KNode106aに割り当てられた分散鍵のセットから、ID_I、KID_R、N_IRを含むIBKリクエストデータパケットの受信データに基づく鍵選択アルゴリズムを使用して、K_Qを選択する。鍵選択アルゴリズムは、IBKリクエストデータパケット、ID_I、KID_R、N_IRの組み合わせを代表するデータのハッシュに基づいてもよい。KNode106bもKNode106aと同じ分散鍵セットを持つことを留意されたい。KNode106aはまた、ランダムなイニシエータアンチリプレイノンスN_REPIを生成し、少なくともN_IR、ID_I、ID_R、KID_R、K_Q、N_REPIを代表するデータを、限定はしないが、例えばハッシュ関数、XOR関数、鍵選択などの様々な演算を用いて処理することにより、中間Bilocation Key K_IBKを生成する。KNode106aは、生成されたIBK、K_IBK、及びアンチリプレイノンスN_REPIを代表するデータを含むIBK応答パケットをイニシエータエンドポイント104aに送信する。KNode106aは、IBK応答パケットをイニシエータエンドポイント104aに送信した後、生成されたK_IBKを削除又は除去してもよい。
【0186】
ステップ275では、イニシエータエンドポイント104aとレシーバエンドポイント104b間で、量子セキュア又は古典セキュアな接続/チャネルを介して、第2ハンドシェイクプロセスが実行される。イニシエータエンドポイントは、レシーバエンドポイント104bに対して、イニシエータの固有IDであるID_I、。イニシエータエンドポイント104aによって使用されるKNode106aの固有IDであるKID_I、ステップ203で生成されたランダムなイニシエータノンスN_I、及びイニシエータアンチリプレイノンスN_REPIを代表する第2ハンドシェイクデータを送信する。
【0187】
ステップ276では、イニシエータエンドポイント104aから第2ハンドシェイクデータを受信すると、レシーバエンドポイント104bは、Bilocation KeyリクエストをKNode106bに送信する。これは、レシーバエンドポイント104bが、(例:XOR関数やハッシュ関数を用いて)複合ノンスN_IRをランダムレシーバノンスN_R(ステップ202で作成)と受信したランダムなイニシエータノンN_I (ステップ205で受信)(ステップ202で受信)を使用して形成または作成することにより実行される。レシーバエンドポイント104bは、Knode106bとセキュアチャネル105b(又は量子セキュアチャネル115b)をオープンする。KNode106bはKNode106aとは異なる固有ID KID_Iを持つ.レシーバエンドポイント104bとのセキュアチャネル105bを開いている間、KNode106bはレシーバエンドポイント104bの識別子ID_Rを(例:認証などにより)推測する。レシーバエンドポイント104bは、KNode106bにBilocation Key(K_BK)リクエストデータパケットを送信し、K_BKリクエストデータパケットは、複合ノンスN_IR、イニシエータエンドポイント/デバイス104aの固有ID ID_I、ISKを収集するためにcが使用するKNode106aの固有ID KID_I、及びイニシエータアンチリプレイノンスN_REPIを代表するデータを含む。
【0188】
ステップ277では、KNode106bは、レシーバエンドポイント104bとのセキュアチャネル105bを介してK_BKリクエストを受信すると、Bilocation Key(K_BK)を確立、ないしBilocation Key確立操作を実行し、KNode106bに割り当てられた分散鍵セットからステップ204でKnode106aが使用したK_BKリクエストデータパケット、ID_I、KID_I、N_IRに基づき、KNode106aが分散鍵セットからK_Qを選択するために導出したのと同じインデックス又は場所を出力する鍵選択アルゴリズムを用いて鍵K_Qを選択する。鍵選択アルゴリズムは、K_BKリクエストデータパケット、ID_I、KID_R、及びN_IRの組み合わせを代表するデータのハッシュに基づいてもよい。KNode106bがKNode106aと同じ分散鍵セットを持つ場合、同じ入力で同じ鍵選択アルゴリズムを使用することにより、KNode106bは分散鍵セットから同じK_Qを選択することができる。KNode106bはまた、ランダムなレシーバアンチリプレイノンスN_REPRを生成し、Bilocation Key(K_BK)を生成する。KNode106aは、少なくともN_IR、ID_I、ID_R、KID_R、K_Q、N_REPIを代表するデータを、同じ様々な演算を用いて処理すること限定するわけではないが、例えば、KNode106aがステップ204でIBK(K_IBK)を生成する際に使用したのと同じハッシュ関数、XOR関数、鍵選択などによりBilocation Key(K_BK)を生成する。KNode106aは、K_IBKとN_REPRとの結合に基づいて、Bilocation Key K_BKも作成する。
KNode106bは、生成されたK_BKとアンチリプレイレシーバノンスN_REPRの代表データを含む Bilocation Key (K_BK) 応答パケットをレシーバエンドポイント104bに送信する。KNode106bは、K_BK応答パケットをレシーバエンドポイント104bに送信した後、生成されたK_BKを削除または除去することができる。
【0189】
ステップ278では、レシーバエンドポイント104bとイニシエータエンドポイント104aによって両者の間のセキュアなコネクション(例:量子セキュアチャネルや古典セキュアチャネル)を介した第3ハンドシェイクプロセスが実行される。レシーバエンドポイント104bは、固有レシーバアンチリプレイノンスN_REPRを代表する第3ハンドシェイクデータをイニシエータエンドポイント104aに送信する。レシーバアンチリプレイノンスN_REPRを受信すると、イニシエータエンドポイント104aは、ステップ207でレシーバエンドポイント104bが受信したBilocation Key K_BKを、ステップ 204でイニシエータエンドポイント104aが受信したK_IBKと受信したN_REPRを用いて生成する。ここでイニシエータエンドポイント104aとレシーバエンドポイント104bの双方は、同じBilocation Key、K_BKを所持しているが、イニシエータエンドポイント104aとレシーバエンドポイント104bの各パーティは、異なる地理的位置にルーティングされた K_BK のコピーを受信している。
【0190】
ステップ279では、イニシエータエンドポイント104aとレシーバエンドポイント104bは、共にBilocation Key K_BKを用いて最終鍵の確立を行う。例えば、 イニシエータエンドポイント104aとレシーバエンドポイント104bは、Bilocation Key K_BK と複合イニシエータレシーバノンスN_IR との組み合わせに基づいて、同じ最終鍵K_S を生成することができる。別の例では、イニシエータとレシーバのエンドポイント104aと104bは、対応するチャレンジノンス C_IとC_Rをそれぞれ生成し、互いに送信するチャレンジ/レスポンスプロトコル/プロセ スを実行することができる。各エンドポイント104a又は104bは、それぞれ、対応する受信したチャレンジノンスC_IとC_RをBilocation Key K_BKと組み合わせて、対応するチャレンジレスポンスR_I又はR_Rを計算する。チャレンジレスポンスR_Iまたは R_Rは、それぞれイニシエータ又はレシーバエンドポイント104a又は104bから送信され、受信したチャレンジレスポンスR_R又はR_Iがイニシエータ及びレシーババイス104a-104bによってそれぞれ確認されると、チャレンジレスポンスX_IとX_Rの対応する未送信部分の組み合わせ(例:XOR関数やハッシュ関数を使用)によって鍵K_Sが生成される。
【0191】
その後、イニシエータエンドポイント104aとレシーバエンドポイント104bは、限定するわけではないが、例えば通信チャネル及び/又はその間に通信されるデータを暗号化するため、及び/又は他の目的のために、最終鍵、K_Sを使用して通信セッションを開始する。この例では、最終鍵はイニシエータエンドポイント104aとレシーバエンドポイント104bの間の通信チャネルをセキュアにするために使用されるが、これはあくまで例であり、本発明はそのように限定されるものではなく、イニシエータエンドポイント104aとレシーバエンドポイント104bで同じである最終鍵は、任意の適切な目的、暗号操作、暗号アプリケーション、システム、データ及び/又は通信のセキュア化等、それらの組み合わせ、それらの修正、本書で説明される通り、及び/又はアプリケーションの要求に応じて使用され得ることが当業者には理解されよう。.
【0192】
第1鍵ノード(例:KNodeA)と第2鍵ノード(例:KNodeB)は異なる地理的位置(例えばKNodeAoKNodeB)にあるものとして
図2a-2gで説明されているが、これは簡単のため、例示のためであって、本発明はそのように限定されるものではなく、本発明による、及び/又は
図2a-2gを参照して本書で説明される、及び/又は本書で説明される鍵確立システム、装置及びプロセスは、第1鍵ノードと第2鍵ノードが同じ鍵ノードである場合、同じ鍵ノード上の2つの異なる論理的な位置を有する場合、又は、同じ論理的な鍵ノードである場合(例:KNodeA==KNodeB)、イニシエータエンドポイント/デバイスとレシーバエンドポイント/デバイスの両方が、2つの異なるKNodeの地理的に配置された2つの異なるサーバ/コンピューティングデバイスではなく、KNodeまたは論理KNodeの同じサーバ/コンピューティングデバイスと通信し、結果として生じるKNodeは、イニシエータエンドポイント/デバイスとレシーバエンドポイント/デバイスの間で鍵を確立する際に、対応するエンドポイント/デバイスのためにBilocation Keyまたは中間Bilocation Keyを生成するために使用する、「それ自身と共有する鍵(即ち、それ自身が所有する、又は知っている鍵)」の集合(例:QKD鍵配列からのQKD鍵)から鍵を選択するように構成されることが当業者には理解されるであろう。
【0193】
図3a-3dは、鍵確立プロセス300のさらなる例を示す信号フローシーケンス図表である。
図1a及び/又は
図1bのシステム100及び/又は
図2a-
図2gのセッション確立プロトコル/プロセス200、210、230、240、250、260及び/又は270は、
図3aから
図3dを参照して説明した鍵確立プロセス300のステップ及び/又はプロセスに基づいてそれらの組合せ、本書で説明するようなそれらの変更、及び/又はアプリケーションの要求に応じて、さらに変更することができる。簡単のため、
図1a及び/又は
図1bの参照番号は、同一または類似の構成要素に再利用される。鍵確立プロセス300は、
図3a-
図3dを参照した信号フローシーケンスによって説明される。
【0194】
図3aは、
図1a、
図1b及び/又は
図1cのクラウドシステム100、量子クラウドシステム110及び/又は120、特に、対応する第1及び第2鍵ノード106a及び106b(例:KNode I及びKNode R)が、鍵確立プロトコル/プロセス300で使用されるように適切に構成されていることを確認するために必要となり得るシステム初期化プロセス301を説明する。クラウドシステム100又は量子クラウドシステム110又は120が適切にセットアップされていると仮定すると、
図3bは、第1ハンドシェイクプロセス310による鍵確立プロトコル/プロセス300の開始を示す信号フローシーケンス図を含み、鍵確立プロトコル/プロセス300の中間Bilocation Key(IBK)リクエストプロセス315及びIBK確立プロセス320に続く。
図3cは、
図3bに続く信号フローシーケンス図であり、第2のハンドシェイクプロセス330、Bilocation Key(BK)リクエストプロセス335、BK確立プロセス340、鍵確立プロトコル/プロセス300の最終ハンドシェイクプロセス350を示す信号フローシーケンス図である。
最後に、
図3dは、
図3cに続いて、イニシエータ及びレシーバエンドポイント104aと104bの間で最終鍵を確立するための少なくとも2つのオプション355と360を示す信号フロー図である。最終鍵は、例えばイニシエータ及びレシーバエンドポイント104aと104bの間のセキュアな通信セッションで使用するため、及び/又は他の適切な目的のために、限定することなく使用することができる。
【0195】
図3aを参照すると、鍵確立プロセス300のシステム初期化プロセス301は、セッション確立プロセス300に関与する鍵ノード106aと106b(例:KNode IとKNode R)の間でKNode ID/識別子を共有するステップを含む。これに続いて、限定はしないが、例えば、衛星119及び衛星チャネル119a、119bを介した衛星量子鍵配布システム、地上局108a-2/108b-2及び対応するファイバーリンク119cを用いた地上ファイバーベースの量子鍵配布システム119c、又は、古典的又は手動チャネル109a、109b等を用いた古典的鍵配布システム等の他のタイプの鍵配布システム109を用いた鍵セット又は分散鍵の配布、これらの組み合わせ、これらの変更、及び/又はアプリケーションの要求に応じた配布が行われる。
【0196】
衛星量子鍵配布システム119、地上量子鍵配布システム、またはその他の鍵配布システム109について説明したが、これは例示であり、本発明はそれほど限定されるものではなく、これらの量子鍵配布システム又は古典的な鍵配布システムは、限定されることなく、これらと置き換えてもよいことが当業者には理解されよう。例えば、配布された鍵が鍵ノード106a、106bに安全に配布され、及び/又は鍵ノード106a、106bによってアクセスされる限り、鍵のセットを安全に配布するための、任意の他の適切なタイプの量子鍵配布システム又は非量子鍵配布システム、任意の他のワンタイムパッド又は暗号鍵配布システム、「ブリーフケースを持った男」又は他の手動鍵配布システムなどである。セキュリティを高めるために、量子安全または量子安全な方法であってもよいが、限定するものではないが、例えば、非量子安全または古典安全な方法であってもよい。鍵のセットが鍵ノード106aおよび106bの双方に配布され、及び/又は鍵ノード106aおよび106bの双方にアクセス可能になると、各鍵ノード106aおよび106bについて同じである分散鍵のセットが分散鍵プールに配置/プールされる。各鍵ノード106a、106bの分散鍵プールは、他の分散鍵や、鍵ノード106a、106bの両方にとって同じである分散鍵のセットも含むことができる。
【0197】
代替的または付加的に、あるいはオプションとして、KNode106a及び106bの各々は、HSM(例:
図1a及び
図1bのHSM108a-1及び108b-1)にアクセスすることができる。この場合、対応するKNode106a又は106bが鍵セットの平文鍵を見ることがないように、対応するHSM108a-1又は108b-1において、対応するKNode106a又は106bに代わって分散鍵又は鍵セットの分散鍵を含む以下の暗号処理が実行される。
この場合、KNode106a及び106bは、各HSMにおいて、分散鍵セットの分散鍵IDの一致する配列を実質的に有し、分散鍵セットの特定の鍵を選択する際に、分散鍵IDを使用してHSM内の分散鍵を参照/選択し、分散鍵の選択を可能にする。この例では、鍵ノード106a及び106bの各々は、同じ分散鍵セットにアクセスすることができ、鍵ノード106a及び106b内に格納されている、及び/又は鍵ノード106aおよび106bの各々がアクセス可能なHSMから安全な方法でアクセスすることができる。さらなるセキュリティのために、
図1b又は
図1cの量子ネットワーク112及び/又は122を参照して説明したように、量子安全または量子安全な方法であってもよい。
【0198】
鍵確立プロセス300のシステム初期化プロセス301は、以下のステップを含む:
【0199】
ステップ302aでは、第1鍵ノード106a(例:KNode I)は、それ自身固有のID(例:KID_I)を生成する。
【0200】
ステップ302bでは、第2鍵ノード106b(例:KNode R)は、それ自身固有のID(例:KID_I)を生成する。
【0201】
ステップ303aでは、第1鍵ノード106a(例:KNode I)は、独自の識別鍵(例:KID_R)を生成する。
【0202】
ステップ303bでは、第2鍵ノード106b(例:KNode R)は、独自の識別鍵(例:KID_R)を生成する。
【0203】
ステップ304では、鍵配布システムにより、鍵ノードの各一対に、一意の共通鍵プール又は共通鍵セットが提供される。従って、鍵ノードのペア内の各鍵ノードは、同じ分散鍵セット又はプールにアクセスできる。これらは対称暗号鍵である。例えば、ステップ304aにおいて、システム100が
図1bで説明したような衛星QKDシステム110である場合、量子セキュアネットワーク112を有する量子クラウドシステム110においてKNodeの固有なペアを形成することができる第1及び第2鍵ノード106a、106bについて、衛星QKDシステム110は、KNode106a及び106bの各ペアに、衛星QKDセキュアチャネル119a及び119bを介して、いわゆるKEYPOOLを形成するために使用され得る対称量子分散鍵の固有のプールを提供するように構成され、この場合、KNode106a及び106bのペアに固有の量子分散鍵のセットを含む。量子分散鍵セットを含むKEYPOOL内の量子分散鍵の数は1以上であってもよい。別の例では、ステップ304bにおいて、システム100が、量子クラウドシステムを形成し得る量子セキュアネットワーク122を有する地上波QKDシステム120であり得る場合、地上波QKDシステム120においてKNodeの固有なペアを形成し得る第1及び第2鍵ノード106a及び106bに対して、地上波QKDシステム120は、地上波QKDセキュアチャネル119cを介して、KNode106aおよび106bの各組に固有の対称鍵プールを提供し、KNode106a及び106bの組に固有の量子分散鍵セットを含む、いわゆるKEYPOOLを形成するように構成される。量子分散鍵セットを含むKEYPOOL内の量子分散鍵の数は1以上であってもよい。別の例では、ステップ304cにおいて、システム100は、セキュアネットワーク102を有するシステム100においてKNodeの一意なペアを形成し得る第1及び第2の鍵ノード106a及び106bに対して、
図1aで説明したようなシステム100は、SQKD又は地上波QKD以外の鍵配布システム109を含み、KNode106a、106bの各ペアに、各ノード106a、106bでいわゆるKEYPOOLを形成するために使用され得る安全なチャネル109a、109bを介した対称分散鍵の一意のプールを提供するように構成される。この場合のKEYPOOLには、KNode106aと106bのペアに固有の分散鍵のセットが含まれる。いずれにせよ、ステップ304において、第1鍵ノード106aと第2鍵ノード106bの各々は、 同じ分散鍵セット(例:古典分散鍵や量子分散鍵など)を受信するように構成される。
【0204】
ステップ305及び305bでは、第1及び第2鍵ノードは、それぞれの分散鍵セットを構築する。例えば、i及びrがそれぞれ第1及び第2鍵ノードを示す場合、すべての有効なpについて、鍵プールKNode[i]
.KEYPOOL[p]
= KNode[r]
.KEYPOOL[p]
などである。オプションとして、KNode106a、106bが生の分散鍵にアクセスできないようにするため、KEYPOOLに分散鍵(例:QKD鍵)から派生した鍵の集合を入れることもできる。ソルトハッシュ(又は他のランダム値)を使用する場合、KNode106aと106bの両方で既知である鍵が置かれた配列のスロットのインデックスにソルトが設定されない限り、KEYPOOL内の同じ鍵セットが両方の場所で一致することを保証するために、ソルト(又はランダム値)をKNodeのペア間で安全に共有する必要がある。
【0205】
ステップ306aでは、第1鍵ノード106a(例:KNode I)は、そのID(例:KID_I)と識別鍵(例:K_I)をシステム100(又は量子クラウドシステム110や120)内の他の鍵ノードと、限定するわけではないが、例えば第2鍵ノード106b(Knode_R)と、1つ以上の安全なチャネル(例:量子セキュアチャネル)を介して共有する。
【0206】
ステップ306bでは、第2鍵ノード106b(例:KNode R)は、そのID(例:KID_R)と識別鍵(例:K_R)を量子クラウドシステム100内の他の全ての鍵ノード、限定するわけではないが、例えば第1鍵ノード106a(Knode_I)と、1つ以上の安全なチャネル(又は量子セキュアチャネル)を介して共有する。
【0207】
ステップ307では、第2鍵ノード106b(例:KNode R)は、受信した各KNodeIDと他のすべての鍵ノードのKNodeIDとの対応表またはルックアップテーブルを保持する。この例では、第2鍵ノード106b(例:KNode R)は、第1の鍵ノード106aのKID_IとK_Iを受信し、第1鍵ノード106aのKID_IとK_Iの間のマッピングに関連して、その対応表又はルックアップテーブルを更新する。実際には、システム100、110又は120の各KNodeは、他のすべてのKNodeのKNodeIDとKNode識別鍵とのルックアップを保持する。
【0208】
ステップ308では、第1鍵ノード106a(例:KNode I)は、受信した各KNodeIDと他のすべての鍵ノードのKNode識別鍵との対応表又はルックアップテーブルを保持する。この例では、第1の鍵ノード106a(KNode I)は、第2鍵ノード106bのKID_RとKID_Rを受信し、第2鍵ノード106bのKID_R、K_R間のマッピングに関連する対応表またはルックアップテーブルを更新する。
【0209】
システム初期化プロセス301は、鍵ノードのペアを形成する少なくとも2つの鍵ノードが適切に初期化され、対応する鍵ノードID、鍵ノード鍵、および分散鍵のセット(例え:システム100では古典分散鍵のセット、システム 110又は120では量子分散鍵のセット)がマッピングされている限り、それ以前であればいつでも実行することができる。従って、鍵ノードは、第1デバイス/エンドポイント104a(例:イニシエータエンドポイント)及び第2デバイス/エンドポイント104b(例:レシーバエンドポイント)に関して鍵確立プロセスの各ステップを実行する際に、適切にプロビジョニングされ、それに従って動作するものとする。
【0210】
図3bを参照すると、ここで第1デバイス104a(例:イニシエータエンドポイント)と第2デバイス104b(レシーバエンドポイント)は、両者間に最終鍵を確立するために、鍵確立プロセス300の実行を望んでいると仮定できる。例えば、両者間に確立される最終鍵は、両者間の通信セッションの安全性を確保するため、及び/又はその他の適切な目的のために使用することができる。この例では、最終鍵が、第1及び第2鍵ノード1046a、106bに安全な方法でプロビジョニングされた分散鍵のセットから選択された鍵を使用して確立されることを考えると、最終鍵も安全な鍵である。例えば、
図1b及び/又は
図1cのシステム110及び120では、第1及び第2鍵ノード1046a及び106bと量子セキュアな方法で提供される量子分散鍵のセットから選択された鍵を用いて最終鍵が確立される。最終鍵の確立は、
図3aの初期化プロセス301及びステップ304を参照して説明したように、分散鍵セットを含むKEYPOOLで既に初期化された鍵ノード106a及び106bを用いて、それぞれ実施され得るシステム100、110及び/又は120並びにセキュアネットワーク100、量子セキュアネットワーク112及び122のタイプに関連して実行され得る。
【0211】
図3bを参照すると、最初にイニシエータエンドポイント104aは、レシーバエンドポイント104bと第1ハンドシェイクプロセス310(例:Handshake 1)を行う。鍵確立プロセス300の第1ハンドシェイクプロセス310は、以下のステップを含む:
【0212】
ステップ 311では、イニシエータエンドポイント104aはレシーバエンドポイント104bとの接続をオープンする。これは、限定はしないが、例えば、アプリケーションの要求に応じてトランスポートレイヤーセキュリティ(TLS)等やその類似を用いた古典的なセキュア通信チャネルであってもよい。イニシエータエンドポイント104aは、少なくとも以下の情報を代表するデータを要求する(例:ID_R、KID_R、N_R、任意でN_Tを取得)。a)レシーバの固有ID(例:ID_R)、b)レシーバエンドポイント104bがBilocation Keyのコピーを収集するKNode106bのID(例:KID_R)、c)レシーバエンドポイントからの第1ランダムノンス(例:N_R)、オプションとして、d)「トラストレス」プロセスを保証するために、サーバーインフラと共有されることのない「トラストレス」ランダムノンス(例:N_T)。
【0213】
ステップ312では、レシーバエンドポイント104bはレシーバエンドポイントから第1ランダムノンス(例:N_R)を生成し、必要であれば、オプションとしてレシーバエンドポイント104bは「トラストレス」ランダムノンス(例:N_T)も生成する。レシーバエンドポイント104bはKNode106bのID(例:KID_R)も決定する。ここでレシーバエンドポイント104bは、Bilocation Keyのコピーを収集する。イニシエータエンドポイント104a が使用するKNode106aとレシーバエンドポイント104bが使用するKNode106bは異なるものであり、地理的にも異なる場所にあることに注意されたい。
【0214】
ステップ313で、レシーバエンドポイント104bは、以下の情報を代表するデータをイニシエータエンドポイントに返す(例:ID_R、KID_R、N_R、任意でN_Tを返す)。a)レシーバの固有ID(例:ID_R)、b)Bilocation Keyのコピーを収集する場所としてレシーバエンドポイント104bが選択するKNode104bのID(レシーバエンドポイント104bに地理的に近いものが望ましい)(例:KID_R)、c)レシーバによって生成された第1ランダムノンス(例:N_R)。オプションとして、あるいは必要であれば、レシーバエンドポイント104bは、オプションの「トラストレス」ランダムノンス(例:N_T)もイニシエータエンドポイント104aに返す。従って、レシーバエンドポイント104bとイニシエータエンドポイント104aの両方が、「トラストレス」ノンスN_Tを持つ。「トラストレス」ノンスN_Tは、最終鍵の生成中に、
図3dの最初の鍵生成プロセス355において、イニシエータエンドポイント104aとレシーバエンドポイント104bによって使用され、セキュアネットワーク/クラウド102のクラウドサービスやアプリケーション(若しくは量子セキュアネットワーク/クラウド112又は122の量子クラウドサービス)が、イニシエータエンドポイント104aとレシーバエンドポイント104bの間で共有される最終鍵を決して知ることができないことを保証する。
【0215】
これにより、最初のハンドシェイク処理310は終了する。最初のハンドシェイクプロセス310の後、Receiver エンドポイント104bから少なくともID_R、KID_R、N_Rに代表されるデータを受信すると、Initiatorエンドポイント104aは、セッション確立プロセス300の一部として、中間バイロケーション鍵要求プロセス315を実行する。
図3bにおいて、Initiatorエンドポイント104aが実行する中間バイロケーション鍵要求処理315は、以下のステップに基づく:
【0216】
ステップ316において、Initiatorエンドポイント104aは、第二のランダムnonceを生成する。
【0217】
ステップ317において、Initiatorエンドポイント104aは、第1および第2のランダムノンス(例えばN_I、N_R)を組み合わせることに基づいて、第3の複合ノンス(例えばN_IR)を生成する。例えば、XOR型の演算、ハッシュ演算、および/またはInitiatorエンドポイント104aとReceiverエンドポイント104bで複製可能な適切な関数を使用することができる。
この例では、一例としてXOR型の演算を行うが、本発明はそう限定されるものではない。この例では、第3のノンスN_IRは、例えばN_IR=N_I XOR N_Rのように、第2のランダムノンスN_IとReceiverから受信した第1のランダムノンスN_RをXORして第3のノンス(複合ノンス)N_IRを生成することによって生成される。
【0218】
ステップ318において、Initiatorエンドポイント104aは、以下のことに基づいて、不完全なlink-infoデータパケットを作成する。
a)Initiatorエンドポイント104aが、最初のキーノード、すなわちKNodeをせんたくする。106aはReceiverエンドポイント104bによって使用されている第2のキーノードまたはKNode106bではない第1のキーノードまたはKNode106aは、好ましくはInitiatorエンドポイント104aに地理的に近いが、第2のキーノード106bとは地理的に異なる場所にあるキーノードである。選択されたキーノードは、例えば第1のキーノード106aのように、KNode IDKID_Iを伴う。b)Initiatorは、以下の代表的なデータに基づいて、不完全なlink-infoデータパケットL_Iを作成する:i)Receiverエンドポイント104bの固有ID、ID_R;ii)Receiverエンドポイント104bがBilocation Keyの収集を希望するKNodeの固有ID、KID_R;iii)複合Nonceのハッシュ、N_IR’=#(N_IR)、従って、N_IR自体をエンドポイントに秘匿し、KNodeが最終的なBilocationKeyを決定することを防ぐ;ここで、限定はしないが、例えば、リンクinfoパケットは、L_I={ID_R,KID_R,N_IR’}の形をとる。
【0219】
ステップ319において、Initiatorエンドポイント104aは接続をオープンし、選択した第1の鍵ノード106a(例えばKNodeI)に対して認証を行う。例えば、セキュアチャネルは、
図1aのシステム100で説明されているような古典的なセキュアチャネル105aであってもよいし、
図1bまたは1cのシステム110または120で説明されているような量子セキュアチャネル115aであってもよい。いずれにせよ、これは、第一の鍵ノード106aが、ID_Iと表記されるInitiatorエンドポイント104aのIDを(例えば認証プロセスなどから)推測する可能性があることを意味する。例えば、鍵ノード106aとInitiatorエンドポイント104との間の接続は、第1の鍵ノード106aと共有される共通鍵で暗号化された通信路であってもよく、この共通鍵は、Initiatorエンドポイント104aがそこに格納していてもよい。
Initiatorエンドポイント104aは、システム100または量子システム110または120から、セキュアな方法(例えば、量子セキュア/セーフな方法での量子分散鍵)で共通鍵を収集するように構成されており、共通鍵は、システム100またはシステム110または120の1つ以上のサーバ、ノード、鍵ノード等とのセキュアな通信に使用される。いずれにせよ、Initiatorエンドポイント104aは、クラウドシステム100(または量子クラウドシステム110、120)のネットワーク102(または量子ネットワーク112、122)内の第1の鍵ノード106aと、セキュアな通信チャネル105a(または量子セキュア通信チャネル115a)を確立できる、または確立できるように構成されているものとする。このチャネルの認証は、InitiatorエンドポイントのID_Iが、第一の鍵ノード106a(KNodeIなど)によって推測されたこと、および/または第一の鍵ノード106aに提供されたことを意味する。
【0220】
Initiatorは,選択されたKNodeI、すなわち第1の鍵ノード106aに対して、Bilocation Key,K_IBK、Initiator anti-replay nonce、N_REPI,およびチェック値Cを作成するよう要求し、その要求において、不完全なlink-infoを代表するデータを渡す。IBKリクエストは以下の形式をとることができる:(KBK,N_REPI,C)=create_intermediate_bilocation_key((L_I))。このように、KNodeIがCをN_IR’と等しくし、InitiatorがCがN_IR’と等しいことを確認することで、盗聴者によるリプレイアタックを防ぐことができる。さらに、オプションとして、Initiatorのエンドポイント104aは、非対称トランスポート鍵(RSAやPQAなど)を生成し、サーバーがIBKレスポンスが量子クラウドインフラを介して逆流した際に傍受されることを防ぐためにIBKレスポンスを暗号化をすべきIBKリクエストの中でこの鍵の公開部分PKを渡すことができる。IBKリクエストは以下のような形式をとる場合がある:({K_IBK,N_REPI,C}PK)=create_intermediate_bilocation_key(L_I,PK),ここで、{K_IBK_IPKは、鍵の公開部分PKで暗号化されたK_IBKを示す。さらに、オプションとして、Initiatorエンドポイント104aは、第一の鍵ノード106aが中間バイロケーション鍵K_IBKの計算において使用する関数などを記述する追加のメタデータをIBKリクエストに追加するようにさらに構成することができる。このメタデータは受信側エンドポイント104bに渡される必要があり、受信側エンドポイント104bは、第2の鍵ノード106bによって使用されるのと同じ機能を要求することができる。
【0221】
Intermediate Bilocation Keyが、process 315を要求した後、Initiatorエンドポイント104a Intermediate Bilocation Key establishment process320を用いて、第一の鍵ノード106a または第一の鍵ノード106aに接続されたHSMによって生成されるIntermediate Bilocation Key、K_IBKの受信を待つ。本実施例では、IBK確立プロセス320のステップは第1の鍵ノード106aによって実行されるが、これは例示に過ぎず、本発明はそのように限定されるものではなく、IBKプロセス320で使用される暗号処理は、第1の鍵ノード106aがアクセスすることができるHSMの内部で実行されてもよく、第1の鍵ノード106aに接続されてもよく、これに関連してもよく、及び/又は、第1の鍵ノード106a及び/又は第1の鍵ノード106a自体に関連する他の任意のセキュア・コンピューティング・コンポーネントによって実行されてもよく、本申請書で説明されているように、及び/又は、アプリケーションの要求に応じて、それらの組み合わせ、それらの変更が行われてもよいことが、熟練者には理解されるものとする。Intermediate Bilocation Key確立プロセス320は、以下のステップに基づくことができる:
【0222】
ステップ321において、最初のキーノード106a(例えばKNode(lnitiator))は、受信したlink-infoL_Iを補完し、a)Initiatorエンドポイント104aの固有ID(Initiatorエンドポイント104aが認証したことを意味する)、ID_Iと、b)第1の鍵ノード(例えばKNodeI)自身の固有ID、KID_Iを代表するデータを用いて、完全なlink-infoL’を作成する。この情報は、限定するものではないが、例えばL’=(ID_I||KID_I||L_I.ID_R||L_I.KID_R||L_I.N_IR’)のような以下の完全なリンクインフォL’を形成するために組み合わされる。ここで||は連結を表し、X.Yはリンクインフォ構造Xからの値Yのデリファレンスを表す。
【0223】
ステップ322において、第1の鍵ノード106a(例えば、KNode(lnitiator)またはKnodeI)は、完全なリンクインフォであるL’を使用する鍵選択プロセスに基づいて、第1の鍵ノード106aのKEYPOOLに含まれる分散鍵のセットの中から、それが提供されている鍵を選択する(分散鍵のセットは、第2の鍵ノード106bに提供されている第2の鍵ノード106bのKEYPOOLに含まれる分散鍵のセットと同じである)。例えば、鍵選択プロセスは、限定するものではないが、例えば:L’のハッシュを計算し、#(L’)を用いて、第1の鍵ノード106aと第2の鍵ノード106bの両方に関連するKEYPOOLの分散鍵セットにおける選択された鍵の位置またはインデックスを提供する。すなわち、第1の鍵ノード106a(KNode(lnitiator)またはKNodeI)は、#(L’)を用いて、IDがKID_Rである第2の鍵ノード106b(例えばKNodeR)と共有されるKEYPOOLの分散鍵セットからどの鍵を選択すべきかを特定する。第1の鍵ノード106a(例えばKNode(lnitiator)またはKNodeI)は、完全なリンクインフォL’に適用される適切な鍵選択アルゴリズムを用いて、KEYPOOL(例えば共有QKD鍵のプール)内の分散された鍵の集合から鍵K_Qを選択する。例えば、鍵選択アルゴリズムは、限定はしないが、例えば、#(L’)の低位(bottom)Nビットを一つかいくつかを選択するとか、最下位#(L’)を選択するとか、#(L’)の最上位Nビットを選択するとか、#(L’)のNビットの特定部分を選択するとか、#(L’)の低位(bottom)Nビットとか、分散された鍵セットから鍵を選択するための一意の鍵インデックスを生成するのに適した他の任意の選択関数、および/または、鍵インデックスを選択するのに適したSelectKeylndexという名前の他の任意の関数等が挙げられる。ただし、第2の鍵ノード106bも、第1の鍵ノード106aが使用するのと同じ鍵選択アルゴリズムを使用することが想定され、これにより、第1および第2の鍵ノードによって同じ鍵K_Qが適宜選択されることが保証される。いずれにせよ、第1の鍵ノード106aは、下記に限定するものではないが、例えば、K_Q=KEYPOOL[KID_R]
[SelectKeylndex(#(L’))]
(ここで、KEYPOOL[KID_R]
は、IDがKIDRのKNode106bと共有されるKEYPOOLの分散鍵の集合である)に基づいて、KEYPOOLの分散鍵の集合から鍵K_Qを選択する。
【0224】
ステップ323において、第1の鍵ノード106a(例えばKNode(lnitiator)またはKNodeI)は、ランダムなAnti-replay nonce N_REPIを生成する。
【0225】
ステップ324で、第1の鍵ノード106a(例えばKNode(lnitiator)またはKNode I)は、ID_Rに関連付けられたID鍵K_Rを、第1の鍵ノード106aが保持するKNodeマッピングまたはルックアップテーブルから検索する(例えばGet Identity Key K_R=IDENTITYKEY(L_I.KID_R))。第1のキーノード106a(例えば、KNode(lnitiator)またはKNode I)は、もちろん自身のIDキーK_Iを認識している。
【0226】
ステップ325において、最初の鍵ノード106a(例えばKNode(lnitiator)またはKNode I)は、以下のデータをハッシュし、その結果をK_IおよびK_RとXORすることにより、Intermediate Bilocation鍵K_IBKを作成する。a)選択された鍵K_Q、b) 完全なリンク情報のハッシュ#(L’)、c)再生防止ノンスN_REPI。Intermediate Bilocation鍵K_ISは、限定はしないが、例えばK_IS=#fKQ,#(L),N_REPI)XORK_IXORK_Rに基づいて作成される。
【0227】
ステップ326において、最初の鍵ノード 106a(例えばKNode(lnitiatorまたは KNode I)は、Intermediate Bilocation Key(K_IBK)、チェック値C(受信した N_IR’に等しい)、およびInitiator anti-replay nonce(N_REPI)をInitiator エンドポイント 104aに返信または送信する(例えばReturn_Intermediate_Bilocation_Key(K_IBK,N_REPI))。Initiatorエンドポイント104aは、返戻されたチェック値Cがハッシュ化されたnonceN_IR’ioと一致することをチェックすることで、クライアントに対するリプレイ攻撃を防ぐことができる。値が一致しない場合、例外処理が発生する可能性がある。これが送信されると、最初の鍵ノード106a(例えばKNode(lnitiator)またはKNodeI)は、K_IBKを代表するデータをゼロにするか削除する。
【0228】
Intermediate Bilocation鍵確立プロセス320の後、Initiatorエンドポイント 104aは、
図3bのIntermediateBilocation鍵確立プロセス320を用いて、第一の鍵ノード106aによって生成/生成され、および/または第一の鍵ノード106aから送信され、第一の鍵ノード106aに接続/アクセス可能なHSM等を用いて生成/生成されたIntermediateBilocation鍵K_IBKを受信する。次に、鍵確立プロセス300は、
図3cに進み、Initiatorエンドポイント104aとReceiverエンドポイント104bが使用するFinalKeyを確立するための、セッション確立プロトコル/プロセス300の Second Handshake プロセス330、Bilocation Key Request プロセス335、Bilocation Key Establishment プロセス340、およびFinal Handshake プロセス350 を実行する。例えば、Final Keyは、その間のセキュアな通信セッションで、及び/又は、他の適切な目的で使用することができる。
【0229】
図3cを参照するとセッション確立プロセス300のInitiatorデバイス104aとReceiverデバイス104b間の第2ハンドシェイクプロセス330は、以下のステップを含む:
【0230】
ステップ331において、Initiatorエンドポイント104aは、開放されたネットワークコネクションを介してReceiverエンドポイント104bに以下のデータを送信するか、開放されていないネットワークコネクションを介する場合はReceiverエンドポイント104bと別のコネクションを利用する:a)Initiatorエンドポイントの一意なID、ID_I、b)Initiatorエンドポイント104aがIntermediate Bilocation Key request and establishment process(es)315、320で使用したKNode106a(KNodeI)の一意なID、KID_I、c)Initiatorエンドポイント104aのnonce、N_I、d)Initiatorのanti-replay nonce、N_REPI。これは、例えば、Create_Bilocation_Key(ID_I,KID_I,N_I,N_REPI)などに限定しないが、それらに基づくコール、APIコール、またはパケットにおいて、Initiatorエンドポイント104aからReceiverエンドポイント104bに送信されることが考えられる。さらに、あるいはオプションとして、Initiatorデバイス104aは、どの関数をバイロケーション鍵の計算に使用するかなどを記述した付加的なメタデータを送信することができ、それをReceiverエンドポイント104bが第二の鍵ノード106bに中継することができる。この例では、Receiverエンドポイント104bは、ID_I、KID_I、N_I、N_REPIを代表するデータと、Bilocation鍵を作成する、またはBilocation鍵K_BKの作成を要求する指示またはトリガーを受信する。
【0231】
第2ハンドシェイクProcess330の後、Receiverエンドポイント104bおよび第2鍵ノード106b(例えばKNodeR)は、鍵確立工程300の、Bilocation鍵要求工程335およびBilocation鍵確立工程340に進む。Receiverエンドポイント104bによって実行されるBilocation鍵要求プロセス335は、以下のステップに基づく:
【0232】
ステップ336で、Receiverエンドポイント104bは、最初のハンドシェイクプロセス310のステップ312で先に生成されたnonceN_Rと、ステップ331でInitiatorエンドポイントから受信されたnonceN_Iを使用して、複合または第三のnonce、N_IRを生成する。複合または第3のノンスN_IRは、以下に限定するものではないが、例えばXOR型関数、ハッシュ関数、またはXOR関数などと同様の特性を持つ他の関数などの関数を使用して、第1のノンスN_Rと第2のノンスN_Iを結合することに基づいてもよい。例えば、N_IR=N_I XOR NRである。
【0233】
ステップ337では、Receiverエンドポイント104bは、以下を代表するデータからなる不完全なlink-infoデータパケットも生成する:a)Initiatorエンドポイント104aの固有ID、ID_I;b)Initiatorエンドポイント104aがIntermediate Bilocation鍵を収集した第1鍵ノード106a(例:KNodeI)の固有ID、KID_I;c)複合Nonceのハッシュ、N_IR’=#(N_IR)。これにより、N_IR自体をエンドポイントに秘匿し、KNodeがfinalBilocation鍵を特定することを防止するもの、d)複合ノンス、N_IR;ここで、限定はしないが、例えば、不完全なリンクインフォパケットは、L_R={ID_I,KID_I,N_IR’}の形をとる。
【0234】
ステップ338において、Receiverエンドポイント104bは、セキュアチャネル105b(または量子セキュアチャネル115b)を介して接続を開き、選択した第2の鍵ノード106b(例えばKNodeR)に対して認証を行う。このチャネルの認証は、第2の鍵ノード106b(例えばKNodeR)にReceiverエンドポイントのID、ID_Rを提供することに留意されたい。しかし、これは、セキュアな接続が確立された後などに、Receiverエンドポイントから明示的にセキュアに取得することもできる。第2の鍵ノード106bとのセキュアチャネル105b(または量子セキュアチャネル115b)上で、Receiverエンドポイント104bは、Bilocation Key、K_BK、Receiver anti-replay nonce、N_REPR、Bilocation Key ID、ID_BK、およびチェック値C(受信したN_IR’に等しい)を要求する。ここにおけるBilocation Key(BK)リクエストは以下に代表されるデータを連携及び/又は含む;a)不完全なlink-infoL_R;b)Initiator anti-replay nonceN_REPI例えば、Bilocation Key(BK)リクエストは、限定はしないが、(K_BK,N_REPR,ID_BK,C)=get_bilocation_key(L_R,N_REPI)に基づいてもよい。Receiverエンドポイント104bは、クライアントに対するリプライ攻撃を防ぐために、返戻されたC値がハッシュされたノンスN_IR’と一致するか確認することができる。もし、値が一致しない場合、例外措置を取ることが出来る。さらに、オプションとして、Receiverエンドポイント104bは、非対称トランスポート鍵(RSAやPQAなど)を生成し、この鍵の公開部分PK_Rをサーバーで量子クラウドインフラを介して逆流する場合に外部から傍受されるのを防ぐ目的で暗号化されたBK電文で渡すこともできる。BK電文は以下のような形式をとることができる:{(K_BK,N_REPR,ID_BK,C)}PK_R=create_bilocation_key(L_R,N_REPI,PK_R)ここで、{K_BK}PK_Rは、K_BKを鍵の公開部分PK_Rで暗号化したものを示す。さらに、オプションとして、Receiverエンドポイント104bは、第2の鍵ノード106bがBilocation鍵K_BKの計算においてどの関数を使用するかなどを記述する追加のメタデータをBK電文に追加するようにさらに構成することも可能である。このメタデータは、Receiverエンドポイント104bが、第2のキーノード106bによって使用されるのと同じ機能を要求できるように、事前にInitiatorエンドポイント104aからReceiver側エンドポイント104bに渡される必要がある。さらに、オプションとして、Receiverエンドポイント104bが、第2の鍵ノード106bがBilocation鍵K_BKの計算n等においてどの関数を使用するかなどを記述した追加のメタデータをBK電文に含めた場合、Bilocation鍵確立プロセス340は、第2の鍵ノード106bおよび/またはHSMが、第1の鍵ノード106aで使用されたものと同じ関数を使用するように、さらに修正されてもよい。
【0235】
Bilocation鍵確立process340は、この例では、第2の鍵ノード106bによって実行され得るが、Bilocation鍵確立process340の暗号演算が、第2の鍵ノード106bによって接続/アクセス可能なHSMによって実行され得る場合、以下のステップに基づいて実行され得る:
【0236】
ステップ341において、第2のキーノード106b(例えばKNode(Receiver)またはKNodeR)は、L_Rを補足して、a)Receiverエンドポイント104bの一意のID(Receiveエンドポイント104bが第2の鍵ノード106bと認証したことを意味する)、ID_R、およびb)第2の鍵ノード106b(KNodeR)自体の一意のID、KID_R。このデータを組み合わせて使用して、完全なlink-infoL’を生成する。L’=(L_R.ID_I||L_R.KID_I||ID_R||KID_R||L_R.N_IR’)ここで、||は連結を表し、X.YはLinklnfoXからの値Yを表す。
【0237】
ステップ342で、第2の鍵ノード106b(たとえばKNode(Receiver)またはKNode R)は、第2の鍵ノード106bが保持するKNodeマッピングまたはルックアップテーブルから、第1の鍵ノード106aのIDに関連付けられたID鍵K_I、KID_Iを検索する(たとえばGet Identity Key K_I=IDENTITYKEY(L_R.KID_I))。第2の鍵ノード106b(例えばKNode(Receiver)またはKNodeR)は、もちろん自身のID鍵K_Rを認識している。
【0238】
ステップ343において、第2の鍵ノード106b(例えば、KNode(Receiver)またはKNodeR)は、完全なリンクインフォL’を使用する鍵選択プロセスに基づいて、第2の鍵ノード106bのKEYPOOLに含まれる分散鍵のセットの中から、それが提供された鍵を選択する(これらは、第1の鍵ノード106aに提供された第1の鍵ノード106aのKEYPOOLに含まれる分散鍵のセットと同じである)。例えば、鍵選択プロセスは、以下に限定するものではないが、例えば、#(L’)と表記されるL’のハッシュを計算し、#(L’)を使用して、第1の鍵ノード106aと第2の鍵ノード106bの両方に関連するKEYPOOL内の配布鍵のセットへの位置またはインデックスを提供することに基づいてもよい。すなわち、第2の鍵ノード106b(KNode(Receiver)またはKNode R)は、#(L’)を使用して、IDKID_Iで第1の鍵ノード106a(例えばKNodeI)と共有される第2の鍵ノード106bのKEYPOOL内の配布鍵のセットからどの鍵を選択すべきかを識別する。
第2の鍵ノード106b(例えばKNode(Receiver)またはKNodeR)は、完全なリンクインフォL’に適用される適切な鍵選択アルゴリズムを使用して、KEYPOOL(または共有QKD鍵のプール)内の分散された鍵のセットから鍵K_Qを選択する。例えば、鍵選択アルゴリズムは、以下に限定するものではないが、例えば、#(L’)の下位Nビット、または鍵インデックスを選択するのに有効または適切なSelectKeyIndexと名 づけられた他の関数に基づいてもよい。しかしながら、第1の鍵ノード106aも、第2の鍵ノード106bによって使用されるのと同じ鍵選択アルゴリズムを使用することが想定され、これにより、第1および第2の鍵ノードによって同じ鍵K_Qが適宜選択されることが保証される。いずれにせよ、第2の鍵ノード106bは、以下に限定するものではないが、例えば、K_Q=KEYPOOL[KID_I]
[SelectKeylndex(#(L’))]
に基づいて鍵K_Qを選択する。ここで、KEYPOOL[KID1]
は、KNode106aとID KIDIで共有されるKEYPOOL内の分散鍵の集合である。
【0239】
ステップ344において、第二の鍵ノード106b(KNode(Receiver)またはKNodeR)は、以下のデータをハッシュし、その結果をKIおよび自身のK_RとXORすることで、Intermediate Bilocation鍵を生成する:a)選択された鍵KQ、b)完全なリンクインフォのハッシュ#(L’)、c) Receiverエンドポイント104bから受信したInitiator anti-replay nonce、N_REPIt。Intermediate Bilocation Key鍵、K_IS は、以下に限定はしないが、例えばK_IS=#TK_Q,#(L’),N_REPI)XORK_IXORKRに基づいて生成される。
【0240】
In step 345, the second key node 106b (KNode (Receiver) or KNode R) creates an anti-replay nonce,NREPR.ステップ345で、第2の鍵ノード106B(KNODE(RECEIVER)またはKNODER)は、アンチリプレイ・ノンス (ANTI-REPLAY NONCE)、NREPRを生成する。
【0241】
ステップ346において、第2の鍵ノード106b(KNode (Receiver)またはKNodeR)は、以下のデータをハッシュすることにより、Bilocation鍵K_BKを生成する;a) Intermediate Bilocation鍵KIS;およびb) Receiver anti-replay nonce N_REPR。Biolocation Key,K_BKは、以下に限定されることなく、例えばK_BK=#(K_IS, N_REPR)に基づいて生成される。KNode(Receiver)は、それから、random Bilocation Key ID,ID_BKを生成する。
【0242】
ステップ347において、第二の鍵ノード106b(KNode(Receiver)またはKNodeR)は、セキュアチャネル105b(または量子セキュアチャネル 115b)を使用して、Bilocation Key、K_BK、Receiver anti-replay nonce、N_REPR、ID ID_BK、およびチェック値C(N_IRに等しい)を Receiver エンドポイント104bに返戻する(例えば、Return_Bilocation_Key(K_BK,N_REPR))。Initiatorは、クライアントに対するリプレイ攻撃を防ぐために、返されたチェック値C がハッシュ化されたnonceN_IR’と一致することを確認する。Receiverはまた、K_BKを元の複合ハッシュN_IRと結合することで、最終的なバイロケーション鍵K_BK’を計算する(したがって、KNodeがK_BK’=#(N_IR,K_BK)を計算することを防ぐ)。これが送信されると、第2の鍵ノード106b(例えばKNode(Receiver)またはKNodeR)は、K_ISおよび/またはK_BKを代表するデータをゼロにするか削除する。
【0243】
オプションとして、Bilocation鍵確立process340は、Initiator側のプロセスと対称性を持たせるために、Receiverエンドポイント104bが、代わりに、Intermediate Bilocation鍵を第二の鍵ノード106b(例えば,KNodeR)に要求し、Anti-replay nonce N_REPRを形成して送信する代わりに、Intermediate Bilocation鍵を第二の鍵ノード106b(または HSM)に送信するように変更することができ、第二の鍵ノード106b(またはHSM)がBilocation Keyを生成して送信する代わりに、Intermediate Bilocation Key が、第二の鍵ノード106b(例えばKNode_R)自身によって生成されるのではなく、第二の鍵ノード106bによってReceiverエンドポイント104bに送信され、ReceiverエンドポイントがBilocation Key K_BKを生成する。
【0244】
Bilocation鍵確立process340の後、Receiverエンドポイント104bは、Bilocation鍵確立process340に基づき、第二の鍵ノード106bによって作成/生成/送信されたバイロケーション鍵K_BKを受信する。これにより、鍵確立process300は、Initiatorエンドポイント104aとReceiverエンドポイント104bの間の通信セッションで使用する鍵を確立するために、セッション確立プロトコル/プロセス300の最終ハンドシェイクプロセス350に進む。
図3cを参照すると、Receiverエンドポイント104bとInitiatorエンドポイント104a間の最終ハンドシェイクプロセス350は、以下のステップを含む:
【0245】
ステップ351において、Receiverエンドポイント104bは、その間に開放されているネットワークコネクションを通してInitiatorエンドポイント104aに以下のデータを送信する、あるいは、ネットワークが開放されていない場合はInitiatorエンドポイント104aと別のコネクションを開く:a)ReceiverのAnti-replay nonce N_REPRとBilocation Key ID ID ID_BK、オプションとして、最初のハンドシェイクプロセス310で既に行われていない場合は、b)Receiverエンドポイント104bによって生成される可能性のある更なる「trustless」ノンスN_T。Trustless”nonceN_Tは、最初の鍵生成プロセス355において、Initiatorエンドポイント104aとReceiverエンドポイント104bがFinalKeyを生成する際に使用することができ、クラウドシステム100のクラウドサービスやアプリケーション(または量子クラウド110/120の量子クラウドサービス)が、Initiatorエンドポイント104aとReceiverエンドポイント104bの間で共有される Final Keyを決して知ることができないことを保証する。
【0246】
ステップ352において、Initiatorのエンドポイント104aは、以下のデータをハッシュすることでBilocation Key K_BKを生成する。a) Intermediate Bilocation Key K_IS;b)Receiver’s antireplay nonce N_REPR Bilocation Key K_BKは、下記に限定されないが、例えばK_BK=#(K_IS,N_REPR)に基づいてInitiatorのエンドポイント104aで生成される。Initiatorは、final bilocation鍵K_BK’をN_IRとK_BKを組み合わせて、計算する(そのため、KNodeはK_BK’または#(N_IR,K_BK)を計算することができないようにしている)。このように、Initiatorエンドポイント104aとReceiverエンドポイント104bはK_BK’を共有する。つまり、Initiatorエンドポイント104aとReceiverエンドポイント104bは、エンドポイントごとに異なる地域に根差した鍵のコピーを受領している各エンドポイントがID_BKを持つ同じfinal Bilocation Key K_BKを所持していることを指す。KNodeのいずれかが計算することはできないため、このfinal Bilocation Key K_BK’は、安全な通信に直接使用することができる。あるいは、以下のように、1つ以上のセッション鍵を導出するために、InitiatorとReceiver間の共有秘密鍵として使用することもできる。これは、第1鍵ノード106aと第2鍵ノード106bが地理的に異なる場所にあるためである。セッション鍵の確立時にBilocation Key ID を共有することで、複数のBilocation Keyを同時に扱うことが可能となる。T
【0247】
鍵確立process300は、
図3dに進み、ここでInitiatorおよびReceiverエンドポイントのFinal鍵は、以下に限定されるものではないが、例えば第1および第2の鍵生成プロセス(es)355および360を介して確立される。第一の鍵生成process355(例えばオプション1)では、鍵情報(例えばK_BK)とnonce情報(例えばN_T、N_IR)を用いてFinal Key が算出される。第2の鍵生成process360(例えばオプション2)では、チャレンジ/レスポンスプロトコルを用いてFinal鍵を算出する。
【0248】
図3dを参照すると、Initiatorエンドポイント104aとReceiverエンドポイント104bが同じBilocation鍵K_BKを持っている場合、Final鍵の生成方法についてあらかじめ合意することもできる。最初の鍵生成process355において、Initiatorエンドポイント104aとReceiverエンドポイント104bは、Final鍵を生成する際に使用するノンス(例えばN_IR、N_T)、鍵情報(例えばK_TLS、TLSセッション鍵)についてあらかじめ合意することができる。
【0249】
鍵確立process300のInitiatorデバイス104aおよびReceiverデバイス104bにおけるFinal鍵を計算するための第1の鍵生成process355(例えばオプション1)の第1の例では、以下のステップを含むことができる:
【0250】
ステップ356aにおいて、Initiatorエンドポイント104aは、Receiverによって生成されたNonceN_TとXORすることによって、Final鍵K_Sを作成する。これについては、Initiatorエンドポイント104aとReceiverエンドポイント104bの両方が知っているが、量子クラウドシステム/インフラ100には知らされていない。Final鍵は、例えば、K_S=K_BKXORN_Tに基づいて、Initiatorエンドポイント104aによって計算される。
【0251】
ステップ356bにおいて、Receiverエンドポイント104bは、最終鍵K_Sを、Receiverエンドポイント104bによって生成されたノンスN_TとXORすることによって生成するが、これはInitiatorエンドポイント104aとReceiverエンドポイント104bの両方にとって既知であるが、量子クラウドシステム/インフラ100にとっては既知ではない。Final鍵は、例えばK_S=K_BKXORN_Tに基づいて、Receiverエンドポイント104bによって計算される。
【0252】
鍵確立process300のInitiatorデバイス104aとReceiverデバイス104bにおけるFinal鍵を計算するための第1の鍵生成process355(例えばオプション1)の第2の例では、以下のステップを含むことができる:
【0253】
ステップ357aにおいて、Initiatorのエンドポイント104aは、Receiverのエンドポイント104bとInitiatorのエンドポイント104aの両方が知っている、Receiverが作成したNonceN_IRとXORすることでFinal鍵K_Sを生成する。Final鍵は、以下に限定するものではないが、例えばK_S=K_BKXORN_IRに基づいてInitiatorエンドポイント104aによって計算される。あるいは、セキュリティを高めるため、あるいはInitiatorエンドポイント104aがReceiverエンドポイント104bからN_Tを受信する場合、K_S=K_BKXORN_IRXORN_Tとする。
【0254】
ステップ357bにおいて、Receiverエンドポイント104bは、Initiatorエンドポイント104aとReceiverエンドポイント104bの両方が知っている、Receiverエンドポイント104bが生成したNonceN_IRとのXORにより、FinalKeyK_Sを作成する。Final鍵は、以下に限定するものではないが、例えばK_S=K_BKXORN_IRに基づいて、Receiverエンドポイント104bによって計算される。あるいは、セキュリティを追加するため、または受信側エンドポイント104bがノンスN_Tを生成した場合、K_S=K_BKXORN_IRXORN_Tとなる。
【0255】
鍵確立process300のInitiatorデバイス104aとReceiverデバイス104bにおけるFinal鍵を計算するための第1の鍵作成process355(例えばオプション1)の第3の例では、以下のステップを含むことができる:
【0256】
ステップ358aにおいて、Initiatorエンドポイント104aは、以下に限定するものではないが、例えばInitiatorエンドポイント104aとReceiverエンドポイント104bの両方が知っているInitiatorとReceiverエンドポイント104b間のTLSセッションのTLSセッション鍵K_TLSのような別の鍵とXORすることで、Final鍵K_Sを生成する。Final鍵は、以下に限定するものではないが、例えばK_S=K_BKXORK_TLSに基づいてInitiatorエンドポイント104aが計算することができる。あるいは、セキュリティを高めるため、あるいはInitiatorエンドポイント104aがReceiverエンドポイント104bからN_Tを受信する場合、K_S=K_BKXORK_TLSXORN_Tとする。
【0257】
ステップ358bにおいて、Receiverエンドポイント104bはまた、例えばInitiatorエンドポイント104aとReceiverエンドポイント104bの両方にとって既知であり、クラウドシステム100またはセキュアネットワーク102(または量子クラウドシステム110/120、量子ネットワーク112/122)にとっては未知である、InitiatorとReceiverエンドポイント104aと104bの間のTLSセッションのTLSセッションキーK_TLSなどの別のキーとXORすることによって、Final鍵K_Sを生成する。
Final鍵K_Sは、以下に限定されないが、例えば、K_S=K_BKXORK_TLSに基づいて、Receiverエンドポイント104bによって計算され得る。あるいは、セキュリティを高めるため、またはReceiverエンドポイント104bがノンスN_Tを生成した場合、K_S=K_BKXORK_TLSXORN_Tによって計算する。
【0258】
その後、Initiatorエンドポイント104aとReceiverエンドポイント104bは、その間にFinal鍵、K_Sを使用することができる。例えば、Initiatorエンドポイント104aとReceiver エンドポイント104bは、限定するものではないが、例えば、Final Key、K_Sを使用して、それらの通信チャネル及び/又はその間に通信されるデータを暗号化するため、及び/又はアプリケーションが要求する他の目的のために、セキュアな通信セッションを開始することができる。従って、InitiatorデバイスとReceiverエンドポイント/デバイス104a-104bは、上述の鍵確立process300を使用して、以下に限定しないが、例えばInitiatorとReceiverエンドポイント/デバイス間のセキュアな通信、QKD鍵がBilocation鍵の計算で使用される場合のその間の量子セキュアな通信などに使用されるFinal鍵K_Sを生成または確立することができこと、InitiatorとReceiverのエンドポイント/デバイス104aと104bの間で、以下に限らず、例えばInitiatorとReceiverのエンドポイント/デバイスを含むパーティーのグループ間でグループ鍵を確立するための他のグループ鍵確立プロトコルに使用するためのさらなる共有鍵を確立すること、InitiatorデバイスとReceiverデバイス間の通信セッションを確保すること、InitiatorとReceiverのエンドポイント/デバイスの間に、長寿命の通信チャネルを確立すること、確立されたFinal鍵は、InitiatorとReceiverのエンドポイント/デバイス104aと104bの間で署名秘密を形成することができるが、この署名秘密は、例えばメッセージ認証コード(MAC)やタグなどを作成するために、これに限定されることなく使用することができること、Initiator と Receiverのエンドポイント/デバイス104aと104bの間で確立されたFinal鍵は、InitiatorとReceiverのエンドポイント/デバイス104aと104bの各々によって、あるいはその間で実行される、他のあらゆるタイプの暗号アプリケーション/操作のために使用されること、これらの変更、組み合わせ、および/またはアプリケーションの要求に応じることができる。これにより、クラウドシステム/インフラ100または量子クラウドシステム/インフラストラクチャ110/120を使用する場合のInitiatorエンドポイント104aとReceiverエンドポイント104b間の鍵確立process/protocol300は終了する。
【0259】
図3dを参照すると、Initiatorエンドポイント104aとReceiverエンドポイント104bが同じBilocation鍵K_BKを持っているため、Final鍵の生成方法について合意することができる。セッション確立プロセス300のInitiatorエンドポイント/デバイス104aとReceiverエンドポイント/デバイス104bにおいて、Final鍵を計算するためのチャレンジ/レスポンスプロトコルを使用する第二の鍵作成プロセス360(例えばオプション2)は、以下のステップを含む:
【0260】
ステップ361aにおいて、Initiatorエンドポイント104aは、ランダムなchallengenonceC_Iを生成する。
【0261】
ステップ361bにおいて、Receiverエンドポイント104bはランダムなchallenge nonce C_Rを生成する。
【0262】
ステップ362において、Initiatorエンドポイント104aは、Receiverエンドポイント104bに対して、ランダムなchallenge nonce C_Iと、先に合意したBilocation鍵のID_BKを送信する。
【0263】
ステップ363で、Receiverエンドポイント104bは、ランダム challenge nonce C_RをInitiatorエンドポイント104aに送信する。
【0264】
ステップ364aにおいて、Initiatorエンドポイント104aは、IDID_BK(KNodesにとって未知)K_BK’を持つFinal Bilocation鍵に設定されるIntermediate鍵値K_Xを最初に計算する(例えばK_X=K_BK’)。あるいはIntermediate鍵値K_XはInitiatorとReceiverのエンドポイント104aと104bの間のTLSセッション鍵K_TLSから導出され、K_Xは、#(K_BK’,K_TLS)、あるいはK_XとK_TLSの他の組み合わせ(例えば、K_X=#(K_BK’,K_TLS)、あるいはK_X=K_TLSXORK_BK’)に設定される。Receiverエンドポイント104bはまた、K_Xを計算するために対応するマッチングオペレーションを実行し、Receiverエンドポイント104bで計算されたK_XがInitiatorエンドポイント104aで計算されたK_Xと同じになるようにする。いずれにせよ、Initiatorエンドポイント104aは、以下の値に基づいて、K_X、C_I、および受信したC_Rを使用して、符号付き応答を計算する:X_I=#(K_X,C_I,0);X_R=#(K_X,C_R,1);R_I=#(X_I,C_R);R_R=#(X_R,C_I)、ここで#はハッシュ関数である。
【0265】
ステップ364bでは、同様に、Receiverエンドポイント104bは、K_BK’に設定されたIntermediate鍵値K_Xを最初に計算する(例えば、K_X=K_BK’)。あるいは、Intermediate鍵値K_Xは、K_Xが#(K_BK’,K_TLS)に設定されたInitiatorとReceiverのエンドポイント104aと104bの間のTLSセッション鍵K_TLSから導出されてもよいし、K_XとK_TLSの他の組み合わせ(例えばK_X=#(K_BK’,K_TLS)またはK_X=K_TLSXORK_BK’)から導出されてもよい。また、Receiverエンドポイント104bで計算されたK_Xが、ステップ364aでInitiatorエンドポイント104aで計算されたK_Xと同じになるように、Receiverエンドポイント104bは、K_Xを計算するために対応するマッチングオペレーションを実行する。いずれにせよ、Receiverエンドポイント104bは、以下の値に基づいて、K_X、C_R、および受信したC_Iを用いて、符号付き応答を計算する:X_I=#(K_X,C_I,0);X_R=#(K_X,C_R,1);R_I=#(X_I,C_R);R_R=#(X_R,C_I)ここで、#は、ステップ364aでInitiatorエンドポイント104a によって使用されたものと同じハッシュ関数である。
【0266】
ステップ365において、Initiatorエンドポイント104aは、Receiverエンドポイント104bにチャレンジレスポンスまたは署名付きレスポンスR_Iを返す(例えばSend_Signed_Response(R_I))。
【0267】
ステップ366において、Receiverエンドポイント104bはInitiatorエンドポイント104bにチャレンジレスポンスまたは署名付きレスポンスR_Rを返す(例えばSend_Signed_Response(R_R))。
【0268】
例えば、受信した署名付き応答が正しいかどうかをチェックするために、チャレンジレスポンスchecking process370がInitiatorエンドポイント104aとReceiverエンドポイント104bによって使用されることがある。チャレンジ応答チェックプロセス370は、以下のステップを含む:
【0269】
ステップ371aにおいて、Initiatorエンドポイント104aは、Receiverエンドポイント104bから受信したR_Rが、ステップ364aにおいてInitiatorエンドポイント104aが計算したR_Rの値と一致するかどうかを確認する。受信したR_RがInitiatorエンドポイント104aが計算したR_Rと一致する場合、Initiatorエンドポイントは、以下に限定するものではないが、例えば、K_S=X_IXORX_RまたはK_S=#(X_I,X_R)に基づいて、FinalK鍵であるK_Sを計算する。
あるいは、オプションとして、N_TがReceiverエンドポイント104bからInitiatorエンドポイント104aに送信された場合、Final鍵K_S=K_BKXORN_IRXORN_TまたはK_S=X_IXORX_RXORN_Tが適用される。そうでない場合、Initiatorエンドポイント104aによって実行される処理370は、ステップ372aに進む。
【0270】
ステップ372aにおいて、Receiverエンドポイント104bから受信したR_Rが、Initiatorエンドポイント104aが計算したR_Rの値と一致しないため、接続は放棄される。
【0271】
ステップ371bにおいて、Receiverエンドポイント104bはInitiatorエンドポイント104bから受信したR_Iが、Receiverエンドポイント104bがステップ364bで計算したR_Iの値と一致するかどうかを確認する。受信したR_Iが、Receiverエンドポイント104bが計算したR_Iと一致する場合、Receiverエンドポイントは、以下に限定するものではないが、例えば、K_S=X_IXORX_RまたはK_S=#(X_I,X_R)に基づいて、Final鍵であるK_Sを計算する。また、オプションとして、NTがReceiverエンドポイント104bからInitiatorエンドポイント104aに送信された場合、Final鍵のK_S=K_BK XOR N_IR XOR N_TまたはK_S=X_I XOR X_R XOR N_Tが適用される。ステップ371bにおいて、Receiverエンドポイント104bは、K_Sを生成/計算する際にInitiatorエンドポイント104aが使用するオペレーションと同じオペレーションに同意するか、実行するように構成される。そうでない場合、Receiverエンドポイント104bが実行する処理370は、ステップ372bに進む。
【0272】
ステップ372bでは、Initiatorエンドポイント104aから受信したR_Iが、Receiverエンドポイント104bが計算したR_Iの値と一致しないため、接続は放棄される。
【0273】
その後、接続が放棄されない場合、Initiatorエンドポイント104aとReceiverエンドポイント104bは、その間Final鍵、K_Sを使用することができる。例えば、Initiatorエンドポイント104aとReceiverエンドポイント104bは、以下に限定するものではないが、例えば、Final鍵、K_Sを使用して、それらの通信チャネルおよび/またはその間に通信されるデータを暗号化するため、および/またはアプリケーションが要求する他の適切な目的のために、セキュアな通信セッションを開始することができる。従って、InitiatorデバイスとReceiverエンドポイント/デバイス104a-104bは、上述の鍵確立process300を使用して、例えばInitiatorとReceiverエンドポイント/デバイス間のセキュアな通信や、鍵のセットがQKD鍵である場合のその間の量子セキュアな通信などに限定されることなく使用可能なFinalKeyK_Sを生成または確立することができる;InitiatorとReceiverのエンドポイント/デバイス104aと104bの間で、例えばInitiatorとReceiverのエンドポイント/デバイスを含むパーティーのグループ間でグループ鍵を確立するための他のグループ鍵確立プロトコルに限定されることなく、使用するためのさらなる共有鍵を確立する。InitiatorとReceiverのエンドポイント/デバイス間の通信セッションをセキュアにし、InitiatorとReceiverのエンドポイント/デバイス間の長寿命の通信チャネルを確立することができる。
確立された Final Key は、InitiatorとReceiverのエンドポイント/デバイス104aと104bの間で署名秘密を形成することができる。InitiatorとReceiverのエンドポイント/デバイス104aと104bの間で確立されたFinal Keyは、InitiatorとReceiverのエンドポイント/デバイス104aと104bの各々によって、またはそれらの間で実行される他の任意のタイプの暗号アプリケーション/操作、それらの修正、それらの組み合わせ、および/またはアプリケーションの要求に応じて使用することができる。これで、クラウドシステム/インフラストラクチャ100(または量子クラウドシステム/インフラストラクチャ110/120)を使用する際のInitiatorエンドポイント104aとReceiverエンドポイント104b間の鍵確立プロセス/プロトコル300は終了となる。
【0274】
図3aから
図3dでは、第1の鍵ノード(KNodeAなど)と第2の鍵ノード(KNodeBなど)が異なる地理的位置(例えば、KNodeAoKNodeBなど)に配置されているものとして説明しているが、これは単純化のためであり、あくまでも例示であり、本発明はこのように限定されるものではなく、本発明による鍵確立システム、装置及びプロセス(es)、並びに/又は
図3aから
図3dを参照して本書で説明されるような、及び/又は本書で説明されるような鍵確立システム、装置及びプロセス(es)は、第1の鍵ノード及び第2の鍵ノードが同じ鍵ノードである場合、又は同じ鍵ノード上の2つの異なる論理的な場所を有する場合、又は同じ論理的な鍵ノードである場合(e.例:KNodeA==KNodeB)、イニシエータエンドポイント/デバイスとレシーバエンドポイント/デバイスの両方が、2つの異なるKNodeの地理的に配置された2つの異なるサーバ/コンピューティングデバイスではなく、KNodeまたは論理KNodeの同じサーバ/コンピューティングデバイスと通信する場合、結果として生じるKNodeは、鍵の集合から鍵を選択するように構成されるかもしれない(例えば、QKD鍵のセットからQKDを選択するなど)。つまり、KNodeは、Initiatorエンドポイント/デバイスとReceiverエンドポイント/デバイスの間で鍵を確立する際に、対応するエンドポイント/デバイスのためのBilocation鍵または Intermediate Bilocation鍵を生成する際に使用するために、「それ自身と共有される鍵(すなわち、それ自身が単独で所有または知っている鍵)」のセットから鍵を選択するように構成されるかもしれない。
【0275】
図4aは、本発明の態様によるセッション確立プロトコル/プロセスの実装および/または実行に使用するための、例示的なコンピューティングシステム400の概略図である。コンピューティングシステム400は、
図1a~
図3dを参照して説明したシステム、装置、QSサーバ、キーノード、エンドポイント、デバイス、方法、鍵確立プロトコル、鍵確立プロセス、第1及び第2のデバイス/エンドポイント、イニシエータエンドポイント/デバイス、レシーバエンドポイント/デバイス、及び/又はユースケースの1つ又は複数の態様、それらの組み合わせ、それらの修正、本書で説明する通り、及び/又はアプリケーションの要求に応じて実装するために使用することができる。コンピューティングシステム400は、コンピューティングデバイスまたは装置402(例えば、QSサーバ、第1または第2のキーノード、第1および/または第2のデバイス(複数可))を含む。コンピューティングデバイスまたは装置402は、1つまたは複数のプロセッサユニット404、メモリユニット406、および1つまたは複数のプロセッサユニット404がメモリユニット406、通信インターフェース408に接続される通信インターフェース408を含む。
通信インターフェース408は、本書に記載される本発明に従って、
図1aから
図3dを参照して説明されるような鍵確立プロトコル/プロセス(es)、それらの組み合わせ、アプリケーションの要求に応じてそれらの修正に基づいて、第1と第2のデバイス(イニシエータとレシーバのエンドポイント)の間で最終鍵を確立するために、コンピューティングデバイスまたは装置402を1つ以上の他のコンピューティングデバイスおよび/または装置(例えば、鍵ノード、イニシエータデバイス/エンドポイント、レシーバデバイス/エンドポイント、第1および/または第2のデバイス(複数可)/エンドポイント(複数可))(図示せず)と接続しても差し支えない。メモリユニット406は、例としてのみ挙げるがこれらに限定されない、コンピューティングデバイス402を動作させるためのオペレーティングシステム406a、およびセッション確立プロトコル/プロセス(es)、1つまたは複数のセッション確立プロセス(es)、1つまたは複数のキーノードの1つまたは複数の部分に関連する機能および/または1つまたは複数の機能(複数可)を実装することに関連するコンピュータプログラム命令、実行可能コード、コード、および/またはコンポーネントを格納するためのデータストア406bなどの1つまたは複数のプログラム命令、コード、またはコンポーネントを格納することができる、1つまたは複数の第1および/または第2のデバイス、1つまたは複数のInitiatorおよび/またはReceiverエンドポイント;本発明によるInitiatorエンドポイント/第1のデバイスとReceiverエンドポイント/第2のデバイスの間でFinal鍵を確立するためのKey Establishment processまたはprotocolを実行する1つまたは複数の方法(複数可)および/またはプロセス(複数可)、システム(複数可)/プラットフォーム、それらの組み合わせ、それらの変更、および/または図(複数可)1aから図(複数可)3dの少なくともいずれか1つを参照して本書に記述されているものを格納する。
【0276】
図4bは、本発明によるInitiatorエンドポイント414とReceiverエンドポイント416によって使用される鍵確立プロトコルおよび/またはプロセス(es)を促進および/または実装するための、別の例示的なクラウドシステム420の概略図である。クラウドシステム420は、Initiatorエンドポイント414、Receiverエンドポイント416、およびInitiatorエンドポイント414がセキュアチャネル(例えば、KNodeI)418を介してアクセスすることができる第1の鍵ノード/セキュアサーバ(KNodeI)418を含む古典的または量子セキュアネットワーク411を含む複数のコンピューティングデバイスまたは装置402を含むことができる。また、受信側エンドポイント416が別のセキュアチャネル(例えば、古典的セキュアネットワーク102が使用されるか、量子セキュアネットワーク112または122が使用されるかに応じて、古典的セキュアチャネルまたは量子セキュアチャネル)を介してアクセスすることができる第2の鍵ノード/セキュアサーバ(KNodeR)420を含む。)も含む。第1の鍵ノード418と第2の鍵ノード420は、地理的に異なる場所に配置されているが、分散された鍵のセットを共有している(例えば、古典的にセキュアなネットワーク102が使用されるか、量子的にセキュアなネットワーク112または122が使用されるかに応じて、古典的に分散された鍵および/または量子的に分散された鍵)。Initiatorエンドポイント414、Receiverエンドポイント416、第一の鍵ノード418、及び第二の鍵ノード420は、通信セッションの鍵を確立するために、本発明による鍵確立プロトコル/プロセスの対応するステップ及び/又は機能を動作及び/又は実装するように構成される。
図1a、
図1b、
図1cの1つ以上のシステム100、110、120、1つ以上の鍵確立プロセス/方法200、210、230、240、240、260を参照して説明したように、Initiatorエンドポイント414とReceiverエンドポイント416の間のセッションを確立するために、本発明による鍵確立プロトコル/プロセスの対応するステップ/機能を動作させ、かつ/または実装するように構成される、
図2aの200,210,230,240,260,270、
図3aから
図3dの1つまたは複数の鍵確立プロセス(複数可)/方法300、310、315、320、330、335、340、350、355、360、370、これらの組み合わせ、これらの修正、および/または、
図1aから
図4aのいずれか1つを参照して本書で説明するとおりである。
【0277】
以下の説明では、第一の鍵ノード(KNodeAなど)と第二の鍵ノード(KNodeBなど)が異なる地理的位置(例えば、KNodeAoKNodeBなど)に配置されていると記載することがあるが、これは簡略化のための、例示であって、本発明はそのように限定されるものではなく、本発明による鍵確立システム、装置及びプロセス(es)、並びに/又は
図1aから
図4bを参照して本書で説明されるような、及び/又は本書で説明されるような鍵確立システム、装置及びプロセス(es)は、第1の鍵ノード及び第2の鍵ノードが同じ鍵ノードである場合、又は同じ鍵ノード上の2つの異なる論理的な場所を有する場合、又は同じ論理的な鍵ノードである場合(e.例:KNodeA==KNodeB)、イニシエータエンドポイント/デバイスとレシーバエンドポイント/デバイスの両方が、2つの異なるKNodeの地理的に配置された2つの異なるサーバ/コンピューティングデバイスではなく、KNodeまたは論理KNodeの同じサーバ/コンピューティングデバイスと通信する場合、結果として生じるKNodeは、鍵の集合から鍵を選択するように構成されるかもしれない(例:KNodeA==KNodeB)。その結果、KNodeは、Initiatorエンドポイント/デバイスとReceiverエンドポイント/デバイスの間で鍵を確立する際に、対応するエンドポイント/デバイスのためのBilocation鍵またはIntermediate Bilocation鍵を生成する際に使用するために、「それ自身と共有される鍵(すなわち、それ自身が単独で所有または知っている鍵)」のセットから鍵を選択するように構成されるかもしれない。
【0278】
上述の実施形態では、InitiatorとReceiverによって処理される署名された秘密および/または応答のそれぞれは、クラウドサーバ(複数可)/サービス(複数可)によって対称的に署名されてもよい。
【0279】
上述の実施形態では、Intermediate Bilocation鍵はInitiatorで決定されるが、いくつかの実施形態では、Intermediate Bilocation鍵は、上述の実施形態の他の側面を変更することなく、Receiverで決定されてもよい。同様に、Bilocation鍵は、いくつかの実施形態では、上述した実施形態の他の態様を変更することなく、Initiatorで決定されてもよい。
【0280】
上述の実施形態において、サーバまたはコンピューティングデバイスは、単一のサーバ/コンピューティングデバイス、またはサーバ/コンピューティングデバイスのネットワークから構成されてもよい。いくつかの例では、サーバの機能は、サーバの世界的な分散ネットワークのような、地理的領域にわたって分散されたサーバのネットワークによって提供されてもよく、ユーザは、ユーザの位置に基づいて、サーバのネットワークの適切な1つに接続されてもよい。
【0281】
上記の説明では、分かりやすくするために、単一のユーザを参照して本発明の実施形態について説明した。実際には、システムは複数のユーザによって、場合によっては非常に多数のユーザによって同時に共有され得ることが理解されよう。
【0282】
上述の実施形態は、完全に自動化されている。幾つかの例では、システムのユーザ又はオペレータは、実施される方法の幾つかのステップを手動で指示することができる。
【0283】
本発明の説明した実施形態では、システムは、任意の形式のコンピューティング及び/又は電子デバイスとして実施することができる。このようなデバイスは、経路情報を収集し記録するためにデバイスの動作を制御するコンピュータ実行可能命令を処理するための、マイクロプロセッサ、コントローラ、または任意の他の適切なタイプのプロセッサであることができる1つまたは複数のプロセッサを含むことができる。いくつかの例では、例えば、システムオンチップアーキテクチャが使用される場合、プロセッサは、(ソフトウェアやファームウェアではなく)ハードウェアで方法の一部を実装する1つ以上の固定機能ブロック(アクセラレータとも呼ばれる)を含むことができる。オペレーティングシステムまたは他の任意の適切なプラットフォームソフトウェアを含むプラットフォームソフトウェアは、デバイス上でアプリケーションソフトウェアを実行できるように、コンピューティングベースのデバイスに提供される場合がある。
【0284】
本書で説明する様々な機能は、ハードウェア、ソフトウェア、またはそれらの任意の組み合わせで実装することができる。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして記憶されるか、またはそれを介して伝送され得る。コンピュータ可読媒体には、例えば、コンピュータ可読記憶媒体が含まれる。コンピュータ可読記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された、揮発性または不揮発性、取外し可能または取外し不可能な媒体を含めることができる。コンピュータ可読記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な記憶媒体であり得る。限定ではなく例として、このようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ装置、CD-ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶装置、または命令またはデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用することができ、コンピュータによってアクセスすることができる他の任意の媒体から構成することができる。本書で使用するディスクおよびディスクには、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、およびブルーレイディスク(BD)が含まれる。さらに、伝播された信号は、コンピュータ可読記憶媒体の範囲には含まれない。コンピュータ可読媒体には、ある場所から別の場所へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む通信媒体も含まれる。例えば、接続は通信媒体となり得る。
たとえば、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などの無線技術を使用して、ウェブサイト、サーバー、または他のリモートソースからソフトウェアを転送する場合は、通信媒体の定義に含まれます。上記の組み合わせも、コンピュータ読み取り可能な媒体の範囲に含まれるはずである。
【0285】
代替的に、または追加的に、本書で説明される機能は、少なくとも部分的に、1つまたは複数のハードウェア論理コンポーネントによって実行され得る。例えば、以下に限定するものではないが、使用可能なハードウェア論理コンポーネントには、FPGA(Field-programmable Gate Arrays)、ASIC(Application-Program-specific Integrated Circuit)、ASSP(Application-Program-specific Standard Products)、SOC(System-on-a-chip Systems)、CPLD(Complex Programmable Logic Devices)などが含まれる。
【0286】
単一のシステムとして図示されているが、コンピューティングデバイスは分散システムであってもよいことを理解されたい。したがって、例えば、複数のデバイスがネットワーク接続によって通信し、コンピューティングデバイスによって実行されると説明されたタスクを集合的に実行することができる。ローカルデバイスとして図示されているが、コンピューティングデバイスは、遠隔に配置され、ネットワークまたは他の通信リンクを介して(例えば、通信インターフェースを使用して)アクセスされてもよいことが理解されよう。コンピュータ」という用語は、本明細書では、命令を実行することができるような処理能力を有する任意のデバイスを指すために使用される。当業者であれば、このような処理能力は多くの異なるデバイスに組み込まれており、したがって、「コンピュータ」という用語には、PC、サーバ、携帯電話、パーソナルデジタルアシスタント、および他の多くのデバイスが含まれることを理解するであろう。
【0287】
熟練者であれば、プログラム命令を記憶するために利用される記憶装置は、ネットワークを介して分散され得ることを理解するであろう。例えば、リモートコンピュータは、説明したプロセスの一例をソフトウェアとして格納することができる。ローカルコンピュータまたは端末コンピュータは、リモートコンピュータにアクセスし、プログラムを実行するためのソフトウェアの一部または全部をダウンロードすることができる。あるいは、ローカルコンピュータが必要に応じてソフトウェアの一部をダウンロードしたり、一部のソフトウェア命令をローカル端末で実行し、一部をリモートコンピュータ(またはコンピュータネットワーク)で実行することもできる。また、当熟練業者は、当業者が公知の従来技術を利用することにより、ソフトウェア命令の全部または一部を、DSP、プログラマブルロジックアレイなどの専用回路によって実行することができることを理解するであろう。
【0288】
上述した利点および利点は、1つの実施形態に関するものであってもよいし、複数の実施形態に関するものであってもよいことが理解されよう。実施形態は、記載された問題のいずれかまたはすべてを解決するもの、または記載された利点および利点のいずれかまたはすべてを有するものに限定されない。変形例も本発明の範囲に含まれると考えるべきである。
【0289】
「ある」項目への言及は、それらの項目の1つ以上を指す。本書において、「comprising」という用語は、特定された方法ステップまたは要素を含むことを意味するために使用されるが、そのようなステップまたは要素は排他的なリストを構成するものではなく、方法または装置は追加のステップまたは要素を含むことができる。
【0290】
本書で使用される場合、「コンポーネント」および「システム」という用語は、プロセッサによって実行されたときに特定の機能を実行させるコンピュータ実行可能命令で構成されるコンピュータ可読データ記憶装置を包含することを意図している。コンピュータ実行可能命令は、ルーチン、関数などを含むことができる。また、コンポーネントまたはシステムは、単一のデバイスにローカライズされる場合もあれば、複数のデバイスに分散される場合もあることを理解されたい。
【0291】
さらに、本書で使用される場合、「例示的」という用語は、「何かの説明または例として役立つ」ことを意味することが意図される。さらに、「含む」という用語が詳細な説明または特許請求の範囲のいずれかに使用される範囲において、このような用語は、特許請求の範囲において経過的な単語として採用される場合に解釈される「comprising」という用語と同様の方法で包括的であることが意図される。
【0292】
図は、例示的な方法を示している。方法は、特定の順序で実行される一連の行為であるとして示され、説明されているが、方法は、順序によって限定されないことが理解され、理解される。例えば、いくつかの行為は、本書に記載されているものとは異なる順序で起こり得る。加えて、ある行為は別の行為と同時に起こりうる。さらに、場合によっては、本書で説明する方法を実施するために、すべての行為が必要であるとは限らない。
【0293】
さらに、本書に記載される行為は、1つまたは複数のプロセッサによって実施され得、かつ/またはコンピュータ読み取り可能な媒体または媒体に記憶され得るコンピュータ実行可能命令を含み得る。コンピュータ実行可能命令は、ルーチン、サブルーチン、プログラム、実行スレッド、および/またはそのようなものを含み得る。さらに、方法の行為の結果は、コンピュータ読み取り可能な媒体に記憶され、表示装置上に表示され、および/またはそのようなものとすることができる。
【0294】
本書に記載する方法のステップの順序は例示的なものであるが、ステップは任意の適切な順序で、または適切な場合には同時に実施することができる。さらに、本書に記載される主題の範囲から逸脱することなく、ステップを追加または置換することができ、または個々のステップをいずれかの方法から削除することができる。上述した実施例のいずれかの態様は、求める効果を失うことなく、記載した他の実施例のいずれかの態様と組み合わせて、さらなる実施例を形成することができる。
【0295】
上記の好ましい実施形態の説明は、例示の方法によってのみ与えられ、当業者によって様々な変更がなされ得ることが理解されるであろう。
上述してきたことは、1つまたは複数の実施形態の例を含む。もちろん、前述の態様を説明する目的で、上記の装置または方法の考え得るすべての変更および改変を説明することは不可能であるが、熟練業者であれば、様々な態様の多くのさらなる変更および順列が可能であることを認識することができる。従って、記載された態様は、添付の特許請求の範囲の範囲内に入る全てのそのような変更、修正、および変形を包含することが意図される。
【国際調査報告】