TW202232913A - 共享金鑰產生技術 - Google Patents

共享金鑰產生技術 Download PDF

Info

Publication number
TW202232913A
TW202232913A TW110147256A TW110147256A TW202232913A TW 202232913 A TW202232913 A TW 202232913A TW 110147256 A TW110147256 A TW 110147256A TW 110147256 A TW110147256 A TW 110147256A TW 202232913 A TW202232913 A TW 202232913A
Authority
TW
Taiwan
Prior art keywords
key
shared
secret
coordinator
group
Prior art date
Application number
TW110147256A
Other languages
English (en)
Inventor
米凱拉 佩蒂特
Original Assignee
瑞士商區塊鏈授權股份有限公司
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 瑞士商區塊鏈授權股份有限公司 filed Critical 瑞士商區塊鏈授權股份有限公司
Publication of TW202232913A publication Critical patent/TW202232913A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • 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/32Cryptographic 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/3247Cryptographic 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
    • 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/32Cryptographic 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/3247Cryptographic 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/3255Cryptographic 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
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Lock And Its Accessories (AREA)

Abstract

一種基於至少一個共享秘密而產生一共享密碼金鑰之電腦實施方法,其中屬於一第一群組之每一參與者具有一第一秘密之一各別份額,該第一秘密具有一第一臨界值及一對應第一公鑰,其中一第二協調者具有對應於一第二秘密之一第二公鑰,其中該第二協調者經組配以產生相同的共享密碼金鑰。

Description

