(57)【要約】      （修正有）【課題】対称暗号化に用いられるワンタイム暗号化／復号化キーを生成する方法を提供する。【解決手段】キー生成を開始するために、ノードＡは、中央サーバ２に対してノードＢとの通信を設定するための要求を送信する。中央サーバ２は双方のノードにキー生成ファイルを送信する。各ノードは異なる中間データセット、すなわち第１および第２データセットを生成する。ノードＡによって生成された第１データセットはノードＢに送信され、ノードＢはこのデータセットに基づいて第３データセットを生成し、第３データセットはノードＡに送信される。ノードＡにおける第１暗号化キーの生成は、第３中間データセットと第１中間データセットとの間におけるビット単位の比較に基づき、ノードＢにおける第２暗号化キーの生成は第１中間データセットと第２中間データセットとの間におけるビット単位の比較に基づく。前記第１暗号化キーおよび第２暗号化キーは同一である。【選択図】図１
2015092745.tif 000002
【特許請求の範囲】
【請求項１】
暗号化／復号化キーを生成する方法であって、該方法は第１ノード（Ａ）と第２ノード（Ｂ）との間における安全な通信のために使用可能であり、該方法は、
第１ノード（Ａ）から中央サーバ（２）に対して第２ノード（Ｂ）との通信を設定するための要求を送信する工程と、
第１ノード（Ａ）からの要求に応答して、中央サーバ（２）から、第１ノード（Ａ）に第１キー生成ファイルを送信し、第２ノード（Ｂ）に第２キー生成ファイルを送信する工程と、
第１ノード（Ａ）において第１キー生成ファイルの処理を開始し、第２ノード（Ｂ）において第２キー生成ファイルの処理を開始する工程と、
第１ノード（Ａ）において第１中間データセットを生成し、第２ノード（Ｂ）において第２中間データセットを生成する工程と、
第１ノード（Ａ）から第２ノード（Ｂ）に第１中間データセットを送信する工程と、
第１中間データセットのビットを第２中間データセットの対応するビットと比較する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、比較したビットが等しい場合には第１値を設定し、比較したビットが等しくない場合には第２値を設定することによって、新たな第３中間データセットを形成する工程と、
第３中間データセットを第２ノード（Ｂ）から第１ノード（Ａ）へ送信する工程と、
第３中間データセットのビットを第１中間データセットの対応するビットと比較する工程と、
第３中間データセットと第１中間データセットとの間のビット単位の比較に基づいて、第３中間データセットの対応するビットが第１値に設定されている場合には第１データセットのビットの値を維持し、第３中間データセットの対応するビットが第２値に設定されている場合には第１中間データセットのビットを無視することによって、第１暗号キーを生成する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、第１中間データセットの対応するビットが等しい場合には第２データセットのビットの値を維持し、比較したビットが等しくない場合には、第２中間データセットのビットを無視することによって、第２暗号キーを生成する工程とを有し、前記第１暗号キーおよび第２暗号キーは同一である、方法。
【請求項２】
第１ノード（Ａ）に第１キー生成ファイルを送信し、第２ノード（Ｂ）に第２キー生成ファイルを送信する工程は、各キー生成ファイルに添付されたメタデータをそれぞれ送信することも含む、請求項１に記載の方法。
【請求項３】
前記メタデータは第１暗号キーおよび第２暗号キーの双方の生成に用いられる定数を含む、請求項２に記載の方法。
【請求項４】
前記メタデータは暗号キーの長さについての情報を含む、請求項２または３に記載の方法。
【請求項５】
前記暗号キーの長さを所定間隔内においてランダムに生成する工程をさらに含む、請求項４に記載の方法。
【請求項６】
第１ノード（Ａ）において暗号化／復号化キーを生成する方法であって、該方法は第１ノード（Ａ）と第２ノード（Ｂ）との間における安全な通信に使用可能であり、該方法は、
中央サーバ（２）に対して第２ノード（Ｂ）との安全な通信を設定するための要求を送信する工程と、
前記要求に応答して、中央サーバ（２）から第１キー生成ファイルを受信する工程と、
第１キー生成ファイルを処理する工程と、
第１中間データセットを生成する工程と、
第１中間データセットを第２ノード（Ｂ）に送信する工程と、
第２ノード（Ｂ）から第３中間データセットを受信する工程と、
第３中間データセットのビットを第１中間データセットの対応するビットと比較する工程と、
第３中間データセットと第１中間データセットとの間のビット単位の比較に基づいて、第３中間データセットの対応するビットが第１値に設定されている場合には第１データセットのビットの値を維持し、第３中間データセットの対応するビットが第２値に設定されている場合には第１中間データセットのビットを無視することによって、第１暗号キーを生成する工程とを有する、方法。
【請求項７】
前記第１キー生成ファイルを受信する工程は、前記ファイルに添付されたメタデータを受信することも含む、請求項６に記載の方法。
【請求項８】
前記メタデータは第１暗号キーの生成に用いられる定数を含む、請求項７に記載の方法。
【請求項９】
前記メタデータは暗号キーの長さについての情報を含む、請求項７または８に記載の方法。
【請求項１０】
第２ノード（Ｂ）において暗号化／復号化キーを生成する方法であって、該方法は第１ノード（Ａ）と第２ノード（Ｂ）との間における安全な通信に使用可能であり、該方法は、
第１ノード（Ａ）からの第１ノード（Ａ）と第２ノード（Ｂ）との間の安全な通信を開始するための要求に応答して、中央サーバ（２）から第２キー生成ファイルを受信する工程と、
第２キー生成ファイルを処理する工程と、
第２中間データセットを生成する工程と、
第１ノード（Ａ）から第１中間データセットを受信する工程と、
第１中間データセットのビットを第２中間データセットの対応するビットと比較する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、比較したビットが等しい場合には第１値を設定し、比較したビットが等しくない場合には第２値を設定することによって、新たな第３中間データセットを形成する工程と、
第３中間データセットを第１ノード（Ａ）に送信する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、第１中間データセットの対応するビットが等しい場合には第２データセットのビットの値を維持し、比較したビットが等しくない場合には、第２中間データセットのビットを無視することによって、第２暗号キーを生成する工程とを有する、方法。
【請求項１１】
前記第２キー生成ファイルを受信する工程は、前記ファイルに添付されたメタデータを受信することも含む、請求項１０に記載の方法。
【請求項１２】
前記メタデータは第２暗号キーの生成に用いられる定数を含む、請求項１１に記載の方法。
【請求項１３】
前記メタデータは暗号キーの長さについての情報を含む、請求項１１または１２に記載
の方法。
【請求項１４】
該プログラムがコンピュータ上で実行されるときに請求項１乃至１３のいずれか１項に記載の工程を実施するためのコード手段を含むコンピュータプログラム。
【請求項１５】
該製品がコンピュータ上で実行されるときに請求項１乃至１３のいずれか１高に記載の方法を実施するための、コンピュータ可読媒体上に格納されたプログラムコード手段を含むコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化／復号化キーを生成する方法に関し、とりわけ対称暗号化、すなわち、暗号化および復号化の双方に同一のキーが使用される場合に用いられるワンタイム暗号化／復号化キーを生成する方法に関する。本発明はさらに、コンピュータ上で実行されると前記方法を実施するコード手段を含むコンピュータプログラム、および該製品がコンピュータ上で実行されると前記方法を実施する、コンピュータ可読媒体上に格納されたプログラムコード手段を含むコンピュータプログラム製品に関する。
【背景技術】
【０００２】
暗号法において、キーは、暗号アルゴリズムの関数の出力を決定する情報である。キーなしでは、アルゴリズムは結果を生じないであろう。暗号化において、キーは、平文の暗号文への特定の変換を規定し、あるいは復号の間にその逆を規定する。キーはまた、デジタル署名スキームおよびメッセージ確認コードのような他の暗号アルゴリズムにも用いられる。
【０００３】
セキュリティーシステムを設計する際には、暗号アルゴリズムの詳細が攻撃者に既に利用可能であると仮定することが賢明であるとしばしば言われている。この原理はケルクホフスの原理として知られており、したがって、キーの機密性のみがセキュリティを提供する。この原理は、広く使用されているアルゴリズムの詳細を秘密にすることは困難であるという実際に基づいている。キーは暗号化アルゴリズムと比べて小さな情報であることが多いので、多くの場合、キーは保護することがより容易である。しかしながら、キーを秘密にすることが困難であることもあり、攻撃者が何らかの方法でキーを得た場合には、彼または彼女は暗号化されたデータから元のメッセージを回復させ得る。
【０００４】
暗号化および復号の双方に同一のキーを用いる暗号化アルゴリズムは、上述したように、対称キーアルゴリズムとして知られている。また、１つは暗号化するため、１つは復号するためである一対のキーを用いる非対称キーアルゴリズムも存在する。これらの非対称キーアルゴリズムは、秘密キーを１箇所のみにおいて保持した状態で、１つのキーが公開されることを可能にする。それらの非対称キーアルゴリズムは、たとえ対応する公開キーが知られても、秘密キーを見つけ出すことは非常に困難となるように設計されている。公開キー技術の使用者は、それらの秘密キーを秘密にした状態で、彼らの公開キーを公開することができ、誰でも彼らに暗号化されたメッセージを送信できるようにする。
【０００５】
キーが対称暗号化アルゴリズムと協働して「安全」であるためには、通常は８０ビットが最小であると見なされており、一般に１２８ビットのキーが用いられ、非常に強力であるとみなされている。公開キー暗号法に用いられるキーはいくつかの数学的構造を有する。例えば、ＲＳＡシステムに用いられる公開キーは２つの素数の積である。したがって、公開キー方式は同等なセキュリティのレベルの対称方式よりも長いキーの長さを必要とする。３０７２ビットは、１２８ビットの対称暗号と同等なセキュリティを有することを目標とする、ファクタリングおよび整数離散対数に基づいたシステムに対する提案されているキーの長さである。
【０００６】
上述したように、それらが対称アルゴリズムに基づいたキーおよび非対称アルゴリズムに基づいたキーの双方に対して十分に長い場合には、高度の安全性を有したキーを生成することが可能である。しかしながら、キー配布に問題がある。例えば、２人の当事者が対称暗号法を用いて互いと通信したいと望む場合、それらの当事者は、最初にどのキーを用いるかを決定し、その後、そのキーを一方の当事者から他方の当事者に安全に配布しなけ
ればならない。更に、そのキーは双方の当事者によって秘密にされたままでなければならない。侵入者がキーを見つけ出し得る危険性はキーが使用されている時間につれて増大する。従って、キーは、通常は限られた時間、例えば６か月または１２か月、の間にのみ有効である。その時間の後には、新たなキーを配布しなければならない。
【０００７】
また、非対称暗号法の暗号化のためのキーの配布も、２人の当事者が互いと通信したいと望む場合に、キー配布に関する問題に遭遇する。情報を両方向に送信するために、それらの当事者は公開キーを互いと交換する必要がある。またこの場合、前記キーは、通常、それらのキーが有効である限られた時間を有する。様々な当事者と通信する当事者にとって、有効な公開キーの配布の管理は厄介であり得る。典型的な例は、あなたが別の当事者にある秘密情報を至急送信する必要があるときにキーの有効性が終了していたり、公開キーをまだ交換していなかったりすることである。
【０００８】
別の種類の暗号法は、量子力学を用いて安全な通信を保証する量子暗号法である。前記暗号法は、２人の当事者が当事者によってのみ知られる共用ランダムビット列を生成することを可能する。前記共用ランダムビット列はメッセージを暗号化および復号するキーとして用いられ得る。量子暗号法の重要かつ特有な特性は、２人の通信中の使用者がキーの知識を得ようとする任意の第三者の存在を検知することができることである。これは量子力学の基本的な側面の結果である、すなわち、量子系を測定するプロセスはその系に影響を与える。キーをなんとかして盗聴しようとする第三者は量子系を測定しなければならないので、検知可能な異常が存在するであろう。したがって、特定の数学関数の計算上の難しさに依存し、盗聴の指摘またはキーのセキュリティの保証を提供することができない従来の公開キー暗号法とは対照的に、量子暗号法のセキュリティは量子力学の基礎に依存している。
【０００９】
量子暗号法は、任意のメッセージデータを送信するためではなく、キーを生成し配布するためにのみ用いられる。その後、このキーは任意の選択された暗号化アルゴリズムと共に用いられて、メッセージを暗号化および復号することができ、次いで、そのメッセージは標準的な通信チャネルを介して送信され得る。
【００１０】
量子暗号法によるキー生成は、キーを生成し配布するために非常に安全な方法を提供するとしても、それには大きな難点もある。量子キーが配布され得る距離は、量子力学の特性により、約１００キロメーターに限られている。
【００１１】
上述の問題を考慮すると、暗号キーを生成し配布する簡単な方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明によって解決される課題は、互いと通信したいと望むノードに配布される必要がない、つまりキーがノード自身によって生成される、暗号キーを生成することである。
【課題を解決するための手段】
【００１３】
この課題は、第１態様によれば、第１ノードと第２ノードとの間の安全な通信に使用可能である暗号化／復号化キーを生成する方法によって解決される。前記方法は、
第１ノードＡから中央サーバに対して第２ノードとの通信を設定するための要求を送信する工程と、
第１ノードからの要求に応答して、中央サーバから、第１ノードに第１キー生成ファイルを送信し、第２ノードに第２キー生成ファイルを送信する工程と、
第１ノードにおいて第１キー生成ファイルを処理し、第２ノードにおいて第２キー生成ファイルを処理する工程と、
第１ノードにおいて第１中間データセットを生成し、第２ノードにおいて第２中間データセットを生成する工程と、
第１中間データセットを第１ノードから第２ノードに送信する工程と、
第１中間データセットのビットを第２中間データセットの対応するビットと比較する工程と、
比較したビットが等しい場合には第１値を設定し、比較したビットが等しくない場合には第２値を設定することによって、第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいた新たな第３中間データセットを形成する工程と、
第３中間データセットを第２ノードから第１ノードへ送信する工程と、
第３中間データセットのビットを第１中間データセットの対応するビットと比較する工程と、
第３中間データセットと第１中間データセットとの間のビット単位の比較に基づいて、第３中間データセットの対応するビットが第１値に設定されている場合には第１データセットのビットの値を維持し、第３中間データセットの対応するビットが第２値に設定されている場合には第１中間データセットのビットを無視することによって、第１暗号化キーを生成する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、第１中間データセットの対応するビットが等しい場合には第２データセットのビットの値を維持し、比較したビットが等しくない場合には、第２中間データセットのビットを無視することによって、第２暗号化キーを生成する工程とを有し、前記第１暗号化キーおよび第２暗号化キーは同一である。
【００１４】
本発明の第２態様によれば、前記課題は、第１ノードと第２ノードとの間の安全な通信に使用可能である、第１ノードにおいて暗号化／復号化キーを生成する方法によって解決される。第２態様による方法は、
中央サーバに対して第２ノードとの安全な通信を設定するための要求を送信する工程と、
前記要求に応答して、中央サーバから第１キー生成ファイルを受信する工程と、
第１キー生成ファイルを処理する工程と、
第１中間データセットを生成する工程と、
第１中間データセットを第２ノードに送信する工程と、
第２ノードから第３中間データセットを受信する工程と、
第３中間データセットのビットを第１中間データセットの対応するビットと比較する工程と、
第３中間データセットと第１中間データセットとの間のビット単位の比較に基づいて、第３中間データセットの対応するビットが第１値に設定されている場合には第１データセットのビットの値を維持し、第３中間データセットの対応するビットが第２値に設定されている場合には第１中間データセットのビットを無視することによって、第１暗号化キーを生成する工程とを有する。
【００１５】
本発明の第３態様によれば、前記課題は、第１ノードと第２ノードとの間の安全な通信に使用可能である、第２ノードにおいて暗号化／復号化キーを生成する方法によって解決される。第３態様によれば、前記方法は、
第１ノードと第２ノードとの間の安全な通信を開始するための第１ノードからの要求に応答して、中央サーバから第２キー生成ファイルを受信する工程と、
第２キー生成ファイルを処理する工程と、
第２中間データセットを生成する工程と、
第１ノードから第１中間データセットを受信する工程と、
第１中間データセットのビットを第２中間データセットの対応するビットと比較する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、比較したビットが等しい場合には第１値を設定し、比較したビットが等しくない場合には第２値を設定することによって、新たな第３中間データセットを形成する工程と、
第３中間データセットを第１ノードに送信する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、第１中間データセットの対応するビットが等しい場合には第２データセットのビットの値を維持し、比較したビットが等しくない場合には、第２中間データセットのビットを無視することによって、第２暗号化キーを生成する工程とを有する。
【００１６】
本発明の好ましい実施形態によれば、第１キー生成ファイルおよび第２キー生成ファイルを送信する工程はまた、各キー生成ファイルに添付されたメタデータをそれぞれ送信することを含む。
【００１７】
さらに本発明の別の好ましい実施形態において、前記メタデータは、第１暗号化キーおよび第２暗号化キーの双方の生成に用いられる定数を含む。前記メタデータはまた、暗号化キーの長さについての情報も含み得る。
【００１８】
別の実施形態において、前記キーの長さは、所定間隔内においてランダムに生成され得る。
本発明の第４態様によれば、該プログラムがコンピュータ上で実行されるときに前記方法の工程を実施するためのコード手段を含むコンピュータプログラムが提供される。
【００１９】
本発明の第５態様によれば、該製品がコンピュータ上で実行されるときに前記方法の工程を実施するための、コンピュータ可読媒体上に格納されたプログラムコード手段を含むコンピュータプログラム製品が提供される。
【００２０】
本発明の大きな利点は、互いと通信したいと望むノードにおいてキーが生成され、したがって、キー配布の必要がないことである。
本発明は添付の図面に関して下記に記載される。
【図面の簡単な説明】
【００２１】
【図１】本発明による暗号キーを生成する方法を示すフローチャート。
【図２】中央サーバから通信したいノードへ送信されるキー生成ファイルの例を示す図。
【図３】第１および第２中間データセットの生成のために用いられる定数の例を示す図。
【図４】第１ノードＡにおける第１中間データセットおよび第２ノードＢにおける第２中間データセットの例を示す図。
【図５】第１中間データセットと第２中間データセットとの間のマッチング工程および第２ノードＢのための暗号キーの生成の例を示す図。
【図６】第１ノードＡのための暗号キーの生成の例を示す図。
【発明を実施するための形態】
【００２２】
今度は本発明の様々な実施形態の助けにより本発明について詳細に説明する。前記実施形態は、本発明を理解するための例および説明のためのものであり、限定するものではないと見なされるべきである。
【００２３】
図１は、本発明に従って暗号キーを生成する方法を示す。方法全体は、安全な暗号化／復号化キーを用いることにより、互いとの安全な通信を設定したいと望む２つのノードＡおよびノードＢによって行われる。更に、前記方法は中央サーバ２の支援によって実行される。図１において、第１ノードＡは左手側に示され、第２ノードＢは右手側に示されている。すなわち、第１ノードＡによって実施される工程は、破線の左手側に示されており、第２ノードＢによって実施される工程は、破線の右手側に示されている。実際には、第１ノードＡはコンピュータであり得、その使用者は該使用者の銀行にあるコンピュータ、すなわち第２ノードＢ、との安全な通信を開始することを望み得る。当業者にとって明らかなように、第１ノードＡおよび第２ノードＢの双方は互いと通信することを望むいかなる通信装置であってもよい。
【００２４】
中央サーバ２は、ある種のセキュリティ証明書の助けにより、安全な方法でデータを送受信することができる任意の通信装置であり得る。ノードが本発明によるキー生成方法を用いることができるためには、ノードは中央サーバ２と通信することを許可される必要がある。したがって、中央サーバ２は、キーの生成方法を用いることを許可されたすべての使用者を記録する（ｋｅｅｐｓ  ｔｒａｃｋ）。上述したように、中央サーバ２とノードとの間またはその逆の通信は、ある種のセキュリティ証明書を用いることにより安全である。好ましくは、Ｘ５０９証明書またはその他同種のものが安全な通信に用いられる。
【００２５】
ここで本発明による暗号化／復号化キーを生成する方法を例として説明する。該方法は、あるノード、この例では第１ノードＡが、中央サーバ２に対して第２ノードＢとの通信を設定するための要求を送信することから開始する。中央サーバ２は、第１ノードＡが第２ノードＢとの通信を設定することを許可されているか、並びに第２ノードＢが中央サーバ２および第１ノードＡと通信することを許可されているかを第１に確認する。双方のノードが互いとの通信を開始することを許可されている場合には、中央サーバ２は、第１ノードＡからの要求に応答して、第１ノードＡに第１キー生成ファイルを送信し、第２ノードＢに第２キー生成ファイルを送信する。
【００２６】
図２は、中央サーバから第１ノードＡおよび第２ノードＢに送信されるキー生成ファイルの例を示している。前記ファイルは、第１ノードＡおよび第２ノードＢによって実行されると、暗号化／復号化キーを生成するプロセスファイルを含む。下記で説明するが、第１ノードＡにおけるプロセスと第２ノードＢにおけるプロセスとは異なるので、第１ノードＡに送信されるプロセスファイルは、第２ノードＢに送信されるプロセスファイルとは異なる。図２から明らかなように、キー生成ファイルはまたメタデータＭ１、Ｍ２・・・Ｍｎも含んでいる。該メタデータは、暗号化／復号化キーの生成のために用いられる情報を含んでもよく、同一のメタデータが第１ノードＡおよび第２ノードＢの双方に送信される。前記メタデータの例は、キーを生成するために用いられる定数である。図３は、キー生成の間に用いられる第１中間データセットおよび第２中間データセットの生成のために使用されるそのような定数の例を示す。前記メタデータはまた、双方のキー生成ファイルが同一の起源を有するかを比較するために用いられる時間タグを含んでもよい。
【００２７】
更に、前記メタデータはまた、用いられるキーの長さ、またはキーを生成するために用いられるべきキーのビットについての情報を含んでいてもよい。当業者にとって明らかなように、さらにキー生成プロセスのセキュリティを増大するために用いられ得る多くの他のメタデータが存在し得る。
【００２８】
前記キー生成ファイルが第１ノードＡおよび第２ノードＢによって受信されると、各ノードは前記ファイルの処理を開始する。最初に、図３に示すような定数の値を用いることにより、第１ノードＡは第１中間データセットを生成し、第２ノードＢは第２中間データセットを生成する。この場合、前記定数は、それぞれ文字に関連付けられた４バイナリビットを含んでいる。定数の長さは任意で変化してもよく、前記ビットは文字、図、ギリシャ文字（ｇｒｅｅｋ  ｓｙｍｂｏｌｓ）などに関連付けられていてもよい。
【００２９】
第１ノードＡの第１中間データセットおよび第２ノードＢの第２中間データセットの例を図４に示す。中間データセットは、この場合には文字Ａ〜Ｄの乱数列（ｒａｎｄｏｍ  ｓｅｑｕｅｎｃｅ）を生成するために、ブルム・ブルム・シューブ（Ｂｌｕｍ  Ｂｌｕｍ  Ｓｈｕｂ）、フォーチュナ（Ｆｏｒｔｕｎａ）、またはメルセンヌ  ツイスター（Ｍｅｒｓｅｎｎｅ  ｔｗｉｓｔｅｒ）のような擬似乱数アルゴリズムを用いたある種の既知の擬似乱数生成器を用いることにより生成される。文字の乱数列は、図４の第１中間データセットおよび第２中間データセットのヘッダー内に示されている。したがって、中間データセットを生成するために、文字の列は、最初は疑似ランダムに決定され、その後、図３の定数に従って文字に関連付けられた正しい値が割り当てられる。この割り当てが中間データセットに対して例えばゼロのみまたは１のみを生成するといった結果になった場合には、この結果は除去され得、新たな乱数列が生成される。
【００３０】
第１中間データセットおよび第２中間データセットの双方が疑似ランダムに生成されるので、それらの中間データセットは同一にはならない。この例における中間データセットの長さは、例において本発明を容易に示すためにわずか８ビットである。しかしながら、実際には、中間データセットの長さは、典型的には６４〜２０４８ビットである。ビット長は上述したようなメタデータの一部であってもよいし、ノードから新たな要求がなされる毎に中央サーバ２によってランダムに設定されてもよい。
【００３１】
第１中間データセットおよび第２中間データセットの生成の後、第１ノードは、第１中間データセットを第２ノードＢに、保護なしで、すなわち公に、送信する。
第２ノードＢは第１中間データセットおよび第２中間データセットを互いと比較する。比較の結果は図５に示した表中においてマッチ１と呼ばれる。値Ａおよび値Ｂは、第１中間データセットおよび第２中間データセットにそれぞれ対応する。前記比較はビット単位の比較であり、第１データセットビットおよび第２データセットビットに対する値がそれぞれ等しい場合には結果は真（Ｔ）であり、それらが等しくない場合には偽（Ｆ）である。比較の結果マッチ１は、比較したビットが等しい場合には第１値を設定し、比較したビットが等しくない場合には第２値を設定することにより、新たな第３中間データセット値１を生成する。この場合、比較したビットが等しい場合には１が用いられ、前記ビットが等しくない場合には０が用いられる。しかしながら、それは本発明から逸脱することなく反対にすることもできる。
【００３２】
次いで第３中間データセットは、第２ノードＢから第１ノードＡへ公に送信される。次に第１ノードＡは、第３中間データセットと第１中間データセットとの間のビット単位の比較に基づいて、第３中間データセットの対応するビットが第１値に設定されている場合には第１データセットのビットの値を維持し、第３中間データセットの対応するビットが第２値に設定されている場合には第１中間データセットのビットを無視することによって、第１暗号キーを生成する。図６に示したこの場合、第１値は１に対応し、第２値は０に対応する。図６から明らかなように、キーの生成の間に４ビットが無視されたので、キーは、元の８ビットの代わりに、４ビットからなる。
【００３３】
上述したように、第１中間データセットおよび第３中間データセットの双方は、公に送信される。たとえそれらのデータセットが傍受されたとしても、第３データセットにおける１の値は、実際に値１を意味するのではなく、単に第１データセットと第２データセットとが同一の値を有していることを意味しているに過ぎないため、第三者がこのデータを用いてキーを生成する方法は存在しない。したがって、第３データセットにおける１は、実際には１または０のいずれかであり得る。
【００３４】
ノードＢでは、第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、第１中間データセットの対応するビットが等しい場合には第２データセットのビットの値を維持し、比較したビットが等しくない場合には、第２中間データセットのビットを無視することによって、第２暗号キーが生成される（図５参照）。見て分かるように、前記第１暗号キーおよび第２暗号キーは同一のキーである。その後、前記キーは、第１ノードＡと第２ノードＢとの間で送信される情報の暗号化／復号に用いられ得る。本発明による方法によって生成されたキーと共に、いかなる既知の暗号化方法を用いてもよい。したがって、本発明は、暗号化／復号がどのようになされるかに関するものではなく、暗号キーの生成に関するものである。生成されたキーは、第１ノードと第２ノードとの間の通信セッションが活動状態である限り有効であるであろう。更に、キーが第１ノードＡおよび第２ノードＢによって生成されたときには、中央サーバによる受信したキー生成ファイルは各ノードにおいて削除されるであろう。
【００３５】
現在、本発明の方法全体について詳細に説明してきた。しかしながら、本発明は、第１ノードＡにおいて暗号化／復号化キーを生成する方法にも関する。この方法は上述した方法全体の部分集合であり、従って、簡潔に説明する。第１モードによって実行される方法は、第中央サーバ２に対して２ノードＢとの安全な通信を設定するための要求を送信することから開始する。その後、第１ノードは、中央サーバ２から第１キー生成ファイルを受信して、そのファイルの処理を開始する。これは、上述したように、第２ノードＢに送信される第１中間データセットを生成する。
【００３６】
その後、第１ノードＡは、第２ノードＢから第３中間データセットを受信し、第３中間データセットのビットを第１中間データセットの対応するビットと比較する。第１ノードＡは、第３中間データセットと第１中間データセットとの間のビット単位の比較に基づいて、第３中間データセットの対応するビットが第１値に設定されている場合には第１データセットのビットの値を維持し、第３中間データセットの対応するビットが第２値に設定されている場合には第１中間データセットのビットを無視することによって、第１暗号化キーを生成する。
【００３７】
また、第２ノードＢも方法全体の部分集合を実行する。その部分集合について簡潔に説明する。第２ノードＢにおいて暗号化／復号化キーを生成する方法は、第２ノードＢが中央サーバ２から第２キー生成ファイルを受信し、該ファイルの処理を開始することから開始する。これは第２の中間データセットを生成する。その後、第２ノードＢは第１ノードＡから第１中間データセットを受信し、第１中間データセットのビットを第２中間データセットの対応するビットと比較する。その後、第２ノードＢは、第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、比較したビットが等しい場合には第１値を設定し、比較したビットが等しくない場合には第２値を設定することによって、新たな第３中間データセットを生成する。その後、第３中間データセットは第１ノードＡに送信される。
【００３８】
次に第２ノードＢは、第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、第１中間データセットの対応するビットが等しい場合には第２データセットのビットの値を維持し、比較したビットが等しくない場合には、第２中間データセットのビットを無視することによって、第２暗号化キーを生成する。
【００３９】
したがって、上述した方法により、暗号キーをそれらが用いられる場所、つまりノードにおいて、容易かつ安全な方法で、生成することが可能である。もはやキーを配布する必要性が存在しないので、これは非常に有用である。前記キーはワンタイム型のものであり、１つの通信セッションに対して、そのセッションが活動している限りにのみ有効であるであろう。更に、前記キーは２つの離れたノードにおいて２つの独立した処理において生成される。
【００４０】
上記の方法は非常に安全であると考えられるとしても、キー生成ファイルに添付される
メタデータを使用することにより、安全性がさらに改善され得る。例えば、前記メタデータは、キー生成プロセスの結果のすべての第３または第２ビットのみがキーとして用いられるべきであることを提示してもよい。メタデータの同様の使用はまた、キーの生成プロセスの間に第１ノードＡおよび第２ノードＢが互いと通信する場合に、すべての第３または第２ビットのみが読み取られるべきであると提示することもできる。
【００４１】
本発明について好ましい実施形態に関連して説明してきたとしても、本発明がその実施形態に限定されるものではないことが理解されるべきである。多くの他の実施形態および変形例が同様に本発明の範囲内にあり、それは添付の特許請求の範囲によって最良に定義される。
【図１】
2015092745.tif 000003
【図２】
2015092745.tif 000004
【図３】
2015092745.tif 000005
【図４】
2015092745.tif 000006
【図５】
2015092745.tif 000007
【図６】
2015092745.tif 000008
【手続補正書】
【提出日】平成27年2月6日(2015.2.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
暗号化／復号化キーを生成する方法であって、該方法は、
第１ノード（Ａ）から中央サーバ（２）に対して第２ノード（Ｂ）との通信を設定するための要求を送信する工程と、
第１ノード（Ａ）からの要求に応答して、中央サーバ（２）から、第１ノード（Ａ）に第１キー生成ファイルを送信し、第２ノード（Ｂ）に第２キー生成ファイルを送信する工程であって、前記第１キー生成ファイルおよび第２キー生成ファイルのそれぞれにメタデータを添付して、前記第１キー生成ファイルおよび第２キー生成ファイルを送信する工程と、
第１ノード（Ａ）において第１キー生成ファイルの処理を開始し、第２ノード（Ｂ）において第２キー生成ファイルの処理を開始する工程と、
第１ノード（Ａ）において第１中間データセットを生成し、第２ノード（Ｂ）において第２中間データセットを生成する工程と、
第１ノード（Ａ）から第２ノード（Ｂ）に第１中間データセットを送信する工程と、
第１中間データセットのビットを第２中間データセットの対応するビットと比較する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、比較したビットが等しい場合には第１値を設定し、比較したビットが等しくない場合には第２値を設定することによって、新たな第３中間データセットを形成する工程と、
第３中間データセットを第２ノード（Ｂ）から第１ノード（Ａ）へ送信する工程と、
第３中間データセットのビットを第１中間データセットの対応するビットと比較する工程と、
第３中間データセットと第１中間データセットとの間のビット単位の比較に基づいて、第３中間データセットの対応するビットが第１値に設定されている場合には第１データセットのビットの値を維持し、第３中間データセットの対応するビットが第２値に設定されている場合には第１中間データセットのビットを無視することによって、第１暗号キーを生成する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、第１中間データセットの対応するビットが等しい場合には第２データセットのビットの値を維持し、比較したビットが等しくない場合には、第２中間データセットのビットを無視することによって、第２暗号キーを生成する工程とを有し、前記第１暗号キーおよび第２暗号キーは同一であり、かつワンタイム型キーであって、前記メタデータは第１暗号キーおよび第２暗号キーの双方の生成に用いられる方法。
【請求項２】
前記メタデータは第１暗号キーおよび第２暗号キーの双方の生成に用いられる定数を含む、請求項１に記載の方法。
【請求項３】
前記メタデータは暗号キーの長さについての情報を含む、請求項１に記載の方法。
【請求項４】
前記暗号キーの長さを所定間隔内においてランダムに生成する工程をさらに含む、請求項３に記載の方法。
【請求項５】
第１ノード（Ａ）において暗号化／復号化キーを生成する方法であって、該方法は、
中央サーバ（２）に対して第２ノード（Ｂ）との安全な通信を設定するための要求を送信する工程と、
前記要求に応答して、中央サーバ（２）から第１キー生成ファイルを受信する工程であって、前記第１キー生成ファイルにはメタデータが添付されている、前記第１キー生成ファイルを受信する工程と、
第１キー生成ファイルを処理する工程と、
第１中間データセットを生成する工程と、
第１中間データセットを第２ノード（Ｂ）に送信する工程と、
第２ノード（Ｂ）から第３中間データセットを受信する工程と、
第３中間データセットのビットを第１中間データセットの対応するビットと比較する工程と、
第３中間データセットと第１中間データセットとの間のビット単位の比較に基づいて、第３中間データセットの対応するビットが第１値に設定されている場合には第１データセットのビットの値を維持し、第３中間データセットの対応するビットが第２値に設定されている場合には第１中間データセットのビットを無視することによって、前記メタデータを用いて、ワンタイム型キーである第１暗号キーを生成する工程とを有する、方法。
【請求項６】
前記メタデータは第１暗号キーの生成に用いられる定数を含む、請求項５に記載の方法。
【請求項７】
前記メタデータは暗号キーの長さについての情報を含む、請求項６に記載の方法。
【請求項８】
第２ノード（Ｂ）において暗号化／復号化キーを生成する方法であって、該方法は、
第１ノード（Ａ）からの第１ノード（Ａ）と第２ノード（Ｂ）との間の安全な通信を開始するための要求に応答して、中央サーバ（２）から第２キー生成ファイルを受信する工程であって、前記第２キー生成ファイルにはメタデータが添付されている、第２キー生成ファイルを受信する工程と、
第２キー生成ファイルを処理する工程と、
第２中間データセットを生成する工程と、
第１ノード（Ａ）から第１中間データセットを受信する工程と、
第１中間データセットのビットを第２中間データセットの対応するビットと比較する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、比較したビットが等しい場合には第１値を設定し、比較したビットが等しくない場合には第２値を設定することによって、新たな第３中間データセットを形成する工程と、
第３中間データセットを第１ノード（Ａ）に送信する工程と、
第１中間データセットと第２中間データセットとの間のビット単位の比較に基づいて、第１中間データセットの対応するビットが等しい場合には第２データセットのビットの値を維持し、比較したビットが等しくない場合には、第２中間データセットのビットを無視することによって、前記メタデータを用いて、ワンタイム型キーである第２暗号キーを生成する工程とを有する、方法。
【請求項９】
前記メタデータは第２暗号キーの生成に用いられる定数を含む、請求項８に記載の方法。
【請求項１０】
前記メタデータは暗号キーの長さについての情報を含む、請求項８または９に記載の方法。
【請求項１１】
該プログラムがコンピュータ上で実行されるときに請求項１乃至１０のいずれか１項に記載の工程を実施するためのコード手段を含むコンピュータプログラム。
【請求項１２】
コンピュータ上で実行されるときに請求項１乃至１０のいずれか１項に記載の方法を実施するための、コンピュータ可読媒体上に格納されたプログラムコード手段を含むコンピュータプログラム。