JP2017022773A - 暗号化/復号化キーを生成する方法 - Google Patents

暗号化/復号化キーを生成する方法 Download PDF

Info

Publication number
JP2017022773A
JP2017022773A JP2016191229A JP2016191229A JP2017022773A JP 2017022773 A JP2017022773 A JP 2017022773A JP 2016191229 A JP2016191229 A JP 2016191229A JP 2016191229 A JP2016191229 A JP 2016191229A JP 2017022773 A JP2017022773 A JP 2017022773A
Authority
JP
Japan
Prior art keywords
data set
intermediate data
node
key
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016191229A
Other languages
English (en)
Inventor
レヴェル、エリーゼ
Revell Elise
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kelisec AB
Original Assignee
Kelisec AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kelisec AB filed Critical Kelisec AB
Publication of JP2017022773A publication Critical patent/JP2017022773A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Facsimile Transmission Control (AREA)

Abstract

【課題】同一のキーが暗号化および復号化の双方に使用される場合に用いられるワンタイム暗号化/復号化キーを生成する方法を提供する。【解決手段】キー生成を開始するために、第1ノードAは、中央サーバ2に対して第2ノードBとの通信を設定するための要求を送信する。中央サーバ2は双方のノードにキー生成ファイルを送信する。第1ノードAによりキー生成ファイルを用いて生成された第1中間データセットは第1ノードBに送信され、第2ノードBはこのデータセットに基づいて第3中間データセットを生成し、第3中間データセットは第1ノードに送信される。ノードAにおける第1暗号キーの生成は、第3中間データセットと第1中間データセットとの間におけるビット単位の比較に基づき、第2暗号キーの生成は第1中間データセットと第2中間データセットとの間におけるビット単位の比較に基づく。前記第1暗号キーおよび第2暗号キーは同一である。【選択図】図1

Description

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

