>[0100] xs:實(shí)際簽密者計(jì)算時(shí)在整數(shù)乘法群中隨機(jī)選擇的參數(shù);
[0101] Rs:實(shí)際簽密者計(jì)算得到的參數(shù);
[0102] hs:實(shí)際簽密者使用參數(shù)〇 計(jì)算得到的哈希值;
[0103]R:包含實(shí)際簽密者在內(nèi)的所有發(fā)送者的參數(shù)氏和Rs之和;
[0104] S1:包含實(shí)際簽密者私鑰等參數(shù)計(jì)算得到的值,是密文的一部分;
[0105] S2:使用第六種哈希函數(shù)計(jì)算得到的參數(shù)值,是密文的一部分;
[0106] C:密文;
[0107] Sj:使用密文計(jì)算得到的解密參數(shù);
[0108] :計(jì)算對稱密鑰的參數(shù);
[0109] 9 ' :利用密文恢復(fù)的對稱密鑰;
[0110] M' :解簽密得到的明文消息;
[0111] mod:求余操作符;
[0112] n:表示兩個(gè)集合的交集,即集合中相同的部分;
[0113] 0:表示集合為空;
[0114] 丄:表不無效的符號(hào);
[0115] G:表不在一個(gè)集合中選取的符號(hào);
[0116] G^表不在一個(gè)集合中任意選取的符號(hào)。
[0117] 下面結(jié)合圖1詳細(xì)描述本發(fā)明具有多重安全屬性的基于身份的多接收者環(huán)簽密 方法的具體步驟:
[0118] 1.參數(shù)設(shè)置。
[0119] 給定一個(gè)秘密參數(shù)k(k是一個(gè)長整數(shù)),由PKG(PrivateKeyGenerator,私鑰生 成中心)執(zhí)行下列操作:
[0120] ①設(shè)GJPG2分別是階數(shù)為q>2k(q為大素?cái)?shù))的加法群和乘法群,PSG1的一個(gè) 生成元;
[0121] ②選擇一個(gè)PtlGJiG1,隨機(jī)數(shù)sG 作為主密鑰,設(shè)Ppub=sP為系統(tǒng)公鑰;
[0122] ③選擇安全的對稱加解密算法AES;
[0123] ④選擇雙線性映射S=G1XG1^G2;
[0124] ⑤選擇六個(gè)哈希函數(shù):下式中|M|表示將要傳輸?shù)拿魑南⒌亩M(jìn)制長度,H1: {0,H^GijH2jG2- {0, 1} *,H3:{0, 1} 1m1XG1-eZq*,H4:{0,I}|m|XG1XG1XG1X{0, 1}*-EZq*, H5=G1XG2X{0, 1}|M|- {0,I}|M|,H6: {0,I11m1XG1XG1X{0, 1}*一G1;
[0125] ⑥系統(tǒng)公開參數(shù)為params=〈Gi,G2,g,P,P。,Ppub,H1,H2,H3,H4,H5,H6,q>〇
[0126] 2.密鑰提取。
[0127] 輸入用戶i的身份IDiG{0, 1}%PKG計(jì)算用戶的公私鑰:公鑰Qi=H1(IDi)和私 鑰Di=SQi然后通過安全信道將私鑰發(fā)送給用戶;
[0128] 3.匿名簽密。
[0129] L' = {ID'pID'2,…,ID'n}為實(shí)際簽密者選擇的n個(gè)接收者的身份集合。選擇一 個(gè)用戶身份集合L=UD1,ID2,…,IDJ,共同構(gòu)造一個(gè)發(fā)送者環(huán),該集合中包含實(shí)際簽密者 的身份IDs,即IDseL,且兩個(gè)集合中無相同元素;輸入系統(tǒng)公開參數(shù)params、消息M,簽密 者執(zhí)行下列步驟完成該算法:
[0130] ①加密部分:
[0131] a)選擇隨機(jī)參數(shù)aG 計(jì)算參數(shù)U=aP,《=S(CiPpul^Pci),然后計(jì)算
[0132] 0 =H2(Q) (1)
[0133] 得到0為對稱密鑰,通過對稱加密算法AES中的加密模塊來加密消息〇 := Ee (M);
[0134] b)使用n對數(shù)(X1, y),(x2, y2),…,(xn, yn),構(gòu)造拉格朗日函數(shù)Fj (X)滿足Xj是 Fj(X) = y』的解,這里對于j = 1,2,…,n者P有X』=H 3(ID'』),y』=a (P〇+Q'』),其中Q'j為 接收者ID'_的公鑰;
[0135] c)對于j= 1,2,…,n,計(jì)算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,計(jì)算Tj-Ej,=iTj,,jYj,T =ETj。
[0136] ②環(huán)簽名部分:
[0137] a)對于非實(shí)際簽密者i= 1,2, ???,t,i乒S,選擇RiG而,計(jì)算
[0138] Ki=H4(O11RijU1T1L) (2)
[0139] b)對于實(shí)際簽密者i=S,選擇XsG計(jì)算Rs=XSQS-E^s(RJhiQi),hs = H4(〇 計(jì)算R=ERi;
[0140] c)計(jì)算
[0141] 〇 2=H5(R, ?,M) ⑶
[0142] S1= (xs+hs)Ds (4)
[0143] S2=QH6(O11R1T1L) (5)
[0144] 最后得到密文為C=〈 〇u〇 2,S1,S2,U,R1,…,Rt,T,T1,…,Tn,L> ;
[0145] 4.解簽密。
[0146] 輸入密文C、系統(tǒng)公開參數(shù)params、接收者身份信息L' = 個(gè)接收者ID'.使用自己的私鑰D、進(jìn)行如下計(jì)算來解密密文C。
[0147] ①計(jì)算
[0148] 8j=TJxjT2+... + (X廣1modq)Tn (6)
[0149] 其中 Xj=H3(^j);
[0150] ②將(6)式代入(7)式,計(jì)算
[0151] =e(Ppub, 8pg^D/)-1 (7)
[0152] 通過公式⑴來恢復(fù)對稱密鑰0 '=H2 (?'),并使用對稱加密算法AES中的機(jī)密模 塊進(jìn)行解密計(jì)算M' =D0,(〇1),得到一個(gè)消息值M';
[0153] ③將得到的消息M'帶入公式⑶中,檢查〇2=H5(R,是否成立,若該等式 成立,則認(rèn)為M' =M;若不成立,則輸出"丄",說明簽名值是無效的;
[0154]5?公開驗(yàn)證。
[0155] 接收者或者任意的第三方獲得密文后,通過該算法驗(yàn)證發(fā)送者身份的可靠性。 [015(5] ③對于i= 1,…,t,通過公式⑵,恢復(fù)出Iii=H3( 〇Ri,U,T,L),計(jì)算H= H6(O11R1T1L);
[0157] ④利用⑷式、(5)式中得到的SJPS2判斷下面兩個(gè)公式是否成立:
[0158]S(S11P) =e(Ppub,E(Ri+hA)) ⑶
[0159]e(S2,P) =e(U,H) (9)
[0160] 若⑶式、⑶式皆成立,則認(rèn)為簽名者身份合法、可靠,簽密值具有真實(shí)性;否則認(rèn)為 該簽密無效。通過上述簽密過程,發(fā)送者和接收者之間實(shí)現(xiàn)了安全認(rèn)證和消息的保密通信, 保證了消息在不安全的局域網(wǎng)環(huán)境中的匿名廣播。
【主權(quán)項(xiàng)】
1.一種具有多重安全屬性的基于身份的多接收者環(huán)簽密方法,其特征在于包括以下步 驟:1. 參數(shù)設(shè)置; 給定一個(gè)秘密參數(shù)k,k是一個(gè)長整數(shù),由私鑰生成中心執(zhí)行下列操作: ① 設(shè)匕和G2分別是階數(shù)為q>2k的加法群和乘法群,q為大素?cái)?shù),P為G:的一個(gè)生成元; ② 選擇一個(gè)PtlGJiG1,隨機(jī)數(shù)sG作為主密鑰,設(shè)Ppub=sP為系統(tǒng)公鑰; ③ 選擇安全的對稱加解密算法對(E,D); ④ 選擇雙線性映射§:G1XG1^G2; ⑤ 選擇六個(gè)哈希函數(shù):下式中|M|表示將要傳輸?shù)拿魑南⒌亩M(jìn)制長度, H1:{0, 1} ^GljH2iG2- {0, 1} %H3:{0, 1} 1m1XG1-EZq% H4: {0,1} 1m1XG1XG1XG1X(O1I)*^EZq% H5=G1XG2X{0, 1}|M|- {0, 1} |M|,H6: {0, 1} 1m1XG1XG1X{0, 1}*-G1; ⑥ 系統(tǒng)公開參數(shù)為params= %,G2,g,P,PQ,Ppub,H1,H2,H3,H4,H5,H6,q> ;2. 密鑰提??; 輸入用戶i的身份IDi,私鑰生成中心計(jì)算用戶的公私鑰:公鑰Qi=H1(IDi)和私鑰Di =SQi然后通過安全信道將私鑰發(fā)送給用戶;3. 匿名簽密; L' = {ID'pID'2,…,ID'n}為實(shí)際簽密者選擇的n個(gè)接收者的身份集合;選擇一個(gè) 用戶身份集合L=UD1,ID2,…,IDt},該集合中包含實(shí)際簽密者的身份IDs,即IDsGL,且 ZfU'=0;輸入系統(tǒng)公開參數(shù)params、消息M,簽密者執(zhí)行下列步驟: ① 加密部分: a) 選擇隨機(jī)參數(shù)aG 計(jì)算參數(shù)U=aP,《=g(aPpub,Pci),然后計(jì)算 0 =H2 (?) (1) 得到0為對稱密鑰,計(jì)算0 1=E0 (M),對消息進(jìn)行加密; b) 使用n對數(shù)(X1,y),(x2,y2),…,(xn,yn),構(gòu)造拉格朗日函數(shù)Fj (X)滿足Xj是F』(X) =y」的解,這里對于j= 1,2,…,n都有X」=H3(ID'」),y」=a(Pq+Q'」),其中Q'」為接收 者ID'_的公鑰; C)對于j= 1,2,…,n,計(jì)算fj(X) =nI矣J矣j's;n(X_Xj)/(Xj_Xj')=Tj,l+Tj,2X+... +Tj,nX,其中Tj,1,Tj,2,…,Tj,nGZq ;對于j-1,2,…,n,計(jì)算Tj-Ej,=iTj,,jYj,T =ETj; ② 環(huán)簽名部分: a) 對于非實(shí)際簽密者i= 1,2, ???,t,i辛S,選擇RiGJiG1,計(jì)算 hi=H4(〇 !,RilU,T,L) (2) b) 對于實(shí)際簽密者i=S,選擇xsG計(jì)算Rs=xSQS-Ei#s (RfhiQi),hs = H4(〇 計(jì)算R=ERi; c) 計(jì)算 〇2=H5(R,《,M)⑶ S1 =(xs+hs)Ds (4) S2=QH6(O11R1T1L) (5) 最后得到密文為C=〈 〇p〇2,S1,S2,U,R1,…,Rt,T,T1,…,Tn,L> ;4. 解簽密; 輸入密文C、系統(tǒng)公開參數(shù)params、接收者身份信息L' = {ID、ID'2,…,ID'n},每個(gè)接 收者ID'.使用自己的私鑰D、進(jìn)行如下計(jì)算來解密密文C; ① 計(jì)算 8』=TJxjT2+... +(X廠1modq)Tn (6) 其中 Xj=H3(ID,j); ② 將(6)式的值代入下式,計(jì)算 = ?(PPub,SjOe(U1D/)-1 (7) 通過公式⑴來還原對稱密鑰0' =H2(?'),并進(jìn)行解密計(jì)算M' =D0,(〇1),得到一個(gè) 消息值M' ; ③ 將得到的消息M'帶入公式⑶中,檢查〇2=H5(R,是否成立,若成立,則認(rèn)為M' =M;若不成立,則輸出"丄",說明簽名值是無效的;5. 公開驗(yàn)證; 接收者或者任意的第三方獲得密文后,通過該算法驗(yàn)證發(fā)送者身份的可靠性; ① 對于i= 1,…,t,通過公式(2),恢復(fù)出Iii=H3( 〇Ri,U,T,L),計(jì)算H= H6(O11R1T1L); ② 利用⑷式、⑶式中得到的SjPS2判斷(8)式、(9)式是否成立: S(S11P) =e(Ppub,E(R^hiQi)) (8) e(S2,P) =e(U,H) (9) 若⑶式、⑶式皆成立,則認(rèn)為簽名者身份合法、可靠,簽密值具有真實(shí)性;否則認(rèn)為該簽 密無效。
【專利摘要】本發(fā)明公開了一種具有多重安全屬性的基于身份的多接收者環(huán)簽密方法,用于解決現(xiàn)有基于身份的環(huán)簽密方法安全性差的技術(shù)問題。技術(shù)方案是通過參數(shù)設(shè)置、密鑰提取、匿名簽密、解簽密以及公開驗(yàn)證等步驟,在簽密階段將混合加密方法應(yīng)用到簽密中,利用求解對稱密鑰的困難問題,確保方法具有前向安全性;采用環(huán)簽密和拉格朗日插值函數(shù),將包括發(fā)送者和多個(gè)接收者的用戶身份信息完全隱藏起來,有效保障了用戶隱私;同時(shí)采用雙線性對運(yùn)算,確保同時(shí)具有公開驗(yàn)證性和解密公平性等多種安全屬性。
【IPC分類】H04L9/32, H04L29/06
【公開號(hào)】CN104967513
【申請?zhí)枴緾N201510289137
【發(fā)明人】李慧賢, 張曉莉, 范天琪, 龐遼軍
【申請人】西北工業(yè)大學(xué)
【公開日】2015年10月7日
【申請日】2015年5月29日