基于身份的代理重加密方法和系統的制作方法
【技術領域】
[0001]本發明涉及密碼學技術領域,尤其涉及一種基于身份的代理重加密方法和系統。
【背景技術】
[0002]基于身份的密碼學是由Shamir于CRYPTO’84中提出,直到Cocks使用模RSA合數的二次剩余性質給出了基于身份的加密方案,和Boneh與Franklin使用橢圓曲線上雙線性配對給出基于身份的加密方案后,基于身份的密碼學,特別是基于橢圓曲線上雙線性配對的基于身份的密碼學,得到了飛速發展和應用。基于身份的密碼體制與傳統公鑰密碼體制相比較,不需要證書體制,可以方便地利用身份信息對消息加密并傳送。
[0003]隨著應用需求的不斷提高,信息量的不斷增長,迫切需要公鑰密碼體制滿足新的特點。代理重加密方案起源于Mambo和Okamoto提出的委托解密權利,隨后代理重加密方案由Blaze, Bleumer和Strauss首先給出,此方案是建立在基于Elgamal加密基礎上的。在一個代理重加密方案中,代理者可以將發送給一個接收者的密文重新加密變成發送給另一個接收者的密文,委托者可以通過代理者將密文轉化為受委托者的密文。因此,開發一種安全、有效的基于身份的重加密方案是十分有必要的。
【發明內容】
[0004]本發明的實施例提供了一種基于身份的代理重加密方法和系統,以實現安全、有效的基于身份的重加密方案。
[0005]本發明提供了如下方案:
[0006]一種基于身份的代理重加密方法,包括:
[0007]密鑰生成中心選擇安全參數,基于所述安全參數生成并公開系統參數,根據所述系統參數和委托者、受委托者的身份信息分別生成委托者、受委托者的私鑰;
[0008]消息發送方加密明文信息得到密文消息,將所述密文消息發送給所述委托者,所述委托者利用受委托者的身份信息和委托者的私鑰生成重加密密鑰,將所述重加密密鑰和密文消息發送給代理者;
[0009]所述代理者用所述重加密密鑰重新加密所述密文消息,得到重加密密文,將所述重加密密文發送給受委托者;
[0010]所述受委托者利用自己的私鑰解密所述重加密密文,計算得到所述明文信息。
[0011]所述密鑰生成中心選擇安全參數,基于所述安全參數生成并公開系統參數,包括:
[0012]密鑰生成中心基于安全參數k,選取定義在素數階有限域上的橢圓曲線E,構造橢圓曲線E上的一個非對稱性配對^G1 XG2 — Gt,,其中G1和G2為素數階P的循環群,G1的生成元為P,G2的生成元為Q,隨機選取參數α,β,Y e Zp,其中Zp = {O, I,…,p_l},選取安全的哈希函數H:GT — G2 ;
[0013]記P1 = α P,Q1 = a Q, R1 = y P, S1 = Y Q, V = e (P, Q) α 0 ;
[0014]設定主密鑰為α β Q,公開參數為(G1, G2, e,P,Q,P1, Q1, R1, S1, H,v)。
[0015]所述根據所述系統參數和委托者、受委托者的身份信息分別生成委托者、受委托者的私鑰,包括:
[0016]設用戶的身份Uid e Zp,其中Zp={0,1,…,P-1},隨機選取25中非零參數r,計算(I1=O β Q+rUjnQi+rS^ d2=rQ,所述用戶為委托者和受委托者;
[0017]密鑰生成中心生成所述用戶的私鑰為dID= (Clpd2),將所述用戶的私鑰dID傳輸給所述用戶。
[0018]所述消息發送方加密明文信息得到密文消息,將所述密文消息發送給委托者,包括:
[0019]所述消息發送方選取待發送的明文信息M,其中M e Gt ;
[0020]所述消息發送方隨機選取非零參數s e Zp,計算C1 = Mvs, C2 = sP, C3 = SUaPJsR1,其中Ua為委托者的身份信息;
[0021]所述消息發送方計算密文消息為CT = (C1, C2, C3),將密文消息CT發送給所述委托者。
[0022]所述委托者利用受委托者的身份信息和委托者的私鑰生成重加密密鑰,將所述重加密密鑰和密文消息發送給代理者,包括:
[0023]所述委托者A隨機選取消息K e Gt,和參數t e Zp,用所述受委托者B的身份Ub來加密消息 K 得到(C4, C5, C6),其中 C4=Kvt,,C5=tP, C6=tUBP1+tR1 ;
[0024]所述委托者將重加密密鑰dA —B=(d' 1; d2,C4, C5, C6)和密文消息CT = (C1, C2, C3)發送給所述代理者,其中d' !=屯+H⑷,(屯,d2)為所述委托者的私鑰。
[0025]所述代理者用所述重加密密鑰重新加密所述密文消息,得到重加密密文,將所述重加密密文發送給受委托者,包括:
[0026]所述代理者計算C' I = (^(C3, d2)/e(C2, (Γ J ;
[0027]所述代理者用所述重加密密鑰dA —B重新加密所述密文消息CT,得到重加密密文(C' ,,C' 2,C4C5, C6),其中 c' 2=c2 ;
[0028]所述代理者將所述重加密密文發送給所述受委托者。
[0029]所述受委托者利用自己的私鑰解密重加密密文,計算得到所述明文信息,包括:
[0030]所述受委托者B收到所述重加密密文(C'2,C4,C5,C6)后,對于部分密文消息(C4, C5, C6),計算 K=C4e (C6, dB2)/e(C5, dB1),其中(dB1,dB2)為受委托者的私鑰;
[0031]所述受委托者計算得到明文信息M=C' ie(C' 2,H(K))。
[0032]一種基于身份的代理重加密系統,包括:密鑰生成中心、消息發送方、委托者、代理者和受委托者,
[0033]所述的密鑰生成中心,用于選擇安全參數,基于所述安全參數生成并公開系統參數,根據所述系統參數和委托者、受委托者的身份信息分別生成委托者、受委托者的私鑰,并將委托者、受委托者的私鑰分別發送給所述委托者、受委托者;
[0034]所述的消息發送方,用于加密明文信息得到密文消息,將所述密文消息發送給所述委托者;
[0035]所述的委托者,用于利用所述受委托者的身份信息和委托者的私鑰生成重加密密鑰,將所述重加密密鑰和密文消息發送給所述代理者;
[0036]所述的代理者,用于用所述重加密密鑰重新加密所述密文消息,得到重加密密文,將所述重加密密文發送給所述受委托者;
[0037]所述的受委托者,利用自己的私鑰解密重加密密文,計算得到所述明文信息。
[0038]所述的密鑰生成中心,具體用于基于安全參數k,選取定義在素數階有限域上的橢圓曲線E,構造橢圓曲線E上的一個非對稱性配對e =G1XG2 — Gt,其中G1和G2為素數階P的循環群,G1的生成元為P,G2的生成元為Q,隨機選取參數α,β,Y e Zp,其中Zp= {0,1,…,P-1},選取安全的哈希函數H:GT — G2 ;
[0039]記P1 = α P, Q1 = a Q, R1 = y P, S1 = Y Q, V=E (P, Q) α 0 ;
[0040]設定主密鑰為α β Q,公開參數為(G1, G2, e,P,Q,P1, Q1, R1, S1, H,v);
[0041]設用戶的身份Uid e Zp,其中Zp = {0,1,..., p-ι},隨機選取Zp中非零參數r,計算(I1=Ct β Q+rUjnQi+rS^ d2=rQ,所述用戶為委托者和受委托者;
[0042]生成所述用戶的私鑰為dID= (Cl1, d2),將所述用戶的私