Claims (15)

  1. 暗号化/復号化キーを生成する方法であって、該方法は第1ノード(A)と第2ノード(B)との間における安全な通信のために使用可能であり、該方法は、
    第1ノード(A)から中央サーバ(2)に対して第2ノード(B)との通信を設定するための要求を送信する工程と、
    第1ノード(A)からの要求に応答して、中央サーバ(2)から、第1ノード(A)に第1キー生成ファイルを送信し、第2ノード(B)に第2キー生成ファイルを送信する工程と、
    第1ノード(A)において第1キー生成ファイルの処理を開始し、第2ノード(B)において第2キー生成ファイルの処理を開始する工程と、
    第1ノード(A)において第1中間データセットを生成し、第2ノード(B)において第2中間データセットを生成する工程と、
    第1ノード(A)から第2ノード(B)に第1中間データセットを送信する工程と、
    第1中間データセットのビットを第2中間データセットの対応するビットと比較する工程と、
    第1中間データセットと第2中間データセットとの間のビット単位の比較に基づいて、比較したビットが等しい場合には第1値を設定し、比較したビットが等しくない場合には第2値を設定することによって、新たな第3中間データセットを形成する工程と、
    第3中間データセットを第2ノード(B)から第1ノード(A)へ送信する工程と、
    第3中間データセットのビットを第1中間データセットの対応するビットと比較する工程と、
    第3中間データセットと第1中間データセットとの間のビット単位の比較に基づいて、第3中間データセットの対応するビットが第1値に設定されている場合には第1データセットのビットの値を維持し、第3中間データセットの対応するビットが第2値に設定されている場合には第1中間データセットのビットを無視することによって、第1暗号キーを生成する工程と、
    第1中間データセットと第2中間データセットとの間のビット単位の比較に基づいて、第1中間データセットの対応するビットが等しい場合には第2データセットのビットの値を維持し、比較したビットが等しくない場合には、第2中間データセットのビットを無視することによって、第2暗号キーを生成する工程とを有し、前記第1暗号キーおよび第2暗号キーは同一である、方法。
  2. 第1ノード(A)に第1キー生成ファイルを送信し、第2ノード(B)に第2キー生成ファイルを送信する工程は、各キー生成ファイルに添付されたメタデータをそれぞれ送信することも含む、請求項1に記載の方法。
  3. 前記メタデータは第1暗号キーおよび第2暗号キーの双方の生成に用いられる定数を含む、請求項2に記載の方法。
  4. 前記メタデータは暗号キーの長さについての情報を含む、請求項2または3に記載の方法。
  5. 前記暗号キーの長さを所定間隔内においてランダムに生成する工程をさらに含む、請求項4に記載の方法。
  6. 第1ノード(A)において暗号化/復号化キーを生成する方法であって、該方法は第1ノード(A)と第2ノード(B)との間における安全な通信に使用可能であり、該方法は、
    中央サーバ(2)に対して第2ノード(B)との安全な通信を設定するための要求を送信する工程と、
    前記要求に応答して、中央サーバ(2)から第1キー生成ファイルを受信する工程と、
    第1キー生成ファイルを処理する工程と、
    第1中間データセットを生成する工程と、
    第1中間データセットを第2ノード(B)に送信する工程と、
    第2ノード(B)から第3中間データセットを受信する工程と、
    第3中間データセットのビットを第1中間データセットの対応するビットと比較する工程と、
    第3中間データセットと第1中間データセットとの間のビット単位の比較に基づいて、第3中間データセットの対応するビットが第1値に設定されている場合には第1データセットのビットの値を維持し、第3中間データセットの対応するビットが第2値に設定されている場合には第1中間データセットのビットを無視することによって、第1暗号キーを生成する工程とを有する、方法。
  7. 前記第1キー生成ファイルを受信する工程は、前記ファイルに添付されたメタデータを受信することも含む、請求項6に記載の方法。
  8. 前記メタデータは第1暗号キーの生成に用いられる定数を含む、請求項7に記載の方法。
  9. 前記メタデータは暗号キーの長さについての情報を含む、請求項7または8に記載の方法。
  10. 第2ノード(B)において暗号化/復号化キーを生成する方法であって、該方法は第1ノード(A)と第2ノード(B)との間における安全な通信に使用可能であり、該方法は、
    第1ノード(A)からの第1ノード(A)と第2ノード(B)との間の安全な通信を開始するための要求に応答して、中央サーバ(2)から第2キー生成ファイルを受信する工程と、
    第2キー生成ファイルを処理する工程と、
    第2中間データセットを生成する工程と、
    第1ノード(A)から第1中間データセットを受信する工程と、
    第1中間データセットのビットを第2中間データセットの対応するビットと比較する工程と、
    第1中間データセットと第2中間データセットとの間のビット単位の比較に基づいて、比較したビットが等しい場合には第1値を設定し、比較したビットが等しくない場合には第2値を設定することによって、新たな第3中間データセットを形成する工程と、
    第3中間データセットを第1ノード(A)に送信する工程と、
    第1中間データセットと第2中間データセットとの間のビット単位の比較に基づいて、第1中間データセットの対応するビットが等しい場合には第2データセットのビットの値を維持し、比較したビットが等しくない場合には、第2中間データセットのビットを無視することによって、第2暗号キーを生成する工程とを有する、方法。
  11. 前記第2キー生成ファイルを受信する工程は、前記ファイルに添付されたメタデータを受信することも含む、請求項10に記載の方法。
  12. 前記メタデータは第2暗号キーの生成に用いられる定数を含む、請求項11に記載の方法。
  13. 前記メタデータは暗号キーの長さについての情報を含む、請求項11または12に記載
    の方法。
  14. 該プログラムがコンピュータ上で実行されるときに請求項1乃至13のいずれか1項に記載の工程を実施するためのコード手段を含むコンピュータプログラム。
  15. 該製品がコンピュータ上で実行されるときに請求項1乃至13のいずれか1高に記載の方法を実施するための、コンピュータ可読媒体上に格納されたプログラムコード手段を含むコンピュータプログラム製品。
JP2016191229A 2009-07-03 2016-09-29 暗号化/復号化キーを生成する方法 Pending JP2017022773A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US22294909P 2009-07-03 2009-07-03
SE0900918A SE534384C2 (sv) 2009-07-03 2009-07-03 Förfarande för att alstra en krypterings-/dekrypteringsnyckel
SE0900918-4 2009-07-03
US61/222,949 2009-07-03

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015001958A Division JP2015092745A (ja) 2009-07-03 2015-01-08 暗号化/復号化キーを生成する方法

