JP2022547876A - メッセージの署名のためのシステムおよび方法 - Google Patents
メッセージの署名のためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2022547876A JP2022547876A JP2022514614A JP2022514614A JP2022547876A JP 2022547876 A JP2022547876 A JP 2022547876A JP 2022514614 A JP2022514614 A JP 2022514614A JP 2022514614 A JP2022514614 A JP 2022514614A JP 2022547876 A JP2022547876 A JP 2022547876A
- Authority
- JP
- Japan
- Prior art keywords
- message
- validator
- signature data
- private key
- value
- 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
Links
- 238000000034 method Methods 0.000 title claims description 169
- 230000004044 response Effects 0.000 claims abstract description 24
- 230000004931 aggregating effect Effects 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims description 131
- 238000003860 storage Methods 0.000 claims description 24
- 239000000654 additive Substances 0.000 claims description 22
- 230000000996 additive effect Effects 0.000 claims description 22
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000009795 derivation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 15
- 230000015654 memory Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 150000001875 compounds Chemical class 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000004615 ingredient Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 239000012086 standard solution Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
メッセージのデジタル署名のためのリクエスタ装置は、単一の要求セッションにおいて、署名するためのメッセージを、ネットワークを介して複数のバリデータ装置(validator device)のそれぞれに送信し、ビーコン装置は、計算し、前記ビーコン装置によって計算され署名された署名データ値を、ネットワークを介して複数のバリデータ装置のそれぞれに送信し、前記複数のバリデータ装置のそれぞれの一つからの単一応答セッションにおいて、前記署名データ値および前記メッセージに対して計算されたそれぞれの部分オープン復号化値(partial-open decrypted value)を受信し、および、前記メッセージの前記デジタル署名を計算するために、前記複数のバリデータ装置から受信された前記部分オープン復号化値を集約する、ためのコードを実行する少なくとも1つのハードウェアプロセッサを備える。
Description
本出願は2019年9月4日に出願された米国仮特許出願第16/559,693号明細書の優先権の利益を主張し、その内容は、その全体が参照により本明細書に組み込まれる。
本発明はそのいくつかの実施形態ではネットワークセキュリティに関し、より具体的にはネットワークを介して送信されるメッセージのデジタル署名のためのシステムおよび方法に関するが、これに限定されるものではない。
一般にアクセス可能なネットワークなど、セキュアでないチャネルを介して送信されたメッセージは、発信者が実際にメッセージを送信したことを受信者が信頼できるようにするメカニズムを必要とする。
暗号化方法は、メッセージにデジタル署名するために使用される。
メッセージのデジタル署名は例えば、ブロックチェーン環境において、トランザクションの真正性、例えば、1つのデジタルウォレットから別のデジタルウォレットへの暗号通貨の転送を検証するために使用される。
第1の態様によれば、メッセージのデジタル署名のためのリクエスタ装置は、単一の要求セッションにおいて、署名するためのメッセージを、ネットワークを介して複数のバリデータ装置(validator device)のそれぞれに送信し、ビーコン装置は、計算し、前記ビーコン装置によって計算され署名された署名データ値を、ネットワークを介して複数のバリデータ装置のそれぞれに送信する、前記複数のバリデータ装置のそれぞれの一つからの単一応答セッションにおいて、前記署名データ値および前記メッセージに対して計算されたそれぞれの部分オープン復号化値(partial-open decrypted value)を受信し、および、前記メッセージの前記デジタル署名を計算するために、前記複数のバリデータ装置から受信された前記部分オープン復号化値を集約する、ためのコードを実行する少なくとも1つのハードウェアプロセッサを備える。
第2の態様によれば、メッセージのデジタル署名のためのシステムは、ビーコン装置によって計算され署名された署名データ値を、ネットワークを介して前記ビーコン装置から受信し、単一の要求セッションにおいて、リクエスタ装置から署名用のメッセージをネットワークを介して受信し、前記署名データ値と前記メッセージのそれぞれの部分オープン復号化値を計算し、および、単一の応答セッションにおいて、前記それぞれの部分オープン復号化値を前記リクエスタ装置に送信する、ためのコードを実行する少なくとも1つのハードウェアプロセッサをそれぞれ含む複数のバリデータ装置を備え、前記リクエスタ装置は、前記複数のバリデータ装置から受信した前記部分オープン復号化値を集約して、前記メッセージの前記デジタル署名を計算する。
第3の態様によれば、メッセージのデジタル署名のためのシステムは、(A)ビーコン装置によって計算され署名された署名データ値を、計算し、ネットワークを介して複数のバリデータ装置のそれぞれの1つに送信するためのコードを実行する、前記ビーコン装置の少なくとも1つのハードウェアプロセッサと、(B)単一の要求セッションにおいて、リクエスタ装置から署名用のメッセージを前記ネットワークを介して受信し、前記署名データ値と前記メッセージに対してそれぞれの部分オープン復号化値を計算し、単一の応答セッションにおいて、それぞれの部分オープン復号化値を前記リクエスタ装置に送信し、前記リクエスタ装置は、前記部分オープン復号化値を集約して、前記メッセージの前記デジタル署名を計算する、ためのコードを実行する少なくとも1つのハードウェアプロセッサをそれぞれ含む複数のバリデータ装置と、を備える。
第1、第2、および第3の態様のさらなる実装では、前記複数のバリデータ装置のそれぞれのバリデータ装置について、前記ビーコン装置によって提供されるそれぞれのバリデータ装置の固有の値を使用して計算され、前記メッセージを使用する第1の値と、前記固有の値および前記メッセージに基づいて前記それぞれのバリデータ装置によって提供される証明の指標を使用して計算される第2の値とを比較することによって、前記デジタル署名が検証されないときに、前記複数のバリデータ装置のうちのどれが悪意があるかを識別するためのコードをさらに備える。
第1、第2、および第3の態様のさらなる実装において、前記複数のバリデータ装置から受信された前記部分オープン復号化値を集約することによって計算された前記デジタル署名が前記メッセージの有効な署名であることを検証するためのコードをさらに備える。
第1、第2、および第3の態様のさらなる実装において、前記部分オープン復号化値から前記メッセージの暗号化されていない署名を計算するためのコードをさらに備える。
第1、第2、および第3の態様のさらなる実施形態では、前記リクエスタ装置は、前記複数のバリデータ装置のうちの1つである。
第1、第2、および第3の態様のさらなる実施形態では、前記メッセージが、前記複数のバリデータ装置のそれぞれのバリデータ装置による署名のために適格であるかどうかを、それぞれのルールのセットに従ってチェックするためのコードをさらに備える。
第1、第2、および第3の態様のさらなる実装では、前記ビーコン装置が、前記署名データ値に署名し、前記署名データ値が以前に使用されていないことを検証するためのコードをさらに備える。
第1、第2、および第3の態様のさらなる実装において、公開鍵(public key)と複数の分割秘密鍵(split-private key)のうちのそれぞれの分割秘密鍵と、を計算し、ネットワークを介して前記複数のバリデータ装置のそれぞれに送信するコードをさらに備え、前記署名データ値はデジタル署名アルゴリズム(DSA)プロセスを使用して前記ビーコン装置によって計算されたDSA秘密鍵を含み、前記DSA秘密鍵は、加法的準同形(additive homomorphic)で閾値復号プロセス(threshold decryption process)を含む暗号化プロセスに基づいて計算された前記複数の分割秘密鍵に分割される前記秘密鍵に対応する前記公開鍵で暗号化されたものの少なくとも1つであって、前記複数のバリデータ装置のそれぞれの1つは、前記署名データ値および前記メッセージに適用される前記それぞれの分割秘密鍵を使用して、前記それぞれの部分オープン復号化値を計算するためのコードをさらに含む。
第1、第2、および第3の態様のさらなる実装では、暗号化された値の乗算演算を可能にすることによって、レベル1準同型和秘密共有(level-1 homomorphic sum secret sharing)の特性を満たす秘密共有プロセスを使用して、署名データ値および秘密鍵が分割され、複数のバリデータ装置のそれぞれに共有される。
第1、第2、および第3の態様のさらなる実装では、分割され共有される前記署名データ値は、複数の署名データ値から選択され、分割され共有される秘密鍵は、前記複数のバリデータ装置が前記特定の署名データ値と選択される前記特定の秘密鍵を知ることなく、前記それぞれの部分オープン復号化値を計算するために使用される複数の秘密鍵から選択される。
第1、第2、および第3の態様のさらなる実装では、前記署名データ値は、加算に対し準同形である秘密共有プロセスを用いて、前記複数のバリデータ装置のそれぞれ1つと共有され、前記複数のバリデータ装置のそれぞれ1つは、前記秘密共有プロセスに基づいて、前記それぞれの部分オープン復号化値を計算するためのコードをさらに含む。
第1、第2、および第3の態様のさらなる実装では、前記複数の分割秘密鍵のいくつかは、複数のバリデータ装置のいくつかに対応しており、前記メッセージの前記デジタル署名は、前記複数のバリデータ装置の数の全てが、それぞれの部分オープン復号化値を提供する場合にのみ計算される。
第1、第2、および第3の態様のさらなる実装では、前記メッセージの前記デジタル署名を計算するようにそれぞれの部分オープン復号化値を提供するために必要とされるバリデータ装置の総数の中から、いくつかのバリデータ装置の最小セキュリティレベルを定義することと、前記最小セキュリティレベルを、一組のルールに従って最小閾値まで増加させることとをさらに備え、前記複数の分割秘密鍵のいくつか(a number of)は前記バリデータ装置の総数に対応し、前記メッセージの前記デジタル署名は、それぞれの部分オープン復号化値を提供する前記複数のバリデータ装置の数(the number of)が前記最小閾値を超える場合に計算される。
第1、第2、および第3の態様のさらなる実装では、少なくとも2つのグループに前記バリデータ装置の総数を分割し、前記少なくとも2つのグループの各々に対して固有の署名データ値を前記ビーコン装置によって提供する、ことをさらに備え、前記メッセージの前記デジタル署名は各グループの前記バリデータ装置のすべてが、前記少なくとも2つのグループの各々に対してそれぞれの固有の署名データ値を使用して計算されたそれぞれの部分オープン復号化値を提供する場合にのみ計算される。
第1、第2、および第3の態様のさらなる実装では、署名のためのメッセージは、単一の要求セッションにおいて、リクエスタ装置によって、前記ネットワークを介して前記複数のバリデータ装置のそれぞれ1つに送信され、前記署名データ値および前記メッセージのそれぞれの部分オープン復号化値は、前記複数のバリデータ装置のそれぞれ一つからの単一応答セッションにおいて前記リクエスタ装置によって受信され、前記複数のバリデータ装置から受信された前記部分オープン復号化値は、前記メッセージの前記デジタル署名を計算するために前記リクエスタ装置によって集約される。
第1、第2、および第3の態様のさらなる実施形態では、前記DSAプロセスは、楕円曲線DSA(Elliptic Curve DSA (ECDSA:ECDSA)を備える。
第1、第2、および第3の態様のさらなる実装では、前記DSAプロセスが、エドワード曲線DSA(Edwards-curve DSA:EdDSA)プロセスを備える。
第1、第2、および第3の態様のさらなる実装では、前記署名データ値は、以下の構成要素(i)加法的準同形であり、閾値復号化プロセスを含む暗号化プロセスに基づいて計算された前記複数の分割秘密鍵に分割される前記秘密鍵に対応する前記公開鍵で暗号化されたランダム値の逆数と、(ii)加法的準同型であり、閾値復号化プロセスを含む暗号化プロセスに基づいて計算された前記複数の分割秘密鍵に分割された前記秘密鍵に対応する前記公開鍵による以下の暗号化と、を含み、前記暗号化は、ランダム値の逆数と、前記ランダム値の累乗に乗算された既知の定数点のハッシュと、DSAプロセスを使用する前記ビーコン装置によって計算されたDSA秘密鍵と、の積である。
第1、第2、および第3の態様のさらなる実装では、前記署名データ値は、以下の構成要素:(i)加算に対し準同形である秘密共有プロセスを用いて複数の第1の構成要素に分割されたランダム値の逆数、および、(ii)前記秘密共有プロセスを用いて、前記ランダム値の逆数と、前記ランダム値の累乗に乗算された既知の定数点のハッシュと、前記EdDSAを用いて前記ビーコン装置により計算されたEdDSA秘密鍵と、の積を複数の第2の構成要素に分割することと、を含み、前記複数のバリデータ装置のそれぞれは、それぞれの第1および第2の構成部品を備える。
第1、第2、および第3の態様のさらなる実施形態では、前記署名データ値は、(iii)前記ランダム値の前記累乗に乗算された前記既知の定数点のハッシュをさらに含む。
第1、第2、および第3の態様のさらなる実装において、前記署名データ値の前記DSA秘密鍵は、導出インデックス値(derivation index value)を使用してベースDSA秘密鍵からDSA秘密鍵を導出することを可能にするhdツリーを使用して生成され、前記導出インデックス値は、前記署名データ値をローカルに計算するために前記複数のバリデータ装置に提供される。
第1、第2、および第3の態様のさらなる実装において、前記DSA秘密鍵は、EdDSA秘密鍵を備え、前記ベースDSA秘密鍵からDSA秘密鍵を導出することを可能にするhd(the hd-enabling deriving DSA-private keys from the base DSA-private key)は、前記ベースEdDSA秘密鍵からEdDSA秘密鍵を導出することを備える。
第1、第2、および第3の態様のさらなる実装において、前記DSA秘密鍵は、ECDSA秘密鍵を備え、前記ベースDSA秘密鍵からDSA秘密鍵を導出することを可能にするhd(the hd-enabling deriving DSA-private keys from the base DSA-private key)は、前記ベースECDSA秘密鍵からECDSA秘密鍵を導出することを備える。
第1、第2、および第3の態様のさらなる実施において、前記公開鍵と、前記複数の分割秘密鍵に分割された前記秘密鍵とは、閾値復号化プロセスに基づいて計算され、複数のDSA鍵ペアを計算し、複数のDSA鍵ペアのそれぞれの秘密鍵を暗号化して、複数の暗号化秘密鍵を作成し、前記複数の暗号化秘密鍵を前記複数のバリデータ装置に提供し、前記複数の暗号化秘密鍵のうちのひとつを選択し、前記署名データ値は選択された秘密鍵を含まず、選択された前記暗号化秘密鍵の指標を前記複数のバリデータ装置に提供し、前記部分オープン復号化値は前記選択された暗号化秘密鍵、および、選択された前記秘密鍵を含まない署名データ値を用いて計算される、ためのコードをさらに備える。
第1、第2、および第3の態様のさらなる実装において、前記DSAプロセスはEdDSAを備え、複数のEdDSA鍵ペアを計算し、前記複数のEdDSA鍵ペアのそれぞれの秘密鍵を暗号化して、複数の暗号化秘密鍵を作成し、前記複数の暗号化秘密鍵を前記複数のバリデータ装置に提供し、前記複数の暗号化秘密鍵のうちのひとつを選択し、前記署名データ値は選択された秘密鍵を含まず、選択された前記暗号化秘密鍵の指標を前記複数のバリデータ装置に提供し、前記部分オープン復号化値は前記選択された暗号化秘密鍵、および、選択された前記秘密鍵を含まない署名データ値を用いて計算される、ためのコードをさらに備える。
第1、第2、および第3の態様のさらなる実装において、前記DSAプロセスはECDSAを備え、複数のECDSA鍵ペアを計算し、前記複数のECDSA鍵ペアのそれぞれの秘密鍵を暗号化して、複数の暗号化秘密鍵を作成し、前記複数の暗号化秘密鍵を前記複数のバリデータ装置に提供し、前記複数の暗号化秘密鍵のうちのひとつを選択し、前記署名データ値は選択された秘密鍵を含まず、選択された前記暗号化秘密鍵の指標を前記複数のバリデータ装置に提供し、前記部分オープン復号化値は前記選択された暗号化秘密鍵、および、選択された前記秘密鍵を含まない署名データ値を用いて計算される、ためのコードをさらに備える。
第1、第2、および第3の態様のさらなる実施において、複数の暗号化秘密鍵を分割し、分割された前記複数の暗号化秘密鍵のいずれか1つを選択し、複数の署名データ値を分割し、分割された前記署名データ値のいずれかを選択し、暗号化された値の乗算演算を可能にすることによる、レベル1準同形秘密共有の特性を満たす秘密共有プロセスを用いて、前記選択された分割暗号化鍵と前記選択された分割署名データ値を複数のバリデータ装置に提供する、ことをさらに備える。
第1、第2、および第3の態様のさらなる実装において、前記レベル-1準同型秘密共有は、レベル-1準同型和秘密共有(level-1 homomorphic sum secret sharing)を備える。
第1、第2、および第3の態様のさらなる実装において、前記ビーコン装置は、前記メッセージによってトリガーされることなく、前記署名データ値の複数のインスタンスを計算し、送信する。
第1、第2、および第3の態様のさらなる実施形態において、前記ビーコン装置は、トラフィックが前記ビーコンから前記ネットワークに送信されるが、前記ネットワークから前記ビーコンへの方向には送信されないように、一方向に前記ネットワークに接続される。
第1、第2、および第3の態様のさらなる実施形態において、前記ビーコン装置は、前記リクエスタ装置として実装されるホットウォレットに接続されるコールドオフラインウォレットとして実装される。
第1、第2、および第3の態様のさらなる実施形態において、前記メッセージは、ブロックチェーン内のレコードとして記憶するための暗号通貨のトランザクションを含む。
第1、第2、および第3の態様のさらなる実施形態において、前記ビーコンは、前記署名値を繰り返し計算し、送信する。
第1、第2、および第3の態様のさらなる実装において、初期化プロセスの後、前記ビーコン装置は、異なる公開鍵、対応する秘密鍵、および署名データ値のインスタンスの定義された数を計算して送信し、前記複数のバリデータ装置は、前記事前定義された数のメッセージにサインアップする。
別段の定義がない限り、本明細書で使用されるすべての技術用語および/または科学用語は、本発明が関係する技術分野の当業者によって一般に理解されるものと同じ意味を有する。本明細書に記載されるものと類似または同等の方法および材料を、本発明の実施形態の実施または試験において使用することができるが、例示的な方法および/または材料を以下に記載する。矛盾する場合には、定義を含む特許明細書が優先する。さらに、材料、方法、および実施例は、例示にすぎず、必ずしも限定することを意図するものではない。
本発明のいくつかの実施形態は、添付の図面を参照して、単に例として本明細書に記載される。ここで図面を詳細に特に参照すると、示される詳細は、例として、および本発明の実施形態の例示的な議論の目的のためであることが強調される。この点に関して、図面を参照した説明は、本発明の実施形態がどのように実施され得るかを当業者に明らかにする。
本発明はそのいくつかの実施形態ではネットワークセキュリティに関し、より具体的にはネットワークを介して送信されるメッセージのデジタル署名のためのシステムおよび方法に関するが、これに限定されるものではない。
本発明のいくつかの実施形態の一態様はメッセージのデジタル署名のためのリクエスタ装置、システム、方法、および/またはコード命令(すなわち、データ記憶装置上に記憶され、(1つまたは複数の)ハードウェアプロセッサによって実行可能)に関する。リクエスタ装置は、単一の要求セッションで、複数のバリデータ装置のそれぞれに署名されるメッセージを送信する。メッセージに署名するには、少なくとも、バリデータ装置の総数のうちの事前定義された数、またはすべてのバリデータ装置が必要である。ビーコン装置は署名データ値を計算して署名し、署名値をバリデータ装置のそれぞれに送信する。各バリデータ装置は、署名データ値とメッセージに対して、それぞれの部分オープン復号化値を計算する。バリデータ装置は、単一の応答セッションで、各バリデータ装置からそれぞれの部分オープン復号化値を受信する。リクエスタ装置は、部分オープン復号化値を集約して、メッセージのデジタル署名を計算する。
本発明のいくつかの実施形態の態様はメッセージのデジタル署名のための、バリデータ装置、システム、方法、および/またはコード命令(すなわち、データ記憶装置上に記憶され、ハードウェアプロセッサによって実行可能)に関する。バリデータ装置の各々の一つ、またはバリデータ装置の総数の少なくとも最小数のバリデータ装置はビーコン装置によって計算された署名データ値のそれぞれのコピーを受信し、リクエスタ装置から署名のためのメッセージを受信する。署名用のメッセージは、単一の要求セッションでリクエスタ装置から受信される。各バリデータ装置は、署名データ値とメッセージのそれぞれの部分オープン復号化値を計算する。それぞれの部分オープンは、単一の応答セッションでリクエスタ装置に送信される。リクエスタ装置は、受信した複数の部分オープン復号化値を集約して、メッセージのデジタル署名を計算する。
本発明のいくつかの実施形態の一態様はメッセージのデジタル署名のためのシステム、装置、方法、および/またはコード命令(すなわち、データ記憶装置上に記憶され、ハードウェアプロセッサによって実行可能)に関する。ビーコン装置は署名データ値を計算し、署名する。署名データ値は、複数のバリデータ装置に提供される。バリデータ装置のそれぞれ1つ、またはバリデータ装置の総数の少なくとも最小数のバリデータ装置は署名データ値のそれぞれのコピーを受信し、リクエスタ装置から署名のためのメッセージを受信する。署名用のメッセージは、単一の要求セッションでリクエスタ装置から受信される。各バリデータ装置は、メッセージが例えば、一連のルールを満たす、それぞれのバリデータ装置による署名のために適格であることを検証することができる。各バリデータ装置は、署名データ値とメッセージのそれぞれの部分オープン復号化値を計算する。それぞれの部分オープンは、単一の応答セッションでリクエスタ装置に送信される。リクエスタ装置は、受信した複数の部分オープン復号化値を集約して、メッセージのデジタル署名を計算する。
署名データ値は加法的準同型秘密共有プロセス(例えば、www.semanticscholar.org/paper/Using-Level-1-Homomorphic-Encryption-to-Improve-DSA-Boneh-Gennaro/a57ae12ec05a71b22ce6504dce29c37c3f86d6fc参照して記載されるようなものであって、以下に記載する秘密共有プロセス、Shamirの秘密共有、および/またはSum secret共有のような)を使用して、および/またはマルチパーティ計算(MPC)閾値プロセス、例えばPaillierなどの閾値復号化の可能性を有する暗号化スキームを使用して、複数のバリデータ装置に提供されてもよい。
メッセージはデジタル署名アルゴリズム(DSA)プロセスに基づいて署名されてもよく、任意選択で、任意の変形のSchnorr署名、例えば、楕円曲線デジタル署名アルゴリズム(ECDSA)、および/またはエドワード曲線デジタル署名アルゴリズム(EdDSA)に基づいて署名されてもよい。
ビーコンは、悪意のある攻撃および/または改ざんに対して安全であるように設計され得る。任意選択で、ビーコンはトラフィックがビーコンからネットワークにのみ送信されるが、ネットワークからビーコンへの方向には送信されないように、一方向にネットワークに接続される。単方向セットアップは、ネットワークベースの悪意のあるアクセスに対する追加の保護層を提供する場合がある。ビーコンは一方向にネットワークに接続された暗号通貨を格納するコールドオフラインウォレット、例えば、リクエスタ装置として実装されたホットウォレットとして実装されてもよい。ビーコンは例えば、署名データ値を使用して署名されたメッセージによってトリガーされることなく、外部トリガーを必要とせずに、繰り返し署名データ値を計算し、送信することができる。代替的にまたは追加的に、ビーコン装置は初期化プロセスの後に、本明細書で説明するようにデータを送信する。
本明細書で説明されるシステム、方法、装置、および/またはコード命令の少なくともいくつかの実装形態はメッセージの計算効率のよいデジタル署名、例えば、公的にアクセス可能なネットワークにおけるトランザクションレコードのデジタル署名、例えば、暗号通貨トランザクションのデジタル署名の技術を改善する。本明細書に記載するシステム、方法、装置、および/またはコード命令の少なくとも一部の実装はサイバーセキュリティの技術的問題、特に、公的にアクセス可能なネットワークの性質のために暗号化されたプロセスを使用してデジタル署名されたメッセージに対処し、悪意のあるエンティティが例えば、取引における暗号通貨を盗もうとする試みにおいて、メッセージをハックおよび/またはアクセスしようとすることを可能にする。技術的問題は、悪意のある攻撃を防ぐために、メッセージを暗号化するために使用される暗号化プロセスがますます複雑になりつつあり、複雑な安全な暗号化プロセスを実装するために、ネットワーク上に置かれた計算負荷がますます実用的でなくなっている点にある。
一部の署名プロセスはMPCに基づいており、装置は複数の他のバリデータ装置がメッセージにデジタル署名するように要求する。MPC署名プロセスは共通署名を調整するために複数ラウンドのデータ送信を必要とし、例えば、各バリデータ装置は他の全てのバリデータ装置と通信する。共有署名を調整するためのデータはネットワーク環境において、複数の理由により、問題となる。例えば、複数ラウンドにわたるデータの送信、暗号化されたデータを複数回処理するため、および/または送受信されたデータを処理するための各バリデータ装置の重要な処理リソースのために、有意な遅延が発生する。ブロックチェーンのコピーをホストする各サーバーがブロックチェーンプロトコルの一部として暗号化プロセスを実行する必要があるため、メッセージがブロックチェーン環境(例:暗号通貨トランザクション)で署名されるとき、ネットワーク遅延および/またはプロセッサ利用は特に問題となる。
メッセージのデジタル署名のためのMPCプロセスの計算効率を改善する試みがなされてきた(例えば、ブロックチェーンに記録された暗号通貨トランザクションのような公衆ネットワーク環境において)が、かなりの数の調整ラウンドが依然として必要とされている。例えば、www.semanticscholar.org/paper/Using-Level-1-Homomorphic-Encryption-to-Improve-DSA-Boneh-Gennaro/a57ae12ec05a71b22ce6504dce29c37c3f86d6fcで説明されているプロセスでは、デジタル署名を実現するには4ラウンド(論理実装では4n*(n-1)が必要である。
MPCを使用したメッセージのセキュアなデジタル署名は資源集約的である。メッセージに署名するための計算量は著しい計算資源、例えば、署名エンティティ間でメッセージを送信するためのプロセッサ利用率、メモリ、および/またはネットワーク帯域幅を必要とする。1つの標準的な解決策は6回の通信ラウンド、あるいはおそらく4回の通信ラウンドを使ってメッセージに署名することができ、そこでは各通信ラウンドにおいて、複数の参加している署名者の1つが、他のすべての署名者にメッセージを送信する。このように、ネットワークを介して送信されるメッセージの総数はnが参加署名者の数を示し、さらに4ping時間の遅延を含む論理的な実施において、約4n*(n-1)メッセージとして表現することができる。実際には、署名者がすべての署名者がメッセージに署名したいときにすべてが始まると仮定することに留意されたい。その状態に到達するために、署名者は各署名者から他のすべての署名者(すなわち、n-1メッセージ)にさらにメッセージを追加し、ping時間を1つ追加する必要がある。さらに、各署名装置はそれらのそれぞれの署名タスク、例えば、ゼロ知識証明と加法的準同形暗号化を実行するために、複雑で低速な計算を実装する。対照的に、システム、方法、装置、および/またはコード命令の少なくともいくつかの実装は複数のバリデータ装置によってメッセージに署名するプロセスで使用されるビーコン装置によって出力される署名データ値に基づく、本明細書に記載するが、メッセージの数を2n-2(一部の実装では厳密)に減らし、2つのping時間(すべてのバリデータ装置に署名すべきものを知らせることを含む)に減らし、これはどの装置が署名可能であるかを見るための最初のpingを含まない。ある実装では、使われる暗号技術がゼロ知識証明なしで、計算効率的かつ/または高速である(例えば、Sum Secret Sharingを実装するとき)。本明細書で説明するように、ビーコン装置によって出力される署名データ値によって、計算効率および/または高速暗号化が可能になる。
本明細書に記載するシステム、方法、装置、および/またはコード命令の少なくとも一部の実装はバリデータ装置に署名データ値を提供するビーコン装置を提供し、これは、リクエスタ端末(署名を要求する)がバリデータ装置にデータを送信する単一の要求セッション、およびバリデータ装置がデータをリクエスタ端末に送り返す単一の応答セッションを含む、単一ラウンドにメッセージを署名するためのラウンド数を減らす。単一ラウンドは複数の調整ラウンドを必要とする他のプロセスと比較して、はるかに計算効率的である(例えば、プロセッサ利用、ネットワーク待ち時間、ネットワーク帯域幅に関して)。
署名データ値は例えば、本明細書で説明されるように、加法的準同型秘密共有プロセスおよび/または加法的準同型マルチパーティ暗号化プロセスを使用して、単一の送信セッションにおいて複数のバリデータ装置に提供される。
ビーコン装置は、データの信頼された、危険にさらされていない、真正な源を表す、改竄防止および/または安全であるように設計されてもよい。
ビーコン装置はネットワークを介してビーコン装置からバリデータ装置および/またはリクエスタ装置にのみデータが送信されるように、単方向の方法でネットワークに接続されてもよい。ビーコン装置は、他のネットワーク装置によって外部からアクセスされ得ない受動装置として設計され得る。ビーコン装置は例えば、所定の間隔でデータ(例えば、鍵、署名データ値)を生成および送信する(例えば、生成されたデータにタイムスタンプを付けることができる)ように自動的に動作するように設計することができる。ビーコン装置は例えば、短い時間隔でネットワークに時々接続される暗号通貨を格納するコールドウォレットとして実装されてもよい。
ビーコン装置によって計算され、したがって、ビーコン装置によって生成された信頼され、安全な、含まれていないデータを表す署名データ値は、ビーコン装置によって署名されたものとしてバリデータ装置によって検証される。署名データ値はデジタル署名アルゴリズム(DSA)プロセスを使用してビーコン装置によって計算されたDSA秘密鍵、オプションで楕円曲線(Elliptic-Curve)DSAおよび/またはエドワード曲線(Edwards-curve)DSAを含むことができ、ここで、秘密鍵は加法的準同形であり、閾値復号化プロセスを含む暗号化プロセスに基づいて計算された公開鍵(複数の分割秘密鍵に分割された秘密鍵に対応する)で暗号化される。代替的に、署名データは、本明細書で説明される秘密共有プロセスを使用して、バリデータ装置と共有される。
本明細書で説明されるシステム、方法、装置、および/またはコード命令の少なくともいくつかの実装形態は単一の応答セッションが後に続く単一の送信セッション、すなわち、単一のラウンドへの送信セッションおよび受信セッションの数を低減するために、ビーコン装置によって生成された署名データ値を使用することによって、メッセージに署名するためのマルチパーティ計算(MPC)プロセスの技術を改善する。対照的に、本明細書で説明するように、MPC署名のための他の手法は、複数の送信セッションおよび複数の受信セッション(「ラウンド」と呼ばれることもある)に基づく。本明細書に記載する単一の送信セッションおよび単一の受信セッションは、メッセージの署名に関与するデータの単一の一方向交換を指す。単一セッションは単一セッションを介したデータの送信のために通信チャネルをセットアップするために必要な双方向通信を指すものではなく、例えば、TCP/IPのような1つ以上のプロトコルに基づいて双方向通信が実行されると想定される。単一セッションは例えば、メッセージに署名するために、すべての当事者が4ラウンド(論理的な実施で)で他の当事者すべてのメッセージを送る必要がある場合、例えば、署名当事者の数を示す4n*(n-1)ラウンドになる、標準的なアプローチによって使用される複数のセッション(すなわちラウンド)とは対照的である。
本発明の少なくとも1つの実施形態を詳細に説明する前に、本発明は、その出願において、以下の説明に記載され、かつ/または図面および/または実施例に示される構成要素および/または方法の構成および配置の詳細に必ずしも限定されないことが理解されるべきである。本発明は他の実施形態が可能であり、または様々な方法で実施または実行されることが可能である。
本発明は、システム、方法、および/またはコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ読み取り可能なプログラム命令を有するコンピュータ読み取り可能な記憶媒体を含み得る。
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し記憶することができる有形装置であってもよい。コンピュータ可読記憶媒体は例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、または前述の任意の適切な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読出し専用メモリ(CD-ROM)、デジタル汎用ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードなどの機械的に符号化された装置、および上記の任意の適切な組み合わせが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は電波または他の自由に伝播する電磁波、導波管または他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を通って伝播する電磁波、またはワイヤを通って伝送される電気信号など、それ自体が一時的な信号であると解釈されるべきではない。
本明細書に記載するコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体から、またはネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークを介して、外部コンピュータまたは外部記憶装置に、それぞれの演算/処理装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含むことができる。
各演算/処理装置内のネットワークアダプタカードまたはネットワークインターフェースはネットワークからコンピュータ可読プログラム命令を受信し、それぞれの演算/処理装置内のコンピュータ可読記憶媒体に記憶するために、コンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ読み取り可能なプログラム命令はアセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであり得る。コンピュータ読み取り可能なプログラム命令は、ユーザのコンピュータ上で、部分的にはユーザのコンピュータ上で、スタンドアロンのソフトウェアパッケージとして、部分的にはユーザのコンピュータ上で、部分的にはリモートのコンピュータ上で、または全体的にはリモートのコンピュータまたはサーバー上で実行することができる。
後者のシナリオでは、遠隔コンピュータがローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに接続されてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は本発明の態様を実行するために、電子回路をパーソナル化するためにコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
後者のシナリオでは、遠隔コンピュータがローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに接続されてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は本発明の態様を実行するために、電子回路をパーソナル化するためにコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して本明細書で説明される。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装できることを理解されるだろう。
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供されて、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令がフローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作を実装するための手段を作成するように、機械を生成することができる。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、および/または他の装置が特定の方法で機能するように指示することができるコンピュータ可読記憶媒体に格納されてもよく、その結果、その中に格納された命令を有するコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製造品を備える。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、または他の装置上にロードされて、コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令がフローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作を実施するように、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他の装置上で実行させて、コンピュータ実施プロセスを生成することができる。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を備える、モジュール、セグメント、または命令の一部を表すことができる。一部の代替実装では、ブロックに記載されている機能が図に記載されている順序外で発生する場合がある。例えば、連続して示される2つのブロックは実際には実質的に同時に実行されてもよく、またはブロックが含まれる機能に応じて、時には逆の順序で実行されてもよい。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能または動作を実行するか、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせを実行する特殊目的ハードウェアベースのシステムによって実装され得ることにも留意されたい。
ここで、本発明のいくつかの実施形態による、ビーコン装置によって提供される署名データと、リクエスタ装置によって提供される単一の要求セッションと、複数のバリデータ装置のそれぞれからの単一の応答セッションとを使用して、メッセージにデジタル署名するための方法のフローチャートである図1を参照する。図1は、ビーコン装置、リクエスタ装置、バリデータ装置、および任意選択で第三者装置を含む、複数の装置間の全体的なシステムレベルデータフローを示す。本発明のいくつかの実施形態によれば、ビーコン装置204によって提供される署名データと、リクエスタ装置206によって提供される単一の要求セッションと、複数のバリデータ装置208の各々からの単一の応答セッションとを使用して、メッセージ202をデジタル署名するためのシステム200の構成要素のブロック図である図2も参照される。システム200の構成要素は1つまたは複数の装置(例えば、ビーコン装置204、リクエスタ装置206、複数のバリデータ装置208)の1つまたは複数のハードウェアプロセッサによって実行されるメモリに格納されたコード命令によって、図1および/または図3~6を参照して説明された方法の動作を実装することができる。
システム200は、1つ以上の以下の構成要素を含む:
*署名データ値をバリデータ装置206に提供するビーコン装置204。
*リクエスタ装置206はその署名のためにメッセージ202を受信し、複数のバリデータ装置208との調整によってメッセージ202に署名する。
*共にメッセージ202の署名を提供する複数のバリデータ装置208。
*説明を簡単かつ明確にするために、単一のバリデータ装置208が図2に示されているが、装置208は2つ以上のバリデータ装置を表すことが理解される。
*バリデータ装置208の数は所望のセキュリティレベルに従って選択することができ、そこでは、多数のバリデータ装置208がより高いセキュリティを提供する。
*第三者装置210は、メッセージ202をリクエスタ装置206にその署名のために提供することができる。
*ブロックチェーンノード212はそれぞれが、署名されたメッセージを記録するブロックチェーンのコピーを記憶する。例えば、ブロックチェーンは、署名されたトランザクションのレコードを記憶する。
*ビーコン装置204、リクエスタ装置206、バリデータ装置208、第三者装置210、およびブロックチェーンノード212は、ネットワーク230を介して互いに通信することができる。
*署名データ値をバリデータ装置206に提供するビーコン装置204。
*リクエスタ装置206はその署名のためにメッセージ202を受信し、複数のバリデータ装置208との調整によってメッセージ202に署名する。
*共にメッセージ202の署名を提供する複数のバリデータ装置208。
*説明を簡単かつ明確にするために、単一のバリデータ装置208が図2に示されているが、装置208は2つ以上のバリデータ装置を表すことが理解される。
*バリデータ装置208の数は所望のセキュリティレベルに従って選択することができ、そこでは、多数のバリデータ装置208がより高いセキュリティを提供する。
*第三者装置210は、メッセージ202をリクエスタ装置206にその署名のために提供することができる。
*ブロックチェーンノード212はそれぞれが、署名されたメッセージを記録するブロックチェーンのコピーを記憶する。例えば、ブロックチェーンは、署名されたトランザクションのレコードを記憶する。
*ビーコン装置204、リクエスタ装置206、バリデータ装置208、第三者装置210、およびブロックチェーンノード212は、ネットワーク230を介して互いに通信することができる。
システム200の構成要素は2つ以上の装置を統合することによって、および/または1つの装置が1つ以上の他の装置の特徴を実行することによって、異なるアーキテクチャに配置されてもよく、例えば、以下の1つまたは複数の組み合わせである:
*リクエスタ装置206は、バリデータ装置208の1つである。あるいは、バリデータ装置208のいずれか1つがリクエスタ206として動作してもよい。
*複数のバリデータ装置208は、ブロックチェーンノード212である。
*リクエスタ装置206は、バリデータ装置208の1つである。あるいは、バリデータ装置208のいずれか1つがリクエスタ206として動作してもよい。
*複数のバリデータ装置208は、ブロックチェーンノード212である。
ビーコン204および/またはリクエスタ装置206および/またはバリデータ装置208の間の(例えば、ネットワーク230を介した)通信チャネルは、セキュアであり得る。任意選択的に、ビーコン204がバリデータ(例えば、署名データ)をバリデータ装置208および/またはリクエスタ装置206に送信するとき、バリデータ装置208および/またはリクエスタ装置206は、送信されたデータを読み取ること、および/またはデータがビーコン204によって送信されたことを確認することを許可された唯一の装置である。セキュア通信チャネルは任意選択で、ネットワーク230を介して、例えば、直接ケーブルリンクとして、および/またはビーコン204と装置206および/または208との間で共通である対称暗号化鍵を使用して、および/またはビーコン204および装置206および/または208のそれぞれが公開鍵を使用して実装され得る。別の例では、セキュア通信チャネルが少なくとも1人の共有発明者を含む、2018年12月6日に出願された米国特許出願第62/775,942号「SECURE CONSENSUS OVER A LIMITED CONNECTION」を参照して説明される、信頼できるコントローラを使用して確立され、その全体が参照によって本明細書に組み込まれる。
各装置204、206、208、210、および/または212は例えば、モバイル装置、固定装置、デスクトップコンピュータ、サーバー、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルコンピューティング装置、眼鏡コンピューティング装置、時計コンピューティング装置、コンピューティングクラウド、仮想マシン、および仮想サーバーとして実装され得る。
ビーコン装置204は、コールドストレージウォレットとして実装され得ることに留意されたい。
各装置204、206および/または208は、各メモリ216A-Cに記憶された各コード218A-Cを実行する各プロセッサ214A-Cを含む。プロセッサ214A~Cは例えば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、カスタマイズされた回路、他のユニットとインターフェースするためのプロセッサ、および/または専用ハードウェアアクセラレータとして実装されてもよい。プロセッサ214A-Cは、単一プロセッサ、マルチコアプロセッサ、および/または並行処理用にアレンジされたプロセッサクラスタ(同質および/または異質なプロセッサアーキテクチャを含むことがある)として実行可能である。
それぞれのメモリ216A-Cは例えば、ハードドライブ、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、光ドライブ、外部記憶装置、および/または他の記憶装置として実施され得る。プロセッサ214A-Cは、本来それぞれのメモリ216A-Cによってコード指示として記憶されるのであろうハードウェア1つ以上の特徴に実装されるように設計されてもよいことに留意されたい。
ビーコン装置204はデータを記憶するデータ記憶装置220A、例えば、分割秘密鍵(秘密鍵を分割することによって生成される)を記憶する分割鍵ペアリポジトリ222Aと、加法的準同型であり、閾値復号プロセスを含む暗号化プロセスを使用して生成される公開鍵と、署名メッセージ202のために生成された公開DSA鍵と秘密DSA鍵のペアを記憶するDSA鍵ペアリポジトリ222Bと、計算された署名データ値を記憶する署名データ値リポジトリ222Cとを含むことができる。分割秘密鍵および/またはDSA鍵および/または署名データ値は本明細書に記載するように、提供される場合、リクエスタ装置206および/またはバリデータ装置208のそれぞれのデータ記憶装置によって記憶されてもよいことに留意されたい。
リクエスタ装置206は例えば、個別におよび/またはメッセージリポジトリ内に、その署名のために受信されたメッセージ202を格納することができるデータ記憶装置220Bを含むことができる。
バリデータ装置208は、各々、例えば分割鍵レポジトリ224にそれぞれ分割鍵を記憶するデータ記憶装置220Cを備えることができる。データ記憶装置220Cは他のデータ、例えば、受信した署名データ値および/または受信したメッセージ202を記憶することができることに留意されたい。
データ記憶装置220A-Cは例えば、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、不揮発性メモリ、磁気媒体、半導体記憶装置、ハードドライブ、リムーバブル記憶装置、光メディア(例えば、DVD、CD-ROM)、遠隔記憶サーバー、およびコンピューティングクラウドとして実施されてもよい。いくつかのデータおよび/またはコードはそれぞれのメモリにロードされた実行可能部分と共に、それぞれのデータ記憶装置に記憶されてもよいことに留意されたい。
ネットワーク230は例えば、有線ベースのネットワーク(例えば、イーサネット)、無線ベースのネットワーク、インターネット、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、仮想ネットワーク、セルラネットワーク、短距離無線ネットワーク、メッシュネットワーク、およびアドホックネットワークのうちの1つまたは複数として実現することができる。ネットワーク230は、1つ以上のプロトコルおよび/またはネットワークアーキテクチャを使用して実現することができる。
1つ以上の装置204、206および/または208はユーザにデータを提示する各ユーザインターフェース232A-Cを含み、また、例えば、1つ以上のデータの入力の仕組みを含む:タッチスクリーン、ディスプレイ、キーボード、クリック、クリック、音声活性ソフト、およびマイクロフォン。いくつかの装置はユーザインターフェースなしで作動することができ、例えば、バリデータ装置208は、ユーザインターフェースなしで作動することができる。
1つまたは複数の装置204、206、および/または208はネットワーク230と通信するためのそれぞれのネットワークインターフェース234A~C、例えば、アンテナ、ネットワークインターフェースカード、ワイヤポート、ソフトウェアで実装される仮想インターフェース、ネットワーク接続性のより高い層を提供するネットワーク通信ソフトウェア、アプリケーションプログラミングインターフェース(API)、ソフトウェア開発キット(SDK)、および/または他の実装のうちの1つまたは複数などの物理的および/または仮想コンポーネントを含む。
102において、ビーコン装置は署名データ値を提供し、署名する。
署名データ値、およびオプションで関連するタイムスタンプはネットワーク上の複数のバリデータ装置に提供される(例えば、送信される)。
署名データ値は例えば、ビーコンがネットワークに直接接続されていないが、例えば、ビーコン装置がホットウォレットとして実装されたリクエスタ装置に接続されたコールドウォレットとして実装されるリクエスタ装置に接続されたコールドウォレットとして実装される実装において、リクエスタ装置を介して複数のバリデータ装置に提供されてもよい。例えば、リクエスタ装置は、ビーコン装置から署名データ値を受信する。リクエスタ装置は署名データ値が以前に使用されていないことをチェックしてもよい。例えば、以前に使用された署名データ値のデータセットでルックアップ演算を実行してもよい。別の例は、ビーコンが各署名データと共に送信するシーケンス番号をチェックすることである。リクエスタ装置は、ネットワークを介して複数のバリデータ装置に署名データ値を送信してもよい。
ビーコンは、バリデータ装置および/またはリクエスタ装置によって信頼されていると見なされる。
ビーコンは署名値を繰り返し計算および/または生成することができ、署名値は、さらに署名され、かつ/またはバリデータ装置にさらに提供されることができる。例えば、新しい署名値は定義された時間隔ごと(例えば、マイクロ秒ごと、秒ごと、分ごと、時間ごと、または他の時間隔ごと)に周期的に生成される。代替的にまたは追加的に、ビーコンは例えば、初期化(例えば、ビーコンのリセット、ネットワーク接続ノードへのビーコンの接続)時に、定義されたイベント中に署名値を生成する。代替的にまたは追加的に、初期化プロセス(例えば、ビーコンのリセット、ビーコンのネットワーク接続ノードへの接続)の後、ビーコン装置は異なる署名データ値、および任意選択で異なる公開鍵、ならびに対応する秘密鍵の定義された数のインスタンスを計算し、提供する(加法的準同型閾値暗号化を実装する場合)。複数のインスタンスにより、バリデータ装置は、事前定義された数のインスタンスまでの数のメッセージに署名できる。
ビーコン装置は、悪意のある攻撃、特にネットワーク上で発生した悪意のある攻撃に対するセキュリティを強化するように設計されている。任意選択的に、ビーコン装置はトラフィックがビーコンからネットワークに送信されるが、ネットワークからビーコンへの方向には送信されないように、一方向にネットワークに接続される。例えば、ビーコン装置は、ネットワーク上で署名値(および/または鍵のような他のデータ)を生成および送信する「ダム」装置として設計され、オプションとして、接続が検出されると、それを送信する。一方向機能は、ネットワークを介する攻撃のリスクを低減および/または防止する。任意選択的に、ビーコン装置は、任意選択的にリクエスタ装置として実装される、実装されるホットウォレットを介してネットワークに任意選択的に接続されるコールドオフラインウォレットとして実装される。ホットウォレットは、ネットワークに接続されているので、悪意のある攻撃を受けやすく、したがって、完全に信頼することができないことに留意されたい。コールドウォレットの実装は例えば、取引を実行するために必要とされるときに、短い時間隔の間コールドウォレットをホットウォレットに接続することによって、攻撃のリスクを低減する。コールドウォレットはオフラインに保たれ、残りの時間はネットワークから切断され、攻撃者によるネットワーク経由のアクセスを防ぐ。任意選択で、ビーコン装置はメッセージによってトリガーされることなく、および/または署名データが必要であることを示す他の指示、例えば、一定の間隔および/または初期化イベントで署名値を提供することなく、署名データ値の1つ以上のインスタンス(および/または異なる公開鍵のインスタンス、対応する秘密鍵などの他のデータ)を提供する。メッセージからの切断は例えば、メッセージが悪意のある攻撃として生成される状況を防ぐことによって、悪意のある活動のリスクをさらに低減することができる。あるいは、ビーコン装置が常に生きているように設定され、複数の署名データ値を生成してもよい。
署名データ値は例えば、暗号化プロセスおよび/または秘密共有プロセスを使用して、バリデータ装置に提供されてもよい。秘密共有プロセスは、加法的準同形であってもよい。
秘密共有プロセスは例えば、ECDSAおよび/またはEdDSAのために実装されてもよい。
以下に記載する秘密共有プロセスは、複数の署名データ値から選択された特定の署名データ値の各一対と、選択された特定の署名データ値と特定の秘密鍵の一対をバリデータ装置が知らなくても、それぞれの部分オープン復号化値を計算するために使用される複数の秘密鍵から選択された特定の秘密鍵と共に使用される。
以下に記載する秘密共有プロセスはNで示される多数の参加装置(例えば、バリデータ装置)の間で2つの秘密値を分割し共有するように設計され、N個の参加装置のすべてが、秘密を再構築するために必要とされる。記述された秘密共有プロセスを用いて、N個の参加装置のN-1が悪意のある場合でも、N-1個の悪意のある装置は、たとえ悪意のある相互の協調を行っても秘密を得ることができない。
本明細書に記載する秘密共有プロセスはレベル1準同型秘密共有を満たし、これは、秘密共有プロセスを使用する秘密の分割が秘密の分割部分の間で、全体(すなわち、非分割)秘密の演算に等しい単一の乗算演算を可能にするという特性を指す。
本明細書に記載する秘密共有プロセスは暗号化された値の乗算演算を可能にすることによって、レベル1準同形秘密共有(例えば、レベル1準同形秘密共有)の特性を満たす本明細書に記載する秘密共有プロセスを用いて、第1の暗号化値および分割された第2の暗号化値のいずれか1つ(例えば、複数の暗号化秘密鍵を分割し、分割された暗号化秘密鍵の値のいずれか1つを選択し、分割された署名データ値のいずれか1つを選択し、選択された分割された第1および第2の値(例えば、選択された暗号化鍵および選択された分割署名データ値)を複数の装置(例えば、バリデータ装置)に提供することを可能にする。
本明細書に記載する秘密共有プロセスは秘密に保たれることが必要とされる2つの秘密間の乗算演算を必要とする暗号プロセス(例えば、ECDSA)のために実装され得る。各参加装置(例えば、バリデータ装置)が秘密のそれぞれの部分を処理し、結果を配布するとき、N-1個の参加装置が悪意を持っている場合であっても、秘密が利用可能にされないように、暗号プロセスを秘密のまま適用することができる。
秘密共有プロセスは、秘密に保たれる2つの値k-1と、示される秘密鍵とのために設計される。k-1および秘密鍵dのうちの少なくとも1つの値を知ることにより、秘密鍵を制御することが可能になる。
k-1およびdのための秘密共有メカニズムプロセスがr、mで示される定義された(例えば、合意された)定数を用いて、各参加装置(例えば、バリデータ装置)がk-1およびdのための共有を有するように、ここで説明される。実数値k-1・(m+r*d)を生成するために使用できるk-1・(m+r*d)の共有を計算することができる。秘密共有プロセスはk-1とdの実際の値を隠蔽し、これはすべての参加装置の悪意のある協調なしには復元できない。
秘密共有プロセスはk-1の複数の異なる値およびdの複数の異なる値を有することを可能にし、その結果、秘密共有メカニズムは、どのペアが使用されるかを知ることなく、k-1およびdの共有の各ペアに対して機能することができる。
上記に基づいて、共有は、レベル1準同型暗号化を提供するように選択されてもよい。記載された秘密共有の実施を確保するために、以下のプロパティを保持する共有(例えば、全ての共有)から、一様な選択が実行されてもよい:
記載された秘密共有の実施は、t-1個の好奇心のある参加者に対して安全である。その秘密共有のための特定の選択された秘密鍵dについては複数のk-1共有が存在してもよく、その秘密共有のための特定の選択されたk-1については複数の秘密鍵dの共有が存在してもよい。以下に記載する秘密共有プロセスは、任意の対とのレベル1準同型秘密共有プロパティを依然として保持する任意のk-1について、任意のdについての複数の共有および複数の共有を生成する。
ここで、daはdの共有を示し、kaはk-1の共有を示す。k-1.c*kaに各共有を乗じることを意味し、c+kaは各共有にc/nを加えることを意味し、ka′+kaはベクトル加算(r=ka′+ka:ri=ka′i+kai)と同じことを意味する。
cで示される任意の定数に対して、以下が成り立つ:
R(da,ka)->R(da,c*ka)
R(da,ka)->R(c*da,ka)
R(da,ka)->R(da,c*ka)
R(da,ka)->R(c*da,ka)
従って、c1,2で表される定数の場合:
R(da,ka)->R(c1*da,c2*ka)
R(da,ka)->R(c1*da,c2*ka)
上記に基づいて、複数のd個の共有で動作する複数のk-1個の共有が存在し得ることに留意されたい。しかしながら、問題は各参加者装置(例えば、確認装置)がk-1の各々の間の線形比を知ることである。
以下に留意されたい:
(R(da,ka),R(da,ka′))->R(da,ka+ka′)
(R(da,ka),R(da′,ka))->R(da+da′,ka)
(R(da,ka),R(da,ka′))->R(da,ka+ka′)
(R(da,ka),R(da′,ka))->R(da+da′,ka)
以下の関係が成り立つ場合(例えば、選択および/または計算される場合):
R(da,ka),R(da,ka′),R(da′,ka),R(da′,ka′),sum(ka)≠0,sum(ka′)≠0,sum(da)≠0,sum(da′)≠0
任意の定数はc1,c2,c3,c4と表され、
R(c1*da+c2*da′,c3*ka+c4*ka′)
である。
R(da,ka),R(da,ka′),R(da′,ka),R(da′,ka′),sum(ka)≠0,sum(ka′)≠0,sum(da)≠0,sum(da′)≠0
任意の定数はc1,c2,c3,c4と表され、
R(c1*da+c2*da′,c3*ka+c4*ka′)
である。
上記の4つの線形方程式が成り立つ場合、(フィールドのサイズ)鍵共有オプションが提供される。
上述の鍵共有プロセスは、以下のように要約することができる:
与えられる:(da,ka),R(da,ka′),R(da′,ka),R(da′,ka′)
与えられる:あるkおよび/またはある秘密鍵dのうちの少なくとも1つ
生成する:均一に、c1
計算する:c2=(k-c1*sum(ka)/(sum(ka′))
新しい鍵の共有が示される:c1*ka+c2*ka′
以下は、上述の秘密共有プロセスの数学的証明である:
与えられる:(da,ka),R(da,ka′),R(da′,ka),R(da′,ka′)
与えられる:あるkおよび/またはある秘密鍵dのうちの少なくとも1つ
生成する:均一に、c1
計算する:c2=(k-c1*sum(ka)/(sum(ka′))
新しい鍵の共有が示される:c1*ka+c2*ka′
以下は、上述の秘密共有プロセスの数学的証明である:
秘密共有プロセスの他の例は例えば、Shamirの秘密共有(例えば、cs.jhu.edu/~sdoshi/crypto/papers/shamirturing.pdfを参照して説明される)、および/またはSum secret sharingに従って実装されることを含む。
暗号化プロセスは例えば、ビーコンとバリデータ装置との間の通信チャネルがセキュアでない場合に使用することができる。秘密共有プロセスは例えば、ビーコンとバリデータ装置との間の通信チャネルが安全である場合に使用されてもよい。
閾値復号プロセスは例えば、Paillierプロセスに基づいて実施されてもよい。分割鍵を使用する閾値復号化プロセスでは、例えばiacr.org/archive/pkc2003/25670279/25670279.pdfを参照して説明されるように、バリデータ装置は暗号化された署名データを相互に共有せずに開くことができる。
数学的形式に関して、暗号化プロセスおよび/または秘密共有プロセスの加法的準同形特性は以下のように記述され得る:E(a)およびE(b)で示される2つの暗号化された値が与えられると、両方とも同じ秘密鍵で暗号化され、+Eとしてマークされるバイナリ演算はE(a)+EE(b)=E(a+b)である。*Eとしてマークされた別の演算はa*EE(b)=E(a*b)であり、ここで、aは、メッセージ空間の任意のメンバーを示す。
任意選択で、暗号化プロセスが実施されるとき、ビーコン装置は公開鍵(例えば、異なる公開鍵の複数のインスタンス)と、対応する秘密鍵(例えば、公開鍵の各々に対する対応する秘密鍵)とを、オプションで、例えば、Paillierに基づいて、閾値暗号化プロセスを使用して生成する。秘密鍵は複数の分割鍵に分割され、それぞれが異なるバリデータ装置に提供される。公開鍵は、すべてのバリデータ装置および/またはリクエスタ装置に提供され得る。
任意選択で、別の鍵ペアが例えば、EdDSAおよび/またはECDSAに基づいて作成される。
署名データ値の異なる実装が使用されてもよい。
任意選択で、DSAが実装される場合、署名データ値は、DSA秘密鍵を含む。DSA秘密鍵は、複数の分割秘密鍵に分割された秘密鍵に対応する公開鍵で暗号化できる。
分割秘密鍵の数はバリデータ装置の数に対応する(例えば、等しい、少なくとも等しい)ことができる。
任意選択で、署名データが暗号化プロセスに基づく場合、署名データ値は、1つまたは複数(任意選択ですべて)の以下の構成要素を含む:(i)分割秘密鍵に分割される秘密鍵に対応する公開鍵で暗号化されたランダム値の逆数、(ii)複数の分割秘密鍵に分割された秘密鍵に対応する公開鍵を使用した次の暗号化:ランダム値の逆数と、ランダム値の累乗に乗算された既知の定数点のハッシュの積、およびDSAプロセスを使用してビーコン装置によって計算されたDSA秘密鍵、および(iii)ランダム値の累乗に乗算された既知の定数点のハッシュ。
以下で使用される数学的表記を理解するのを助けるために、以下は(例えば、112で計算された)メッセージの最終的に計算された署名の例示的な数学的表現である:
dがある秘密鍵を表し、mがメッセージを表し、gが既知の定数点を表し、kが乱数を表し、Hがハッシュ関数(例えば、sha256)を表す。H′(p)はDSAアルゴリズムの一部である点pの特定のハッシュを示す(例えば、ECDSAにおいて、H′は、pのx座標を示す)
(r,s)=(H′(gk),k-1*(H(m)+H′(gk)*d))
これは、以下と同じであることに注意されたい:
(r,s)=(H′(gk),k-1*H(m)+k-1*H′(gk)*d)
(r,s)=(H′(gk),k-1*(H(m)+H′(gk)*d))
これは、以下と同じであることに注意されたい:
(r,s)=(H′(gk),k-1*H(m)+k-1*H′(gk)*d)
以下はビーコン(例えば、ECDSA)によって実行される閾値暗号化プロセスおよび/またはDSAに基づいて署名データを生成するための例示的なプロセスである。
1.kで示されるランダムな値を選択する。
2.k-1を計算する、任意選択で、基礎となるグループ内の値kの逆数を示す、例えば、k-1mod(nのある値)、ここで、nは、バリデータ装置の数を表してもよい。
3.E(k-1)で示される値を生成するために、公開閾値加法的準同型暗号化(例えば、Paillier)鍵を用いて暗号化する。代替的に、k-1が加法的準同型秘密共有プロセス(例えば、Shamir Secret Sharingおよび/またはSum Secret Sharing)を使用して秘密共有される。演算は、E()が加法的準同型秘密共有プロセスを使用して共有される閾値加法的準同型暗号化プロセスおよび/または秘密を用いた暗号化を指すことができることを示す。
4.gkを計算する、ここで、gは既知の定数点を表す。
5.k-1*H′(gk)を計算する。
6.E(k-1*H′(gk)*d)で示される値を生成するために、公開閾値暗号化(例えば、Paillier)鍵で暗号化する。代替的に、値は秘密共有される。
7.署名データ値は、E(k-1)、H′(gk)、E(k-1*H′(gk)*d)と数学的に示される値を含む。代替的に、署名データ値は、E(k-1)、E(k-1*H′(gk)*d)として数学的に示される。(この場合、H′(gk)はリクエスタにのみ送信される)。
1.kで示されるランダムな値を選択する。
2.k-1を計算する、任意選択で、基礎となるグループ内の値kの逆数を示す、例えば、k-1mod(nのある値)、ここで、nは、バリデータ装置の数を表してもよい。
3.E(k-1)で示される値を生成するために、公開閾値加法的準同型暗号化(例えば、Paillier)鍵を用いて暗号化する。代替的に、k-1が加法的準同型秘密共有プロセス(例えば、Shamir Secret Sharingおよび/またはSum Secret Sharing)を使用して秘密共有される。演算は、E()が加法的準同型秘密共有プロセスを使用して共有される閾値加法的準同型暗号化プロセスおよび/または秘密を用いた暗号化を指すことができることを示す。
4.gkを計算する、ここで、gは既知の定数点を表す。
5.k-1*H′(gk)を計算する。
6.E(k-1*H′(gk)*d)で示される値を生成するために、公開閾値暗号化(例えば、Paillier)鍵で暗号化する。代替的に、値は秘密共有される。
7.署名データ値は、E(k-1)、H′(gk)、E(k-1*H′(gk)*d)と数学的に示される値を含む。代替的に、署名データ値は、E(k-1)、E(k-1*H′(gk)*d)として数学的に示される。(この場合、H′(gk)はリクエスタにのみ送信される)。
代替的に、上記のプロセスが秘密共有を使用して実施されてもよい。閾値暗号化プロセスを使用して値(例えば、k-1)を暗号化して、複数のバリデータ装置の間で値を分割することを可能にするのではなく(ここで、加法的準同型演算の後、バリデータ装置は本明細書で説明するように、暗号化された値を復号することができる)、値(例えば、k-1)は、秘密共有を使用して提供される。秘密共有は加法的準同型であり、本明細書で説明する動作の後、各バリデータ装置は、秘密値にアクセスすることができる。
任意選択で、DSA秘密鍵(例えば、EdDSAおよび/またはECDSA)は、hdツリーを使用して生成される。hdツリーを使用して、任意選択でレベル1のPaillierを使用せずに、複数の鍵が生成される。hdツリーは、ベースECDSAおよび/またはEdDSA秘密鍵とチェインデータ(chaindata)と呼ばれる追加データからECDSAおよび/またはEdDSA秘密鍵を導出することを可能にする。秘密鍵装置所有者は、装置にチェインデータを送信することによって、ベース公開鍵から一致する公開鍵を導出する能力を任意の他の装置に与えることができる。hdツリーを使用すると、派生インデックス値を使用して、ベースDSA秘密鍵からDSA秘密鍵を派生させることができる(例:ベースEdDSA秘密鍵からDSA秘密鍵を派生させる、またはベースECDSA秘密鍵からECDSA秘密鍵を派生させる)。派生インデックス値は、署名データ値をローカルに計算するためにバリデータ装置に提供される。
数学的表記では:
PrivateKey=d
PublicKey=gd
PrivateKey=d
PublicKey=gd
導出インデックスおよび公開鍵(PublicKey)によってiで示される値を生成する:
NewPrivateKey=PrivateKey+i=d+i
NewPublicKey=PublicKey*gi=gd*gi=gd+i
NewPrivateKey=PrivateKey+i=d+i
NewPublicKey=PublicKey*gi=gd*gi=gd+i
hdツリーを使用して鍵が生成される場合、署名データ値は、以下の数学的表現に基づいて実装され得る:
E(k-1)、E(k-1*H′(gk))、E(k-1*H′(gk)*d)ここで、iの特定の値が与えられると、以下が計算されてもよい:i*EE(k-1*H′(gk))+E(k-1*H′(gk)*d)=E(k-1*H′(gk)*(d+i))。本明細書に記載されるプロセスは、E(k-1)、E(k-1*H′(gk)*(d+i))を使用して実施される。
E(k-1)、E(k-1*H′(gk))、E(k-1*H′(gk)*d)ここで、iの特定の値が与えられると、以下が計算されてもよい:i*EE(k-1*H′(gk))+E(k-1*H′(gk)*d)=E(k-1*H′(gk)*(d+i))。本明細書に記載されるプロセスは、E(k-1)、E(k-1*H′(gk)*(d+i))を使用して実施される。
E(k-1*H′(gk))は、k-1*E(H′(gk))によって計算することができることに留意されたい。
任意選択で、複数の分割秘密鍵に分割される公開鍵および秘密鍵が閾値復号プロセスに基づいて計算される場合、ビーコン装置は例えば、多くの鍵を有するマルチパーティ計算(MPC)ウォレットとして働く、鍵ペアの複数のインスタンスを生成および/または格納する。
複数の鍵は必ずしも各秘密鍵に対して新しい異なる署名データ値を生成することなく生成される。例えば、複数の鍵のセットに対して単一の署名データ値が生成される。同じ(例えば、単一の)署名データ値が、複数の鍵の集合の選択された単一鍵に対して一度だけ使われる。以下は同じ(例えば、単一の)署名データ値を有する複数の鍵セットを実装するための例示的なプロセスである。複数のDSA(例えば、EdDSAおよび/またはECDSA)鍵ペアが生成される。鍵ペアの各秘密鍵は、複数の暗号化された秘密鍵を作成するために暗号化される。暗号化された秘密鍵は、複数のバリデータ装置に提供される。暗号化された秘密鍵の1つが、例えば、ビーコンおよび/またはリクエスタ装置によって選択される。署名データ値には、選択した秘密鍵は含まれない。選択された暗号化秘密鍵の表示がバリデータ装置に提供される。部分オープン復号化値(例えば、108を参照して説明される)は、選択された暗号化秘密鍵と、選択された秘密鍵を含まない署名データ値とを使用して、それぞれのバリデータ装置によって計算される。
同じ署名データ値を有する鍵の複数のペアが実装される場合、使用される閾値暗号化プロセスは例えば、図1の102を参照して本明細書で説明される秘密共有プロセスにおいて、および/または、www.semanticscholar.org/paper/Using-Level-1-Homomorphic-Encryption-to-Improve-DSA-Boneh-Gennaro/a57ae12ec05a71b22ce6504dce29c37c3f86d6fcを参照して説明されるように、1つの乗算、例えば、レベル1加法的準同型暗号化を可能にする。
数学的表現に関して、ビーコンは、鍵のセットの秘密鍵の各々に対してE(di)を提供する。署名データ値は、E(k-1)、H′(gk)、E(k-1*H′(gk))として実装することができる。ビーコンおよび/またはリクエスタ装置は鍵の1つを選択し、選択された鍵の指示をバリデータ装置に提供する。各バリデータ装置は、H(m)*EE(k-1)+EE(k-1*H′(gk))*E_level_1E(di)として、それぞれの部分オープン(例えば108)を計算する。秘密値(例えば、秘密鍵および署名データ値)は例えば、本明細書で説明されるように、レベル1準同型和秘密共有プロセスを使用して共有され得る。
ここで、EdDSA MPCを使用する実施について、任意選択で、GK8ウォレットとして実施されるビーコン装置の文脈で説明する。この実装は(例えば、Ed25519楕円曲線上の)基礎となるEdDSA署名を有するGK8 MPCに基づくことができる。EdDSA署名はSchnorr署名の変形であり、他の適切な実施を使用することができることに留意されたい。EdDSAは例えば、ECDSAがEdDSAのようなSchnorr署名には存在しない、グループ要素を分散的に反転させる分布の問題を含む場合、ECDSA上で選択されてもよい。
以下は、鍵(秘密と公開の両方)と、EdDSA署名の署名とプロセスの概要の説明である。EdDSA署名スキームの秘密鍵はbと表された何らかのセキュリティパラメータのために、kと表されたbビット文字列である。公開鍵はA=s・B(スカラーによる乗算は基礎となる群によって定義されることに留意されたい)として示され、ここで、Bは基礎となる曲線上の予め定義された点を示し、(例えば、Ed25519 SHA-512のために)Hで示される予め定義されたターゲット衝突耐性ハッシュ関数としてのs=H0,...b-1(k)である。Mで示されるメッセージ上のEdDSA署名は、以下のように一対(R,S)として示される:
R=r・B、ここでr=H(Hb,....2b-1||M)
S=r+H(r||A||M)・modsL、ここで、Lは基礎となるグループの順序を示す。
R=r・B、ここでr=H(Hb,....2b-1||M)
S=r+H(r||A||M)・modsL、ここで、Lは基礎となるグループの順序を示す。
EdDSA署名の検証は、次の式が成立するかどうかをチェックして行われる:
S・B=R+H(R||A||M)・A
S・B=R+H(R||A||M)・A
実際の実装において、Mは、オリジナルメッセージmのハッシュ化されたバージョンを示すことに留意されたい。EdDSAの詳細については、RFC8032などに記載されている。
1つの装置が任意のメッセージ上で署名を要求することができるので、(署名されるべきメッセージがすべての当事者によって知られていると仮定される標準的なアプローチとは対照的に)バリデータ装置のうちの任意の1つがリクエスタ装置として動作することができるビーコン装置、バリデータ装置、およびリクエスタ装置に基づいて、本明細書に記載される実施形態は、不均一である(uneven)ことが可能であることに留意されたい。これはMPCの外部で処理され、したがって、共署名者(すなわち、バリデータ装置)は閾値署名への参加の要求が合法であることを検証することができると仮定することができる。閾値署名を達成するために、部分解読の1つの段階と、部分解読された共有のすべてを結合して解読を形成する1つの段階とを含む閾値解読を許可する加法的準同型スキームが実施される。例えば、秘密共有スキーム(例えば、Shamir秘密共有)および/または加法的準同型暗号化スキーム(例えば、Paillier)および/またはプリミティブなものは、適合し、かつ安全である。この方式の暗号化/暗号はEと表され、加法的準同形作用は+Eと表され、gで表される何らかの要素のeで表される乗算はgeと表される。
次に、EdDSA MPCの実施について簡単に説明する。rは、メッセージと秘密鍵が与えられた決定論的値として定義されることに留意されたい。rは、閾値署名を実行するために完全にランダムであってもよい。ここで実施されるように、rはオンザフライで共有されるのではなく、ランダムであってもよく、これはメッセージに依存するので、技術的に困難であるか、または不可能である。一部の実施では、リクエスト側が同時署名に必要なバリデータ装置の1つとして動作する。署名されるメッセージはmとして表され、Mはハッシュされたメッセージを示す。ビーコン装置はkで示される秘密鍵をサンプリングし、上記のようにsを計算し、基礎となる加法的準同型スキームを使用して値を共有する。siは、iで示されるバリデータ装置の共有を示すものとする。加法的準同形暗号方式が使用されるとき、その共有はその復号鍵のものであり、すべてのバリデータ装置は、E(s)を受信することに留意されたい。ビーコン装置はAで示される公開鍵をブロードキャストすることができ、ビーコン装置はRのランダムにサンプリングし、(i、E(r)、R)[すなわち、署名データ]を共有することができ、ここで、Rは上記のように計算され、iは一意のインデックスである。リクエスタ装置はペアm、iを提供(例えば、ブロードキャスト)することができ、ここで、iは未使用の署名データタプルのインデックスを示し、mは(例えば、106におけるように)署名されるメッセージを示す。署名要求を受信すると、各バリデータ装置はメッセージmが正当なものであることと、iが未使用の署名データタプルであることを確認してもよい(例えば、108のように)。E(r),Rは、iによってインデックス付けされた一対を示すものとする。各バリデータ装置は(例えば、108におけるように)以下の計算の部分的な解読を実行する:
E(S)=E(r)+E(s)H(R||A||M)=E(r+H(r||A||M)・r)
E(S)=E(r)+E(s)H(R||A||M)=E(r+H(r||A||M)・r)
それぞれの部分オープン復号化値は(例えば、110におけるように)リクエスタ装置に提供される。全ての部分オープン復号化値を受信すると(例えば、リクエスタ装置は、それ自体の部分オープン復号化値を計算することができる)、リクエスタ装置は(例えば、112におけるように)Sを得るために全ての共有を結合する。リクエスタ装置は(例えば、114におけるように)mの署名として(R,S)をパブリッシュすることができる。
104で、署名のためのメッセージがリクエスタ装置によって受信される。メッセージは例えば、第三者装置、リクエスタ装置自体、および/または他の装置から受信されてもよい。メッセージはメッセージのセキュリティを高めるために、デジタル署名のための任意のメッセージであってもよい。例えば、メッセージは、2つのデジタルウォレット間の暗号通貨のトランザクションであってもよい。トランザクションレコードは、ブロックチェーンデータセットに格納されてもよい。別の例では、メッセージが追加のセキュリティのために署名されたデータベース内のエントリであってもよい。
リクエスタ装置は、ビーコン、例えばコールドウォレットとして実装されるビーコンに接続され得るホットウォレットとして動作し得る。
106において、署名のためのメッセージは、リクエスタ装置によって複数のバリデータ装置に提供される。
署名用のメッセージは、ネットワークを介して単一の要求セッションで提供される。
メッセージは、すべてのバリデータ装置がメッセージに署名することを要求され、ジョイント署名に必要な多数のバリデータ装置に送信されてもよい。代替的に、メッセージがメッセージの共同署名に必要なバリデータ装置の最小閾値数よりも大きい多数のバリデータ装置に送信されてもよい。メッセージは、少なくともそれぞれの部分に署名するバリデータ装置の最小数があれば署名される。
各バリデータ装置は、単一の要求セッションにおいて署名するためのメッセージを受信する。
任意選択で、リクエスタ装置は、バリデータ装置のうちの1つである。代替的に、リクエスタ装置は、バリデータ装置のうちの1つではない。
ネットワークに接続されているバリデータ装置はリクエスタ装置(例えば、ホットウォレット)によって信頼されるが、ネットワークを介した悪意のある攻撃に対して脆弱であり得る。複数のバリデータ装置を使用してメッセージに署名することで、悪意のある攻撃のリスクを軽減できる。
108において、バリデータ装置の各々は、署名データ値とメッセージのそれぞれの部分オープン復号化値を計算する。
それぞれの部分オープン復号化値は署名データ値を提供するために使用される実施に従って、例えば、署名データ値とメッセージに適用されるそれぞれの分割秘密鍵を用いて、および/または、秘密共有プロセスに基づいてそれぞれの部分オープン復号化値を用いて、計算される。
任意選択的に、それぞれの部分オープン復号化値の計算の前に、バリデータ装置の各々は、メッセージがそれぞれのバリデータ装置による署名の資格を有するかどうかをチェックする。例えば、メッセージはそれぞれのバリデータ装置がメッセージに署名するときに、例えば、暗号通貨取引の値が範囲内にあり、かつ/または最大値を下回るとき、メッセージの発信アドレスが有効であり、メッセージの宛先アドレスが有効であり、発信ウォレットは別のウォレットへの暗号通貨取引を可能にするために、そこに格納された十分な暗号通貨を有する、などを定義する、それぞれのルールセットに従って評価されてもよい。別の例では、メッセージが人間のオペレータが見るためにディスプレイ上に提示される。人間のオペレータは例えば、ディスプレイ上に提示された承認または拒否アイコンを押すことによって、メッセージの署名を手動で承認するか、またはメッセージの署名を拒否することができる。
任意選択で、バリデータ装置のそれぞれは、ビーコン装置が署名データ値に署名したこと、および/または署名データ値がそれぞれのバリデータ装置によって以前に使用されていないことを検証する。
バリデータ装置のそれぞれは、他のバリデータ装置とは独立して、それ自体のチェックおよび/またはバリデーションプロセスを実行することができる。
署名データが閾値暗号化プロセスおよび/またはDSA(例えば、ECDSA)に基づくとき、部分オープン復号化値は、下記のように計算されてもよい。まず、署名データ値から抽出した値を用いて、H(m)*EE(k-1)+EE(k-1*H′(gk)*d)=E(k-1*H(m)+k-1*H′(gk)*d)(==H(s))を計算する。部分オープン復号化値E(k-1*H(m)+k-1*H′(gk)*dは、people.csail.mit.edu/rivest/voting/papers/DamgardJurikNielsen-AGeneralizationOfPailliersPublicKeySystemWithApplicationsToElectronicVoting.pdfを参照して説明されるように、それぞれのバリデータ装置によってそれぞれの分割キーを使用して計算される。
代替的に、署名データは本明細書に記載されるように、秘密共有を使用して提供される。
110において、それぞれのバリデータ装置によって計算されたそれぞれの部分オープン復号化値が、単一の応答セッションにおいてリクエスタ装置に提供される。リクエスタ装置は、複数のバリデータ装置のそれぞれの一つからの単一応答セッションにおいて、署名データ値とメッセージに対して計算されたそれぞれの部分オープン復号化値を受信する。
112において、リクエスタ装置は、バリデータ装置から受信した複数の部分オープン復号化値を集約して、メッセージのデジタル署名を計算する。
リクエスタ装置は、部分オープン復号化値からメッセージの暗号化されていない署名を計算する。
任意選択で、リクエスタ装置はデジタル署名(バリデータ装置から受信した部分オープン復号化値を集約することによって計算される)がメッセージの有効な署名であること、例えば、どのバリデータ装置も悪意のあるアクティビティを試みていないこと、を検証する。
任意選択で、リクエスタ装置は、すべての参加装置がそれぞれの部分オープンを正しく計算したことを検証する。それぞれのバリデータ装置によって提供されるそれぞれの部分オープン復号化値は、それぞれのバリデータ装置が例えば、ゼロ知識プルーフおよび/または以下で説明するプロセスを使用して、それぞれの部分オープンを計算したという証明の指標を含むことができる。証明の指標は例えば、単一のメッセージおよび/またはメタデータとして提供されてもよい。例えば、秘密共有プロセス(例えば、合計秘密共有)を使用して、各バリデータ装置はそれ自体の固有値ai、bi(例えば、ECDSAの場合、(aiはk-1*r*dのそれぞれの共有)および(bi=k^-1のそれぞれの共有))を取得し、値bi+(ai*H(m))を返す、ここで、Hは本明細書に記載されるハッシュ関数を示し、mは本明細書で説明されるように署名するメッセージを示す。aiおよびbiは例えば、ビーコン装置から取得されてもよく、および/または予め定義された値であってもよい値を示す。ビーコン装置は値gaiおよびgbiをリクエスタ装置に送信することができ、ここで、gは例えば、本明細書で説明されるように、例えばECDSAを実装するときの曲線上の点を示す。デジタル署名の検証に失敗した場合、障害の原因となっている特定の参加装置が検出され、以降のメッセージ署名から除外されてもよい。例えば、参加機器毎に以下の関係が検証される:
ここで、
R:i′番目のバリデータによって送信されたメッセージ
Ai=gai ビーコンによってリクエスタに送信される
Bi=gbi ビーコンによってリクエスタに送信される
ここで、
R:i′番目のバリデータによって送信されたメッセージ
Ai=gai ビーコンによってリクエスタに送信される
Bi=gbi ビーコンによってリクエスタに送信される
特定の参加装置に対して関係が満たされない場合、特定の参加装置が悪意のあるものとして指定され、メッセージのさらなる署名から除外されてもよい。任意選択で、メッセージのデジタル署名はすべての数のバリデータ装置がそれぞれの部分オープン復号化値(すなわち、N out of N)を提供する場合にのみ計算される。Sum Secret Sharingは、N out of Nと互換性があることに留意されたい。
代替的に、装置の最小閾値数を超える多数のバリデータ装置がそれぞれの部分オープン復号化値(すなわち、K out of N)を提供するとき、メッセージのデジタル署名が計算される。Sum Secret SharingはK out of Nと互換性がないので、別のプロセス(例えば、本明細書で説明されるような)が使用されるべきであることに留意されたい。K out of Nを実装することに関する技術的課題は、ハッカーがK未満(例えば、2つ)のバリデータ装置にアクセスすることができる場合(例えば、6 out of 10の状況)、ハッカーは、同じ署名データ値を使用して(他のバリデータ装置を使用して)第1のメッセージおよび第2のメッセージに署名することができることである。同じ署名データ値を2回使用することにより、ハッカーは秘密鍵を見つけることができる。一般に、K out of Nの状況では、ハッカーが秘密鍵を見つけることができるように、max(1,2K-N)によって示される多数のバリデータ装置を攻撃することができる。KおよびNが小さいとき、またはKがNに近いとき(すなわち、演算Nが計算効率のためにKを選択するとき)、1つの可能な解決策は、バリデータ装置を2つ以上のグループに分割することである。複数のサブ鍵に分割された異なる鍵が、異なるグループに対して作成される。それぞれの異なる鍵は、異なる署名データ値に関連付けられる。または、異なるグループに対して異なる署名データ値が生成され、リクエスタ装置はどのバリデータ装置がどのグループのメンバーであるかを認識する。別の解決策ではグループに分割する最初の解決策で構成されてもよいが、メッセージのデジタル署名を計算するためにそれぞれの部分オープン復号化値を提供するために必要なバリデータ装置の総数のうち、多数のバリデータ装置の最小セキュリティレベルを定義することである。最小セキュリティレベルは一連のルール、例えば、少なくとも(K+N)/2バリデータ装置に従って最小閾値まで増加される。第2の解は例えば、Kおよび/またはNの数が大きいとき、例えば、KがNの半分より大きいときに使用されてもよく、第2の解がグループに分割する第1の解と組み合わされ、各グループがAで示される多数のバリデータ装置を有するとき、最小閾値を定義する規則のセットは、(K+A)/2で示されてもよい。
数学的表現に関して、メッセージの暗号化されていない署名は、以下の式を使用して計算される:
s=k-1*H(m)+k-1*H′(gk)*d
s=k-1*H(m)+k-1*H′(gk)*d
数学的表現に関して、リクエスタ装置は、(r,s)=(H′(gk),k-1*H(m)+k-1*H′(gk)*d)がmの有効な署名であることを検証する。
114において、リクエスタ装置は例えば、公開され、公的にアクセス可能にされ、リクエストしている第三者装置に提供され、および/またはブロックチェーンに格納された、メッセージの計算された署名を提供することができる。
数学的表現に関して、(r,s)が提供される。
ここで図3を参照すると、本発明のいくつかの実施形態による、ビーコン装置によって提供される署名データと、リクエスタ装置によって提供される単一の要求セッションと、複数のバリデータ装置のそれぞれからの単一の応答セッションとを使用するメッセージのデジタル署名のためのプロセスのデータフロー図が示されている。図3は、ビーコン装置、リクエスタ装置、バリデータ装置、および任意選択で第三者装置を含む、複数の装置間の全体的なシステムレベルデータフローを示す。図3のデータフロー図の1つまたは複数の特徴は例えば、図1を参照して説明したように、本明細書で説明する他の特徴に対応することができる。図3に示すデータフローは、図2を参照して説明したシステム200の構成要素によって実施することができる。
302において、署名のためのメッセージが受信され、例えば、図1の104を参照して本明細書で説明されるように、第三者装置210(および/または別の装置)によってリクエスタ装置206に送信される。
304において、ビーコン装置204によって生成された署名データ値が、複数のバリデータ装置208に提供される。
署名データ値は例えば、暗号化プロセスを介して、および/または、例えば、図1の102を参照して本明細書で説明されるように、本明細書で説明されるように、秘密共有プロセスを介して提供されてもよい。
302および304は互いに独立して、異なる順序で実行されてもよく、例えば、302、302が304と同時に発生する前に発生する304、および/または302および304が互いに関係なく異なる時間に発生することに留意されたい。
306において、署名のためのメッセージは例えば、図1の106を参照して本明細書で説明されるように、単一の要求セッションにおいて、リクエスタ装置206によってバリデータ装置208に提供される。
308において、バリデータ装置208の各々は例えば、図1の108を参照して本明細書で説明されるように、署名データ値およびメッセージのそれぞれの部分オープン復号化値を計算する。
310において、バリデータ装置208によって計算された部分オープン復号化値は例えば、図1の110を参照して本明細書で説明されるように、単一の応答セッションにおいてリクエスタ装置206に提供される。
312において、リクエスタ装置206は例えば、図1の112を参照して本明細書で説明されるように、メッセージのデジタル署名を計算するために、受信された部分オープン復号化値を集約する。
314において、リクエスタ装置206は例えば、図1の114を参照して本明細書で説明されるように、例えば、第三者装置210にメッセージのデジタル署名を提供する。
ここで、本発明のいくつかの実施形態による、ビーコン装置の観点から、ビーコン装置によって提供される署名データを使用してメッセージにデジタル署名するための方法のフローチャートである図4を参照する。図4の方法の1つまたは複数の特徴は例えば、図1を参照して説明したように、本明細書で説明した他の特徴に対応することができる。図4に示すプロセスは、図2を参照して説明したシステム200の構成要素によって実施することができる。
402において、ビーコン装置は、ネットワークに接続され得る。ビーコン装置はオフラインであってもよく、ネットワーク接続ノード、例えば、ホットウォレットに接続されたコールドウォレットに接続されてもよい。ビーコン装置は例えば、初期化手順をトリガーすることによって起動されることによって、ネットワークに接続されてもよい。
404において、ビーコン装置は、1つまたは複数の署名データ値を生成する。署名データ値は本明細書に記載するように、周期的に、および/または初期化手順によってトリガーされてもよい。本明細書に記載されるように、個々の署名データ値は周期的に生成されてもよく、および/または複数の署名データ値は、例えば開始時に一緒に生成されてもよい。
本明細書に記載するように、他のデータ、例えば、公開-秘密鍵ペアを生成することができる。秘密鍵は本明細書に記載するように、複数の分割鍵に分割することができる。
406において、署名データ値は本明細書に記載するように、例えば、暗号化プロセスおよび/または秘密共有プロセスを使用して、バリデータ装置に提供される。
他のデータ、例えば、複数の分割鍵は本明細書に記載するように、バリデータ装置に提供されてもよい。
ここで、本発明のいくつかの実施形態による、ビーコン装置によって提供される署名データを使用してメッセージにデジタル署名するための方法のフローチャートが、リクエスタ装置の観点から示されている図5を参照する。図5の方法の1つまたは複数の特徴は例えば、図1を参照して説明したように、本明細書で説明した他の特徴に対応することができる。図5に示すプロセスは、図2を参照して説明したシステム200の構成要素によって実施することができる。
502において、リクエスタ装置は、例えば第三者装置から署名のためのメッセージを受信する。
504において、リクエスタ装置は、単一の要求セッションにおいて、複数のバリデータ装置にメッセージを提供する。
506において、リクエスタ装置は複数のバリデータ装置から複数の部分オープン復号化値(すなわち、各バリデータ装置からのそれぞれの部分オープン復号化値)を受信する。
508において、リクエスタ装置は、受信された部分オープン復号化値からメッセージのデジタル署名を計算する。リクエスタ装置は、受信した部分オープン復号化値を集約してデジタル署名を計算してもよい。
メッセージの暗号化されていない署名は、部分オープン復号化値から計算される可能性がある。
510において、リクエスタ装置は、デジタル署名がメッセージの有効な署名であることを検証してもよい。
512において、デジタル署名は例えば、第三者装置のような署名のためのメッセージの発信者に提供される。
ここで、本発明のいくつかの実施形態による、各バリデータ装置から見た、ビーコン装置によって提供される署名データを使用してメッセージにデジタル署名するための方法のフローチャートである図6を参照する。各バリデータ装置は、図6の方法の1つ以上の特徴を実行してもよい。図6の方法の1つまたは複数の特徴は例えば、図1を参照して説明したように、本明細書で説明した他の特徴に対応することができる。図6に示すプロセスは、図2を参照して説明したシステム200の構成要素によって実施することができる。
602において、各バリデータ装置は例えば、暗号化プロセスおよび/または秘密共有プロセスを介して、ビーコンによって生成された署名データ値を受信する。
他のデータ、例えば、本明細書で説明するように、それぞれの分割秘密鍵および/または公開鍵を受信することができる。
604で、各バリデータ装置は、単一の要求セッションで署名するためのメッセージを受信する。
606において、それぞれのバリデータ装置はメッセージに署名する前に、1つまたは複数のバリデーションプロセスを実行することができる。
任意選択で、それぞれのバリデータ装置は、メッセージが署名の資格を有するかどうかをチェックすることができる。各バリデータ装置は例えば、それ自体のルールセットを使用して、それ自体の独立したチェックを実行することができる。いくつかのメッセージについて、いくつかのバリデータ装置は署名のためのメッセージ適格性を判定する可能性があり、他のバリデータ装置は、そのメッセージが署名の適格性を持たないと判定する可能性があることに留意されたい。
代替的にまたは追加的に、各バリデータ装置は、ビーコン装置が署名データ値に署名したこと、および署名データ値が以前に使用されていないことをチェックすることができる。
608において、各バリデータ装置は、署名データ値とメッセージのそれぞれの部分オープン復号化値を計算する。
610において、各バリデータ装置は、単一の応答セッションにおいて、それぞれの部分オープン復号化値をリクエスタ装置に提供する。
本発明の様々な実施形態の説明は例示の目的で提示されているが、網羅的であることも、開示された実施形態に限定されることも意図されていない。
記載された実施形態の範囲および精神から逸脱することなく、多くの修正および変形が当業者には明らかだろう。
本明細書で使用される用語は実施形態の原理、市場で見出される技術に対する実際の適用または技術的改善を最もよく説明するために、または当業者が本明細書で開示される実施形態を理解することを可能にするために選択されている。
本出願から成熟する特許の存続期間中に、多くの関連するメッセージ署名が開発されることが予想され、メッセージ署名という用語の範囲は、全てのそのような新しい技術を先験的に含むことが意図される。
本明細書で使用される「約」という用語は±10%を指す。
用語「備える」、「備えている」、「含む」、「含んでいる」、「有している」、およびそれらの複合体は「含むが、これに限定されない」を意味する。
この用語は、「からなる」および「本質的にからなる」という用語を包含する。
「本質的にからなる」という語句は組成物または方法が追加の成分および/または工程を含んでもよいが、追加の成分および/または工程が特許請求される組成物または方法の基本的かつ新規な特徴を実質的に変更しない場合に限ることを意味する。
本明細書で使用されるように、単数形「a」、「an」および「the」は文脈が明らかにそわないことを示さない限り、複数の参照を含む。例えば、用語「化合物」または「少なくとも1つの化合物」は、それらの混合物を含む複数の化合物を含み得る。
「例示的」という語は、本明細書では「例、事例、または例示として働く」ことを意味するために使用される。
「例示的」として記載される任意の実施形態は、必ずしも、他の実施形態よりも好ましいまたは有利であると解釈されるべきではなく、かつ/または他の実施形態からの特徴の組み込みを排除するように解釈されるべきではない。
用語「任意選択で」は、本明細書では「いくつかの実施形態では提供され、他の実施形態では提供されない」を意味するために使用される。
本発明の任意の特定の実施形態はこのような特徴が矛盾しない限り、複数の「任意選択の」特徴を含み得る。
本出願を通して、本発明の様々な実施形態は、範囲フォーマットで提示されてもよい。範囲形式での説明は単に便宜および簡潔さのためであり、本発明の範囲に対する柔軟性のない限定として解釈されるべきではないことを理解されたい。したがって、範囲の説明は、その範囲内のすべての可能な部分範囲ならびに個々の数値を具体的に開示したものとみなされるべきである。例えば、1~6などの範囲の説明は1~3、1~4、1~5、2~4、2~6、3~6などのサブ範囲、ならびにその範囲内の個々の数、例えば、1、2、3、4、5、および6などを具体的に開示したサブ範囲を有すると考えるべきである。これは、範囲の幅に関係なく適用される。
数値範囲が本明細書で示されるときはいつでも、それは、示された範囲内の任意の引用された数字(分数または整数)を含むことを意味する。語句「間の範囲(ranging/ranges between)」は第1に示す数および第2に示す数、「からの範囲」は第1に示す数から第2に示す数「まで」、本明細書では互換的に使用され、第1および第2の示された数、ならびにそれらの間のすべての小数および整数を含むことを意味する。
明確にするために、別個の実施形態の文脈で説明される本発明の特定の特徴は、単一の実施形態において組み合わせて提供されてもよいことが理解される。逆に、簡潔にするために、単一の実施形態の文脈で説明されている本発明の様々な特徴は別々に、または任意の適切なサブコンビネーションで、または本発明の任意の他の説明された実施形態で適切なものとして提供されてもよい。様々な実施形態の文脈で説明される特定の特徴は実施形態がそれらの要素なしで動作不能でない限り、それらの実施形態の本質的な特徴と見なされるべきではない。
本発明をその特定の実施形態に関連して説明してきたが、多くの代替、修正、および変形が当業者には明らかであろうことは明らかである。したがって、本発明は、添付の特許請求の範囲の精神および広い範囲内にある、そのような代替、修正、および変形のすべてを包含することが意図される。
本明細書において言及される全ての刊行物、特許および特許出願は、あたかも各個々の刊行物、特許または特許出願が参照により本明細書に組み込まれるように具体的かつ個別に示されたかのように、その全体が本明細書に参照により組み込まれる。さらに、本出願における任意の参考文献の引用または同定は、そのような参考文献が本発明の先行技術として利用可能であることを容認するものとして解釈されるべきではない。セクションの見出しが使用される限り、それらは必ずしも限定するものと解釈されるべきではない。さらに、本出願の任意の優先権文書は、その全体が参照により本明細書に組み込まれる。
Claims (36)
- 単一の要求セッションにおいて、署名するためのメッセージを、ネットワークを介して複数のバリデータ装置(validator device)のそれぞれに送信し;
ビーコン装置は、計算し、前記ビーコン装置によって計算され署名された署名データ値を、ネットワークを介して複数のバリデータ装置のそれぞれに送信し;
前記複数のバリデータ装置のそれぞれの一つからの単一応答セッションにおいて、前記署名データ値および前記メッセージに対して計算されたそれぞれの部分オープン復号化値(partial-open decrypted value)を受信し;および、
前記メッセージのデジタル署名を計算するために、前記複数のバリデータ装置から受信された前記部分オープン復号化値を集約する;
ためのコードを実行する少なくとも1つのハードウェアプロセッサを備える、
メッセージの前記デジタル署名のためのリクエスタ装置。 - 前記複数のバリデータ装置のそれぞれのバリデータ装置について、前記ビーコン装置によって提供されるそれぞれのバリデータ装置の固有の値を使用して計算され、前記メッセージを使用する第1の値と、前記固有の値および前記メッセージに基づいて前記それぞれのバリデータ装置によって提供される証明の指標を使用して計算される第2の値とを比較することによって、前記デジタル署名が検証されないときに、前記複数のバリデータ装置のうちのどれが悪意があるかを識別するためのコードをさらに備える、
請求項1に記載のリクエスタ装置。 - 前記複数のバリデータ装置から受信された前記部分オープン復号化値を集約することによって計算された前記デジタル署名が前記メッセージの有効な署名であることを検証するためのコードをさらに備える、
請求項1に記載のリクエスタ装置。 - 前記部分オープン復号化値から前記メッセージの暗号化されていない署名を計算するためのコードをさらに備える、
請求項1に記載のリクエスタ装置。 - 前記リクエスタ装置は、前記複数のバリデータ装置のうちの1つである、
請求項1に記載のリクエスタ装置。 - ビーコン装置によって計算され署名された署名データ値を、ネットワークを介して前記ビーコン装置から受信し;
単一の要求セッションにおいて、リクエスタ装置から署名用のメッセージをネットワークを介して受信し;
前記署名データ値と前記メッセージのそれぞれの部分オープン復号化値を計算し;および、
単一の応答セッションにおいて、前記それぞれの部分オープン復号化値を前記リクエスタ装置に送信する;
ためのコードを実行する少なくとも1つのハードウェアプロセッサをそれぞれ含む複数のバリデータ装置を備え、
前記リクエスタ装置は、前記複数のバリデータ装置から受信した前記部分オープン復号化値を集約して、前記メッセージのデジタル署名を計算する、
メッセージの前記デジタル署名のためのシステム。 - 前記メッセージが、前記複数のバリデータ装置のそれぞれのバリデータ装置による署名のために適格であるかどうかを、それぞれのルールのセットに従ってチェックするためのコードをさらに備える、
請求項6に記載のシステム。 - 前記ビーコン装置が、前記署名データ値に署名し、前記署名データ値が以前に使用されていないことを検証するためのコードをさらに備える、
請求項6に記載のシステム。 - (A)ビーコン装置によって計算され署名された署名データ値を、計算し、ネットワークを介して複数のバリデータ装置のそれぞれの1つに送信するためのコードを実行する、前記ビーコン装置の少なくとも1つのハードウェアプロセッサと;
(B)単一の要求セッションにおいて、リクエスタ装置から署名用のメッセージを前記ネットワークを介して受信し;
前記署名データ値と前記メッセージに対してそれぞれの部分オープン復号化値を計算し;
単一の応答セッションにおいて、それぞれの部分オープン復号化値を前記リクエスタ装置に送信し、前記リクエスタ装置は、前記部分オープン復号化値を集約して、前記メッセージのデジタル署名を計算する、;
ためのコードを実行する少なくとも1つのハードウェアプロセッサをそれぞれ含む複数のバリデータ装置と、
を備える、メッセージのデジタル署名のためのシステム。 - 公開鍵(public key)と複数の分割秘密鍵(split-private key)のうちのそれぞれの分割秘密鍵と、を計算し、前記ネットワークを介して前記複数のバリデータ装置のそれぞれに送信するコードをさらに備え、前記署名データ値はデジタル署名アルゴリズム(DSA)プロセスを使用して前記ビーコン装置によって計算されたDSA秘密鍵を含み、前記DSA秘密鍵は、加法的準同形(additive homomorphic)で閾値復号プロセス(threshold decryption process)を含む暗号化プロセスに基づいて計算された前記複数の分割秘密鍵に分割される前記秘密鍵に対応する前記公開鍵で暗号化されたものの少なくとも1つであって;
前記複数のバリデータ装置のそれぞれの1つは、前記署名データ値および前記メッセージに適用される前記それぞれの分割秘密鍵を使用して、前記それぞれの部分オープン復号化値を計算するためのコードをさらに含む、
請求項9に記載のシステム。 - 暗号化された値の乗算演算を可能にすることによって、レベル1準同型和秘密共有(level-1 homomorphic sum secret sharing)の特性を満たす秘密共有プロセスを使用して、署名データ値および秘密鍵が分割され、複数のバリデータ装置のそれぞれに共有される、
請求項9に記載のシステム。 - 分割され共有される前記署名データ値は、複数の署名データ値から選択され、分割され共有される秘密鍵は、前記複数のバリデータ装置が特定の前記署名データ値と選択される前記特定の秘密鍵を知ることなく、前記それぞれの部分オープン復号化値を計算するために使用される複数の秘密鍵から選択される、
請求項11に記載のシステム。 - 前記署名データ値は、加算に対し準同形である秘密共有プロセスを用いて、前記複数のバリデータ装置のそれぞれ1つと共有され;
前記複数のバリデータ装置のそれぞれ1つは、前記秘密共有プロセスに基づいて、前記それぞれの部分オープン復号化値を計算するためのコードをさらに含む、
請求項9に記載のシステム。 - 前記複数の分割秘密鍵のいくつかは、複数のバリデータ装置のいくつかに対応しており、前記メッセージの前記デジタル署名は、前記複数のバリデータ装置の数の全てが、それぞれの部分オープン復号化値を提供する場合にのみ計算される、
請求項10に記載のシステム。 - 前記メッセージの前記デジタル署名を計算するようにそれぞれの部分オープン復号化値を提供するために必要とされるバリデータ装置の総数の中から、いくつかのバリデータ装置の最小セキュリティレベルを定義することと、前記最小セキュリティレベルを、一組のルールに従って最小閾値まで増加させることとをさらに備え、前記複数の分割秘密鍵のいくつか(a number of)は前記バリデータ装置の総数に対応し、前記メッセージの前記デジタル署名は、それぞれの部分オープン復号化値を提供する前記複数のバリデータ装置の数(the number of)が前記最小閾値を超える場合に計算される、
請求項10に記載のシステム。 - 少なくとも2つのグループに前記バリデータ装置の総数を分割し、前記少なくとも2つのグループの各々に対して固有の署名データ値を前記ビーコン装置によって提供する、ことをさらに備え、前記メッセージの前記デジタル署名は各グループの前記バリデータ装置のすべてが、前記少なくとも2つのグループの各々に対してそれぞれの固有の署名データ値を使用して計算されたそれぞれの部分オープン復号化値を提供する場合にのみ計算される、
請求項10に記載のシステム。 - 署名のためのメッセージは、単一の要求セッションにおいて、リクエスタ装置によって、前記ネットワークを介して前記複数のバリデータ装置のそれぞれ1つに送信され、
前記署名データ値および前記メッセージのそれぞれの部分オープン復号化値は、前記複数のバリデータ装置のそれぞれ一つからの単一応答セッションにおいて前記リクエスタ装置によって受信され、
前記複数のバリデータ装置から受信された前記部分オープン復号化値は、前記メッセージの前記デジタル署名を計算するために前記リクエスタ装置によって集約される、
請求項9に記載のシステム。 - 前記DSAプロセスは、楕円曲線DSA(Elliptic Curve DSA (ECDSA:ECDSA)を備える、
請求項10に記載のシステム。 - 前記DSAプロセスが、エドワード曲線DSA(Edwards-curve DSA:EdDSA)プロセスを備える、
請求項10に記載のシステム。 - 前記署名データ値は、以下の構成要素(i)加法的準同形であり、閾値復号化プロセスを含む暗号化プロセスに基づいて計算された前記複数の分割秘密鍵に分割される前記秘密鍵に対応する前記公開鍵で暗号化されたランダム値の逆数と、(ii)加法的準同型であり、閾値復号化プロセスを含む暗号化プロセスに基づいて計算された前記複数の分割秘密鍵に分割された前記秘密鍵に対応する前記公開鍵による以下の暗号化と、を含み、前記暗号化は、ランダム値の逆数と、前記ランダム値の累乗に乗算された既知の定数点のハッシュと、DSAプロセスを使用する前記ビーコン装置によって計算されたDSA秘密鍵と、の積である、
請求項10に記載のシステム。 - 前記署名データ値は、以下の構成要素:(i)加算に対し準同形である秘密共有プロセスを用いて複数の第1の構成要素に分割されたランダム値の逆数、および、(ii)前記秘密共有プロセスを用いて、前記ランダム値の逆数と、前記ランダム値の累乗に乗算された既知の定数点のハッシュと、前記EdDSAを用いて前記ビーコン装置により計算されたEdDSA秘密鍵と、の積を複数の第2の構成要素に分割することと、を含み、前記複数のバリデータ装置のそれぞれは、それぞれの第1および第2の構成部品を備える、
請求項10に記載のシステム。 - 前記署名データ値は、(iii)前記ランダム値の前記累乗に乗算された前記既知の定数点のハッシュをさらに含む、
請求項21に記載のシステム。 - 前記署名データ値の前記DSA秘密鍵は、導出インデックス値(derivation index value)を使用してベースDSA秘密鍵からDSA秘密鍵を導出することを可能にするhdツリーを使用して生成され、前記導出インデックス値は、前記署名データ値をローカルに計算するために前記複数のバリデータ装置に提供される、
請求項10に記載のシステム。 - 前記DSA秘密鍵は、EdDSA秘密鍵を備え、前記ベースDSA秘密鍵からDSA秘密鍵を導出することを可能にするhd(the hd-enabling deriving DSA-private keys from the base DSA-private key)は、前記ベースEdDSA秘密鍵からEdDSA秘密鍵を導出することを備える、
請求項23に記載のシステム。 - 前記DSA秘密鍵は、ECDSA秘密鍵を備え、前記ベースDSA秘密鍵からDSA秘密鍵を導出することを可能にするhd(the hd-enabling deriving DSA-private keys from the base DSA-private key)は、前記ベースECDSA秘密鍵からECDSA秘密鍵を導出することを備える、
請求項23に記載のシステム。 - 前記公開鍵と、前記複数の分割秘密鍵に分割された前記秘密鍵とは、閾値復号化プロセスに基づいて計算され;
複数のDSA鍵ペアを計算し;
複数のDSA鍵ペアのそれぞれの秘密鍵を暗号化して、複数の暗号化秘密鍵を作成し;
前記複数の暗号化秘密鍵を前記複数のバリデータ装置に提供し;
前記複数の暗号化秘密鍵のうちのひとつを選択し、前記署名データ値は選択された秘密鍵を含まず;
選択された前記暗号化秘密鍵の指標を前記複数のバリデータ装置に提供し、前記部分オープン復号化値は前記選択された暗号化秘密鍵、および、選択された前記秘密鍵を含まない署名データ値を用いて計算される;
ためのコードをさらに備える、請求項10に記載のシステム。 - 前記DSAプロセスはEdDSAを備え、
複数のEdDSA鍵ペアを計算し;
前記複数のEdDSA鍵ペアのそれぞれの秘密鍵を暗号化して、複数の暗号化秘密鍵を作成し;
前記複数の暗号化秘密鍵を前記複数のバリデータ装置に提供し;
前記複数の暗号化秘密鍵のうちのひとつを選択し、前記署名データ値は選択された秘密鍵を含まず;
選択された前記暗号化秘密鍵の指標を前記複数のバリデータ装置に提供し、前記部分オープン復号化値は前記選択された暗号化秘密鍵、および、選択された前記秘密鍵を含まない署名データ値を用いて計算される;
ためのコードをさらに備える、請求項10に記載のシステム。 - 前記DSAプロセスはECDSAを備え、
複数のECDSA鍵ペアを計算し;
前記複数のECDSA鍵ペアのそれぞれの秘密鍵を暗号化して、複数の暗号化秘密鍵を作成し;
前記複数の暗号化秘密鍵を前記複数のバリデータ装置に提供し;
前記複数の暗号化秘密鍵のうちのひとつを選択し、前記署名データ値は選択された秘密鍵を含まず;
選択された前記暗号化秘密鍵の指標を前記複数のバリデータ装置に提供し、前記部分オープン復号化値は前記選択された暗号化秘密鍵、および、選択された前記秘密鍵を含まない署名データ値を用いて計算される;
ためのコードをさらに備える、請求項10に記載のシステム。 - 複数の暗号化秘密鍵を分割し;
分割された前記複数の暗号化秘密鍵のいずれか1つを選択し;
複数の署名データ値を分割し;
分割された前記署名データ値のいずれかを選択し;
暗号化された値の乗算演算を可能にすることによる、レベル1準同形秘密共有の特性を満たす秘密共有プロセスを用いて、前記選択された分割暗号化鍵と前記選択された分割署名データ値を複数のバリデータ装置に提供する;
ことをさらに備える、請求項28に記載のシステム。 - 前記レベル-1準同型秘密共有は、レベル-1準同型和秘密共有(level-1 homomorphic sum secret sharing)を備える、
請求項29に記載のシステム。 - 前記ビーコン装置は、前記メッセージによってトリガーされることなく、前記署名データ値の複数のインスタンスを計算し、送信する、
請求項9に記載のシステム。 - 前記ビーコン装置は、トラフィックが前記ビーコンから前記ネットワークに送信されるが、前記ネットワークから前記ビーコンへの方向には送信されないように、一方向に前記ネットワークに接続される、
請求項9に記載のシステム。 - 前記ビーコン装置は、前記リクエスタ装置として実装されるホットウォレットに接続されるコールドオフラインウォレットとして実装される、
請求項9に記載のシステム。 - 前記メッセージは、ブロックチェーン内のレコードとして記憶するための暗号通貨のトランザクションを含む、
請求項9に記載のシステム。 - 前記ビーコンは、前記署名値を繰り返し計算し、送信する、
請求項9に記載のシステム。 - 初期化プロセスの後、前記ビーコン装置は、異なる公開鍵、対応する秘密鍵、および署名データ値のインスタンスの定義された数を計算して送信し、前記複数のバリデータ装置は、前記事前定義された数のメッセージにサインアップする、
請求項10に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/559,693 | 2019-09-04 | ||
US16/559,693 US11088851B2 (en) | 2019-09-04 | 2019-09-04 | Systems and methods for signing of a message |
PCT/IL2020/050949 WO2021044411A1 (en) | 2019-09-04 | 2020-09-01 | Systems and methods for signing of a message |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022547876A true JP2022547876A (ja) | 2022-11-16 |
Family
ID=74680506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022514614A Pending JP2022547876A (ja) | 2019-09-04 | 2020-09-01 | メッセージの署名のためのシステムおよび方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US11088851B2 (ja) |
EP (1) | EP4026273A4 (ja) |
JP (1) | JP2022547876A (ja) |
CN (1) | CN114586313B (ja) |
AU (1) | AU2020341193A1 (ja) |
CA (1) | CA3152501A1 (ja) |
IL (1) | IL291042A (ja) |
WO (1) | WO2021044411A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11088851B2 (en) * | 2019-09-04 | 2021-08-10 | Gk8 Ltd | Systems and methods for signing of a message |
GB2586997B (en) * | 2019-09-11 | 2022-05-11 | PQ Solutions Ltd | Data communication between a group of users |
EP4049404A1 (en) * | 2020-01-24 | 2022-08-31 | Via Science, Inc. | Secure data processing |
IL272516A (en) * | 2020-02-06 | 2021-08-31 | Google Llc | Prevention of data manipulation using multiple aggregation servers |
GB2597123B (en) * | 2020-05-14 | 2023-08-30 | Hung Hung Chiu | A method for creating a hierarchical threshold signature digital asset wallet |
CN113726504A (zh) * | 2021-07-13 | 2021-11-30 | 中国电力科学研究院有限公司 | 一种电力数据签名聚合方法及系统 |
US11677552B2 (en) * | 2021-09-09 | 2023-06-13 | Coinbase Il Rd Ltd. | Method for preventing misuse of a cryptographic key |
CN113987594A (zh) * | 2021-10-26 | 2022-01-28 | 深圳前海微众银行股份有限公司 | 一种区块链签名管理方法及装置 |
US20230275932A1 (en) * | 2022-02-25 | 2023-08-31 | Vmware, Inc. | Validation of security standard implementation for applications in protected execution environment |
CN115396086A (zh) * | 2022-06-20 | 2022-11-25 | 中国联合网络通信集团有限公司 | 身份认证方法、装置、设备及存储介质 |
CN114781378B (zh) * | 2022-06-21 | 2022-09-13 | 江苏荣泽信息科技股份有限公司 | 基于区块链的企业数据治理方法及系统 |
WO2024030122A1 (en) * | 2022-08-02 | 2024-02-08 | WENEW, Inc. | Methods and systems for linking digital wallets on a blockchain network |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6845447B1 (en) * | 1998-11-11 | 2005-01-18 | Nippon Telegraph And Telephone Corporation | Electronic voting method and system and recording medium having recorded thereon a program for implementing the method |
DE602004023645D1 (de) * | 2003-10-06 | 2009-11-26 | Ibm | Dokumentierung sicherheitsbezogener aspekte beim prozess von containertransporten |
US20060143701A1 (en) * | 2004-12-23 | 2006-06-29 | Cisco Technology, Inc. | Techniques for authenticating network protocol control messages while changing authentication secrets |
US7596697B2 (en) * | 2005-02-14 | 2009-09-29 | Tricipher, Inc. | Technique for providing multiple levels of security |
US8326996B2 (en) * | 2006-06-02 | 2012-12-04 | Oracle International Corporation | Method and apparatus for establishing multiple sessions between a database and a middle-tier client |
CA2662675C (en) * | 2006-09-08 | 2016-05-24 | Certicom Corp. | Authenticated radio frequency identification and key distribution system therefor |
US7917747B2 (en) * | 2007-03-22 | 2011-03-29 | Igt | Multi-party encryption systems and methods |
JP2010050760A (ja) * | 2008-08-22 | 2010-03-04 | Hitachi Ltd | コンテンツ保護装置、および、コンテンツ利用装置 |
US8898468B2 (en) * | 2009-12-08 | 2014-11-25 | Bae Systems Information And Electronic Systems Integration Inc. | Method for ensuring security and privacy in a wireless cognitive network |
JP5447544B2 (ja) * | 2012-01-27 | 2014-03-19 | 沖電気工業株式会社 | 委託パラメータ情報生成装置、共有鍵合成装置、署名情報合成装置、通信装置、鍵共有被計算委託装置、署名情報生成被計算委託装置、被計算委託装置、鍵共有システム、署名情報検証システム及び通信システム |
EP2793194B1 (de) * | 2013-04-19 | 2017-03-15 | Kapsch TrafficCom AG | Verfahren zum Aufladen einer Onboard-Unit mit einem elektronischen Ticket |
WO2014177581A1 (en) * | 2013-04-30 | 2014-11-06 | Thomson Licensing | Threshold encryption using homomorphic signatures |
US20150104004A1 (en) * | 2013-10-10 | 2015-04-16 | Elwha Llc | Methods, systems, and devices for delivering image data from captured images to devices |
US10019703B2 (en) * | 2014-05-13 | 2018-07-10 | Google Llc | Verifying a secure connection between a network beacon and a user computing device |
US11041933B2 (en) * | 2014-06-13 | 2021-06-22 | Signify Holding B.V. | Localization based on network of wireless nodes |
US11627639B2 (en) * | 2015-01-26 | 2023-04-11 | Ievgen Verzun | Methods and apparatus for HyperSecure last mile communication |
US10149159B1 (en) * | 2015-03-19 | 2018-12-04 | Proxidyne, Inc. | Trusted beacon system and method |
US10461940B2 (en) * | 2017-03-10 | 2019-10-29 | Fmr Llc | Secure firmware transaction signing platform apparatuses, methods and systems |
US10778439B2 (en) * | 2015-07-14 | 2020-09-15 | Fmr Llc | Seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems |
EP3380984A4 (en) * | 2015-11-24 | 2019-07-31 | Ben-Ari, Adi | SYSTEM AND METHOD FOR THE PROTECTION OF DATA BY INTELLIGENT BLOCKCHAIN CONTRACT |
SG11201806713SA (en) * | 2016-02-23 | 2018-09-27 | Nchain Holdings Ltd | Blockchain-implemented method for control and distribution of digital content |
AU2016402775A1 (en) * | 2016-04-15 | 2018-09-27 | Qualcomm Incorporated | Techniques for managing secure content transmissions in a content delivery network |
US10333705B2 (en) * | 2016-04-30 | 2019-06-25 | Civic Technologies, Inc. | Methods and apparatus for providing attestation of information using a centralized or distributed ledger |
US10411897B2 (en) * | 2017-02-17 | 2019-09-10 | Factom, Inc. | Secret sharing via blockchains |
US10817873B2 (en) * | 2017-03-22 | 2020-10-27 | Factom, Inc. | Auditing of electronic documents |
US10270599B2 (en) * | 2017-04-27 | 2019-04-23 | Factom, Inc. | Data reproducibility using blockchains |
US11057819B2 (en) * | 2017-09-22 | 2021-07-06 | Intel Corporation | Physical web beacon, client and proxy |
US20190140819A1 (en) * | 2017-11-08 | 2019-05-09 | Secret Double Octopus Ltd | System and method for mekle puzzles symeteric key establishment and generation of lamport merkle signatures |
US10219106B1 (en) * | 2018-01-26 | 2019-02-26 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Secure BLE broadcast system for location based service |
US20190372765A1 (en) * | 2018-06-01 | 2019-12-05 | Roland Tegeder | System and Method for Providing an Authorised Third Party with Overt Ledger Secured Key Escrow Access to a Secret |
CN108833115B (zh) * | 2018-06-15 | 2021-01-26 | 中山大学 | 一种基于区块链的多方公平pdf合同签署方法 |
CN109756485B (zh) * | 2018-12-14 | 2022-11-18 | 平安科技(深圳)有限公司 | 电子合同签署方法、装置、计算机设备及存储介质 |
US11088851B2 (en) * | 2019-09-04 | 2021-08-10 | Gk8 Ltd | Systems and methods for signing of a message |
-
2019
- 2019-09-04 US US16/559,693 patent/US11088851B2/en active Active
-
2020
- 2020-09-01 AU AU2020341193A patent/AU2020341193A1/en active Pending
- 2020-09-01 CN CN202080072249.7A patent/CN114586313B/zh active Active
- 2020-09-01 JP JP2022514614A patent/JP2022547876A/ja active Pending
- 2020-09-01 WO PCT/IL2020/050949 patent/WO2021044411A1/en unknown
- 2020-09-01 EP EP20860262.3A patent/EP4026273A4/en active Pending
- 2020-09-01 CA CA3152501A patent/CA3152501A1/en active Pending
-
2021
- 2021-08-09 US US17/396,831 patent/US11677566B2/en active Active
-
2022
- 2022-03-01 IL IL291042A patent/IL291042A/en unknown
Also Published As
Publication number | Publication date |
---|---|
CA3152501A1 (en) | 2021-03-11 |
EP4026273A1 (en) | 2022-07-13 |
US20210367793A1 (en) | 2021-11-25 |
WO2021044411A1 (en) | 2021-03-11 |
EP4026273A4 (en) | 2023-09-27 |
CN114586313B (zh) | 2024-05-14 |
US20210067345A1 (en) | 2021-03-04 |
CN114586313A (zh) | 2022-06-03 |
US11677566B2 (en) | 2023-06-13 |
US11088851B2 (en) | 2021-08-10 |
US20230318850A1 (en) | 2023-10-05 |
AU2020341193A1 (en) | 2022-04-14 |
IL291042A (en) | 2022-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11677566B2 (en) | Systems and methods for signing of a message | |
CN113424185B (zh) | 快速不经意传输 | |
JP7202358B2 (ja) | 閾ボールトを生成する、コンピュータにより実施される方法 | |
US11895231B2 (en) | Adaptive attack resistant distributed symmetric encryption | |
US10277395B2 (en) | Cryptographic key-generation with application to data deduplication | |
Wang et al. | Privacy-preserving public auditing for data storage security in cloud computing | |
TWI821248B (zh) | 用以移轉數位資產支配權之電腦實施方法及系統 | |
JP7316283B2 (ja) | デジタル署名されたデータを取得するためのコンピュータにより実施される方法及びシステム | |
JP7492508B2 (ja) | コンピュータにより実施される、デジタル署名されたデータのシェアを分配するシステム及び方法 | |
JP2021523620A (ja) | 秘密を通信する方法及びシステム | |
US10630476B1 (en) | Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems | |
GB2603495A (en) | Generating shared keys | |
CN111917533A (zh) | 具有减少泄漏的区间统计量的隐私保护基准分析 | |
JP2023522748A (ja) | 秘密共有を伴う(ec)dsaしきい値署名 | |
CN115336224A (zh) | 自适应抗攻击分布式对称加密 | |
Pei et al. | Smart contract based multi-party computation with privacy preserving and settlement addressed | |
Yang et al. | A lightweight delegated private set intersection cardinality protocol | |
WO2023055371A1 (en) | Replicated secret share generation for distributed symmetric cryptography | |
US12022007B2 (en) | Systems and methods for signing of a message | |
Ricci et al. | Privacy-enhancing group signcryption scheme | |
Lin | Cloud data storage with group collaboration supports | |
US20220094532A1 (en) | Methods and systems for homomorphic data representation and concealment powered by clifford geometric algebra | |
Berenjian | Encryption-Based Secure Protocol Design for Networks | |
JP2024515092A (ja) | ネストされた閾値署名 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20220502 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20220428 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230828 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20240123 |