具有多重安全屬性的基于身份的多接收者環(huán)簽密方法
【技術領域】
[0001] 本發(fā)明涉及一種基于身份的簽密方法,特別是涉及一種具有多重安全屬性的基于 身份的多接收者環(huán)簽密方法。
【背景技術】
[0002] 大多數(shù)現(xiàn)有的基于身份的簽密方法還不夠完善,不具備多種安全屬性,如用戶身 份的隱私性、解密不公平性、前向安全性以及公開驗證性等,在不安全的網(wǎng)絡環(huán)境中極易遭 受各種攻擊,安全問題已成為簽密技術廣泛應用面臨的主要挑戰(zhàn)。
[0003] 文獻"AnIdentityBasedRingSigncryptionSchemewithPublic Verifiability,SecurityandCryptography(SECRYPT),Proceedingsofthe 2010InternationalConferenceonffiEE, 2010, 1-10"設計了一個基于身份的環(huán)簽密方法, 該方法使用多個雙線性對,解決了部分方法不能抵抗適應性選擇密文攻擊、存在性不可偽 造攻擊和匿名攻擊的問題,但是,由于設計的局限性該方法只是面向一對一的網(wǎng)絡環(huán)境,對 于多用戶網(wǎng)絡環(huán)境執(zhí)行效率不高。因此,針對目前多用戶網(wǎng)絡環(huán)境,提出一個能適用于不安 全的局域網(wǎng)環(huán)境中的具有多重安全屬性(發(fā)送者和接受者的匿名性、前向安全性、解密公 平性和公開驗證性)的基于身份的多接收者環(huán)簽密方法非常必要。
【發(fā)明內容】
[0004] 為了克服現(xiàn)有基于身份的環(huán)簽密方法安全性差的不足,本發(fā)明提供一種具有多重 安全屬性的基于身份的多接收者環(huán)簽密方法。該方法通過參數(shù)設置、密鑰提取、匿名簽密、 解簽密以及公開驗證等步驟,在簽密階段將混合加密方法應用到簽密中,利用求解對稱密 鑰的困難問題,確保方法具有前向安全性;采用環(huán)簽密和拉格朗日插值函數(shù),將包括發(fā)送者 和多個接收者的用戶身份信息完全隱藏起來,有效保障了用戶隱私;同時采用雙線性對運 算,確保同時具有公開驗證性和解密公平性等多種安全屬性。
[0005] 本發(fā)明解決其技術問題所采用的技術方案是:一種具有多重安全屬性的基于身份 的多接收者環(huán)簽密方法,其特點是采用以下步驟:
[0006] 1 ?參數(shù)設置。
[0007] 給定一個秘密參數(shù)k,k是一個長整數(shù),由私鑰生成中心執(zhí)行下列操作:
[0008] ①設GjPG2分別是階數(shù)為q>2k的加法群和乘法群,q為大素數(shù),P為G:的一個生 成元;
[0009] ②選擇一個PtlGJiG1,隨機數(shù)sG 作為主密鑰,設Ppub=sP為系統(tǒng)公鑰;
[0010] ③選擇安全的對稱加解密算法對(E,D);
[0011] ④選擇雙線性映射S=G1XG1^G2;
[0012] ⑤選擇六個哈希函數(shù):下式中|M|表示將要傳輸?shù)拿魑南⒌亩M制長度,
[0013] H1: {0, 1}Gi,H2:G2- {0, 1} *,H3: {0, 1} |M|XG1-KZ:,
[0014] H4: {0, 1} 1m1XG1XG1XG1X{0, 1}*-
[0015] H5=G1XG2X{0, 1}|M|- {0, 1} |M|,H6: {0, 1} 1m1XG1XG1X{0, 1}*-G1;
[0016] ⑥系統(tǒng)公開參數(shù)為params=〈Gi,G2,g,P,PQ,Ppub,H1,H2,H3,H4,H5,H6,q>〇
[0017] 2.密鑰提取。
[0018] 輸入用戶i的身份IDi,私鑰生成中心計算用戶的公私鑰:公鑰Qi=H1(IDi)和私 鑰Di=SQi然后通過安全信道將私鑰發(fā)送給用戶;
[0019] 3.匿名簽密。
[0020]L' = {ID'pID' 2,…,ID'n}為實際簽密者選擇的n個接收者的身份集合。選擇一 個用戶身份集合L=UD1,ID2,…,IDJ,該集合中包含實際簽密者的身份IDs,即IDsGL, 且ZfU'=0;輸入系統(tǒng)公開參數(shù)params、消息M,簽密者執(zhí)行下列步驟:
[0021] ①加密部分:
[0022] a)選擇隨機參數(shù)aGgZj,計算參數(shù)U=aP,《=g(aPpub,Pq),然后計算
[0023] 0 =H2 (?) (1)
[0024] 得到0為對稱密鑰,計算〇E0 (M),對消息進行加密;
[0025] b)使用n對數(shù)(X1, y),(x2, y2),…,(xn, yn),構造拉格朗日函數(shù)Fj(X)滿足Xj是 Fj(X) = y』的解,這里對于j = 1,2,…,n者P有X』=H3(ID'』),y』=a (P〇+Q'』),其中Q'j為 接收者ID'_的公鑰;
[0026] c)對于j= 1,2,…,n,計算fj(x)=TIls;j矣j,《n(x-Xj)/(Xj-Xj,)=Tj;1+Tj;2x+… +Tj,nX,其中Tj,1,Tj,2,…,Tj,nGZq;對于j-1,2,…,n,計算Tj-Ej,=iTj,,jYj,T =ETj。
[0027] ②環(huán)簽名部分:
[0028] a)對于非實際簽密者i= 1,2, ???,t,i乒S,選擇RiG而,計算
[0029] Ki=H4(O11RijU1T1L) (2)
[0030] b)對于實際簽密者i=S,選擇xsGKZq*,計算Rs=XSQS-E^s(RJhiQi),hs = H4(〇 計算R=ERi;
[0031] c)計算
[0032] 〇 2=H5(R, ?,M) ⑶
[0033] S1= (xs+hs)Ds (4)
[0034] S2=QH6(O11R1T1L) (5)
[0035] 最后得到密文為C=〈 〇u〇 2,S1,S2,U,R1,…,Rt,T,T1,…,Tn,L> ;
[0036] 4?解簽密。
[0037] 輸入密文C、系統(tǒng)公開參數(shù)params、接收者身份信息L' = {^^,^^,…,加丄每 個接收者ID'.使用自己的私鑰D、進行如下計算來解密密文C。
[0038] ①計算
[0039] 8j=TJxjT2+... +(X廣1modq)Tn (6)
[0040] 其中Xj=H3(ID'j);
[0041] ②將(6)式的值代入下式,計算
[0042] =e(Ppub, 8 (7)
[0043] 通過公式⑴來還原對稱密鑰0' =H2(?'),并進行解密計算M' =D0,(〇1),得到 一個消息值M' ;
[0044] ③將得到的消息M'帶入公式⑶中,檢查O2=H5(R, ?',M')是否成立,若成立,則 認為M' =M;若不成立,則輸出"丄",說明簽名值是無效的;
[0045] 5?公開驗證。
[0046] 接收者或者任意的第三方獲得密文后,通過該算法驗證發(fā)送者身份的可靠性。
[0047] ①對于i= 1,…,t,通過公式⑵,恢復出Iii=H3( 〇Ri,U,T,L),計算H= H6(O11R1T1L);
[0048] ②利用⑷式、(5)式中得到的SjPS2判斷⑶式、(9)式是否成立:
[0049] S(S11P) =e(Ppub,E(Ri+hA)) ⑶
[0050]e(S2,P) =e(U,H) (9)
[0051] 若⑶式、⑶式皆成立,則認為簽名者身份合法、可靠,簽密值具有真實性;否則認為 該簽密無效。
[0052] 本發(fā)明的有益效果是:該方法通過參數(shù)設置、密鑰提取、匿名簽密、解簽密以及公 開驗證等步驟,在簽密階段將混合加密方法應用到簽密中,利用求解對稱密鑰的困難問題, 確保方法具有前向安全性;采用環(huán)簽密和拉格朗日插值函數(shù),將包括發(fā)送者和多個接收者 的用戶身份信息完全隱藏起來,有效保障了用戶隱私;同時采用雙線性對運算,確保同時具 有公開驗證性和解密公平性等多種安全屬性。
[0053] 下面結合附圖和【具體實施方式】對本發(fā)明作詳細說明。
【附圖說明】
[0054]圖1是本發(fā)明具有多重安全屬性的基于身份的多接收者環(huán)簽密方法的流程圖。
【具體實施方式】
[0055] 名詞解釋。
[0056]PKG:私鑰生成中心;
[0057] k:用戶選擇的秘密參數(shù),為一個長整數(shù);
[0058]G1:階數(shù)為q的加法群;
[0059]G2:階數(shù)為q的乘法群;
[0060]q:大素數(shù),群的階數(shù),表示群中僅含有q個元素;
[0061] P!G1的一個生成元;
[0062] P。:加法群G:中的一個隨機數(shù);
[0063] s:整數(shù)乘法群中的一個隨機數(shù);
[0064] Z/:模為q的整數(shù)乘法群;
[0065] Ppub:系統(tǒng)公鑰;
[0066] (E,D):對稱加解密算法對;
[0067]A雙線性映射;
[0068] params:參數(shù)集合;
[0069] H1:單向散列函數(shù),可將任意長度的二進制字符串計算成階為q的加法群中的散列 值;
[0070] H2:單向散列函數(shù),可將階為q的加法群中的字符串計算成固定長度的二進制字符 串;
[0071] H3:單向散列函數(shù),可將明文消息字符串與階為q的加法群中的字符串計算成固定 長度的模為q的整數(shù)乘法群中散列值;
[0072] H4:單向散列函數(shù),可將明文消息字符串與多個階為q的加法群中的字符串以及任 意長度的二進制字符串計算成固定長度的模為q的整數(shù)乘法群中散列值;
[0073] H5:單向散列函數(shù),將明文消息字符串與階為q的加法群、階為q的乘法群中的字 符串計算成明文消息長度的二進制字符串;
[0074] H6:單向散列函數(shù),可將明文消息字符串與兩個階為q的加法群中的字符串以及任 意長度的二進制字符串計算成固定長度的階為q的加法群中散列值;
[0075]IMI:表示消息M的二進制長度;
[0076]IDi:用戶i的身份信息,表示發(fā)送者的身份信息;
[0077]ID'j:用戶j的身份信息,表示接收者的身份信息;
[0078]IDs:實際簽密者的身份信息;
[0079] Qi:用戶i的公鑰,一般表示發(fā)送者方的公鑰;
[0080]Q'.:用戶j的公鑰,一般表示接收者方的公鑰;
[0081] Di:用戶i的私鑰,一般表示發(fā)送者方的私鑰;
[0082] D'j:用戶j的私鑰,一般表示接收者方的私鑰;
[0083] L:包含實際簽密者的t個發(fā)送者的身份集合,包括ID1,ID2,…,IDn;
[0084] L' :包含實際簽密者選擇的n個接收者的身份集合,包括ID'pID' 2,…,ID' n;
[0085]M:明文消息;
[0086] a:整數(shù)乘法群中隨機選擇的參數(shù);
[0087] 9 :用于加解密的對稱密鑰;
[0088] U:計算得到的部分密文;
[0089] ? :計算得到的參數(shù),參與計算對稱密鑰;
[0090] O1:使用對稱加密算法加密的消息值;
[0091] 〇2:使用參數(shù)R,《,M和第五種哈希函數(shù)計算得到的簽名值,是密文的一部分;
[0092] Xj:使用接收者身份信息計算得到的哈希值;
[0093] yj:使用接收者公鑰等參數(shù)計算得到的參數(shù),與Xj-同共構成n對數(shù)構造拉格朗日 函數(shù);
[0094] 匕〇〇 :拉格朗日插值函數(shù),用于隱藏接收者的身份信息;
[0095]T」,1:含有接收者信息的參數(shù),接收者可以用該參數(shù)獲得解密的關鍵信息;
[0096] Ty由Tu和h計算得到的參數(shù),作為密文的一部分,用于隱藏接收者的身份信 息;
[0097] T:所有Tj之和;
[0098] Ri:對于不是實際簽密者計算時在整數(shù)乘法群中隨機選擇的參數(shù);
[0099] hi:非實際簽密者使用參數(shù)〇i,Ri,U,T,L,計算得到的哈希值;