[發明專利]無可信中心的分布式數字簽名方法有效
| 申請號: | 201910271277.0 | 申請日: | 2019-04-04 |
| 公開(公告)號: | CN110061828B | 公開(公告)日: | 2021-05-04 |
| 發明(設計)人: | 龐遼軍;叩曼;魏萌萌;李慧賢 | 申請(專利權)人: | 西安電子科技大學 |
| 主分類號: | H04L9/00 | 分類號: | H04L9/00;H04L9/08;H04L9/30;H04L9/32 |
| 代理公司: | 西北工業大學專利中心 61204 | 代理人: | 王鮮凱 |
| 地址: | 710073 陜*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 可信 中心 分布式 數字簽名 方法 | ||
1.一種無可信中心的分布式數字簽名方法,其特征在于包括以下步驟:
步驟一、第一個簽名參與者ID1選取自己的子私鑰d1∈{1,2,…,n-1}并秘密保存,然后按照下式,計算第一個公鑰生成參數Q1,并將第一個公鑰生成參數Q1發送給第二個簽名參與者ID2:
Q1=d1G
其中,ID1表示第一個簽名參與者,ID2表示第二個簽名參與者,d1表示第一個簽名參與者ID1的子私鑰,Q1表示第一個公鑰生成參數,G表示橢圓曲線上一個階為n的基點,n為正整數,表示基點G的階;
步驟二、第i個簽名參與者IDi接收到第i-1個公鑰生成參數Qi-1后,選取自己的子私鑰di∈{1,2,…,n-1}并秘密保存,然后按照下式,計算第i個公鑰生成參數Qi,并將第i個公鑰生成參數Qi發送給第i+1個簽名參與者IDi+1,i∈{2,3,…,t-1}:
Qi=diQi-1
其中,IDi表示第i個簽名參與者,IDi+1表示第i+1個簽名參與者,di表示第i個簽名參與者IDi的子私鑰,Qi-1表示第i-1個公鑰生成參數,Qi表示第i個公鑰生成參數,t是一個正整數,表示簽名參與者的個數;
步驟三、第t個簽名參與者IDt接收到第t-1個公鑰生成參數Qt-1后,選取自己的子私鑰dt∈{1,2,…,n-1}并秘密保存,然后按照下式,計算公鑰Q,并將公鑰Q廣播給所有簽名參與者:
Q=dtQt-1
其中,IDt表示第t個簽名參與者,Qt-1表示第t-1個公鑰生成參數,dt表示第t個簽名參與者IDt的子私鑰,Q表示公鑰;
步驟四、第一個簽名參與者ID1選取自己的秘密值k1∈{1,2,…,n-1},然后計算自己的秘密值k1在模n下是否存在乘法逆元如果存在,則執行下一步驟,如果不存在,則重新選取自己的秘密值k1并重新計算自己的秘密值k1在模n下是否存在乘法逆元直到找到一個存在乘法逆元的秘密值k1,然后執行下一步驟;
其中,k1表示第一個簽名參與者ID1的秘密值,表示第一個簽名參與者ID1的秘密值k1在模n下的乘法逆元;
步驟五、按照下式,第一個簽名參與者ID1計算第一個簽名參數中間值R1,并將第一個簽名參數中間值R1發送給第二個簽名參與者ID2:
R1=k1G
其中,R1表示第一個簽名參數中間值;
步驟六、第i個簽名參與者IDi接收到第i-1個簽名參數中間值Ri-1后,選取自己的秘密值ki∈{1,2,…,n-1},然后計算自己的秘密值ki在模n下是否存在乘法逆元如果存在,則執行下一步驟,如果不存在,則重新選取自己的秘密值ki并重新計算自己的秘密值ki在模n下是否存在乘法逆元直到找到一個存在乘法逆元的秘密值ki,然后執行下一步驟;
其中,ki表示第i個簽名參與者IDi的秘密值,表示第i個簽名參與者IDi的秘密值ki在模n下的乘法逆元;
步驟七、按照下式,第i個簽名參與者IDi計算第i個簽名參數中間值Ri,并將第i個簽名參數中間值Ri發送給第i+1個簽名參與者IDi+1:
Ri=kiRi-1
其中,Ri表示第i個簽名參數中間值,Ri-1表示第i-1個簽名參數中間值;
步驟八、第t個簽名參與者IDt接收到第t-1個簽名參數中間值Rt-1后,選取自己的秘密值kt∈{1,2,…,n-1},然后計算自己的秘密值kt在模n下是否存在乘法逆元如果存在,則執行下一步驟,如果不存在,則重新選取自己的秘密值kt并重新計算自己的秘密值kt在模n下是否存在乘法逆元直到找到一個存在乘法逆元的秘密值kt,然后執行下一步驟;
其中,kt表示第t個簽名參與者IDt的秘密值,表示第t個簽名參與者IDt的秘密值kt在模n下的乘法逆元;
步驟九、按照下式,第t個簽名參與者IDt計算簽名參數R:
R=ktRt-1=(xR,yR)
然后判斷簽名參數R是否為橢圓曲線上的零點,如果是,則返回步驟六,如果不是,則將簽名參數R廣播給所有的簽名參與者;
其中,Rt-1表示第t-1個簽名參數中間值,R表示簽名參數,xR表示簽名參數R的橫坐標,yR表示簽名參數R的縱坐標;
步驟十、第一個簽名參與者ID1接收到簽名參數R后,按照下式,計算第一部分簽名r:
r=xRmod n
然后判斷r=0是否成立,如果成立,則返回步驟三,如果不成立,則繼續執行下一步驟;
其中,r表示第一部分簽名,mod表示求模運算;
步驟十一、按照下式,第一個簽名參與者ID1計算消息M的哈希值H,然后按照數據類型轉換規則,將H轉換成一個整數e;
H=hash(M)
其中,M表示消息,H表示消息M的哈希值,hash表示一個密碼哈希算法,e表示哈希值H轉換后的整數值;
步驟十二、第一個簽名參與者ID1選擇paillier同態加密算法的私鑰sk和公鑰pk,將私鑰sk秘密保存,并將公鑰pk公開;
其中,paillier表示同態加密算法,sk表示paillier同態加密算法的私鑰,用來做解密運算,pk表示paillier同態加密算法的公鑰,用來做加密運算;
步驟十三、按照下式,第一個簽名參與者ID1計算第一個簽名生成參數第一部分α1和第一個簽名生成參數第二部分β1,然后將第一個簽名生成參數第一部分α1和第一個簽名生成參數第二部分β1發送給第二個簽名參與者ID2:
其中,α1表示第一個簽名生成參數第一部分,β1表示第一個簽名生成參數第二部分,Epk(.)表示paillier同態加密算法的加密運算;
步驟十四、第i個簽名參與者IDi接收到第i-1個簽名生成參數第一部分αi-1和第i-1個簽名生成參數第二部分βi-1后,按照下式,計算第i個簽名生成參數第一部分αi和第i個簽名生成參數第二部分βi,然后將第i個簽名生成參數第一部分αi和第i個簽名生成參數第二部分βi發送給第i+1個簽名參與者IDi+1:
其中,αi表示第i個簽名生成參數第一部分,βi表示第i個簽名生成參數第二部分,αi-1表示第i-1個簽名生成參數第一部分,βi-1表示第i-1個簽名生成參數第二部分,×E表示paillier同態加密算法下的乘法同態運算;
步驟十五、第t個簽名參與者IDt接收到第t-1個簽名生成參數第一部分αt-1和第t-1個簽名生成參數第二部分βt-1后,按照下式,計算第t個簽名生成參數第一部分αt和第t個簽名生成參數第二部分βt:
其中,αt表示第t個簽名生成參數第一部分,βt表示第t個簽名生成參數第二部分,αt-1表示第t-1個簽名生成參數第一部分,βt-1表示第t-1個簽名生成參數第二部分;
步驟十六、按照下式,第t個簽名參與者IDt計算第二部分簽名s在paillier同態加密下的密文C,然后將第二部分簽名s在paillier同態加密下的密文C發送給第一個簽名參與者ID1:
C=αt+Eβ2t+1
其中,s表示第二部分簽名,C表示第二部分簽名s在paillier同態加密下的密文,+E表示paillier同態加密算法下的加法同態運算;
步驟十七、按照下式,第一個簽名參與者ID1計算第二部分簽名s:
s=Dsk(C)mod n
其中,Dsk(.)表示paillier同態加密算法的解密運算;
步驟十八、按照下式,第一個簽名參與者ID1計算簽名驗證參數R′,R′=(xR′,yR′):
R′=s-1(eG+rQ)
其中,R′表示簽名驗證參數,xR′表示簽名驗證參數R′的橫坐標,yR′表示簽名驗證參數R′的縱坐標,s-1表示第二部分簽名s在模n下的乘法逆元;
步驟十九、按照下式,第一個簽名參與者ID1計算第一部分簽名的驗證參數r′:
r′≡xR′mod n
然后判斷等式r′=r是否成立,如果成立,則執行下一步驟,如果不成立,則簽名失敗,返回步驟六;
其中,r′表示第一部分簽名的驗證參數,≡表示同余符號;
步驟二十、第一個簽名參與者ID1提取簽名(r,s),然后將簽名(r,s)廣播給所有簽名參與者;
其中,(r,s)表示最終生成的簽名。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安電子科技大學,未經西安電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910271277.0/1.html,轉載請聲明來源鉆瓜專利網。





