基於Schnorr籤名算法的無證書籤名方法
2023-10-17 19:10:34 3
基於Schnorr籤名算法的無證書籤名方法
【專利摘要】本發明公開了一種基於Schnorr籤名算法的無證書籤名方法,主要解決現有技術存在的安全性差及效率低的問題。其實現步驟是:1、籤名者生成公鑰pkID和秘密信息skID;2、密鑰生成中心KGC生成籤名者的部分私鑰pskID,並通過安全的信道發送給籤名者;3、籤名者對消息m進行籤名,生成籤名δ;4、籤名驗證者檢驗籤名δ的有效性:如果有效,則籤名者對消息m的籤名是合法的,否則籤名者對m的籤名不合法。本發明能抵禦更強類型的攻擊者、提高了運算效率,可廣泛應用於分布式網絡環境中以實現數據的共享。
【專利說明】基於Schnorr籤名算法的無證書籤名方法
【技術領域】
[0001] 本發明屬於網絡安全【技術領域】,涉及一種分布式網絡通信領域中實現高效且安全 的無證書籤名方法,可用於分布式網絡中實現數據的安全共享。
【背景技術】
[0002] 隨著計算機和網絡通信技術的發展,數字籤名技術已得到了廣泛的應用。傳統的 數字籤名技術是基於公鑰基礎設施PKI的。PKI維護並且管理著一個公鑰證書庫,因此需要 巨大的通信、計算和存儲代價。為了解決公鑰的真實性問題,並且降低系統的通信、計算和 存儲代價,基於身份的數字籤名技術IBS。然而IBS中存在一個固有的缺陷即密鑰託管問 題。為了解決IBS中的密鑰託管問題,無證書籤名技術CLS被提出。無證書籤名系統由密 鑰生成中心KGC產生部分私鑰,然後將該部分私鑰安全的傳輸到對應的籤名者。對應的籤 名者再根據自己的實際情況選擇一個對於密鑰生成中心KGC不可見的秘密信息與部分私 鑰結合構成最後的完整私鑰,因此該系統既不使用證書也能很好的解決IBS中的密鑰託管 問題。
[0003]文獻"Improved Certificateless Signature Scheme Provably Secure in the Standard Model. IET Information Security, 2012,6(2) :102_110" 提出 了標準模型下 的改進無證書籤名方法,該方法能夠很好的抵禦Xia等人(Key replacement attack on two certificateless signature schemes without random oracles. Key Engineering Materials,2010, 439:1606-1611)的攻擊並且具有較少的系統參數和較高的計算效率。該 方法的主要步驟是:第一,建立並公開系統公共參數,同時安全保存系統主密鑰;第二,密 鑰生成中心KGC生成籤名者的部分私鑰psk ID,並將籤名者的部分私鑰pskID發送給對應的 籤名者;第三,生成系統中簽名者的公鑰,每個籤名者在生成公鑰的過程中都要保存一個對 於密鑰生成中心KGC不可見的秘密信息sk;第四,籤名者使用其部分私鑰psk ID與秘密信息 81^對待籤名信息加密生成籤名;第五,籤名驗證者驗證籤名者公鑰和籤名的有效性。在該 方法中,籤名者的實際私鑰是由密鑰生成中心KGC產生的部分私鑰與籤名者秘密選擇的秘 密信息sk共同組成,因此私鑰對於密鑰生成中心KGC是不可見的,從而能夠很好的解決密 鑰託管問題。該方法存在以下缺陷:
[0004] 第一,雖然相對於以前的方法,該方法系統參數更少,計算效率更高,但是它依然 使用較多的雙線性對,在通信帶寬受限的環境下很難實現;
[0005]第二,該方法雖然考慮到 Xia 等人(Key replacement attack on two certificateless signature schemes without random oracles. Key Engineering Materials, 2010, 439:1606-1611)的攻擊,但是卻忽略了公鑰替換攻擊和不誠信KGC被動 攻擊,因此易受到這兩類攻擊;
[0006] 第三,在該方法中,密鑰生成中心KGC的信任等級只能達到M. Girault等人提出的 信任等級2,使得密鑰生成中心KGC可以偽裝成籤名者進行非法籤名。
【發明內容】
[0007] 本發明的目的在於這對上述無證書籤名方法的不足,提出一種基於Schnorr籤名 算法的無證書籤名方法,以提升密鑰生成中心KGC的信任等級和計算效率,有效抵禦公鑰 替換攻擊和不誠信KGC的被動攻擊,提高無證書籤名方法的安全性。
[0008] 本方法的主要思想是:利用Schnorr籤名算法來完成籤名者的公鑰生成與驗證, 以使得每次在驗證籤名有效性時都無需再使用雙線性對運算來完成籤名者公鑰有效性的 驗證,從而減少雙線對的使用個數。同時在籤名生成階段將籤名者的部分公鑰信息嵌入到 籤名算法中,即使攻擊者替換了籤名者的公鑰也無法成功構造出合法的籤名,使得公鑰替 換攻擊很難實現。除此之外,該發明綁定部分系統公共信息,使得任何人都可以驗證該部分 信息是密鑰生成中心KGC合法生產的還是它刻意構造用以實施不誠信KGC被動攻擊,從根 源上制止了密鑰生成中心KGC的不誠信。最後,通過將籤名者的公鑰綁定到密鑰生成中心 KGC產生的部分私鑰上,當密鑰生成中心KGC偽裝成籤名者產生合法籤名時,能夠立即檢測 出密鑰生成中心KGC的非法操作,從而實現密鑰生成中心KGC較高的信任等級。
[0009] 根據以上思路,本發明的具體實現步驟包括如下:
[0010] (1)籤名者根據身份ID基於Schnon籤名算法生成公鑰pkID和秘密信息sk ID,並 將該公鑰pkID公布到系統的公共目錄中,將該秘密信息skID安全保存;
[0011] (2)密鑰生成中心KGC在系統公共目錄中找到籤名者的公鑰pkID後,先將籤名者 的公鑰pk ID與籤名者的身份ID進行綁定,再根據綁定信息與系統主密鑰msk,生成部分私 鑰pskID,並通過安全的信道發送給籤名者;
[0012] (3)籤名者收到部分私鑰?41:)後,利用獲得的部分私鑰psk ID、保存的秘密信息 skID以及籤名者的公鑰pkID對消息m進行籤名,生成籤名S;
[0013] (4)籤名驗證者收到籤名者對消息m的籤名消息S後,驗證籤名者公鑰pk ID的合 法性:若合法,則執行步驟(5);否則,操作終止;
[0014] (5)籤名驗證者根據籤名者的身份ID使用籤名者的公鑰pkID通過無證書籤名的 驗證方法檢驗對消息m的籤名^)的有效性:
[0015] 5a)籤名驗證者將籤名者的身份ID和籤名者的公鑰口1^輸入到定義域為 {0, lKXG?,值域為{0, l}n 的哈希函數 H2,得到集合 T= {tilCKKn+l,igZ/A e {0, 1}}, 構造下標集合EID = {i | h = 1,0〈i〈n+l, i G Z/,h G T},計算中間變量
【權利要求】
1. 一種基於Schnorr籤名算法的無證書籤名方法,包括如下步驟: (1) 籤名者根據身份ID基於Schnorr籤名算法生成公鑰pkID和秘密信息skID,並將該 公鑰Pkm公布到系統的公共目錄中,將該秘密信息skID安全保存; (2) 密鑰生成中心KGC在系統公共目錄中找到籤名者的公鑰?1^後,先將籤名者的公鑰 Pkm與籤名者的身份ID進行綁定,再根據綁定信息與系統主密鑰msk,生成部分私鑰pskID, 並通過安全的信道發送給籤名者; (3) 籤名者收到部分私鑰pskID後,利用獲得的部分私鑰pskID、保存的秘密信息skID以 及籤名者的公鑰Pkm對消息m進行籤名,生成籤名δ; (4) 籤名驗證者收到籤名者對消息m的籤名消息δ後,驗證籤名者公鑰成1:)的合法性: 若合法,則執行步驟(5);否則,操作終止; (5) 籤名驗證者根據籤名者的身份ID使用籤名者的公鑰pkID通過無證書籤名的驗證 方法檢驗對消息m的籤名5 = )的有效性: 5a)籤名驗證者將籤名者的身份ID和籤名者的公鑰?1^輸入到定義域為{0,IKXG13, 值域為{〇,1}η的哈希函數H2,得到集合T= {tiliKKn+Liez^tie{〇,1}},構造下標集 合Eid =UIh= 1,0〈i〈n+l,ieZp*,heT},計算中間變量 & - " ' 其中u',Ui,分 別為系統公共參數params中的兩個不同的元素,Z/是不超過大素數p的正整數集合; 5b)籤名驗證者計算中間變量& = /(&):當輸入是奇數時b= 1,否則b= 0 ; 5c)籤名驗證者使用定義域為{0,IKXG12,值域為Z/的哈希函數Hl計算中間變量h= 〃_,//),&),再使用定義域為{0,Vxg13,值域為Z/的哈希函數H3計算中間變 量Iu = --、(η" ID,0llh、[汝叫,gi)i 5d)籤名驗證者根據籤名者的身份ID、籤名者的公鑰pkID,消息m的籤名 5 = (?,?,5id3 )以及系統公共參數params進行驗證: 如果等式 ,g) =Kg/' ./為(仏'少^/^^ 有效的,否則是無效的,其中&,fM分別為籤名S中的三個分量,;分別是 籤名者的公鑰Pkm中的第一個分量和第二個分量,g,g2,Hic^Pm1分別為系統公共參數params中的不同元素。
2. 根據權利要求1所述的基於Schnorr籤名算法的無證書籤名方法,其中步驟(1)所 述的籤名者基於Schnorr籤名算法生成公鑰pkID和秘密信息skID,按如下步驟進行: la) 籤名者依次計算公鑰pkID的第一個分量W1 =gl'第二個分量M=g廣,第三個分量 d=Sfs3H1(IDjpW2)以及第四個分量少=g/3,其中8丨是系統公共參數params中的元素,Sl、s2、S3是籤名者從不超過大素數P的正整數集合Z/中隨機選擇的三個變量,ID是籤名 者的身份,H1是定義域為_!〇, 1Γχ,值域為Z/的哈希函數; lb) 根據步驟2a)計算的參數,構造籤名者的公鑰:pkID = (WpWhC^y); 1C)根據步驟2a)選擇的變量,令籤名者的秘密信息skID =s2。
3. 根據權利要求1所述的基於Schnorr籤名算法的無證書籤名方法,其中所述步驟 (2)中密鑰生成中心KGC將籤名者的公鑰pkID與籤名者的身份ID進行綁定,是通過將籤名 者的身份ID與籤名者的公鑰?1^輸入到定義域為{OJKXG/,值域為{0,1}η的哈希函數 H2 得到集合T=Iti |〇〈i〈n+l,he{〇, 1}}而實現的。
4. 根據權利要求1所述的基於Schnorr籤名算法的無證書籤名方法,其中所述步驟 (2)中,密鑰生成中心KGC根據綁定信息與系統主密鑰msk,密鑰生成中心KGC生成部分私 鑰Pskm,按如下步驟進行: 2a)密鑰生成中心KGC根據籤名者的身份ID依次計算部分私鑰pskID第一個分量 屍為卩=OtU''和第二分量iwi、, 其中,msk為系統主密鑰,r是由密鑰生成中心KGC從不超過大素數p的正整數集合Z/ 中隨機選取的變量,中間變量= g、u'、Ui,分別為系統公共參數params的三個 ^eID 不同的元素,Eid =UIti= 1,0〈i〈n+l,ieZ/,tieT}是下標集合,ID是籤名者的身份,Pkm是籤名者的公鑰; 2b)根據步驟2a)計算的參數,構造籤名者的部分私鑰:/<'? = ( /〃為;):,p.sL_
5. 根據權利要求1所述的基於Schnorr籤名算法的無證書籤名方法,其中步驟(3)所 述的生成籤名S,按如下步驟進行: 3a)籤名者依次計算籤名δ的第一個',第二個分量 ?和第三個分量心二Z, 其中,Kr1是籤名者從不超過大素數ρ的正整數集合Z/中隨機選取兩個變 量,/7λ、7).、/?先/):分別為籤名者的部分私鑰pskm中的第一個分量和第二個分量, /^/^(叫取匕/^^是中間變量^戶醜加乂從以/^^初:是中間變量:氏是定義域為 {0,IpxG12,值域為Z/的哈希函數,H2是定義域為{0,IKXG13,值域為Z/的哈希函數,m是 待籤名消息,ID是籤名者的身份,分別是籤名者的公鑰pkID中的第一個分量和 第二個分量,skID為籤名者的秘密信息,b=f(gk):當輸入gk為奇數時b= 1,否則b= 0, I-〃Fl為步驟3計算出的中間變量,u'、Ui、g、g2、mQ、IIi1分別為系統公共參數params 氏EID 中不同的元素; 3b)根據步驟3a)計算的參數,構造籤名5 = μ)。
【文檔編號】H04L9/32GK104320259SQ201410606856
【公開日】2015年1月28日 申請日期:2014年10月31日 優先權日:2014年10月31日
【發明者】龐遼軍, 許克東 申請人:西安電子科技大學