的動態(tài)密鑰生成算法,在生成密鑰的同時也生成密鑰的驗 證信息,密鑰和驗證信息同時分發(fā)給用戶,通過驗證信息既可以驗證密鑰的正確性,同時也 可驗證授權機構的可信度。該方案首次實現(xiàn)了格上基于屬性加密方案中對密鑰生成中心的 監(jiān)督機制,使得系統(tǒng)的安全性得到增強。
【具體實施方式】
[0046] 下面將對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施 例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通 技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范 圍。
[0047] 本發(fā)明實施例提供了一種基于格的可驗證屬性加密方法,所述方法包括以下步 驟:
[0048] 符號說明:
[0054] w :表示函數(shù)數(shù)量級的漸近符號,g(n) = ? (f (n))當且僅
[0055] 步驟A、授權機構設置系統(tǒng)安全參數(shù)A和屬性集上限參數(shù)1,運行Setup算法,獲 得公共參數(shù)Pub和主密鑰Msk。具體算法定義如下:
[0056] 算法Setup(n,m,q,1) - (pub,Msk)
[0057] 輸入:設置安全參數(shù)n= 26,素數(shù)
,格基維數(shù)m= 425(m^ 2nlgq);
[0058] 輸出:公共參數(shù)pub和主密鑰Msk。
[0059] i. (ApBi) iE [丨廣TrapGen (n,m,q,0 )(其中,0為高斯分布標準差 A1為隨機矩陣A, e Z="1,Bi為其對應的一組短基
[0060] (注:TrapGen算法是M.Ajtai在文獻Generatinghardinstancesoftheshort basisproblem中提出的算法)
[0063]iv.Pub-( {Ai}iE⑴,u,s)
[0064] v.Msk^ ({BjiEtl])
[0065] vi.Return(Pub,Msk)
[0066] 算法描述:授權機構運行初始化算法Setup,首先對屬性集上的每個屬性調用 TrapGen(n,m,q,o)算法,生成隨機矩陣A,eZ?xm和與其對應的滿秩短基Bi ;接著 隨機選取隨機整數(shù)向量和隨機整數(shù)^。輸出公鑰pub- ({AJ1Etl],u,s)和主密 鑰Msk- ((BJ1E⑴)。
[0067] 步驟B、授權機構選擇訪問策略(M,P),運行Key_Generation算法,向所述訪問策 略上的屬性用戶輸出對應的解密密鑰SK和驗證信息VK。具體定義如下:
[0068] 算法Key_Generation(Pub,Msk,(M,P )) - (SK,VK)
[0069] 輸入:輸入公共參數(shù)Pub,主密鑰Msk,訪問策略(M,P⑴)1E tl].
[0070] 輸出:密鑰(SKp⑴)1E⑴和驗證信息(VK p⑴)1E⑴.
[0074] iv?計算(Mw) [ 0 丨,…,0 JT,iG[1]
[0075] V?令[人;+?;,0,
[0076] vi.Ip ⑴一SamplePreimage(Ap ⑴,Bp ⑴,Si, 〇 ),(U",xisZ:;,滿足人沖心,)Ss,. (注:SamplePreimage 算法是 C. Gentry,C. Peikert,and V. Vaikuntanathan.在文南犬 Trapdoors for hard lattices and new cryptographic constructions 中提出的算法)
[0077] vii.np ⑴一SamplePreimage(Ap ⑴,Bp ⑴,u,〇 ),(T^(,))mxieZ:',滿足AkoH沖)蘭U"xI
[0078] viii.SKp(i)=np⑴,iG[1]
[0079] ix. VKp (i)=Ip(i), i G [1]
[0080] x. Return (SKp (i), VKp (i))
[0081] 算法描述:密鑰生成算法Key_Generation,該算法輸入公共參數(shù)Pub,主密鑰 Msk和訪問策略(M,P).首先構造向量V和w,對于訪問策略(M,P)上的每個屬性,分 別計算(Mv)i=[入:,…,入Jt和(Mw) [? :,…,O1]1,其中iG[1]?接著構造向 量Si=[人;+0;,0,…,0] T,調用原像抽樣算法SamplePreimage(Ap⑴,Bp⑴,Si, 〇),計
,且I p w的分布統(tǒng)計接近于離散高斯分布,離
同理,調用原像抽樣算法SamplePreimage (Ap (i), Bp⑴,u,。),計算冰)La e ,滿足A沖4 u"xl,T1;的分布統(tǒng)計接近于離散高斯分布
3最后輸出訪問策略上的用戶屬性密鑰 (SKp ⑴)iE ⑴和驗證{曰息(VK p(i))iE [1]〇
[0082] 所述訪問策略上的屬性用戶可以分為2種,一種是發(fā)送方用戶,一種是接收方用 戶,發(fā)送方用戶向接收方用戶發(fā)送文件資料。
[0083] 步驟C、接收方用戶根據(jù)解密密鑰SKp (1)和驗證信息VK p (1),運行驗證算法 Verif iation,輸出欺騙者列表List,如果List為空表示沒有欺騙者,否則通過List中的身 份標識確定欺騙者的身份。具體定義如下;
[0084] 算法Verifiation(Pub,SKp ⑴,VKp ⑴)一List
[0085] 輸入:輸入公共參數(shù)Pub,訪問策略(M,P(i))lE⑴]上的屬性密鑰SKP(1)和驗證 f目息VK p
[0086] 輸出:列表List.
[0087] i?構造空列表List
[0088]ii. if Ap ⑴SKp ⑴=u
[0089] 解密密鑰SK p⑴通過驗證
[0090] else
[0091] 屬性對應解密密鑰SKp w有錯誤,將P(i)加入列表List中
[0092] end if
[0093] iii.if[Ap ⑴,Ap ⑵,…,Ap(t)] [VKp ⑴,VKp ⑵,? ? ?,VKp ⑴]T=[s,0, ? ? ?,0]T
[0094] 訪問策略(M,P)上的授權機構是可信的
[0095] else
[0096] 訪問策略(M,P)上的授權機構是不可信的,將所有P⑴加入列表List中
[0097] end if
[0098] iv. Return (List)
[0099] 算法描述:需要解密消息的參與者P(i)向P中成員提出解密申請,通過身份驗 證后收到來自P中t個成員的屬性密鑰SKP(1)和驗證信息、VK P(1).接下來驗證AP(1)SKP(1) =u是否成立,如果Ap WSKP w = u成立,則表示屬性P (i)對應的解密密鑰通過驗證;如 果ApwSKpw= u成立,表示屬性對應的解密密鑰有錯誤,則將屬性P (i)加入列表List 中.然后驗證訪問策略(M,P )上的授權機構是否可信,如果[Ap u),Ap (2),…,Ap a)] [VKp u), VKp⑵,…,VKp (t)]T= [s,0,...,0] T成立,訪問策略(M,P )上的授權機構是可信的,否則 訪問策略(M,P )上的授權機構是不可信的,將所有P⑴加入列表List中。如果List為 空表示沒有欺騙者,否則通過List中的身份標識確定欺騙者的身份。
[0100] 步驟D、發(fā)送方用戶對屬性集Attrib加密消息Msg G {〇,1},運行加密算法 Encrypt,輸出密文Ctx,具體定義如下:
[0101] 算法 Encrypt (Pub,Attrib,Msg) - Ctx
[0102] 輸入:輸入公共參數(shù)Pub,屬性集Attrib,消息Msg.
[0103] 輸出:密文Ctx.
[0108]V?計算C2=a'A1A2…A1] +X2modq,C2eZ:x/m
[0109] vi. Ctx= {C C2}
[0110] vii. Return (Ctx)
[0111] 算法描述:加密算法Encrypt,輸入公共參數(shù)Pub,屬性集Attrib以及一個消息比 特MsgG{〇,1},輸出密文Ctx.在屬性集上選擇一個均勻隨機向量aeZ?.選擇高
;選擇高斯噪聲向量Z2eZwm,計算 C2= B1IiA1 A2…A1] +X2modq,得到密文 IC1, C2}.