JP2022500920A

Computer implemented system and method for sharing a common secret

Abstract

A method of sharing a first common secret among multiple nodes (A, B, C) is disclosed to enable secure communication of blockchain transactions as in the Bitcoin blockchain. The method involves multiple second common secrets (S) for at least one first node (A).APC, SAIn the step of determining PB), each second common secret is common to the first node and each second node (B), and in the first node, the first secret key of the first node ( SA) And the first public key (PC, PB) of the second node, the first private key (SB, SC) of the second node and the first public key (SB, SC) of the first node in the second node. PA) Is determined. The third common secret (SBPC, SCPB) common to the second node (B) and the third node (C) is determined for the second node. The method includes, at the first node, a step of encrypting a share of the first common secret known to the first node and a step of transmitting the encrypted share to the second node. .. The method is a step of receiving an encrypted share of the first common secret from the second node in the first node, and each of the plurality of nodes accesses the first common secret. Further includes steps that allow the share of the threshold number of the first common secret to be reached.

JP2022500920A, drawing sheet 1
Sheet 1 of 59

Term

Projected expiry 11 September 2039.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

31 claims: 6 independent, 25 dependent

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