本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)保密通信技術(shù)領(lǐng)域,具體涉及一種可發(fā)送私人信息的廣播加密方法。
背景技術(shù):
廣播加密的概念最先由fiat與naor提出,是一種面向多接收者的秘密通信方式。在一般的廣播加密系統(tǒng)中,廣播者首先選擇一個(gè)能解密廣播加密信息的授權(quán)用戶集合s,而后對(duì)廣播加密的對(duì)稱密鑰k進(jìn)行加密得到廣播密文頭hdr,最后利用對(duì)稱密鑰k加密所要廣播的消息并利用廣播信道發(fā)布出去。只有授權(quán)用戶集合s中的用戶才能利用其私鑰進(jìn)行解密得到廣播消息。若所有的非授權(quán)用戶合謀也無(wú)法解密廣播信息,則該廣播加密系統(tǒng)具有完全抗合謀特性。廣播加密在數(shù)字版權(quán)管理、付費(fèi)電視、衛(wèi)星通信、電視電話會(huì)議以及無(wú)線傳感網(wǎng)絡(luò)中有著廣泛的應(yīng)用。
廣播加密有效的實(shí)現(xiàn)了一對(duì)多的加密通信,但是在日常應(yīng)用中,為保護(hù)用戶的隱私,還需要廣播者與用戶間一對(duì)一的通信。
fiat與naor在1994年首先提出了廣播加密的概念,隨后一系列的廣播加密方法被提出,但是這些方法的密文長(zhǎng)度均與用戶的數(shù)目成線性關(guān)系。在2005年,boneh等人利用雙線性對(duì)構(gòu)造的bgw方法,密文長(zhǎng)度與用戶私鑰長(zhǎng)度均為常數(shù),但其公鑰長(zhǎng)度與用戶的數(shù)目成線性關(guān)系。這樣,隨著用戶數(shù)目的增加,其公鑰長(zhǎng)度隨之增加,將會(huì)增加廣播系統(tǒng)的存儲(chǔ)開銷。
為降低公鑰存儲(chǔ)開銷,boneh等人利用多線性映射構(gòu)造了低開銷的廣播加密方法,在保證其密文與用戶私鑰長(zhǎng)度均為常數(shù)的前提下,公鑰長(zhǎng)度僅為o(log(n))(bonehd,watersb,zhandrym.lowoverheadbroadcastencryptionfrommultilinearmaps[c]//internationalcryptologyconference.springerberlinheidelberg,2014:206-223.);其他如基于身份的廣播加密方法、可撤銷的廣播加密方法等也相繼被提出,但是這些方法均不能有效的實(shí)現(xiàn)個(gè)人秘密信息的傳輸。
直到2010年,ohtake等人提出了第一個(gè)可發(fā)送私人信息的廣播加密方法才實(shí)現(xiàn)了其靈活的廣播加密方式(ohtakeg,hanaokag,ogawak.efficientbroadcastencryptionwithpersonalizedmessages[c]//internationalconferenceonprovablesecurity.springerberlinheidelberg,2010:214-228.),該方法不僅能夠發(fā)送廣播加密信息以實(shí)現(xiàn)一對(duì)多的安全通信,還能夠向每個(gè)用戶發(fā)送秘密的信息來(lái)實(shí)現(xiàn)用戶的隱私保護(hù)。該方法可應(yīng)用于醫(yī)療系統(tǒng)中。對(duì)于病人的病歷等敏感信息,醫(yī)院則需要利用每個(gè)病人的私人密鑰進(jìn)行加密傳輸來(lái)保護(hù)病人的隱私,對(duì)于其他如醫(yī)生的出診信息等,則可以以廣播的形式發(fā)送給所有的病人。但是該方法的公鑰長(zhǎng)度為3n+2個(gè)群元素(n為廣播用戶的數(shù)目),存儲(chǔ)成本比較高。
因此,設(shè)計(jì)低開銷的可發(fā)送私人信息的廣播加密方法仍然值得進(jìn)一步的研究。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提出一個(gè)低開銷的可發(fā)送私人信息的廣播加密方法,該方法不僅能夠向一個(gè)接收者的用戶集合發(fā)送加密的消息,還能夠單獨(dú)的向每個(gè)用戶發(fā)送秘密的信息。
為了達(dá)到上述目的,本發(fā)明采用的技術(shù)方法如下:
一種可發(fā)送私人信息的廣播加密方法,包括以下步驟:
步驟一:設(shè)定廣播加密系統(tǒng)參數(shù),建立用戶集合空間、生成廣播系統(tǒng)所需的公鑰及主私鑰;
步驟二:密鑰生成中心pkg利用廣播用戶的身份信息id及步驟一中生成的系統(tǒng)公鑰與主私鑰信息,計(jì)算每個(gè)用戶的私鑰信息skid并秘密發(fā)送給用戶;
步驟三:廣播者計(jì)算廣播對(duì)稱密鑰k、廣播者與用戶私密通信的密鑰以及廣播密文頭hdr,利用密鑰為k的對(duì)稱加密算法加密廣播的信息,利用密鑰為的對(duì)稱加密算法加密廣播者與每個(gè)用戶通信的信息,而后將生成的密文信息廣播出去;
步驟四:用戶在接收到密文信息后,若用戶屬于授權(quán)用戶集合,則可利用自身私鑰與廣播密文頭hdr恢復(fù)出廣播者與所有授權(quán)用戶的通信密鑰k與廣播者與每個(gè)用戶通信的密鑰ki,最后分別解密對(duì)應(yīng)的加密信息,恢復(fù)出明文信息。
進(jìn)一步地,所述步驟一具體操作為:
輸入?yún)?shù)生成多線性群組(g1,…,gl,…,gn+l-1),群的階為p,gi為群gi的生成元,用戶身份id∈i且身份長(zhǎng)度n,漢明重量為l<n;隨機(jī)選取γ∈zp,
進(jìn)一步地,所述步驟二具體操作為:
廣播系統(tǒng)主私鑰為msk={α,γ,(b1,0,b1,1),…,(bn,0,bn,1)},這里的α,γ,(b1,0,b1,1),…,(bn,0,bn,1)均是在有限域zp中隨機(jī)選擇的;
系統(tǒng)公鑰信息為
用戶私鑰定義為skid=(skid1,skid2);其中,id=(id1,id2,…,idn),idi={0,1}是一個(gè)長(zhǎng)度為n比特的{0,1}字符串;
令
進(jìn)一步地,所述步驟三具體操作為:
廣播者根據(jù)系統(tǒng)參數(shù)信息、用戶的身份信息等生成對(duì)應(yīng)的密文信息,其具體過程如下:隨機(jī)選取t∈zp,根據(jù)系統(tǒng)的公鑰信息,計(jì)算所使用的廣播對(duì)稱密鑰
進(jìn)一步地,在步驟二中,用戶的身份id=(id1,…,idn),由于身份id的漢明重量為l,故僅有l(wèi)個(gè)idi為1,其余均為0。
進(jìn)一步地,所述步驟四具體操作為:
輸入系統(tǒng)參數(shù),用戶私鑰,密文hdr,根據(jù)公式
計(jì)算出k與kid,然后用戶分別利用k與kid對(duì)廣播加密信息c與私人加密信息cid進(jìn)行對(duì)稱解密,得到其對(duì)應(yīng)的信息。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果:
(1)提供私人信息的發(fā)送:通過利用k與kid對(duì)廣播信息與私人信息進(jìn)行對(duì)稱加密,得到對(duì)應(yīng)的密文c與cid,本發(fā)明的方法不僅能夠向一個(gè)接收者的用戶集合發(fā)送加密的消息,還能夠單獨(dú)的向每個(gè)用戶發(fā)送秘密的信息;
(2)廣播系統(tǒng)的存儲(chǔ)開銷低:由于本發(fā)明的方法中采用了多線性映射這一技術(shù),使得方法中的密文長(zhǎng)度與用戶私鑰長(zhǎng)度均為常量、公鑰長(zhǎng)度也遠(yuǎn)遠(yuǎn)小于用戶數(shù)量,減少了存儲(chǔ)開銷;
(3)計(jì)算效率高:在加密及加密過程中,僅需做常數(shù)次對(duì)運(yùn)算,對(duì)具體的消息進(jìn)行加密時(shí)采用的是對(duì)稱加密,提高了效率;
(4)安全性高:由于本發(fā)明所基于的困難假設(shè)是np問題(非多項(xiàng)式時(shí)間可解的問題),因此本發(fā)明的方法同時(shí)滿足了機(jī)密性、抗合謀攻擊性和選擇明文攻擊安全性。
附圖說(shuō)明
圖1是本發(fā)明方法中加解密計(jì)算過程的流程圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
本發(fā)明是一個(gè)標(biāo)準(zhǔn)模型下抗選擇明文攻擊安全的廣播加密方法,廣播者利用廣播信道發(fā)送密文信息,廣播用戶接收密文信息后,利用自身私鑰,解密信息恢復(fù)出相應(yīng)的明文信息。
本發(fā)明的可發(fā)送私人信息的廣播加密方法,包括以下步驟:
步驟一:設(shè)定廣播加密系統(tǒng)參數(shù),建立用戶集合空間、生成廣播系統(tǒng)所需的公鑰及主私鑰。
步驟二:密鑰生成中心pkg利用廣播用戶的身份信息id及步驟一中生成的系統(tǒng)公鑰與主私鑰信息,計(jì)算每個(gè)用戶的私鑰信息skid并秘密發(fā)送給用戶。
步驟三:廣播者計(jì)算廣播對(duì)稱密鑰k、廣播者與用戶私密通信的密鑰以及廣播密文頭hdr,利用密鑰為k的對(duì)稱加密算法加密廣播的信息,利用密鑰為的對(duì)稱加密算法加密廣播者與每個(gè)用戶通信的信息,而后將生成的密文信息廣播出去;該方法不僅能夠向一個(gè)接收者的用戶集合發(fā)送加密的消息,還能夠單獨(dú)的向每個(gè)用戶發(fā)送秘密的信息;此外,對(duì)具體的消息進(jìn)行加密時(shí)采用的是對(duì)稱加密,提高了加密效率。
步驟四:用戶在接收到密文信息后,若用戶屬于授權(quán)用戶集合,則可利用自身私鑰與廣播密文頭hdr恢復(fù)出廣播者與所有授權(quán)用戶的通信密鑰k與廣播者與每個(gè)用戶通信的密鑰ki,最后分別解密對(duì)應(yīng)的加密信息,恢復(fù)出明文信息。在步驟四計(jì)算廣播者與所有授權(quán)用戶的通信密鑰和廣播者與每個(gè)用戶通信的密鑰時(shí),重復(fù)利用了廣播密文頭hdr中的信息,減少密文量。
本發(fā)明方法中加解密計(jì)算過程的流程如圖1所示。
上述步驟具體操作為:
初始化(n,l):輸入?yún)?shù)生成多線性群組(g1,…,gl,…,gn+l-1),群的階為p,gi為群gi的生成元,用戶身份id∈i且身份長(zhǎng)度n,漢明重量為l<n。隨機(jī)選取γ∈zp,
私鑰生成(pk,msk,id):輸入系統(tǒng)參數(shù)和身份信息id=(id1,…,idn),計(jì)算身份id對(duì)應(yīng)的私鑰為skid=(skid1,skid2)。其中,
加密(id,pk):輸入系統(tǒng)參數(shù),身份信息id,隨機(jī)選取t∈zp計(jì)算:
而后分別利用k與kid對(duì)廣播信息與私人信息進(jìn)行對(duì)稱加密,得到對(duì)應(yīng)的密文c與cid。
解密(pk,id,sku,c,cid):輸入系統(tǒng)參數(shù),用戶私鑰,密文hdr等.計(jì)算:
用戶分別利用k與kid對(duì)廣播加密信息c與私人加密信息cid進(jìn)行對(duì)稱解密,得到其對(duì)應(yīng)的信息。
本方法是一個(gè)標(biāo)準(zhǔn)模型下抗選擇明文攻擊安全的廣播加密方法。當(dāng)攻擊者猜測(cè)密文對(duì)應(yīng)的明文信息時(shí),其猜測(cè)正確的可能性為
其猜測(cè)錯(cuò)誤的可能性為
因此,猜測(cè)正確與錯(cuò)誤的可能性相差pr[bwin]-pr′[bwin]=/2。由于ò是可以忽略的,因此猜測(cè)正確與錯(cuò)誤的可能性相同,故無(wú)法猜測(cè)出對(duì)應(yīng)的明文信息,因此本發(fā)明的方法具有極高的安全性。
方法的執(zhí)行效率具體包括計(jì)算效率和存儲(chǔ)效率兩個(gè)方面,而本發(fā)明的方法中計(jì)算效率方面,加密共用了2次對(duì)運(yùn)算,解密共用了3次模指數(shù)運(yùn)算,與其它同類方法比,本發(fā)明的方法簡(jiǎn)單高效;存儲(chǔ)效率方面,案中的密文長(zhǎng)度與用戶私鑰長(zhǎng)度均為常量、系統(tǒng)公鑰長(zhǎng)度僅為3log(n)+2,系統(tǒng)主私鑰長(zhǎng)度僅為2log(n)+2,其中n為廣播用戶的數(shù)目。因此,本發(fā)明的方法非常高效。
綜上所述,本發(fā)明的方法既安全又高效。
本發(fā)明同時(shí)滿足了機(jī)密性、抗合謀攻擊性和選擇明文攻擊安全性。綜合利用了廣播加密與密鑰封裝的方法,降低了廣播加密的密文量,拓展了廣播加密的應(yīng)用范圍。本發(fā)明適用于需保護(hù)用戶隱私的廣播系統(tǒng),如醫(yī)療系統(tǒng)、付費(fèi)電視系統(tǒng)等。不僅能夠?qū)崿F(xiàn)一對(duì)多的安全廣播加密通信的前提下,還通過向每個(gè)用戶發(fā)送秘密信息的功能提供了用戶隱私保護(hù)服務(wù)。
以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。