共享金鑰產生技術
發明領域
本揭露內容係關於一種產生共享密碼金鑰之方法。
發明背景
公鑰密碼編譯為一種類型之密碼系統,其使用一對金鑰:僅對於私鑰之擁有者已知的私鑰,及基於對應私鑰產生且可經播散而不損害私鑰之安全性的公鑰。
公鑰密碼編譯使得發送者能夠使用接收者之公鑰(即,對應於僅對接收者已知之私鑰的公鑰)來加密訊息。經加密訊息僅可接著使用接收者之私鑰來解密。此類型之加密稱為非對稱加密。
非對稱加密之替代方案為對稱加密。此處,僅一個金鑰(秘密金鑰)用以加密及解密訊息(任何資料)兩者。經由對稱加密通訊的實體必須交換金鑰,以使得其可用於解密過程中。
返回至公鑰密碼編譯,發送者可使用其自身私鑰來簽署訊息,例如,以證明訊息正在由發送者發送,及/或以指示發送者贊同該訊息。簽章者(即,簽章產生方)使用其私鑰來建立訊息上的數位簽章。具有簽章者之對應公鑰的任何人可使用相同訊息及該訊息上之數位簽章來驗證簽章之建立是否有效,即簽章是否的確係使用簽章者之私鑰進行。
數位簽章方案通常涉及三個程序,即演算法。金鑰產生演算法用以產生隨機私鑰及對應公鑰。簽署演算法用以基於訊息及私鑰產生簽章。驗證演算法用以在給定公鑰及訊息的情況下驗證簽章是否已使用對應私鑰且根據簽署演算法產生。
臨界密碼編譯係指密碼編譯系統在多個參與者之間分配私鑰之份額(有時稱為片段)。需要臨界(亦即,最小)數目個彼等份額以便重新建立私鑰。取決於所使用之特定系統,私鑰可首先產生且接著分裂成多個份額,或可在無私鑰曾存在之情況下產生私鑰之份額。訊息可藉由對應公鑰加密。臨界數目個參與者必須協作以便解密訊息。
臨界簽章方案允許群組中之臨界數目個參與者使用共享私鑰之個別份額建立訊息上(亦即,訊息之)數位簽章。此處,數位簽章為基於待簽署訊息產生之簽章。在此類方案中,僅在臨界數目個參與者同意在訊息上產生簽章的情況下才可建立簽章。使用較少數目個參與者產生簽章之任何嘗試將不會產生有效簽章。因此,可證明群組的有效簽章(即,使用訊息及共享私鑰產生的簽章)具有臨界數目個人同意產生簽章。此亦意味著任何對手需要獲得臨界數目個私鑰份額來用該私鑰仿造簽章。臨界簽章份額之共同特徵為在私鑰份額中之任一者丟失的情況下,私鑰仍可復原,其限制條件為臨界數目個份額仍可用。
Diffie-Hellman金鑰交換係指用於產生共享密碼金鑰之協定。該協定可概述如下。第一方及第二方各自具有各別私鑰-公鑰對。公鑰為每一方所已知。第一方可基於第一方之私鑰與第二方之公鑰之橢圓曲線乘法來計算共享金鑰。第二方可基於第二方之私鑰與第一方之公鑰之橢圓曲線乘法來計算相同的共享金鑰。此允許雙方計算相同的共享金鑰而不會洩漏私人資訊。僅雙方可計算共享金鑰,此係因為其僅知曉其各別私鑰。
發明概要
現有Diffie-Hellman (DH)金鑰交換方法之問題為其引入單故障點。亦即,若雙方中之一者的私鑰被攻擊者破解(或甚至意外地披露),則可獲得共享金鑰(假定另一方之公鑰為已知的,情況常常如此)。因此,攻擊者可解密已藉由共享金鑰加密的任何訊息。若訊息含有敏感資料,諸如個人識別資訊、財務資料、醫療資料等,則此尤其成問題。
因此,將需要增加DH金鑰交換方法的安全性,或涉及基於秘密(例如,私鑰)產生金鑰的其他類似方法。
根據本文中所揭露之一個態樣,提供一種基於至少一個共享秘密而產生一共享密碼金鑰之電腦實施方法,其中屬於一第一群組之每一參與者具有一第一秘密之一各別份額,該第一秘密具有一第一臨界值及一對應第一公鑰,其中一第二協調者具有對應於一第二秘密之一第二公鑰,且其中該方法由該第一群組中之一第一協調者執行且包含:自該第一群組中之至少第一臨界數目個參與者獲得該共享密碼金鑰之各別份額,其中該共享密碼金鑰之每一各別份額係基於i)該第一秘密之一各別份額或用以計算該第一秘密之該各別份額的一各別私用多項式之一各別零階係數以及ii)該第二公鑰;及基於所獲得之該密碼金鑰之該等各別份額產生該共享密碼金鑰,其中該第二協調者經組配以產生相同的共享密碼金鑰。
本發明之實施例增加共享金鑰(在共享金鑰為兩個不同方已知之意義上共享)之安全性。替代基於完整秘密(例如,私鑰)產生共享金鑰,替代地基於共享秘密(例如,共享私鑰)產生共享金鑰。在群組中之每一參與者具有共享秘密之份額(例如,共享私鑰之份額)的意義上,共享秘密為共享的。此共享秘密不為兩個不同方所已知。此外,在無人知曉金鑰之意義上,共享秘密可不作為整個秘密(例如,金鑰)存在。共享秘密在下文將稱為共享Diffie-Hellman (DH)金鑰,從而更易於將其與群組之共享秘密區分開。然而,應瞭解,此僅用作方便的標記。共享秘密亦可稱為共同秘密,亦即,多於一個方之共同(已知)之秘密。私鑰份額可能已產生,使得私鑰從不存在。熟習此項技術者將熟悉此類技術。因此,無單一方能夠存取共享秘密。該共享秘密具有一臨界值,從而意謂需要該共享秘密之至少臨界數目個份額來重建該共享秘密。
本發明基於一方(或實體)之公鑰及至少臨界數目個共享秘密份額來產生共享DH金鑰。僅在使共享DH金鑰之足夠不同份額可用的情況下才可建構完整的共享DH金鑰。現在,鑒於共享秘密並不存在(亦即,其並非由任何一個參與者儲存),其不能被破解,使得攻擊者更難以獲得共享DH金鑰。此外,在攻擊者破解共享秘密之參與者份額的情況下,該份額並不提供足夠資訊以便重建共享秘密及共享DH金鑰。攻擊者將必須破解臨界數目個份額,此為比破解單一私鑰困難得多的任務。
為進一步改良共享DH金鑰之安全性,雙方皆可使用共享秘密。亦即,參與者之一個群組可具有第一共享秘密之份額,且參與者之另一群組可具有第二共享秘密之份額。每一群組使用其他群組之公鑰及其自身群組的共享秘密之份額產生共享DH金鑰之各別份額。
在一些實施例中,群組中的每一參與者可能需要計算共享DH金鑰的份額,以便使彼群組建構共享DH金鑰。此對於需要所有參與者之協作的使用情況特別有用。
較佳實施例之詳細說明 密碼編譯初步 橢圓曲線群組
橢圓曲線
Figure 02_image001
滿足方程:
Figure 02_image003
其中
Figure 02_image005
Figure 02_image007
為滿足
Figure 02_image009
之常數。此橢圓曲線上之群組界定為滿足此方程之元素
Figure 02_image011
以及無窮遠處之點
Figure 02_image013
(其為單位元素)之集合。對此群組中元素之群組運算稱為橢圓曲線點加法,且用
Figure 02_image015
表示。此群組由
Figure 02_image017
表示,且其階由
Figure 02_image019
表示。
此群組運算可用於界定對元素之另一運算,稱為點乘,用
Figure 02_image021
表示。對於點
Figure 02_image023
及標量
Figure 02_image025
,點
Figure 02_image027
界定為點
Figure 02_image029
自身相加
Figure 02_image031
次。
在橢圓曲線密碼編譯中,私鑰界定為標量
Figure 02_image033
,其中
Figure 02_image035
為集合
Figure 02_image037
之表示,且對應公鑰為橢圓曲線上之點
Figure 02_image027
。舉例而言,在一些區塊鏈協定中,橢圓曲線選擇為secp 256k1橢圓曲線,且值
Figure 02_image039
Figure 02_image041
Figure 02_image043
完全由此曲線指定。已給定此等值計算此群組之階數
Figure 02_image019
,在此曲線之情況下,該階數為素數,且secp 256k1標準亦指定點
Figure 02_image029
,該點將用作此群組之產生器。 橢圓曲線數位簽章演算法
為了在訊息
Figure 02_image045
上建立簽章,使用私鑰
Figure 02_image039
,採取以下步驟: 1.    計算訊息摘要
Figure 02_image047
,其可為任何雜湊函數。舉例而言,在一些實例中,
Figure 02_image049
,其中
Figure 02_image051
為SHA-256雜湊函數。應注意,訊息可能僅雜湊一次,或使用相同或不同之雜湊函數雜湊兩次以上。 2.    選擇隨機整數
Figure 02_image053
,其中
Figure 02_image019
為橢圓曲線之階數,例如secp256k1曲線。在下文中,
Figure 02_image031
稱為臨時私鑰。 3.    計算對應於此臨時私鑰之臨時公鑰
Figure 02_image055
。 4.    計算
Figure 02_image057
。若
Figure 02_image059
,則返回至步驟2。 5.    計算臨時金鑰之乘法倒數
Figure 02_image061
。 6.    計算
Figure 02_image063
。若
Figure 02_image065
,則返回至步驟2。 7.    訊息
Figure 02_image045
上之簽章為
Figure 02_image067
臨時金鑰必須保密,否則可能在給定訊息及簽章的情況下計算私鑰。另外,每次產生簽章時,必須使用不同的臨時金鑰。若不為此情況,則可在給定兩個不同簽章及其對應訊息的情況下導出私鑰
Figure 02_image039
給定訊息
Figure 02_image045
、公鑰
Figure 02_image069
及對應簽章
Figure 02_image067
,接著可藉由完成以下步驟來驗證簽章: 1.    計算訊息摘要
Figure 02_image071
,例如
Figure 02_image073
。 2.    計算
Figure 02_image075
Figure 02_image019
之乘法倒數
Figure 02_image077
。 3.    計算
Figure 02_image079
Figure 02_image081
。 4.    計算點
Figure 02_image083
。 5.    若
Figure 02_image085
,即無窮遠點,則簽章無效。 6.    若
Figure 02_image087
,則令
Figure 02_image089
,且計算
Figure 02_image091
。若
Figure 02_image093
,則簽章有效。
在臨界簽章方案中,此私鑰
Figure 02_image039
分成多個金鑰份額,該等份額分佈在臨界方案群組之參與者之間。 聯合可驗證隨機秘密共享
假定
Figure 02_image095
個參與者想要建立僅能由方案中至少(
Figure 02_image097
個參與者重新產生之聯合秘密。要建立共享秘密,採取以下步驟: 1.    參與者就每一參與者之唯一標記
Figure 02_image099
達成一致。每一參與者
Figure 02_image099
產生
Figure 02_image101
個隨機數
Figure 02_image103
, 其中
Figure 02_image105
意謂集合
Figure 02_image107
中隨機產生之元素,其中
Figure 02_image035
為集合
Figure 02_image037
之記法。由此,每一參與者具有
Figure 02_image109
階之秘密多項式
Figure 02_image111
, 對於
Figure 02_image113
。應注意,自現在開始吾人省略
Figure 02_image115
記法,且假定所有對整數之算術運算係以模
Figure 02_image019
進行的。 2.    每一參與者
Figure 02_image099
將值
Figure 02_image117
發送至參與者
Figure 02_image119
,例如僅使用與參與者
Figure 02_image119
之安全通訊頻道。 3.    每一參與者
Figure 02_image099
將其自有之共享秘密多項式之私用秘密份額計算為
Figure 02_image121
共享秘密份額為形式為
Figure 02_image123
之點,其中
Figure 02_image099
為方案中之參與者標記。如步驟1至3中所描述,用於建立
Figure 02_image039
之秘密份額之此方法在本文中由參與者
Figure 02_image099
Figure 02_image125
表示。應注意,「JVRSS」通常代表「聯合驗證隨機秘密共享」,且亦包括步驟4及5。然而,在整個本文件中,JVRSS意謂執行至少步驟1至3,其中步驟4及5為任擇的步驟。
現在,參與者已產生共享多項式,其可各自驗證其他參與者已將正確資訊共享給所有參與者,且所有參與者具有相同的共享多項式。此以如下方式進行。 4.    每一參與者
Figure 02_image099
向所有參與者廣播混淆係數
Figure 02_image127
對於
Figure 02_image129
。 5.    每一參與者
Figure 02_image099
藉由計算
Figure 02_image131
且驗證下式來檢查每一參與者
Figure 02_image119
是否已正確地計算多項式點
Figure 02_image133
Figure 02_image135
若所有參與者發現此等式對每一多項式皆成立,則此群組可共同確信其全部建立了相同的共享多項式。 重建共享秘密
假定參與者想要重建為共享多項式之零階的共享秘密
Figure 02_image039
。給定此多項式上之(
Figure 02_image097
個點,形式為
Figure 02_image137
, 則為發現共享秘密
Figure 02_image039
,計算
Figure 02_image139
, 其係自稱為「拉格朗日內插」之通式導出。 公鑰計算
給定在JVRSS之步驟4中共享的
Figure 02_image095
個零階私用多項式係數公鑰
Figure 02_image141
(對於
Figure 02_image113
),每一參與者使用下式計算對應於共享秘密
Figure 02_image039
的共享公鑰
Figure 02_image143
Figure 02_image145
共享秘密之加法
為了計算在一組
Figure 02_image095
個參與者之間共享的兩個共享秘密之加法,其中每一秘密多項式之階數為
Figure 02_image109
,而無任何實體知曉個別秘密,採取以下步驟: 1.    產生第一共享秘密
Figure 02_image039
,其中參與者
Figure 02_image099
之份額由
Figure 02_image147
(對於
Figure 02_image113
)給出,臨界值為
Figure 02_image101
。 2.    產生第二共享秘密
Figure 02_image041
,其中參與者
Figure 02_image099
之份額由
Figure 02_image149
給出,臨界值為
Figure 02_image101
。 3.    每一參與者
Figure 02_image099
計算其自有之相加式份額
Figure 02_image151
。 4.     所有參與者將其相加式份額
Figure 02_image153
廣播給所有其他參與者。 5.    每一參與者對至少
Figure 02_image101
個份額
Figure 02_image153
進行內插以計算
Figure 02_image155
此共享秘密相加方法由參與者
Figure 02_image099
Figure 02_image157
表示,此導致每一參與者
Figure 02_image099
知曉
Figure 02_image159
共享秘密之乘積
為了計算在一組
Figure 02_image095
個參與者之間共享的兩個共享秘密之乘積,其中每一秘密多項式之階數為
Figure 02_image109
,該群組採取以下步驟:
1. 產生第一共享秘密
Figure 02_image039
,其中參與者
Figure 02_image099
之份額由
Figure 02_image125
(對於
Figure 02_image113
)給出。共享秘密多項式之階數為
Figure 02_image109
,此意謂需要
Figure 02_image101
個參與者重新建立該多項式。 2.產生第二共享秘密
Figure 02_image041
,其中參與者
Figure 02_image099
之份額由
Figure 02_image149
給出,且該共享秘密多項式再次具有階數
Figure 02_image109
。 3.每一參與者使用下式計算其自有之乘法份額
Figure 02_image161
Figure 02_image163
。 4. 所有參與者將其乘法份額
Figure 02_image161
廣播給所有其他參與者。 5. 每一參與者在
Figure 02_image165
處在至少
Figure 02_image167
個份額
Figure 02_image161
上內插以計算
Figure 02_image169
對於參與者
Figure 02_image099
,計算兩個共享秘密之乘積的此方法在本文中由
Figure 02_image171
表示。 共享秘密的倒數
為了計算共享秘密
Figure 02_image039
之倒數,採取以下步驟: 1.    所有參與者計算共享秘密
Figure 02_image173
之乘積,結果為
Figure 02_image175
。 2.    每一參與者計算
Figure 02_image177
之模倒數,得出
Figure 02_image179
。 3.    每一參與者
Figure 02_image099
藉由計算下式來計算其自有之倒數秘密份額
Figure 02_image181
計算共享秘密倒數之此方法對於參與者
Figure 02_image099
Figure 02_image183
表示。 共享私鑰產生及驗證
為了計算
Figure 02_image185
個參與者之間的共享私鑰
Figure 02_image039
,建立簽章需要其中
Figure 02_image187
個,參與者執行JVRSS,臨界值為
Figure 02_image187
,且公鑰計算如上所述。結果為每一參與者
Figure 02_image113
具有一私鑰份額
Figure 02_image189
及對應共享公鑰
Figure 02_image191
臨時金鑰份額產生
為了產生臨時金鑰份額及對應
Figure 02_image193
,如簽章中所要求,具有臨界值為
Figure 02_image101
的共享私鑰
Figure 02_image039
的大小為
Figure 02_image095
之群組執行以下步驟: 1.    產生共享秘密之倒數份額
Figure 02_image195
,其中需要
Figure 02_image101
個份額才能重新建立該秘密。 2.     每一參與者使用
Figure 02_image197
驗證中共享之混淆係數計算
Figure 02_image199
, 接著其計算
Figure 02_image201
。 3.    每一參與者
Figure 02_image099
儲存
Figure 02_image203
產生共享金鑰
本發明之實施例使得兩方能夠產生密碼金鑰,其中彼等方中之至少一者包含一群參與者(例如,使用者或機器)。圖1說明用於產生共享金鑰之實例系統100。如圖所示,系統100包含第一方,其包含第一協調者101及第一群組參與者102。圖1中僅展示三個參與者102,但應理解,通常第一群組可包含任意數目之參與者。此外,在圖1中,第一協調者101展示為與參與者102不同,但在一些實施例中,第一協調者101亦可為參與者102之一,例如,第一參與者102a。圖1中亦展示包含第二協調者103之第二方。
如圖2中所展示,在一些實施例中,第二方亦可包含第二群組參與者104。如同第一群組參與者之情況,第二群組通常可包含任何數目個參與者104。
第一協調者101、第二協調者103、第一群組參與者中之每一者以及第二群組參與者中之每一者操作各別計算裝備。各別計算裝備中之每一者包含各別處理設備,其包含一或多個處理器,例如一或多個中央處理單元(CPU)、加速器處理器(GPU)、特殊應用處理器及/或場可規劃閘陣列(FPGA)。各別計算裝備亦可包含記憶體,即一或多個非暫時性電腦可讀媒體形式之電腦可讀儲存體。記憶體可包含一或多個記憶體單元,其採用一或多個記憶體媒體,例如,諸如硬碟之磁性媒體;諸如固態驅動機(SSD)、快閃記憶體或EEPROM之電子媒體;及/或諸如光碟驅動機之光學媒體。各別計算裝備可包含至少一個使用者終端機,例如桌上型或筆記本電腦、平板電腦、智慧型電話或諸如智慧型手錶之可穿戴裝置。替代地或另外,各別計算裝備可包含一或多個其他聯網資源,諸如經由使用者終端機存取之雲端計算資源(雲端計算資源包含在一或多個站點處實施之一或多個實體伺服器裝置之資源)。應瞭解,描述為由一方(例如,協調者、參與者,等)執行之任何動作可由該方操作之各別計算設備來執行。
返回參考圖1,第一協調者101 (代表第一群組參與者)與第二協調者103希望產生共享金鑰。此金鑰將稱為共享Diffie-Hellman (DH)金鑰。此標記僅出於方便起見而使用,並且除了本說明書所規定的限制之外,不對金鑰施加任何限制。
在圖1之實施例中,第二協調者103具有對應於私鑰之公鑰。「具有」金鑰意謂將彼金鑰儲存於記憶體中,或以其他方式能夠存取及擷取彼金鑰。舉例而言,金鑰可在紙上寫下,且接著例如經由使用者介面輸入至裝置。在此實施例中,私鑰為完整(亦即,全、整個等)金鑰。若私鑰藉助於產生器點直接映射至對應公鑰,則可稱私鑰為完整金鑰。
第一群組之各參與者102具有私鑰之份額(「私鑰份額」)。此私鑰將稱為第一私鑰。與第二協調者103相關聯之私鑰將稱為第二私鑰。第一私鑰與第二私鑰為不同金鑰(例如,不同整數)。在一些實例中,第一協調者101亦具有第一私鑰之份額。
該第一私鑰為臨界私鑰。此意謂需要至少臨界數目個第一私鑰份額來重建第一私鑰。用於產生臨界私鑰本身之份額的技術將為熟習此項技術者所熟悉。一個此類技術稱為聯合可驗證隨機秘密共享(JVRSS),且在上文描述。第一群組參與者可各自使用JVRSS來產生其各別第一私鑰份額。另一技術稱為Shamir秘密共享方案(SSSS)。第一群組參與者可各自使用SSSS以獲得其各別第一私鑰份額。注意,SSSS需要協調者101,而JVRSS不需要。用於產生及分配私鑰份額之另一技術描述於WO2017145010A1中。
第一私鑰具有對應公鑰,即第一公鑰。第一公鑰可為第一協調者101及/或參與者102中之一者、一些或全部所知。
在實施例中,第一協調者101可獲得對應於第二私鑰之公鑰(第二公鑰)。舉例而言,第二協調者103可將第二公鑰傳輸至第一協調者101。或者,第二公鑰可自諸如網站或區塊鏈之公開可存取源獲得。或者,第一協調者101可能已存取第二公鑰,例如,其可儲存於記憶體中。
第一協調者101可將第二公鑰發送至第一群組之參與者102中的一些或全部。第一協調者101可將第二公鑰單獨地發送至每一參與者102,或第一協調者101可將第二公鑰廣播至第一群組。亦不排除參與者102中的一些或全部可能已存取第二公鑰,在此情況下,第一協調者101不必將第二公鑰發送至彼等參與者102,但第一協調者101仍可選擇如此執行。
第一協調者101獲得共享DH金鑰之至少臨界數目個各別份額。舉例而言,第一協調者101可將對共享DH金鑰之各別份額的請求發送(例如,廣播)至參與者102。如圖1中所示,在一些實施例中,並非所有參與者都需要產生共享DH金鑰之份額。此將取決於第一私鑰之臨界值。共享DH金鑰之每一份額係基於第一私鑰之不同各別份額而產生(亦即,隨其而變),亦即,共享DH金鑰之每一份額由不同參與者102產生。共享DH金鑰之每一份額亦係基於第二公鑰而產生。回想一下,每一參與者要麼已具有第二公鑰,要麼可自第一協調者101獲得第二公鑰。在一些實例中,份額中之一者由第一協調者101產生。
共享DH金鑰之每一份額可藉由執行各別第一私鑰份額與第二公鑰之橢圓曲線乘法來產生。並不排除使用替代性數學運算來計算共享DH金鑰之份額。
產生共享DH金鑰之份額的參與者102中之每一者可將其份額直接或經由一或多個其他參與者傳輸至第一協調者101。份額可經由安全通訊頻道傳輸。
在獲得共享DH金鑰之不同份額的所需數目之情況下,第一協調者101產生完整的共享DH金鑰。共享DH金鑰隨所獲得份額而變。舉例而言,共享DH金鑰可藉由對共享DH金鑰之份額執行橢圓曲線內插來獲得。
第二協調者103經組配以產生相同的共享DH金鑰。在一些實施例中,第二協調者103基於第一公鑰及第二私鑰產生共享DH金鑰。在此狀況下,第二協調者可存取全第二私鑰,亦即,不僅僅存取第二私鑰之一份額。第二協調者101可能已存取第一公鑰,例如,第一公鑰可自諸如區塊鏈之公開可存取源獲得。或者,第一協調者101可將第一公鑰發送至第二協調者103。在一些實例中,每一參與者102可具有對應於其各別第一私鑰份額的第一公鑰份額。第一協調者101可能需要第一公鑰之臨界數目個份額以便產生第一公鑰,隨後將其發送至第二協調者103。
如上文所提及,可使用JVRSS或等效方案產生第一私鑰份額。在此等實施例中,第一群組中之每一參與者具有私用多項式之各別零階係數(例如,見上文所描述之JVRSS方法的步驟1)。現在,代替基於其各別第一私鑰份額計算其各別共享DH金鑰份額,每一參與者基於其各別零階係數產生其各別份額。共享DH金鑰之每一份額亦係基於第二公鑰。在此等實例中,必須自每一參與者102獲得共享DH金鑰之各別份額。
參考圖2,第二私鑰可為臨界私鑰,且第二群組中之每一參與者104可具有第二私鑰之份額。在此等實施例中,第二協調者103可執行與第一協調者等效的操作,以便基於由第二群組之參與者104產生的共享DH金鑰之各別份額產生共享DH金鑰。例如,第二群組之參與者可基於第一公鑰及第二私鑰之其各別份額或其各別私用多項式之其各別零階係數而產生共享DH金鑰之份額。
無論第二協調者103選擇何種方法,第一協調者101與第二協調者103都將具有相同的共享DH金鑰。共享DH金鑰可接著用以加密訊息,亦即任何類型的資料。舉例而言,第一協調者101可加密訊息,且將經加密訊息發送至第二協調者103,或反之亦然。訊息可包含個人及/或機密資訊,例如財務資料、醫療資料、處方資料等。該訊息可包含合約或其他類型之文件。
共享DH金鑰可用作對稱加密金鑰,在此情況下,其可用以加密及解密訊息。可使用任何合適的對稱加密方案,例如資料加密標準(DES)、三元DES、Blowfish、進階加密標準(AES)、Rivest密碼法4 (RC4)、RC5或RC6。舉例而言,第一協調者101可自第二協調者103接收已用共享DH金鑰加密之經加密訊息。第一協調者101接著可使用共享DH金鑰來解密訊息(亦即,解密密文以獲得明文訊息)。
在一些實例中,共享DH金鑰可用作非對稱金鑰,例如,公鑰。在此情況下,訊息可藉由共享DH金鑰來加密,使得其僅可用對應私鑰解密。第一協調者101及第二協調者103皆不具有足夠資訊來計算對應私鑰。為進行此操作,第一協調者101及第二協調者103可執行臨界計算(例如,在私鑰份額上之內插),以計算對應於共享DH金鑰之私鑰。
在一些實例中,在獲得對應於共享DH金鑰之私鑰的情況下,第一協調者101可基於待簽署之訊息及私鑰產生數位簽章。第二協調者103亦可使用私鑰產生數位簽章。在一些實例中,可產生包含鎖定至共享DH金鑰之輸出的區塊鏈交易(例如,藉由第一協調者101或第二協調者)。第一協調者101或第二協調者102可藉由產生區塊鏈交易來解鎖輸出,該區塊鏈交易包含參考先前區塊鏈交易的輸出的輸入且包含使用私鑰產生的數位簽章及包含交易的至少部分的訊息。
第一協調者101可基於共享DH金鑰產生一或多個額外密碼金鑰。舉例而言,共享DH金鑰可輸入至雜湊函數(例如,SHA256、SHA512等)。雜湊摘要可用作額外密碼金鑰。共享DH金鑰可被雜湊多次以產生多個額外密碼金鑰。可以替代方式產生額外密碼金鑰。舉例而言,共享DH金鑰可使用點加法與不同金鑰(例如,不同公鑰)組合。第二協調者103可執行與第一協調者相同的操作以產生相同的額外密碼金鑰。此允許自相同共享DH金鑰產生許多金鑰,以例如防止金鑰再用。
圖3展示用於產生共享DH金鑰之實例方法300。應瞭解,步驟中之一些係任擇的。在步驟S301處,第一協調者101例如自第二協調者103獲得第二公鑰。在步驟S302處,第一協調者將請求發送至第一群組之參與者102,請求共享DH金鑰(共同秘密)之份額。在步驟S303處,第一協調者101獲得至少臨界數目個共享DH金鑰份額。在步驟S304處,第一協調者101計算共享DH金鑰。共享DH金鑰可接著用於加密訊息及其它用處。
下文提供所描述實施例之其他實例。在以下實例中,Bob等效於第一協調者101,且Alice等效於第二協調者103。
為了計算其中金鑰中之至少一者為一群組
Figure 02_image095
個參與者之間的共享秘密之共享DH金鑰,可採取以下步驟。假設Alice想用Bob之臨界群組建立秘密頻道。亦即,Bob之群組具有
Figure 02_image095
個參與者,每一參與者具有私鑰
Figure 02_image041
之份額
Figure 02_image205
,且假設其中
Figure 02_image101
個參與者需要協作來計算私鑰。假設Alice及Bob群組之對應公鑰係公開的。
為了計算需要群組中之
Figure 02_image101
個參與者協作之共享DH金鑰,可採取以下步驟。
1. Alice 103接收Bob群組
Figure 02_image207
之公鑰,且使用點乘計算
Figure 02_image209
。 2.   Bob群組之協調者Bob 101使用
Figure 02_image211
請求共享DH金鑰之至少
Figure 02_image101
個份額。 3.   Bob群組中之至少
Figure 02_image101
個參與者使用Alice之公鑰計算
Figure 02_image213
。 4.
Figure 02_image101
個參與者使用安全通訊頻道將其份額發送至Bob 101。 5.   Bob 101使用下式計算共享DH金鑰
Figure 02_image215
, 其中
Figure 02_image217
與用於法線內插之等式相同,但使用點加法而非自然數之通常加法。
現在Alice 103及Bob之群組兩者皆具有共享金鑰
Figure 02_image219
,其可用來加密訊息。共享金鑰可用於對稱或非對稱加密。若用於後者,則可使用臨界計算來計算對應私鑰
Figure 02_image221
若Alice之私鑰亦為共享金鑰,則其群組亦將執行與步驟2至5相同之步驟。
亦存在用以計算避免橢圓曲線內插之共享DH金鑰,但每一參與者必須貢獻的另一方式。參與者可採取以下步驟。
1. Alice 103接收Bob群組
Figure 02_image207
之公鑰,且計算
Figure 02_image209
。 2.   Bob群組之協調者Bob 101請求所有
Figure 02_image095
個參與者使用
Figure 02_image211
計算DH金鑰之份額。 3.   Bob群組中之
Figure 02_image095
個參與者使用Alice之公鑰計算
Figure 02_image223
,其中
Figure 02_image225
為參與者
Figure 02_image099
之私用多項式之零階。 4.
Figure 02_image095
個參與者使用安全通訊頻道或僅向方案參與者廣播來將其份額發送至Bob 101。 5.   Bob 101使用下式計算共享DH金鑰
Figure 02_image227
在此等式中,求和為點加法。
若Alice 101同樣為臨界方案之部分,則其群組亦將執行步驟2至5。
在兩個方案之步驟4中,參與者皆應較佳地經由與Bob 101之安全通訊頻道發送其份額。若其在公用網路上發送其份額且該等份額被獲得,則任何人可能能夠計算共享DH金鑰。此與共享DH金鑰應為Alice 103與Bob之群組之間的共享秘密相矛盾。
可組合兩種方法。舉例而言,Bob之群組可使用第一方法計算共享DH金鑰,而Alice之群組使用第二方法計算共享DH金鑰,或反之亦然。第一方法略慢於第二方法,但其允許共享DH金鑰在丟失的情況下被恢復。相反地,第二方法比第一方法快,但若Bob群組之參與者丟失其共享私鑰之其各別份額,則共享DH金鑰不可恢復。當然,共享DH金鑰仍可由Alice計算。若使用情況受益於所有參與者之貢獻,則第二方法係合乎需要的。 實例使用情況
本發明之實施例可用於多種使用情況,且詳言之,需要移除與私鑰相關聯之單故障點的使用情況。舉例而言,若全私鑰丟失,則基於私鑰產生之共享金鑰不可恢復。此外,若共享金鑰係基於全私鑰產生且彼私鑰被盜或以其他方式被破解,則用共享金鑰加密之任何訊息可能可被解密(取決於共享金鑰如何產生)。本發明的實施例亦為特別有利的,其中訊息的增加的安全性係重要的,使得訊息不容易解密。舉例而言,重要的係保持敏感資料(諸如患者之病史)安全且可靠。
共享DH金鑰可用以加密及份額患者之醫療資料。舉例而言,病患可選擇與第三方服務提供者或資料公司共享其醫療資料。例如,患者可將其資料出售給資料分析公司。在此實例中,患者(等效於第二協調者103)可具有私鑰-公鑰對。服務提供者、患者及患者的醫生(等效於第一群組參與者102,其中服務提供者亦為第一協調者101)可各自具有共享私鑰之份額。此實例中之三方中之至少兩者需要建構共享DH金鑰。患者及服務提供者使用本發明之實施例以建構共享DH金鑰。若患者及/或其醫生提供共享DH金鑰之份額至服務提供者,則服務提供者將僅能夠建構相同的共享DH金鑰。患者可接著用共享DH金鑰加密其醫療資料,且將經加密資料發送至服務提供者。服務提供者可接著使用共享DH金鑰來解密且獲得對患者之醫療資料的存取。
作為另一實例,共享DH金鑰可用以共享媒體內容,例如作為流式傳輸服務的部分。舉例而言,內容提供者(第二協調者103)可能想要將電影串流傳輸至使用者。內容提供者具有私鑰-公鑰對。內容提供者及使用者具有共享私鑰之份額。在此實例中,使用者等效於第一協調者101。內容提供者使用其私鑰及對應於共享私鑰之公鑰產生共享DH金鑰。內容提供者加密電影之部分或全部,且將經加密資料發送至使用者。使用者可使用使用者之私鑰份額及內容提供者之公鑰來產生共享DH金鑰之份額。在此實例中,私鑰份額之所有擁有者需要參與以產生共享DH金鑰。因此,若內容提供者亦提供共享DH金鑰之共享,則使用者將僅能夠產生全共享DH金鑰。內容提供者可選擇提供共享DH金鑰之份額以換回自使用者支付。
一般而言,本發明可用以加密任何訊息。作為一個特定實例使用情況,訊息可為區塊鏈交易之一部分或全部。另外或替代地,經加密訊息可包括於區塊鏈異動中。
上文已簡單論述臨界簽章方案。藉由此類方案,本發明之實施例可用以儲存共享秘密之經加密份額,亦即,用以產生臨界簽章之份額的私鑰之份額。接著,若共享秘密之份額丟失,則可恢復份額,其中臨界數目個參與者同意解密已丟失其份額之參與者的份額。
圖4說明用作區塊鏈協定之一部分之實例交易協定。實例區塊鏈協定在文獻中有詳細記錄,但為了完整起見,此處提供實例協定交易之描述。此為基於UTXO之協定的實例。交易152 (簡稱為「Tx」)為區塊鏈之基本資料結構(區塊鏈之各區塊包含一或多個交易152)。下文將參考基於輸出或基於「UTXO」之協定來描述。然而,此並不限於所有可能的實施例。
在基於UTXO之模型中,每一交易(「Tx」) 152包含資料結構,其包含一或多個輸入202及一或多個輸出203。每一輸出203可包含未用交易輸出(UTXO),其可用作另一新交易之輸入202的來源(若尚未兌換UTXO)。UTXO包括指定數位令牌量之值,例如表示數位資產之量。此表示(分散式)分類帳上之令牌的設定數目。除了其他資訊之外,UTXO亦可包含交易之交易ID,該交易ID來自該交易。交易資料結構亦可包含標頭201,該標頭可包含輸入欄位202及輸出欄位203之大小之指示符。標頭201亦可包括交易之ID。在實施例中,交易ID為交易資料(排除交易ID本身)之雜湊且儲存於提交至挖掘者的原始交易152之標頭201中。
假定例如Alice之第一使用者希望建立將一定量之相關數位資產令牌至例如Bob之第二使用者的交易152j。在圖4中,Alice之新交易152j標記為「 Tx 1 」。其花費在序列中的先前交易152i之輸出203中鎖定至Alice的一定量之數字令牌,且將此令牌的至少一些轉移至Bob。在圖4中,先前交易152i標記為「 Tx 0 」。 Tx 0 Tx 1 僅係任意標記。其未必意謂 Tx 0 為區塊鏈中之第一交易,或 Tx 1 為池中之緊接著的下一交易。 Tx 1 可指向任何先前(即,前期)交易,其仍具有鎖定至Alice之未用輸出203。
在Alice建立其新交易 Tx 1 時,或至少至其將新交易發送至網路106時,先前交易 Tx 0 可能已經驗證且包括於區塊鏈中。其在當時可能已經包括於區塊中之一者中,或其可能仍等候在池154中,在此情況下,其不久後將包括於新區塊中。或者, Tx 0 Tx 1 可經建立且一起發送至區塊鏈網路,或若節點協定允許緩衝「孤兒」交易,則 Tx 0 可甚至在 Tx 1 之後發送。如本文中所使用之術語「先前」及「後續」在交易序列之上下文中係指如交易中規定之交易指標所界定的序列中之交易的次序(哪些交易指向哪些其他交易,等等)。該等術語同樣可用「前置」及「後置」或「前期」及「後期」、「父代」及「子代」等來替換。其未必暗示該等交易經建立、發送至網路或到達任何給定節點之次序。然而,直至且除非父代交易經驗證,否則將不驗證指向先前交易(前期交易或「父代」)之後續交易(後期交易或「子代」)。在其父代之前到達節點之子代被視為孤兒。取決於節點協定及/或挖掘者行為,子代可被捨棄或緩衝一段時間以等待父代。
先前交易 Tx 0 的一或多個輸出203中之一者包含特定UTXO,其在此處標記為 UTXO 0 。每一UTXO包含規定由UTXO表示之一定金額之數位令牌的值,及鎖定指令碼,該鎖定指令碼界定必須由後續交易之輸入202中之解鎖指令碼符合的條件,以便驗證後續交易且因此成功地兌換UTXO。通常,鎖定指令碼將該金額鎖定至特定當事方(其中包括鎖定指令碼之交易之受益人)。即,鎖定指令碼界定解鎖條件,其通常包含如下條件:後續交易之輸入中之解鎖指令碼包含先前交易經鎖定至的當事方之密碼簽章。
鎖定指令碼(亦稱scriptPubKey)係用節點協定辨識之區域特定語言編寫之一段程式碼。此類語言之特定實例稱為「指令碼」。鎖定指令碼規定需要何種資訊來支出交易輸出203,例如Alice之簽章之要求。解鎖指令碼出現在交易之輸出中。解鎖指令碼(亦稱scriptSig)係用區域特定語言編寫的一段程式碼,該區域特定語言提供滿足鎖定指令碼準則所需之資訊。舉例而言,其可含有Bob之簽章。解鎖指令碼出現在交易之輸入202中。
因此,在所繪示之實例中, Tx 0 之輸出203中之 UTXO 0 包含鎖定指令碼[Checksig P A ],該鎖定指令碼需要Alice之簽章Sig P A 以便兌換 UTXO 0 (嚴格地,以便使嘗試兌換 UTXO 0 之後續交易係有效的)。[Checksig P A ]含有來自Alice之公鑰-私鑰對中的公鑰 P A Tx 1 之輸入202包含指向Tx 1之指標(例如,藉助於其交易ID, TxID 0 ,其在實施例中為整個交易 Tx 0 之雜湊)。 Tx 1 之輸入202包含識別 Tx 0 內之 UTXO 0 的索引,以在 Tx 0 之任何其他可能輸出中識別 UTXO 0 Tx 1 之輸入202進一步包含解鎖指令碼<Sig P A >,其包含Alice的密碼簽章,該密碼簽章藉由Alice將其來自金鑰對之私鑰應用於資料之預界定部分(在密碼學中有時被稱作「訊息」)而建立。何數據(或「訊息」)需要由Alice簽署以提供有效簽章可由鎖定指令碼或節點協定或其組合界定。
當新交易 Tx 1 到達節點時,該節點應用節點協定。此包含一起執行鎖定指令碼及解鎖指令碼以檢查解鎖指令碼是否符合鎖定指令碼中所界定之條件(其中此條件可包含一或多個準則)。在實施例中,此涉及串接二個指令碼: <Sig P A > < P A > || [Checksig P A ] 其中「||」表示串接,且「<…>」意謂將資料置放於堆疊上,且「[…]」為解鎖指令碼所包含之函數(在此實例中,基於堆疊之語言)。等效地,指令碼可一個接一個地運用共同堆疊來執行,而非串接指令碼。無論如何,當一起執行時,指令碼使用如包括於 Tx 0 之輸出中之鎖定指令碼中的Alice之公鑰 P A ,以認證 Tx 1 之輸入中的解鎖指令碼含有簽署資料之預期部分的Alice之簽章。資料自身(「訊息」)之預期部分亦需要包括於 Tx 0 中,以便執行此認證。在實施例中,經簽署資料包含整個 Tx 0 (因此確實需要包括單獨元素來以明碼指定資料之經簽署部分,此係因為其已固有地存在)。
藉由公開-私用密碼學之證實的細節將為熟習此項技術者所熟悉。基本上,若Alice已藉由用其私鑰加密而簽署訊息,則以明碼給定Alice之公鑰及訊息(未加密訊息),諸如區塊鏈網路之節點的另一實體能夠認證訊息之加密版本必然已由Alice簽署。簽署通常包含對訊息進行雜湊、簽署該雜湊及將此標記至訊息之明碼版本上作為簽章,因此使得公鑰之任何持有者能夠認證該簽章。因此,應注意,本文中對特定資料片段或交易之部分或其類似者進行簽章之任何參考在實施例中可意謂對彼資料片段或交易之部分的雜湊進行簽章。
Tx 1 中之解鎖指令碼符合 Tx 0 之鎖定指令碼中規定的一或多個條件(因此在所展示之實例中,若Alice的簽章經提供於 Tx 1 中且經認證),則區塊鏈節點將 Tx 1 視為有效的。若其為挖掘節點,此意謂其將將該交易添加至交易池,等待工作量證明。若其為轉發節點,則其將交易 Tx 1 轉發至區塊鏈網路中之一或多個其他節點,以使得其將在整個網路中傳播。一旦 Tx 1 已經驗證且包括於區塊鏈中,則此將來自 Tx 0 UTXO 0 界定為已用。應注意, Tx 1 可僅在使用未用交易輸出203之情況下為有效的。若其嘗試使用已由另一交易使用之輸出,則 Tx 1 將為無效的,即使符合所有其他條件亦如此。因此,節點104亦需要檢查是否已用先前交易 Tx 0 中所提及之UTXO (已形成另一有效交易之有效輸入)。此為區塊鏈150將所定義次序強加於交易上很重要的一個原因。實務上,給定節點104可維護單獨的資料庫,其標記在哪些交易中哪些UTXO 203已用,但最終什麼界定了是否UTXO已用在於其是否已形成至區塊鏈中之另一有效交易之有效輸入。
若給定交易之所有輸出203中所指定的總金額大於由所有其輸入202所指向之總金額,則此為大多數交易模型中無效之另一基礎。因此,此類交易將不被傳播,亦不挖掘至區塊中。
應注意,常常示意性地表示指令碼程式碼(即,不使用確切語言)。舉例來說,可編寫[Checksig P A ]以意謂[Checksig P A ] = OP_DUP OP_HASH160 <H( P A )> OP_EQUALVERIFY OP_CHECKSIG。「OP_…」係指指令碼語言之特定作業碼。OP_CHECKSIG (亦稱為「Checksig」)為取兩個輸入(簽章及公鑰)且使用橢圓曲線數位簽章演算法(ECDSA)驗證簽章之有效性的指令碼作業碼。在執行階段,簽章(「sig」)之任何出現自指令碼移除,但諸如雜湊謎題之額外要求保持於由「sig」輸入驗證之交易中。作為另一實例,OP_RETURN為指令碼語言之作業碼,其用於產生交易之不可用輸出,該輸出可儲存交易內之後設資料,且藉此將後設資料不可變地記錄在區塊鏈中。例如,後設資料可包含需要儲存於區塊鏈中之文件。
簽章 P A 為數位簽章。在實施例中,此係基於使用橢圓曲線secp256k1之ECDSA。數位簽章簽署特定資料片段。在實施例中,對於給定交易,簽章將簽署交易輸入之部分及交易輸出中之一些或全部。數位簽章所簽章之輸出之特定部分取決於SIGHASH旗標。SIGHASH旗標通常係4位元組程式碼,其包括於簽章之末尾,以選擇對哪些輸出進行簽署(且因此在簽署時固定)。
鎖定指令碼有時被稱作「scriptPubKey」,其係指其包含各別交易所鎖定至之當事方的公鑰之事實。解鎖指令碼有時被稱為「scriptSig」,此係因為其供應對應簽章。然而,更一般而言,在區塊鏈之所有應用程式中,兌換UTXO之條件不一定包含認證簽章。更一般而言,指令碼處理語言可用於界定任何一或多個條件。因此,「鎖定指令碼」及「解鎖指令碼」兩個更一般的詞可為較佳的。
根據本發明之一些實施例,交易可為支付至公鑰雜湊(P2PKH)輸出,該輸出被鎖定至共享DH金鑰之雜湊。為了被解鎖,引用P2PKH輸出之稍後交易之輸入需要包括(未雜湊之)共享DH金鑰及基於對應於該共享DH金鑰之私鑰產生的簽章。在指令碼中表示時,「鎖定指令碼」及「解鎖指令碼」可呈以下形式: 鎖定指令碼 = OP_DUP OP_HASH160 <公鑰雜湊> OP_EQUAL OP_CHECKSIG 解鎖指令碼 = <簽章> <公鑰>
將瞭解,已僅藉助於實例描述以上實施例。更一般而言,可提供根據以下陳述項中之任何一或多者的方法、設備或程式。
陳述項1.  一種基於至少一個共享秘密而產生一共享密碼金鑰之電腦實施方法,其中屬於一第一群組之每一參與者具有一第一秘密之一各別份額,該第一秘密具有一第一臨界值及一對應第一公鑰,其中一第二協調者具有對應於一第二秘密之一第二公鑰,且其中該方法由該第一群組中之一第一協調者執行且包含: 自該第一群組中之至少第一臨界數目個參與者獲得該共享密碼金鑰之各別份額,其中該共享密碼金鑰之每一各別份額係基於i)該第一秘密之一各別份額或用以計算該第一秘密之該各別份額的一各別私用多項式之一各別零階係數以及ii)該第二公鑰;及 基於所獲得之該密碼金鑰之該等各別份額產生該共享密碼金鑰,其中該第二協調者經組配以產生相同的共享密碼金鑰。
陳述項2.  如陳述項1之方法,其中該協調者為屬於該第一群組之該等參與者中的一者。
陳述項3.   如陳述項1或陳述項2之方法,其包含: 獲得該第二公鑰;及 將該第二公鑰傳輸至該第一群組中之每一參與者。
陳述項4.   如任一前述陳述項之方法,其包含將該第一公鑰傳輸至第二協調者。
陳述項5.   如陳述項4之方法,其包含: 自該第一群組中之至少第一臨界數目個參與者獲得該第一公鑰之各別份額,其中該第一公鑰之每一各別份額係基於該第一秘密之該各別份額及一公鑰產生器。
陳述項6.   如陳述項3或取決於其的任何陳述項之方法,其中該獲得該第二公鑰包含自該第二協調者接收該第二公鑰。
陳述項7.   如任一前述陳述項之方法,其中基於該第一秘密之該各別份額產生該共享DH金鑰之該各別份額,且其中該產生該共享密碼金鑰包含對所獲得的該共享密碼金鑰之該等各別份額執行橢圓曲線內插。
陳述項8.   如陳述項1至6中任一項之方法,其中該共享密碼金鑰之該各別份額係基於用以計算該第一秘密之該各別份額的一各別私用多項式之該各別零階係數而產生,其中該獲得該共享密碼金鑰之該等各別份額包含自該第一群組參與者中之每一者獲得該共享密碼金鑰之一各別份額,且其中該產生該共享密碼金鑰包含對所獲得的該共享密碼金鑰之該等各別份額執行點加法。
陳述項9.   如任一前述陳述項之方法,其包含用該共享密碼金鑰加密一第一訊息。
陳述項10.如陳述項9之方法,其包含將該經加密第一訊息傳輸至該第二協調者及/或一不同方。
陳述項11. 如陳述項9或陳述項10之方法,其包含: 產生一區塊鏈交易,其中該區塊鏈交易包含該經加密訊息;及 使該區塊鏈交易可用於一區塊鏈網路之一或多個節點。
陳述項12. 如任一前述陳述項之方法,其中該共享密碼金鑰為一對稱金鑰,其中已用該共享密碼金鑰來加密一第二訊息,且其中該方法包含使用該共享密碼金鑰來解密該第二訊息。
陳述項13. 如任一前述陳述項之方法,其包含: 獲得對應於該共享密碼金鑰之一私鑰;及 使用該對應私鑰產生一數位簽章,及/或使用該對應私鑰解密已用該共享密碼金鑰加密之一第三訊息。
陳述項14. 如陳述項13之方法,其中一第一區塊鏈交易包含鎖定至該共享密碼金鑰之一輸出,且其中該方法包含產生一第二區塊鏈交易,該第二區塊鏈交易具有參考該第一區塊鏈交易之該輸出的一輸入且包含該數位簽章以用於解鎖該輸出。
陳述項15. 如任一前述陳述項之方法,其包含基於該共享密碼金鑰產生一或多個額外密碼金鑰。
陳述項16. 如陳述項15之方法,其中該產生該一或多個額外密碼金鑰包含將一雜湊函數應用於該共享密碼金鑰。
陳述項17. 如任一前述陳述項之方法,其中該第二秘密為一共享秘密,其中一第二群組包含多個參與者,且其中該第二群組中之每一參與者具有一第二秘密之一各別份額,該第二秘密具有一第二臨界值。
陳述項18. 如陳述項17之方法,其中該第二群組中之每一參與者具有用以計算該第二秘密之該各別份額的一各別私用多項式之一各別零階係數。
陳述項19. 一種電腦設施,其包含: 記憶體,其包含一或多個記憶體單元;及 處理設備,其包含一或多個處理單元,其中該記憶體儲存經配置以在該處理設備上執行之程式碼,該程式碼經組配以便在處於該處理設備上時執行如陳述項1至18中任一項之方法。
陳述項20. 一種電腦程式,其體現於電腦可讀儲存體上且經組配以便在於電腦設施上執行時執行如陳述項1至18中任一項之方法。
根據本文中所揭露之另一態樣,可提供一種包含第一參與者及金鑰產生器之動作的方法。
根據本文中所揭露之另一態樣,可提供一種包含第一參與者之電腦設施及金鑰產生器的系統。
一旦給定本文中之揭露內容,所揭露技術之其他變型或使用案例對於熟習此項技術者可變得顯而易見。本揭露內容之範圍不受所描述實施例限制而僅受隨附申請專利範圍限制。
100:系統 101:第一協調者 102a,102b,102c,104a,104b,104c:參與者 103:第二協調者 152i:先前交易 152j:新交易 201:標頭 202:輸入 203:交易輸出 300:方法 S301,S302,S303,S304:步驟
為了輔助理解本揭露內容之實施例且展示此類實施例可如何付諸實施,僅藉助於實例隨附圖式附圖,在隨附圖式中: 圖1示意性地說明根據本發明之一些實施例之用於產生共享金鑰之實例系統, 圖2示意性地說明根據本發明之一些實施例的用於產生共享金鑰之另一實例系統, 圖3展示根據本發明之一些實施例的用於產生共享金鑰之實例方法,且 圖4示意性地說明實例區塊鏈交易協議。
100:系統
101:第一協調者
102a,102b,102c:參與者
103:第二協調者

