帶有證書的含有屬性的基于身份加密的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及電子信息安全技術(shù)領(lǐng)域,尤其涉及一種帶有證書的含有屬性的基于身 份加密的方法。
【背景技術(shù)】
[0002] 隨著科技和信息的不斷發(fā)展,信息安全得到廣泛關(guān)注,且在生活,商業(yè),國防中起 著不可替代的作用,密碼學(xué)便是為了保證信息安全而不斷發(fā)展并逐漸成熟的學(xué)科,然后信 息化的高速發(fā)展,對密碼學(xué)有了新的要求,傳統(tǒng)的密碼學(xué)已經(jīng)不能滿足新的應(yīng)用需求。公鑰 密碼學(xué)由Diffie和Heilman于1976年引入密碼學(xué),隨后產(chǎn)生了RSA密碼體制,Elgamal密 碼體制和橢圓曲線密碼體制。這些公鑰密碼體制迅速的得到應(yīng)用,并且得到了更加深入的 研究。
[0003] Shamir在1984年提出了基于身份的密碼學(xué),即用戶的密鑰與身份相關(guān),更加方便 地進行消息加密和解密,不需要傳統(tǒng)公鑰密碼學(xué)中的證書,一個消息發(fā)送者僅使用接收者 的身份信息便可以進行消息加密。然而,在基于身份的密碼學(xué)中,用戶密鑰是由私鑰生成器 (PrivateKeyGenerator,PKG)所產(chǎn)生的,PKG可以使用主密鑰來解密用戶的所有加密消 息,而且可以進行消息簽名,從而出現(xiàn)密鑰托管問題。
[0004] 現(xiàn)有技術(shù)中為了解決基于身份的密碼體制中的密鑰托管問題主要有以下三種方 法:第一種方法是,使用多個PKG,只有達到一定數(shù)目的PKG,才能一起得到用戶的私鑰;第 二種方法是使用雙重加密,將公鑰加密體制和基于身份的加密體制結(jié)合起來;第三種方法 是帶有證書的基于身份的加密方案。
[0005] 上述現(xiàn)有技術(shù)中的解決基于身份的密碼體制中的密鑰托管問題的方法缺點為:證 書不能公開,證書需要通過安全通道傳輸,方案實現(xiàn)復(fù)雜,密鑰托管的安全性不高。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的實施例提供了一種帶有證書的含有屬性的基于身份加密的方法,從而解 決了基于身份的密碼體制中密鑰托管問題,可以將證書公布,不需要通過安全通道傳輸。
[0007] -種帶有證書的含有屬性的基于身份加密的方法,其特征在于,所述方法包括如 下步驟:
[0008] 證書授權(quán)中心CA通過選取橢圓曲線和所有屬性的集合,并選取主密鑰和安全參 數(shù),生成并發(fā)布系統(tǒng)參數(shù);
[0009] 用戶向所述CA提供信息,并取得該CA對所述用戶簽發(fā)的證書,驗證該證書,并使 用所述證書和所述系統(tǒng)參數(shù)生成所述用戶的私鑰,公開所述用戶的公鑰,所述用戶包括發(fā) 送者和接收者;
[0010] 發(fā)送者使用接收者的身份和所述公鑰,選擇線性密鑰共享方案,使用訪問結(jié)構(gòu)對 明文消息進行加密得到密文消息,并將所述密文消息發(fā)送給所述接收者;
[0011] 所述接收者收到所述密文消息,驗證所述消息接收者的屬性集合滿足所述密文消 息中的訪問結(jié)構(gòu)后,使用所述接收者的私鑰對所述密文消息進行解密得到所述明文消息。
[0012] 所述證書授權(quán)中心CA通過選取橢圓曲線和所有屬性的集合,并選取主密鑰和安 全參數(shù),生成并發(fā)布系統(tǒng)參數(shù)包括:
[0013] 所述CA基于安全參數(shù)k,選取有限域上常橢圓曲線,并產(chǎn)生其上的一個非對稱雙 線性配對e:GiXG2 -GT,其中匕和G2為橢圓曲線上的素數(shù)p階的加法群,GT為有限域中的 P階乘法群;
[0014] 取Gi的生成元Pi和Qi,G2的生成元P2和Q2 ;記U為所有屬性的集合;
[0015] 隨機取一個非零元〇£2[)作為所述主密鑰,其中21)={0,1,...4-1},并將00 作為公開參數(shù),隨機選取Gi中的點PmPp...,?%,其中|U|為所有屬性集合的個數(shù);
[0016] 選取安全hash函數(shù)H: {0, 1}* -ZP ;
[0017] 系統(tǒng)公共參數(shù)為params=(e,Gi,G2,GT,P,Q,aQ,PQ,Pi,…,P|tl|),消息空間為GT,主 密鑰為a。
[0018] 所述用戶向所述CA提供信息,并取得該CA對所述用戶簽發(fā)的證書,驗證該證書, 并使用所述證書和所述系統(tǒng)參數(shù)生成所述用戶的私鑰,公開所述用戶的公鑰,所述用戶包 括發(fā)送者和接收者包括:
[0019] 所述用戶具有屬性集合S,選取秘密參數(shù)teZP,計算e(tP,a? =e(P,Q)ta,將 e(P,Q)ta作為對應(yīng)的公鑰,并將相關(guān)信息InfoUser發(fā)送給所述CA,所述信息InfoUser包 括用戶的身份信息,屬性信息S,以及所述公鑰e(P,?ta ;
[0020] 所述CA驗證該用戶的信息,隨機選取sGZP,并計算該用戶的證書Cert= (aP+hasPQ,sQ,asQ,{sPjies),其中h=H(InfoUser,time,aQ),time為時間段,并將證 書Cert傳給所述用戶;
[0021] 用戶收到所述CA的證書Cert,并驗證該證書Cert,即驗證e(aP+hasPd,Q)與 e(P,aQ)e(hPQ,aSQ)是否相等,e(sPi,Q)是否與e的,sQ)相等;
[0022] 所述用戶驗證所述證書Cert通過后,計算出私鑰為(K,L,{KJies),其中K= taP+htasP0,L=tasQ,Ki=tsPi〇
[0023] 所述發(fā)送者使用接收者的身份和所述公鑰,選擇線性密鑰共享方案,使用訪問結(jié) 構(gòu)對明文消息進行加密得到密文消息,并將所述密文信息發(fā)送給所述接收者包括:
[0024] 所述發(fā)送者發(fā)送明文消息m,根據(jù)公共參數(shù),選擇一個線性秘密共享方案,其訪問 結(jié)構(gòu)為(M,P),其中M為一個lXn矩陣,P -U為一個映射;
[0025] 隨機選取向量V= (W2,…,其中r為秘密。計算人i=v*Mi,其中?表示 向量的內(nèi)積,Mi為矩陣M的第i行向量;
[0026] 隨機選取參數(shù)巧,? ??,riGZp ;
[0027] 密文消息CT為(C,C',{CpDj^u),其中C=me(P,Q廣r,C' =rQ,Q= 入iP〇_riPP(i),Di-aQ〇
[0028] 所述接收者收到所述密文消息,驗證所述消息接收者的屬性集合滿足所述密文消 息中的訪問結(jié)構(gòu)后,使用所述接收者的私鑰對所述密文消息進行解密得到所述明文消息包 括:
[0029] 所述接收者收到所述密文消息后,獲取所述密文消息中的訪問結(jié)構(gòu) (M,P);驗證所述接收者的屬性集合S是否滿足所述訪問結(jié)構(gòu)(M,P),如果是, 則記I=UIP(i)GS},計算參數(shù){wjie ;[滿足EieW入i=r,計算明文消息
【主權(quán)項】
1. 一種帶有證書的含有屬性的基于身份加密的方法,其特征在于,所述方法包括如下 步驟: 證書授權(quán)中心CA通過選取橢圓曲線和所有屬性的集合,并選取主密鑰和安全參數(shù),生 成并發(fā)布系統(tǒng)參數(shù); 用戶向所述CA提供信息,并取得該CA對所述用戶簽發(fā)的證書,驗證該證書,并使用所 述證書和所述系統(tǒng)參數(shù)生成所述用戶的私鑰,公開所述用戶的公鑰,所述用戶包括發(fā)送者 和接收者; 發(fā)送者使用接收者的身份和所述公鑰,選擇線性密鑰共享方案,使用訪問結(jié)構(gòu)對明文 消息進行加密得到密文消息,并將所述密文消息發(fā)送給所述接收者; 所述接收者收到所述密文消息,驗證所述消息接收者的屬性集合滿足所述密文消息中 的訪問結(jié)構(gòu)后,使用所述接收者的私鑰對所述密文消息進行解密得到所述明文消息。
2. 根據(jù)權(quán)利要求1所述的帶有證書的含有屬性的基于身份加密的方法,其特征在于, 所述證書授權(quán)中心CA通過選取橢圓曲線和所有屬性的集合,并選取主密鑰和安全參數(shù),生 成并發(fā)布系統(tǒng)參數(shù)包括: 所述CA基于安全參數(shù)k,選取有限域上常橢圓曲線,并產(chǎn)生其上的一個非對稱雙線性 配對^G1XG2 - Gt,其中G1和G2為橢圓曲線上的素數(shù)p階的加法群,Gt為有限域中的p階 乘法群; 取G1的生成元P1和Q1, G2的生成元P2和Q2 ;記U為所有屬性的集合; 隨機取一個非零元a e Zp作為所述主密鑰,其中Zp = {0, 1,. . .,p-1},并將a Q作為 公開參數(shù),隨機選取G1中的點Ptl, P1,... ,Plul,其中|U|為所有屬性集合的個數(shù); 選取安全hash函數(shù)Η: {0, 1Γ - Zp ; 系統(tǒng)公共參數(shù)為 params= (e,G1, G2, GT,P,Q,a Q,Ptl, P1, ...,Plul),消息空間為 Gt,主密