TWI807125B - 用以分配數位簽署資料之份額的電腦實施系統及方法 - Google Patents

用以分配數位簽署資料之份額的電腦實施系統及方法 Download PDF

Info

Publication number
TWI807125B
TWI807125B TW108138676A TW108138676A TWI807125B TW I807125 B TWI807125 B TW I807125B TW 108138676 A TW108138676 A TW 108138676A TW 108138676 A TW108138676 A TW 108138676A TW I807125 B TWI807125 B TW I807125B
Authority
TW
Taiwan
Prior art keywords
input
encryption
elliptic curve
secret
output
Prior art date
Application number
TW108138676A
Other languages
English (en)
Other versions
TW202029693A (zh
Inventor
克瑞格 S 萊特
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 TW202029693A publication Critical patent/TW202029693A/zh
Application granted granted Critical
Publication of TWI807125B publication Critical patent/TWI807125B/zh

Links

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/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/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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial 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)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一種用於分配一共享秘密的電腦實施方法,揭露諸如在比特幣區塊鏈中於複數個參與者中的一交易。該方法包含一映射步驟,其中,至映射步驟的複數個輸入被映射至對於該等參與者為共用的一橢圓曲線密碼系統之一橢圓曲線的各別橢圓曲線點。在一第一加密步驟中,複數個該等橢圓曲線點係由該橢圓曲線密碼系統的一公私鑰對之一公鑰而被加密,以提供適於被該公私鑰對之對應私鑰解密的一輸出,且在一第二加密步驟中,其中,至該第二加密步驟的至少一輸入的複數個部分被乘以對該等參與者為已知的一序列之各別項目。在一秘密共享步驟中,至該秘密共享步驟的一輸入的複數個份額被分配至複數個該等參與者,以致使該輸入對於一閾值數量的該等分額為可存取的,且對於少於該閾值數量的該等分額為不可存取的。

Description