Claims (19)

  1. 一種基於至少一個共享秘密而產生一共享密碼金鑰的電腦實施方法,其中,屬於一第一群組之每一參與者分別具有一第一秘密之一個別份額,該第一秘密具有一第一臨界值及一對應第一公鑰,其中,一第二協調者具有對應於一第二秘密的一第二公鑰,並且其中,該方法係由該第一群組中之一第一協調者執行,且該方法包含: 獲得分別來自該第一群組中之至少該第一臨界數目個參與者的該共享密碼金鑰之個別份額,其中,該共享密碼金鑰之個別份額各係奠基於(1)用來計算該第一秘密之該個別份額的一個別私用多項式的一個別零階係數、以及(2)該第二公鑰;及 基於所獲得的該密碼金鑰之該等個別份額而產生該共享密碼金鑰,其中,該第二協調者受組配為可產生同一個共享密碼金鑰。
  2. 如請求項1之方法,其中,該協調者為屬於該第一群組的該等參與者中之一者。
  3. 如請求項1或請求項2之方法,其包含: 獲得該第二公鑰;及 將該第二公鑰傳輸給該第一群組中之每一參與者。
  4. 如前述請求項中任一項之方法,其包含:將該第一公鑰傳輸給第二協調者。
  5. 如請求項4之方法,其包含: 獲得分別來自該第一群組中之至少該第一臨界數目個參與者的該第一公鑰之個別份額,其中,該第一公鑰之個別份額各係奠基於該第一秘密之該個別份額及一公鑰產生器。
  6. 如請求項3或其任一附屬請求項之方法,其中,所述獲得該第二公鑰之作業包含:接收來自該第二協調者的該第二公鑰。
  7. 如前述請求項中任一項之方法,其中,該共享密碼金鑰之該個別份額係基於用來計算該第一秘密之該個別份額的一個別私用多項式之該個別零階係數所產生,其中,所述獲得該共享密碼金鑰之該等個別份額之作業包含自該第一群組之參與者中之每一者分別獲得該共享密碼金鑰之一個別份額,並且其中,所述產生該共享密碼金鑰之作業包含對所獲得的該共享密碼金鑰之該等個別份額進行點加法。
  8. 如前述請求項中任一項之方法,其包含:以該共享密碼金鑰加密一第一訊息。
  9. 如請求項8之方法,其包含:將該經加密第一訊息傳輸至該第二協調者及/或另一方。
  10. 如請求項8或請求項9之方法,其包含: 產生一區塊鏈交易,其中,該區塊鏈交易包含該經加密訊息;及 使該區塊鏈交易可為一區塊鏈網路之一或多個節點所用。
  11. 如前述請求項中任一項之方法,其中,該共享密碼金鑰為一對稱金鑰,其中,一第二訊息已藉該共享密碼金鑰被加密,並且其中,該方法包含:使用該共享密碼金鑰來解密該第二訊息。
  12. 如請求項1至10中任一項之方法,其包含: 獲得對應於該共享密碼金鑰的一私鑰;及 使用該對應私鑰來產生一數位簽章,並/或使用該對應私鑰來解密已藉該共享密碼金鑰被加密的一第三訊息。
  13. 如請求項12之方法,其中,一第一區塊鏈交易包含鎖定於該共享密碼金鑰的一輸出,並且其中,該方法包含:產生一第二區塊鏈交易,該第二區塊鏈交易具有參考該第一區塊鏈交易之該輸出的一輸入,且包含用於解鎖該輸出的該數位簽章。
  14. 如前述請求項中任一項之方法,其包含:基於該共享密碼金鑰而產生一或多個額外密碼金鑰。
  15. 如請求項14之方法,其中,所述產生該一或多個額外密碼金鑰之作業包含:對該共享密碼金鑰施用一雜湊函數。
  16. 如前述請求項中任一項之方法,其中,該第二秘密為一共享秘密,其中,一第二群組包含多個參與者,並且其中,該第二群組中之每一參與者分別具有一第二秘密之一個別份額,該第二秘密具有一第二臨界值。
  17. 如請求項16之方法,其中,該第二群組中之每一參與者分別具有用來計算該第二秘密之該個別份額的一個別私用多項式之一個別零階係數。
  18. 一種電腦設施,其包含: 記憶體,其包含一或多個記憶體單元;及 處理設備,其包含一或多個處理單元,其中,該記憶體儲存有受配置以在該處理設備上運行的程式碼,該程式碼被組配成會在於該處理設備上時進行如請求項1至17中任一項之方法。
  19. 一種體現於電腦可讀儲存體上的電腦程式,其受組配為可在運行於電腦設施上時執行如請求項1至17中任一項之方法。
