TWI807103B - 用於共享公共秘密之電腦實施系統及方法 - Google Patents
用於共享公共秘密之電腦實施系統及方法 Download PDFInfo
- Publication number
- TWI807103B TWI807103B TW108134023A TW108134023A TWI807103B TW I807103 B TWI807103 B TW I807103B TW 108134023 A TW108134023 A TW 108134023A TW 108134023 A TW108134023 A TW 108134023A TW I807103 B TWI807103 B TW I807103B
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- public
- key
- secret
- message
- Prior art date
Links
Images
Classifications
-
- 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/0838—Key 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/0841—Key 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
-
- 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/065—Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
-
- 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- 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/0819—Key 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/0825—Key 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
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Hardware Redundancy (AREA)
Abstract
揭露一種在多個節點之中共享一第一公共秘密之方法,其實現諸如比特幣塊鏈上之塊鏈交易之安全通訊。該方法包含針對至少一個第一節點判定多個第二公共秘密,其中每一第二公共秘密為該第一節點及一各別第二節點所共用、基於該第一節點之一第一私用密鑰及該第二節點之一第一公用密鑰於該第一節點處判定且基於該第二節點之該第一私用密鑰及該第一節點之該第一公用密鑰於該第二節點處判定。針對該第二節點判定為該第二節點及一第三節點所共用之一第三公共秘密。該方法包含:於該第一節點處加密該第一節點已知的該第一公共秘密之共享;以及將經加密共享發送至該等第二節點。該方法進一步包含:於該第一節點處自該第二節點接收該第一公共秘密之經加密共享,使得該多個節點中之每一者能夠達至該第一公共秘密之一臨限數目個共享以存取該第一公共秘密。
Description
發明領域
本揭露內容大體上係關於一種在多個節點之中共享公共秘密之方法,且更特定言之,係關於一種在至少三個節點之中共享公共秘密之方法。本揭露內容尤其適合(但不限於)用於密碼術以實現節點之間的安全通訊,且可適合於與(但不限於)數位錢包、塊鏈(例如:比特幣)技術及個人裝置安全性一起使用。
發明背景
在此文件中,吾人使用術語「塊鏈」來包括所有形式之基於電腦之電子分散式分類賬。此等分類賬包括基於共識之塊鏈及交易鏈技術、許可及未許可分類賬、共享分類賬及其變體。塊鏈技術之最廣泛已知之應用為比特幣分類帳,儘管已提議並開發了其他塊鏈實施。儘管本文中出於便利及說明之目的可提及比特幣,但應注意,本揭露內容不限於與比特幣塊鏈一起使用,且替代塊鏈實施方案及協定屬於本揭示內容之範疇。術語「使用者」在本文中可指人類或基於處理器之資源。
塊鏈為同級間電子分類帳,其經實施為由區塊構成之基於電腦之去中心化分散式系統,該等區塊又由交易構成。每一交易為一資料結構,該資料結構編碼塊鏈系統中之參與者之間的數位資產之控制的傳送,且包括至少一個輸入及至少一個輸出。每一區塊含有先前區塊之散列,使得區塊變為鏈接在一起以產生自一開始便已寫入至塊鏈之所有交易的永久性不可變更記錄。交易含有嵌入至其輸入及輸出中之已知為腳本的小型程式,其指定可如何及由誰存取交易之輸出。在比特幣平台上,此等腳本係使用基於堆疊之腳本處理語言來撰寫。
為了將交易寫入至塊鏈,交易必須經「驗證」。網路節點(擷取器(miner))執行工作以確保每一交易有效,其中無效交易由網路拒絕。安裝於節點上之軟體用戶端藉由執行其鎖定及解除鎖定腳本來對未用交易(UTXO)執行此驗證工作。若鎖定及解除鎖定腳本之執行評估為真(TURE),則交易為有效的且將交易寫入至塊鏈。因此,為將交易寫入至塊鏈,該交易必須:i)由接收交易之第一節點進行驗證,若交易經驗證,則節點將該交易轉送至網路中之其他節點;且ii)添加至由擷取器建構之新區塊中;且iii)經擷取,亦即添加至過去交易之公用分類帳。
雖然塊鏈技術由於密碼貨幣實施之使用而為最廣泛已知的,但數位企業家已開始探索比特幣所基於之密碼安全系統及可儲存於塊鏈上以實施新系統之資料二者的使用。若塊鏈可用於不限於密碼貨幣範圍之自動任務及程序,則將非常有利。此等解決方案將夠利用塊鏈的益處(例如,事件之永久性防篡改記錄、分散式處理等),同時在其應用中變得更通用。
國際專利申請案WO 2017/145016揭露一種在二個節點之間共享公共秘密以實現節點之間的安全通訊之方法。然而,需要提供一種在超過二個節點之中共享公共秘密之方法。
現在已設計出此改良之解決方案。
因此,根據本揭露內容,提供一種如隨附申請專利範圍中所定義之方法。
發明概要
根據本揭露內容,可提供一種在多個節點之中共享一第一公共秘密之方法,其中每一該節點與為該多個節點所共用之一密碼系統之一各別不對稱密碼第一密鑰對相關聯,該各別不對稱密碼第一密鑰對具有一各別第一私用密鑰及一各別第一公用密鑰,且其中該第一公共秘密係基於該等節點中之每一者之該第一私用密鑰,該方法包含:
針對至少一個第一節點判定多個第二公共秘密,其中每一該第二公共秘密為該第一節點及一各別第二節點所共用、基於該第一節點之該第一私用密鑰及該第二節點之該第一公用密鑰於該第一節點處判定且基於該第二節點之該第一私用密鑰及該第一節點之該第一公用密鑰於該第二節點處判定,其中該第一公共秘密之多個共享各自基於至少一個各別第二公共秘密,使得該第一公共秘密可由一臨限數目個該等共享存取但不可由小於該臨限數目個共享存取;
針對至少一個第二節點判定至少一個各別第三公共秘密,其中該各別第三公共秘密或每一各別第三公共秘密為該第二節點及一各別第三節點所共用、基於該第二節點之該第一私用密鑰及該第三節點之該第一公用密鑰於該第二節點處判定且基於該第三節點之該第一私用密鑰及該第二節點之該第一公用密鑰於該第三節點處判定,且其中該第一公共秘密之至少一個共享係基於至少一個各別該第三公共秘密;
基於一密碼系統之一各別不對稱密碼第二密鑰對之一第二私用密鑰於至少一個該第一節點處加密該第一節點已知的該第一公共秘密之至少一個共享,其中該第二密鑰對係基於該第一節點已知的一各別該第二公共秘密;
將至少一個該經加密共享自該第一節點發送至該各別該第二節點,該第二密鑰付所基於的該第二公共秘密由該第二節點共用;以及
於至少一個該第一節點處自至少一個該第二節點接收該第一秘密之至少一個各別共享,該第一秘密之該至少一個各別共享由該第二節點已知且基於該密碼系統之一各別不對稱密碼第二密鑰對之一第二私用密鑰而加密,其中該第二密鑰對係基於為該第一節點及該第二節點所共用之該第二公共秘密,以使得該多個節點中之每一者能夠達至該第一公共秘密之該臨限數目個共享。
此提供以下優點:提供一種在多個節點之間共享一公共秘密之高效方法,其隨後可用作節點之間的安全通訊之基礎。
多個該經加密共享可各自基於對應該節點已知的多個該等公共秘密之一組合。
此提供以下優點:改良效率,同時亦使得例如當共享秘密包括於塊鏈交易之腳本中時,個別公共秘密能夠不由第三方知曉,藉此改良隱私。
多個該等經加密共享可各自基於該對應該節點已知的多個該等公共秘密之至少一個各別XOR組合。
此提供以下優點:易於進行處理,藉此實現由接收端節點進行之第一公共秘密之簡單恢復。
多個該等經加密共享可基於該對應該節點已知的多個該等公共秘密之乘法組合。
該乘法組合可具有( x1 . x2 . x3 ) mod n
之形式,其中x1 、 x2 、 x3
為一節點已知的公共秘密,且n
為一密碼系統之次序。
多個該等共享可為一第一多項式函數之共享,且該第一秘密係藉助於至少一臨限數目個該等共享之多項式插值來判定。
該方法可進一步包含:
接收該第一公共秘密之至少一臨限數目個共享,其中每一該共享對應於該第一多項式函數之一各別值;以及
藉助於自該等共享之多個已知值判定該第一多項式函數之係數來判定該第一多項式函數,以判定該第一公共秘密。
判定該第一多項式函數之步驟可包含執行一差錯校正演算法。
判定該第一多項式函數之該步驟可包含執行一Berlekamp-Welch解碼演算法。
判定該第一多項式函數之該步驟可包含:
定義一差錯定位多項式函數及一第二多項式函數,其中該第二多項式函數為該第一多項式函數及該差錯定位多項式函數之一乘積;自部分簽章之多個已知值判定該第二多項式函數及該差錯定位多項式函數之係數;以及自該第二多項式函數及差錯偵測多項式函數判定該第一多項式函數,以判定該第一公共秘密。
至少一個該密碼系統可具有一同態性質。
此提供以下優點:實現方法之更靈活且高效操作。
至少一個該密碼系統可為一橢圓曲線密碼系統。
此提供以下優點:對一給定密鑰大小之高安全性。
該方法可進一步包含:基於至少一第一節點主私用密鑰(V1C
)及該第一節點與該第二節點共用之一確定性密鑰(DK)來判定至少一個該第一節點之該第一私用密鑰;
-基於該第二節點之一主公用密鑰(P1S
)及使用該公共密碼系統之該確定性密鑰(DK)之加密來判定至少一個該第二節點之該第一公用密鑰(P2S
)。
該確定性密鑰(DK)係基於一訊息(M)。
該方法可進一步包含:
-基於該訊息(M)及該第一節點之該第一私用密鑰(V2C
)產生一第一簽名訊息(SM1);以及
-經由通訊網路將該第一簽名訊息(SM1)發送至該第二節點(S),
其中可利用該第一節點之一第一公用密鑰(P2C
)驗證該第一簽名訊息(SM1),以鑑別該第一節點(C)。
該方法可進一步包含:
-經由該通訊網路自該第二節點(S)接收一第二簽名訊息(SM2);
-利用該第二節點之該第一公用密鑰(P2S)驗證該第二簽名訊息(SM2);以及
-基於驗證該第二簽名訊息(SM2)之結果來鑑別該第二節點(S),
其中該第二簽名訊息(SM2)係基於該訊息(M)或一第二訊息(M2)及該第二節點之該第一私用密鑰(V2S
)而產生。
該方法可進一步包含:
-產生一訊息(M);以及
-經由一通信網路將該訊息(M)發送至該第二節點(S)。
該方法可進一步包含:
-經由該通訊網路自該第二節點(S)接收該訊息(M)。
該方法可進一步包含:
-經由該通訊網路自另一節點接收該訊息(M)。
該方法可包含:
-自一資料儲存區及/或與該第一節點(C)相關聯的一輸入介面接收該訊息(M)。
該密碼系統可為一橢圓曲線密碼(ECC)系統,且該第一節點主公用密鑰(P1C
)及第二節點主公用密鑰(P1S
)可基於各別第一節點主私用密鑰(V1C
)及第二節點主私用密鑰(V1S
)與一產生器(G)之橢圓曲線點相乘。
該方法可進一步包含以下步驟:
-經由該通訊網路接收該第二節點主公用密鑰(P1S
);以及
-於與該第一節點(C)相關聯的一資料儲存區處儲存該第二節點主公用密鑰(P1S
)。
該方法可進一步包含以下步驟:
-於一第一節點(C)處產生該第一節點主私用密鑰(V1C
)及該第一節點主公用密鑰(P1C
);
-經由該通訊網路將該第一節點主公用密鑰(P1C
)發送至該第二節點(S)及/或其他節點;以及
-在與該第一節點(C)相關聯的一第一資料儲存區中儲存該第一節點主私用密鑰(V1C
)。
該方法可進一步包含:
-經由該通訊網路向該第二節點發送指示針對判定至少一個該公共秘密(CS)之方法使用一公共密碼系統之一通知,且
其中產生該第一節點主私用密鑰(V1C
)及該第一節點主公用密鑰(P1C
)之該步驟包含:
-基於該公共密碼系統中指定之一可允許範圍中之一隨機整數產生該第一節點主私用密鑰(V1C
);以及
-基於該第一節點主私用密鑰(V1C
)之加密判定該第一節點主公用密鑰(P1C
)。
該公共密碼系統可為具有一公共產生器(G)之一橢圓曲線密碼(ECC)系統,且該第一節點主公用密鑰(P1C
)可基於根據下式之該第一節點主私用密鑰(V1C
)與該公共產生器(G)之橢圓曲線點相乘而判定:
P1C
= V1C
× G。
該方法可進一步包含:
-基於判定一訊息(M)之一散列來判定該確定性密鑰(DK),且
其中判定該第一節點之該第一私用密鑰(V2C)之該步驟係基於根據下式之該第一節點主私用密鑰(V1C
)與該確定性密鑰(DK)之一純量相加:
V2C
= V1C
+ DK,且
其中判定該第二節點之該第一公用密鑰(P2S)之該步驟係基於根據下式之該第二節點主公用密鑰(P1S
)橢圓曲線點相加至該確定性密鑰(DK)與該公共產生器(G)之該橢圓曲線點相乘:
P2S
= P1S
+ DK × G。
該確定性密鑰(DK)可基於判定一先前確定性密鑰之一散列。
本揭露內容亦可提供一種在多個節點之間安全通訊之方法,其中該方法包含:
藉助於如上文所定義之方法判定一第一公共秘密;
-基於該公共秘密判定一對稱密鑰;
-利用該對稱密鑰將一第一通訊訊息加密為一經加密第一通訊訊息;以及
-經由一通訊網路將該經加密第一通訊訊息自該多個節點中之一者發送至該多個節點中之其他節點。
該方法可進一步包含:
-經由一通訊網路自該多個節點中之一節點接收一經加密第二通訊訊息;以及
-利用該對稱密鑰將該經加密第二通訊訊息解密為一第二通訊訊息。
本揭露內容可進一步提供一種在多個節點之間執行一線上交易之方法,其中該方法包含:
藉助於如上文所定義之方法判定一第一公共秘密;
-基於該第一公共秘密判定一對稱密鑰;
-利用該對稱密鑰將一第一交易訊息加密為一經加密第一交易訊息;
-經由一通訊網路將該經加密第一交易訊息自該多個節點中之一第一節點發送至該多個節點中之其他節點。
本揭露內容亦提供一種系統,其包含:
一處理器;及
記憶體,其包括在由該處理器執行時使得該系統執行如本文中所描述之電腦實施方法之任何實施例的可執行指令。
本揭露內容亦提供一種非暫時性電腦可讀儲存媒體,其上儲存有可執行指令,該等可執行指令在由一電腦系統之一處理器執行時使得該電腦系統至少執行本文中所描述之該電腦實施方法之一實施例。
現將描述用以判定第一節點(C)處之公共秘密(CS)之方法、裝置及系統,該公共秘密為第二節點(S)處之相同公共秘密。此用於判定一對節點之間的第二公共秘密,其隨後用於在包含三個或更多個節點的多個節點之中共享第一公共秘密,如下文參考圖7及8更詳細地描述。圖1說明系統1,該系統包括經由通訊網路5與第二節點7通訊之第一節點3。第一節點3具有相關聯第一處理裝置23,且第二節點5具有相關聯第二處理裝置27。第一節點3及第二節點7可包括電子裝置,諸如電腦、平板電腦、行動通訊裝置、電腦伺服器等。在一個實例中,第一節點3可為用戶端裝置且第二節點7可為伺服器。
第一節點3與具有第一節點主私用密鑰(V1C
)及第一節點主公用密鑰(P1C
)之第一不對稱密碼對相關聯。第二節點(7)與具有第二節點主私用密鑰(V1S
)及第二節點主公用密鑰(P1S
)之第二不對稱密碼對相關聯。用於各別第一節點3及第二節點7之不對稱密碼對可在註冊期間產生。將在下文參考圖3進一步詳細地描述由第一節點3及第二節點7執行的註冊方法100、200。每一節點之公用密鑰可諸如經由通訊網路5公開地共享。
為了判定第一節點3及第二節點7二者處之公共秘密(CS),節點3、7在不在通訊網路5上傳達私用密鑰之情況下執行各別方法300、400的步驟。
由第一節點3執行之方法300包括基於至少第一節點主私用密鑰(V1C
)及確定性密鑰(DK)來判定330第一節點第二私用密鑰(V2C
)。確定性密鑰可基於在第一節點與第二節點之間共享的訊息(M),此可包括如在下文更詳細地描述之經由通訊網路5共享該訊息。方法300亦包括基於至少第二節點主公用密鑰(P1S
)及確定性密鑰(DK)判定370第二節點第二公用密鑰(P2S
)。方法300包括基於第一節點第二私用密鑰(V2C
)及第二節點第二公用密鑰(P2S
)判定380公共秘密(CS)。
重要地,相同公共秘密(CS)亦可藉由方法400在第二節點7處判定。方法400基於第一節點主公用密鑰(P1C
)及確定性密鑰(DK)判定430第一節點第二公用密鑰(P2C
)。方法400進一步包括基於第二節點主私用密鑰(V1S
)及確定性密鑰(DK)判定470第二節點第二私用密鑰(V2S
)。方法400包括基於第二節點第二私用密鑰(V2S
)及第一節點第二公用密鑰(P2C
)判定480公共秘密(CS)。
通訊網路5可包括區域網路、廣域網路、蜂巢式網路、無線通訊網路、網際網路等。此等網路在資料可經由諸如電線、纖維光學之通訊媒體傳輸或以無線方式傳輸的情況下可易受到諸如由竊取者11進行之竊取。方法300、400可允許第一節點3及第二節點7皆在不經由通訊網路5傳輸公共秘密之情況下獨立地判定公共秘密。因此,一個優點為:公共秘密(CS)可在不必經由潛在不安全之通訊網路5傳輸私用密鑰之情況下藉由每一節點安全地判定。繼而,公共秘密可用作用於經由通訊網路5在第一節點3與第二節點7之間加密通訊之秘密密鑰(或用作秘密密鑰之基礎。
方法300、400可包括額外步驟。方法300可包括基於訊息(M)及第一節點第二私用密鑰(V2C
)於第一節點3處產生簽名訊息(SM1)。方法300進一步包括經由通訊網路將第一簽名訊息(SM1)發送360至第二節點7。繼而,第二節點7可執行接收440第一簽名訊息(SM1)的步驟。方法400亦包括如下步驟:藉由第一節點第二公用密鑰(P2C
)驗證450第一簽名訊息(SM1);以及基於驗證第一簽名訊息(SM1)之結果鑑別460第一節點3。有利地,此允許第二節點7鑑別出宣稱的第一節點(在第一簽名訊息產生的情況下)為第一節點3。此係基於如下假設:僅第一節點3具有對第一節點主私用密鑰(V1C
)之存取,且因此僅第一節點3可判定第一節點第二私用密鑰(V2C
)以用於產生第一簽名訊息(SM1)。應瞭解,類似地,第二簽名訊息(SM2)可產生於第二節點7處,且經發送至第一節點3,使得第一節點3可鑑別出第二節點7,諸如在同級間情境下。
在第一節點與第二節點之間共享訊息(M)可以多種方式達成。在一個實例中,訊息可產生於第一節點3處,該訊息隨後經由通訊網路5發送至第二節點7。替代地,訊息可產生於第二節點7處,且隨後經由通訊網路5發送至第二節點7。在另一實例中,訊息可產生於第三節點9處,且訊息經發送至第一節點3及第二節點7二者。在又一替代例中,使用者可經由待由第一節點3及第二節點7接收之使用者介面15進入訊息。在另一實例中,訊息(M)可自資料儲存區19檢索且發送至第一節點3及第二節點7。在一些實例中,訊息(M)可為公用的,且因此可經由不安全網路5傳輸。
在其他實例中,一或多個訊息(M)可在第一節點3與第二節點7之間存儲在資料儲存區13、17、19中,其中該訊息可與會話、交易等相關聯。因此,訊息(M)可經檢索,且用於在各別第一節點3及第二節點7處重新建構與會話或交易相關聯的公共秘密(CS)。有利地,可保持允許公共秘密(CS)之重新建構的記錄,而無需記錄自身必須經私用地儲存或安全地傳輸。若在第一節點3及第二節點7處執行眾多交易且將所有訊息(M)儲存於節點自身處將為不可行的,則此可為有利的。
註冊方法100、200
將參考圖3描述註冊方法100、200之實例,其中方法100由第一節點3執行,且方法200由第二節點7執行。此包括建立針對各別第一節點3及第二節點7之第一不對稱密碼對及第二不對稱密碼對。
不對稱密碼對包括相關聯私用及公用密鑰,諸如用於公用密鑰加密中之彼等。在此實例中,不對稱密碼對係使用橢圓曲線密碼術(ECC)及橢圓曲線運算之性質產生。
針對ECC之標準可包括已知標準,諸如由用於高效密碼術組之標準(www.sceg.org)描述的彼等。橢圓曲線密碼術亦描述於US 5,600,725、US 5,761,305、US 5889,865、US 5,896,455、US 5,933,504、US 6,122,736、US6,141,420、US 6,618,483、US 6,704,870、US 6,785,813、US 6,078,667、US 6,792,530中。
在方法100、200中,此包括第一及第二節點選定110、210公共ECC系統以及使用公共產生器(G)。在一個實例中,公共ECC系統可基於secp256K1,其為由比特幣使用之ECC系統。公共產生器(G)可經選擇、隨機產生或經指派。
現轉而參看第一節點3,方法100包括選定110公共ECC系統及公共產生器(G)。此可包括自第二節點7或第三節點9接收公共ECC系統及公共產生器。替代地,使用者介面15可與第一節點3相關聯,藉此使用者可選擇性地提供公共ECC系統及/或公共產生器(G)。在又一替代例中,公共ECC系統及/或公共產生器(G)中之一或二者可由第一節點3隨機地選擇。第一節點3可經由通訊網路5將指示使用公共ECC系統以及公共產生器(G)之通知發送至第二節點7。繼而,第二節點7可藉由發送指示對使用公共ECC系統及公共產生器(G)之應答的通知來選定210。
方法100亦包括第一節點3產生120第一不對稱密碼對,該第一不對稱密碼對包括第一節點主私用密鑰(V1C
)及第一節點主公用密鑰(P1C
)。此包括至少部分地基於在公共ECC系統中指定之可允許範圍內的隨機整數而產生第一主私用密鑰(V1C
)。此亦包括基於根據下式之第一節點主私用密鑰(V1C
)與公共產生器(G)之橢圓曲線點相乘而判定第一節點主公用密鑰(P1C
):
P1C
= V1C
× G (等式1)
因此,第一不對稱密碼對包括:
V1C
:藉由第一節點保持秘密之第一節點主私用密鑰。
P1C
:使得公開地知曉之第一節點主公用密鑰。
第一節點3可將第一節點主私用密鑰(V1C
)及第一節點主公用密鑰(P1C
)儲存在與第一節點3相關聯的第一資料儲存區13中。為了安全性,第一節點主私用密鑰(V1C
)可儲存於第一資料儲存區13之安全部分中以確保密鑰保持為私用的。
方法100進一步包括經由通訊網路5將第一節點主公用密鑰(P1C
)發送130至第二節點7。第二節點7可在接收220第一節點主公用密鑰(P1C
)後將第一節點主公用密鑰(P1C
)儲存230在與第二節點7相關聯的第二資料儲存區17中。
類似於第一節點3,第二節點7之方法200包括產生240第二不對稱密碼對,該第二不對稱密碼對包括第二節點主私用密鑰(V1S
)及第二節點主公用密鑰(P1S
)。第二節點主私用密鑰(V1S
)亦為可允許範圍內的隨機整數。繼而,第二節點主公用密鑰(P1S
)藉由以下方程式來判定:
P1S
= V1S
× G (等式2)
因此,第二不對稱密碼對包括:
V1S
:藉由第二節點保持秘密之第二節點主私用密鑰。
P1S
:使得公開地知曉之第二節點主公用密鑰。
第二節點7可將第二不對稱密碼對儲存在第二資料儲存區17中。方法200進一步包括將第二節點主公用密鑰(P1S
)發送250至第一節點3。繼而,第一節點3可接收140且存儲150第二節點主公用密鑰(P1S
)。
應瞭解,在一些替代例中,各別公用主密鑰可在與第三節點9 (諸如可信第三方)相關聯的第三資料儲存區19出接收及儲存。此可包括充當公用目錄之第三方,諸如憑證授權單位。因此,在一些實例中,第一節點主公用密鑰(P1C
)僅在判定需要公共秘密(CS)時由第二節點7請求及接收(且反之亦然)。
註冊步驟可僅需要作為初始設置而發生一次。隨後,主密鑰可在安全目標中再使用以產生尤其取決於確定性密鑰(DK)之公共秘密。
會話起始及藉由第一節點3判定公共秘密
現將參看圖4來描述判定公共秘密(CS)之實例。公共秘密(CS)可用於第一節點3與第二節點7之間的特定會話、時間、交易或其他用途,且使用同一公共秘密(CS)可能並非為合乎需要或安全的。因此,公共秘密(CS)可在不同會話、時間、交易等之間改變。
產生訊息(M) 310
在此實例中,由第一節點3執行之方法300包括產生310訊息(M)。訊息(M)可為隨機、偽隨機或使用者定義的。在一個實例中,訊息(M)係基於Unix時間及臨時標誌(以及任意值)。舉例而言,訊息(M)可經提供作為:
訊息(M) = UnixTime + 臨時標誌 (等式3)
在一些實例中,訊息(M)為任意的。然而,應瞭解,訊息(M)可具有在一些應用中可有用之選擇性值(諸如,Unix時間等)。
方法300包括經由通訊網路3將訊息(M)發送315至第二節點7。由於訊息(M)並不包括關於私用密鑰之資訊,因此訊息(M)可經由不安全網路發送。
判定確定性密鑰320
方法300進一步包括基於訊息(M)來判定確定性密鑰(DK)的步驟320。在此實例中,此包括判定訊息之密碼散列。密碼散列演算法之實例包括用以產生256位元之確定性密鑰(DK)的SHA-256即:
DK = SHA-256(M) (等式4)
應瞭解,亦可使用其他散列演算法。此可包括保全散列演算法(SHA)系列中之其他散列演算法。一些特定實例包括SHA-3子集中之個例,包括SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256。其他散列演算法可包括RACE原始完整性校驗訊息摘要(RACE Integrity Primitives Evaluation Message Digest;RIPEMD)系列中之彼等。特定實例可包括RIPEMD-160。其他散列函數可包括基於Zémor-Tillich散列函數及背包式類散列函數的系列。
判定第一節點第二私用密鑰330
方法300隨後包括基於第二節點主私用密鑰(V1C
)及確定性密鑰(DK)來判定330第一節點第二私用密鑰(V2C
)的步驟330。此可基於根據下式之第一節點主私用密鑰(V1C
)與確定性密鑰(DK)之純量相加:
V2C
= V1C
+ DK (等式5)
因此,第一節點第二私用密鑰(V2C
)並非為隨機值,而為替代地確定性地自第一節點主私用密鑰導出。密碼對中之對應公用密鑰(即第一節點第二公用密鑰(P2C
))具有以下關係:
P2C
= V2C
× G (等式6)
將來自等式5之V2C
代入至等式6中提供:
P2C
= (V1C
+ DK) × G (等式7)
其中『+』運算符係指純量相加且『x』運算符係指橢圓曲線點相乘。應注意,橢圓曲線密碼術代數式為分散性的,等式7可表達為:
P2C
= V1C
× G + DK × G (等式8)
最後,等式1可經代入至等式7中以提供:
P2C
= P1C
+ DK × G (等式9.1)
P2C
= P1C
+ SHA-256(M) × G (等式9.2)
在等式8至9.2中,『+』運算符係指橢圓曲線點相加。因此,對應第一節點第二公用密鑰(P2C
)在瞭解第一節點主公用密鑰(P1C
)及訊息(M)之情況下可導出。第二節點7可具有此知識以獨立地判定第一節點第二公用密鑰(P2C
),如下文參考方法400將進一步詳細地論述。
基於訊息及第一節點第二私用密鑰產生第一簽名訊息(SM1) 350
方法300進一步包括基於訊息(M)及經判定第一節點第二私用密鑰(V2C
)而產生350第一簽名訊息(SM1)。產生簽名訊息包括應用數位簽章演算法以使訊息(M)以數位方式經簽名。在一個實例中,此包括將第一節點第二私用密鑰(V2C
)應用至橢圓曲線數位簽章演算法(ECDSA)中之訊息以獲得第一簽名訊息(SM1)。
ECDSA之實例包括基於具有secp256k1、secp256r1、secp384r1、se3cp521r1之ECC系統的彼等。
第一簽名訊息(SM1)可在第二節點7處藉由對應第一節點第二公用密鑰(P2C
)校驗。第一簽名訊息(SM1)之此校驗可藉由第二節點7使用以鑑別第一節點3,此將在以下方法400中論述。
判定第二節點第二公用密鑰370'
第一節點3隨後可判定370第二節點第二公用密鑰(P2S
)。如上文所論述,第二節點第二公用密鑰(P2S
)可至少基於第二節點主公用密鑰(P1S
)及確定性密鑰(DK)。在此實例中,由於公用密鑰係利用與產生器(G)之橢圓曲線點相乘而判定370'為私用密鑰,因此第二節點第二公用密鑰(P2S
)可以類似於等式6之樣式表達為:
P2S
= V2S
× G (等式10.1)
P2S
= P1S
+ DK × G (等式10.2)
等式10.2之數學證明與上文針對用於第一節點第二公用密鑰(P2C
)之導出等式9.1所描述的相同。應瞭解,第一節點3可獨立於第二節點7而判定370第二節點第二公用密鑰。
在第一節點3處判定公共秘密380
第一節點3隨後可基於經判定第一節點第二私用密鑰(V2C
)及經判定第二節點第二公用密鑰(P2S
)來判定380公共秘密(CS)。公共秘密(CS)可藉由以下方程式由第一節點3來判定:
S = V2C
× P2S
(等式11)
在第二節點7處執行之方法400
現將描述在第二節點7處執行之對應方法400。應瞭解,此等步驟中之一些類似於由第一節點3執行之上文所論述的彼等步驟。
方法400包括經由通訊網路5自第一節點3接收410訊息(M)。此可包括在步驟315處藉由第一節點3發送的訊息(M)。第二節點7隨後基於訊息(M)判定420確定性密鑰(DK)。藉由第二節點7進行之判定420確定性密鑰(DK)之步驟類似於上文所描述的藉由第一節點執行之步驟320。在此實例中,第二節點7獨立於第一節點3執行此判定步驟420。
下一步驟包括基於第一節點主公用密鑰(P1C
)及確定性密鑰(DK)來判定430第一節點第二公用密鑰(P2C
)。在此實例中,由於公用密鑰係利用與產生器(G)之橢圓曲線點相乘而判定430'為私用密鑰,因此第一節點第二公用密鑰(P2C
)可以類似於等式9之樣式表達為:
P2C
= V2C
× G (等式12.1)
P2C
= P1C
+ DK × G (等式12.2)
等式12.1及12.2之數學證明與上文針對等式10.1及10.2論述之彼等相同。
第二節點7鑑別第一節點3
方法400可包括由第二節點7執行以鑑別出宣稱之第一節點3為第一節點3之步驟。如先前所論述,此包括自第一節點3接收440第一簽名訊息(SM1)。第二節點7可隨後利用在步驟430處判定之第一節點第二公用密鑰(P2C
)來驗證450第一簽名訊息(SM1)上之簽章。
校驗數位簽章可根據如上文所論述之橢圓曲線數位簽章演算法(ECDSA)來進行。重要地,藉由第一節點第二私用密鑰(V2C
)簽名之第一簽名訊息(SM1)應僅由對應第一節點第二公用密鑰(P2C
)正確地校驗,此係由於V2C
及P2C
形成密碼對。由於此等密鑰關於在第一節點3之註冊時產生之第一節點主私用密鑰(V1C
)及第一節點主公用密鑰(P1C
)為確定性的,因此校驗第一簽名訊息(SM1)可用作鑑別出發送第一簽名訊息(SM1)之經宣稱第一節點在註冊期間為相同第一節點3的基礎。因此,第二節點7可進一步執行基於驗證(450)第一簽名訊息之結果而鑑別(460)第一節點3的步驟。
以上鑑別可適合於二個節點中之一者係可信節點且該等節點中僅一者需要鑑別之情境。舉例而言,第一節點3可為用戶端且第二節點7可為用戶端所信賴之伺服器。因此,伺服器(第二節點7)可能需要鑑別用戶端(第一節點3)之憑證以便允許用戶端存取伺服器系統。伺服器可能未必要向用戶端鑑別伺服器之憑證。然而,在一些情境中,可能需要二個節點彼此鑑別,諸如在以下另一實例中將描述之同級間情境中。
第二節點7判定公共秘密
方法400可進一步包括第二節點7基於第二節點主私用密鑰(V1S
)及確定性密鑰(DK)來判定470第二節點第二私用密鑰(V2S
)。類似於由第一節點3執行之步驟330,第二節點第二私用密鑰(V2S
)可基於根據下式之第二節點主私用密鑰(V1S
)與確定性密鑰(DK)之純量相加:
V2S
= V1S
+ DK (等式13.1)
V2S
= V1S
+ SHA-256(M) (等式13.2)
第二節點7可隨後獨立於第一節點3,基於以下方程式來基於第二節點第二私用密鑰(V2S
)及第一節點第二公用密鑰(P2C
)判定480公共秘密(CS):
S = V2S
× P2C
(等式14)
由第一節點3及第二節點7判定之公共秘密(CS)的證明
由第一節點3判定之公共秘密(CS)與第二節點7處判定之公共秘密(CS)相同。現將描述等式11及等式14提供相同公共秘密(CS)之數學證明。
轉至由第一節點3判定之公共秘密(CS),等式10.1可如下代入至等式11中:
S = V2C
× P2S
(等式11)
S = V2C
× (V2S
× G)
S = (V2C
× V2S
) × G (等式15)
轉至由第二節點7判定之公共秘密(CS),等式12.1可如下代入至等式14中:
S = V2S
× P2C
(等式14)
S = V2S
× (V2C
× G)
S = (V2S
× V2C
) × G (等式16)
由於ECC代數式為可交換的,因此等式15與等式16為等效的,此係因為:
S = (V2C
× V2S
) × G = (V2S
× V2C
) × G (等式17)
公共秘密(CS)及秘密密鑰
公共秘密(CS)可用作秘密密鑰或用作對稱密鑰演算法中之秘密密鑰之基礎以用於第一節點3與第二節點7之間的安全通訊。
公共秘密(CS)可呈橢圓曲線點(xs
, ys
)之形式。此可使用由節點3、7共識之標準公開已知操作轉換成標準密鑰格式。舉例而言,xS
值可為可用作AES256
加密之密鑰的256位元整數。其亦可使用針對需要此長度密鑰之任何應用之RIPEMD160轉換成160位元整數。
公共秘密(CS)可按需要來判定。重要地,第一節點3並不需要儲存公共秘密(CS),此係由於此可基於訊息(M)而重新判定。在一些實例中,所使用之訊息(M)可儲存於資料儲存區13、17、19 (或其他資料儲存區)中,而不需要與主私用密鑰所需之相同的安全性位準。在一些實例中,訊息(M)可為公開可得的。
然而,取決於一些應用,公共秘密(CS)可儲存於與第一節點相關聯的第一資料儲存區(X)中,限制條件為公共秘密(CS)為與第一節點主私用密鑰(V1C
)一樣安全。
此外,所揭露系統可允許基於單一主密鑰密碼對來判定可對應於多個安全秘密密鑰之多個公共秘密。此判定之優點可藉由以下實例來說明。
在存在各自與多個各別公共秘密(CS)相關聯之多個會話的情形中,可能需要具有與彼等多個會話相關聯之記錄,使得各別公共秘密(CS)可在未來重新判定。在已知系統中,此可能需要將多個秘密密鑰儲存於安全資料儲存區中,維持此情況可能昂貴或不便。相比之下,本發明系統使主私用密鑰在各別第一及第二節點處保持安全,而其他確定性密鑰或訊息(M)可安全地或不安全地儲存。即使確定性密鑰(DK或訊息(M)不安全地經儲存,多個公共秘密(CS)亦保持安全,此係由於判定公共秘密所需之主私用密鑰仍然安全。
方法亦可用於產生用於臨時通訊鏈路,諸如用於安全地傳輸登入通行碼之「會話密鑰」。
同級間鑑別
在同級間情境中,第一節點3及第二節點7可需要鑑別彼此之憑證。現將參看圖6描述此之實例。在此實例中,用以基於經驗證第一簽名訊息(SM1)鑑別第一節點3之方法300、400步驟類似於上文所論述之彼等。
然而,由第二節點7執行之方法400進一步包括基於訊息(M)及第二節點私用密鑰(V2S
)產生462第二簽名訊息(SM2)。在一些替代例中,第二簽名訊息(SM2)可基於第二訊息(M2)及第二節點私用密鑰(V2S
),其中第二訊息(M2)與第一節點3共享。方法400進一步包括經由通訊網路5將第二簽名訊息(SM2)發送464至第一節點3。
在第一節點3處,方法300包括自第二節點7接收第二簽名訊息(SM2)。方法包括利用在步驟370處判定之第二節點第二公用密鑰(P2S
)驗證374第二簽名訊息(SM2)上之簽章。方法300可隨後包括基於驗證第二簽名訊息(SM2)之結果鑑別376第二節點7。此使得第一節點3與第二節點7彼此鑑別。
確定性密鑰之層次結構
在一個實例中,可判定一系列連續確定性密鑰,其中可基於先前確定性密鑰判定每一連續密鑰。
舉例來說,替代重複步驟310至370及410至470以藉由節點之間的先前共識來產生連續單一用途密鑰,先前使用之確定性密鑰(DK)可藉由二方重複地重新散列以建立確定性密鑰之層次結構。實際上,基於訊息(M)之散列的確定性密鑰可為用於下一代確定性密鑰(DK')之下一代訊息(M')。進行此操作允許在不需要進一步協定建立傳輸(特定而言,用於每一代之公共秘密之多個訊息的傳輸)之情況下計算連續代之共享秘密。下一代公共秘密(CS')可如下計算。
首先,第一節點3及第二節點7二者獨立地判定新一代確定性密鑰(DK')。此情形類似於步驟320及420,但藉由以下方程式調適:
M' = SHA-256(M) (等式18)
DK' = SHA-256(M') (等式19.1)
DK' = SHA-256(SHA-256(M)) (等式19.2)
第一節點3可隨後類似於上文所描述之步驟370及330判定下一代第二節點第二公用密鑰(P2S '
)及下一代第一節點第二私用密鑰(V2C '
),但藉由以下方程式來調適:
P2S
' = P1S
+ DK' × G (等式20.1)
V2C
' = V1C
+ DK' (等式20.2)
第二節點7可隨後類似於上文所描述之步驟430及470判定下一代第一節點第二公用密鑰(P2C '
)及下一代第二節點第二私用密鑰(V2S '
),但藉由以下方程式來調適:
P2C
' = P1C
+ DK' × G (等式21.1)
V2S
' = V1S
+ DK' (等式21.2)
第一節點3及第二節點7可隨後各自判定下一代公共秘密(CS')。
特定而言,第一節點3藉由以下方程式來判定下一代公共秘密(CS'):
CS' = V2C
' × P2S
' (等式22)
第二節點7藉由以下方程式來判定下一代公共秘密(CS'):
CS' = V2S
' × P2C
' (等式23)
其他代(CS''、CS'''等)可以相同方式計算以形成鏈層次結構。此技術需要第一節點3及第二節點7二者追蹤初始訊息(M)或最初計算的確定性密鑰(DK),以及其所關聯之節點。由於此為公開已知之資訊,因此不存在關於此資訊之保留的安全性問題。因此,此資訊可保持於「散列表」上(從而使散列值鏈接至公用密鑰),且越過網路5自由地分散(例如使用Torrent文件)。此外,若層次結構中之任何個別公共秘密(CS)不斷受損,則只要私用密鑰V1C
、V1S
保持為安全的,此便並不影響層次結構中之任何其他公共秘密之安全性。
密鑰之樹狀結構
又如上文所描述之鏈(線性)層次結構,可產生呈樹狀結構之形式的層次結構。
藉由樹狀結構,諸如鑑別密鑰、加密密鑰、簽名密鑰、支付密鑰等之用於不同用途的多種密鑰可經判定,藉此此等密鑰皆經鏈接至單一安全地維持之主密鑰。
實施例之描述
圖7展示用於在三個節點A、B及C之中共享第一公共秘密之體現本揭露內容之方法,且方法之流程圖展示於圖8中。每一節點A、B、C與其自身私用密鑰/公用密鑰對(S, P)相關聯,例如節點A之私用、公用密鑰對為(SA
, PA
)。每一私用或公用密鑰可以類似於上文參考圖1至6所描述的方式自用於節點及確定性密鑰之各別主私用密鑰或主公用密鑰導出。私用-公用密鑰對為例如PA
= SA
× G之情況下的橢圓曲線密碼系統之密鑰對,其中G為橢圓曲線產生器點。
在圖8之步驟80中,每一對節點A、B,A、C及B、C之間的安全通訊藉由使用如上文參考圖1至6所描述之方法判定每一對節點之間的第二公共秘密來建立。在圖7中展示的配置中,以下關係應用:
SA
PB
= SA
SB
G = SB
SA
G = SB
PA
= x1
類似地,SA
PC
= SC
PA
= x2
以及SB
PC
= SC
PB
= x3
在A、B、C之中共享之第一公共秘密為:
x1
⊕ x2
⊕ x3
,其中⊕指示XOR運算。
在圖8之步驟82中,一旦已在每一對節點之間建立安全通訊通道,每一節點便基於彼等第二秘密使用私用-公用密鑰對加密呈節點已知的第二秘密之組合形式的第一秘密之共享。此藉由編碼節點已知的第二公共秘密x對之XOR組合的每一節點來進行。因此,對於節點A,公共秘密x1
及x2
對於節點A為已知的,因此節點A計算組合x1
⊕ x2
,且隨後基於其各別通訊通道x1
或x2
之私用-公用密鑰對中之私用密鑰與其他節點分開地編碼此組合。在圖8之步驟84中,節點A隨後在基於x1
經加密之情況下將組合x1
⊕ x2
發送至節點B,且在基於x2
經加密之情況下發送至節點C。此等經加密共享分別由Ex1
[x1
⊕ x2
]及Ex2
[x1
⊕ x2
]表示。
類似地,公共秘密x1
及x3
對於節點B為已知的,其中x3
表示第三公共秘密,為第二節點B及第三節點C所共用。節點B計算組合x1
⊕ x3
,且隨後基於第二公共秘密x1
及x3
與其他節點分開地編碼此組合。在圖8之步驟84中,節點B隨後發送Ex1
[x1
⊕ x3
],在基於x1
經加密之情況下將組合x1
⊕ x3
發送至節點A,且在基於x3
經加密之情況下將Ex3
[x1
⊕ x3
]發送至節點C。節點C繼而計算組合x2
⊕ x3
,且隨後基於第二公共秘密x2
及×3
與其他節點分開地編碼此組合。在圖8之步驟84中,節點C隨後發送Ex2
[x2
⊕ x3
],在基於x2
經加密之情況下將組合x2
⊕ x3
發送至節點A,且在基於x3
經加密之情況下將Ex3
[x2
⊕ x3
]發送至節點B。
在圖8之步驟86中,節點A、B、C中之每一者自其他節點接收經加密共享且解密經加密共享。因此,節點中之每一者可獲得為如下重新建構第一共享密鑰x1
⊕ x2
⊕ x3
所必需之臨限數目個共享。
在圖8之步驟88中,節點A自節點B接收共享x2
⊕ x3
且自節點C接收x1
⊕ x3
。由於節點A分開地知曉x1
及x2
,因此可藉由x1
與x2
⊕ x3
或x2
與x1
⊕ x3
之XOR組合容易地計算第一公共秘密x1
⊕ x2
⊕ x3
。類似地,節點B自節點A接收共享x1
⊕ x2
且自節點C接收x2
⊕ x3
。由於節點B分開地知曉x1
及x3
,因此可藉由x1
與x2
⊕ x3
或x3
與x2
⊕ x3
之XOR組合容易地計算第一公共秘密x1
⊕ x2
⊕ x3
。另外,節點C自節點B接收共享x1
⊕ x3
且自節點A接收x1
⊕ x2
。由於節點C分開地知曉x2
及x3
,因此可藉由x2
與x1
⊕ x3
或x3
與x1
⊕ x2
之XOR組合容易地計算第一公共秘密x1
⊕ x2
⊕ x3
。
類似於上文針對第二公共秘密所描述之方式,第一公共秘密(CS)可呈橢圓曲線點(xS
, yS
)之形式。此可使用由節點3、7共識之標準公開已知操作轉換成標準密鑰格式。舉例而言,xS
值可為可用作AES256
加密之密鑰的256位元整數。其亦可使用針對需要此長度密鑰之任何應用之RIPEMD160轉換成160位元整數。
儘管XOR加密提供當在塊鏈交易之腳本中廣播時模糊第二公共秘密之優點,但除了XOR加密之外,可藉由其他方式來分散第一公共秘密之共享,使得第三方無法在不知曉其他第二公共秘密之臨限數目的情況下判定第二公共秘密。舉例而言,可使用(x1
.x2
.x3
)mod n形式之第二公共秘密之簡單算術相乘,其中n為所使用之橢圓曲線密碼系統之次序。
另外,第一公共秘密之共享可使用如熟習此項技術者將熟悉之Shamir秘密共享方案或dealerless秘密共享方案來分散為多項式函數之共享。在第一公共秘密之共享為多項式函數之共享之情況下,可藉助於如圖9中所展示之Berlekamp-Welch解碼器來實施第一公共秘密之高效恢復。參看圖9,Berlekamp-Welch解碼器70實施多項式函數之共享之多項式插值以獲得多項式函數。
在Berlekamp-Welch演算法習知用於校正傳輸資料中之差錯時,在編碼器72處將訊息m劃分為一系列k個位元組,且將每一位元組c0
、c1
、......ck -1
編碼為整數模數p。該訊息隨後由多項式函數表示:
m(x) =
隨後針對已知x值之數目判定多項式函數m(x)之值以產生一系列(x, y)對,該等對隨後由傳輸器74傳輸至接收器76。
在接收器76處接收之資料M (亦即,所接收之訊息)包含對應於表示初始訊息之多項式函數上之點的對(a1
、b1
、......an
、bn
)
P(x) = m(x) =
若假設經傳輸(x, y)對中之一些在傳輸期間已受損,則差錯定位多項式函數可定義如下:
當P(ai
) ≠bi
時,E(ai
) = 0;否則E(ai
) ≠0
若乘積多項式函數Q(ai)定義為
Q(ai
) = bi
Ei
(ai
)
則對於每一所接收之(ai, bi)對,不管bi值是否已受損
當P(ai
) ≠ bi
時,由於E(ai
) = 0,因此Q(ai
) = bi
Ei
(ai
) = P(ai
)Ei
(ai
)
對於(ai, bi)之n個已知值,由於E(ai)為次數e之多項式函數且P(ai)為次數(k-1)之多項式函數,則Q(ai)為次數(e + k - 1)之多項式函數。(ai, bi)之已知值可因此表達為線性系統:
線性系統含有2e + k - 1個未知項(e來自E(x)且e + k - 1來自Q(x)),作為其結果,若n ≥ 2e + k - 1,則可判定Q (ai )
及E (ai )
之係數。若可判定Q (ai )
及E (ai )
,則有可能判定P (ai )
以恢復初始訊息m(x)。
因此可見,Berlekamp-Welch解碼器70接收表示多項式函數上之點的對作為輸入,且輸出多項式函數。解碼器70可因此在本揭露內容中用作拉格朗日內插之替代物,以根據由多項式函數表示之共享之臨限數目來判定多項式函數。
圖10展示用於在四個節點A、B、C及D之中共享第一公共秘密之體現本揭露內容之方法。每一節點A、B、C、D與其自身私用密鑰/公用密鑰對(S, P)相關聯,例如節點A之私用、公用密鑰對為(SA
, PA
)。每一私用或公用密鑰可以類似於上文參考圖1至6所描述的方式自用於節點及確定性密鑰之各別主私用密鑰或主公用密鑰導出。私用-公用密鑰對為例如PA
= SA
× G之情況下的橢圓曲線密碼系統之密鑰對,其中G為橢圓曲線產生器點。
每一對節點A、B,A、C,A、D,B、C,B、D及C、D之間的安全通訊藉由使用如上文參考圖1至6所描述之方法判定每一對節點之間的第二公共秘密來建立。在圖10中展示的配置中,以下關係應用:
SA
PB
= SA
SB
G = SB
SA
G = SB
PA
= x1
SA
PC
= SC
PA
= x2
SA
PD
= SD
PA
= x3
SB
PC
= SC
PB
= x4
SB
PD
= SD
PB
= x5
以及SC
PD
= SD
PC
= x6
待在節點A、B、C及D之中共享之第一公共秘密為x1
⊕ x2
⊕ x3
⊕ x4
⊕ x5
⊕ x6
。
一旦已在每一對節點之間建立安全通訊通道,每一節點便以類似於參考圖7及8所描述之方法的方式基於彼等第二秘密使用私用-公用密鑰對加密呈節點已知的第二秘密之組合形式的第一秘密之共享。此藉由編碼節點已知的第二公共秘密x對之XOR組合的每一節點來進行。因此,對於節點A,公共秘密x1
、x2
及x3
對於節點A為已知的,因此節點A計算組合x1
⊕ x2
、x1
⊕ x3
及x2
⊕ x3
,且隨後基於其各別通訊通道x1
、x2
或x3
之私用-公用密鑰對中之私用密鑰與其他節點分開地編碼此組合。在本發明實施例中,單獨組合[x1
⊕ x2
; x1
⊕ x3
; x2
⊕ x3
]在圖10中縮寫為[Ashares]。 經編碼組合隨後表示為Ex1
[x1
⊕ x2
; x1
⊕ x3
; x2
⊕ x3
]或Ex1
[Ashares]、Ex2
[x1
⊕ x2
; x1
⊕ x3
; x2
⊕ x3
]或Ex2
[Ashares]以及Ex3
[x1
⊕ x2
; x1
⊕ x3
; x2
⊕ x3
]或Ex3
[Ashares]。節點A隨後發送:Ex1
[Ashares]至節點B,其共用x1
;Ex2
[Ashares]至節點C,其共用x2
;且Ex3
[Ashares]至節點D,其共用x3
。
以類似方式,節點B計算以下組合:
[x1
⊕ x4
; x1
⊕ x5
; x4
⊕ x5
]=
[Bshares]
且加密並發送以下:
Ex1
[x1
⊕ x4
; x1
⊕ x5
; x4
⊕ x5
]=
Ex1
[Bshares]至節點A
Ex4
[x1
⊕ x4
; x1
⊕ x5
; x4
⊕ x5
]=
Ex4
[Bshares]至節點C
Ex5
[x1
⊕ x4
; x1
⊕ x5
; x4
⊕ x5
]=
Ex5
[Bshares]至節點D
節點C計算以下組合:
[x2
⊕ x4
; x2
⊕ x6
; x4
⊕ x6
]=
[Cshares]
且加密並發送以下:
Ex2
[x2
⊕ x4
; x2
⊕ x6
; x4
⊕ x6
]=
Ex2
[Cshares]至節點A
Ex4
[x2
⊕ x4
; x2
⊕ x6
; x4
⊕ x6
]=
Ex4
[Cshares]至節點B
Ex6
[x2
⊕ x4
; x2
⊕ x6
; x4
⊕ x6
]=
Ex6
[Cshares]至節點D
且節點D計算以下組合:
[x3
⊕ x5
; x3
⊕ x6
; x5
⊕ x6
]=
[Dshares]
且加密並發送以下:
Ex3
[x3
⊕ x5
; x3
⊕ x6
; x5
⊕ x6
]=
Ex3
[Dshares]至節點A
Ex5
[x3
⊕ x5
; x3
⊕ x6
; x5
⊕ x6
]=
Ex5
[Dshares]至節點B
Ex6
[x3
⊕ x5
; x3
⊕ x6
; x5
⊕ x6
]=
Ex6
[Dshares]至節點C。
節點A、B、C、D中之每一者自其他節點接收經加密共享,且在使用對應於適當第二公共秘密x1
、x2
、x3
、x4
、x5
或x6
之私用密鑰之情況下解密經加密共享,其結果為節點中之每一者可獲得為如下重新建構第一公共秘密x1
⊕ x2
⊕ x3
⊕ x4
⊕ x5
⊕ x6
所必需之共享之臨限數目。
節點A自節點B接收共享x1
⊕ x4
、x1
⊕ x5
及x4
⊕ x5
且分開地知曉x1
、x2
及x3
,且可因此根據x1
⊕ x1
⊕ x4
及x1
⊕ x1
⊕ x5
分別計算x4
及x5
。節點A亦自節點C接收共享x2
⊕ x4
、x2
⊕ x6
及x4
⊕ x6
且分開地知曉x1
、x2
及x3
,且可因此根據x2
⊕ x2
⊕ x6
計算x6
,且因此分開地知曉x1
至x6
且可計算第一公共秘密。
藉由操作類似處理,其他節點B、C及D中之每一者可獲得所有第二公共秘密以判定目前在所有節點之中共享之第一公共秘密。
現轉而參看圖11,提供計算裝置2600之說明性簡化方塊圖,該計算裝置可用於實踐本揭露內容之至少一個實施例。在各種實施例中,計算裝置2600可用以實施上文所說明及描述之系統中之任一者。舉例而言,計算裝置2600可經組配以用作資料伺服器、網頁伺服器、攜帶型計算裝置、個人電腦或任何電子計算裝置。如圖11中所展示,計算裝置2600可包括具有快取記憶體之一或多個層級的一或多個處理器以及可經組配以與包括主記憶體2608及持久性儲存器2610之儲存子系統2606通訊的記憶體控制器(共同地標記為2602)。主記憶體2608可包括如所展示之動態隨機存取記憶體(DRAM) 2618及唯讀記憶體(ROM) 2620。儲存子系統2606及快取記憶體2602且可用於儲存資訊,諸如與如本揭露內容中所描述之交易及區塊相關聯的細節。處理器2602可用以提供如本揭露內容中所描述之任何實施例的步驟或功能性。
處理器2602亦可與一或多個使用者介面輸入裝置2612、一或多個使用者介面輸出裝置2614及網路介面子系統2616通訊。
匯流排子系統2604可提供用於使計算裝置2600之各個組件及子系統能夠按預期彼此通訊之機制。儘管匯流排子系統2604經示意性地展示為單一匯流排,但匯流排子系統之替代實施例可利用多個匯流排。
網路介面子系統2616可提供至其他計算裝置及網路之介面。網路介面子系統2616可充當用於自其他系統接收資料及將資料自計算裝置2600傳輸至其他系統之介面。舉例而言,網路介面子系統2616可使資料技術員能夠將裝置連接至網路,使得資料技術員可能夠在處於諸如資料中心之遠程位置中時將資料傳輸至裝置及自裝置接收資料。
使用者介面輸入裝置2612可包括一或多個使用者輸入裝置,諸如鍵盤;指標裝置,諸如整合式滑鼠、軌跡球、觸控板或圖形輸入板;掃描器;條碼掃描器;併入至顯示器中之觸控螢幕;音訊輸入裝置,諸如語音辨識系統、麥克風;及其他類型之輸入裝置。一般而言,使用術語「輸入裝置」意欲包括用於將資訊輸入至計算裝置2600之所有可能類型的裝置及機制。
一或多個使用者介面輸出裝置2614可包括顯示子系統、印表機或諸如音訊輸出裝置之非視覺顯示器等。顯示子系統可為陰極射線管(CRT)、諸如液晶顯示器(LCD)之平板裝置、發光二極體(LED)顯示器,或投影裝置或其他顯示裝置。一般而言,使用術語「輸出裝置」意欲包括用於輸出來自計算裝置2600之資訊的所有可能類型的裝置及機制。舉例而言,一或多個使用者介面輸出裝置2614可用以呈現使用者介面以在使用者與應用程式之交互可為適當的時促進此交互,該等應用程式執行所描述之處理及其中之變化。
儲存子系統2606可提供用於儲存可提供本揭露內容之至少一個實施例之功能性的基本程式設計及資料建構的電腦可讀儲存媒體。應用程式(程式、程式碼模組、指令)在由一或多個處理器執行時可提供本揭露內容之一或多個實施例之功能性,且可儲存於儲存子系統2606中。此等應用程式模組或指令可由一或多個處理器2602執行。儲存子系統2606可另外提供用於儲存根據本揭露內容所使用之資料的儲存庫。舉例而言,主記憶體2608及快取記憶體2602可提供用於程式及資料之揮發性儲存器。持久性儲存器2610可提供用於程式及資料之持久性(非揮發性)儲存器且可包括快閃記憶體、一或多個固態驅動機、一或多個磁性硬碟驅動機、具有相關聯可移媒體之一或多個軟碟驅動機、具有相關聯可移媒體之一或多個光學驅動機(例如CD-ROM或DVD或藍光光碟(Blue-Ray))驅動機及其他類似儲存媒體。此程式及資料可包括用於進行如本揭露內容中所描述之一或多個實施例之步驟的程式以及與如本揭露內容中所描述之交易及區塊相關聯的資料。
計算裝置2600可屬於各種類型,包括攜帶型電腦裝置、平板電腦、工作站或下文所描述之任何其他裝置。另外,計算裝置2600可包括可經由一或多個埠(例如USB、頭戴式耳機插口、雷電型連接器等)連接至計算裝置2600的另一裝置。可連接至計算裝置2600之裝置可包括經組配以接受光纖連接器之多個埠。因此,此裝置可經組配以將光學信號轉換成可經由將裝置連接至計算裝置2600之埠來傳輸的電信號以供處理。歸因於電腦及網路不斷改變之本質,出於說明裝置之較佳實施例之目的,圖11中所描繪之計算裝置2600之描述僅意欲作為特定實例。具有比圖11中所描繪之系統更多或更少組件的許多其他組配為可能的。
應注意,上文所提及之實施例說明而非限制本揭露內容,且熟習此項技術者將能夠設計許多替換性實施例而不偏離本揭露內容之如由附加申請專利範圍定義的範疇。在申請專利範圍中,不應將置放於圓括號中之任何參考符號視為限制申請專利範圍。詞「包含(comprising及comprises)」及其類似者並不排除除任何申請專利範圍或說明書中整體列出之彼等元件或步驟外的元件或步驟之存在。在本說明書中,「包含」意謂「包括或由……組成」。元件之單數參考並不排除此等元件之複數參考,且反之亦然。本揭露內容可藉助於包含若干獨特元件之硬體且藉助於合適程式化之電腦來實施。在列舉若干構件之裝置請求項中,此等構件中之若干者可由硬體之同一物件體現。在相互不同之附屬申請專利範圍中敍述某些措施之純粹實情並不指示不能有利地使用此等措施之組合。
1:系統
3:第一節點
5:通訊網路
7、S:第二節點
9:第三節點
11:竊取者
13:資料儲存區
15:使用者介面
17:資料儲存區
19:資料儲存區
23:第一處理裝置
27:第二處理裝置
70:解碼器
72:編碼器
74:傳輸器
76:接收器
80、82、84、86、88、110、120、130、140、150、210、220、230、240、250、310、315、320、330、350、360、370、370’、374、376、380、410、420、430、430’、440、450、460、462、464、470、480:步驟
100、200、300、400:方法
2600:計算裝置
2602:快取記憶體
2604:匯流排子系統
2606:儲存子系統
2608:主記憶體
2610:持久性儲存器
2612:使用者介面輸入裝置
2614:使用者介面輸出裝置
2616:網路介面子系統
2618:動態隨機存取記憶體
2620:唯讀記憶體
A、B、C、D:節點
CS:公共秘密
CS':下一代公共秘密
DK:確定性密鑰
DK':下一代確定性密鑰
G:產生器
M:訊息、資料
M':下一代訊息
P1C:第一節點主公用密鑰
P2C:第一節點第二公用密鑰
P2C ':下一代第一節點第二公用密鑰
P1S:第二節點主公用密鑰
P2S:第二節點第二公用密鑰
P2S ':下一代第二節點第二公用密鑰
SM1:第一簽名訊息
SM2:第二簽名訊息
V1C:第一節點主私用密鑰
V2C:第一節點第二私用密鑰
V2C ':下一代第一節點第二私用密鑰
V1S:第二節點主私用密鑰
V2S:第二節點第二私用密鑰
V2S ':下一代第二節點第二私用密鑰
X:第一資料儲存區
本揭露內容之此等及其他態樣將自本文中所描述之實施例顯而易見且參考本文中所描述之實施例進行闡明。現將僅藉助於實例且參看隨附圖式來描述本揭露內容之實施例,其中:
圖1為用以判定第一節點及第二節點之公共秘密之實例系統的示意圖;
圖2為用於判定公共秘密之電腦實施方法的流程圖;
圖3為註冊第一及第二節點之電腦實施方法的流程圖;
圖4為用於判定公共秘密之電腦實施方法的另一流程圖;
圖5為第一節點與第二節點之間之安全通訊之電腦實施方法的流程圖;
圖6為用以鑑別第一節點及第二節點之電腦實施方法的流程圖;
圖7為展示用於在三個節點之間共享公共秘密之體現本揭露內容之方法的圖;
圖8為圖7之方法的流程圖;
圖9展示用於在體現本揭露內容之方法中恢復第一公共秘密的Berlekamp-Welch解碼器;
圖10為用於在四個節點之間共享公共秘密之體現本揭露內容之方法的流程圖;以及
圖11為說明各種實施例可實施其中之計算環境的示意圖。
A、B、C:節點
Claims (31)
- 一種在多個節點之中共享第一公共秘密之方法,其中各該節點與為該等多個節點所共用之一密碼系統之一個別不對稱密碼第一密鑰對相關聯,該個別不對稱密碼第一密鑰對具有一個別第一私用密鑰及一個別第一公用密鑰,且其中該第一公共秘密係基於該等節點中之各者之該第一私用密鑰,該方法包含:針對至少一個第一節點決定多個第二公共秘密,其中各該第二公共秘密為該第一節點及一個別第二節點所共用、基於該第一節點之該第一私用密鑰及該第二節點之該第一公用密鑰於該第一節點處決定、且基於該第二節點之該第一私用密鑰及該第一節點之該第一公用密鑰於該第二節點處決定,其中該第一公共秘密之多個共享份額各自基於至少一個個別第二公共秘密,使得該第一公共秘密可由一臨界數目的該等共享份額存取但不可由小於該臨界數目的共享份額存取;針對至少一個第二節點決定至少一個個別第三公共秘密,其中該個別第三公共秘密或各個個別第三公共秘密為該第二節點及一個別第三節點所共用、基於該第二節點之該第一私用密鑰及該第三節點之該第一公用密鑰於該第二節點處決定、且基於該第三節點之該第一私用密鑰及該第二節點之該第一公用密鑰於該第三節點處決定,且其中該第一公共秘密之至少一個共享份額係基於至少一個該個別第三公共秘密; 基於一密碼系統之一個別不對稱密碼第二密鑰對之一第二私用密鑰於至少一個該第一節點處加密該第一節點已知的該第一公共秘密之至少一個共享份額,其中該第二密鑰對係基於該第一節點已知的一個別的該第二公共秘密;將至少一個該經加密共享份額從該第一節點發送至該個別第二節點,該第二密鑰對所基於的該第二公共秘密由該第二節點共用;以及於至少一個該第一節點處從至少一個該第二節點接收該第一秘密之至少一個個別共享份額,該第一秘密之該至少一個個別共享份額為該第二節點已知且基於該密碼系統之一個別不對稱密碼第二密鑰對之一第二私用密鑰而加密,其中該第二密鑰對係基於為該第一節點及該第二節點所共用之該第二公共秘密,以使得該等多個節點中之各者能夠達至該第一公共秘密之該臨界數目的共享份額。
- 如請求項1之方法,其中多個該等經加密共享份額各自基於對應之該節點已知的多個該等公共秘密之一組合。
- 如請求項2之方法,其中多個該等經加密共享份額係基於對應之該節點已知的多個該等公共秘密之至少一個個別XOR組合。
- 如請求項2之方法,其中多個該等經加密共享份額係基於對應之該節點已知的多個該等公共秘密之乘法組合。
- 如請求項4之方法,其中該乘法組合具有 (x 1 .x 2 .x 3 )mod n之形式,其中x 1 、x 2 、x 3 為一節點已知的公共秘密,且n為一密碼系統之階次。
- 如請求項1之方法,其中多個該等共享份額為一第一多項式函數之共享份額,且該第一秘密係藉助於至少一臨界數目的該等共享份額之多項式插值來決定。
- 如請求項6之方法,其進一步包含:接收該第一公共秘密之至少一臨界數目的共享份額,其中各該共享份額對應於該第一多項式函數之一個別值;以及藉助於從該等共享份額之多個已知值決定該第一多項式函數之係數來決定該第一多項式函數,以決定該第一公共秘密。
- 如請求項7之方法,其中決定該第一多項式函數之步驟包含有執行一差錯校正演算法。
- 如請求項8之方法,其中決定該第一多項式函數之該步驟包含有執行一Berlekamp-Welch解碼演算法。
- 如請求項7之方法,其中決定該第一多項式函數之該步驟包含:定義一差錯定位多項式函數及一第二多項式函數,其中該第二多項式函數為該第一多項式函數及該差錯定位多項式函數之一乘積;從該第二多項式函數之多個已知值決定該第二多項式函數及該差錯定位多項式函數之係數;以及從該第二多項式函數及差錯檢測多項式函數決定該第一 多項式函數,以決定該第一公共秘密。
- 如請求項1之方法,其中至少一個該密碼系統具有一同態性質。
- 如請求項11之方法,其中至少一個該密碼系統為一橢圓曲線密碼系統。
- 如請求項1之方法,其進一步包含:基於至少一第一節點主私用密鑰(V1C)及該第一節點與該第二節點共用之一確定性密鑰(DK)來決定至少一個該第一節點之該第一私用密鑰;以及基於該第二節點之一主公用密鑰(P1S)及使用該公共密碼系統之該確定性密鑰(DK)之加密來決定至少一個該第二節點之該第一公用密鑰(P2S)。
- 如請求項13之方法,其中該確定性密鑰(DK)係基於一訊息(M)。
- 如請求項14之方法,其進一步包含:基於該訊息(M)及該第一節點之該第一私用密鑰(V2C)產生一第一簽名訊息(SM1);以及經由通訊網路將該第一簽名訊息(SM1)發送至該第二節點(S),其中該第一簽名訊息(SM1)可利用該第一節點之一第一公用密鑰(P2C)來驗證,以鑑別該第一節點(C)。
- 如請求項15之方法,其進一步包含:經由該通訊網路從該第二節點(S)接收一第二簽名訊息(SM2); 利用該第二節點之該第一公用密鑰(P2S)驗證該第二簽名訊息(SM2);以及基於驗證該第二簽名訊息(SM2)之結果來鑑別該第二節點(S),其中該第二簽名訊息(SM2)係基於該訊息(M)或一第二訊息(M2)及該第二節點之該第一私用密鑰(V2S)而產生。
- 如請求項14之方法,其進一步包含:產生該訊息(M);以及經由一通訊網路將該訊息(M)發送至該第二節點(S)。
- 如請求項14之方法,其進一步包含:經由該通訊網路從該第二節點(S)接收該訊息(M)。
- 如請求項14之方法,其進一步包含:經由該通訊網路從另一節點接收該訊息(M)。
- 如請求項14之方法,其包含:從一資料儲存區及/或與該第一節點(C)相關聯的一輸入介面接收該訊息(M)。
- 如請求項13之方法,其中該密碼系統為一橢圓曲線密碼(ECC)系統,且該第一節點主公用密鑰(P1C)及第二節點主公用密鑰(P1S)係基於個別的第一節點主私用密鑰(V1C)及第二節點主私用密鑰(V1S)與一產生器(G)之橢圓曲線點相乘。
- 如請求項13之方法,其進一步包含以下步驟: 經由該通訊網路接收該第二節點主公用密鑰(P1S);以及於與該第一節點(C)相關聯的一資料儲存區處儲存該第二節點主公用密鑰(P1S)。
- 如請求項13之方法,其進一步包含以下步驟:於一第一節點(C)處產生該第一節點主私用密鑰(V1C)及該第一節點主公用密鑰(P1C);經由該通訊網路將該第一節點主公用密鑰(P1C)發送至該第二節點(S)及/或其他節點;以及在與該第一節點(C)相關聯的一第一資料儲存區中儲存該第一節點主私用密鑰(V1C)。
- 如請求項13之方法,其進一步包含:經由該通訊網路向該第二節點發送指出針對決定至少一個該公共秘密(CS)之方法使用一公共密碼系統之一通知,且其中產生該第一節點主私用密鑰(V1C)及該第一節點主公用密鑰(P1C)之該步驟包含:基於該公共密碼系統中指定之一可允許範圍中之一隨機整數產生該第一節點主私用密鑰(V1C);以及基於該第一節點主私用密鑰(V1C)之加密來決定該第一節點主公用密鑰(P1C)。
- 如請求項13之方法,其中該公共密碼系統為具有一公共產生器(G)之一橢圓曲線密碼(ECC)系 統,且該第一節點主公用密鑰(P1C)係基於根據下式之該第一節點主私用密鑰(V1C)與該公共產生器(G)之橢圓曲線點相乘來決定:P1C=V1C×G。
- 如請求項13之方法,其進一步包含:基於決定一訊息(M)之一散列(hash)來決定該確定性密鑰(DK),且其中決定該第一節點之該第一私用密鑰(V2C)之該步驟係基於根據下式之該第一節點主私用密鑰(V1C)與該確定性密鑰(DK)之一純量相加:V2C=V1C+DK,且其中決定該第二節點之該第一公用密鑰(P2S)之該步驟係基於根據下式之該第二節點主公用密鑰(P1S)橢圓曲線點相加至該確定性密鑰(DK)與該公共產生器(G)之該橢圓曲線點相乘:P2S=P1S+DK×G,該確定性密鑰(DK)可基於決定一先前確定性密鑰之一散列。
- 一種在多個節點間安全通訊之方法,其中該方法包含:藉助於如請求項1~26中任一項之方法在多個節點之中共享一第一公共秘密;基於該第一公共秘密決定一對稱密鑰;利用該對稱密鑰將一第一通訊訊息加密為一經加密第 一通訊訊息;以及經由一通訊網路將該經加密第一通訊訊息從該等多個節點中之一者發送至該等多個節點中之其他節點。
- 如請求項27之方法,其進一步包含:經由一通訊網路從該等多個節點中之一節點接收一經加密第二通訊訊息;以及利用該對稱密鑰將該經加密第二通訊訊息解密為一第二通訊訊息。
- 一種在多個節點間執行線上交易之方法,其中該方法包含:藉助於如請求項1至26中任一項之方法在多個節點之中共享一第一公共秘密;基於該第一公共秘密決定一對稱密鑰;利用該對稱密鑰將一第一交易訊息加密為一經加密第一交易訊息;經由一通訊網路將該經加密第一交易訊息從該等多個節點中之一第一節點發送至該等多個節點中之其他節點。
- 一種系統,其包含:一處理器;及包括有可執行指令之記憶體,該等可執行指令在由該處理器執行時致使該系統執行如請求項1~29中任一項之方法。
- 一種儲存有可執行指令之非暫時性電腦可讀儲存媒體,該等可執行指令在由一電腦系統之一處理器 執行時致使該電腦系統執行如請求項1至29中任一項之方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1815396.5 | 2018-09-21 | ||
GBGB1815396.5A GB201815396D0 (en) | 2018-09-21 | 2018-09-21 | Computer implemented system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202025666A TW202025666A (zh) | 2020-07-01 |
TWI807103B true TWI807103B (zh) | 2023-07-01 |
Family
ID=64024331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108134023A TWI807103B (zh) | 2018-09-21 | 2019-09-20 | 用於共享公共秘密之電腦實施系統及方法 |
Country Status (9)
Country | Link |
---|---|
US (3) | US11616641B2 (zh) |
EP (1) | EP3854052A1 (zh) |
JP (1) | JP2022500920A (zh) |
KR (1) | KR20210063378A (zh) |
CN (1) | CN112771832A (zh) |
GB (1) | GB201815396D0 (zh) |
SG (1) | SG11202102221SA (zh) |
TW (1) | TWI807103B (zh) |
WO (1) | WO2020058806A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220294647A1 (en) * | 2019-10-18 | 2022-09-15 | Tbcasoft, Inc. | Distributed ledger-based methods and systems for certificate authentication |
US11580240B2 (en) * | 2020-03-24 | 2023-02-14 | Kyndryl, Inc. | Protecting sensitive data |
GB2605784A (en) * | 2021-04-09 | 2022-10-19 | Vodafone Group Services Ltd | SIM cryptographic key storage |
CN115037441B (zh) * | 2022-07-07 | 2023-11-10 | 三未信安科技股份有限公司 | 一种基于同态运算的sm2协同签名方法、装置及系统 |
CN115080723B (zh) * | 2022-08-23 | 2022-11-11 | 云南师范大学 | 一种阅读理解问题的自动生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958356B1 (en) * | 2006-09-29 | 2011-06-07 | Netapp, Inc. | System and method for establishing a shared secret among nodes of a security appliance |
EP2363977A1 (en) * | 2010-02-26 | 2011-09-07 | Research In Motion Limited | Methods and devices for computing a shared encryption key |
US20170171174A1 (en) * | 2015-12-11 | 2017-06-15 | Amazon Technologies, Inc. | Key exchange through partially trusted third party |
WO2017145010A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69327238T2 (de) | 1993-08-17 | 2000-09-07 | Entrust Technologies ( Switzerland) Ltd. Liab. Co., Glattzentrum | Verfahren zur digitalen Unterschrift und Verfahren zur Schlüsselübereinkunft |
DE69534603T2 (de) | 1994-07-29 | 2006-08-03 | Certicom Corp., Mississauga | Verschlüsselungssystem für elliptische kurve |
US6785813B1 (en) | 1997-11-07 | 2004-08-31 | Certicom Corp. | Key agreement and transport protocol with implicit signatures |
WO1996033565A1 (en) | 1995-04-21 | 1996-10-24 | Certicom Corp. | Method for signature and session key generation |
US5761305A (en) | 1995-04-21 | 1998-06-02 | Certicom Corporation | Key agreement and transport protocol with implicit signatures |
CA2176972C (en) | 1995-05-17 | 2008-11-25 | Scott A. Vanstone | Key agreement and transport protocol with implicit signatures |
GB9510035D0 (en) | 1995-05-18 | 1995-08-02 | Cryptech Systems Inc | Strengthened public key protocols |
US5999626A (en) | 1996-04-16 | 1999-12-07 | Certicom Corp. | Digital signatures on a smartcard |
US6078667A (en) | 1996-10-10 | 2000-06-20 | Certicom Corp. | Generating unique and unpredictable values |
CA2235359C (en) | 1998-03-23 | 2012-04-10 | Certicom Corp. | Implicit certificate scheme with ca chaining |
DE19847944A1 (de) * | 1998-10-09 | 2000-04-13 | Deutsche Telekom Ag | Verfahren zum Etablieren eines gemeinsamen Schlüssels zwischen einer Zentrale und einer Gruppe von Teilnehmern |
JP2001268070A (ja) * | 2000-03-22 | 2001-09-28 | Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd | キーエスクロー方式 |
US7885411B2 (en) * | 2004-04-02 | 2011-02-08 | Research In Motion Limited | Key agreement and re-keying over a bidirectional communication path |
CA2781872A1 (en) * | 2009-11-25 | 2011-06-09 | Security First Corp. | Systems and methods for securing data in motion |
US8510561B2 (en) * | 2010-02-26 | 2013-08-13 | Research In Motion Limited | Methods and devices for computing a shared encryption key |
JP5750728B2 (ja) * | 2011-10-19 | 2015-07-22 | 国立研究開発法人産業技術総合研究所 | 鍵共有システム、鍵生成装置、及びプログラム |
US20150213433A1 (en) | 2014-01-28 | 2015-07-30 | Apple Inc. | Secure provisioning of credentials on an electronic device using elliptic curve cryptography |
CN103825733A (zh) * | 2014-02-28 | 2014-05-28 | 华为技术有限公司 | 基于组合公钥密码体制的通信方法、装置及系统 |
US10356054B2 (en) * | 2014-05-20 | 2019-07-16 | Secret Double Octopus Ltd | Method for establishing a secure private interconnection over a multipath network |
US20170249460A1 (en) * | 2014-09-23 | 2017-08-31 | The Regents Of The University Of California | Provably secure virus detection |
US9813234B2 (en) * | 2015-05-11 | 2017-11-07 | The United States of America, as represented by the Secretery of the Air Force | Transferable multiparty computation |
US9735958B2 (en) | 2015-05-19 | 2017-08-15 | Coinbase, Inc. | Key ceremony of a security system forming part of a host computer for cryptographic transactions |
US20160352710A1 (en) * | 2015-05-31 | 2016-12-01 | Cisco Technology, Inc. | Server-assisted secure exponentiation |
AU2017223133B2 (en) | 2016-02-23 | 2022-09-08 | nChain Holdings Limited | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys |
JP6495858B2 (ja) * | 2016-04-04 | 2019-04-03 | 日本電信電話株式会社 | サーバ装置、誤り訂正システム、誤り訂正方法、プログラム |
CN106357401B (zh) * | 2016-11-11 | 2019-09-10 | 武汉理工大学 | 一种私钥存储及使用方法 |
US10965448B1 (en) * | 2017-05-03 | 2021-03-30 | Board Of Trustees Of The University Of Illinois | Dynamic distributed storage for scaling blockchain |
IL256234A (en) * | 2017-12-10 | 2018-01-31 | Kipnis Aviad | Computation using somewhat homomorphic encryption |
US20190305940A1 (en) * | 2018-03-28 | 2019-10-03 | Ca, Inc. | Group shareable credentials |
-
2018
- 2018-09-21 GB GBGB1815396.5A patent/GB201815396D0/en not_active Ceased
-
2019
- 2019-09-11 JP JP2021514094A patent/JP2022500920A/ja active Pending
- 2019-09-11 CN CN201980062151.0A patent/CN112771832A/zh active Pending
- 2019-09-11 EP EP19769921.8A patent/EP3854052A1/en active Pending
- 2019-09-11 SG SG11202102221SA patent/SG11202102221SA/en unknown
- 2019-09-11 WO PCT/IB2019/057632 patent/WO2020058806A1/en unknown
- 2019-09-11 KR KR1020217011769A patent/KR20210063378A/ko unknown
- 2019-09-11 US US17/278,198 patent/US11616641B2/en active Active
- 2019-09-20 TW TW108134023A patent/TWI807103B/zh active
-
2023
- 2023-02-06 US US18/106,302 patent/US12034840B2/en active Active
-
2024
- 2024-05-17 US US18/668,047 patent/US20240305451A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958356B1 (en) * | 2006-09-29 | 2011-06-07 | Netapp, Inc. | System and method for establishing a shared secret among nodes of a security appliance |
EP2363977A1 (en) * | 2010-02-26 | 2011-09-07 | Research In Motion Limited | Methods and devices for computing a shared encryption key |
US20170171174A1 (en) * | 2015-12-11 | 2017-06-15 | Amazon Technologies, Inc. | Key exchange through partially trusted third party |
WO2017145010A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
Also Published As
Publication number | Publication date |
---|---|
GB201815396D0 (en) | 2018-11-07 |
SG11202102221SA (en) | 2021-04-29 |
TW202025666A (zh) | 2020-07-01 |
CN112771832A (zh) | 2021-05-07 |
WO2020058806A1 (en) | 2020-03-26 |
KR20210063378A (ko) | 2021-06-01 |
EP3854052A1 (en) | 2021-07-28 |
US12034840B2 (en) | 2024-07-09 |
US20230299947A1 (en) | 2023-09-21 |
US20240305451A1 (en) | 2024-09-12 |
US20210367772A1 (en) | 2021-11-25 |
US11616641B2 (en) | 2023-03-28 |
JP2022500920A (ja) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111066285B (zh) | 基于sm2签名恢复公钥的方法 | |
CN108292402B (zh) | 用于信息的安全交换的公共秘密的确定和层级确定性密钥 | |
CN113424185B (zh) | 快速不经意传输 | |
TWI807103B (zh) | 用於共享公共秘密之電腦實施系統及方法 | |
TWI807125B (zh) | 用以分配數位簽署資料之份額的電腦實施系統及方法 | |
US9705683B2 (en) | Verifiable implicit certificates | |
US9571274B2 (en) | Key agreement protocol | |
TWI813616B (zh) | 用以獲取數位簽署資料之電腦實行方法及系統 | |
JP2023024499A (ja) | 複数のストレージノードにわたる大きいブロックチェーンのセキュアな記憶を可能にする、コンピュータにより実現されるシステム及び方法 | |
WO2019209168A2 (zh) | 数据处理方法、相关装置及区块链系统 | |
CN112119609A (zh) | 用于传达秘密的方法和系统 | |
KR100989185B1 (ko) | Rsa기반 패스워드 인증을 통한 세션키 분배방법 | |
CN113711564A (zh) | 用于加密数据的计算机实现的方法和系统 | |
TW202232913A (zh) | 共享金鑰產生技術 | |
CN117155564A (zh) | 一种双向加密认证系统及方法 | |
CN110572788B (zh) | 基于非对称密钥池和隐式证书的无线传感器通信方法和系统 | |
KR20240141783A (ko) | 셰어드 개인 키의 생성 | |
CN118266189A (zh) | 生成共享加密密钥 | |
CN117837127A (zh) | 生成数字签名 |