Publications (1)

Publication Number Publication Date
JP2017022773A true JP2017022773A (ja) 2017-01-26

Family

ID=43411294

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2012517459A Pending JP2012532486A (ja) 2009-07-03 2010-07-05 暗号化/復号化キーを生成する方法
JP2015001958A Pending JP2015092745A (ja) 2009-07-03 2015-01-08 暗号化/復号化キーを生成する方法
JP2016191229A Pending JP2017022773A (ja) 2009-07-03 2016-09-29 暗号化/復号化キーを生成する方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2012517459A Pending JP2012532486A (ja) 2009-07-03 2010-07-05 暗号化/復号化キーを生成する方法
JP2015001958A Pending JP2015092745A (ja) 2009-07-03 2015-01-08 暗号化/復号化キーを生成する方法

Country Status (21)

Country Link
US (1) US8433066B2 (ja)
EP (1) EP2361462B1 (ja)
JP (3) JP2012532486A (ja)
KR (1) KR101747888B1 (ja)
CN (1) CN102227887B (ja)
AU (1) AU2010266760B2 (ja)
BR (1) BRPI1014192A2 (ja)
CA (1) CA2747891C (ja)
DK (1) DK2361462T3 (ja)
EA (1) EA019411B1 (ja)
EG (1) EG26868A (ja)
ES (1) ES2566160T3 (ja)
HK (1) HK1157972A1 (ja)
IL (1) IL216897A (ja)
MX (1) MX2012000104A (ja)
NZ (1) NZ596935A (ja)
PL (1) PL2361462T3 (ja)
SE (1) SE534384C2 (ja)
SG (1) SG176707A1 (ja)
WO (1) WO2011002412A1 (ja)
ZA (1) ZA201103163B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103679495B (zh) * 2012-09-18 2018-08-10 星贝瑞有限公司 一种印花发放方法及系统
US10277559B2 (en) * 2014-05-21 2019-04-30 Excalibur Ip, Llc Methods and systems for data traffic control and encryption
SE538279C2 (sv) * 2014-09-23 2016-04-19 Kelisec Ab Förfarande och system för att fastställa förekomst av
SE542460C2 (en) * 2014-10-09 2020-05-12 Kelisec Ab Improved security through authenticaton tokens
SE539271C2 (en) 2014-10-09 2017-06-07 Kelisec Ab Mutual authentication
SE538304C2 (sv) 2014-10-09 2016-05-03 Kelisec Ab Improved installation of a terminal in a secure system
SE540133C2 (en) * 2014-10-09 2018-04-10 Kelisec Ab Improved system for establishing a secure communication channel
SE539602C2 (en) 2014-10-09 2017-10-17 Kelisec Ab Generating a symmetric encryption key
CN106161402B (zh) * 2015-04-22 2019-07-16 阿里巴巴集团控股有限公司 基于云环境的加密机密钥注入系统、方法及装置
US10397195B2 (en) 2015-07-17 2019-08-27 Robert Bosch Gmbh Method and system for shared key and message authentication over an insecure shared communication medium
DE102015219991A1 (de) * 2015-10-15 2017-04-20 Robert Bosch Gmbh Verfahren und Vorrichtung zum Etablieren eines gemeinsamen Geheimnisses
EP3373505A1 (en) * 2017-03-06 2018-09-12 Koninklijke Philips N.V. Device and method for sharing a matrix for use in a cryptographic protocol
US20200106787A1 (en) * 2018-10-01 2020-04-02 Global Data Sentinel, Inc. Data management operating system (dmos) analysis server for detecting and remediating cybersecurity threats
JP2023514736A (ja) * 2020-02-21 2023-04-07 エスディーエスイー ネットワークス インコーポレイテッド 安全な通信のための方法及びシステム
US20230315875A1 (en) * 2020-07-28 2023-10-05 Geneial Llc Secure data exchange

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5960086A (en) * 1995-11-02 1999-09-28 Tri-Strata Security, Inc. Unified end-to-end security methods and systems for operating on insecure networks
US20020159598A1 (en) * 1997-10-31 2002-10-31 Keygen Corporation System and method of dynamic key generation for digital communications
US7043633B1 (en) 2000-08-28 2006-05-09 Verizon Corporation Services Group Inc. Method and apparatus for providing adaptive self-synchronized dynamic address translation
IL144369A (en) 2001-07-17 2009-06-15 Eli Yanovsky Secure communication system and method using shared random source for key changing
CN101288260A (zh) 2005-01-27 2008-10-15 美商内数位科技公司 使用未由他人分享联合随机衍生秘钥方法及系统
JP5424008B2 (ja) 2006-12-19 2014-02-26 日本電気株式会社 共有情報の管理方法およびシステム
GB2447674B (en) * 2007-03-21 2011-08-03 Lancaster University Generation of a cryptographic key from device motion