TW110147256A 2021-02-05 2021-12-16 共享金鑰產生技術 TW202232913A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB2101590.4 2021-02-05
GB2101590.4A GB2603495A (en) 2021-02-05 2021-02-05 Generating shared keys

Publications (1)

Publication Number Publication Date
TW202232913A true TW202232913A (zh) 2022-08-16

Family

ID=74878980

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110147256A TW202232913A (zh) 2021-02-05 2021-12-16 共享金鑰產生技術

Country Status (8)

Country Link
US (1) US20240097894A1 (zh)
EP (1) EP4289103A1 (zh)
JP (1) JP2024506026A (zh)
KR (1) KR20230141845A (zh)
CN (1) CN116830523A (zh)
GB (1) GB2603495A (zh)
TW (1) TW202232913A (zh)
WO (1) WO2022167163A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI825997B (zh) * 2022-09-16 2023-12-11 瑞昱半導體股份有限公司 可編程安全管理裝置以及在安全裝置之間進行金鑰轉發的控制方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115378617B (zh) * 2022-10-21 2023-01-10 三未信安科技股份有限公司 一种区块链门限签名方法及其系统
CN116541872B (zh) * 2023-07-07 2024-04-09 深圳奥联信息安全技术有限公司 数据信息安全传输方法和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3132560A4 (en) * 2014-04-17 2017-12-20 Hrl Laboratories, Llc A method for secure and resilient distributed generation of elliptic curve digital signature algorithm (ecdsa) based digital signatures with proactive security
EP3862956B1 (en) 2016-02-23 2024-01-03 nChain Licensing AG Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
WO2019158209A1 (en) * 2018-02-16 2019-08-22 Ecole polytechnique fédérale de Lausanne (EPFL) Methods and systems for secure data exchange
US11683163B2 (en) * 2018-06-20 2023-06-20 Iot And M2M Technologies, Llc ECDHE key exchange for server authentication and a key server

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI825997B (zh) * 2022-09-16 2023-12-11 瑞昱半導體股份有限公司 可編程安全管理裝置以及在安全裝置之間進行金鑰轉發的控制方法

