[發明專利]一種安全的PKI與IBC之間的雙向異構數字簽名方法有效
| 申請號: | 202010122735.7 | 申請日: | 2020-02-27 |
| 公開(公告)號: | CN111342973B | 公開(公告)日: | 2021-04-16 |
| 發明(設計)人: | 孟博;王瀟瀟;王德軍;王俊 | 申請(專利權)人: | 中南民族大學 |
| 主分類號: | H04L9/32 | 分類號: | H04L9/32 |
| 代理公司: | 武漢科皓知識產權代理事務所(特殊普通合伙) 42222 | 代理人: | 許蓮英 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 安全 pki ibc 之間 雙向 數字簽名 方法 | ||
1.一種安全的PKI與IBC之間的雙向異構數字簽名方法,其特征在于,包括以下步驟:
步驟1:私鑰生成中心選擇階為素數的循環加法群以及循環乘法群以生成雙線性對,定義兩個無碰撞哈希函數,從階為素數的整數群中隨機選取一個數字作為主密鑰并設置主公鑰,公開系統參數;
步驟2:公鑰基礎設施環境中的用戶向證書權威機構提交身份以頒發證書,從階數為素數的整數群中隨機選擇一個數字作為公鑰基礎設施環境中用戶的私鑰,計算公鑰基礎設施環境中用戶的公鑰,基于身份加密環境中用戶向私鑰生成中心提交用戶身份,計算基于身份加密環境中用戶的私鑰,再回傳至基于身份加密環境中用戶從而得到公鑰;
步驟3:若公鑰基礎設施環境中的用戶作為簽名者用于生成簽名,且基于身份加密環境中的用戶作為驗證者用于驗證簽名,簽名者從階數為素數的整數群中隨機選擇兩個數字分別用于計算簽名者生成簽名的第一部分簽名以及第二部分簽名,簽名者計算雙線性對的值,簽名者利用其私鑰以及給定的消息,通過哈希函數、點乘運算,計算簽名者生成簽名的第三部分簽名,簽名者通過簽名者生成簽名、給定的消息構建組合消息發送給驗證者,驗證者通過組合消息中簽名者生成簽名的第二部分簽名計算驗證者雙線性對的值,驗證者通過組合消息計算驗證者的簽名驗證,驗證者將驗證者的簽名驗證與簽名者生成簽名的第一部分簽名進行比較,判斷是否接收給定的消息;
步驟4:若基于身份加密環境中的用戶作為簽名者用于生成簽名,公鑰基礎設施環境中的用戶作為驗證者用于驗證簽名,簽名者從階數為素數的整數群中隨機選擇兩個數字分別用于計算簽名者生成簽名的第一部分簽名以及第二部分簽名,簽名者計算簽名者雙線性對的值,簽名者利用其公鑰、私鑰以及給定的消息,通過哈希函數、點乘運算,計算簽名者生成簽名的第三部分簽名,簽名者通過簽名者生成簽名、給定的消息構建組合消息發送給驗證者,驗證者通過組合消息中簽名者生成簽名的第二部分簽名計算驗證者雙線性對的值,驗證者通過組合消息計算驗證者的簽名驗證,驗證者將驗證者的雙線性對的第一個驗證值與雙線性對的第二個驗證值進行比較,判斷是否接收給定的消息;
步驟3中所述簽名者從階數為素數的整數群中隨機選擇兩個數字分別用于計算簽名者生成簽名的第一部分簽名以及第二部分簽名為:
簽名者隨機選擇計算R1=r1P,簽名者利用自己的公鑰計算R2=r2PKA:
其中,表示是從中任意選取的一個元素,P是G1的一個生成元,G1是階為素數q的循環加法群,PKA表示簽名者的公鑰,R1表示簽名者生成簽名的第一部分簽名,R2表示簽名者生成簽名的第二部分簽名;
步驟3所述簽名者計算簽名者雙線性對的值為:
W1=e(T,U)
T=SKAPpubP
U=r2PKB
其中,W1表示簽名者雙線性對的值,T表示簽名者雙線性對的值的第一個輸入值,U表示簽名者雙線性對的值的第二個輸入值,P是G1的一個生成元,G1是階為素數q的循環加法群,SKA表示簽名者的私鑰,Ppub為私鑰生成中心的主公鑰,PKB表示驗證者的公鑰;
步驟3所述簽名者利用其私鑰以及給定的消息,通過哈希函數、點乘運算,計算簽名者生成簽名的第三部分簽名為:
S=r1+SKAH2(W1,m)
其中,r1為隨機數,SKA表示簽名者的私鑰,H2表示階為素數q的循環乘法群映射到整數群的無碰撞哈希函數,m為給定的消息,W1表示簽名者雙線性對的值;
步驟3所述簽名者通過簽名者生成簽名、給定的消息構建組合消息發送給驗證者為:
所述簽名者生成簽名為:
σ=(R1,R2,S)
所述組合消息為:
δ=(σ,m)
其中,R1表示簽名者生成簽名的第一部分簽名,R2表示簽名者生成簽名的第二部分簽名,S表示簽名者生成簽名的第三部分簽名,σ表示簽名者生成簽名,m表示給定的消息;
步驟3所述驗證者通過組合消息中簽名者生成簽名的第二部分簽名計算驗證者雙線性對的值為:
W2=e(N,SKB)
N=R2P
其中,P是G1的一個生成元,G1是階為素數q的循環加法群,N表示驗證者雙線性對的值的第一個輸入值,R2表示簽名者生成簽名的第二部分簽名,SKB表示驗證者的私鑰,是W2的第二個輸入值,W2表示驗證者雙線性對的值;
步驟3所述驗證者通過組合消息計算驗證者的簽名驗證為:
V=SP-H2(W2,m)PKA
其中,S表示簽名者生成簽名的第三部分簽名,P是G1的一個生成元,G1是階為素數q的循環加法群,PKA表示簽名者的公鑰,H2表示階為素數q的循環乘法群映射到整數群的無碰撞哈希函數,m表示給定的消息,W2表示驗證者雙線性對的值;
步驟3所述驗證者將驗證者的簽名驗證與簽名者生成簽名的第一部分簽名進行比較,判斷是否接收給定的消息為:
所述驗證者驗證V=R1等式是否成立;
若等式成立,接受m,輸出正確提示符;否則拒絕接受m,輸出錯誤提示符;
步驟4所述簽名者從階數為素數的整數群中隨機選擇兩個數字分別用于計算簽名者生成簽名的第一部分簽名以及第二部分簽名為:
簽名者隨機選擇計算R1=r1P,簽名者利用自己的公鑰計算R2=r2PKB:
其中,P是G1的一個生成元,G1是階為素數q的循環加法群,r2表示隨機數,PKB表示簽名者B的公鑰,R1表示簽名者生成簽名的第一部分簽名,R2表示簽名者生成簽名的第二部分簽名;
步驟4所述簽名者計算簽名者雙線性對的值為:
W1=e(T,U)
T=SKBP
U=r2PKA
其中,W1表示簽名者雙線性對的值,T表示簽名者雙線性對的值的第一個輸入值,U表示簽名者雙線性對的值的第二個輸入值,SKB表示簽名者的私鑰,P是G1的一個生成元,G1是階為素數q的循環加法群,r2表示隨機數,PKA表示驗證者的公鑰;
步驟4所述簽名者利用其公鑰、私鑰以及給定的消息,通過哈希函數、點乘運算,計算簽名者生成簽名的第三部分簽名為:
S=r1PKB+SKBH2(W1,m)
其中,S表示簽名者生成簽名的第二部分簽名,r1表示隨機數,PKB表示簽名者的公鑰,SKB表示簽名者的私鑰,H2表示階為素數q的循環乘法群映射到整數群的無碰撞哈希函數,W1表示簽名者雙線性對的值,m表示給定消息;
步驟4所述簽名者通過簽名者生成簽名、給定的消息構建組合消息發送給驗證者為:
所述簽名者生成簽名為:
σ=(R1,R2,S)
所述組合消息為:
δ=(σ,m)
其中,R1表示簽名者生成簽名的第一部分簽名,R2表示簽名者生成簽名的第二部分簽名,S表示簽名者生成簽名的第三部分簽名,σ表示簽名者生成簽名,m表示給定的消息,δ表示組合消息;
步驟4所述驗證者通過組合消息中簽名者生成簽名的第二部分簽名計算驗證者雙線性對的值為:
N=R2Ppub
其中,W2表示驗證者雙線性對的值,N表示驗證者雙線性對的值的第一個輸入值,P是G1的一個生成元,G1是階為素數q的循環加法群,SKA表示驗證者A的私鑰,R2表示簽名者生成簽名的第二部分簽名,Ppub為私鑰生成中心的主公鑰;
步驟4所述驗證者通過組合消息計算驗證者的簽名驗證為:
步驟4所述驗證者將驗證者的雙線性對的第一個驗證值與雙線性對的第二個驗證值進行比較,判斷是否接收給定的消息為:
雙線性對的第一個驗證值:
e(S,P)
其中,S表示簽名者生成簽名的第三部分簽名,P是G1的一個生成元,G1是階為素數q的循環加法群;
雙線性對的第二個驗證值:
e(R1+hPpub,PKB)
h=H2(W2,m)
其中,R1表示簽名者生成簽名的第一部分簽名,h表示哈希函數H2()的輸入為驗證者雙線性對的值W2與給定的消息m,Ppub表示私鑰生成中心的主公鑰,PKB表示簽名者B的公鑰,H2表示階為素數q的循環乘法群映射到整數群的無碰撞哈希函數,W2表示簽名計算驗證者雙線性對的值,m表示給定的消息;e為雙線性對;表示階為素數q的整數群除去0元素,
所述驗證者驗證e(S,P)=e(R1+hPpub,PKB)等式是否成立:
若等式成立,接受m,輸出正確提示符;否則拒絕接受m,輸出錯誤提示符。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中南民族大學,未經中南民族大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010122735.7/1.html,轉載請聲明來源鉆瓜專利網。





