這篇文章最初發表於 中等的.
基於配對的密碼學 是橢圓曲線密碼學的一種變體,比特幣 ECDSA 簽名基於。由於配對的特性,新的密碼算法和協議可以實現其他方式無法實現的功能或效率,例如基於身份的加密(IBE)、基於屬性的加密(ABE)、認證密鑰交換(AKE)和短簽名。
基於配對的密碼學的幾種應用已經在許多領域得到了實際應用 區塊鏈.
- Zcash 實現了一個名為zk-SNARKs 的零知識證明算法(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)
- 以太坊支持 配對檢查 執行zkSNARK 驗證
- DFINITY(現在稱為互聯網計算機)構建了一個基於BLS 簽名的方案,比ECDSA 簽名更短。
我們展示了配對可以直接在比特幣上實現,從而使以前認為不可能在比特幣上實現的各種基於配對的密碼學應用成為可能。
雙線性對
一對 e 只是一個接受兩個輸入¹並返回一個輸出的函數,如下所示。
雙線性對具有以下性質:
也就是說,它在每個輸入中都是線性的。很容易看到以下成立。
直觀地說,可以交換標量 n 在其輸入之間並將其作為指數取出。
玩具示例
讓我們看看下面的配對函數。
它是雙線性的,因為它滿足上面的兩個方程。例如,
橢圓曲線上的雙線性對
實際上,上述配對對於加密使用來說並不安全。相反,我們使用配對 橢圓曲線. 輸入是橢圓曲線上的點,輸出是數字²。有多種方法可以在橢圓曲線上構建配對,例如 韋爾, 泰特, 和 吃 配對。
米勒算法
米勒算法 用於有效地計算配對。它由兩部分組成:
- 主循環:第3 到10 行。它在結構上類似於 雙加 計算標量點乘法時的算法。
- 第11 行的最終求冪。
p, k, 和 r 是所用橢圓曲線的參數³。
執行
我們已經實現了米勒算法來計算下面的泰特配對,基於我們的 橢圓曲線算術庫.
實現泰特配對e(P, Q)
線函數(P,Q,R) 是通過P 和Q 並在R 處求值的線函數。
***
筆記:
[1] 故名 配對。
[2] 嚴格來說,它是乘法群中的一個元素。由於這是對配對的介紹,因此我們在整篇文章中選擇可讀性而不是數學嚴謹性。
[3] 並非所有橢圓曲線都可以用於配對。在實踐中僅使用配對可有效計算的配對。他們叫 配對友好曲線, 其中 巴雷托-奈里格 (BN) 或Boneh-Lynn-Shacham (BLS) 曲線是值得注意的例子。
觀看:Craig Wright 博士的主題演講:BSV 全球區塊鏈大會上的雲安全、覆蓋和區塊鏈
比特幣新手?查看CoinGeek 的 初學者的比特幣 部分,了解更多關於比特幣(中本聰最初設想)和區塊鏈的終極資源指南。