Also Published As

Publication number Publication date
KR20230141845A (ko) 2023-10-10
WO2022167163A1 (en) 2022-08-11
GB202101590D0 (en) 2021-03-24
EP4289103A1 (en) 2023-12-13
CN116830523A (zh) 2023-09-29
US20240097894A1 (en) 2024-03-21
GB2603495A (en) 2022-08-10
JP2024506026A (ja) 2024-02-08

Similar Documents

Publication Publication Date Title
CN113424185B (zh) 快速不经意传输
CN108292402B (zh) 用于信息的安全交换的公共秘密的确定和层级确定性密钥
KR101999188B1 (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
TWI821248B (zh) 用以移轉數位資產支配權之電腦實施方法及系統
US9705683B2 (en) Verifiable implicit certificates
TWI807125B (zh) 用以分配數位簽署資料之份額的電腦實施系統及方法
TWI813616B (zh) 用以獲取數位簽署資料之電腦實行方法及系統
TW202232913A (zh) 共享金鑰產生技術
CN115176441A (zh) 基于身份的公钥生成协议
TWI807103B (zh) 用於共享公共秘密之電腦實施系統及方法
CN113711564A (zh) 用于加密数据的计算机实现的方法和系统
US20220368539A1 (en) Computer implemented method and system for storing certified data on a blockchain
CN115885498A (zh) 阈值签名
TW202231018A (zh) 識別阻斷服務攻擊之技術
Lizama-Pérez et al. Public hash signature for mobile network devices
KR20230002941A (ko) 비밀 공유를 갖는 (ec)dsa 임계값 서명
CN113141249B (zh) 一种门限解密方法、系统及可读存储介质
Lin Cloud data storage with group collaboration supports
CN117837127A (zh) 生成数字签名
CN118160275A (zh) 阈值签名方案
CN118160273A (zh) 生成共享密钥