Also Published As

Publication number Publication date
SG176707A1 (en) 2012-01-30
SE0900918A1 (sv) 2011-01-04
ES2566160T3 (es) 2016-04-11
SE534384C2 (sv) 2011-08-02
WO2011002412A1 (en) 2011-01-06
KR20120040127A (ko) 2012-04-26
EP2361462B1 (en) 2016-01-27
CA2747891A1 (en) 2011-01-06
CA2747891C (en) 2014-09-02
EA201100887A1 (ru) 2011-10-31
HK1157972A1 (en) 2012-07-06
EP2361462A4 (en) 2011-11-23
US8433066B2 (en) 2013-04-30
CN102227887A (zh) 2011-10-26
EG26868A (en) 2014-11-10
EA019411B1 (ru) 2014-03-31
IL216897A0 (en) 2012-02-29
JP2015092745A (ja) 2015-05-14
EP2361462A1 (en) 2011-08-31
ZA201103163B (en) 2012-08-29
KR101747888B1 (ko) 2017-06-15
US20120087495A1 (en) 2012-04-12
CN102227887B (zh) 2014-07-09
MX2012000104A (es) 2012-06-25
NZ596935A (en) 2013-02-22
JP2012532486A (ja) 2012-12-13
AU2010266760A1 (en) 2011-01-06
IL216897A (en) 2015-07-30
DK2361462T3 (en) 2016-02-15
AU2010266760B2 (en) 2014-04-10
BRPI1014192A2 (pt) 2016-10-25
PL2361462T3 (pl) 2016-06-30

Similar Documents

Publication Publication Date Title
JP2017022773A (ja) 暗号化/復号化キーを生成する方法
US20230208627A1 (en) Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US10785019B2 (en) Data transmission method and apparatus
CN113259329B (zh) 一种数据不经意传输方法、装置、电子设备及存储介质
JP5562687B2 (ja) 第1のユーザによって第2のユーザに送信される通信の安全化
JP4944886B2 (ja) 展性攻撃に対して改良された安全性を有する技術(これに限定されない)を含む非ワンタイムパッド暗号で暗号化した署名鍵を用いた、暗号認証、及び/又は共有暗号鍵の設定
KR100568233B1 (ko) 인증서를 이용한 기기 인증 방법 및 상기 방법을 이용하여기기 인증을 수행하는 디지털 컨텐츠 처리 기기
US9130744B1 (en) Sending an encrypted key pair and a secret shared by two devices to a trusted intermediary
US12010216B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN111488618B (zh) 基于区块链的一次一密密码方法、装置及存储介质
Pushpa Enhancing Data Security by Adapting Network Security and Cryptographic Paradigms
CN116599771B (zh) 数据分级保护传输方法及装置、存储介质和终端
KR100763464B1 (ko) 암호화된 통신을 위한 비밀키 교환 방법
JP2024534375A (ja) 楕円曲線暗号を使用して対称鍵を作成するシステムおよび方法
JP2005269587A (ja) 鍵共有システム、暗号システム、ファイル認証システム
JP2004147270A (ja) 情報処理システム及び情報処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180327

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180731