本發(fā)明涉及信息安全
技術(shù)領(lǐng)域:
,特別涉及一種抗選擇打開攻擊的層次身份基加密方案。
背景技術(shù):
:網(wǎng)絡(luò)化環(huán)境使得信息系統(tǒng)日趨復(fù)雜,不同的環(huán)境對安全性能的要求也不盡相同,采取的安全策略也具有多樣性。比如,在多方安全計算環(huán)境中,多個發(fā)送方會使用公鑰加密向同一個接收方發(fā)送密文信息,而這些密文多對應(yīng)的明文很可能是相互關(guān)聯(lián)的。敵人可能會進行滲透攻擊,得到某些發(fā)送方所有的信息,包括明文以及加密所用的隨機數(shù)。傳統(tǒng)的只涉及兩方通信的不可區(qū)分模型(亦可成為語義安全模型)很難保證其安全性,需要新的安全模型,以保障那些沒有受到敵手滲透的通信實體所加密信息的保密性。為了應(yīng)對這些復(fù)雜環(huán)境下的攻擊,研究者們提出了選擇打開攻擊的安全模型。選擇打開安全模型中敵手具有更強的攻擊能力,表現(xiàn)為滲透攻擊,即:敵手可以自由選擇打開哪些密文,并得到相關(guān)的明文和隨機數(shù)。相關(guān)技術(shù)中,基于傳統(tǒng)公鑰加密系統(tǒng)的選擇打開安全模型的研究較為成熟,例如2009年Bellare等提出了有損加密的方法以實現(xiàn)選擇明文安全的抗選擇打開攻擊模型,2010年Fehr等基于可否認加密算法和非承諾性加密機制、利用密文的二義性實現(xiàn)了選擇密文安全的抗選擇打開攻擊模型。應(yīng)用于身份基加密系統(tǒng)的抗選擇打開攻擊方案也日漸成熟。2010年Waters、Bellare等通過構(gòu)建1比特單邊公共打開系統(tǒng)進而實現(xiàn)了選擇明文安全的抗選擇打開攻擊模型,2014年劉勝利等以可提取單邊公共打開的身份基模型為基礎(chǔ)、實現(xiàn)了了選擇密文安全的抗選擇打開攻擊模型。然而,對于層級身份基加密系統(tǒng),相關(guān)技術(shù)中并沒有應(yīng)用于其中的抗選擇打開攻擊的安全模型,而層次身份基系統(tǒng)在日常工作與生活中更是有很多的應(yīng)用場景,比如典型的醫(yī)療系統(tǒng)、校園系統(tǒng)、大型企業(yè)等具有層級組織結(jié)構(gòu)的系統(tǒng)。這些系統(tǒng)里,高級人員可以授權(quán)低級人員并為他們分配密鑰,從而形成樹狀結(jié)構(gòu)。樹狀結(jié)構(gòu)上的每個節(jié)點對應(yīng)一位工作人員。在這樣的網(wǎng)絡(luò)環(huán)境中,當(dāng)某幾個節(jié)點(作為發(fā)送方)向另一個節(jié)點發(fā)送彼此關(guān)聯(lián)的加密信息時,同樣會面臨敵手的滲透攻擊,所以同樣需要抗選擇打開攻擊的安全模型抵御敵手攻擊。技術(shù)實現(xiàn)要素:本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題。為此,本發(fā)明的目的在于提出一種抗選擇打開攻擊的層次身份基加密方案,該方案可以克服現(xiàn)有語義安全模型的不足,簡單易實現(xiàn)。為達到上述目的,本發(fā)明實施例提出了一種抗選擇打開攻擊的層次身份基加密方案,包括以下步驟:通過定義敵手和挑戰(zhàn)者之間的游戲建立抗選擇打開攻擊的層次身份基系統(tǒng)的安全模型,所述對敵手和挑戰(zhàn)者之間的游戲進行定義包括:初始化階段:所述敵手聲明挑戰(zhàn)身份向量;系統(tǒng)建立階段:所述挑戰(zhàn)者調(diào)用參數(shù)生成算法生成公共參數(shù),并將所述公共參數(shù)發(fā)送至所述敵手;私鑰提問問詢:所述敵手向所述挑戰(zhàn)者問詢身份向量對應(yīng)的私鑰,其中,所述身份向量不能是所述初始化階段中聲明的身份向量;挑戰(zhàn)階段:所述敵手輸出要挑戰(zhàn)的身份向量、有效采樣的消息向量、公鑰參數(shù)與隨機數(shù)至所述挑戰(zhàn)者,所述挑戰(zhàn)者調(diào)用加密算法生成密文向量并返回給所述敵手;打開階段:所述敵手選擇一個集合發(fā)送至所述挑戰(zhàn)者,以便所述挑戰(zhàn)者打開相應(yīng)的密文分量得到明文和隨機數(shù),并且所述挑戰(zhàn)者隨機選擇一個比特,其中,如果比特為1,則所述挑戰(zhàn)者將打開的信息發(fā)送至所述敵手,如果比特為0,則所述挑戰(zhàn)者重新抽樣以將新的明文分量發(fā)送至所述敵手;猜測階段:所述敵手輸出一個猜測結(jié)果,如果所述猜測結(jié)果正確,則所述敵手在游戲中獲勝;通過證明具有1比特單邊打開功能、層次身份基的不可區(qū)分模型具有不可區(qū)分選擇明文攻擊的安全性來證明所述抗選擇打開攻擊的層次身份基系統(tǒng)的安全模型的安全性。本發(fā)明實施例的抗選擇打開攻擊的層次身份基加密方案,選用的抗選擇打開攻擊模型能夠有效應(yīng)對復(fù)雜網(wǎng)絡(luò)環(huán)境中多對一的通信模式,防止因攻擊者竊取了一跳鏈路的信息進而攻擊了所有鏈路、致使網(wǎng)絡(luò)癱瘓,其次,將抗選擇打開攻擊模型有效地運用到層次身份基加密系統(tǒng)中,與現(xiàn)實生活中的情景十分匹配,可應(yīng)用于大型的具有復(fù)雜等級結(jié)構(gòu)的系統(tǒng)中,簡單易實現(xiàn)。另外,根據(jù)本發(fā)明上述實施例的抗選擇打開攻擊的層次身份基加密方案還可以具有以下附加的技術(shù)特征:進一步地,在本發(fā)明的一個實施例中,構(gòu)造所述具有1比特單邊打開功能、層次身份基的不可區(qū)分模型,進一步包括:系統(tǒng)建立:根據(jù)合數(shù)階雙線性群的階數(shù)與選取的隨機數(shù)通過系統(tǒng)建立算法生成主私鑰與公鑰;私鑰生成:根據(jù)選取的隨機數(shù)通過私鑰生成算法生成第一層級的私鑰;私鑰托管:根據(jù)上一層節(jié)點的私鑰、當(dāng)前層級節(jié)點的原子身份與選取的第三隨機數(shù)通過私鑰托管算法得到當(dāng)前層級的私鑰;加密:通過加密算法對明文進行加密,以得到密文,其中,通過預(yù)設(shè)的結(jié)構(gòu)的密文對單比特為0比特的明文進行加密,而通過選取隨機數(shù)作為單比特1的密文;解密:通過解密算法對所述密文進行解密,以恢復(fù)所述明文。進一步地,在本發(fā)明的一個實施例中,還包括:對解密結(jié)果進行正確性驗證。進一步地,在本發(fā)明的一個實施例中,通過所述私鑰托管算法生成的當(dāng)前層級的私鑰形式與用所述私鑰生成算法生成的第一層級的私鑰形式保持一致。本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。附圖說明本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:圖1為根據(jù)本發(fā)明實施例的抗選擇打開攻擊的層次身份基加密方案的流程圖;圖2為根據(jù)本發(fā)明一個實施例的對敵手和挑戰(zhàn)者之間的游戲進行定義流程圖;圖3為根據(jù)本發(fā)明一個實施例的構(gòu)造具有1比特單邊打開功能、層次身份基的不可區(qū)分模型的構(gòu)造流程圖。具體實施方式下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。下面參照附圖描述根據(jù)本發(fā)明實施例提出的抗選擇打開攻擊的層次身份基加密方案。圖1是本發(fā)明實施例的抗選擇打開攻擊的層次身份基加密方案的流程圖。如圖1所示,該抗選擇打開攻擊的層次身份基加密方案包括以下步驟:在步驟S101中,通過定義敵手和挑戰(zhàn)者之間的游戲建立抗選擇打開攻擊的層次身份基系統(tǒng)的安全模型??梢岳斫獾氖?,本發(fā)明實施例利用了基于1比特單邊打開屬性的層次身份基系統(tǒng)與基于1比于雙系統(tǒng)層次身份基系統(tǒng)的安全性。具體地,首先建立抗選擇打開攻擊的層次身份基系統(tǒng)的安全模型。安全模型通常由敵手和挑戰(zhàn)者之間的游戲來定義,其中,如圖2所示,對敵手和挑戰(zhàn)者之間的游戲進行定義包括:步驟S201,初始化階段:敵手聲明挑戰(zhàn)身份向量。即言,在初始化階段中,敵手聲明一個它要攻擊的身份向量可以稱之為挑戰(zhàn)身份向量。步驟S202,系統(tǒng)建立階段:挑戰(zhàn)者調(diào)用參數(shù)生成算法生成公共參數(shù),并將公共參數(shù)發(fā)送至敵手。也就是說,在系統(tǒng)建立階段中,挑戰(zhàn)者調(diào)用參數(shù)生成算法生成公共參數(shù)(包括公鑰和主私鑰),并將公共參數(shù)發(fā)送給敵手。步驟S203,私鑰提問問詢:敵手向挑戰(zhàn)者問詢身份向量對應(yīng)的私鑰,其中,身份向量不能是初始化階段中聲明的身份向量。具體地,敵手問詢身份對應(yīng)的私鑰,挑戰(zhàn)者可以運行私鑰生成算法得到對應(yīng)的私鑰并將其發(fā)送給敵手。需要說明的是,這里的不能是挑戰(zhàn)身份向量本身以及它的前綴(即不能是挑戰(zhàn)身份向量的上級節(jié)點)。步驟S204,挑戰(zhàn)階段:敵手輸出要挑戰(zhàn)的身份向量、有效采樣的消息向量、公鑰參數(shù)與隨機數(shù)至挑戰(zhàn)者,挑戰(zhàn)者調(diào)用加密算法生成密文向量并返回給敵手。具體地,敵手向挑戰(zhàn)者輸出它要挑戰(zhàn)的身份向量以及可以有效采樣的消息向量M=(M1,M2,...,Mn)、公鑰參數(shù)與隨機數(shù)r=(r1,r2,...,rn)。挑戰(zhàn)者調(diào)用加密算法生成密文向量C=(C1,C2,...,Cn),并將其返回給敵手。步驟S205,打開階段:敵手選擇一個集合發(fā)送至挑戰(zhàn)者,以便挑戰(zhàn)者打開相應(yīng)的密文分量得到明文和隨機數(shù),并且挑戰(zhàn)者隨機選擇一個比特,其中,如果比特為1,則挑戰(zhàn)者將打開的信息發(fā)送至敵手,如果比特為0,則挑戰(zhàn)者重新抽樣以將新的明文分量發(fā)送至敵手。例如,敵手選擇一個集合發(fā)送給挑戰(zhàn)者。挑戰(zhàn)者打開相應(yīng)的密文分量得到明文和隨機數(shù)(Mk,rk)k∈K。挑戰(zhàn)者再隨機選擇一個比特b。如果b=1,挑戰(zhàn)者將打開的信息(Mk,rk)k∈K發(fā)送給敵手。如果b=0,挑戰(zhàn)者則根據(jù)M的概率分布重新抽樣,得到新的明文分量(M'k)k∈K發(fā)送給敵手。步驟S206,猜測階段:敵手輸出一個猜測結(jié)果,如果猜測結(jié)果正確,則敵手在游戲中獲勝。相當(dāng)于,敵手輸出一個猜測b'。如果敵手猜對b'=b,宣布敵手在游戲中獲勝。其次,證明上述模型的安全性。上述模型是一個多比特選擇打開攻擊模型,它的安全性最終可歸約為1比特單邊公共打開模型的安全性。所以核心點是將基于多比特、層次身份基的抗選擇打開模型的安全性歸約具有1比特單邊打開功能、層次身份基的不可區(qū)分模型的安全性。最后,構(gòu)造一個具有1比特單邊打開功能、層次身份基的不可區(qū)分模型,并證明該模型具有抗不可區(qū)分選擇明文攻擊的安全性。本發(fā)明實施例利用了雙系統(tǒng)加密方案構(gòu)造了該模型。其中,所謂雙系統(tǒng),是指密文和密鑰具有兩種形式:普通形式與半功能形式。普通形式的密鑰用于本發(fā)明的解密過程;半功能形式密鑰則用于證明模型的安全性。同時,本發(fā)明實施例所利用的雙系統(tǒng)加密方案符合1比特單邊打開系統(tǒng)對于密文的要求,即對于明文0比特的加密密文具有一個特定的結(jié)構(gòu)、該結(jié)構(gòu)可被密鑰與身份檢測出但不能被攻擊者檢測出,而對于明文1比特的加密密文則是一個隨機數(shù)、且可被逆抽樣。具體過程在下面進行詳細描述。在步驟S102中,通過證明具有1比特單邊打開功能、層次身份基的不可區(qū)分模型具有不可區(qū)分選擇明文攻擊的安全性來證明抗選擇打開攻擊的層次身份基系統(tǒng)的安全模型的安全性。需要說明的是,本發(fā)明實施例的方案的安全性可分為兩個層次進行闡述。一是將具有抗選擇打開攻擊模型的、多比特層次身份基方案的安全性歸約為具有單邊公共打開功能的、抗不可區(qū)分選擇明文攻擊模型的、1比特層次身份基方案的安全性;二是構(gòu)造了一個具有單邊公共打開屬性的、1比特層次身份基方案,該構(gòu)造的安全性歸約于通用群假設(shè)的數(shù)學(xué)困難問題,并得以證明。進一步地,在本發(fā)明的一個實施例中,如圖3所示,構(gòu)造具有1比特單邊打開功能、層次身份基的不可區(qū)分模型,進一步包括:步驟S301,系統(tǒng)建立:根據(jù)合數(shù)階雙線性群的階數(shù)與選取的隨機數(shù)通過系統(tǒng)建立算法生成主私鑰與公鑰。具體地,(PK,MSK)←Setup(λ):系統(tǒng)建立算法。合數(shù)階雙線性群的階數(shù)為N(N=p1p2p3p4),選取隨機數(shù)u11,u12,...,u1l,u4,x1,x4,ω4←ZN,并計算以及U1j,4←U1jU4、W1,4←g1W4、X14←X1X4。最終生成主私鑰MSK={g1,U11,U12,...,U1l,X1,g3}與公鑰PK={N,U11,4,U12,4,...,U1l,4,X14,W14,g4}。步驟S302,私鑰生成:根據(jù)選取的隨機數(shù)通過私鑰生成算法生成第一層級的私鑰??蛇x地,在本發(fā)明的一個實施例中,私鑰生成算法可以為KeyGen算法。具體地,私鑰生成算法。其中該算法選擇隨機數(shù)r,r3,r′3,rj+1,...,rl←ZN,計算私鑰K1=g1rg3r3,K2=(U11id1...U1jidjX1)rg3r3′,Ej+1=U1,j+1rg3rj+1,...,El=U1lrg3rl.]]>步驟S303,私鑰托管:根據(jù)上一層節(jié)點的私鑰、當(dāng)前層級節(jié)點的原子身份與選取的第三隨機數(shù)通過私鑰托管算法得到當(dāng)前層級的私鑰。進一步地,在本發(fā)明的一個實施例中,通過私鑰托管算法生成的當(dāng)前層級的私鑰形式與用私鑰生成算法生成的第一層級的私鑰形式保持一致。具體地,私鑰托管算法。其中為上一層節(jié)點的私鑰,ID為當(dāng)前層級節(jié)點的原子身份。選取隨機數(shù)私鑰托管算法如下:K1=K1′g1r′g3r~3=g1r+r′g3r3+r~3,]]>K2=K2′(U11id1...U1jidjX1)r′(Ej+1′)idj+1U1,j+1r′idj+1g3r~3′==(U11id1...U1,j+1idj+1X1)r+r′g3r3′+r~3′+rj+1idj+1,]]>Ej+2=Ej+2′U1,j+2r′g3rj+2′=U1,j+2r+r′g3rj+2+rj+2′,]]>El=El′U1,lr′g3rl′=U1,lr+r′g3rl+rl′.]]>可見,由私鑰托管算法生成私鑰是一個重新隨機化的過程,私鑰的形式與用KeyGen算法生成的私鑰在形式上保持一致。步驟S304,加密:通過加密算法對明文進行加密,以得到密文,其中,通過預(yù)設(shè)的結(jié)構(gòu)的密文對單比特為0比特的明文進行加密,而通過選取隨機數(shù)作為單比特1的密文。具體地,加密算法。對于單比特0的加密是具有一個特定的結(jié)構(gòu)的密文,而對于單比特1比特的加密則是一個隨機數(shù)。當(dāng)M=0,選取隨機數(shù)s,t4,t′4,計算密文:C1=(ΠjU1j,4idj·X14)sg4t4,C2=W14sg4t4′;]]>當(dāng)M=1,密文則是在雙線性群上隨機選取的兩個元素,即:(C1,C2)←SampG。步驟S305,解密:通過解密算法對密文進行解密,以恢復(fù)明文。具體地,解密算法。由于對明文0比特的加密密文具有一個特定的結(jié)構(gòu)、且該結(jié)構(gòu)可被密鑰與身份檢測出,而對明文1比特的加密密文是隨機的。所以解密結(jié)果也分為兩種情況:當(dāng)e(C1,K1)=e(C2,K2)時,解密結(jié)果為0比特;當(dāng)e(C1,K1)≠e(C2,K2)時,解密結(jié)果為1比特。進一步地,在本發(fā)明的一個實施例中,還包括:對解密結(jié)果進行正確性驗證。舉例而言,正確性驗證:需要驗證當(dāng)解密結(jié)果為0比特時,當(dāng)輸入正確的密文和私鑰,e(C1,K1)=e(C2,K2)本身是成立的。驗證過程如下:e(C1,K1)=e((U11id1...U1jidj·U41idj...U4jidj·X1X2)s·g4t4,g1rg3r3)=e(g1s[Σi=1j(u1iidi)+x1],g1r)·e(g1s[Σi=1j(u1iidi)+x1],g3r)·e(g4s[Σi=1j(u4iidi)+x4]+t4,g1r)·e(g4s[Σi=1j(u4iidi)+x4]+t4,g3r)=e(g1s[Σi=1j(u1iidi)+x1],g1r)=e(g1,g1)sr[Σi=1j(u1iidi)+x1];]]>e(C2,K2)=(g1sg4ω4s+t4′,(g1u11id1...g1u1jidj·g1x1)r·g3r3′)=e(g1s,g1r[Σi=1j(u1iidi)+x1])·e(g1s,g3r)·e(g4ω4s+t4′,g1r[Σi=1j(u1iidi)+x1])·e(g4ω4s+t4′,g3r3/)=e(g1s,g1r[Σi=1j(u1iidi)+x1])=e(g1,g1)sr[Σi=1j(u1iidi)+x1].]]>可見,當(dāng)密文形式正確時,解密算法用正確的私鑰可以恢復(fù)出明文。根據(jù)本發(fā)明實施例的抗選擇打開攻擊的層次身份基加密方案,選用的抗選擇打開攻擊模型能夠有效應(yīng)對復(fù)雜網(wǎng)絡(luò)環(huán)境中多對一的通信模式,防止因攻擊者竊取了一跳鏈路的信息進而攻擊了所有鏈路、致使網(wǎng)絡(luò)癱瘓,其次,將抗選擇打開攻擊模型有效地運用到層次身份基加密系統(tǒng)中,與現(xiàn)實生活中的情景十分匹配,可應(yīng)用于大型的具有復(fù)雜等級結(jié)構(gòu)的系統(tǒng)中,簡單易實現(xiàn)。當(dāng)前第1頁1 2 3