一種基于格的可驗(yàn)證屬性加密方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種基于格的可驗(yàn)證屬性加密方法。
【背景技術(shù)】
[0002] 基于屬性加密機(jī)制是基于身份加密機(jī)制的一種擴(kuò)展,從本質(zhì)上來(lái)說(shuō),基于屬性加 密機(jī)制是在基于身份加密體制中引入了訪(fǎng)問(wèn)結(jié)構(gòu)的概念,實(shí)現(xiàn)了對(duì)解密權(quán)限和訪(fǎng)問(wèn)權(quán)限的 控制。最早的公開(kāi)研究起源于簡(jiǎn)單屬性加密,后來(lái)拓展到屬性簽名、屬性安全協(xié)議等研究?jī)?nèi) 容。與傳統(tǒng)密碼學(xué)相比,屬性加密機(jī)制極大的豐富了加密策略的靈活性和用戶(hù)權(quán)限的可描 述性,從以前的一對(duì)一模式擴(kuò)展到一對(duì)多模式,它具有高效靈活的特點(diǎn):加密代價(jià)僅與相應(yīng) 屬性個(gè)數(shù)相關(guān),而與系統(tǒng)中用戶(hù)的數(shù)量無(wú)關(guān);用戶(hù)能否解密一個(gè)密文僅取決于他的屬性是 否滿(mǎn)足密文的策略,而與他是否在密文生產(chǎn)前加入這個(gè)系統(tǒng)無(wú)關(guān);加密策略可支持復(fù)雜的 訪(fǎng)問(wèn)結(jié)構(gòu),如門(mén)限、布爾表達(dá)式;加密者不需要知道解密者的身份信息?;谏鲜鰞?yōu)良特點(diǎn), 屬性加密機(jī)制可以有效地實(shí)現(xiàn)非交互的訪(fǎng)問(wèn)控制。
[0003] 屬性加密機(jī)制的高效性、抗串謀性和策略表示靈活性使得它在細(xì)粒度訪(fǎng)問(wèn)控制 (如審計(jì)日志、付費(fèi)電視系統(tǒng)等)、定向廣播、組密鑰管理、隱私保護(hù)等領(lǐng)域具有良好的應(yīng)用 前景。
[0004] 雖然屬性加密有靈活的訪(fǎng)問(wèn)控制機(jī)制,但是傳統(tǒng)的屬性加密方案也存在以下兩方 面的安全隱患。在基于屬性加密中通常都存在一個(gè)授權(quán)機(jī)構(gòu)(也稱(chēng)為可信第三方服務(wù)器), 授權(quán)機(jī)構(gòu)負(fù)責(zé)系統(tǒng)的初始化和密鑰分發(fā)的工作。授權(quán)機(jī)構(gòu)在整個(gè)方案中起著至關(guān)重要的作 用,因此也很容易成為攻擊者的首選目標(biāo)。在基于屬性加密系統(tǒng)中可能存在兩個(gè)安全方面 的問(wèn)題,如果授權(quán)機(jī)構(gòu)被攻破,就可能給用戶(hù)分發(fā)錯(cuò)誤的密鑰,從而對(duì)系統(tǒng)造成破壞;另一 方面,如果授權(quán)機(jī)構(gòu)發(fā)送的密鑰是正確的,但是由于通信方面的原因產(chǎn)生了錯(cuò)誤,最終導(dǎo)致 用戶(hù)不能正確解密。
[0005] 另外,隨著量子計(jì)算機(jī)的出現(xiàn),利用量子計(jì)算機(jī)可以在多項(xiàng)式時(shí)間內(nèi)解決因子分 解和離散對(duì)數(shù)問(wèn)題,這嚴(yán)重威脅到現(xiàn)有屬性加密機(jī)制的安全性。構(gòu)造新的公鑰密碼體制,使 其能夠替代基于數(shù)論的密碼體制,抵御未來(lái)基于量子計(jì)算機(jī)的攻擊已經(jīng)迫在眉睫。目前普 遍認(rèn)為基于格的公鑰加密可以抵御量子計(jì)算機(jī)的攻擊,而且比基于數(shù)論的方案在計(jì)算上更 有效。到目前為止,已經(jīng)提出了各種屬性加密方案,但這些方案都是基于傳統(tǒng)密碼體制,例 如離散對(duì)數(shù)問(wèn)題等。面對(duì)量子計(jì)算機(jī)的出現(xiàn),傳統(tǒng)密碼體制受到威脅。因此,現(xiàn)有的屬性加 密體制在量子計(jì)算下將不再安全。
【發(fā)明內(nèi)容】
[0006] 針對(duì)上述情況,為解決現(xiàn)有屬性加密算法的安全隱患,本發(fā)明提供了一種基于格 的可驗(yàn)證屬性加密方法,實(shí)現(xiàn)了基于格的屬性加密方案的可操作性,利用基于格的公鑰密 碼在量子計(jì)算下安全的優(yōu)勢(shì),解決現(xiàn)有的屬性加密機(jī)制在量子計(jì)算下將不再安全的缺陷; 同時(shí)可以對(duì)授權(quán)機(jī)構(gòu)進(jìn)行監(jiān)督,增強(qiáng)系統(tǒng)的安全性;與傳統(tǒng)的基于數(shù)論的協(xié)議相比,該方案 由于不需要模指數(shù)運(yùn)算,具有較低的計(jì)算復(fù)雜度。
[0007] 本發(fā)明的技術(shù)解決方案是:一種基于格的可驗(yàn)證屬性加密方法,該方法按照以下 步驟實(shí)施:
[0008] 步驟A、生成系統(tǒng)參數(shù)
[0009] 所述授權(quán)機(jī)構(gòu)設(shè)置系統(tǒng)安全參數(shù)n和屬性集上限參數(shù)1,生成系統(tǒng)公共參數(shù)Pub和 主密鑰Msk,具體包括以下步驟:
[0010] (Al)選擇安全參數(shù)n,素?cái)?shù)q > 2,格基維數(shù)m彡2nlgq ;
[0011] (A2)對(duì)于屬性集每一個(gè)屬性i G [1],調(diào)用算法TrapGen (n,m,q,〇 )生成隨機(jī) 矩陣Ai和滿(mǎn)秩短基& e 0 f,足低范數(shù)條件
(其中,離散高斯分布
?為表示函數(shù)數(shù)量級(jí)的漸近符號(hào),g(n) = co(f(n))當(dāng)且僅當(dāng)
[0012] (A3)隨機(jī)選擇一個(gè)向量us#。(其中,表示整數(shù)模q空間上的n維隨機(jī)均勻分 布向量)
[0013] (A4)隨機(jī)選擇參數(shù);(其中,(6,表示整數(shù)模q空間上的隨機(jī)數(shù))
[0014] (A5)輸出公共參數(shù)和主密鑰:
[0015] Pub = ({AjiE tl], u, s), Msk = ({BjiE tl]);
[0016] 步驟B、密鑰生成
[0017] 所述授權(quán)機(jī)構(gòu)選擇訪(fǎng)問(wèn)策略(M,P ),并利用公共參數(shù)Pub,主密鑰Msk,向訪(fǎng)問(wèn)策 略上的屬性用戶(hù)輸出對(duì)應(yīng)的密鑰SK和驗(yàn)證信息VK,具體包括以下步驟:
[0018] (BI)隨機(jī)選擇整數(shù) v2,v3,…% e 0 g,令 V = (s,v2, v3,? ? ? ve)T,記(Mv);= [入i,…,入Jt;任意選取w=(0,w2,…,w e)T,這里w2,…隨機(jī)選取,記(Mw)i =
[Op ???, ?JT;
[0019] (B2)令[Ai+OyO,…,0]T= Si,對(duì)應(yīng)訪(fǎng)問(wèn)策略(M,P)中的屬性P⑴;
[0020] (B3)調(diào)用原像抽樣算法 SamplePreimage (Ap (i),Bp (i),Si, 〇 ),計(jì)算e C, 滿(mǎn)足Ap w I p w = s i,且I p w的分布統(tǒng)計(jì)接近于離散高斯分布,參數(shù)
[0021] (B4)調(diào)用原像抽樣算法SamplePreimage (Ap⑴,Bp⑴,u,〇 ),計(jì)算 滿(mǎn)足Ap(O1W)=Unx],]^的分布統(tǒng)計(jì)接近于離散高斯分布Awctiu,參數(shù)
[0022] (B5)訪(fǎng)問(wèn)策略(M,P)中屬性P⑴相對(duì)應(yīng)的解密密鑰和驗(yàn)證信息為:SKpW = n p(1),VKpw= IpW,并將其分發(fā)給具有屬性P (i)的用戶(hù);
[0023] 步驟C、驗(yàn)證
[0024] 所述接收方用戶(hù)據(jù)解密密鑰SKp (1)和驗(yàn)證信息VK p (1),生成欺騙者列表List ;如果 List為空表示沒(méi)有欺騙者,否則通過(guò)List中的身份標(biāo)識(shí)確定欺騙者的身份;需要解密消息 的參與者P (i)向P中成員提出解密申請(qǐng),通過(guò)身份驗(yàn)證后收到來(lái)自P中t個(gè)成員的驗(yàn) 證密鑰VKp(1),其執(zhí)行如下操作:
[0025] (Cl)計(jì)算Ap⑴SKp⑴=u是否成立;如果Ap⑴SKp⑴=u成立,則表示屬性P⑴ 對(duì)應(yīng)的解密密鑰通過(guò)驗(yàn)證;如果ApwSKp(1)=u成立,則將屬性P(i)加入列表List中,表 示屬性對(duì)應(yīng)的解密密鑰有錯(cuò)誤;
[0026] (C2)驗(yàn)證訪(fǎng)問(wèn)策略(M,P )上的授權(quán)機(jī)構(gòu)是否可信
[0027] [Ap ⑴,Ap ⑵,…,Ap ⑴][VKp ⑴,VKp ⑵,???,VKp ⑴]-[s,0,???,0]
[0028] 如果上式成立,則表示訪(fǎng)問(wèn)策略(M,P)上的授權(quán)機(jī)構(gòu)是可信的;訪(fǎng)問(wèn)策略(M,P) 上的授權(quán)機(jī)構(gòu)是不可信的,將所有P(i)加入列表List中。如果List為空表示沒(méi)有欺騙 者,否則通過(guò)List中的身份標(biāo)識(shí)確定欺騙者的身份。
[0029] 步驟D、加密
[0030] 所述發(fā)送方用戶(hù)在特定的屬性集命成=p(2),…,G [/]上,對(duì)消息 Msg G {〇,1}進(jìn)行加密,輸出密文Ctx,具體包括以下步驟:
[0031] (Dl)選擇一個(gè)隨機(jī)n維向量a e % ;
[0032] (D2)在離散高斯分布(
>,選擇一個(gè)低范數(shù)的高斯噪 聲;T1 ,計(jì)算C1,
[0033]
[0034](D3)選擇一個(gè)低范數(shù)的高斯噪聲向量J2eW;,它是來(lái)自離散高斯分布(中, 計(jì)算向量C2,
[0035] C2=aT[ApW,Ap(2),...,Ap(1)] +x2modq,
[0036] 注:當(dāng) /?(/) 0J伽7?時(shí),Ap(1) = 0,iG[t];
[0037] (D4)輸出屬性列表Attrib上的密文Ctx,Ctx= {C丨,CJ;
[0038] 步驟E、解密
[0039] 所述接收方用戶(hù)對(duì)密文Ctx進(jìn)行解密,輸出解密消息b,具體包括以下步驟:
[0040] (El)如果用戶(hù)屬性集Attrib是訪(fǎng)問(wèn)策略(M,P )上的授權(quán)集,則I = U : p (i) G Attrib},必定存常數(shù){g;G Z q}使得E iE ^iM = (1,0, ? ? ?,0)成立。注意假如 /?(〇茫J伽7),則gi =〇,有g(shù) ^Kp (1)T= 0 ;
[0041](E2)對(duì)于任意Vg;矣0,p⑴GAttrib,屬性P⑴對(duì)應(yīng)的私鑰SKp(i),計(jì)算
[0045] 本發(fā)明提供的方法構(gòu)建了一個(gè)新的基于格的屬性加密方案。該方案利用格上最短 向量困難問(wèn)題SVP,構(gòu)造格上的基于密鑰策略的屬性加密方案,通過(guò)可驗(yàn)證線(xiàn)性秘密共享機(jī) 制來(lái)實(shí)現(xiàn)密鑰策略,通過(guò)構(gòu)造新