最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種泄露密鑰可追蹤的屬性基混合加密方法

文檔序號(hào):6621506閱讀:435來源:國(guó)知局
一種泄露密鑰可追蹤的屬性基混合加密方法
【專利摘要】一種泄露密鑰可追蹤的屬性基混合加密方法,可信權(quán)威:1、輸入系數(shù)λ,輸出系統(tǒng)參數(shù);2、運(yùn)行隨機(jī)數(shù)生成算法;3、選擇一種抗碰撞哈希函數(shù),計(jì)算哈希值;4、運(yùn)行指紋碼生成算法GenFC;5、計(jì)算雙線性對(duì)、求冪運(yùn)算;6、為用戶分配指紋碼,指定屬性集合S;7、運(yùn)行隨機(jī)數(shù)生成算法、乘法和求冪運(yùn)算;8、在用戶私鑰中嵌入指紋碼。數(shù)據(jù)持有者:9、進(jìn)行AES數(shù)據(jù)加密;10、生成訪問控制矩陣;11、運(yùn)行屬性基加密算法Encapsulate,對(duì)AES會(huì)話密鑰加密;12、運(yùn)行雙線性對(duì)和乘、除法計(jì)算,得到會(huì)話密鑰;數(shù)據(jù)使用者:13、運(yùn)行AES數(shù)據(jù)解密算法;可信權(quán)威:1*、尋找適應(yīng)性碼字;2*、計(jì)算pj和Z;3*、計(jì)算權(quán)值和,輸出集合C。
【專利說明】一種泄露密鑰可追蹤的屬性基混合加密方法
(—)【技術(shù)領(lǐng)域】:
[0001]本發(fā)明涉及一種泄露密鑰可追蹤的屬性基混合加密方法,可實(shí)現(xiàn)云存儲(chǔ)環(huán)境下的用戶密鑰安全管理,在數(shù)據(jù)遭到非法訪問時(shí)利用指紋碼技術(shù)能有效追蹤到泄露密鑰的用戶身份,屬于信息安全中密碼學(xué)領(lǐng)域。
(二)技術(shù)背景:
[0002]伴隨著云計(jì)算概念的提出,越來越多的計(jì)算機(jī)用戶將數(shù)據(jù)的存儲(chǔ)、信息處理等業(yè)務(wù)交付給現(xiàn)有網(wǎng)絡(luò),以按需、易擴(kuò)展的方式獲得所需的資源,如硬件、平臺(tái)、軟件等。云存儲(chǔ)就是云計(jì)算服務(wù)的一種,通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲(chǔ)設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問功能。云存儲(chǔ)服務(wù)的出現(xiàn)大大減輕了數(shù)據(jù)持有用戶存儲(chǔ)數(shù)據(jù)時(shí)的沉重負(fù)擔(dān)(例如手機(jī)用戶的移動(dòng)設(shè)備往往可用的存儲(chǔ)空間很小,無法實(shí)現(xiàn)較大數(shù)據(jù)的存儲(chǔ))。
[0003]考慮到云存儲(chǔ)服務(wù)的優(yōu)勢(shì),各網(wǎng)絡(luò)服務(wù)供應(yīng)商都相應(yīng)提出了自己的云計(jì)算服務(wù)模型,例如亞馬遜公司的彈性計(jì)算云(EC2, Elastic Compute Cloud)、蘋果公司的iCloud和微軟的Windows Azure。在云存儲(chǔ)環(huán)境中,用戶可以將大量的數(shù)據(jù)上傳到云存儲(chǔ)服務(wù)器端,服務(wù)器由云服務(wù)提供商進(jìn)行維護(hù);唯有數(shù)據(jù)持有者和被授權(quán)的用戶可以實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)的訪問,用戶無需考慮當(dāng)?shù)卮鎯?chǔ)硬件及軟件的限制便可輕松實(shí)現(xiàn)數(shù)據(jù)的共享;脫離了對(duì)存儲(chǔ)介質(zhì)的依賴,用戶可以隨時(shí)隨地下載存儲(chǔ)在云端的數(shù)據(jù),便攜性更強(qiáng)。
[0004]云存儲(chǔ)為我們的生活帶來的便利是顯而易見的,然而值得引起憂慮的是云存儲(chǔ)中的數(shù)據(jù)安全與隱私保護(hù)問題。當(dāng)我們將重要的數(shù)據(jù)上傳到云端之后便交付出了數(shù)據(jù)的訪問控制權(quán),一旦云端的存儲(chǔ)器遭到了惡意的網(wǎng)絡(luò)攻擊或是云服務(wù)提供商內(nèi)部的員工出于商業(yè)利益等目的做出了不正等操作,都將對(duì)我們的數(shù)據(jù)安全造成極大的威脅。如何有效地保護(hù)云端數(shù)據(jù)的完整性,制定數(shù)據(jù)的訪問權(quán)限成為用戶在上傳數(shù)據(jù)到云端之前需優(yōu)先考慮的問題。
[0005]數(shù)據(jù)加密方法一直以來都作為數(shù)據(jù)傳輸、存儲(chǔ)過程中保護(hù)數(shù)據(jù)安全性的有效手段。在云存儲(chǔ)環(huán)境下,數(shù)據(jù)持有者可以在將數(shù)據(jù)上傳到云端服務(wù)器存儲(chǔ)之前,利用數(shù)據(jù)加密手段,對(duì)數(shù)據(jù)加密后再上傳。即便發(fā)生了數(shù)據(jù)泄露事件,由于數(shù)據(jù)是經(jīng)加密后存儲(chǔ)的,只有授權(quán)的用戶可以對(duì)加密后的數(shù)據(jù)解密,最大程度地保護(hù)了用戶的隱私安全。
[0006]現(xiàn)有的加密體制分為對(duì)稱加密體制與非對(duì)稱加密體制,對(duì)稱加密體制的加、解密密鑰相同,而非對(duì)稱加密體制的加、解密密鑰不同。對(duì)稱加密體制的優(yōu)勢(shì)在于加、解密速度快,密鑰及密文長(zhǎng)度短;劣勢(shì)在于通信雙方需使用相同的會(huì)話密鑰,這往往需要額外的密鑰協(xié)商協(xié)議,才能達(dá)到密鑰的安全傳輸。非對(duì)稱加密體制的優(yōu)勢(shì)在于,加密方加密時(shí)使用的密鑰是解密方公開的密鑰,解密方僅需保管好該公鑰對(duì)應(yīng)的解密密鑰即可,省去了多余的密鑰協(xié)商步驟;而非對(duì)稱加密的劣勢(shì)在于,加、解密的時(shí)間長(zhǎng),密鑰及密文長(zhǎng)度過長(zhǎng),存儲(chǔ)負(fù)擔(dān)過重。為了平衡兩種加密機(jī)制的優(yōu)劣,本發(fā)明采用混合加密的方法對(duì)數(shù)據(jù)進(jìn)行加密。所謂混合加密是指,原始數(shù)據(jù)采用對(duì)稱加密機(jī)制加密后作為一份密文,加密時(shí)使用的會(huì)話密鑰采用非對(duì)稱加密機(jī)制加密后作為第二份密文,將兩份密文同時(shí)傳輸給解密方。解密方在得到所有密文后,首先對(duì)第二份密文解密,解密得到第一份密文的會(huì)話密鑰,接著利用會(huì)話密鑰完成第一份密文的解密,恢復(fù)出原始數(shù)據(jù)。
[0007]對(duì)稱加密機(jī)制里主要的加密方法有DES (Data Encrypt1n Standard)和AES(Advanced data Encrypt1n Standard)。DES 限制了加密密鑰為長(zhǎng)度為 64 比特,由于密鑰長(zhǎng)度過短,極易遭到字典攻擊??紤]到AES的密鑰長(zhǎng)度可取128、192和256比特,在保證了密鑰長(zhǎng)度足夠長(zhǎng)的前提下,更加靈活,可適應(yīng)不同強(qiáng)度的加密需求,故本發(fā)明采用AES的對(duì)稱數(shù)據(jù)加密方法。
[0008]目前較為新穎的公鑰加密方法有身份基加密方法(IBE,Identity-basedEncrypt1n)和屬性基廣播加密方法(ABE, Attribute-based Encrypt1n)。身份基加密方法的主要特點(diǎn)是加密數(shù)據(jù)的公鑰為解密方的身份,譬如身份證件號(hào)碼、電話號(hào)或是郵箱地址等。加密方在對(duì)數(shù)據(jù)加密時(shí),首先需要知曉對(duì)方的身份信息,方可進(jìn)行接下來的加密工作。而屬性基加密則不同,屬性基加密的密鑰跟用戶的屬性集合相關(guān),每個(gè)用戶在系統(tǒng)中均有對(duì)應(yīng)的屬性,屬性代表用戶的特征,例如某醫(yī)院的醫(yī)生Alice在系統(tǒng)中的屬性即可定為{{XXX醫(yī)院},{心腦血管科室},{女},{主治醫(yī)師},{36歲}}。加密方在對(duì)數(shù)據(jù)加密之前需要制定與屬性相關(guān)的訪問控制策略,只有用戶的屬性滿足該訪問控制策略的條件時(shí)方可對(duì)數(shù)據(jù)解密。比方說病人Mallory希望將自己的病歷信息與某些心腦血管方面的醫(yī)療專家共享,她可以根據(jù)自己的需求制定訪問控制策略:“心腦血管科室”AND “主治醫(yī)師”;這樣上個(gè)例子里的Alice便可作為滿足訪問控制策略的用戶對(duì)文件進(jìn)行訪問。屬性基加密方法較之身份基加密方法的優(yōu)勢(shì)在于,屬性基加密無需清楚地知道對(duì)方用戶的具體身份,根據(jù)用戶的屬性便可界定出可以訪問自己數(shù)據(jù)的用戶集合,這通常更加貼近現(xiàn)實(shí)生活中的應(yīng)用場(chǎng)景。本發(fā)明利用了屬性基加密方法的優(yōu)勢(shì),根據(jù)用戶的屬性集合為用戶生成私鑰;同時(shí),將對(duì)稱加密的會(huì)話密鑰用屬性基加密的方法加密。
[0009]單單依靠傳統(tǒng)的加密手段保護(hù)數(shù)據(jù)并不是萬無一失的,屬性基加密方法通過給用戶頒發(fā)與屬性集合相對(duì)的用戶私鑰用來對(duì)文件解密,一旦用戶的私鑰出于某種原因遭到了泄露,該私鑰可以解密的數(shù)據(jù)也就不安全了。這時(shí),我們需要采取緊急的應(yīng)對(duì)措施,追蹤到私鑰泄露的源頭,將數(shù)據(jù)安全的破壞降到最低。指紋碼(Fingerprint code)技術(shù)便是很好的叛徒追蹤方法。顧名思義,指紋是我們每個(gè)人所特有的,指紋碼即是為系統(tǒng)中的所有用戶分配的獨(dú)一無二的碼字,通過指紋碼可以直接找到對(duì)應(yīng)的用戶的身份。指紋碼通常由兩個(gè)算法組成:指紋碼生成算法Genrc和指紋碼追蹤算法TraF。;GenFC算法通過輸入初始系統(tǒng)參數(shù)生成所有用戶的指紋碼,TraF。算法則根據(jù)盜版解碼器(PD,Pirate Decoder)偽造的適應(yīng)性碼字追蹤到泄密用戶的身份。盜版解碼器在這里的作用是利用泄密用戶的指紋碼偽造出適應(yīng)性的碼字,達(dá)到訪問加密數(shù)據(jù)的目的。由于非法用戶運(yùn)行盜版解密器的具體步驟在追蹤時(shí)是不可知的,所以這里我們假定它是以黑盒(Black box)的方式運(yùn)行,即我們?cè)谶M(jìn)行追蹤泄密用戶的過程中無需考慮它的工作方式,同樣可以達(dá)到追蹤的目的。
[0010]在本發(fā)明中,我們將Trarc算法為每個(gè)用戶生成的指紋碼嵌入到用戶的私鑰中,SP通過指紋碼標(biāo)記了用戶在系統(tǒng)中的身份,一旦發(fā)生文件非法訪問事件,通過指紋碼追蹤技術(shù)便可找到泄密的用戶。由于指紋碼追蹤算法是概率算法,有可能發(fā)生追蹤失敗(即追蹤到零個(gè)用戶和無辜用戶)的情況,故我們采用Koji Nuida等人的改進(jìn)的指紋碼追蹤技術(shù),在事先界定了抗合謀用戶的數(shù)量上限及失敗概率后,理論上保證在發(fā)生泄密事件后至少能追蹤到一個(gè)泄密的用戶。
(三)
【發(fā)明內(nèi)容】
:
[0011]1、目的:
[0012]本發(fā)明的目的是提出一種泄露密鑰可追蹤的屬性基混合加密方法,在云存儲(chǔ)環(huán)境下,數(shù)據(jù)持有者利用混合加密的方式將數(shù)據(jù)加密后再上傳到云端存儲(chǔ),保證了數(shù)據(jù)在云端的安全性;同時(shí)本發(fā)明結(jié)合指紋碼技術(shù),將系統(tǒng)為用戶生成的獨(dú)特的指紋碼嵌入到用戶私鑰中,即使發(fā)生了私鑰泄露事件,運(yùn)行指紋碼追蹤算法可以有效追蹤到泄露私鑰的用戶。
[0013]該方法平衡了對(duì)稱加密和非對(duì)稱加密機(jī)制的優(yōu)勢(shì),通過混合加密保證數(shù)據(jù)安全性的同時(shí)提高了系統(tǒng)效率,節(jié)省了存儲(chǔ)空間;指紋碼技術(shù)的引入,可以確保在發(fā)生私鑰泄露的情況時(shí),數(shù)據(jù)持有者向可信權(quán)威(TA,Trusted Authority)發(fā)送數(shù)字驗(yàn)證請(qǐng)求后,可信權(quán)威至少可追蹤到I位泄露密鑰的用戶,數(shù)據(jù)持有者可根據(jù)返回的信息采取相應(yīng)措施,防止數(shù)據(jù)再次遭到破壞。
[0014]2、技術(shù)方案:
[0015]本發(fā)明包括四個(gè)實(shí)體:1)數(shù)據(jù)持有者(Data Owner):能夠根據(jù)自己的安全需求制定訪問控制策略,依據(jù)訪問控制策略對(duì)數(shù)據(jù)加密,并將加密后的數(shù)據(jù)上傳到云存儲(chǔ)服務(wù)提供方處存儲(chǔ);2)數(shù)據(jù)使用者(Data Consumer):能夠從云存儲(chǔ)服務(wù)提供方處下載加密后的密文,并依據(jù)自己的私鑰對(duì)數(shù)據(jù)解密;3)云存儲(chǔ)服務(wù)提供方(Cloud Serve Provider):存儲(chǔ)來自數(shù)據(jù)持有者的加密數(shù)據(jù);4)可信任權(quán)威機(jī)構(gòu)(Trusted Authority):受各實(shí)體信任,能可靠執(zhí)行來自數(shù)據(jù)持有者的數(shù)字取證請(qǐng)求并作出正確回復(fù),負(fù)責(zé)系統(tǒng)中所有用戶的密鑰生成與分發(fā)任務(wù)。
[0016]2.1基礎(chǔ)知識(shí):
[0017]由于本發(fā)明所設(shè)計(jì)的算法中使用了雙線性映射、指紋碼等方面的數(shù)學(xué)知識(shí)。特在此做出解釋說明。
[0018]2.1.1雙線性對(duì)
[0019]我們定義一種函數(shù)映射e(.,.),將群%中的元素映射到群^中去,
即:e:GxG — Gr,其中群,(G和&r:是兩個(gè)階數(shù)為素?cái)?shù)ρ的乘法循環(huán)群。
[0020]雙線性對(duì)滿足的特性有:
[0021]①雙線性特性:對(duì)于g,為 eG,,有 e(ga,hb) = e(g,h)ab 成立;
[0022]②非退化性:G群中至少存在一個(gè)元素g,使得計(jì)算后的e(g,g)為群的某個(gè)生成元;
[0023]③可計(jì)算性:存在有效的算法,使得所有的《,veG,可以有效計(jì)算出e (u,v)的值;
[0024]其中,25表示集合{0,1,2,...,ρ-1}。
[0025]2.1.2 指紋碼
[0026]我們定義一種碼ω e {0,1}沁長(zhǎng)度為1^比特,可以寫作:《 =其中Oi表不ω的第i位,COiG {0,1}。同時(shí),我們選取一個(gè)集合W=,集合中的元素均為長(zhǎng)度為L(zhǎng)比特的碼。
[0027]同時(shí)我們定義:若某個(gè)長(zhǎng)度同為L(zhǎng)比特的碼ω*滿足下述條件:對(duì)于ω*的任意比特位i,集合W中都能找到某一元素co(j)(j e {1,2,...,η}),滿足ω^= ω,)(Β卩ω (J)
與ω*第i位相同),則稱碼ω*適應(yīng)該集合W。例如,假設(shè)集合W由下述兩個(gè)碼字組成:
[0028](111010,010001)
[0029]則所有滿足形式為:
[0030]I O
HO 10 U Ju JJ
[0031]的碼字均適應(yīng)集合W。
[0032]最后我們定義集合F(W),集合中的元素為所有適應(yīng)集合.■的碼的全體。
[0033]抗t人合謀的指紋碼的生成算法定義為Genrc,追蹤算法定義為Trarc ;生成算法Genp。可以生成集合Γ,由N個(gè)長(zhǎng)度為L(zhǎng)的碼元素組成;系統(tǒng)中的N個(gè)用戶分別被分配到集合中的一個(gè)指紋碼。假設(shè)該系統(tǒng)中有η個(gè)用戶利用自己的指紋碼合謀偽造適應(yīng)集合胃的碼字ω*(這η個(gè)人的指紋碼共同構(gòu)成集合W ),在滿足集合W為Γ的子集這一條件的前提下,算法Trarc將F(胃)集合中的某一元素ω *作為輸入,至少能輸出一個(gè)集合胃中的碼字。
其中,集合臀中的元素個(gè)數(shù)不得超過最大合謀人數(shù)t,即|W|<?。
[0034]2.1.3訪問控制結(jié)構(gòu)
[0035]在屬性基加密方案中,為了實(shí)現(xiàn)對(duì)數(shù)據(jù)使用者細(xì)粒度的訪問控制,需要在加密數(shù)據(jù)之前制定訪問控制策略,通過訪問控制結(jié)構(gòu)表達(dá)。本發(fā)明方案中使用的訪問控制結(jié)構(gòu)為訪問控制矩陣Α,即I行η列的矩陣。由于屬性基加密方案中訪問控制策略是與屬性相關(guān)的,故在生成訪問控制矩陣時(shí),我們選擇一種一一映射:P (i),將矩陣A的每一行的行標(biāo)i均映射到訪問控制策略中涉及到的一個(gè)屬性上。
[0036]2.1.4抗碰撞哈希函數(shù)
[0037]本發(fā)明中使用的哈希函數(shù)具備兩個(gè)基本特性:單向性和抗碰撞性;單向性是指只能從哈希函數(shù)的輸入推導(dǎo)出輸出,而不能從哈希函數(shù)的輸出計(jì)算出輸入;抗碰撞性是指不能找到兩個(gè)不同的哈希函數(shù)輸入使其哈希后的結(jié)果相同。本發(fā)明中的哈希算法輸入是任意二進(jìn)制字符串。
[0038]2.2技術(shù)方案內(nèi)容
[0039]本發(fā)明為一種泄露密鑰可追蹤的屬性基加密方法,該方法由系統(tǒng)初始化模塊、用戶錄入模塊、文檔建立模塊、文檔訪問模塊和數(shù)字取證模塊,五個(gè)模塊共16個(gè)步驟實(shí)現(xiàn)其功能。其中系統(tǒng)初始化模塊、用戶錄入模塊、文檔建立模塊、文檔訪問模塊是順序執(zhí)行的,數(shù)字取證模塊的三個(gè)步驟只在發(fā)生私鑰泄露事件,由數(shù)據(jù)持有者向可信權(quán)威發(fā)送數(shù)字驗(yàn)證請(qǐng)求后,方才由可信權(quán)威執(zhí)行。本發(fā)明所設(shè)計(jì)的泄露密鑰可追蹤的屬性基加密方法的系統(tǒng)架構(gòu)圖如圖1所示,現(xiàn)結(jié)合圖1將本發(fā)明所述方法及各模塊的功能介紹如下。
[0040]本發(fā)明一種泄露密鑰可追蹤的屬性基混合加密方法,其作法如下:
[0041]模塊一:系統(tǒng)初始化模塊:
[0042]步驟1:可信權(quán)威(TA, Trusted Authority)輸入系統(tǒng)安全參數(shù)λ ,運(yùn)行算法G(T),輸出兩個(gè)階數(shù)為素?cái)?shù)P的群G Gr和一個(gè)雙線性映射運(yùn)算e: GxG^Gt;
[0043]步驟2:可信權(quán)威接下來運(yùn)行隨機(jī)數(shù)生成算法,隨機(jī)選擇G群中的某個(gè)生成元g,以及Zp域中的兩個(gè)元素a,α。
[0044]步驟3:可信權(quán)威選擇一種抗碰撞哈希函數(shù)H (.),該函數(shù)滿足抗碰撞哈希函數(shù)的所有特性,輸入為任意長(zhǎng)度的0、1字符串,輸出為映射到G群中的某一元素。
[0045]步驟4:可信權(quán)威運(yùn)行指紋碼生成算法Genrc,輸入該整數(shù)η和L (整數(shù)η表示將要生成的指紋碼集合Γ中元素的個(gè)數(shù),L表示集合Γ中每個(gè)指紋碼的長(zhǎng)度)。算法Genrc輸出指紋碼集合Γ = {ωα),...,ω(η)},其中每個(gè)碼字的長(zhǎng)度為L(zhǎng)。
[0046]步驟5:可信權(quán)威經(jīng)過一次雙線性對(duì)運(yùn)算和兩次指數(shù)運(yùn)算得到公鑰為:
[0047]PK = (g, ga, e (g, g) α,H (.))
[0048]經(jīng)過一次指數(shù)運(yùn)算得到主密鑰為:
[0049]MSK = ga
[0050]其中,在步驟I中所述的“算沒CjO I”,其運(yùn)行方法如下:可信權(quán)威輸入系統(tǒng)安全參數(shù)λ,根據(jù)λ的大小,系統(tǒng)選擇相應(yīng)的._曲線:Y2 = X3+aX+b (a和b是系數(shù)),再由橢圓曲線上的點(diǎn)構(gòu)成兩個(gè)素?cái)?shù)P階的群G、(Ετ。選擇一種函數(shù)映射e,將群G中的元素映射到群Gr中去;安全參數(shù)數(shù)值越大,所選擇橢圓曲線上的點(diǎn)也越多,群也越大。
[0051]其中,步驟2中所述的“隨機(jī)數(shù)生成算法”,其做法如下:根據(jù)步驟I中所選的橢圓曲線:Y2 = X3+aX+b,隨機(jī)選擇自變量X的一個(gè)值^,計(jì)算對(duì)應(yīng)因變量Y的值yi ;若點(diǎn)(Xl,yi)在我們想要映射的群中,則成功生成了隨機(jī)元素。若點(diǎn)(Xl,Y1)不在群中,則繼續(xù)選擇X的值,直到找到出現(xiàn)在群中的點(diǎn)。此外,域2:表示集合{1,2,...,?-1},隨機(jī)選擇域2;)中元素的隨機(jī)數(shù)生成函數(shù)可以從Pairing-Based Cryptosystems函數(shù)包中調(diào)用庫(kù)函數(shù)運(yùn)行。下文中提到的隨機(jī)數(shù)生成算法皆按上述方法運(yùn)行。
[0052]其中,步驟3中所述的抗碰撞哈希函數(shù)Η(.)同樣可以從Pairing-BasedCryptosystems函數(shù)包中調(diào)用庫(kù)函數(shù)運(yùn)行。
[0053]其中,步驟4中所述的“指紋碼生成算法GenFC”,借用Tardos “OptimalProbabilistic Fingerprint Codes”中所提到的指紋碼生成算法步驟生成,在此不做詳細(xì)贅述。
[0054]其中,步驟5中所述的“運(yùn)行雙線性對(duì)運(yùn)算”,其做法如下:自變量的輸入為群G中的元素g、g,輸出為群Gt中的元素:e(g,g)。
[0055]模塊二:用戶錄入模塊:
[0056]步驟6:對(duì)于請(qǐng)求加入系統(tǒng)的用戶,由可信權(quán)威為其分配集合Γ中的某個(gè)指紋碼ω(ω e Γ),并根據(jù)用戶身份條件指定屬于該用戶的屬性集合S。
[0057]步驟7:可信權(quán)威輸入主密鑰MSK = g'運(yùn)行隨機(jī)數(shù)生成算法,隨機(jī)選擇Zp域中的某個(gè)元素r,運(yùn)行兩次指數(shù)和一次乘法運(yùn)算,得到:
[0058]K0 = g° gar 和 K1 = gr
[0059]步驟8:可信權(quán)威輸入該用戶屬性集合S和指紋碼ω,對(duì)屬性集合S中的所有屬性X,從I到1,進(jìn)行級(jí)聯(lián)、哈希函數(shù)和指數(shù)運(yùn)算,得到:
[0060]{Dx j =H(x\\j\\ Wj)''} /xeS,j =
[0061]用戶最終分配到的私鑰為:
[0062]SK — {K0, K1, \DX J } VjceS,7=lL )
[0063]其中,步驟8中的級(jí)聯(lián)運(yùn)算“ I I ”表示字符串X,j, Wj首尾相接。
[0064]模塊三:文檔建立模塊:
[0065]步驟9:數(shù)據(jù)持有者(Data Owner)首先運(yùn)行隨機(jī)數(shù)生成算法,隨機(jī)選擇Gt群中的某一元素M作為對(duì)稱加密的會(huì)話密鑰。使用會(huì)話密鑰M對(duì)文檔進(jìn)行AES數(shù)據(jù)加密,加密后的密文CT上傳到云端存儲(chǔ)器存儲(chǔ)。
[0066]步驟10:數(shù)據(jù)持有者根據(jù)自己的安全需求,制定相應(yīng)的訪問控制策略,該策略由用戶屬性表示,例如“(屬性IAND屬性2) OR屬性3”。根據(jù)訪問控制策略后,生成對(duì)應(yīng)的訪問控制矩陣(A,P ),A表示I行η列的矩陣,P表示可以將矩陣A的一行映射到訪問控制策略中的某一屬性的映射。
[0067]步驟11:數(shù)據(jù)持有者輸入公鑰ΡΚ、訪問控制矩陣(Α,P )和待加密的會(huì)話密鑰M后,為確保泄露的用戶私鑰可以被追蹤到,數(shù)據(jù)持有者首先隨機(jī)選擇[1,L]區(qū)間的某一整數(shù)j,對(duì)于O和I分別運(yùn)行屬性基加密算法Encapsulate:
IIdrjv <r- EncapsuIate{PK,M,{Α,ρ),(/,O))
[0068]{ r
Ihlrl, Encapsulate{PK j\4,(A, p),( j, I))
[0069]Encapsulate算法的運(yùn)行如下:
[0070]首先,數(shù)據(jù)持有者選擇隨機(jī)的向量υ = ,…,%),向量中的s為解密時(shí),數(shù)據(jù)使用者需要恢復(fù)的指數(shù);其他元素U2,…,Un是從Zp域中隨機(jī)選取的。將矩陣A的每一行作為行向量I與向量進(jìn)行內(nèi)積運(yùn)算,得到X1,λ1:
[0071]Λ = Λ.?> (i = I I)
[0072]接下來,Encapsulate算法對(duì)矩陣A中的每一行i進(jìn)行P (.)映射,得到對(duì)應(yīng)的屬性字符串P (i)后與j和O、I字符級(jí)聯(lián);最后分別計(jì)算其抗碰撞哈希函數(shù)的值:
丑(P(OIiyi1)
[0073]{
[0074]最后,經(jīng)過(2+21)次指數(shù)和(1+21)次乘法運(yùn)算,得到Encapsulate算法的結(jié)果:
[0075]C = Me (g, g) as, C0 = gs,
[0076]C1 = g^H(p{\) Il j [I 0) C2 = g<u:H(P(2) || j || 0) C1 =|| j || 0)
[0077]C1XCp ⑴ Il./Il I),..,, C;=g^H(p(/)\\j\\\)
[0078]記為:
//rfr/(1-(CCipICpC;,
[0079]{,—, , xIldrj, ^(C,C0,{Ct,C2,...,Ci I)
[0080]最終M經(jīng)Encapsulate算法加密后的密文表示為:
[0081]Hdr = (j, HdrJ;0, HdrJ; ^
[0082]其中,步驟9中所述的“AES數(shù)據(jù)加密”,通過下載MySQL (關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件,可以通過調(diào)用函數(shù)“SELECT AES_ENCRYPT() ”進(jìn)行加密。
[0083]其中,步驟10中所述的“生成對(duì)應(yīng)的訪問控制矩陣(A,P ) ”,矩陣A中各元素的選擇原則是能夠有效恢復(fù)出步驟11中提到的“指數(shù)S”。
[0084]模塊四:文檔訪問模塊:
[0085]這里我們定義集合1(1 = U|p (i) e S}),表示用戶屬性集合S中所有屬性P (i) e S通過映射P (.),對(duì)應(yīng)的訪問控制矩陣A的行標(biāo)i的集合。若用戶的屬性集合S中的屬性滿足數(shù)據(jù)持有者加密M時(shí)制定的訪問控制策略,則一定可以找到常數(shù)Wi e Zp,按照下式:
[0086]X viV^ = s

?€?
[0087]有效恢復(fù)出指數(shù)S。
[0088]步驟12:在這一模塊中,數(shù)據(jù)的使用者(Data Consumer)從云端存儲(chǔ)器下載需要訪問的加密文件CT和Hdr。從步驟11的輸出可知,消息Hdr由三部分組成;數(shù)據(jù)使用用戶首先查看自身指紋碼的第j位:對(duì)于指紋碼的第j位是O的情況,屬性基解密算法的輸入為Hdr的第二部分Hdqtl和該數(shù)據(jù)使用者的用戶私鑰SK ;對(duì)于第j位是I的情況,屬性基解密算法的輸入為Hdr的第三部分Hdq1和該數(shù)據(jù)使用者的用戶私鑰SK。
[0089]第j位是O時(shí)屬性基解密算法按下式運(yùn)行雙線性對(duì)和乘、除法計(jì)算:
M I __6*(.(..(1,Κ{) )_
—Π-(機(jī),[丨
[0090]
e{g\g') l^s "
[0091]第j位是I時(shí)屬性基解密算法按下式運(yùn)行雙線性對(duì)和乘、除法計(jì)算:
—_Cj(C0vA^0)_
[0092]


,&
[0093]經(jīng)最后一步除法運(yùn)算,得到會(huì)話密鑰M:
[0095]步驟13:數(shù)據(jù)使用者使用會(huì)話密鑰Μ,對(duì)加密文件CT運(yùn)行AES數(shù)據(jù)解密算法,即可訪問所需的明文文件。
[0096]其中,步驟13中所述的“運(yùn)行AES數(shù)據(jù)解密算法”,通過下載MySQL (關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件,可以通過調(diào)用函數(shù)“SELECT AES_DECRYPT (AES_ENCRYPT O ”進(jìn)行解密。
[0097]模塊五:數(shù)字取證模塊:
[0098]該數(shù)字取證模塊只在發(fā)生用戶私鑰泄露的情況時(shí)才運(yùn)行,共分3步執(zhí)行:
[0099]步驟I*:可信權(quán)威首先尋找被盜版解碼器(PD)用來偽造用戶私鑰的適應(yīng)性碼字:

ω 0
[0100]對(duì)于j從I到L,每次選擇化群中兩個(gè)不等的消息,分別運(yùn)行
Encapsulate算法得到輸出:
Ildrj () <r~ Encapsulate(PK,M r,( A,ρ),(/.,O))
[0101]'IMrjl ^ EncapsulateiPK,M..\{A,p\{ j,\))
[0102]將得到的結(jié)果作為盜版解碼器的輸入(盜版解密器是根據(jù)泄露的用戶私鑰構(gòu)造的,具有偽造用戶私鑰、解密數(shù)據(jù)的功能,輸出為解密后的消息M/),若輸出的結(jié)果M/與Mj相等,則判斷適應(yīng)性碼字ω*的第j位為0,即ω / = O ;否則,判斷為I。
[0103]j經(jīng)I遍歷到L后,可以得到被盜版解碼器(PD)用來偽造用戶私鑰的適應(yīng)性碼字:
氺__氺氺氺
ω = O1 ω 2...ω L ο
[0104]步驟2*:首先,可信權(quán)威需要指定追蹤算法Trarc的容錯(cuò)概率ε (表示Trarc算法追蹤到的最后結(jié)果包含某個(gè)無辜用戶或是追蹤無果的概率),下式中的t表示該指紋碼可以抗t人合謀攻擊,即超過t人的合謀,該算法便失去了有效性。故該算法需在運(yùn)行追蹤算法之前確定泄密用戶的總數(shù)不多于t。
[0105]接下來,分別計(jì)算k、k'和閾值Z的值:
[0106]k = l/300t, k' = >/arcsin k (O <k'< , Z = 20t\ log(l/£')l
4
[0107]在得到k'的值后,隨機(jī)選擇區(qū)間Κ’,|-^之間的某一隨機(jī)值-&’],并計(jì)算Pj = sin2rj (j從I遍歷到L)。
[0108]步驟3*:將上一步得到的適應(yīng)性碼字ω* =ω^,分別與指紋碼集合Γ={ωω,...,ω(η)}中的所有碼字進(jìn)行對(duì)比,按照下式計(jì)算每次比較對(duì)應(yīng)碼字位的權(quán)值:
σ(ρ) ω; = 1,^/ = I
—ct( \ — Di ) C0.=K=O
[0109]S, = I^? / = I, * * ^ ; / = I, * * *, L
^-CX(Pj) OJj =(1ω; =0J

σ{\- ρ,) (j --1, OJj1 = O
[0110]其中,σ{ρ)=^(\-P)!PO
[0111]對(duì)于每個(gè)用戶,計(jì)算所有位的權(quán)值之和A = TUs/,并與閾值Z比較,所有權(quán)值之和高于Z的用戶,其系統(tǒng)標(biāo)號(hào)記入集合C中,可信權(quán)威輸出追蹤結(jié)果{1,…,#}。
[0112]3、優(yōu)點(diǎn)及功效:
[0113]本發(fā)明提供一種泄露密鑰可追蹤的屬性基混合加密方法,在云存儲(chǔ)環(huán)境下使用該方法對(duì)數(shù)據(jù)加密可保證數(shù)據(jù)在不完全可信的云存儲(chǔ)器存儲(chǔ)時(shí)的安全性,且一旦發(fā)生用戶私鑰泄露事件,可信權(quán)威機(jī)構(gòu)可有效追蹤到泄密用戶的身份,該方法的優(yōu)點(diǎn)和功效是:
[0114]I)本發(fā)明方法首先考慮到數(shù)據(jù)持有者的明文數(shù)據(jù)上傳到云存儲(chǔ)器中存儲(chǔ)后,數(shù)據(jù)持有者便失去了對(duì)自身數(shù)據(jù)的控制權(quán),明文數(shù)據(jù)的完整性極易遭到來自網(wǎng)絡(luò)環(huán)境中各路不法分子的惡意破壞。出于保護(hù)數(shù)據(jù)外包存儲(chǔ)安全性的目的,本發(fā)明方法引入密碼學(xué)中的加密技術(shù),在數(shù)據(jù)持有者將數(shù)據(jù)上傳到云存儲(chǔ)器存儲(chǔ)前,先對(duì)數(shù)據(jù)進(jìn)行加密,僅有數(shù)據(jù)持有者和授權(quán)的數(shù)據(jù)使用者(即持有解密私鑰的用戶)方可對(duì)加密文件解密。
[0115]2)本發(fā)明方法綜合了對(duì)稱加密機(jī)制和非對(duì)稱加密機(jī)制的優(yōu)點(diǎn),采用混合加密的方式,首先將明文數(shù)據(jù)以對(duì)稱加密機(jī)制中的AES加密方法加密,該方法加密速度快,密文長(zhǎng)度短小,便于存儲(chǔ)。以非對(duì)稱加密機(jī)制中的屬性基加密方法對(duì)AES的會(huì)話密鑰再加密,用戶屬性滿足訪問控制結(jié)構(gòu)的解密者方可獲得會(huì)話密鑰,完成AES解密。該方法省去了繁瑣的密鑰協(xié)商步驟,且屬性基加密方法更貼近現(xiàn)實(shí)生活的應(yīng)用場(chǎng)景,實(shí)用性更強(qiáng)。
[0116]3)本發(fā)明方法與以往的屬性基加密方法相比最大的優(yōu)勢(shì)與創(chuàng)新點(diǎn)在于:該方法加入了指紋碼追蹤技術(shù),將獨(dú)特的指紋碼嵌入到用戶的私鑰中,發(fā)生私鑰泄露時(shí)可有效追蹤到泄露的源頭;現(xiàn)有的屬性基方法僅具備了加、解密數(shù)據(jù)的功能,一旦用戶的私鑰泄露,以該私鑰對(duì)應(yīng)的公鑰加密的數(shù)據(jù)就會(huì)遭到非法訪問,這對(duì)數(shù)據(jù)的安全性保護(hù)來說是存在漏洞的。本發(fā)明方法結(jié)合已有的技術(shù)成熟的指紋碼技術(shù),在可信權(quán)威的協(xié)助下,通過與盜版解密器(PD)交互,能有效追蹤到泄露密鑰的用戶的身份,數(shù)據(jù)持有者在知曉泄密用戶之后可采取應(yīng)急手段,防止數(shù)據(jù)再次遭到破壞。
(四)【專利附圖】

【附圖說明】:
[0117]圖1為本發(fā)明所述方法的系統(tǒng)架構(gòu)圖。
[0118]圖2為本發(fā)明所述方法的流程框圖。
(五)

【具體實(shí)施方式】
[0119]本發(fā)明為一種泄露密鑰可追蹤的屬性基混合加密方法,該方法由系統(tǒng)初始化模塊、用戶錄入模塊、文檔建立模塊、文檔訪問模塊和數(shù)字取證模塊這五個(gè)模塊實(shí)現(xiàn)。整個(gè)泄露密鑰可追蹤的屬性基混合加密方法運(yùn)行的系統(tǒng)架構(gòu)圖見圖1所示,本發(fā)明所述方法的流程框圖見圖2所示,結(jié)合該流程框圖,將該方法的具體實(shí)現(xiàn)步驟介紹如下:
[0120]本發(fā)明一種泄露密鑰可追蹤的屬性基混合加密方法,該方法的作法如下:
[0121]模塊一:系統(tǒng)初始化模塊:
[0122]步驟1:可信權(quán)威(TA, Trusted Authority)輸入系統(tǒng)安全參數(shù)λ ,運(yùn)行算法5(1勺爿輸出兩個(gè)階數(shù)為素?cái)?shù)P的群G、Gt和一個(gè)雙線性映射運(yùn)算e: GxG-^Gt
[0123]步驟2:可信權(quán)威接下來運(yùn)行隨機(jī)數(shù)生成算法,隨機(jī)選擇G群中的某個(gè)生成元g,以及Zp域中的兩個(gè)元素a,α。
[0124]步驟3:可信權(quán)威選擇一種抗碰撞哈希函數(shù)H (.),該函數(shù)滿足抗碰撞哈希函數(shù)的所有特性,輸入為任意長(zhǎng)度的0、1字符串,輸出為映射到G群中的某一元素。
[0125]步驟4:可信權(quán)威運(yùn)行指紋碼生成算法Genrc,輸入該整數(shù)η和L (整數(shù)η表示將要生成的指紋碼集合Γ中元素的個(gè)數(shù),L表示集合Γ中每個(gè)指紋碼的長(zhǎng)度)。算法Genrc輸出指紋碼集合Γ = {ωα),...,ω(η)},其中每個(gè)碼字的長(zhǎng)度為L(zhǎng)。
[0126]步驟5:可信權(quán)威經(jīng)過一次雙線性對(duì)運(yùn)算和兩次指數(shù)運(yùn)算得到公鑰為:
[0127]PK = (g, ga, e (g, g) α,H (.))
[0128]經(jīng)過一次指數(shù)運(yùn)算得到主密鑰為:
[0129]MSK = ga
[0130]其中,在步驟I中所述的“算法以O(shè)”,其運(yùn)行方法如下:私鑰生成中心(PKG)輸入系統(tǒng)安全參數(shù)λ,根據(jù)λ的大小,系統(tǒng)選擇相應(yīng)的橢圓曲線:Y2 = X3+aX+b(a和b是系數(shù)),再由橢圓曲線上的點(diǎn)構(gòu)成兩個(gè)素?cái)?shù)P階的群$、&Γ。選擇一種函數(shù)映射e,將群:G中的元素映射到群Gr中去;安全參數(shù)數(shù)值越大,所選擇橢圓曲線上的點(diǎn)也越多,群也越大。
[0131]其中,步驟2中所述的“隨機(jī)數(shù)生成算法”,其做法如下:根據(jù)步驟I中所選的橢圓曲線:Y2 = X3+aX+b,隨機(jī)選擇自變量X的一個(gè)值^,計(jì)算對(duì)應(yīng)因變量Y的值yi ;若點(diǎn)(Xl,yi)在我們想要映射的群中,則成功生成了隨機(jī)元素。若點(diǎn)(Xl,Y1)不在群中,則繼續(xù)選擇X的值,直到找到出現(xiàn)在群中的點(diǎn)。此外,域Z-表示集合{1,2,...,p-1},隨機(jī)選擇域ζ中元素的隨機(jī)數(shù)生成函數(shù)可以從Pairing-Based Cryptosystems函數(shù)包中調(diào)用庫(kù)函數(shù)運(yùn)行。下文中提到的隨機(jī)數(shù)生成算法皆按上述方法運(yùn)行。
[0132]其中,步驟3中所述的抗碰撞哈希函數(shù)H (.)同樣可以從Pairing-BasedCryptosystems函數(shù)包中調(diào)用庫(kù)函數(shù)運(yùn)行。
[0133]其中,步驟4中所述的“指紋碼生成算法Genrc”,借用Tardos “OptimalProbabilistic Fingerprint Codes”中所提到的指紋碼生成算法步驟生成,在此不做詳細(xì)描述。
[0134]其中,步驟5中所述的“運(yùn)行雙線性對(duì)運(yùn)算”,其做法如下:自變量的輸入為群G中的元素g、g,輸出為群Gt中的元素:e(g,g)。
[0135]模塊二:用戶錄入模塊:
[0136]步驟6:對(duì)于請(qǐng)求加入系統(tǒng)的用戶,由可信權(quán)威為其分配集合Γ中的某個(gè)指紋碼ω(ω e Γ),并根據(jù)用戶身份條件指定屬于該用戶的屬性集合S。
[0137]步驟7:可信權(quán)威輸入主密鑰MSK = g'運(yùn)行隨機(jī)數(shù)生成算法,隨機(jī)選擇Zp域中的某個(gè)元素r,運(yùn)行兩次指數(shù)和一次乘法運(yùn)算,得到:
[0138]K0 = g° gar 和 K1 = gr
[0139]步驟8:可信權(quán)威輸入該用戶屬性集合S和指紋碼ω,對(duì)屬性集合S中的所有屬性X,從I到1,進(jìn)行級(jí)聯(lián)、哈希函數(shù)和指數(shù)運(yùn)算,得到:
[0140]{DXJ =H(x\\ JWajY} Vxe 5,/ = 1,--,L
[0141]用戶最終分配到的私鑰為:
[0142]SK — (K0, K', \DX j}^eS j=1£)
[0143]其中,步驟8中的級(jí)聯(lián)運(yùn)算“I I”表示字符串X,j,首尾相接。
[0144]模塊三:文檔建立模塊:
[0145]步驟9:數(shù)據(jù)持有者(Data Owner)首先運(yùn)行隨機(jī)數(shù)生成算法,隨機(jī)選擇Gt群中的某一元素M作為對(duì)稱加密的會(huì)話密鑰。使用會(huì)話密鑰M對(duì)文檔進(jìn)行AES數(shù)據(jù)加密,加密后的密文CT上傳到云端存儲(chǔ)器存儲(chǔ)。
[0146]步驟10:數(shù)據(jù)持有者根據(jù)自己的安全需求,制定相應(yīng)的訪問控制策略,該策略由用戶屬性表示,例如“(屬性IAND屬性2) OR屬性3”。根據(jù)訪問控制策略后,生成對(duì)應(yīng)的訪問控制矩陣(A,P ),A表示I行η列的矩陣,P表示可以將矩陣A的一行映射到訪問控制策略中的某一屬性的映射。
[0147]步驟11:數(shù)據(jù)持有者輸入公鑰ΡΚ、訪問控制矩陣(Α,P )和待加密的會(huì)話密鑰M后,為確保泄露的用戶私鑰可以被追蹤到,數(shù)據(jù)持有者首先隨機(jī)選擇[1,L]區(qū)間的某一整數(shù)j,對(duì)于O和I分別運(yùn)行屬性基加密算法Encapsulate:
IIdrj (| <— Encapsulate(PK, M
[0148]{
1IIdrj I Encapsulate、PK,M,{A,ρ),(/, I))
[0149]Encapsulate算法的運(yùn)行如下:
[0150]首先,數(shù)據(jù)持有者選擇隨機(jī)的向量υ:V = {s,l>2,---,l>n),向量中的s為解密時(shí),數(shù)據(jù)使用者需要恢復(fù)的指數(shù);其他元素U2,…,Un是從Zp域中隨機(jī)選取的。將矩陣A的每一行作為行向量?與向量?進(jìn)行內(nèi)積運(yùn)算,得到入” λ2,…,入1:
[0151]^i=Ir V (/ = I,…,/)
[0152]接下來,Encapsulate算法對(duì)矩陣A中的每一行i進(jìn)行P (.)映射,得到對(duì)應(yīng)的屬性字符串P (i)后與j和O、I字符級(jí)聯(lián);最后分別計(jì)算其抗碰撞哈希函數(shù)的值:
r n^(P(OIIiI1)
[0153]{
[0154]最后,經(jīng)過(2+21)次指數(shù)和(1+21)次乘法運(yùn)算,得到Encapsulate算法的結(jié)果:
[0155]C = Me (g, g) as, C0 = gs,
[0156]C1 = <r Η(ρ(\) Il j Il 0) a = g^H{p{2) || j 丨丨 0) C1 = g^H(p(l) || j || 0)
[0157]C; = g^Hipd) Il j Il I) C; = g^-H(p(2) || j\\I) C; = gaA'H(p{l) || j || I)
[0158]記為:
I Idv 0 = (C, C0, {Cl, C1,…,C:;)
[0159]{' ' ,
?Idrji ^(C,C2,...,C1 I)
[0160]最終M經(jīng)Encapsulate算法加密后的密文表示為:
[0161]Hdr = (j, HdrJ;0, HdrJ;1)
[0162]其中,步驟9中所述的“AES數(shù)據(jù)加密”,通過下載MySQL (關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件,可以通過調(diào)用函數(shù)“SELECT AES_ENCRYPT() ”進(jìn)行加密。
[0163]其中,步驟10中所述的“生成對(duì)應(yīng)的訪問控制矩陣(A,P ) ”,矩陣A中各元素的選擇原則是能夠有效恢復(fù)出步驟11中提到的“指數(shù)S”。
[0164]模塊四:文檔訪問模塊:
[0165]在這一模塊中,數(shù)據(jù)的使用者(Data Consumer)從云端存儲(chǔ)器下載需要訪問的加密文件CT和Hdr。運(yùn)行屬性基解密算法,若數(shù)據(jù)使用者的屬性集合S中的屬性滿足數(shù)據(jù)持有者加密會(huì)話密鑰M時(shí)制定的訪問控制策略,通過輸入該數(shù)據(jù)使用用戶的私鑰SK和待解密的消息Hdr,則可以從Hdr中成功解密出會(huì)話密鑰M。
[0166]這里我們定義集合1(1 = U|p (i) e S}),表示用戶屬性集合S中所有屬性P (i) e S通過映射P (.),對(duì)應(yīng)的訪問控制矩陣A的行標(biāo)i的集合。若用戶的屬性集合S中的屬性滿足數(shù)據(jù)持有者加密M時(shí)制定的訪問控制策略,則一定可以找到常數(shù)Wi e Zp,按照下式:
[0167]Σ vH-A-1£l
[0168]有效恢復(fù)出指數(shù)S。
[0169]步驟12:從步驟11的輸出可知,消息Hdr由三部分組成;數(shù)據(jù)使用用戶首先查看自身指紋碼的第j位:對(duì)于指紋碼的第j位是O的情況,屬性基解密算法的輸入為Hdr的第二部分Hdqtl和該數(shù)據(jù)使用者的用戶私鑰SK ;對(duì)于第j位是I的情況,屬性基解密算法的輸入為Hdr的第三部分Hdq1和該數(shù)據(jù)使用者的用戶私鑰SK。
[0170]第j位是O時(shí)屬性基解密算法按下式運(yùn)行雙線性對(duì)和乘、除法計(jì)算:
M' =_?((-?,廠丨 >.)_

Πρ(,.)ε5).e(C0, Dp{i)J )) '
[0171]
=啪、,^丫.)=電)
e(ga,gr)
[0172]第j位是I時(shí)屬性基解密算法按下式運(yùn)行雙線性對(duì)和乘、除法計(jì)算:
M' =_ci^^Kn)_
[0173]
= e(g、,g',)y,g":)=e(g,gr
[0174]經(jīng)最后一步除法運(yùn)算,得到會(huì)話密鑰M:
[0175]
,M e(g,g)
[0176]步驟13:數(shù)據(jù)使用者使用會(huì)話密鑰M,對(duì)加密文件CT運(yùn)行AES數(shù)據(jù)解密算法,即可訪問所需的明文文件。
[0177]其中,步驟13中所述的“運(yùn)行AES數(shù)據(jù)解密算法”,通過下載MySQL (關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件,可以通過調(diào)用函數(shù)“SELECT AES_DECRYPT (AES_ENCRYPT O ”進(jìn)行解密。
[0178]模塊五:數(shù)字取證模塊:
[0179]當(dāng)數(shù)據(jù)持有者發(fā)現(xiàn)自己存儲(chǔ)在云端的數(shù)據(jù)被非法訪問時(shí),可以向可信權(quán)威(TA)發(fā)送數(shù)字取證請(qǐng)求,由TA尋找出泄露密鑰的用戶。TA在接到取證請(qǐng)求后,運(yùn)行指紋碼追蹤算法Trarc找到叛徒用戶集合C,發(fā)送給數(shù)據(jù)持有者,該數(shù)字取證模塊只在發(fā)生用戶私鑰泄露的情況時(shí)才運(yùn)行,共分3步執(zhí)行:
[0180]步驟I*:可信權(quán)威首先尋找被盜版解碼器(PD)用來偽造用戶私鑰的適應(yīng)性碼字:

ω 0
[0181]對(duì)于j從I到L,每次選擇群中兩個(gè)不等的消息,分別運(yùn)行Encapsulate算法得到輸出:
IIdr..() <— Encapsiilate{PK, M /)),(/.,O))
Γθ182l I
KIIdrj I EncapsiilatciPK,Mj ',(/I,/)),( /, I))
[0183]將得到的結(jié)果作為盜版解碼器的輸入(盜版解密器是根據(jù)泄露的用戶私鑰構(gòu)造的,具有偽造用戶私鑰、解密數(shù)據(jù)的功能,輸出為解密后的消息M/),若輸出的結(jié)果M/與Mj相等,則判斷適應(yīng)性碼字ω*的第j位為0,即ω / = O ;否則,判斷為I。
[0184]j經(jīng)I遍歷到L后,可以得到被盜版解碼器(PD)用來偽造用戶私鑰的適應(yīng)性碼字:
氺__氺氺氺
ω = O1 ω 2...ω L ο
[0185]步驟2*:首先,可信權(quán)威需要指定追蹤算法Trarc的容錯(cuò)概率ε (表示Trarc算法追蹤到的最后結(jié)果包含某個(gè)無辜用戶或是追蹤無果的概率),下式中的t表示該指紋碼可以抗t人合謀攻擊,即超過t人的合謀,該算法便失去了有效性。故該算法需在運(yùn)行追蹤算法之前確定泄密用戶的總數(shù)不多于t。
[0186]接下來,分別計(jì)算k、k'和閾值Z的值:
[0187]k = l/300t, k' = Varcsin k(() <k'<^), Z = 2(k「log(l / £.)"|
4
[0188]在得到k'的值后,隨機(jī)選擇區(qū)間^之間的某一隨機(jī)值—Η,并計(jì)算Pj = sin2rj (j從I遍歷到L)。
[0189]步驟3*:將上一步得到的適應(yīng)性碼字ω* = ω廣ω/...ω^,分別與指紋碼集合Γ={ωω,...,ωω}中的所有碼字進(jìn)行對(duì)比,按照下式計(jì)算每次比較對(duì)應(yīng)碼字位的權(quán)值:
(J(Pj) (Oj -1,= 1-σ(1 - ρ:) ω- = I, ω' = O
[0190]5 =.\[ i = 1,...,η ; j = I L

-Gipj) (Oj = O, OJj = O

σ(\ - ρ.) OJj = \,(θ! = O
[0191]其中,¢7(/7)= ^/(1-/7)/ρ。
[0192]對(duì)于每個(gè)用戶,計(jì)算所有位的權(quán)值之和A = U,并與閾值Z比較,所有權(quán)值之和高于Z的用戶,其系統(tǒng)標(biāo)號(hào)記入集合C中,可信權(quán)威輸出追蹤結(jié)果Cq {I,-。
【權(quán)利要求】
1.一種泄露密鑰可追蹤的屬性基混合加密方法,其特征在于:其作法如下: 模塊一:系統(tǒng)初始化模塊: 步驟1:可信權(quán)威即TA輸入系統(tǒng)安全參數(shù)λ,運(yùn)行算法6(Γ),輸出兩個(gè)階數(shù)為素?cái)?shù)P的群Cr、(£^和一個(gè)雙線性映射運(yùn)算e: G X G Gr ; 步驟2:可信權(quán)威接下來運(yùn)行隨機(jī)數(shù)生成算法,隨機(jī)選擇G群中的某個(gè)生成元g,以及Zp域中的兩個(gè)元素a, α ; 步驟3:可信權(quán)威選擇一種抗碰撞哈希函數(shù)H (.),該函數(shù)滿足抗碰撞哈希函數(shù)的所有特性,輸入為任意長(zhǎng)度的0、1字符串,輸出為映射到G群中的某一元素; 步驟4:可信權(quán)威運(yùn)行指紋碼生成算法GenF。,輸入該整數(shù)η和L,該整數(shù)η表示將要生成的指紋碼集合Γ中元素的個(gè)數(shù),L表示集合Γ中每個(gè)指紋碼的長(zhǎng)度;算法Genrc輸出指紋碼集合Γ = {ω(1),..., ω(η)},其中每個(gè)碼字的長(zhǎng)度為L(zhǎng); 步驟5:可信權(quán)威經(jīng)過一次雙線性對(duì)運(yùn)算和兩次指數(shù)運(yùn)算得到公鑰為:
PK = (g, ga, e(g, g) α, H(.)) 經(jīng)過一次指數(shù)運(yùn)算得到主密鑰為:
MSK = ga ; 模塊二:用戶錄入模塊: 步驟6:對(duì)于請(qǐng)求加入系統(tǒng)的用戶,由可信權(quán)威為其分配集合Γ中的某個(gè)指紋碼ω(ω e Γ),并根據(jù)用戶身份條件指定屬于該用戶的屬性集合S ; 步驟7:可信權(quán)威輸入主密鑰MSK = g'運(yùn)行隨機(jī)數(shù)生成算法,隨機(jī)選擇Zp域中的某個(gè)元素r,運(yùn)行兩次指數(shù)和一次乘法運(yùn)算,得到:
K0 = gagar 和 K1 = gr ; 步驟8:可信權(quán)威輸入該用戶屬性集合S和指紋碼ω,對(duì)屬性集合S中的所有屬性X,從I到1,進(jìn)行級(jí)聯(lián)、哈希函數(shù)和指數(shù)運(yùn)算,得到: {?χ.=Η{χ\\]\\ω}γ}/χ^8,] = ν L 用戶最終分配到的私鑰為: SK = (KivK^l)

Vjc&SJ二I,,..』).其中,該級(jí)聯(lián)運(yùn)算“ 11 ”表示字符串X,j, 首尾相接; 模塊三:文檔建立模塊: 步驟9:數(shù)據(jù)持有者即Data Owner首先運(yùn)行隨機(jī)數(shù)生成算法,隨機(jī)選擇Gt群中的某一元素M作為對(duì)稱加密的會(huì)話密鑰;使用會(huì)話密鑰M對(duì)文檔進(jìn)行AES數(shù)據(jù)加密,加密后的密文CT上傳到云端存儲(chǔ)器存儲(chǔ); 步驟10:數(shù)據(jù)持有者根據(jù)自己的安全需求,制定相應(yīng)的訪問控制策略,該策略由用戶屬性表示,例如“(屬性IAND屬性2) OR屬性3”,根據(jù)訪問控制策略后,生成對(duì)應(yīng)的訪問控制矩陣(A,P ),A表示I行η列的矩陣,P表示能將矩陣A的一行映射到訪問控制策略中的某一屬性的映射; 步驟11:數(shù)據(jù)持有者輸入公鑰ΡΚ、訪問控制矩陣(Α,P)和待加密的會(huì)話密鑰M后,為確保泄露的用戶私鑰能被追蹤到,數(shù)據(jù)持有者首先隨機(jī)選擇[1,L]區(qū)間的某一整數(shù)j,對(duì)于O和I分別運(yùn)行屬性基加密算法Encapsulate:
JIdrj 0 <— EncapsuIateiPK,M,{A,p),{ j,{)))
'IIdrj, <-■ Encapsulate^PK, M,{A, p),( j, I)) Encapsulate算法的運(yùn)行如下: 首先,數(shù)據(jù)持有者選擇隨機(jī)的向量P:v = (s,v2,---,un),向量中的s為解密時(shí),數(shù)據(jù)使用者需要恢復(fù)的指數(shù);其他元素U2,…,Un是從Zp域中隨機(jī)選取的,將矩陣A的每一行作為行向量4.與向量P.進(jìn)行內(nèi)積運(yùn)算,得到λ I,λ2,...,λ1:
Xi = A1-V (i = 1,...,1) 接下來,Encapsulate算法對(duì)矩陣A中的每一行i進(jìn)行P (.)映射,得到對(duì)應(yīng)的屬性字符串P (i)后與j和O、I字符級(jí)聯(lián);最后分別計(jì)算其抗碰撞哈希函數(shù)的值://(P(OIIiI1) W(OIIiIIi) 最后,經(jīng)過(2+21)次指數(shù)和(1+21)次乘法運(yùn)算,得到Encapsulate算法的結(jié)果:
C = Me (g, g) as, C0 = gs,
C1 = ga^H{p(l) Il j Il 0) C2 = g 喚 H(p(2) || _/1| 0) C1= gaX'H(p(l) ||_/|| 0)
C; = iT //(MDIl./Il I) C;= ?Τ:"(/)(2)Il./Il I) C; = f HiPiD 11/111) 記為: Hdrjn=(QC0ACpCnCl))
W}l-(C,C0,{C;,C2',...,C;}) 最終M經(jīng)Encapsulate算法加密后的密文表示為:
Hdr = (j, HdrJ;o, Hdru); 模塊四:文檔訪問模塊: 定義集合I (I = UIp (i) e S}),表示用戶屬性集合S中所有屬性P (i) e S通過映射P (.),對(duì)應(yīng)的訪問控制矩陣A的行標(biāo)i的集合;若用戶的屬性集合S中的屬性滿足數(shù)據(jù)持有者加密M時(shí)制定的訪問控制策略,則一定能找到常數(shù)Wi e Zp,按照下式:
YjWiXi=S
i'e/ 有效恢復(fù)出指數(shù)S ; 步驟12:在這一模塊中,數(shù)據(jù)的使用者即Data Consumer從云端存儲(chǔ)器下載需要訪問的加密文件CT和Hdr ;從步驟11的輸出可知,消息Hdr由三部分組成;數(shù)據(jù)使用用戶首先查看自身指紋碼的第j位:對(duì)于指紋碼的第j位是O的情況,屬性基解密算法的輸入為Hdr的第二部分Hdqtl和該數(shù)據(jù)使用者的用戶私鑰SK ;對(duì)于第j位是I的情況,屬性基解密算法的輸入為Hdr的第三部分Hdq1和該數(shù)據(jù)使用者的用戶私鑰SK ; 第j位是O時(shí)屬性基解密算法按下式運(yùn)行雙線性對(duì)和乘、除法計(jì)算: 從,__e(C0,[0)_

…_ 第j位是I時(shí)屬性基解密算法按下式運(yùn)行雙線性對(duì)和乘、除法計(jì)算: _e((i”《O)__
—ΓU>(c,'’,[1).?^(c。,?叫))''',
=-Y M- =g(g,g)
e(ga,g' Γρ,η" 經(jīng)最后一步除法運(yùn)算,得到會(huì)話密鑰M: μ-c/
e(g,gr ; 步驟13:數(shù)據(jù)使用者使用會(huì)話密鑰M,對(duì)加密文件CT運(yùn)行AES數(shù)據(jù)解密算法,即能訪問所需的明文文件; 模塊五:數(shù)字取證模塊: 該數(shù)字取證模塊只在發(fā)生用戶私鑰泄露的情況時(shí)才運(yùn)行,共分3步執(zhí)行: 步驟I*:可信權(quán)威首先尋找被盜版解碼器即H)用來偽造用戶私鑰的適應(yīng)性碼字:ω* ; 對(duì)于j從I到L,每次選擇群中兩個(gè)不等的消息M,分別運(yùn)行Encapsulate算法得到輸出:
JIdrj 0 <— Encapsulaie(PK, M j, (A, ρ), (j, O))
χIldrj I <— Enc'apsulateiPK,M; \ (Α,ρ),(],\)) 將得到的結(jié)果作為盜版解碼器的輸入,該盜版解密器是根據(jù)泄露的用戶私鑰構(gòu)造的,具有偽造用戶私鑰、解密數(shù)據(jù)的功能,輸出為解密后的消息Μ/,若輸出的結(jié)果M/與Md目等,則判斷適應(yīng)性碼字ω*的第j位為O,即ω/ = O ;否則,判斷為I ; j經(jīng)I遍歷到L后,能得到被盜版解碼器即H)用來偽造用戶私鑰的適應(yīng)性碼字:ω* = 氺氺氺?I ?2 …WL ; 步驟2*:首先,可信權(quán)威需要指定追蹤算法Trarc的容錯(cuò)概率ε (表示Trarc算法追蹤到的最后結(jié)果包含某個(gè)無辜用戶或是追蹤無果的概率),下式中的t表示該指紋碼可以抗t人合謀攻擊,即超過t人的合謀,該算法便失去了有效性;故該算法需在運(yùn)行追蹤算法之前確定泄密用戶的總數(shù)不多于t; 接下來,分別計(jì)算k、k,和閾值Z的值:
k = l/300t,k' = Varcsin k (O <k'< , Z = 20/[ log(l/i;)l


4 在得到k'的值后,隨機(jī)選擇區(qū)間R’,f-糾之間的某一隨機(jī)值,并計(jì)算Pj = sin2!.」,j從I遍歷至丨J L ; 步驟3*:將上一步得到的適應(yīng)性碼字ω* = 03^?/...?^,分別與指紋碼集合Γ ={ω(1),..., ω ω}中的所有碼字進(jìn)行對(duì)比,按照下式計(jì)算每次比較對(duì)應(yīng)碼字位的權(quán)值:
<y{Pj) ω* =\,aj =1.—σ( I — p,-) ω, = I, ω; = O
Si = -1*> / = I, * *., η ; j = 1,..', L
' -a(pj) 0: =0,ω; =0
σ(1 - Pj) O); = I, ω; = O
其中,σ(ρ) = ^(?-ρ)/ρ ; 對(duì)于每個(gè)用戶,計(jì)算所有位的權(quán)值之和:4=Σ: s 并與閾值z(mì)比較,所有權(quán)值之和高于Z的用戶,其系統(tǒng)標(biāo)號(hào)記入集合C中,可信權(quán)威輸出追蹤結(jié)果\。
2.根據(jù)權(quán)利要求1所述的一種泄露密鑰可追蹤的屬性基混合加密方法,其特征在于:在步驟I中所述的“運(yùn)行算法其運(yùn)行方法如下:可信權(quán)威輸入系統(tǒng)安全參數(shù)λ,根據(jù)λ的大小,系統(tǒng)選擇相應(yīng)的橢圓曲線:Y2 = X3+aX+b,a和b是系數(shù),再由橢圓曲線上的點(diǎn)構(gòu)成兩個(gè)素?cái)?shù)P階的群G、Gt ;選擇一種函數(shù)映射e,將群G中的元素映射到群Gr中去;安全參數(shù)數(shù)值越大,所選擇橢圓曲線上的點(diǎn)也越多,群也越大。
3.根據(jù)權(quán)利要求1所述的一種泄露密鑰可追蹤的屬性基混合加密方法,其特征在于:在步驟2中所述的“隨機(jī)數(shù)生成算法”,其做法如下:根據(jù)步驟I中所選的橢圓曲線:Y2 =X3+aX+b,隨機(jī)選擇自變量X的一個(gè)值X1,計(jì)算對(duì)應(yīng)因變量Y的值Y1 ;若點(diǎn)(X1, Y1)在我們想要映射的群中,則成功生成了隨機(jī)元素;若點(diǎn)(Xl,Y1)不在群中,則繼續(xù)選擇X的值,直到找到出現(xiàn)在群中的點(diǎn);此外,域Z=表示集合{1,2,...,ρ-l},隨機(jī)選擇域g中元素的隨機(jī)數(shù)生成函數(shù)能從Pairing-Based Cryptosystems函數(shù)包中調(diào)用庫(kù)函數(shù)運(yùn)行。
4.根據(jù)權(quán)利要求1所述的一種泄露密鑰可追蹤的屬性基混合加密方法,其特征在于:在步驟5中所述的“運(yùn)行雙線性對(duì)運(yùn)算”,其做法如下:自變量的輸入為群G中的元素g、g,輸出為群(Gt1中的元素:e(g,g)。
5.根據(jù)權(quán)利要求1所述的一種泄露密鑰可追蹤的屬性基混合加密方法,其特征在于:在步驟9中所述的“AES數(shù)據(jù)加密”,通過下載MySQL應(yīng)用軟件,能通過調(diào)用函數(shù)“SELECTAES_ENCRYPT O ” 進(jìn)行加密。
6.根據(jù)權(quán)利要求1所述的一種泄露密鑰可追蹤的屬性基混合加密方法,其特征在于:在步驟13中所述的“運(yùn)行AES數(shù)據(jù)解密算法”,通過下載MySQL應(yīng)用軟件,能通過調(diào)用函數(shù)“ SELECT AES_DECRYPT (AES_ENCRYPT O ” 進(jìn)行解密。
【文檔編號(hào)】G06F21/32GK104168108SQ201410362945
【公開日】2014年11月26日 申請(qǐng)日期:2014年7月28日 優(yōu)先權(quán)日:2014年7月28日
【發(fā)明者】伍前紅, 鄧樺, 周云雅, 劉建偉, 秦波 申請(qǐng)人:北京航空航天大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1