JP2022500920A - コンピュータにより実施される、共通シークレットを共有するシステム及び方法 - Google Patents

コンピュータにより実施される、共通シークレットを共有するシステム及び方法 Download PDF

Info

Publication number
JP2022500920A
JP2022500920A JP2021514094A JP2021514094A JP2022500920A JP 2022500920 A JP2022500920 A JP 2022500920A JP 2021514094 A JP2021514094 A JP 2021514094A JP 2021514094 A JP2021514094 A JP 2021514094A JP 2022500920 A JP2022500920 A JP 2022500920A
Authority
JP
Japan
Prior art keywords
node
key
common
secret
message
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
JP2021514094A
Other languages
English (en)
Other versions
JPWO2020058806A5 (ja
Inventor
スティーヴン ライト,クレイグ
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.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
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 Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2022500920A publication Critical patent/JP2022500920A/ja
Publication of JPWO2020058806A5 publication Critical patent/JPWO2020058806A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • 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
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Hardware Redundancy (AREA)

Abstract

Bitcoinブロックチェーンにおけるようなブロックチェーントランザクションのセキュアな通信を可能にするために、複数のノード(A,B,C)の間で第1共通シークレットを共有する方法が開示される。当該方法は、少なくとも1つの第1ノード(A)について、複数の第2共通シークレット(SAPC、SAPB)を決定するステップであって、各第2共通シークレットは、前記第1ノード及びそれぞれの第2ノード(B)に共通であり、前記第1ノードにおいて前記第1ノードの第1秘密鍵(SA)及び前記第2ノードの第1公開鍵(PC、PB)に基づき決定され、前記第2ノードにおいて前記2ノードの第1秘密鍵(SB、SC)及び前記第1ノードの第1公開鍵(PA)に基づき決定される。第2ノード(B)及び第3ノード(C)に共通な第3共通シークレット(SBPC、SCPB)は、第2ノードについて決定される。当該方法は、第1ノードにおいて、前記第1ノードに知られている第1共通シークレットのシェアを暗号化するステップと、前記の暗号化されたシェアを第2ノードへ送信するステップと、を含む。当該方法は、第1ノードにおいて、前記第2ノードから、前記第1共通シークレットの暗号化されたシェアを受信するステップであって、複数のノードのうちの各々が、前記第1共通シークレットにアクセスするための第1共通シークレットの閾数のシェアに達することを可能にする、ステップを更に含む。

Description

本開示は、概して、複数のノードの間で共通シークレットを共有する方法に関し、特に、少なくとも3つのノードの間で共通シークレットを共有する方法に関する。本開示は、特に、限定ではないが、ノード間のセキュアな通信を可能にするために暗号法における使用に適し、限定ではないが、デジタルウォレット、ブロックチェーン(例えば、Bitcoin)技術、及び個人向け装置のセキュリティと共に使用することに適し得る。
本願明細書では、私たちは、全ての形式の電子的な、コンピュータに基づく、分散型台帳を包含するために用語「ブロックチェーン」を使用する。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装が提案され開発されているが、ブロックチェーン技術の最も広く知られているアプリケーションは、Bitcoin台帳である。Bitcoinは、ここでは、便宜上及び説明の目的で参照されることがあるが、本開示はBitcoinブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルが本開示の範囲に包含されることに留意すべきである。用語「ユーザ」は、ここでは、人間またはプロセッサに基づくリソースを表してよい。
ブロックチェーンは、コンピュータに基づく非集中型の分散型システムとして実装されるピアツーピアの電子台帳であり、ブロックにより構成され、ブロックはまたトランザクションにより構成される。各トランザクションは、ブロックチェーンシステムの中の参加者間でデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、これらのブロックは一緒に繋げられて、起源以来ブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能な記録を生成する。トランザクションは、スクリプトとして知られている小さなプログラムを含む。スクリプトは、それらのインプット及びアウトプットを埋め込まれ、トランザクションのアウトプットがどのように及び誰によりアクセス可能であるかを指定する。Bitcoinプラットフォームでは、これらのスクリプトはスタックに基づくスクリプト言語を用いて記述される。
トランザクションがブロックチェーンに書き込まれるためには、検証されなければならない。ネットワークノード(マイナー)は、無効なトランザクションがネットワークから拒否され、各トランザクションが有効であることを保証するために作業を実行する。ノードにインストールされたソフトウェアクライアントは、未使用トランザクション(unspent transaction, UTXO)のロック及びアンロックスクリプトを実行することにより、UTXOに対してこの検証作業を実行する。ロック及びアンロックスクリプトの実行が真(TRUE)と評価する場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、(i)トランザクションを受信した第1ノードにより検証され、トランザクションが有効な場合には、ノードが該トランザクションをネットワーク内の他のノードに中継する、(ii)マイナーにより構築された新しいブロックに追加される、(iii)マイニングされる、つまり過去のトランザクションのパブリック台帳に追加される、ことが必要である。
ブロックチェーン技術は、暗号通貨の実装の使用のために最も広く知られているが、デジタル事業家が、Bitcoinの基づく暗号セキュリティシステム及び新しいシステムを実装するためにブロックチェーンに格納できるデータの両方の使用を開発し始めている。ブロックチェーンが、暗号通貨の分野に限定されない自動化タスク及びプロセスのために使用できれば、非常に有利になる。
このようなソリューションは、ブロックチェーンの利益(例えば、永久性、イベントの記録の耐タンパ性、分散型処理、等)を利用しながら、それらの用途をより多様化し得る。
国際特許出願WO2017/145016号は、ノード間のセキュアな通信を可能にするために、2つのノードの間で共通シークレットを共有する方法を開示している。
しかしながら、2つより多くのノードの間で共通シークレットを共有する方法を提供することが望ましい。
このような改良されたソリューションがここで考案される。
従って、本開示によると、添付の請求項において定められる方法が提供される。
本開示によると、複数のノードの間で第1共通シークレットを共有する方法であって、各々の前記ノードは、前記複数のノードに共通の暗号システムのそれぞれの第1秘密鍵及びそれぞれの第1公開鍵を有するそれぞれの非対称暗号第1鍵ペアに関連付けられ、前記第1共通シークレットは、前記ノードの各々の前記第1秘密鍵に基づき、前記方法は、
少なくとも1つの第1ノードについて、複数の第2共通シークレットを決定するステップであって、各々の前記第2共通シークレットは、前記第1ノード及びそれぞれの第2ノードに共通であり、前記第1ノードにおいて前記第1ノードの前記第1秘密鍵及び前記第2ノードの前記第1公開鍵に基づき決定され、前記第2ノードにおいて前記第2ノードの前記第1秘密鍵及び前記第1ノードの前記第1公開鍵に基づき決定され、前記第1共通シークレットの複数のシェアはそれぞれ、少なくとも1つのそれぞれの第2共通シークレットに基づき、前記第1共通シークレットが閾数の前記シェアにアクセス可能になるが、前記閾数より少ないシェアにアクセス不可能になる、ステップと、
少なくとも1つの第2ノードについて、少なくとも1つのそれぞれの第3共通シークレットを決定するステップであって、それぞれの第3共通シークレットは、前記第2ノード及びそれぞれの第3ノードに共通であり、前記第2ノードにおいて前記第2ノードの前記第1秘密鍵及び前記第3ノードの前記第1公開鍵に基づき決定され、前記第3ノードにおいて前記第3ノードの前記第1秘密鍵及び前記第2ノードの前記第1公開鍵に基づき決定され、前記第1共通シークレットの少なくとも1つのシェアは、少なくとも1つのそれぞれの前記第3共通シークレットに基づく、ステップと、
少なくとも1つの前記第1ノードにおいて、前記第1ノードに知られている前記第1共通シークレットの少なくとも1つのシェアを、暗号システムのそれぞれの非対称暗号第2鍵ペアの第2秘密鍵に基づき、暗号化するステップであって、前記第2鍵ペアは前記第1ノードに知られているそれぞれの前記第2共通シークレットに基づく、ステップと、
少なくとも1つの前記の暗号化されたシェアを、前記第1ノードから、前記第2鍵ペアが基づく前記第2共通シークレットが共通であるそれぞれの前記第2ノードへ送信するステップと、
少なくとも1つの前記第1ノードにおいて、少なくとも1つの前記第2ノードから、前記第2ノードに知られており前記暗号システムのそれぞれの非対称暗号第2鍵ペアの第2秘密鍵に基づき暗号化された前記第1シークレットの少なくとも1つのそれぞれのシェアを受信するステップであって、前記第2鍵ペアは、前記第1ノード及び前記第2ノードに共通の前記第2共通シークレットに基づき、前記複数のノードの各々が前記第1共通シークレットの前記閾数のシェアに達することを可能にする、ステップと、
を含む方法が提供される。
これは、複数のノードの間で共通シークレットを共有し、該共通シークレットがノードの間のセキュアな通信の基礎として使用できる、効率的な方法を提供するという利点を提供する。
複数の前記の暗号化されたシェアは、それぞれ、対応する前記ノードに知られている複数の前記共通シークレットの結合に基づく。
これは、個々の共通シークレットを第三者に対して難読化し、それにより、例えば共有されたシークレットがブロックチェーントランザクションのスクリプトに含まれるとき、プライバシを向上することを可能にしながら、効率を向上するという利点を提供する。
複数の前記の暗号化されたシェアは、それぞれ、対応する前記ノードに知られている複数の前記共通シークレット少なくとも1つのそれぞれのXOR結合に基づいてよい。
これは、処理が簡易になり、それにより、受信ノードによる第1共通シークレットの復元を簡単にするという利点を提供する。
複数の前記の暗号化されたシェアは、対応する前記ノードに知られている複数の前記共通シークレットの乗算結合に基づいてよい。
前記乗算結合は(x,x,x) mod nの形式であってよく、x,x,xはノードに知られている共通シークレットであり、nは暗号システムの次数である。
複数の前記シェアは、第1多項式関数のシェアであってよく、前記第1シークレットは、少なくとも閾数の前記シェアの多項式補間により、決定されてよい。
前記方法は、前記第1共通シークレットの少なくとも閾数のシェアを受信するステップであって、各々の前記シェアは前記第1多項式関数のそれぞれの値に対応する、ステップと、
前記第1共通シークレットを決定するために、前記シェアの複数の知られている値から、前記第1多項式関数の係数を決定することにより、前記第1多項式関数を決定するステップと、
を更に含み得る。
前記第1多項式関数を決定するステップは、誤り訂正アルゴリズムを実行するステップを含んでよい。
前記第1多項式関数を決定するステップは、Berlekamp−Welch復号アルゴリズムを実行するステップを含んでよい。
前記第1多項式関数を決定するステップは、
誤り位置多項式関数及び第2多項式関数を定義するステップであって、前記第2多項式関数は、前記第1多項式関数と前記誤り位置多項式関数との積である、ステップと、
前記部分署名の複数の知られている値から、前記第2多項式関数及び前記誤り位置多項式関数の係数を決定するステップと、
前記第1共通シークレットを決定するために、前記第2多項式関数及び前記誤り検出多項式関数から前記第1多項式関数を決定するステップと、を含んでよい。
少なくとも1つの前記暗号システムは、準同型特性を有してよい。
これは、方法のより柔軟な効率的な動作を可能にするという利点を提供する。
少なくとも1つの前記デジタル署名は、楕円曲線暗号システムに基づいてよい。
これは、所与の鍵サイズに高いセキュリティの利点を提供する。
前記方法は、少なくとも第1ノードのマスタ秘密鍵(V1C)と前記第1及び第2ノードと共通な決定性鍵(DK)とに基づき、少なくとも1つの前記第1ノードの前記第1秘密鍵を決定するステップと、
前記第2ノードのマスタ公開鍵(P1S)と前記共通暗号システムを用いる前記決定性鍵(DK)の暗号化とに基づき、少なくとも1つの前記第2ノードの前記第1公開鍵(P2S)を決定するステップと、
を更に含んでよい。
決定性鍵(DK)はメッセージ(M)に基づいてよい。
前記メッセージ(M)及び前記第1ノードの第1秘密鍵(V2C)に基づき、第1署名付きメッセージ(SM1)を生成するステップと、
前記通信ネットワークを介して、前記第1署名付きメッセージ(SM1)を前記第2ノード(S)へ送信するステップであって、前記第1署名付きメッセージ(SM1)は、前記第1ノード(C)を認証するために、前記第1ノードの第1公開鍵(P2C)により検証できる、ステップと、
を更に含んでよい。
前記方法は、前記通信ネットワークを介して、前記第2ノード(S)から第2署名付きメッセージ(SM2)を受信するステップと、
前記第2ノードの前記第1公開鍵(P2S)により、前記第2署名付きメッセージ(SM2)を検証するステップと、
前記第2署名付きメッセージ(SM2)を検証した結果に基づき、前記第2ノード(S)を認証するステップと、
を更に含んでよく、
前記第2署名付きメッセージ(SM2)は、メッセージ(M)又は第2メッセージ(M2)と前記第2ノードの前記第1秘密鍵(V2S)とに基づき生成されたものである。
前記方法は、メッセージ(M)を生成するステップと、
通信ネットワークを介して、前記メッセージ(M)を前記第2ノードへ送信するステップと、を更に含んでよい。
前記方法は、前記通信ネットワークを介して、前記第2ノード(S)から前記メッセージ(M)を受信するステップ、を更に含んでよい。
前記方法は、前記通信ネットワークを介して、別のノードから前記メッセージ(M)を受信するステップ、を更に含んでよい。
前記方法は、データストア及び/又は前記第1ノード(C)に関連付けられた入力インタフェースから、前記メッセージ(M)を受信するステップ、を含んでよい。
前記暗号システムは楕円曲線暗号(ECC)システムであってよく、前記第1ノードのマスタ公開鍵(P1C)及び第2ノードのマスタ公開鍵(P1S)は、それぞれ第1ノードのマスタ秘密鍵(V1C)及び第2ノードのマスタ秘密鍵(V1S)と生成元(G)との楕円曲線点積に基づいてよい。
前記方法は、前記通信ネットワークを介して、前記第2ノードのマスタ公開鍵(P1S)を受信するステップと、
前記第1ノード(C)に関連付けられたデータストアに、前記第2ノードのマスタ公開鍵(P1S)を格納するステップと、
を更に含んでよい。
前記方法は、第1ノード(C)において、第1ノードのマスタ秘密鍵(V1C)及び第1ノードのマスタ秘密鍵(P1C)を生成するステップと、
前記通信ネットワークを介して、前記第1ノードのマスタ公開鍵(P1C)を前記第2ノード(S)及び/又は他のノードへ送信するステップと、
前記第1ノード(C)に関連付けられた第1データストアに、前記第1ノードのマスタ秘密鍵(V1C)を格納するステップと、
を更に含んでよい。
前記方法は、前記通信ネットワークを介して、前記第2ノードへ、少なくとも1つの前記共通シークレット(CS)を決定する方法のために共通暗号システムを使用することを示す通知を送信するステップ、を更に含んでよく、
前記第1ノードのマスタ秘密鍵(V1C)及び前記第1ノードのマスタ公開鍵(P1C)を生成するステップは、
前記共通暗号システムで指定される許容範囲内のランダムな整数に基づき、前記第1ノードのマスタ秘密鍵(V1C)を生成するステップと、
前記第1ノードのマスタ秘密鍵(V1C)の暗号化に基づき、前記第1ノードのマスタ公開鍵(P1C)を決定するステップと、
を含む。
前記共通暗号システムは、共通の生成元(G)を有する楕円曲線暗号(ECC)システムであり、前記第1ノードのマスタ公開鍵(P1C)は、次式:
1C=V1C×G
に従い、前記第1ノードのマスタ秘密鍵(V1C)及び前記共通の生成元(G)の楕円曲線点積に基づき決定されてよい。
前記方法は、メッセージ(M)のハッシュを決定することに基づき、前記決定性鍵(DK)を決定するステップ、を更に含んでよく、
前記第1ノードの第1秘密鍵(V2C)を決定するステップは、次式:
2C=V1C+DK
に従う、前記第1ノードのマスタ秘密鍵(V1C)及び前記決定性鍵(DK)のスカラー加算に基づき、
前記第2ノードの第1公開鍵(P2S)を決定するステップは、次式:
2S=P1S+DK×G
に従う、前記決定性鍵(DK)及び前記共通の生成元(G)の楕円曲線点積への前記第2ノードのマスタ公開鍵(P1S)の楕円曲線点加算に基づく。
前記決定性鍵(DK)は、前の決定性鍵のハッシュを決定することに基づいてよい。
本開示は、複数のノードの間のセキュアな通信の方法であって、前記方法は、
上述の方法により、第1共通シークレットを決定するステップと、
前記第1共通シークレットに基づき対称鍵を決定するステップと、
前記対称鍵により第1通信メッセージを暗号化して、暗号化第1通信メッセージにするステップと、
通信ネットワークを介して、前記複数のノードのうちの1つのノードから前記複数のノードのうちの他のノードへ、前記暗号化第1通信メッセージを送信するステップと、
を含む方法も提供し得る。
前記方法は、通信ネットワークを介して、前記複数のノードのうちの1つのノードから、暗号化第2通信メッセージを受信するステップと、
前記対称鍵により前記暗号化第2通信メッセージを復号して、第2通信メッセージにするステップと、
を更に含んでよい。
本開示は、複数のノードの間でオンライントランザクションを実行する方法であって、前記方法は、
上述の方法により、第1共通シークレットを決定するステップと、
前記第1共通シークレットに基づき対称鍵を決定するステップと、
前記対称鍵により第1トランザクションメッセージを暗号化して、暗号化第1トランザクションメッセージにするステップと、
通信ネットワークを介して、前記複数のノードのうちの第1ノードから前記複数のノードのうちの他のノードへ、前記暗号化第1トランザクションメッセージを送信するステップと、
を含む方法を更に提供し得る。
本開示は、プロセッサと、プロセッサによる実行の結果として、システムに本願明細書に記載のコンピュータにより実施される方法のいずれかの実施形態を実行させる実行可能命令を含むメモリと、を含むシステムも提供する。
本開示は、実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、少なくとも、前記コンピュータシステムに、本願明細書に記載のコンピュータにより実施される方法を実行させる、非一時的コンピュータ可読記憶媒体も提供する。
本開示のこれらの及び他の態様は、本願明細書に記載の実施形態から明らかであり及びそれらを参照して教示される。
本開示の実施形態は、単なる例を用いて及び添付の図面を参照して以下に説明される。
第1ノード及び第2ノードの共通シークレットを決定するための例示的なシステムの概略図である。 共通シークレットを決定する、コンピュータにより実施される方法のフローチャートである。 第1及び第2ノードを登録する、コンピュータにより実施される方法のフローチャートである。 共通シークレットを決定する、コンピュータにより実施される方法の別のフローチャートである。 第1及び第2ノードの間のセキュアな通信の、コンピュータにより実施される方法のフローチャートである。 第1ノード及び第2ノードを認証する、コンピュータにより実施される方法のフローチャートである。 3つのノードの間で共通シークレットを共有する、本開示を実現する方法を示す図である。 図7の方法のフローチャートである。 本開示を実現する方法において、第1共通シークレットを復元するBerlekamp−Welchデコーダを示す。 4つのノードの間で共通シークレットを共有する、本開示を実現する方法のフローチャートである。 種々の実施形態が実装できるコンピューティング環境を示す概略図である。
<概要>
最初に、第1ノード(C)において、第2ノード(S)におけるものと同じ共通シークレットである共通シークレット(CS)を決定する方法、装置、及びシステムが記載される。これは、ノードのペアの間で第2共通シークレットを決定するために使用され、次に、図7及び8を参照して以下に詳述されるように、3以上のノードを含む複数のノードの間で第1共通シークレットを共有するために使用される。図1は、通信ネットワーク5を介して、第2ノード7と通信する第1ノード3を含むシステム1を示す。第1ノード3は、関連する第1処理装置23を有し、第2ノード5は、関連する第2処理装置27を有する。第1及び第2ノード3、7は、コンピュータ、タブレットコンピュータ、モバイル通信装置、コンピュータサーバ、等のような電子装置を含んでよい。一例では、第1ノード3はクライアント装置であってよく、第2ノード7はサーバである。
第1ノード3は、第1ノードのマスタ秘密鍵(V1C)及び第1ノードのマスタ公開鍵(P1C)を有する第1非対称暗号ペアと関連付けられる。第2ノード(7)は、第2ノードのマスタ秘密鍵(V1S)及び第2ノードのマスタ公開鍵(P1S)を有する第2非対称暗号ペアと関連付けられる。第1及び第2ノード3、7のそれぞれの第1及び第2非対称暗号ペアは、登録(registration)中に生成されてよい。第1及び第2ノード3、7により実行される登録の方法100、200は、図3を参照して更詳細に後述される。各ノードの公開鍵は、例えば通信ネットワーク5を介して、公に共有されてよい。
第1ノード3及び第2ノード7の両方で共通シークレット(CS)を決定するために、ノード3、7は、通信ネットワーク5を介して秘密鍵を通信することなく、それぞれの方法300、400のステップを実行する。
第1ノード3で実行される方法300は、少なくとも第1ノードのマスタ秘密鍵(V1C)及び決定性鍵(DK)に基づき第1ノードの第2秘密鍵(V2C)を決定するステップ320を含む。決定性鍵(deterministic key)は、第1及び第2ノードの間で共有されるメッセージ(M)に基づいてよい。これは、以下に更に詳述するように、通信ネットワーク5を介してメッセージを共有することを含んでよい。方法300は、少なくとも第2ノードのマスタ公開鍵(P1S)及び決定性鍵(DK)に基づき第2ノードの第2公開鍵(P2S)を決定するステップ370も含む。方法300は、第1ノードの第2秘密鍵(V2C)及び第2ノードの第2公開鍵(P2S)に基づき共通シークレット(CS)を決定するステップ380を含む。
重要なことに、同じ共通シークレット(CS)が、方法400により第2ノード7においても決定できる。方法400は、第1ノードのマスタ公開鍵(P1C)及び決定性鍵(DK)に基づき第1ノードの第2公開鍵(P2C)を決定するステップ430を含む。方法400は、第2ノードのマスタ秘密鍵(V1S)及び決定性鍵(DK)に基づき第2ノードの第2秘密鍵(V2S)を決定するステップ470も含む。方法400は、第2ノードの第2秘密鍵(V2S)及び第1ノードの第2公開鍵(P2C)に基づき共通シークレット(CS)を決定するステップ480を含む。
通信ネットワーク5は、ローカルエリアネットワーク、ワイドエリアネットワーク、セルラネットワーク、無線通信ネットワーク、インターネット、等を含んでよい。
これらのネットワークでは、データが電線、光ファイバ、又は無線のような通信媒体を介して伝送されてよく、盗聴者によるような盗聴を受ける可能性がある。
方法300、400は、通信ネットワーク5を介して共通シークレットを送信することなく、第1ノード3及び第2ノード7両方とも独立に共通シークレットを決定できるようにし得る。従って、1つの利点は、セキュアでない可能性のある通信ネットワーク5を介して秘密鍵を送信する必要を有しないで、共通シークレット(CS)が、各ノードによりセキュアに決定され得ることである。また、共通シークレットは、通信ネットワーク5を介する第1ノード及び第2ノード3、7の間の暗号化通信のためのシークレット鍵として(又はシークレット鍵の基礎として)使用され得る。
方法300、400は、追加ステップを含んでよい。方法300は、第1ノード3において、メッセージ(M)及び第1ノードの第2秘密鍵(V2C)に基づき、署名付きメッセージ(SM1)を生成するステップを含んでよい。方法300は、通信ネットワークを介して、第2ノード7へ、第1署名付きメッセージ(SM1)を送信するステップ360を更に含む。また、第2ノード7は、第1署名付きメッセージ(SM1)を受信するステップ440を実行してよい。方法400は、第1ノードの第2公開鍵(P2C)により第1署名付きメッセージ(SM1)を検証するステップ450と、第1署名付きメッセージ(SM1)を検証して結果に基づき、第1ノード3を認証するステップ460と、を更に含む。有利なことに、これは、第2ノード7が、自称(purported)第1ノード(第1署名付きメッセージが生成された場所)が第1ノード3であることを認証することを可能にする。
これは、第1ノード3のみが第1ノードのマスタ秘密鍵(V1C)へのアクセスを有し、従って、第1ノード3のみが第1署名付きメッセージ(SM1)を生成するための第1ノードの第2秘密鍵(V2C)を決定できるという前提に基づく。理解されるべきことに、第2署名付きメッセージ(SM2)は、第2ノード7において生成され、第1ノード3へ送信され得る。その結果、ピアツーピアシナリオのおけるように、第1ノード3は第2ノード7を認証できる。
第1及び第2ノードの間でメッセージ(M)を共有することは、種々の方法で達成されてよい。一例では、メッセージは、第1ノード3において生成されてよく、次に、通信ネットワーク5を介して第2ノード7へ送信される。代替として、メッセージは、第2ノード7において生成されてよく、次に、通信ネットワーク5を介して第2ノード7へ送信される。更に別の例では、メッセージは、第3ノード9において生成されてよく、メッセージは第1及び第2ノード3、7の両方へ送信される。更に別の例では、ユーザは、ユーザインタフェースを通じて、第1及び第2ノード3、7により受信されるべきメッセージを入力してよい。更に別の例では、メッセージ(M)は、データストア19から読み出されてよく、第1及び第2ノード3、7の両方へ送信される。幾つかの例では、メッセージ(M)は、公にされてよく、従ってセキュアでないネットワーク5を介して送信されてよい。
更なる例では、1つ以上のメッセージ(M)が、データストア13、17、19に格納されてよく、メッセージは、第1ノード3と第2ノード7との間のセッション、トランザクション、等に関連付けられてよい。従って、メッセージ(M)は、それぞれ第1ノード3及び第2ノード7において読み出され、該セッション又はトランザクションに関連付けられた共通シークレット(CS)を再生成するために使用されてよい。有利なことに、共通シークレット(CS)の再生成を可能にするためのレコードが保持されてよく、該レコード自体が秘密に格納され又はセキュアに送信される必要はない。これは、多数のトランザクションが第1ノード3及び第2ノード7において実行され、ノード自体に全部のメッセージ(M)を格納することが実用的でない場合に有利である。
<登録方法100、200>
登録方法100、200の例は、図3を参照して説明される。ここで、方法100は第1ノード3により実行され、方法200hじゃ第2ノード7により実行される。これは、それぞれの第1ノード3及び第2ノード7について、第1及び第2非対称暗号ペアを確立するステップを含む。
非対称暗号ペアは、公開鍵暗号化で使用されるような、関連付けられた秘密鍵及び公開鍵を含む。本例では、非対称暗号ペアは、楕円曲線暗号(ECC)及び楕円曲線演算の特性を用いて生成される。
ECCについての標準は、Standards for Efficient Cryptography Group (www.sceg.org)により策定されたもののような知られている標準を含んでよい。
楕円曲線暗号は、US5,600,725、US5,761,305、US5889,865、US5,896,455、US5,933,504、US6,122,736、US6,141,420、US6,618,483、US6,704,870、US6,785,813、US6,078,667、US6,792,530にも記載されている。
方法100、200では、これは、第1ノード及び第2ノードが、共通ECCシステム及び共通生成元(G、common generatorを使用することを決定するステップ110、210を含む。一例では、共通ECCシステムは、Bitcoinにより使用されるECCシステムであるsecp256K1に基づいてよい。共通生成元(G)は、選択され、ランダムに生成され、又は割り当てられてよい。
第1ノード3を参照すると、方法100は、共通ECCシステム及び共通生成元(G)を決定するステップ110を含む。これは、第2ノード7又は第3ノード9から、共通ECCシステム及び共通生成元を受信するステップを含んでよい。代替として、ユーザインタフェース15は、第1ノード3に関連付けられてよく、それにより、ユーザは、共通ECCシステム及び/又は共通生成元(G)を選択的に提供してよい。また別の代替では、ECCシステム及び/又は共通生成元(G)の一方又は両方は、第1ノード3によりランダムに選択されてよい。第1ノード3は、通信ネットワーク5を介して、共通ECCシステムを共通生成元(G)と共に使用することを示す通知を第2ノード7へ送信してよい。また、第2ノード7は、共通ECCシステム及び共通生成元(G)を使用することの肯定応答を示す通知を送信することにより、決定してよい210。
方法100は、第1ノード3が、第1ノードのマスタ秘密鍵(V1C)及び第1ノードのマスタ公開鍵(P1C)を有する第1非対称暗号ペアを生成するステップ120を更に含む。これは、少なくとも部分的に、共通ECCシステムで指定された許容範囲内のランダムな整数に基づき、第1ノードのマスタ秘密鍵(V1C)を生成するステップを含む。これは、次式に従い、第1ノードのマスタ秘密鍵(V1C)と共通生成元(G)との楕円曲線点積に基づき、第1ノードのマスタ公開鍵(P1C)を決定するステップを更に含む。
Figure 2022500920
従って、第1非対称暗号ペアは以下を含む。
1C:第1ノードにより秘密に保持される第1ノードのマスタ秘密鍵。
1C:公に知られるようにされた第1ノードのマスタ公開鍵。
第1ノード3は、第1ノードのマスタ秘密鍵(V1C)及び第1ノードのマスタ公開鍵(P1C)を、第1ノード3に関連付けられた第1データストア13に格納してよい。セキュリティのために、第1ノードのマスタ秘密鍵(V1C)は、鍵田秘密のままであることを保証するために、第1データストア13のセキュアな部分に格納されてよい。
方法100は、通信ネットワーク5を介して、第2ノード7へ、第1ノードのマスタ公開鍵(P1C)を送信するステップ130を更に含む。第2ノード7は、第1ノードのマスタ公開鍵(P1C)を受信すると220、第1ノードのマスタ公開鍵(P1C)を、第2ノード7に関連付けられた第2データストア17に格納してよい230。
第1ノード3と同様に、第2ノード7の方法200は、第2ノードのマスタ秘密鍵(V1S)及び第2ノードのマスタ公開鍵(P1S)を有する第2非対称暗号ペアを生成するステップ240を含む。第2ノードのマスタ秘密鍵(V1S)は、また、許容範囲内のランダムな整数である。また、第2ノードのマスタ公開鍵(P1S)は、次式により決定される。
Figure 2022500920
従って、第2非対称暗号ペアは以下を含む。
1S:第2ノードにより秘密に保持される第2ノードのマスタ秘密鍵。
1S:公に知られるようにされた第2ノードのマスタ公開鍵。
第2ノード7は、第2非対称暗号ペアを第2データストア17に格納してよい。方法200は、第1ノード3へ、第2ノードのマスタ公開鍵(P1S)を送信するステップ250を更に含む。また、第1ノード3は、第2ノードのマスタ公開鍵(P1S)を受信し140、格納してよい150。
理解されるべきことに、幾つかの代替では、それぞれの公開マスタ鍵は、受信され、(信頼できる第三者のような)第3ノード9に関連付けられた第3データストア19に格納される。これは、証明機関のようなパブリックディレクトリとして動作する第三者を含んでよい。従って、幾つかの例では、共通シークレット(CS)を決定することが必要なときにのみ、第1ノードのマスタ公開鍵(P1C)は、第2ノード7により要求され受信されてよい(逆も同様である)。
登録ステップは、初期設定として1回生じる必要があるだけである。後に、マスタ鍵は、特に決定性鍵(DK)に依存する共通シークレットを生成するために、安全の問題で再利用できる。
<セッション開始、及び第1ノード3による共通シークレットの決定>
共通シークレット(CS)を決定する例は、図4を参照して以下に記載される。共通シークレット(CS)は、特定のセッション、時間、トランザクション、又は他の目的で、第1ノード3と第2ノード7との間で使用されてよく、同じ共通シークレット(CS)を使用することは望ましくなく又は安全ではない可能性がある。従って、共通シークレット(CS)は、異なるセッション、時間、トランザクション等の間で変更されてよい。
<メッセージ(M)の生成310>
本例では、第1ノード3により実行される方法300は、メッセージ(M)を生成するステップ310を含む。メッセージ(M)は、ランダム、疑似ランダム、又はユーザにより定義されてよい。一例では、メッセージ(M)は、Unix時間及びノンス(及び任意の値)に基づく。例えば、メッセージ(M)は以下のように提供されてよい。
Figure 2022500920
幾つかの例では、メッセージ(M)は任意である。しかしながら、メッセージ(M)が、幾つかの用途において有用であり得る(Unix時間のような)選択的な値を有してよいことが理解されるべきである。
方法300は、通信ネットワークを介して、第2ノード7へ、メッセージ(M)を送信するステップ315を含む。メッセージ(M)は秘密鍵に関する情報を含まないので、メッセージ(M)は、セキュアでないネットワークを介して送信されてよい。
<決定性鍵の決定320>
方法300は、メッセージ(M)に基づき、決定性鍵(DK)を決定するステップ320を更に含む。本例では、これは、メッセージの暗号ハッシュを決定するステップを含む。
暗号ハッシュアルゴリズムの例は、256ビットの決定性鍵(DK)を生成するためのSHA−256を含む。つまり:
Figure 2022500920
理解されるべきことに、他のハッシュアルゴリズムが使用されてよい。これは、セキュアハッシュアルゴリズム(Secure Hash Algorithm (SHA))ファミリの中のアルゴリズムを有する。幾つかの特定の例は、SHA3−224、SHA3−256、SHA3−384、SHA3−512、SHAKE128、SHKE256を含むSHA−3サブセットの中のインスタンスを含む。他のハッシュアルゴリズムは、RIPEMD(RACE Integrity Primitives Evaluation Message Digest)ファミリの中のアルゴリズムを含んでよい。特定の例は、RIPEMD−160を含んでよい。他のハッシュアルゴリズムは、Zemor−Tillichハッシュ関数及びナップサックに基づくハッシュ関数に基づくファミリを含んでよい。
<第1ノードの第2秘密鍵の決定330>
方法300は、次に、第2ノードのマスタ秘密鍵(V1C)及び決定性鍵(DK)に基づき第1ノードの第2秘密鍵(V2C)を決定するステップ330を含む。
これは、次式に従う、第1ノードのマスタ秘密鍵(V1C)及び決定性鍵(DK)のスカラー加算に基づき得る。
Figure 2022500920
従って、第1ノードの第2秘密鍵(V2C)は、ランダム値ではないが、代わりに、第1ノードのマスタ秘密鍵から決定的に導出される。暗号ペアの中の対応する公開鍵、つまり第1ノードの第2公開鍵(P2C)は、以下の関係を有する。
Figure 2022500920
式5からのV2Cを式6に代入すると、
Figure 2022500920
ここで、「+」演算子はスカラー加算を表し、「×」演算子は楕円曲線点乗算を表す。
楕円曲線暗号代数学は分配的であることに留意して、式7は以下のように表される。
Figure 2022500920
最後に、式1が式7に代入されて、以下を与える。
Figure 2022500920
式8〜9.2で、「+」演算子は、楕円曲線点加算を表す。従って、対応する第1ノードの第2公開鍵(P2C)は、第1ノードのマスタ公開鍵(P1C)及びメッセージ(M)の知識が与えられると、導出可能であり得る。方法400に関して以下に更に詳述するように、第2ノード7は、第1ノードの第2公開鍵(P2C)を独立に決定するために、このような知識を有してよい。
<メッセージ及び第1ノードの第2秘密鍵に基づく第1署名付きメッセージ(SM1)の生成350>
方法300は、メッセージ(M)及び決定した第1ノードの第2秘密鍵(V2C)に基づき、第1署名付きメッセージ(SM1)を生成するステップ350を更に含む。署名付きメッセージを生成するステップは、メッセージ(M)にデジタル方式で署名するために、デジタル署名アルゴリズムを適用するステップを含む。一例では、これは、第1署名付きメッセージ(SM1)を取得するために、第1ノードの第2秘密鍵(V2C)を、楕円曲線デジタル署名アルゴリズム(Elliptic Curve Digital Signature Algorithm (ECDSA))においてメッセージに適用するステップを含む。
ECDSAの例は、secp256k1、secp256r1、secp384r1、se3cp521r1を有するECCシステムに基づくものを含む。
第1署名付きメッセージ(SM1)は、第2ノード7において、第1ノードの第2公開鍵(P2C)により検証できる。第1署名付きメッセージ(SM1)のこの検証は、第1ノード3を認証するために、第2ノード7により使用されてよい。これは、以下の方法400で議論される。
<第2ノードの第2公開鍵の決定370’>
第1ノード3は、次に、第2ノードの第2公開鍵(P2S)を決定してよい370。上述のように、第2ノードの第2公開鍵(P2S)は、第2ノードのマスタ公開鍵(P1S)及び決定性鍵(DK)に基づき決定されてよい。本例では、公開鍵は、秘密鍵と生成元(G)との楕円曲線点積により決定されるので370’、第2ノードの第2公開鍵(P2S)は、式6と同様に、次式により表すことができる。
Figure 2022500920
式10.2の数学的証明は、第1ノードの第2公開鍵(P2C)について式9.1を導出するために上述したのと同じである。第1ノード3は、第2ノード7と独立に、第2ノードの第2公開鍵を決定できる370。
<第1ノード3における共通シークレット380の決定>
第1ノード3は、決定した第1ノードの第2秘密鍵(V2C)及び決定した第2ノードの第2公開鍵(P2S)に基づき共通シークレット(CS)を決定してよい380。共通シークレット(CS)は、次式により第1ノード3により決定されてよい。
Figure 2022500920
<第2ノード7において実行される方法400>
第2ノード7において実行される対応する方法400が以下に説明される。理解されるべきことに、これらのステップのうちの幾つかは、第1ノード3により実行された上述のステップと同様である。
方法400は、通信ネットワーク5を介して、第1ノード3から、メッセージ(M)を受信するステップ410を含む。これは、ステップ315において第1ノード3により送信されたメッセージ(M)を含んでよい。第2ノード7は、次に、メッセージ(M)に基づき、決定性鍵(DK)を決定する420。第2ノード7により決定性鍵(DK)を決定するステップ420は、第1ノードにより実行される上述のステップ320と同様である。本例では、第2ノード7は、第1ノード3と独立である、この決定するステップを実行する。
次のステップは、第1ノードのマスタ公開鍵(P1C)及び決定性鍵(DK)に基づき第1ノードの第2公開鍵(P2C)を決定するステップ430を含む。本例では、公開鍵は、秘密鍵と生成元(G)との楕円曲線点積により決定されるので430’、第1ノードの第2公開鍵(P2C)は、式9と同様に、次式により表すことができる。
Figure 2022500920
式12.1及び12.2の数学的証明は、式10.1及び10.2について上述したものと同じである。
<第2ノード7が第1ノード3を認証する>
方法400は、自称第1ノード3が第1ノード3であることを認証するために、第2ノード7により実行されるステップを含んでよい。上述のように、これは、第1ノード3から第1署名付きメッセージ(SM1)を受信するステップ440を含む。第2ノード7は、ステップ430で決定された第1ノードの第2公開鍵(P2C)により、第1署名付きメッセージ(SM1)上の署名を検証してよい450。
デジタル署名の検証は、上述のように楕円曲線デジタル署名アルゴリズム(ECDSA)に従い行われてよい。重要なことに、V2C及びP2Cは暗号ペアを形成するので、第1ノードの第2秘密鍵(V2C)により署名された第1署名付きメッセージ(SM1)は、対応する第1ノードの第2公開鍵(P2C)によってよみ正しく検証されるべきである。これらの鍵は、第1ノード3の登録の際に生成された第1ノードのマスタ秘密鍵(V1C)及び第1ノードのマスタ公開鍵(P1C)の上で確定するので、第1署名付きメッセージ(SM1)の検証は、第1署名付きメッセージ(SM1)を送信している自称第1ノードが登録中と同じ第1ノード3であることを認証する基礎として使用できる。従って、第2ノード7は、第1署名付きメッセージを検証するステップ(450)の結果に基づき、第1ノード3を認証するステップ(460)を更に実行してよい。
上述の認証は、2つのノードのうちの1つが信頼できるノードであり、これらのノードのうちの1つのみが認証される必要があるシナリオに適してよい。例えば、第1ノード3はクライアントであってよく、第2ノード7はクライアントにより信頼されるサーバであってよい。従って、サーバ(第2ノード7)は、クライアントがサーバシステムにアクセスするのを許可するために、クライアント(第1ノード3)の認証情報(credentials)を認証する必要があってよい。サーバは、クライアントにサーバの認証情報を認証される必要がなくてよい。しかしながら、幾つかのシナリオでは、別の例において後述するように、ピアツーピアシナリオにおけるように、両方のノードが互いに認証されることが望ましい場合がある。
<第2ノード7が共通シークレットを決定する>
方法400は、第2ノード7が、第2ノードのマスタ秘密鍵(V1S)及び決定性鍵(DK)に基づき第2ノードの第2秘密鍵(V2S)を決定するステップ470を更に含んでよい。第1ノード3により実行されるステップ330と同様に、第2ノードの第2秘密鍵(V2S)は、次式に従う、第2ノードのマスタ秘密鍵(V1S)及び決定性鍵(DK)のスカラー加算に基づくことができる。
Figure 2022500920
第2ノード7は、次に、第1ノード3と独立に、次式に基づき、第2ノードの第2秘密鍵(V2S)及び決定した第2ノードの第2公開鍵(P2C)に基づき共通シークレット(CS)を決定してよい480。
Figure 2022500920
<第1ノード3及び第2ノード7により決定される共通シークレット(CS)の証明>
第1ノード3により決定された共通シークレット(CS)は、第2ノード7により決定された共通シークレット(CS)と同じである。式11及び式14が同じ共通シークレット(CS)であることの数学的証明が以下に説明される。
第1ノード3により決定された共通シークレット(CS)を考えると、以下のように式10.1は式11に代入できる。
Figure 2022500920
第2ノード7により決定された共通シークレット(CS)を考えると、以下のように式12.1は式14に代入できる。
Figure 2022500920
ECC代数学は可換性なので、式15及び式16は等価である:
Figure 2022500920
<共通シークレット(CS)及びシークレット鍵>
共通シークレット(CS)は、第1ノード3と第2ノード7との間のセキュアな通信のために対称鍵アルゴリズムの中でシークレット鍵として又はシークレット鍵の基礎として使用されてよい。
共通シークレット(CS)は、楕円曲線点(x,y)の形式であってよい。これは、ノード3、7により合意された標準的な公に知られている演算を用いて標準的な鍵フォーマットに変換されてよい。例えば、x値は、AES256暗号化の鍵として使用され得る256ビットの整数であってよい。それは、160ビットの長さの鍵を必要とする任意の用途のためにRIPEMD160を用いて、160ビットの整数に更に変換され得る。
共通シークレット(CS)は、必要に応じて決定されてよい。重要なことに、共通シークレット(CS)はメッセージ(M)に基づき再決定できるので、第1ノード3は、共通シークレット(CS)を格納する必要がない。幾つかの例では、使用されるメッセージ(M)は、マスタ秘密鍵について要求されるのと同じレベルのセキュリティを有することなく、データストア13、17、19(又は他のデータストア)に格納されてよい。幾つかの例では、メッセージ(M)は公に利用可能であってよい。
しかしながら、幾つかの用途に依存して、共通シークレット(CS)が第1ノードのマスタ秘密鍵(V1C)と同じようにセキュアに保たれるならば、共通シークレット(CS)は、第1ノードに関連付けられた第1データストア(X)に格納され得る。
更に、開示のシステムは、単一のマスタ鍵暗号ペアに基づき、複数のセキュアなシークレット鍵に対応してよい複数の共通シークレットの決定を可能にし得る。この利点は、以下の例により説明され得る。
複数のセッションが存在し、それぞれが複数のそれぞれの共通シークレット(CS)に関連付けられる状況では、これらの複数のセッションに関連付けられたレコードを有し、それぞれの共通シークレット(CS)が将来に再決定できるようにすることが望ましい場合がある。知られているシステムでは、これは、複数のシークレット鍵をセキュアなデータストアに格納する必要があり、これは高価であり又は保守するのに不便である場合がある。
これに対して、本発明のシステムは、第1及び第2ノードにおいてマスタ鍵をセキュアに保つと同時に、他の決定性鍵又はメッセージはセキュアに又は非セキュアに格納されてよい。決定性鍵(DK)、又はメッセージ(M)が非セキュアに格納される代わりに、共通シークレットを決定するために必要なマスタ秘密鍵はセキュアなままなので、複数の共通シークレット(CS)はセキュアに保たれる。
方法は、例えばログインパスワードをセキュアに送信するために、一時的な通信リンクのための「セッション鍵」を生成するために使用されてもよい。
<ピアツーピア認証>
ピアツーピアシナリオでは、第1ノード3及び第2ノード7は、互いの認証情報を認証する必要があってよい。この例は、図6を参照して以下に記載される。本例では、検証された第1署名付きメッセージ(SM1)に基づき第1ノード3を認証するための方法300、400のステップは、上述のものと同様である。
しかしながら、第2ノード7により実行される方法400は、メッセージ(M)及び第2ノードの秘密鍵(V2S)に基づき、第2署名付きメッセージ(SM2)を生成するステップ462を更に含む。幾つかの代替では、第2署名付きメッセージ(SM2)は、第2メッセージ(M2)及び第2ノードの秘密鍵(V2S)に基づいてよく、第2メッセージ(M2)は第1ノード3と共有される。方法400は、通信ネットワーク5を介して、第1ノード3へ、第2署名付きメッセージ(SM2)を送信するステップ464を更に含む。
第1ノード3で、方法300は、第2ノード7から第2署名付きメッセージ(SM2)を受信するステップを含む。方法は、ステップ370で決定された第2ノードの第2公開鍵(P2S)により、第2署名付きメッセージ(SM2)上の署名を検証するステップ374を含む。方法300は、次に、第2署名付きメッセージ(SM2)を検証した結果に基づき、第2ノード7を認証するステップ376を含んでよい。この結果、第1ノード3及び第2ノード7が互いに認証する。
<決定性鍵の階層構造>
一例では、連続的な決定性鍵のシリーズが決定されてよく、各連続する鍵は、先行する決定性鍵に基づき決定されてよい。
例えば、連続的な単一目的の鍵を生成するためにステップ310〜370及び410〜470を繰り返す代わりに、ノード間の事前合意により、決定性鍵の階層構造を構築するために、両方のパーティにより、前に使用された決定性鍵(DK)が繰り返し再ハッシングされ得る。事実上、メッセージ(M)のハッシュに基づく決定性鍵は、次世代の決定性鍵(DK’)のための次世代のメッセージ(M’)であり得る。これを行うことは、共通シークレットの連続的な生成が、更なるプロトコルにより確立される送信、特に共通シークレットの各世代のための複数のメッセージの送信を必要とすることなく計算できるようにする。次世代の共通シークレット(CS’)は、以下のように計算できる。
先ず、第1ノード3及び第2ノード7の両方は、次世代の決定性鍵(DK’)を独立に決定する。これは、ステップ320及び420と同様であるが、以下の式により適応される。
Figure 2022500920
第1ノード3は、次に、上述のステップ370及び330と同様であるが、次式により適応されて、次世代の第2ノードの第2公開鍵(P2S’)及び第1ノードの第2秘密鍵(V2C’)を決定してよい。
Figure 2022500920
第2ノード7は、次に、上述のステップ430及び470と同様であるが、次式により適応されて、次世代の第1ノードの第2公開鍵(P2C’)及び第2ノードの第2秘密鍵(V2S’)を決定してよい。
Figure 2022500920
第1ノード3及び第2ノード7は、次に、それぞれ、次世代の共通シークレット(CS’)を決定してよい。特に、第1ノード3は、次世代の共通シークレット(CS’)を次式により決定する。
Figure 2022500920
第2ノード7は、次世代の共通シークレット(CS’)を次式により決定する。
Figure 2022500920
更なる世代(CS’’、CS’’’、等)は同じ方法で計算でき、チェーン階層構造を生成する。
この技術は、第1ノード3及び第2ノード7の両方が、元のメッセージ(M)又は最初に計算された決定性鍵(DK)、及びそれがどのノードに関連するか、を追跡することを要求する。これは公に知られた情報なので、この情報の保持に関してセキュリティ問題は存在しない。従って、この情報は、(ハッシュ値を公開鍵にリンクする)「ハッシュテーブル」に保持され、(例えばTorrentを用いて)ネットワーク5に渡り自由に分配されてよい。更に、階層構造の中のいずれの個々の共通シークレット(CS)も危険に晒されない場合、これは、秘密鍵V1C、V1Sがセキュアなままであるならば、階層構造の中の任意の他の共通シークレットのセキュリティに影響を与えない。
<鍵の木構造>
上述のようなチェーン(線形)階層構造と同様に、木構造の形式の階層構造を生成できる。
木構造によると、認証鍵、暗号鍵、署名鍵、支払い鍵、等のような異なる目的のための種々の鍵が、決定できる。それにより、これらの鍵は全部、単一のセキュアに維持されるマスタ鍵にリンクされる。
<実施形態の説明>
図7は、3つのノードA、B、Cの間で第1共通シークレットを共有するための、本開示を実現する方法を示し、図8は当該方法のフローチャートを示す。各ノードA、B、Cは、それ自体の秘密鍵/公開鍵ペア(S,P)に関連付けられ、例えばノードAの秘密鍵、公開鍵ペアは(S,P)である。各々の秘密鍵又は公開鍵は、図1〜6を参照して上述したのと同様の方法で、該ノードのそれぞれのマスタ秘密鍵又はマスタ公開鍵と決定性鍵とから導出されてよい。秘密−公開鍵ペアは、楕円曲線暗号システムの鍵ペアである。例えば、P=S×G、Gは楕円曲線基準点(generator point)である。、
ノードAとB、AとC、BとCの各ペアの間のセキュアな通信は、図8のステップ80で、図1〜6を参照して上述した方法を用いてノードの各ペアの間の第2の共通シークレットを決定することにより、確立される。図7に示す構成では、以下の関係が適用される。
Figure 2022500920
ノードA、B、Cの間で共有されるべき第1共通シークレットは、次の通りである。
Figure 2022500920
セキュアな通信チャネルがノードの各ペアの間で確立されると、図8のステップ82で、各ノードは、該ノードに知られている第2シークレットの結合の形式で、該第2シークレットに基づく秘密−公開鍵ペアを用いて、第1シークレットのシェアを暗号化する。これは、各ノードにより行われ、該ノードに知られている第2共通シークレットxのペアのXOR結合を符号化する。従って、ノードAについて、共通シークレットx及びxがノードAに知られているので、ノードAは、結合(x)XOR(x)を計算し、次に、それぞれの通信チャネルの秘密−公開鍵ペアのうちの秘密鍵x又はxに基づき、この結合を各他のノードと別個に符号化する。図8のステップ84で、ノードAは、次に、xに基づき暗号化された結合(x)XOR(x)をノードBへ、xに基づき暗号化された結合(x)XOR(x)をノードCへ、送信する。これらの暗号化されたシェアは、それぞれ次式により表される。
Figure 2022500920
同様に、共通シークレットx及びxはノードBに知られ、xは第3共通シークレットを表し、第2ノードB及び第3ノードCに共通である。ノードBは、結合(x)XOR(x)を計算し、次に、第2共通シークレットx及びxに基づき、この結合を各他のノードと別個に符号化する。図8のステップ84で、ノードBは、次に、xに基づき暗号化された結合(x)XOR(x)であるEx[(x)XOR(x)]をノードAへ、xに基づき暗号化された結合(x)XOR(x)であるEx[(x)XOR(x)]をノードCへ、送信する。ノードCは、一方で、結合x(XOR)xを計算し、次に、第2共通シークレットx及びxに基づき、この結合を各他のノードと別個に符号化する。図8のステップ84で、ノードCは、次に、xに基づき暗号化された結合(x)XOR(x)であるEx[(x)XOR(x)]をノードAへ、xに基づき暗号化されたEx[(x)XOR(x)]をノードBへ、送信する。
図8のステップ86で、ノードA、B、Cの各々は、他のノードから暗号化シェアを受信し、暗号化シェアを復号する。結果として、ノードの各々は、以下のように第1共有シークレット(x)XOR(x)XOR(x)を再構成するために必要な閾数のシェアを取得できる。
ノードAは、ノードBからシェア(x)XOR(x)を、ノードCから(x)XOR(x)を受信する。ノードAはx及びxを個別に知るので、図8のステップ88で、ノードAは、xと(x)XOR(x)との又はxと(x)XOR(x)とのXOR結合により、第1共通シークレット(x)XOR(x)XOR(x)を簡単に計算できる。同様に、ノードBは、ノードAからシェア(x)XOR(x)を、ノードCから(x)XOR(x)を受信する。ノードBはx及びxを個別に知るので、xと(x)XOR(x)との又はxと(x)XOR(x)とのXOR結合により、第1共通シークレット(x)XOR(x)XOR(x)を簡単に計算できる。更に、ノードCは、ノードBからシェア(x)XOR(x)を、ノードAから(x)XOR(x)を受信する。ノードCはx及びxを個別に知るので、xと(x)XOR(x)との又はxと(x)XOR(x)とのXOR結合により、第1共通シークレット(x)XOR(x)XOR(x)を簡単に計算できる。
上述の第2共通シークレットについて説明した方法と同様に、第1共通シークレット(CS)は、楕円曲線点(x,y)の形式であってよい。これは、ノード3、7により合意された標準的な公に知られている演算を用いて標準的な鍵フォーマットに変換されてよい。例えば、x値は、AES256暗号化の鍵として使用され得る256ビットの整数であってよい。それは、160ビットの長さの鍵を必要とする任意の用途のためにRIPEMD160を用いて、160ビットの整数に更に変換され得る。
XOR暗号化以外の手段により第1共通シークレットのシェアを分配することが可能である。しかしながら、XOR暗号化は、ブロックチェーントランザクションのスクリプトの中でブロードキャストされるとき、第2共通シークレットを難読化するという利点を提供する。その結果、第三者は、閾数の他の第2共通シークレットを知らずに第2共通シークレットを決定することができない。例えば、(x) mod nの形式の第2共通シークレットの単純な算術的乗算が使用できる。ここで、nは、使用される楕円曲線暗号システムの次数である。
更に、第1共通シークレットのシェアは、当業者に馴染みのあるシャミアのシークレット共有方式又はディーラ不要のシークレット共有方式を用いて多項式関数のシェアとして分配できる。第1共通シークレットのシェアが多項式関数のシェアである場合には、第1共通シークレットの効率的な復元は、図9に示すようなBerlekamp−Welchデコーダにより実行できる。図9を参照すると、Berlekamp−Welchデコーダ70は、多項式関数を取得するために、多項式関数のシェアの多項式補間を実行する。
送信されたデータの中の誤りを訂正するためのBerlekamp−Welchアルゴリズムの伝統的な使用において、メッセージmはエンコーダ72において、kバイトの詩リースに分割され、各バイトc0、c1、...、ck−1は整数モジュロpとして符号化される。次に、メッセージは、多項式関数により表される。
Figure 2022500920
多項式関数m(x)の値は、次に、(x,y)ペアのシリーズを生成するために、xの多数の知られている値について決定され、これは、つぎに送信機74により受信機76へ送信される。
受信機76において受信されたデータM(つまり、受信されたメッセージ)は、元のメッセージを表す多項式関数上の点に対応するペア(a,b,...,a,b)を含む。
Figure 2022500920
送信された(x,y)ペアのうちの幾つかが、送信中に壊れた場合、誤り位置多項式関数が以下のように定義できる。
Figure 2022500920
積多項式関数Q(a)は次式のように定義される。
Figure 2022500920
次に、受信した(a,b)ペアの各々について、bの値が壊れているか否かに拘わらず、
Figure 2022500920
(a,b)のn個の知られている値について、E(a)はe次の多項式関数であり、P(a)は(k−1)次の多項式関数なので、Q(a)は(e+k−1)次の多項式関数である。(a,b)の知られている値は、従って、線形系として表すことができる。
Figure 2022500920
線形系は2e+k−1個の未知の項を含む(E(x)からe個、及びQ(x)からe+k−1個)。その結果として、n>=2e+k−1ならば、Q(a)及びE(a)が決定できる。Q(a)及びE(a)が決定できるならば、元のメッセージm(x)を復元するために、P(a)が決定可能である。
従って、Berlekamp−Welchデコーダ70は、多項式関数上の点を表すペアを入力として受信し、多項式関数を出力することが分かる。デコーダ70は、従って、多項式関数により表される閾数のシェアから該多項式関数を決定するために、本開示ではラグランジュ(Lagrange)補間の代わりとして使用できる。
図10は、4つのノードA、B、C、Dの間で第1共通シークレットを共有する、本開示を実現する方法を示す。各ノードA、B、C、Dは、それ自体の秘密鍵/公開鍵ペア(S,P)に関連付けられ、例えばノードAの秘密鍵、公開鍵ペアは(S,P)である。
各々の秘密鍵又は公開鍵は、図1〜6を参照して上述したのと同様の方法で、該ノードのそれぞれのマスタ秘密鍵又はマスタ公開鍵と決定性鍵とから導出されてよい。秘密−公開鍵ペアは、楕円曲線暗号システムの鍵ペアである。例えば、P=S×G、Gは楕円曲線基準点(generator point)である。、
ノードAとB、AとC、AとD、BとC、BとD、CとDの各ペアの間のセキュアな通信は、図1〜6を参照して上述した方法を用いてノードの各ペアの間の第2共通シークレットを決定することにより、確立される。図10に示す構成では、以下の関係が適用される。
Figure 2022500920
Figure 2022500920
セキュアな通信チャネルがノードの各ペアの間で確立されると、図7及び8を参照して上述した方法と同様の方法で、各ノードは、該ノードに知られている第2シークレットの結合の形式で、該第2シークレットに基づく秘密−公開鍵ペアを用いて、第1シークレットのシェアを暗号化する。これは、各ノードにより行われ、該ノードに知られている第2共通シークレットxのペアのXOR結合を符号化する。従って、ノードAについて、共通シークレットx、x及びxがノードAに知られているので、ノードAは、結合
Figure 2022500920
を計算し、次に、それぞれの通信チャネルの秘密−公開鍵ペアのうちの秘密鍵x、x又はxに基づき、この結合を各他のノードと別個に符号化する。
本発明の実施形態では、別個の結合
Figure 2022500920
は図10において[Ashares]として省略して示される。
符号化された結合は、次に次式のように表される。
Figure 2022500920
ノードAは、次に、Ex[Ashares]をノードBへ送信し、それによりxが共通になり、Ex[Ashares]をノードCへ送信し、それによりxが共通になり、Ex[Ashares]をノードDへ送信し、それによりxが共通になる。
同様の方法で、ノードBは以下の結合を計算する。
Figure 2022500920
そして、暗号化して以下を送信する。
Figure 2022500920
ノードCは、以下の結合を計算する。
Figure 2022500920
そして、暗号化して以下を送信する。
Figure 2022500920
そして、ノードCは、以下の結合を計算する。
Figure 2022500920
そして、暗号化して以下を送信する。
Figure 2022500920
ノードA、B、C、Dの各々は、他のノードから暗号化シェアを受信し、適切な第2共通シークレットx、x、x、x、x、又はxに対応する秘密鍵を用いて暗号化シェアを復号し、その結果として、ノードの各々は、以下のように第1共通シークレット
Figure 2022500920
を再構成するために必要な閾数のシェアを取得できる。
ノードAは、ノードBからシェア
Figure 2022500920
を受信し、x、x、及びxを別個に知り、従って、
Figure 2022500920
から、x及びxをそれぞれ計算できる。
ノードAは、ノードCからシェア
Figure 2022500920
を受信し、x、x、及びxを別個に知り、従って、
Figure 2022500920
から、xを計算でき、結果としてx〜xを別個に知り、第1共通シークレットを計算できる。
同様の処理を行うことにより、他のノードB、C、Dの各々は、第2共通シークレットの全部を取得し、今やノードの全部の間で共有される第1共通シークレットを決定できる。
図11を参照すると、本開示の少なくとも一実施形態を実施するために使用され得るコンピューティング装置2600の説明のための簡略ブロック図が提供される。種々の実施形態で、コンピューティング装置2600は、上述の図示のシステムのうちのいずれかを実装するために使用されてよい。例えば、コンピューティング装置2600は、データサーバ、ウェブサーバ、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置として使用するために構成されてよい。図11に示すように、コンピューティング装置2600は、主メモリ2608及び永久記憶装置2610を含む記憶サブシステム2606と通信するよう構成され得る1つ以上のレベルのキャッシュメモリ及びメモリ制御部(集合的に2602とラベル付けされる)を備える1つ以上のプロセッサを含んでよい。主メモリ2608は、図示のように、動的ランダムアクセスメモリ(DRAM)2618及び読み出し専用メモリ(ROM)2620を含み得る。記憶サブシステム2606及びキャッシュメモリ2602は、本開示で説明されたようなトランザクション及びブロックに関連付けられた詳細事項のような情報の記憶のために使用されてよい。プロセッサ2602は、本開示で説明されたような任意の実施形態のステップ又は機能を提供するために利用されてよい。
プロセッサ2602は、1つ以上のユーザインタフェース入力装置2612、1つ以上のユーザインタフェース出力装置2614、及びネットワークインタフェースサブシステム2616とも通信できる。
バスサブシステム2604は、コンピューティング装置2600の種々のコンポーネント及びサブシステムが意図した通りに互いに通信できるようにするメカニズムを提供してよい。
バスサブシステム2604は、単一のバスとして概略的に示されるが、バスサブシステムの代替の実施形態は、複数のバスを利用してよい。ネットワークインタフェースサブシステム2616は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。
ネットワークインタフェースサブシステム2616は、幾つかの実施形態では、コンピューティング装置2600の他のシステムからデータを受信し及びそれへデータを送信するインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム2616は、データ技術者が、装置をネットワークに接続することを可能にする。その結果、データ技術者は、データセンタのような遠隔地にいがなら、データを装置へ送信し、データを装置から受信できる。
ユーザインタフェース入力装置2612は、キーボード、統合型マウス、トラックボール、タッチパッド、又はグラフィックタブレットのような指示装置、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンのようなオーディオ入力装置、及び他の種類の入力装置のような、1つ以上のユーザ入力装置を含んでよい。通常、用語「入力装置」の使用は、コンピューティング装置2600に情報を入力する全ての可能な種類の装置及びメカニズムを含むことを意図する。
1つ以上のユーザインタフェース出力装置2614は、ディスプレイサブシステム、プリンタ、又は音声出力装置のような非視覚ディスプレイ、等を含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、又はプロジェクションのような平面装置、又は他のディスプレイ装置を含んでよい。通常、用語「出力装置」の使用は、コンピューティング装置2600から情報を出力する全ての可能な種類の装置及びメカニズムを含むことを意図する。1つ以上のユーザインタフェース出力装置2614は、例えば、ユーザインタフェースを提示して、ここに記載したプロセス及び変形を実行するアプリケーションとのユーザ相互作用が適切であるとき、そのような相互作用を実現するために使用されてよい。
記憶サブシステム2606は、本開示の少なくとも1つの実施形態の機能を提供する基本プログラミング及びデータ構造を記憶するコンピュータ可読記憶媒体を提供してよい。アプリケーション(例えば、プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されると、本開示の1つ以上の実施形態の機能を提供し、記憶サブシステム2606に格納されてよい。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ2602により実行されてよい。記憶サブシステム2606は、更に、本開示に従い使用されるデータを格納するレポジトリを提供する。例えば、主メモリ2608及びキャッシュメモリ2602は、プログラム及びデータのための揮発性記憶を提供できる。永久記憶装置2610は、プログラム及びデータの永久(不揮発性)記憶を提供でき、磁気ハードディスクドライブ、取り外し可能媒体に関連付けられた1つ以上のフロッピディスクドライブ、取り外し可能媒体に関連付けられた1つ以上の光ドライブ(例えば、CD−ROM、又はDVD、又はBlue−Ray)ドライブ、及び他の同様の記憶媒体を含んでよい。このようなプログラム及びデータは、本開示に記載した1つ以上の実施形態のステップを実行するためのプログラム、及び本開示に記載したトランザクション及びブロックに関連付けられたデータを含み得る。
コンピューティング装置2600は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は後述する任意の他の装置を含む種々のタイプのものであってよい。さらに、コンピューティング装置2600は、1つ以上のポート(例えば、USB、ヘッドフォンジャック、光コネクタ、等)を通じてコンピューティング装置2600に接続可能な別の装置を含み得る。コンピューティング装置2600に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。したがって、この装置は、光信号を、処理のために装置を接続するポートを通じてコンピューティング装置2600に送信される電気信号に変換するよう構成されてよい。コンピュータ及びネットワークの絶えず変化する特性により、図11に示したコンピューティング装置2600の説明は、装置の好適な実施形態を説明する目的の特定の例としてのみ意図される。図11に示したシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
上述の実施形態は、本開示を限定するのではなく、説明すること、及び当業者は添付の特許請求の範囲により定められる本開示の範囲から逸脱することなく多くの代替的実施形態を考案できることに留意すべきである。特許請求の範囲において、括弧内の任意の参照符号は、請求項を限定することを意図しない。用語「有する」及び「含む」(comprising、comprises)等は、任意の請求項又は明細書全体に列挙されたもの以外の要素またはステップの存在を排除しない。本願明細書では、「有する」は「有する又は構成される」を意味し、「含む」は「含む又は構成される」を意味する。要素の単数の参照は、該要素の複数の参照を排除しない。逆も同様である。本開示は、幾つかの別個の要素を含むハードウェアにより、及び適切にプログラムされたコンピュータにより、実装できる。幾つかの手段を列挙する装置クレームでは、これらの手段のうちの幾つかは、1つの同じハードウェアアイテムにより具現化されてよい。単に特定の手段が相互に異なる従属請求項に記載されるという事実は、これらの手段の組み合わせが有利に使用されないことを示さない。

Claims (31)

  1. 複数のノードの間で第1共通シークレットを共有する方法であって、各々の前記ノードは、前記複数のノードに共通の暗号システムのそれぞれの第1秘密鍵及びそれぞれの第1公開鍵を有するそれぞれの非対称暗号第1鍵ペアに関連付けられ、前記第1共通シークレットは、前記ノードの各々の前記第1秘密鍵に基づき、前記方法は、
    少なくとも1つの第1ノードについて、複数の第2共通シークレットを決定するステップであって、各々の前記第2共通シークレットは、前記第1ノード及びそれぞれの第2ノードに共通であり、前記第1ノードにおいて前記第1ノードの前記第1秘密鍵及び前記第2ノードの前記第1公開鍵に基づき決定され、前記第2ノードにおいて前記第2ノードの前記第1秘密鍵及び前記第1ノードの前記第1公開鍵に基づき決定され、前記第1共通シークレットの複数のシェアはそれぞれ、少なくとも1つのそれぞれの第2共通シークレットに基づき、前記第1共通シークレットが閾数の前記シェアにアクセス可能になるが、前記閾数より少ないシェアにアクセス不可能になる、ステップと、
    少なくとも1つの第2ノードについて、少なくとも1つのそれぞれの第3共通シークレットを決定するステップであって、それぞれの第3共通シークレットは、前記第2ノード及びそれぞれの第3ノードに共通であり、前記第2ノードにおいて前記第2ノードの前記第1秘密鍵及び前記第3ノードの前記第1公開鍵に基づき決定され、前記第3ノードにおいて前記第3ノードの前記第1秘密鍵及び前記第2ノードの前記第1公開鍵に基づき決定され、前記第1共通シークレットの少なくとも1つのシェアは、少なくとも1つのそれぞれの前記第3共通シークレットに基づく、ステップと、
    少なくとも1つの前記第1ノードにおいて、前記第1ノードに知られている前記第1共通シークレットの少なくとも1つのシェアを、暗号システムのそれぞれの非対称暗号第2鍵ペアの第2秘密鍵に基づき、暗号化するステップであって、前記第2鍵ペアは前記第1ノードに知られているそれぞれの前記第2共通シークレットに基づく、ステップと、
    少なくとも1つの前記の暗号化されたシェアを、前記第1ノードから、前記第2鍵ペアが基づく前記第2共通シークレットが共通であるそれぞれの前記第2ノードへ送信するステップと、
    少なくとも1つの前記第1ノードにおいて、少なくとも1つの前記第2ノードから、前記第2ノードに知られており前記暗号システムのそれぞれの非対称暗号第2鍵ペアの第2秘密鍵に基づき暗号化された前記第1共通シークレットの少なくとも1つのそれぞれのシェアを受信するステップであって、前記第2鍵ペアは、前記第1ノード及び前記第2ノードに共通の前記第2共通シークレットに基づき、前記複数のノードの各々が前記第1共通シークレットの前記閾数のシェアに達することを可能にする、ステップと、
    を含む方法。
  2. 複数の前記の暗号化されたシェアは、それぞれ、対応する前記ノードに知られている複数の前記共通シークレットの結合に基づく、請求項1に記載の方法。
  3. 複数の前記の暗号化されたシェアは、対応する前記ノードに知られている複数の前記共通シークレットの少なくとも1つのそれぞれのXOR結合に基づく、請求項2に記載の方法。
  4. 複数の前記の暗号化されたシェアは、対応する前記ノードに知られている複数の前記共通シークレットの乗算結合に基づく、請求項2又は3に記載の方法。
  5. 前記乗算結合は(x,x,x) mod nの形式であり、x,x,xはノードに知られている共通シークレットであり、nは暗号システムの次数である、請求項4に記載の方法。
  6. 複数の前第1シェアは、第1多項式関数のシェアであり、前記第1共通シークレットは、少なくとも閾数の前記シェアの多項式補間により決定される、請求項1〜5のいずれか一項に記載の方法。
  7. 前記第1共通シークレットの少なくとも閾数のシェアを受信するステップであって、各々の前記シェアは前記第1多項式関数のそれぞれの値に対応する、ステップと、
    前記第1共通シークレットを決定するために、前記シェアの複数の知られている値から、前記第1多項式関数の係数を決定することにより、前記第1多項式関数を決定するステップと、
    を更に含む請求項6に記載の方法。
  8. 前記第1多項式関数を決定するステップは、誤り訂正アルゴリズムを実行するステップを含む、請求項7に記載の方法。
  9. 前記第1多項式関数を決定するステップは、Berlekamp−Welch復号アルゴリズムを実行するステップを含む、請求項8に記載の方法。
  10. 前記第1多項式関数を決定するステップは、
    誤り位置多項式関数及び第2多項式関数を定義するステップであって、前記第2多項式関数は、前記第1多項式関数と前記誤り位置多項式関数との積である、ステップと、
    前記部分署名の複数の知られている値から、前記第2多項式関数及び前記誤り位置多項式関数の係数を決定するステップと、
    前記第1共通シークレットを決定するために、前記第2多項式関数及び前記誤り検出多項式関数から前記第1多項式関数を決定するステップと、
    を含む、請求項7又は8に記載の方法。
  11. 少なくとも1つの前記暗号システムは、準同型特性を有する、請求項1〜10のいずれか一項に記載の方法。
  12. 少なくとも1つの前記暗号システムは、楕円曲線暗号システムである、請求項11に記載の方法。
  13. 少なくとも第1ノードのマスタ秘密鍵(V1C)と前記第1及び第2ノードと共通な決定性鍵(DK)とに基づき、少なくとも1つの前記第1ノードの前記第1秘密鍵を決定するステップと、
    前記第2ノードのマスタ公開鍵(P1S)と共通暗号システムを用いる前記決定性鍵(DK)の暗号化とに基づき、少なくとも1つの前記第2ノードの前記第1公開鍵(P2S)を決定するステップと、
    を更に含む請求項1〜12のいずれか一項に記載の方法。
  14. 前記決定性鍵(DK)は、メッセージ(M)に基づく、請求項13に記載の方法。
  15. 前記メッセージ(M)及び前記第1ノードの第1秘密鍵(V2C)に基づき、第1署名付きメッセージ(SM1)を生成するステップと、
    通信ネットワークを介して、前記第1署名付きメッセージ(SM1)を前記第2ノード(S)へ送信するステップであって、前記第1署名付きメッセージ(SM1)は、前記第1ノード(C)を認証するために、前記第1ノードの第1公開鍵(P2C)により検証できる、ステップと、
    を更に含む請求項14に記載の方法。
  16. 通信ネットワークを介して、前記第2ノード(S)から第2署名付きメッセージ(SM2)を受信するステップと、
    前記第2ノードの前記第1公開鍵(P2S)により、前記第2署名付きメッセージ(SM2)を検証するステップと、
    前記第2署名付きメッセージ(SM2)を検証した結果に基づき、前記第2ノード(S)を認証するステップと、
    を更に含み、
    前記第2署名付きメッセージ(SM2)は、メッセージ(M)又は第2メッセージ(M2と前記第2ノードの前記第1秘密鍵(V2S)とに基づき生成されたものである、請求項14又は15に記載の方法。
  17. メッセージ(M)を生成するステップと、
    通信ネットワークを介して、前記メッセージ(M)を前記第2ノードへ送信するステップと、
    を更に含む請求項14〜16のいずれか一項に記載の方法。
  18. 通信ネットワークを介して、前記第2ノード(S)から前記メッセージ(M)を受信するステップ、
    を更に含む請求項14〜17のいずれか一項に記載の方法。
  19. 通信ネットワークを介して、別のノードから前記メッセージ(M)を受信するステップ、
    を更に含む請求項14〜18のいずれか一項に記載の方法。
  20. データストア及び/又は前記第1ノード(C)に関連付けられた入力インタフェースから、前記メッセージ(M)を受信するステップ、
    を含む請求項14〜19のいずれか一項に記載の方法。
  21. 前記暗号システムは楕円曲線暗号(ECC)システムであり、前記第1ノードのマスタ公開鍵(P1C)及び第2ノードのマスタ公開鍵(P1S)は、それぞれ第1ノードのマスタ秘密鍵(V1C)及び第2ノードのマスタ秘密鍵(V1S)と生成元(G)との楕円曲線点積に基づく、請求項13〜20のいずれか一項に記載の方法。
  22. 通信ネットワークを介して、前記第2ノードのマスタ公開鍵(P1S)を受信するステップと、
    前記第1ノード(C)に関連付けられたデータストアに、前記第2ノードのマスタ公開鍵(P1S)を格納するステップと、
    を更に含む請求項13〜21のいずれか一項に記載の方法。
  23. 第1ノード(C)において、第1ノードのマスタ秘密鍵(V1C)及び第1ノードのマスタ秘密鍵(P1C)を生成するステップと、
    通信ネットワークを介して、前記第1ノードのマスタ公開鍵(P1C)を前記第2ノード(S)及び/又は他のノードへ送信するステップと、
    前記第1ノード(C)に関連付けられた第1データストアに、前記第1ノードのマスタ秘密鍵(V1C)を格納するステップと、
    を更に含む請求項13〜22のいずれか一項に記載の方法。
  24. 通信ネットワークを介して、前記第2ノードへ、少なくとも1つの前記共通シークレット(CS)を決定する方法のために共通暗号システムを使用することを示す通知を送信するステップ、を更に含み、
    前記第1ノードのマスタ秘密鍵(V1C)及び前記第1ノードのマスタ公開鍵(P1C)を生成するステップは、
    前記共通暗号システムで指定される許容範囲内のランダムな整数に基づき、前記第1ノードのマスタ秘密鍵(V1C)を生成するステップと、
    前記第1ノードのマスタ秘密鍵(V1C)の暗号化に基づき、前記第1ノードのマスタ公開鍵(P1C)を決定するステップと、
    を含む、請求項13〜23のいずれか一項に記載の方法。
  25. 前記共通暗号システムは、共通の生成元(G)を有する楕円曲線暗号(ECC)システムであり、前記第1ノードのマスタ公開鍵(P1C)は、次式:
    1C=V1C×G
    に従い、前記第1ノードのマスタ秘密鍵(V1C)及び前記共通の生成元(G)の楕円曲線点積に基づき決定される、請求項13〜24のいずれか一項に記載の方法。
  26. メッセージ(M)のハッシュを決定することに基づき、前記決定性鍵(DK)を決定するステップ、を更に含み、
    前記第1ノードの第1秘密鍵(V2C)を決定するステップは、次式:
    2C=V1C+DK
    に従う、前記第1ノードのマスタ秘密鍵(V1C)及び前記決定性鍵(DK)のスカラー加算に基づき、
    前記第2ノードの第1公開鍵(P2S)を決定するステップは、次式:
    2S=P1S+DK×G
    に従う、前記決定性鍵(DK)及び前記共通の生成元(G)の楕円曲線点積への前記第2ノードのマスタ公開鍵(P1S)の楕円曲線点加算に基づき、
    前記決定性鍵(DK)は、前の決定性鍵のハッシュを決定することに基づき得る、
    請求項13〜25のいずれか一項に記載の方法。
  27. 複数のノードの間のセキュアな通信の方法であって、前記方法は、
    請求項1〜26のいずれか一項に記載の方法により、複数のノードの間で第1共通シークレットを共有するステップと、
    前記第1共通シークレットに基づき対称鍵を決定するステップと、
    前記対称鍵により第1通信メッセージを暗号化して、暗号化第1通信メッセージにするステップと、
    通信ネットワークを介して、前記複数のノードのうちの1つのノードから前記複数のノードのうちの他のノードへ、前記暗号化第1通信メッセージを送信するステップと、
    を含む方法。
  28. 通信ネットワークを介して、前記複数のノードのうちの1つのノードから、暗号化第2通信メッセージを受信するステップと、
    前記対称鍵により前記暗号化第2通信メッセージを復号して、第2通信メッセージにするステップと、
    を更に含む請求項27に記載の方法。
  29. 複数のノードの間のオンライントランザクションを実行する方法であって、前記方法は、
    請求項1〜26のいずれか一項に記載の方法により、複数のノードの間で第1共通シークレットを共有するステップと、
    前記第1共通シークレットに基づき対称鍵を決定するステップと、
    前記対称鍵により第1トランザクションメッセージを暗号化して、暗号化第1トランザクションメッセージにするステップと、
    通信ネットワークを介して、前記複数のノードのうちの第1ノードから前記複数のノードのうちの他のノードへ、前記暗号化第1トランザクションメッセージを送信するステップと、
    を含む方法。
  30. システムであって、
    プロセッサと、
    前記プロセッサによる実行の結果として、前記システムに請求項1〜29のいずれか一項に記載の方法を実行させる実行可能命令を含むメモリと、
    を含むシステム。
  31. 実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに、請求項1〜29のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
JP2021514094A 2018-09-21 2019-09-11 コンピュータにより実施される、共通シークレットを共有するシステム及び方法 Pending JP2022500920A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1815396.5 2018-09-21
GBGB1815396.5A GB201815396D0 (en) 2018-09-21 2018-09-21 Computer implemented system and method
PCT/IB2019/057632 WO2020058806A1 (en) 2018-09-21 2019-09-11 Computer implemented system and method for sharing a common secret

Publications (2)

Publication Number Publication Date
JP2022500920A true JP2022500920A (ja) 2022-01-04
JPWO2020058806A5 JPWO2020058806A5 (ja) 2022-08-23

Family

ID=64024331

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021514094A Pending JP2022500920A (ja) 2018-09-21 2019-09-11 コンピュータにより実施される、共通シークレットを共有するシステム及び方法

Country Status (9)

Country Link
US (2) US11616641B2 (ja)
EP (1) EP3854052A1 (ja)
JP (1) JP2022500920A (ja)
KR (1) KR20210063378A (ja)
CN (1) CN112771832A (ja)
GB (1) GB201815396D0 (ja)
SG (1) SG11202102221SA (ja)
TW (1) TWI807103B (ja)
WO (1) WO2020058806A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220294647A1 (en) * 2019-10-18 2022-09-15 Tbcasoft, Inc. Distributed ledger-based methods and systems for certificate authentication
GB2605784A (en) * 2021-04-09 2022-10-19 Vodafone Group Services Ltd SIM cryptographic key storage
CN115037441B (zh) * 2022-07-07 2023-11-10 三未信安科技股份有限公司 一种基于同态运算的sm2协同签名方法、装置及系统
CN115080723B (zh) * 2022-08-23 2022-11-11 云南师范大学 一种阅读理解问题的自动生成方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE187588T1 (de) 1993-08-17 1999-12-15 R3 Security Engineering Ag Verfahren zur digitalen unterschrift und verfahren zur schlüsselübereinkunft
AU3073595A (en) 1994-07-29 1996-03-04 Certicom Corp. Elliptic curve encryption systems
AU5266596A (en) 1995-04-21 1996-11-07 Certicom Corp. Method for signature and session key generation
US6785813B1 (en) 1997-11-07 2004-08-31 Certicom Corp. Key agreement and transport protocol with implicit signatures
US5761305A (en) 1995-04-21 1998-06-02 Certicom Corporation Key agreement and transport protocol with implicit signatures
CA2176972C (en) 1995-05-17 2008-11-25 Scott A. Vanstone Key agreement and transport protocol with implicit signatures
GB9510035D0 (en) 1995-05-18 1995-08-02 Cryptech Systems Inc Strengthened public key protocols
US5999626A (en) 1996-04-16 1999-12-07 Certicom Corp. Digital signatures on a smartcard
US6078667A (en) 1996-10-10 2000-06-20 Certicom Corp. Generating unique and unpredictable values
CA2235359C (en) 1998-03-23 2012-04-10 Certicom Corp. Implicit certificate scheme with ca chaining
ATE438973T1 (de) * 2004-04-02 2009-08-15 Research In Motion Ltd Einsatz und provisionierung drahtloser in der hand gehaltener einrichtungen
US7958356B1 (en) * 2006-09-29 2011-06-07 Netapp, Inc. System and method for establishing a shared secret among nodes of a security appliance
EP2504973B1 (en) * 2009-11-25 2016-11-16 Security First Corp. Systems and methods for securing data in motion
US8510561B2 (en) * 2010-02-26 2013-08-13 Research In Motion Limited Methods and devices for computing a shared encryption key
EP2363977B1 (en) * 2010-02-26 2012-10-24 Research In Motion Limited Methods and devices for computing a shared encryption key
US20150213433A1 (en) 2014-01-28 2015-07-30 Apple Inc. Secure provisioning of credentials on an electronic device using elliptic curve cryptography
CN103825733A (zh) * 2014-02-28 2014-05-28 华为技术有限公司 基于组合公钥密码体制的通信方法、装置及系统
US10356054B2 (en) * 2014-05-20 2019-07-16 Secret Double Octopus Ltd Method for establishing a secure private interconnection over a multipath network
US20170249460A1 (en) * 2014-09-23 2017-08-31 The Regents Of The University Of California Provably secure virus detection
US9813234B2 (en) * 2015-05-11 2017-11-07 The United States of America, as represented by the Secretery of the Air Force Transferable multiparty computation
US9735958B2 (en) 2015-05-19 2017-08-15 Coinbase, Inc. Key ceremony of a security system forming part of a host computer for cryptographic transactions
US20160352710A1 (en) * 2015-05-31 2016-12-01 Cisco Technology, Inc. Server-assisted secure exponentiation
US9705859B2 (en) * 2015-12-11 2017-07-11 Amazon Technologies, Inc. Key exchange through partially trusted third party
AU2017223133B2 (en) 2016-02-23 2022-09-08 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
BR112018016234A2 (pt) * 2016-02-23 2019-01-02 Nchain Holdings Ltd método implementado por computador para controlar o acesso a um recurso, sistemas baseados em computador e método para controle de acesso a uma carteira digital
JP6495858B2 (ja) * 2016-04-04 2019-04-03 日本電信電話株式会社 サーバ装置、誤り訂正システム、誤り訂正方法、プログラム
CN106357401B (zh) * 2016-11-11 2019-09-10 武汉理工大学 一种私钥存储及使用方法
US10965448B1 (en) * 2017-05-03 2021-03-30 Board Of Trustees Of The University Of Illinois Dynamic distributed storage for scaling blockchain
IL256234A (en) * 2017-12-10 2018-01-31 Kipnis Aviad Computation using somewhat homomorphic encryption
US20190305940A1 (en) * 2018-03-28 2019-10-03 Ca, Inc. Group shareable credentials

Also Published As

Publication number Publication date
WO2020058806A1 (en) 2020-03-26
SG11202102221SA (en) 2021-04-29
EP3854052A1 (en) 2021-07-28
GB201815396D0 (en) 2018-11-07
US11616641B2 (en) 2023-03-28
CN112771832A (zh) 2021-05-07
US20210367772A1 (en) 2021-11-25
TW202025666A (zh) 2020-07-01
KR20210063378A (ko) 2021-06-01
US20230299947A1 (en) 2023-09-21
TWI807103B (zh) 2023-07-01

Similar Documents

Publication Publication Date Title
JP6515246B2 (ja) 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定
CN113424185B (zh) 快速不经意传输
CN108352015B (zh) 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移
JP7190481B2 (ja) 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法
US8670563B2 (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
TW201815123A (zh) 量子資料密鑰協商系統及量子資料密鑰協商方法
TWI807103B (zh) 用於共享公共秘密之電腦實施系統及方法
CN111066285A (zh) 基于sm2签名恢复公钥的方法
US11044082B2 (en) Authenticating secure channel establishment messages based on shared-secret
TWI807125B (zh) 用以分配數位簽署資料之份額的電腦實施系統及方法
CN109274502B (zh) 公钥加密及密钥签名的创建方法、设备及可读存储介质
JP2022528925A (ja) データを暗号化するためのコンピュータにより実施される方法及びシステム
JP2020532177A (ja) データの高度なセキュリティ、高速暗号化および、伝送のためのコンピュータ実装システムおよび方法
TW202232913A (zh) 共享金鑰產生技術
CN111355582A (zh) 基于sm2算法的两方联合签名和解密的方法及系统
US20240113885A1 (en) Hub-based token generation and endpoint selection for secure channel establishment
CN110572788B (zh) 基于非对称密钥池和隐式证书的无线传感器通信方法和系统
Barker et al. SP 800-56A. recommendation for pair-wise key establishment schemes using discrete logarithm cryptography (revised)
TWI761243B (zh) 群組即時通訊的加密系統和加密方法
JP7492508B2 (ja) コンピュータにより実施される、デジタル署名されたデータのシェアを分配するシステム及び方法
Konstantinos Himitsu Project The Beginning: Initial Architecture and Multiparty Support
CN117155564A (zh) 一种双向加密认证系统及方法
WO2023055582A1 (en) Round optimal oblivious transfers from isogenies
CN114785486A (zh) 一种密钥生成方法、装置及认证端设备
CN115277019A (zh) 一种敏捷的数字签名验签方法及系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220815

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220815

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240509