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