用以分配數位簽署資料之份額的電腦實施系統及方法
本揭露大致關於秘密共享,更精確地,係分配數位地簽署資料之份額。此揭露特別適合用於但不限定於簽署區塊鏈交易之份額。
發明背景
在此文件中,我們使用「區塊鏈」之用字來包括所有形式的電子、基於計算機、分配式分類帳(ledger)。這些包括基於共識之區塊鏈與交易鏈技術、允許和不允許的分類帳、共享分類帳及其變化。雖然已經提出並且發展了其他區塊鏈的實施,區塊鏈技術最廣為人知的應用是比特幣分類帳。雖然為了方便和例示說明之目的在此提及比特幣,應當注意的是,此揭露不限於與比特幣區塊鏈一起使用,且替代性的區塊鏈實施方式和通訊協定將落入本揭露的範圍內。用字「使用者」在此可以指一人或基於處理器的一資源。
區塊鏈是一種點對點(peer-to-peer)的電子分類帳,其係實施為基於計算機的去中心化式(decentralised)分配系統,該系統由區塊組成,區塊又由交易組成。各交易為一種資料結構,其將在區塊鏈系統參與者之間對一數位資產之控制的轉移進行編碼,並且包括至少一個輸入和至少一個輸出。各區塊包含前一個區塊的雜湊(Hash)值,因此區塊被鏈接在一起以創造從區塊鏈被啟始(inception)以來,已被寫入區塊鏈之所有交易的永久、不可更改的記錄。交易包含被稱為腳本之嵌入在其輸入和輸出中的的小程式,這些程式指明如何以及由誰可以存取交易的輸出。在比特幣平台上,此等腳本是使用基於堆棧(stack-based)的腳本語言編寫的。
為了將交易寫入區塊鏈,必須對其進行「驗證」。網路節點(礦工)進行工作以確保各筆交易均為有效,而無效交易則被網路拒絕。安裝在節點上的軟體客戶藉由執行其鎖定和解鎖腳本,來對未使用交易(UTXO)進行此驗證工作。若鎖定和解鎖腳本的執行評估為真(TRUE),則說明該交易為有效並將該交易寫入區塊鏈。因此,為了將交易寫入區塊鏈,必須:甲)由接收交易的第一個節點驗證–若交易被驗證,則該節點將其轉播(relay)到網路中的其他節點;乙)添加到由礦工建造的一新區塊中;丙)開採,亦即,添加到過去交易的公共分類帳中。
雖然區塊鏈技術因於加密貨幣之實施而聞名,但數位企業家已經開始探索比特幣所基於的密碼安全系統以及可以儲存在區塊鏈上的資料來實施新系統兩者的使用。若將區塊鏈使用在不限於加密貨幣之領域的自動化工作和流程將是非常有利的。如此的解決方案將能夠套用(harness)區塊鏈的好處(例如,一永久性、防篡改的事件記錄與分散式處理等),同時於其應用中更具通用性。
區塊鏈技術在其實施中利用秘密共享技術,例如,分配密碼或數位簽章的份額,以致能交易的閾式簽章(threshold signature)。
現有的秘密共享技術,例如,閾式簽章流程,因為所產生私鑰被打包進入具有很小或沒有分類或組織的一資料結構中,而不能良好的縮放。
因而需要提供一種改良的秘密共享分法,其可以更有效率地縮放。
現在已經設計出此等改良解決方案。
發明概要
因此,根據本揭露提供一種如附加請求項中所定義的一種方法。
根據揭露可提供一種在複數個參與者中分配一共享秘密的電腦實施方法,該方法包含: 一第一映射步驟,其中,至該第一映射步驟的複數個輸入被映射到對參與者為共用(common)的一橢圓曲線密碼系統的各別橢圓曲線點; 一第一加密步驟,其中,複數個該等橢圓曲線點係以該橢圓曲線密碼系統的一公私鑰對之一公鑰加密,以提供適於被該公私鑰對的對應私鑰所解密的一輸出; 一第二加密步驟,其中,至該第二加密步驟的至少一輸入之複數個部分係乘以該等參與者已知的一序列之各別項目;以及 一秘密共享步驟,其中,至該秘密共享步驟的一輸入之複數個份額係分配至複數個該等參與者,以致使該輸入對於一閾值數量的該等份額為可存取的,且該輸入對於少於該閾值數量的該等份額為不可存取的。
由於該共享秘密被偽裝成橢圓曲線點,這提供了增進安全性的優點,且因此較難受未經授權者偵測。
該秘密共享步驟的至少一輸入可基於該第一加密步驟或該第二加密步驟的一輸出。
該第一加密步驟的至少一輸入可基於一共享秘密,該第二加密步驟的至少一輸入可基於該第一加密步驟的一輸出,且該秘密共享步驟的至少一輸入可基於該第二加密步驟的一輸出。
該第二加密步驟的至少一輸入可基於一共享秘密,該第一加密步驟的至少一輸入可基於該第二加密步驟的一輸出,且該秘密共享步驟的至少一輸入可基於該第一加密步驟的一輸出。
該第一加密步驟的至少一輸入可基於該秘密共享步驟或該第二加密步驟的一輸入。
藉由在其他步驟的至少一者前完成秘密共享步驟,這提供了增進流程之計算效能的優點。
該秘密共享步驟的至少一輸入可基於一共享秘密,該第二加密步驟的至少一輸入可基於該秘密共享步驟的一輸出,且該第一加密步驟的至少一輸入可基於該第二加密步驟的一輸出。
該第二加密步驟的至少一輸入可基於一共享秘密,該秘密共享步驟的至少一輸入可基於該第二加密步驟的一輸出,且該第一加密步驟的至少一輸入可基於該秘密共享步驟的一輸出。
該第二加密步驟的至少一輸入可基於該秘密共享步驟或該第一加密步驟的一輸出。
該秘密共享步驟的至少一輸入可基於一共享秘密,該第一加密步驟的至少一輸入可基於該秘密共享步驟的一輸出,且該第二加密步驟的至少一輸入可基於該第一加密步驟的一輸出。
該第一加密步驟的至少一輸入可基於一共享秘密,該秘密共享步驟的至少一輸入可基於該第一加密步驟的一輸出,且該第二加密步驟的至少一輸入可基於該秘密共享步驟的一輸出。
該第二加密步驟可包括完成一背包(Knapsack)演算法。
這提供了增進方法效率的優點。
該第二加密步驟可包括基於一Stern序列的一該等序列。
這藉由減少對於執行該演算法的時間複雜度而提供了較佳效能的優點。
該第二加密步驟可包括參與者已知的一項目之冪次的一該等序列。
該項目可基於在參與者之間共享的一訊息。
該第二加密步驟可包括一超級增加序列。
這提供了能更有效地將該共享秘密解密的優點。
該第一映射步驟可包含基於該輸入判定一橢圓曲線點具有的一座標。
該座標可基於該輸入乘以參與者已知的一數量。
這提供了提供增進安全性的優點。
該第一加密步驟可包括判定一項目,該項目包含一橢圓曲線點乘以代表該第一加密步驟之一輸入的一整數。
該第一加密步驟可包括基於一臨時(ephemeral)密鑰與一參與者的一公鑰來判定一項目。
該方法更可包含發送基於該橢圓曲線密碼系統的一產生點(generator point)的一橢圓曲線點乘以一臨時密鑰,以及基於一參與者之一公鑰的一橢圓曲線點乘以該臨時密鑰給至少一參與者。
該共享秘密可為一數位簽章訊息。
該數位簽章訊息可為一區塊鏈交易。
此揭露亦提供一種系統,其包含: 一處理器;以及 包括可執行指令的記憶體,其作為由該處理器執行的結果,致使該系統進行在此描述之電腦實施方法的任何實施例。
該揭露亦提供具有可執行指令儲存於其上的一非暫時性電腦可讀儲存媒體,作為由一處理器執行的結果,致使該電腦系統可至少進行在此描述的電腦實施方法的一實施例。
該揭露確保機密性、身份驗證、不可否認性,以及在數位簽章中添加訊息恢復和可轉換性。該揭露允許資料的安全傳輸(諸如,一秘密或甚至在是一密鑰之腳本中的記錄)。該揭露亦保護免於諸如在銀行系統中的僅密鑰(key-only)攻擊和訊息攻擊之類的攻擊。整體而言,該揭露的實施例係關於一種允許與比特幣交易有關的外部資訊以及其他用途的訊息結合的流程。
該揭露之實施例用於密鑰分配以及有效率地打包密鑰份額的機制,在儲存密鑰資料的流程中引入了非線性,其藉由添加了擴散與混淆的步驟而增強了在加密通訊協定中安全性的程度。有效率地打包密鑰份額亦使得此解決方案可有效率地縮放。密鑰份額的分配本質致能包括託管(ESCROW)服務的操作模型,在此,ESCROW代理作為轉發代理而不需任何加密秘密的知識,同時仍可監控、驗證、發送與接收訊息。
參照圖1,描述用來在複數個參與者中分配一數位簽章訊息份額的一流程。初始地,一數位訊息m(在此,m為諸如一區塊鏈交易的一訊息M的一雜湊值)在步驟10處被輸入至一橢圓曲線數位簽章演算法(ECDSA)中。對於習於此技藝者將可理解ECDSA產生公鑰與私鑰對以及為隨機整數的一臨時密鑰,並且用以下更詳細描述之方式來提供數位簽章(r, s)。在一映射步驟20中,該數位簽章(r, s)接著被映射至對於參與者為共用的一橢圓曲線密碼系統之橢圓曲線點。以背包演算法為形式的一第一加密步驟30接著施加於在步驟20處所產生的該等橢圓曲線點,以產生該數位簽章(r, s)的一加密版本(R, S),並且接著施加以一橢圓曲線密碼(ECC)加密形式的一第二加密步驟40於該數位簽章(r, s)的該加密版本(R, S)以提供該數位簽章(r, s)的一雙倍加密版本(PR, PS)。可替代地,該第一加密步驟20可為一橢圓曲線密碼(ECC)加密步驟,且該第二加密步驟40可為一背包演算法。最後,諸如Shamir’s 秘密共享的一秘密共享步驟50係施加於該數位簽章(r, s)的一雙倍加密版本(PR, PS)。該ECC加密可以透過以下更詳細描述之Koblitz方法進行。
本揭露的技術使得可在一共享策略中的參與者之間分配密鑰份額。這更可以實現對於一訊息的解密與訊息恢復的一分配機制。相同的機制可被使用來加密一訊息。這將會在以下更詳細描述。該技術使用一背包演算法,例如,於印第安納州IA 50125辛普森學院計算機科學系Maya Hristakeva hristake@simpson.edu的「解決0/1背包問題的不同方法」當中所揭露者,以最佳化資料打包問題以使得密鑰份額可盡可能地被打包與分配。
如在印第安納州 IA 50125辛普森學院計算機科學系Maya Hristakeva hristake@simpson.edu的「解決0/1背包問題的不同方法」中定義之所有背包演算法與標準解決方案的變化在組配空間上進行一些搜尋的變化。藉由Stern序列之使用來將背包演算法的比例初始化播種(seed),可以使組配空間的搜尋變得系統化且詳盡。這影響了演算法的運算效率,因為Stern序列可被使用來一次產生所有可能的有理分數。若將分數限制為小於一的值,他們可以被使用為由背包算法打包之比例,並且這構成了對密鑰共享的所有可能比例的詳盡搜尋。簽章產生係從任意資料訊息執行的。 較佳實施例的優點
比特幣允許訊息以其目前模式數位簽章。本發明所提出之背包ECC方法論的引入將此延伸以允許簽章檢索與解密,如以下更詳細所描述者。因此,相同的機制可被使用在訊息檢索。
在本揭露的策略中,一簽章的一密文(ciphertext)可被發送至一群驗證者,其可接著按照(t, n)閾值策略將該密文解密,其中,該組中n個驗證者中的任何t個都可以解密和恢復訊息,例如在,IEEE論文集(IEEE Proceedings)計算機與數位技術,第145卷第2號,第117-120頁Hsu C.L和Wu T. C.(1998)的「(t, n)共享驗證的身份認證加密策略」中所描述者。這增進了資料傳輸的保密且允許與比特幣直接地相關聯的加密對話(session)之整合。
橢圓曲線密碼(ECC),例如,在數學計算第203-209頁Koblitz N. (1987)的「橢圓曲線密碼系統」當中所描述者,提供一種交換加密資訊的安全方法。ECC(與其它已知加密方法諸如RSA不同)不需要區域參數以維持秘密。此程序的一些應用將包括對公鑰之指示,其具有一自我驗證公鑰密碼體制(crypto system)之同步驗證。隨著背包算法的引入,本揭露的策略將非線性引入加密流程中。會創造非線性,是因為構成加密流程的密鑰資訊係以節省空間的方式打包,而非以該資訊被使用的順序來打包的。這對於在發送到接收者之前被放入背包演算法的加密訊息提供了一更高層級的安全性。接收者可接著使用一反向背包流程,然後進行解密以恢復該訊息。
初始域參數被設定在比特幣通訊協定中。在此方案內使用的訊息交換可被使用以作為具有基於使用者的比特幣密鑰之ID的一安全驗證機制。這允許了在該使用者與一伺服器之間的一挑戰回應機制,例如,如在ACM計算機與通信安全,第1卷,第58-61頁 Nyberg K.和Rueppel R.A.(1993)的「一種基於DSA提供訊息恢復的新簽章方案」當中所描述者。
由客戶所持有的基礎公鑰可使用下面詳述的多重簽章方法而被延伸。
以此方式,客戶的公鑰可依需求且針對各認證會話而被重新計算,例如,如在會議論文,2007年1月Huang等人的「用於未來安全Web交易的橢圓曲線密碼術的FPGA實現」當中詳述者。在比特幣交易中創造數位簽章遵循標準ECDSA (r,s)簽章流程。 加密方法
參照圖2,描述大致用於該訊息之流程的資訊的流程圖。從資訊流程圖中可以看出存在有一可選擇分支70。可選擇分支70藉由在進行背包加密之前將該(R,S) 對分段,使得可以進一步增強加密方法的安全性為可能。這在下面詳細說明。 ECDSA簽章
參照圖3,更詳細的顯示圖1與2的數位簽章步驟10。除非創造一特殊形式的開放簽章,在此任何礦工可請求一交易,否則與比特幣中遵循的標準流程一樣,剛好是交易之交換部分的訊息(M)由訊息的發送者簽署,並合併接收者的地址。ECDSA簽章中的r值的計算詳細說明如下。若r值等於0,則如下所述在s值的計算中將選擇另一個隨機數k。
在此,為發送者的私鑰。
比特幣使用SHA256演算法且簽署該訊息之雜湊以致使: m = Hash256(M).
簽章產生流程在圖3中顯示。來自比特幣交易(r,s)的數位簽章接著以在國際網路安全雜誌,第9卷,第3期,第218-226頁Rajaram Ramasamy R、Prabakar M.A, Devi M.I與Suguna M(2009)的「基於背包的ECC加密和解密」,中更詳細描述的一定義背包序列,被使用作為在步驟30(圖1與2)之背包演算法的輸入。這導致了一經編碼值(R, S)的產生接著在步驟40使用ECC而被加密。此回到了與R及S值相關聯的加密點
使用背包演算法轉換(r, s)的過程在以下方法1中詳細的顯示。在一背包演算法中使用的序列應該為一超增加數列,這使得問題更容易被解決。一超增加數列被定義為在此數列之下一個項目大於先前所有項目的總和者。為了解決一超增加背包序列,背包的總重量係與最大重量與數列比較。在此,總重量低於最大重量處不在背包中。在此,總重量大於最大重量者為在背包中。演算法從總重量中減去最大重量並且將此與下一個最高數值比較。重複此流程直到總額達到零之值。在總額未到達零的狀況下為無解。此為超增加數列的一特性。 使用Stern序列的背包演算法
一般背包演算法問題與演算法解決方案在印第安納州IA 50125辛普森學院計算機科學系Maya Hristakeva hristake@simpson.edu的「解決0/1背包問題的不同方法」中描述。可以看出對背包演算法的所有標準解決方案涉及在一組配空間(configuration space)中搜尋。以下定義背包演算法的一變化。在此演算法中,「背包序列」係將一整數K(參看以下對K的定義)值乘積來計算,在此,p為在模數算數中使用原位(in situ)的一質數(prime)(橢圓曲線的順序),且k為以 為二進位位元串的長度的一秘密整數(臨時密鑰)。數值 對各認證客戶為唯一的且新臨時值k被保留為一秘密。
一修改的Stern序列使用來減少時間複雜度。Stern序列在整數數列期刊Reznick(2008),「有理數的Stern枚舉的正規性質」,中有更詳細的描述。
數值K = Hash(k)在反向背包演算法中使用。在計算上是不可能從雜湊值K來判定k。 背包演算法
顯示在圖1、2與4之步驟30中的背包演算法在此更詳細地描述。
首先,定義一序列。where.係將乘以所計算,在此,為在模數算數中使用的一質數整數且K 為秘密整數。L為二進位位元字串的長度。
值對於各密鑰為獨特的且因此定址,在每一新確定性交換時更新。
值應當與被使用在反向背包演算法中的簽章一起發送。這應該在使用一標準多重簽章方法(參見以下)的對象之間發送。一序列的隨機數值可使用該方法與多重簽章方法(參見以下)產生而非僅使用作為一隨機整數的臨時k值。
一修改的Stern序列係在背包演算法中使用,由於此藉由將在0與1之間的有理數排序減少了時間複雜度,使得有理數容易被搜尋。
Stern序列(更詳細地在Stern, M. A. "Über eine zahlentheoretische Funktion." J. reine angew. Math. 55, 193-220, 1858中描述)為: - 若為偶數-若為奇數
Stern數列中數值間的比率可被使用來創造一二進位樹,在此,樹葉構成所有有理分數。此為Stern-Brochet樹。一旦列舉出一組有理數值,就可以按大小順序通過(traversed)。接著可以考慮小於或等於一的有理數值子集合。正是此種列舉和排序可以使用來提高背包算法的搜尋效率。
考量由迭代n a, b → a, a + b; a + b, b產生的二進位樹,(1)從根部1 1開始。數值a、a + b和a + b被分別稱做a、b的左右子元素; a、b亦被稱做其子元素的母親。藉由歸納產生世代的概念如以下定義:根1、1形成第一代;第(n + 1)代是第n代元素的所有子代的集合。從此迭代獲得的二進位樹稱為Calkin-Wilf樹。
Stern-Brochot樹的機制在以下詳述。
根據背包演算法,使用Eq (3)計算。背包序列由代表且的二進位值使用來代表。
使用Eq (4)來給定該系統的值。Eq(3)Eq(4)
值可使用一橢圓曲線函式來加密。
其他數值可交換為K。這將不需要與在簽章內使用的原始k隨機值相關。然而,K=Hash(k)的整合不允許在較晚的比特幣產生額外的腳本形式。(R,S)的使用產生一雙重加密。這對於隨後的訊息交換提供了身份驗證與機密性兩者。以類似Menezes-Vanstone橢圓曲線演算法之形式,其在Nyberg K.和Rueppel R.A.(1993年)ACM電腦與通訊安全,第1卷,第58至61頁,「一種基於DSA給予訊息恢復的新簽章策略」中進行了描述,輸入被分段成大約160位元的方塊。使用具有接收者之公鑰的ECC演算法輸入來將部分方塊校正或分段。一託管代理或雲端式的伺服器係被使用於交換。各個片段也使用此系統的公鑰加密。
此簽章被發送至伺服器或其他雲端節點。此系統可為一託管代理或其他第三方。此第三方或雲端伺服器由於需要最終接收方的私鑰而無法解密此簽章。在以下顯示ECC加密演算法。
在本揭露之ECC加密演算法的一版本中,開始輸入為使用Koblitz方法,如在「計算之數學」第203-209頁Koblitz N.(1987)「橢圓曲線密碼系統」、以及Padma Bh等人在(IJCSE)國際計算機科學與工程學報 2010年第2卷第5、1904-1907,在使用Koblitz方法的橢圓曲線密碼的實施中一訊息編碼與解碼中所描述者。 Stern-Brocot樹的定義
在此區域內描述如何使用Stern-Brocot樹產生有理數。
可以從以上示意圖看出有理數可以一樹的形式安排。在該數中的樹葉之間的關係為他們全都來自最高的元件,亦即(1/1)。
藉由考量此值作為一向量以及將此乘以一左矩陣L或一右矩陣R,可接著產生在該樹上接續的樹葉。矩陣L與R如以下定義: I = 1  0 0  1 L = 1 0 1 1 R = 1 1 0 1
且呈現的結構如以下:
藉由迭代地施加矩陣R和L,可以看出可以產生樹的其他分支。 然後可以從左到右讀取樹的任何給定層級的項目,以及可以產生有理數的順序。在中心線左側的那些數字(與矩陣I對齊)具有在0到1之間的值。在中心線右側者具有大於1的值。 多重簽章方法
在此區域中描述使用ECSDA作為基礎技術之用於多重簽章的機制。
為了清楚以下描述利用一範例,在此涉及秘密共享的雙方為一些類型的基於網路服務提供者(此後稱為伺服器)以及該伺服器的一客戶(此後稱為客戶)。描述的該該方法對於任何雙方(例如,參考變化V2)為可概括的。
假設各方具有能力進行ECC操作。在實際上,「幼稚的(naïve)」客戶可能會出於此目的而使用由該伺服器提供的軟體,或由一第三方加密服務提供者(例如,比特幣電子錢包)所提供的軟體。 階段I:註冊
1)各方同意依標準ECC系統,諸如secp256k1(如由比特幣系統所使用),使用一相同的產生器,G。
2)伺服器使用secp256k1產生一公/私密鑰對並且發佈他們的公鑰(例如,藉由使其在他們官方網站上可見): 伺服器私鑰 1     = VMS (由伺服器維持秘密) 伺服器公鑰 1     = PMS (使公眾知悉) 在此: V代表一密(PRIVATE)鑰(由該密鑰的所有者保持秘密) P代表一公(PUBLIC)鑰(所有人都知悉)
在下標中: M指示「主要密鑰」 S指示屬於伺服器的密鑰
注意在ECC中,公鑰是從他們的私鑰藉由使用如下的橢圓曲線點乘法所導出: PMS =   VMS X G
私鑰為由ECC系統所指定之可允許範圍內的一隨機整數。 a.  客戶使用secp256k1產生公/私密鑰對: 客戶私鑰1= VMC (由客戶保持秘密) 客戶公鑰1= PMC (此為客戶的主要密鑰) 再次: PMC =   VMC X G b.  客戶於該伺服器註冊他們的主要公鑰(PMC)。這將會發生在,例如,當客戶在該伺服器以他們服務的一持續使用者登入。客戶亦可存取伺服器的公共地可取得主要公鑰PMS。
註冊階段僅在一初始設定時發生一次。接下來主要密鑰將會以一安全的方式重複使用以產生單次使用對稱加密密鑰。 階段II:會話啟動
3)客戶創造一「訊息」以發送至伺服器,且使用一標準演算法產生訊息的一雜湊造成一256位元整數: 訊息= M       (UnixTime + Nonce) 訊息雜湊= SHA-256(M)   0 為了產生共享秘密,訊息的選擇是任意(arbitrary)的,但(UnixTime + Nonce)的選擇將會對於特定規劃應用是有用的(見實施例1)。
4)客戶計算一次要私密鑰如下: 客戶的私密鑰#2 = V2C = VMC + SHA-256(M) 純量相加 應當注意的是在此案例中,次要私密鑰不是一隨機數字而是決定性地由主要公鑰所導出。使用此方法,其配對公鑰(P2C )係由客戶主要密鑰(PMC )如下導出: P2C = V2C X G                               (根據定義) =  (VMC + SHA-256(M)) X G    (藉由替換 V2C ) =  VMC X G + SHA-256(M) X G (ECC 代數為分布的) =  PMC + SHA-256(M) X G   (如根據定義VMC X G = PMC )
應當注意的是「+」運算子指橢圓曲線點加法。
因此,雖然客戶的次要私鑰(V2C )維持秘密,次要公鑰可簡單地由主要密鑰與訊息M給定的知識而導出。
5)客戶以V2C 簽署訊息M並將此發送至伺服器 簽署訊息= Sig-V2C >M> ECDSA,橢圓曲線數位簽章演算法(ECDSA)更詳細地在此描述: https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm; http://cs.ucsb.edu/~koc/ccs130h/notes/ecdsa-cert.pdf
此步驟代表對於在客戶端和伺服器雙方之間,建立一共享秘密並啟動一安全通訊會話僅需要的傳輸。伺服器將會使用所接收到的訊息M產生他們自己的次要公/私密鑰對。這個事實允許客戶端可以立即計算伺服器的次要公鑰:
6)客戶使用如步驟4)中相同技術來計算伺服器的次要公鑰(P2S ): P2S = PMS + SHA-256(M) X G
7)伺服器接收客戶訊息且獨立地計算M = SHA-256(M)的雜湊
8)伺服器如步驟(4)中的公式計算客戶的次要公鑰(P2C )。
9)伺服器根據計算出的P2C 驗證客戶的簽章(Sig-V2C )。
這在此處更詳細地描述: https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm; http://cs.ucsb.edu/~koc/ccs130h/notes/ecdsa-cert.pdf
在此時伺服器可以任何約定(agreed)的條件(例如,如實施例1中)基於訊息M的內容進行進一步的檢查。
10)伺服器計算一次要私鑰如下: V2S = VMS + SHA-256(M)
可以使用如步驟4)中相同的技術來驗證V2S 為與P2S 配對。應當注意的是伺服器的次要私鑰(V2S )維持機密,僅由伺服器知悉。
11)客戶與伺服器現在具有彼此的次要公鑰,且各可獨立地使用他們的次要私鑰如下計算共享秘密:伺服器 計算Server= V2S X P2C 客戶 計算Client= V2C X P2S
兩次計算得出的值為相同的驗證如下: (i)  V2S X P2C =   V2S X (V2C X G) =   (V2S X V2C ) X G (ii) V2C X P2S =   V2C X (V2S X G) =   (V2C X V2S ) X G
ECC代數為可交換的(commutative),因此: (V2S X V2C ) X G    =   (V2C X V2S ) X G 因此方程式(i)與(ii)為等效的。
共享秘密S為一橢圓曲線點的形式(xS , yS )。這可以使用由雙方約定(agreed)之標準公共知悉操作而被轉換成為任何標準密鑰格式。例如, xS 為一256位元整數,其本身可被使用作為用於AES256 加密的一密鑰。其亦可使用RIPEMD160 0而被轉換成為160位元整數以用於需要此長度密鑰的任何應用。注意一旦共享秘密S已經被計算,次要私鑰(V2C 與V2S )不再需要被保留且不需被儲存(雖然取決於特定應用,但只要他們被維持為與主要密鑰一樣安全,他們可被儲存)。更進一步地,共享秘密本身僅在通訊會話期間才需要存在,並且可以在會話後立即丟棄而無需儲存它(雖然可以隨時將其重新計算)。
於此通訊協定中,階段II可被重複許多次,以產生用於單一用途的接續共享密鑰。可替代地,可以重複使用相同的共享秘密。在後者的情況下,為了安全起見,將不會儲存實際秘密,因為可以根據公共知悉訊息和現有秘密地被保存的私鑰重新計算實際秘密(例如,如實施例2所示)。 方法1-背包演算法
在此節將描述如何使用圖1、2和4的步驟30的背包算法來最佳化地打包ECDSA簽章,如在以下以標題為「背包程序的進一步延伸」中更詳細描述。如以上所述,背包演算法的非線性打包過程增加了密鑰共享的安全性。
輸入:   - -    背包序列 輸出:   --較大整數的形式較大整數的形式 方法: 1)轉換成為二進位形式 2)產生背包序列 3)計算 簽章延伸
此方法可透過完整訊息的簽章,延伸到比特幣內所使用的簽章程序之後。在此方法中,在各方之間將被共享與加密的訊息將使用部署在比特幣內的流程進行數位簽章,而不需訊息雜湊。亦即,整個訊息都經過簽章,創造了(r,s)簽章對的一較大版本。
背包演算法再次被使用來編碼(R,S)值。在大多狀況下較佳地使用訊息雜湊,但在有些情況下整個簽章訊息可存在。
(R,S)值可在雙重加密流程進行之前使用發送者的私鑰以及伺服器或託管代理的公鑰而被分段成為方塊。
當伺服器收到簽章後,其使用其維護的私鑰對其進行解密。然後,它使用最終收件人的公鑰對此進行加密。在此過程之後,簽章從伺服器或代理發送給接收者。 單一字符的ECC算法的實施細節
該方法描述了藉由圖1、2和4的ECC加密步驟40來加密單一字符,並且可以將其概括為字符的一串流。
從橢圓曲線選擇一基點G。
G具有符合方程式.的[x, y ]座標。
基點最小化x, y 的值同時符合EC,亦即,為橢圓曲線上最小化x,y 值的一點。
在該ECC方法選擇一隨機整數,其需要被保持秘密。
接著藉由橢圓曲線代數中的標準,藉由一序列加法和加倍運算來評估kG。
來源被指定為主機A ,目標指定為主機B
選擇主機B 的私鑰,稱為nB 。nB 與k可藉由隨機數量產生器來產生以提供可信度。
B 的公鑰由以下評估(3)
為了使A加密並將字母的一字符發送給B,他執行以下操作。
例如,若A想要發送字符「S」。
然後,字符「S」的ASCII值係使用於修改一任意點Pm ,如下所示: Pm 是一仿射點,亦即,用於ECC計算和編碼的一任意原點。 這將不同於基準點G的方式選擇,以保留其個人身份。是該橢圓曲線上的一個點。點的座標應配合橢圓曲線。
完成此轉換有兩個目的。首先,將單一值ASCII轉換為EC的x,y座標。其次,它對於潛在的駭客將被完全地掩蓋。
在ECC的下個步驟,必須評估,在此為使用者B 的一公鑰。為了使結果快速收斂,在序列中的加倍和加法的一最佳數量應根據k的值來計畫。接著藉由將相加,亦即,而導出加密訊息。
這將產生一組座標x2 , y2 。接著,將kG作為加密版本的第一個元素包括在內,這是另一組座標x1 , y1 。因此,用於儲存或傳輸的整個加密版本係由兩組座標組成,如下所示:
因此,已修改的明文(plaintext)已藉由應用ECC方法而被加密。 背包程序的進一步延伸
背包程序引入了徹底的擴散和混亂,以防禦暴力攻擊的企圖。
背包程序使用一序列稱為ai 的向量。 有幾種生成此等向量的方法。例如,可能有n的冪次的一序列,如下所示: ai = 1, n, n2 , n3 , …, nm 在此
在此,為了簡化,n 為小於10的隨機整數,或由涉及pk 整數所計算。p 為在模數算數中的一主要整數,k 為秘密整數且m 為二進位串。
訊息按照背包流程如下所示進行加密: 假設xi 是坐標點之一,其可以用其二進位形式表示為:, 在此,項目b1 , b2 , …為擴展項目的二進位係數。
根據背包演算法,計算一累積總和S[x1],其被定義為xi坐標點和以上定義的序列的二進位形式的向量點積,如下所示:
在最終加密版本,座標xi 被其等效物所取代
類似地,如的其他座標由背包演算法所轉換,以致使加密訊息應該被表現為
應當注意的是兩對整數代表在一訊息中的一個字符。據此,一總訊息將會由等於在該訊息內的字符之數量相等的整數來表示。
接收者B 具有用於反轉該背包程序的所有相關資訊,且可恢復座標的位元模式。例如,B 知悉ai 序列,其本身密鑰以及橢圓曲線的基點G ,a ,b ,p 數值。B 接收該加密訊息,
為了反轉背包程序,亦即在圖5與6中的步驟90,舉一個例子,考慮 其為x1 的背包表示。x1 數值以一迭代方式如下被恢復:被決定。
若此值為正,亦即,那麼一二進位位元1被指定至位置(m )th 且目前數值被替代。然而若該值為負,那麼一0位元被指定且的數值維持不變。
現在從的目前數值減去。取決於其為正或負,一數值1或0被指定於相關位元位置。繼續此減去程序直到ai 序列耗盡。這將會恢復x1 的二進位位元模式。
此等程序接著對y1 ,x2 以及y2 重複。應當回想kGx1 ,y1 表示,且x2 ,y2 表示。為了要將提取,B 應用其密鑰且乘以kG,因此,
將此從減去,以得到如下:
減法還涉及ECC加倍和加法,在此唯一的差異是負項的y坐標前帶有一個負號。 確定斜率的表達、xR ,yR 的新值是相同的。無論何處的y,均替換為-y。
這將產生.。 然後可以從中檢索ASCII值「S」,例如,從ASCII值的橢圓曲線加密查找表中檢索。 ECC加密演算法
在此節描述用於結合ECC加密演算法、Koblitz演算法以及背包演算法的方法。
輸入:  - -    接收者的公鑰 -    隨機整數被發送方使用 -    橢圓曲線基點G 輸出:  針對各的加密點 方法:
解釋用於的方法。用於S的方法為完全相同。 1)Koblitz’s方法在圖1的映射步驟20中使用以識別對應於的一獨特橢圓曲線點。這藉由識別具有x軸的橢圓曲線的一點所達成,因此對於一些常數是在發送者與接收者雙方間約定者。若此一點不存在,那麼我們嘗試等等。 2)發送者產生一隨機數值K 。這可被選擇為。 3)發送者發送加密密文 給接收者。點i為加密點對應於,同時點允許接收者解密該點,如以下更詳細描述者。 解密
圖5和6的步驟80之解密程序中之訊息流程如下。
各個步驟的機制在此解密節的剩餘處描述。 訊息恢復
由該伺服器接收到的郵件簽章可以使用伺服器的私鑰解密。一旦解密後,該訊息將使用在雲端伺服器和最終收件人之間共享的密鑰而被加密。這允許伺服器或代理可以作為一託管或轉發代理,而不需獲知任何加密秘密,同時仍然能夠監視並驗證發送者和接收者。價值的交換係透過一秘密共享方法完成,以下面將在「秘密價值共享」節中進行詳細描述。
雲端伺服器亦可以在作為在創建基於ID之加密策略時的一認證機構。ECC解密演算法在以下詳述。接收者夠使用被輸入到ECC解密算法之他們的私鑰恢復(R,S)。這允許接收者可以將橢圓曲線點解碼回到一訊息。 ECC解密演算法
顯示圖5和6之步驟80的ECC解密演算法的操作。
輸入:-來自發送者之形式為的密文。 -接收者的密鑰 輸出:-解密資料(或) 方法: 1)在此KG為第一點(first point)且為第二點(second point) 2)計算 3)使用Koblitz的方法以解碼該點。這由辨認最大整數小於所達成。
數值(R, S)被使用作為至反向背包演算法的輸入,為了要透過以該值的使用的一迭代流程恢復數值(r,s), 在此為正,一二進位位元一被指定為在位置。
R的目前數值被設定為:
在結果為負的情況下,一位元零被指定且R的值保持不變。接下來,從R的目前數值中減去。如上定義的在二進位數值0或1切換而繼續此迭代流程,直到該序列沒有其他值為止。回到結果是與值R相關聯的二進位模式。接著完成轉換回(r,s)的二進位形式,並使用方程式5完成訊息恢復。
接著可以使用方程式5恢復該訊息。該訊息可以採用ASCII格式或包括非文本輸入的任何其他編碼。Eq (5) 機密值共享
密碼系統中的一個基本問題是,在跨越不安全網路在各方之間一共享秘密的建立。 例如,在對稱密鑰密碼學中,如在https://en.wikipedia.org/wiki/Symmetric-key_algorithm上有更詳細的描述,諸如AES所使用,在https://aesencryption.net/上有更詳細的描述,一單一密鑰由雙方共享。其具有的缺點在於,必須首先以某種方式在雙方之間安全地傳輸秘密密鑰。由於密鑰的傳輸通常是通過諸如網際網路的通訊系統電子地完成,共享步驟可能會帶來災難性的漏洞。由於對稱密鑰通訊協定簡單且廣泛使用,因此存在需要能夠在一不安全的網路中安全地共享一密鑰的能力。
現有通訊協定,諸如Diffie-Hellman密鑰交換(在https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange上有更詳細的描述)和三通(Three Pass)協定(在https://en.wikipedia.org/wiki/Three-pass_protocol上有更詳細的描述)使得可以在不安全網路之間安全共享機密。然而,在持續地產生和共享新秘密的情況下,此等方法在計算上很昂貴。本實施例提供了一種用於安全秘密共享的有效且成本較低的方法。 此外,所描述的技術允許基於單個主密鑰來生成和方便地管理多個安全秘密密鑰。
本實施例的流程之主要元件如下: 1.該方法利用橢圓曲線密碼(ECC)(在https://en.wikipedia.org/wiki/Elliptic-curve_cryptography上有更詳細的描述)以及橢圓曲線操作的特性。存在幾種使用橢圓曲線的密碼學標準,諸如在獨立機構被稱為高效密碼學標準群組(SECG)(http://www.secg.org/)中所描述者。 2. ECC係使用來對非對稱密碼產生加密密鑰對(在https://searchsecurity.techtarget.com/definition/asymmetric-cryptography上有更詳細的描述),其中一個密鑰為可使公眾取得,而另一個維持秘密。本實施例使得各方可基於他們自己的非對稱密鑰對,如由諸如secp256k1之類的約定ECC標準,而獨立地計算相同密鑰。該安全性由以下事實導出,共享機密由各方計算,但從未傳輸過。 3.效率源自於將許多個步驟鞏固為一單一步驟,以及源自於使用一較少計算量的計算來導出新密鑰。在建立主密鑰的初始設置階段之後,一新的秘密密鑰的個別隨後產生都是有效且可重複的。 技術說明書
為了清楚起見,以下的描述採用了一個範例,在此涉及該秘密共享的雙方係某種類型之基於Internet的服務提供者(以下稱為伺服器)和以及該伺服器的一客戶(以下稱為客戶)。所描述的方法被概括化為可用於任何雙方(例如,請參見下面的變化V2)。
假設各方都有執行ECC操作的能力。實際上,「幼稚的」客戶可能會使用伺服器提供用於該用途的軟體,或由第三方加密服務提供者(例如,比特幣電子錢包)所提供的軟體。 階段I:註冊
12)各方同意依標準ECC系統,諸如secp256k1(如由比特幣系統所使用),使用一相同的產生器,G。
13)伺服器使用secp256k1產生一公/私密鑰對並且發佈他們的公鑰(例如,藉由使其在他們官方網站上可見): 伺服器私鑰1    = VMS (由該伺服器維持秘密) 伺服器公鑰1    = PMS (使公眾知悉) 在此: V代表一密(PRIVATE)鑰(由該密鑰的所有者保持秘密) P代表一公(PUBLIC)鑰(所有人都知悉) 在下標中: M指示「主要密鑰」 S指示屬於伺服器的密鑰 注意在ECC中,公鑰是從他們的私鑰藉由使用如下的橢圓曲線點乘法所導出: PMS =   VMS X G 私鑰為由ECC系統所指定之可允許範圍內的一隨機整數。
14)客戶使用secp256k1產生公/私密鑰對: 客戶私鑰1= VMC (由客戶保持秘密) 客戶公鑰1= PMC (此為客戶的主要密鑰) 再次: PMC =   VMC X G
15)客戶於該伺服器註冊他們的主要公鑰(PMC )。這將會發生在,例如,當客戶在該伺服器以他們服務的一持續使用者登入。客戶亦可存取伺服器的公共地可取得主要公鑰PMS
註冊階段僅在一初始設定時發生一次。接下來主要密鑰將會以一安全的方式重複使用以產生單次使用對稱加密密鑰。 階段II:會話啟動
16)客戶產生一「訊息」以發送至伺服器,且使用一標準演算法產生訊息的一雜湊造成一256位元整數: 訊息= M         (UnixTime + Nonce) 在此,為了產生共享秘密的用途,訊息的選擇是任意的,但(UnixTime + Nonce)的選擇將會對於特定規劃應用是有用的,例如,如實施例1中所描述者。 訊息雜湊= SHA-256(M) 更詳細地在https://hash.online-convert.com/sha256-generator中描述
17)客戶計算一次要私密鑰如下: 客戶的私密鑰#2= V2C = VMC + SHA-256(M) 純量相加 應當注意的是在此案例中,次要私密鑰不是一隨機數字而是決定性地由主要公鑰所導出。使用此方法,其配對公鑰(P2C )係由客戶主要密鑰(PMC )如下導出: P2C =   V2C X G                (根據定義) =   (VMC + SHA-256(M) ) X G   (藉由替換 V2C ) =  VMC X G  +  SHA-256(M) X G   (ECC 代數為分布的) =   PMC + SHA-256(M) X G   (如根據定義VMC X G = PMC ) (應當注意的是「+」運算子指橢圓曲線點加法。)
因此,雖然客戶的次要私鑰(V2C )維持秘密,次要公鑰可簡單地由主要密鑰與訊息M給定的知識而導出。
18)客戶以V2C 簽署訊息M並將此發送至伺服器 簽署訊息= Sig-V2C >M> ECDSA (https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm ) 此步驟代表對於在客戶端和伺服器雙方之間,建立一共享秘密並啟動一安全通訊會話僅需要的傳輸。伺服器將會使用所接收到的訊息M產生他們自己的次要公/私密鑰對。這個事實允許客戶端可以立即計算伺服器的次要公鑰:
19)客戶使用如步驟(4)中相同技術來計算伺服器的次要公鑰(P2S ) P2S = PMS + SHA-256(M) X G
20)伺服器接收客戶訊息且獨立地計算M = SHA-256(M)的雜湊
21)伺服器如步驟(4)中的公式計算客戶的次要公鑰(P2C )。
22)伺服器根據計算出的P2C 驗證客戶的簽章(Sig-V2C )。在此,伺服器可能基於訊息M的內容就任何同意的條件進行進一步檢查(例如,見實施例1)。
23)伺服器計算一次要私鑰如下: V2S = VMS + SHA-256(M) 可以使用如步驟(4)中相同的技術來驗證V2S 為與P2S 配對。應當注意的是伺服器的次要私鑰(V2S )維持機密,僅由伺服器知悉。
24)客戶與伺服器現在具有彼此的次要公鑰,且各可獨立地使用他們的次要私鑰如下計算共享秘密S:伺服器 計算S= V2S X P2C 客戶 計算S= V2C X P2S 兩次計算得出的值為相同的驗證如下: (i)  V2S X P2C =   V2S X (V2C X G) =   (V2S X V2C ) X G (ii) V2C X P2S =   V2C X (V2S X G) =   (V2C X V2S ) X G ECC代數為可交換的,因此: (V2S X V2C ) X G    =   (V2C X V2S ) X G
因此方程式(i)與(ii)為等效的。
共享秘密S為一橢圓曲線點的形式(xS, yS)。這可以使用由雙方同意之標準公共知悉操作而被轉換成為任何標準密鑰格式。例如, xS為一256位元整數,其本身可被使用作為用於AES256加密的一密鑰。其亦可使用RIPEMD160(http://homes.esat.kuleuven.be/~bosselae/ripemd160.html )而被轉換成為160位元整數以用於需要此長度密鑰的任何應用。應當注意的是一旦共享秘密S已經被計算,次要私鑰(V2C與V2S)不再需要被保留且不需被儲存(雖然取決於特定應用,但只要他們被維持為與主要密鑰一樣安全,他們可被儲存)。更進一步地,共享秘密本身僅在通訊會話期間才需要存在,並且可以在會話後立即丟棄而無需儲存它(雖然可以隨時將其重新計算)。
於此通訊協定中,階段II可被重複許多次,以產生用於單一用途的接續共享密鑰。可替代地,可以重複使用相同的共享秘密。在後者的情況下,為了安全起見,將不會儲存實際秘密,因為可以根據公共知悉訊息和現有秘密地被保存的私鑰重新計算實際秘密(例如,如實施例2所示)。 變化
在此節中,描述雜湊變化的方法。 V1:階層式雜湊
藉由在雙方之間的事先協議,無需重複階段II來產生連續的單一用途密鑰,以前使用的訊息雜湊(SHA-256(M))可以被雙方重複使用來建立一雜湊的階層。在效果上,一訊息的雜湊可以是下一代(M’)的訊息。 這樣做可允許將被計算出之共享秘密的連續產生,而無需進一步的通訊協定建立傳輸。第二代共享秘密(S’)可以由以下方式計算。 V1.i        雙方計算一第二代雜湊: M’ =   SHA-256(M) Hash’ =   SHA-256(SHA-256(M)) V1.ii       客戶計算伺服器之公鑰的另一代: P2S ’    =   PMS + Hash’ X G V1.iii      伺服器計算客戶之公鑰的另一代: P2C ’    =   PMC + Hash’ X G V1.iv      雙方計算他們自己的私鑰的一第二代: V2C ’   =   VMC + SHA-256(M’) V2S ’   =   VMS + SHA-256(M’) V1.v. 伺服器與客戶各計算共享秘密的下一代:伺服器 計算    S’  = V2S ’ X P2C客戶 計算   S’  = V2C ’ X P2S
進一步產生(S’’, S’’’等等)可以相同的方式計算以產生一鏈階層。此技術需要伺服器與客戶雙方維持追蹤原始訊息或原始計算雜湊(SHA-256(M)),以及其與哪一方相關聯。由於此為公眾知悉資訊,對於此資訊的保留(retention)沒有安全性問題。據此,此資訊可能被維持在「雜湊表」上(連結雜湊值至公鑰)以及自由地分佈在網路(例如,使用激流(Torrent))。應當注意的是若在該階層中有任何個別共享秘密曾經收到損害,只要私秘密鑰保持安全,這不會影響在階層中任何其他秘密密鑰的安全性。
如上所描述的一鏈(線性)階層之外,還可以產生一樹結構形式的一階層。樹分支可以以幾種方式來完成,在此介紹三種。 (一)主密鑰生出(Spawning)。首先,應當注意的是,在鏈階層中,各個新的「鏈接」(公/私密鑰對)都是藉由在原始主密鑰上添加一個經過多次雜湊的訊息來產生的。亦即(為了清楚起見,僅顯示私鑰): (二) V2C = VMC + SHA-256(M) V2C ’            = VMC + SHA-256(SHA-256(M)) V2C ’’= VMC + SHA-256(SHA-256(SHA-256(M))) 等等。 為了產生一分支,任何密鑰可被使用作為次主要密鑰。例如,V2C ’藉由將雜湊添加至其如其對標準主要密鑰所作者,可被使用作為一次主要密鑰: V3C = V2C ’ + SHA-256(M) V3C ’            = V2C ’ +SHA -256(SHA-256(M)) (三)邏輯關聯。在此種方法中,在該樹中的所有節點(公/私對)係作為一鏈而被產生(或以任何其他方式,如以下的(iii)所示者),且該樹中的節點之間的該邏輯關係由一個表格所維持,該表格中的各個節點使係用一指針簡單地與其父節點相關聯。 (四)訊息多樣性。可以藉由在該鏈或樹中的任何點之處,引入一新訊息M來產生新的私/公鑰對。該訊息本身可以是任意的或可以攜帶某些含義或功能(例如,其可能與「真實」銀行帳戶帳號等等相關)。當然,任何新訊息必須安全地保存。
以一樹結構,可以為用於不同的目的提供許多密鑰,諸如,認證(authentication)密鑰、加密密鑰、簽章密鑰、支付密鑰等等,所有全部都鏈接至單一安全地維護的主密鑰。此等當中的各者可用於與另一方創造一共享秘密。 V2:點對點秘密共享
本實施例可以在兩個點之間使用,而非在一伺服器和一客戶之間使用。在以上技術描述中所敘述的範例中,伺服器作為客戶所信任的一方。伺服器必須認證客戶的憑證,以允許客戶存取其系統。伺服器藉由驗證客戶的簽章訊息來完成。在一點對點的情況下,各點必須與彼此建立信任,亦即「客戶」必須認證「伺服器」的憑證。這可以藉由一雙向流程來完成,在該流程中,雙方都進行訊息簽章和驗證步驟(在技術說明中的步驟(0)–(9))。
在點對點的情況下,客戶將簽章訊息M發送至該伺服器後,伺服器使用其計算出的次要私鑰V2S以簽章同一訊息並將其發送回給客戶: V2.i     簽章訊息      = Sig-V2S >M>       ECDSA 客戶接著以在步驟(0中所計算之該伺服器的次要公鑰P2S ,來驗證伺服器的簽章。
現在轉向圖7,提供一計算裝置2600的一種例示性簡化方塊圖,其可用於實施本揭露的至少一個實施例。在各種實施例中,該計算裝置2600可被使用來實施以上例示和描述的任何系統。例如,計算裝置2600可以被組被為可來作為一資料伺服器、一網路伺服器、一可攜式計算裝置、一個人電腦或任何電子計算裝置。如圖7所示,計算裝置2600可包括具有一個或多個層級之快取記憶體與一記憶體控制器(聯合地被標示為2602),其係組配為可與包括主記憶體2608與持久性記憶體2610的一儲存子系統2606通訊。該主記憶體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可以額外地提供一資料庫(repository)以用於儲存根據本揭露中所使用的資料。例如,主記憶體2608與快取記憶體2602可以提供為程式和資料提供依電性儲存。永久性儲存裝置2610可以為程序和資料提供永久性(非依電性)儲存,並且可以包括快閃記憶體、一或多個固態硬碟、一個或多個磁性硬碟、一或多個具有相關可移除媒體的軟碟機、或一或多個具有相關可移除媒體以及其他類似儲存媒體的光碟(例如:CD-ROM或DVD或藍光)驅動器。此等程式和資料可以包括用於完成如本揭露中所描述的一或多個實施例的步驟的程式,以及與如本揭露中所描述的與交易和區塊相關聯的資料。
計算裝置2600可以是各種類型,包括一可攜式計算機裝置、一平板電腦、一工作站或以下描述的任何其他裝置。另外,計算裝置2600可以包括另一裝置,其可透過一或多個埠(例如,USB、耳機插孔、Lightning連接器,等等)連接到計算裝置2600。可連接到計算裝置2600的裝置可以包括被組配為可接受光纖連接器的複數個埠。據此,此裝置可以被組配為可將光訊號轉換為電訊號,該電訊號可以透過將該裝置與該計算裝置2600連接的埠進行傳輸以進行處理。由於計算機和網路會不斷變化,因此對圖7中描繪的計算裝置2600的描述僅意圖作為一特定範例,此範例係為了用於例示說明該裝置的較佳實施例。相較於圖7中描繪的系統,可具有更多或更少組件的其他態樣是可能的。
應當注意的是,以上所述實施例為例示說明而非限制本揭露,並且習於本領域技術者能夠在不脫離由附加請求項中界定之本揭露的範圍,設計出許多替代實施例。在請求項中,括號中的任何參考標記都不應解釋為對請求項的限制。用語「包含有」和「包含」與類似者,不排除任何請求項或說明書之整體中所列出的元件或步驟以外的元件或步驟的存在。在本說明書中,「包含」是指「包括或由……組成」,「包含有」是指「包括或由……組成」。一元件的單數形式並不排除此等元件的複數形式,反之亦然。本揭露可以藉由以包含幾個不同元件的硬體之構件,以及藉由合適地程式化之計算機來實現。在列舉幾個構件的裝置請求項中,可以由一個且相同的硬體來體現一些此等裝置。在互不相同的附屬請求項中提及某些措施的事實,並不表示不能有利地使用這些措施的組合。 參考文獻: Chen T.S. Huang G.S. Liu T.P. and Chung Y.F (2002), ‘Digital Signature Scheme Resulted from Identification Protocol for Elliptic Curve Cryptosystem’, Proceedings of IEEE TENCON’02. pp. 192-195 Hsu C.L and Wu T. C. (1998), Authenticated Encryption Scheme with (t, n) Shared Verification’, IEEE Proceedings – Computers and Digital Techniques, Vol. 145, no. 2, pp. 117-120. Graham, R. L.; Knuth, D. E.; and Patashnik, O. Concrete Mathematics: A Foundation for Computer Science, 2nd ed. Reading, MA: Addison-Wesley, pp. 116-117, 1994. Koblitz N. (1987), ‘Elliptic Curve Cryptosystems’, Mathematics of Computation, pp 203-209. Nyberg K. and Rueppel R.A. (1993), ‘A New Signature Scheme Based on DSA giving message Recovery’, ACM Computer and Communications Security, Vol.1,pp.58-61. Rajaram Ramasamy R, Prabakar M.A, Devi M.I, and Suguna M(2009), ‘Knapsack Based ECC Encryption and Decryption’, International Journal of Network Security, Vol.9, no.3, pp. 218-226. Rajaram Ramasamy R. and Amutha Prabakar M. (2011), ‘Digital Signature Scheme with message Recovery Using Knapsack -based ECC’, International Journal of Network Security, Vol.12, no.1,pp.15,20. Reznick (2008), ‘Regularity Properties of the Stern Enumeration of the Rationals’, Journal of Integer Sequence. Stern, M. A. "Über eine zahlentheoretische Funktion." J. reine angew. Math. 55, 193-220, 1858. Different Approaches to Solve the 0/1 Knapsack Problem Maya Hristakeva Computer Science Department Simpson College Indianola, IA 50125 hristake@simpson.edu Huang, et al., “An FPGA Implementation of Elliptic Curve Cryptography for Future Secure Web Transaction”, Conference Paper, January 2007. 1a. Symmetric key cryptography: https://en.wikipedia.org/wiki/Symmetric-key_algorithm 2a. AES encryption: http://aesencryption.net/ 3a.  Diffie-Hellman Key exchange: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange 4a.  Three Pass Protocol: https://en.wikipedia.org/wiki/Three-pass_protocol 5a. Elliptic Curve Cryptography: https://en.wikipedia.org/wiki/Elliptic_curve_cryptography6a.  Standards for Efficient Cryptography Group (SECG): http://www.secg.org/ 7a. Asymmetric cryptography: http://searchsecurity.techtarget.com/definition/asymmetric-cryptography 8a. SHA-256 algorithm: http://hash.online-convert.com/sha256-generator 9a. Elliptic Curve Digital Signature Algorithm(ECDSA): https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm; http://cs.ucsb.edu/~koc/ccs130h/notes/ecdsa-cert.pdf 10a. RIPEMD160 algorithm: http://homes.esat.kuleuven.be/~bosselae/ripemd160.html 4aa.Padma Bh et. al. / (IJCSE) International Journal on Computer Science and Engineering Vol. 02, No. 05, 2010, 1904-1907 Encoding And Decoding of a Message in the Implementation of Elliptic Curve Cryptography using Koblitz’s Method
10、20、30、40、50、80、90:步驟 70:可選擇分支 2600:計算裝置 2602:處理器 2604:匯流排子系統 2606:儲存子系統 2608:主記憶體 2610:永久性儲存裝置 2612:使用者介面輸入裝置 2614:使用者介面輸出裝置 2616:網路介面子系統 2618:DRAM 2620:ROM
本揭露的此等與其他態樣在參考於此描述的實施例將會變得顯而易見且被闡明。現在將僅以範例的方式並參考附加圖式來描述本揭露的實施例,其中: 圖1為實施本揭露之用於分配一數位簽章訊息之份額的一流程的一概要圖; 圖2為圖1之流程之部分的一詳細表示; 圖3顯示圖1之流程的簽章產生步驟; 圖4顯示圖1之流程的加密步驟; 圖5顯示用於獲得由圖1之流程所加密的數位簽章產生步驟的一訊息恢復流程; 圖6顯示用於在圖5之流程中使用的一解密流程;以及 圖7為一概要圖,例示說明一計算環境,其中可實施各種實施例。
10、20、30、40、50:步驟

Claims (22)

  1. 一種用於在複數個參與者中分配一共享秘密的電腦實施方法,該方法包含:一第一映射步驟,其中,至該第一映射步驟的複數個輸入被映射到對於該等參與者為共用的一橢圓曲線密碼系統之一橢圓曲線的各別橢圓曲線點;一第一加密步驟,其中,複數個該等橢圓曲線點係由該橢圓曲線密碼系統的一公私鑰對之一公鑰而被加密,以提供適於要被該公私鑰對之對應私鑰解密的一輸出;一第二加密步驟,其中,至該第二加密步驟之至少一輸入的複數個部分被乘以對該等參與者為已知之一序列的各別項目;其中,該第二加密步驟包括含有對於該等參與者為已知的一項目之冪次的一該序列,並且該項目係基於在該等參與者間共享的一訊息;以及一秘密共享步驟,其中,至該秘密共享步驟之一輸入的複數個份額被分配至複數個該等參與者,以致使該輸入對於一閾值數量的該等分額為可存取的,且該輸入對於少於該閾值數量的該等分額為不可存取的。
  2. 如請求項1的方法,其中,該秘密共享步驟的至少一輸入係基於該第一加密步驟或該第二加密步驟的一輸出。
  3. 如請求項2的方法,其中,該第一加密步驟的至少一輸入係基於一共享秘密,該第二加密步驟的至少一輸入係基於該第一加密步驟的一輸出,並且該秘密 共享步驟的至少一輸入係基於該第二加密步驟的一輸出。
  4. 如請求項2的方法,其中,該第二加密步驟的至少一輸入係基於一共享秘密,該第一加密步驟的至少一輸入係基於該第二加密步驟的一輸出,並且該秘密共享步驟的至少一輸入係基於該第一加密步驟的一輸出。
  5. 如請求項1的方法,其中,該第一加密步驟的至少一輸入係基於該秘密共享步驟或該第二加密步驟的一輸出。
  6. 如請求項5的方法,其中,該秘密共享步驟的至少一輸入係基於一共享秘密,該第二加密步驟的至少一輸入係基於該秘密共享步驟的一輸出,並且該第一加密步驟的至少一輸入係基於該第二加密步驟的一輸出。
  7. 如請求項5的方法,其中,該第二加密步驟的至少一輸入係基於一共享秘密,該秘密共享步驟的至少一輸入係基於該第二加密步驟的一輸出,並且該第一加密步驟的至少一輸入係基於該秘密共享步驟的一輸出。
  8. 如請求項1的方法,其中,該第二加密步驟的至少一輸入係基於該秘密共享步驟或該第一加密步驟的一輸出。
  9. 如請求項8的方法,其中,該秘密共享步驟的至少一輸入係基於一共享秘密,該第一加密步驟的至少一輸入係基於該秘密共享步驟的一輸出,並且該第二加密步驟的至少一輸入係基於該第一加密步驟的一輸出。
  10. 如請求項8的方法,其中,該第一加密 步驟的至少一輸入係基於一共享秘密,該秘密共享步驟的至少一輸入係基於該第一加密步驟的一輸出,並且該第二加密步驟的至少一輸入係基於該秘密共享步驟的一輸出。
  11. 如請求項1的方法,其中,該第二加密步驟包括完成一背包演算法。
  12. 如請求項1的方法,其中,該第二加密步驟包括基於一Stern序列的一該序列。
  13. 如請求項1的方法,其中,該第二加密步驟包括一超級增加序列。
  14. 如請求項1的方法,其中,該第一映射步驟包含基於該輸入判定具有一座標之一橢圓曲線點。
  15. 如請求項14的方法,其中,該座標係基於該輸入乘以對該等參與者為已知的一數量。
  16. 如請求項1的方法,其中,該第一加密步驟包括判定包含乘以代表至該第一加密步驟的一輸入之一整數的一橢圓曲線點的一項目。
  17. 如請求項1的方法,其中,該第一加密步驟包括基於一臨時密鑰與一參與者的一公鑰來判定一項目。
  18. 如請求項17的方法,進一步包含對至少一參與者,發送基於乘以一臨時密鑰之該橢圓曲線密碼系統的一產生點(generator point)之一橢圓曲線點,以及發送基於乘以該臨時密鑰之一參與者的該公鑰之一橢圓曲線點。
  19. 如請求項1的方法,其中,該共享秘密為一數位地簽章訊息。
  20. 如請求項19的方法,其中,該數位地簽章訊息為一區塊鏈交易。
  21. 一種電腦實施系統,其包含:一處理器;以及包括可執行指令的記憶體,該等可執行指令由於該處理器之執行,致使該系統進行如請求項1至20任一者中所請求的該電腦實施方法之任一實施例。
  22. 一種具有可執行指令儲存在上的非暫時性電腦可讀儲存媒體,該等可執行指令由於一電腦系統之一處理器之執行,致使該電腦系統至少進行如請求項1至20任一者中所請求的方法之一實施例。
TW108138676A 2018-10-27 2019-10-25 用以分配數位簽署資料之份額的電腦實施系統及方法 TWI807125B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1817507.5 2018-10-27
GBGB1817507.5A GB201817507D0 (en) 2018-10-27 2018-10-27 Computer implemented system and method

Publications (2)

Publication Number Publication Date
TW202029693A TW202029693A (zh) 2020-08-01
TWI807125B true TWI807125B (zh) 2023-07-01

Family

ID=64560504

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108138676A TWI807125B (zh) 2018-10-27 2019-10-25 用以分配數位簽署資料之份額的電腦實施系統及方法

Country Status (8)

Country Link
US (1) US11979492B2 (zh)
EP (2) EP3871365B1 (zh)
KR (1) KR20210082201A (zh)
CN (1) CN112930660A (zh)
GB (1) GB201817507D0 (zh)
SG (1) SG11202103412PA (zh)
TW (1) TWI807125B (zh)
WO (1) WO2020084418A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532580B (zh) * 2020-10-23 2022-09-06 暨南大学 一种基于区块链及代理重加密的数据传输方法及系统
TWI748925B (zh) * 2021-06-09 2021-12-01 中華電信股份有限公司 端對端加密通訊的金鑰交換系統、方法及其電腦可讀媒介
GB2609906B (en) * 2021-08-09 2023-12-27 Nchain Licensing Ag Generating digital signature shares
GB2609908B (en) * 2021-08-09 2023-10-18 Nchain Licensing Ag Generating Digital signatures
TWI783804B (zh) * 2021-12-01 2022-11-11 英屬開曼群島商現代財富控股有限公司 基於線性整數秘密共享的共享單元生成系統及其方法
TWI787094B (zh) * 2022-03-08 2022-12-11 穎利科研國際事業有限公司 資安防護系統
CN115767515B (zh) * 2022-10-28 2023-07-14 广州声博士声学技术有限公司 一种无基站实时噪声大数据的加密共享方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180241565A1 (en) * 2017-02-17 2018-08-23 Factom Secret Sharing via Blockchains
US20180248695A1 (en) * 2017-02-28 2018-08-30 Certicom Corp. Generating an elliptic curve point in an elliptic curve cryptographic system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7239701B1 (en) 2000-05-02 2007-07-03 Murata Machinery Ltd. Key sharing method, secret key generating method, common key generating method and cryptographic communication method in ID-NIKS cryptosystem
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
EP3511851A1 (en) * 2018-01-12 2019-07-17 Siemens Healthcare GmbH Storing and accessing medical datasets on the blockchain

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180241565A1 (en) * 2017-02-17 2018-08-23 Factom Secret Sharing via Blockchains
US20180248695A1 (en) * 2017-02-28 2018-08-30 Certicom Corp. Generating an elliptic curve point in an elliptic curve cryptographic system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
期刊 ,Chien-Hua Tsai, Pin-Chang Su ,"Multi-document threshold signcryption scheme : Multi-document threshold signcryption scheme" ,Security and Communication Networks ,Vol. 8, No. 13 ,10 September,2015 ,pages 2244-2256.
期刊 ,Nivethaa Shree K,Latha Parthiban ,"Knapsack-based Elliptic Curve Cryptography using stern series for digital signature authentication" ,IEEE ,PROCEEDINGS OF ICETECT 2011 ,23 March,2011 ,pages 1107-1110.;期刊 ,Chien-Hua Tsai, Pin-Chang Su ,"Multi-document threshold signcryption scheme : Multi-document threshold signcryption scheme" ,Security and Communication Networks ,Vol. 8, No. 13 ,10 September,2015 ,pages 2244-2256. *

Also Published As

Publication number Publication date
JP2022504932A (ja) 2022-01-13
WO2020084418A1 (en) 2020-04-30
GB201817507D0 (en) 2018-12-12
SG11202103412PA (en) 2021-05-28
EP3871365B1 (en) 2024-05-29
US20220006615A1 (en) 2022-01-06
EP4376350A2 (en) 2024-05-29
EP3871365A1 (en) 2021-09-01
TW202029693A (zh) 2020-08-01
US11979492B2 (en) 2024-05-07
CN112930660A (zh) 2021-06-08
KR20210082201A (ko) 2021-07-02

Similar Documents

Publication Publication Date Title
US11936774B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
TWI807125B (zh) 用以分配數位簽署資料之份額的電腦實施系統及方法
CN108352015B (zh) 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移
TWI813616B (zh) 用以獲取數位簽署資料之電腦實行方法及系統
US20150288527A1 (en) Verifiable Implicit Certificates
TWI807103B (zh) 用於共享公共秘密之電腦實施系統及方法
JP2021523620A (ja) 秘密を通信する方法及びシステム
TW202232913A (zh) 共享金鑰產生技術
CN117917041A (zh) 生成共享加密密钥
JP7492508B2 (ja) コンピュータにより実施される、デジタル署名されたデータのシェアを分配するシステム及び方法