更多精彩推薦,請關注我們

導語:本課堂用通俗易懂的系列內容爲大家呈現區塊鏈與密碼學領域相關知識。這裏有知識也有故事,從感興趣到有樂趣,全民課堂等你來學。

這個系列中的課程內容首先從比特幣着手進行入門介紹,再延伸至區塊鏈的相關技術原理與發展趨勢,然後深入淺出地依次介紹在區塊鏈中應用的各類密碼學技術。歡迎大家訂閱本公衆號,持續進行學習。

【本課堂內容全部選編自 PlatON 首席密碼學家、武漢大學國家網絡安全學院教授、博士生導師何德彪教授的《區塊鏈與密碼學》授課講義、教材及互聯網,版權歸屬其原作者所有,如有侵權請立即與我們聯繫,我們將及時處理。】

8.4

ZK 環簽名算法

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

系統建立

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

令 P 是羣 G 的生成元,階爲素數 q. 隨機選取作爲 TA 主密鑰,主公鑰爲 =s∙P,哈希函數 H:→,:→G,雙線性對 e:G×G→,系統參數 Params={G,q,P,,e,H,}。

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

密鑰提取

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

用戶 i 的身份,私鑰 =s∙(),公鑰 =()。

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

基於身份的簽名算法

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

給定系統參數 Params,消息 m,私鑰,簽名者執行以下步驟產生簽名:

①隨機選擇 A∈G,計算 c=H(m,e(A,P));

②計算 T=A-c∙;

③輸出簽名 (c, T)。

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

基於身份的簽名算法

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

給定系統參數 Params,消息 m,簽名 (c, T),簽名者執行以下步驟產生簽名:

①計算 c′=H(m,e(T,P)e(c∙(),)

②判斷 c 和 c′是否相等。如果相等則輸出「Accept」,否則輸出「Reject」。

設第 i 個用戶的身份爲,私鑰爲。簽名者π隨機生成身份集 L={,,…,}(0≤π≤r-1),並執行產生簽名。

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

環簽名算法

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

①隨機選擇 A∈G,計算π=H(L||m||e(A,P));

②隨機選取∈G,計算 :

=H(L||m||e(,P)e((),))

這裏 i=π+1,…,r-1,0,1,…,π-1;

③計算π=A-ππ;

簽名者輸出環簽名 (,,, …,)。

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

環驗證算法

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

給定 (,,,…,),m 和 L,

i=0,1,…,r-1,依次計算 =H(L||m||e(,P)e((),)),若 = 驗證通過,否則驗證失敗

今天的課程就到這裏啦,下節課我們將開始學習基於國密算法的環簽名算法,敬請期待!

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

同學們可以關注 PlatON 公衆號,持續學習哦。我們下節課見啦。

👇👇👇

在 PlatON 微信公衆號後臺回覆「入羣」並加 PlatON 小助手微信,即可加入 PlatON 社羣,獲得一手活動信息及最新項目進展。

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

瞭解 PlatON 更多動態

PlatON·GitHub

https://github.com/PlatONnetwork

PlatON·Forum

https://forum.latticex.foundation/c/PlatON-CN

PlatON·Telegram

https://t.me/PlatONNetworkCN

PlatON·Twitter

https://twitter.com/PlatON_Network

PlatON·LinkedIn

https://linkedin.com/company/platonnetwork

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

【圖學院】區塊鏈與密碼學全民課堂第 8-4 講:ZK 環簽名算法

戳閱讀原文,訪問 PlatON 網站!