群加密方法及設(shè)備的制作方法
【專利摘要】本發(fā)明通過(guò)對(duì)接收者的公共密鑰的別名而不是公共密鑰本身進(jìn)行加密來(lái)改進(jìn)現(xiàn)有技術(shù)的群加密方案。組管理者公布在公共數(shù)據(jù)庫(kù)DB上的別名的加密、對(duì)應(yīng)的公共密鑰以及對(duì)應(yīng)的證書。別名是對(duì)公共密鑰適當(dāng)選取的函數(shù)f的得到的值,并且可以被視為是該公共密鑰的散列。由于別名可以小于公共密鑰,因此這可以使得得到的架構(gòu)的大小和成本顯著地降低。具體地,不需要將第二加密策略應(yīng)用與在接收者的公共密鑰中的群元素同樣多的次數(shù)。
【專利說(shuō)明】群加密方法及設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般涉及加密碼術(shù),更具體地,涉及群加密(group encryption)。
【背景技術(shù)】
[0002]這部分旨在向讀者介紹與在下面說(shuō)明和/或請(qǐng)求保護(hù)的本發(fā)明的各個(gè)方面相關(guān)的【技術(shù)領(lǐng)域】的各個(gè)方面。相信該論述有助于向讀者提供背景信息以便更好地理解本發(fā)明的各個(gè)方面。相應(yīng)地,應(yīng)當(dāng)理解的是,這些陳述應(yīng)當(dāng)就此而論地閱讀,而不是作為對(duì)現(xiàn)有技術(shù)的承認(rèn)。
[0003]在這部分中,定義了群加密原語(yǔ),呈現(xiàn)了必要的構(gòu)件塊(公共密鑰加密、基于標(biāo)簽的加密以及一次性簽名),并且說(shuō)明了群加密的技術(shù)現(xiàn)狀。
[0004]作為群簽名的加密模擬,Kiayias-Tsiounis-Yung提出了群加密(參見AggelosKiayias、Yiannis Tsiounis 和 Moti Yung 的《Group Encryption》,ASIACRYPT2007:181-199頁(yè))。群加密在期望隱藏在一組合法用戶中的一接收者(解密者)的情況下很有用。
[0005]示意性示例是想要將某些廣告發(fā)送給訂閱用戶的網(wǎng)絡(luò)服務(wù)提供商(NSP),其中,該訂閱用戶的配置文件(profile)與要發(fā)送的廣告相匹配。同時(shí),NSP想要在對(duì)接收者的確切身份保密的同時(shí),向其客戶(亦即,付款給該NSP來(lái)發(fā)送廣告的公司)證明其確實(shí)在其用戶組內(nèi)發(fā)送了討論的廣告。廣告的接收者的隱私也應(yīng)當(dāng)保留在該NSP的用戶組之內(nèi)。
[0006]群加密形成解決該問(wèn)題的看上去合理的方案,因?yàn)槠湓试S發(fā)送者(在該示例中的NSP)對(duì)給目標(biāo)用戶的消息(廣告)進(jìn)行加密,另外,使驗(yàn)證者能夠檢查形成的密文是有效的(例如,檢查對(duì)應(yīng)的明文滿足某種關(guān)系)并且用戶組中的某匿名成員能夠?qū)ζ溥M(jìn)行解密。群加密還支持如下功能:在發(fā)生糾紛的情況下,由指定的權(quán)威機(jī)構(gòu)打開密文并且往下恢復(fù)(recover down)接收者的身份。
[0007]更形式化地,群加密(GE)方案涉及注冊(cè)組成員的組管理者以及能夠從對(duì)應(yīng)的密文恢復(fù)接收者的身份的開放型權(quán)威機(jī)構(gòu)(OA)。
[0008]構(gòu)成GE方案基礎(chǔ)的主要過(guò)程有:
[0009]?Join。GM與可能的組成員之間的交互式協(xié)議。GM發(fā)布關(guān)于組成員的公共密鑰Pki的證書certit) GM還在公共數(shù)據(jù)庫(kù)DB中存儲(chǔ)(pk” Certi)對(duì)。
[0010].Encrypt0在目標(biāo)組成員的公共密鑰pk下關(guān)于輸入標(biāo)簽t生成輸入消息m上的密文C,其中,標(biāo)簽是指定加密上下文的二進(jìn)制串。為了防止發(fā)送偽造的消息,要求要加密的消息m滿足某一先驗(yàn)關(guān)系:m是關(guān)于關(guān)系R的“實(shí)例”x(公共值)的“證據(jù)(witness)”,亦即,(m, X) e R0在這個(gè)意義上說(shuō),Encrypt還輸出與經(jīng)加密的證據(jù)相對(duì)應(yīng)的實(shí)例X。
[0011] ?Decrypt。關(guān)于輸入標(biāo)簽t使用與公共密鑰pk相對(duì)應(yīng)的私有密鑰sk恢復(fù)被加密成輸入密文c的消息m,其中,密文是用公共密鑰pk創(chuàng)建的。該過(guò)程還檢查被恢復(fù)的消息是否是輸入實(shí)例X的證據(jù),亦即,是否(m,x) e R0如果是這種情況,則算法輸出m,否則輸出“失敗(Fail)”。[0012]?Open。輸入密文c、標(biāo)簽t和OA的私有密鑰,并且恢復(fù)公共密鑰pk,其中,密文是關(guān)于輸入標(biāo)簽t在該公共密鑰pk下創(chuàng)建的。
[0013].Ρι.0νθ。從創(chuàng)建密文的實(shí)體向任何驗(yàn)證者提供交互式或非交互式的證明。應(yīng)當(dāng)使驗(yàn)證者確信討論的密文是有效的(例如,底層消息滿足關(guān)系R)并且某匿名注冊(cè)組成員可以對(duì)其進(jìn)行解密。
[0014]公共密鑰加密(PKE)方案包含產(chǎn)生(公共密鑰,私有密鑰)形式的對(duì)的密鑰產(chǎn)生算法、使用接收者的公共密鑰生成輸入消息的加密的加密算法以及使用適當(dāng)?shù)乃接忻荑€恢復(fù)被加密成輸入密文的消息的解密算法。
[0015]無(wú)論對(duì)于加密還是對(duì)于解密,基于標(biāo)簽的加密方案(TBE)都進(jìn)一步地需要另一參量(argument),即標(biāo)簽。非形式化地,標(biāo)簽是指定關(guān)于加密的信息(日期、上下文等)的適當(dāng)長(zhǎng)度的二進(jìn)制串。
[0016]一次性數(shù)字簽名方案可以用于對(duì)至多一條消息進(jìn)行簽名;否則,簽名就可以被偽造。經(jīng)簽名的每條消息均需要新的公共密鑰。如同“正常的”數(shù)字簽名一樣,用密鑰產(chǎn)生算法、簽名算法以及驗(yàn)證算法來(lái)定義它們。指定公共密鑰,一次性簽名方案的安全性依賴于提供消息和對(duì)應(yīng)簽名的新的有效對(duì)的困難程度。
[0017]上文提到的Kiayias-Tsiounis-Yung的論文提供了一種用于安全的群加密方案的通用架構(gòu),該方案使用用于認(rèn)證用戶公共密鑰的數(shù)字簽名方案S、用于對(duì)消息進(jìn)行加密的基于標(biāo)簽的加密方案E1、用于對(duì)接收者公共密鑰進(jìn)行加密的另一基于標(biāo)簽的加密方案E2以及用于對(duì)所用密鑰及 其證書進(jìn)行承諾的承諾方案(commitment scheme)。更詳細(xì)地,該方案工作如下:
[0018].Join。GM使用其私有簽名密鑰S.sk生成關(guān)于用戶的公共密鑰pk的簽名s (換言之,證書)。GM還將(pk,s)存儲(chǔ)在公共數(shù)據(jù)庫(kù)DB中。
[0019].Encrypt {pk} (m, t)。為了關(guān)于標(biāo)簽t使用公共密鑰pk為接收者對(duì)消息m進(jìn)行加密(使得(m,x) e R,其中,X是公共值),愛麗絲:
[0020]〇創(chuàng)建關(guān)于pk的承諾C3以及關(guān)于證書的承諾C4 ;
[0021]〇關(guān)于標(biāo)簽(t, C3, C4)在開放型權(quán)威機(jī)構(gòu)的公共密鑰pkQA下使用E2.Encrypt對(duì)pk進(jìn)行加密,得到結(jié)果c2;
[0022]〇關(guān)于標(biāo)簽(t, C2, C3, C4)在公共密鑰pk下使用E1.Encrypt對(duì)m進(jìn)行加密,得到結(jié)果C1 ;
[0023]〇返回元組(C1, C2, c3,C4)作為關(guān)于t的在pk下的m的群加密。
[0024].Decrypt{sk} (c, t, x)。首先,將 c 解析為(C1, c2, c3, C4);然后,針對(duì) C1 和(t, C2, C3, C4)使用私有密鑰sk調(diào)用E1.Decrypt ;如果(m, x) e R,則返回結(jié)果,即m,否則返回“失敗”。
[0025]籲Open{伽、}(c,i)。首先,將c 解析為(Cl, c2, c3, c4);然后,對(duì) C2 和(t, c3, C4)使用OA的私有密鑰skOA調(diào)用E2.Decrypt并返回結(jié)果。
[0026].Prove (c, t, X)。愛麗絲,即創(chuàng)建了密文c = (C1, c2, c3, C4)的實(shí)體,關(guān)于標(biāo)簽t提供如下證明:該密文是有效的并且可以用與公共密鑰相對(duì)應(yīng)的私有密鑰進(jìn)行解密,其中,公共密鑰被加密成C2并在C3中承諾,公共密鑰的證書在C4中承諾。愛麗絲還證明隱藏在密文下面的消息是關(guān)于公開關(guān)系(public relation)R的X的證明。愛麗絲使用用于產(chǎn)生C的私有幣(private coins)(亦即,用于產(chǎn)生承諾C3和C4以及加密C1和C2的隨機(jī)值)以提供以上證明。
[0027]Cathalo-Libert-Yung提供了群加密方案的具體實(shí)現(xiàn)(參見Julien Cathalo、Benoit Libert、Moti Yung 的《Group Encryption:Non-1nteractive Realization inthe Standard Model》,ASIACRYPT2009:179-196 頁(yè))。該方案使用 Shacham 的加密方案(參見 Hovav Shacham 的《A Cramer-Shoup Encryption Scheme from the LinearAssumption and from Progressively Weaker Linear Variants)), Cryptology ePrintArchive,報(bào)告2007/074)對(duì)消息進(jìn)行加密,并使用Kiltz的加密(參見Eike Kiltz的《Chosen-Ciphertext Security from Tag-Based Encryption)), TCC2006:581-600 頁(yè))對(duì)接收者的公共密鑰進(jìn)行加密。該解決方案通過(guò)將承諾C3和C4推遲(waive)至在Prove過(guò)程下面的證明中,從而脫離由Kiayias-Tsiounis-Yung提供的架構(gòu)。 [0028]更精確地,如果S指代在論文中給出的數(shù)字簽名方案,OTS指代任何安全的一次簽名方案,[Kiltz]指代Kiltz的加密方案,并且[Shacham]指代Shacham的加密方案,則將該方案定義為:
[0029].Join關(guān)于輸入公共密鑰pk,GM使用其私有簽名密鑰S.sk生成簽名(或證書)并且將(pk,cert)存儲(chǔ)在公共數(shù)據(jù)庫(kù)DB中。
[0030].Encrypt{pk} (m, t)為了關(guān)于標(biāo)簽t使用公共密鑰pk為接收者對(duì)消息m進(jìn)行加密(其中,m是某(X,y)的Diffie-Hellman解:e(m, g) = e (x, y),其中,e是在消息空間G下的配對(duì),g是該群的產(chǎn)生器(generator)),愛麗絲:
[0031]〇調(diào)用OTS.keygen產(chǎn)生一對(duì)簽名密鑰和驗(yàn)證密鑰(OTS.sk, OTS.vk);
[0032]O 倉(cāng)lJ 建 C1 = [Schacham].Encrypt{pk} (m, (OTS.vk, t))以及 C2 = [Kiltz].Encrypt{pk0A} (pk, OTS.vk)。用于C1的標(biāo)簽是(OTS.vk, t),用于C2的標(biāo)簽是驗(yàn)證密鑰0TS.sk ;
[0033]〇使用OTS.sk 生成(C1, C2, t)上的一次性簽名;s = OTS.Sign{OTS.sk} (C1, c2, t);
[0034]〇返回c = (C1, c2, OTS.vk, s)作為關(guān)于t的在pk下的m的群加密。
[0035].Decrypt {sk} (c, t, x, y)
[0036]〇將c 解析為(C1, c2, OTS.vk, s);
[0037]〇關(guān)于OTS.vk 檢查在(ci,c2,t)上的簽名 s ;如果 OTS.Verify{QTS.vk}(s, (cl,c2,t)) = O,則返回“失敗”,否則計(jì)算[Shacham].Decrypt{sk} (C1, (OTS.vk, t):如果其是(x,y)的Diffie-Hellman解,則返回計(jì)算出的值,否則返回“失敗”。
[0038].0pen{skoA} (c, t)
[0039]〇將c 解析為(C1, C2, OTS.vk, s);
[0040]〇關(guān)于OTS.vk檢查(C1, C2, t)上的簽名 s ;如果 OTS.Verify{0TS vk} (s, (C1, c2, t))=O,則返回“失敗”,否則調(diào)用[Kiltz].Decrypt{skQA} (c2, OTS.vk)并返回其結(jié)果。
[0041].Prove (c, t, X,y)。愛麗絲,即關(guān)于標(biāo)簽t創(chuàng)建了密文c的實(shí)體,提供如下非交互式的證明:c是良構(gòu)的,并且具有經(jīng)認(rèn)證的公共密鑰的某匿名成員可以對(duì)其進(jìn)行解密。
[0042]由Kiayias-Tsiounis-Yung 和 Cathalo-Libert-Yung 提供的方案通過(guò)使用滿足強(qiáng)安全性概念的加密方案(亦即,針對(duì)強(qiáng)大敵手比較安全的加密方案)對(duì)該架構(gòu)進(jìn)行實(shí)例化來(lái)得到安全的群加密。根據(jù)使用的構(gòu)件塊,得到的實(shí)現(xiàn)比較如下:[0043]1.Kiayias-Tsiounis-Yung:他們的通用架構(gòu)的實(shí)例化得到使用1024比特模量的大小為2.5kB的密文以及大小為70kB的證明。而且,該證明需要與驗(yàn)證者之間的交互,因此,如果證明者想要將相同的證明運(yùn)行若干次,則她需要記住用于產(chǎn)生密文的所有隨機(jī)性。
[0044]2.Cathalo-Libert-Yung改進(jìn)上述方案;其得到更小的密文(使用256比特模量的1.25kB)和更小的證明(16.125kB)。而且,該證明具有非交互式的優(yōu)點(diǎn),因此不需要有狀態(tài)的證明者(stateful prover)。然而,該證明使用開銷很大的Groth-Sahai證明系統(tǒng),該系統(tǒng)需要數(shù)百或數(shù)千個(gè)配對(duì)等式驗(yàn)證,這使其變得相當(dāng)不實(shí)用。
[0045]因此,技術(shù)人員將認(rèn)識(shí)到,由于密文和證明的大小或代價(jià),無(wú)論是Kiayias-Tsiounis-Yung 還是 Cathalo-Libert-Yung 的開銷都仍然相當(dāng)大。
[0046]例如,無(wú)論是Kiayias-Tsiounis-Yung 還是 Cathalo-Libert-Yung 均米取對(duì)公共密鑰的每個(gè)成分(公共密鑰總是包括群元素的矢量)進(jìn)行加密,因此將開銷同樣大的(就資源使用而言)加密(“E2”或[Kiltz])應(yīng)用η次,其中,η表示在接收者的公共密鑰中的元素的數(shù)量。
[0047]技術(shù)人員將意識(shí)到,需要一種提供改進(jìn)的GE方案的解決方案。本發(fā)明就提供這樣的解決方案。
【發(fā)明內(nèi)容】
[0048]第一方面,本發(fā)明涉及一種關(guān)于標(biāo)簽t為接收者使用公共密鑰pk對(duì)明文m進(jìn)行群加密以得到密文c的方法。一種設(shè)備,得到簽名密鑰OTS.sk和驗(yàn)證密鑰OTS.vk ;通過(guò)計(jì)算C1 = E1.Encrypt {pk} (m, OTS.vk)和 c2 = E2.Encrypt {pk0A} (f (pk),OTS.vk)來(lái)創(chuàng)建第一加密值C1和第二加密值C2,其中,E1是第一加密算法,E2是第二加密算法,并且f是映射函數(shù);使用所述簽名密鑰OTS.sk通過(guò)計(jì)算S = OTS.Sign{QTS.sk} (C1, c2, t)來(lái)生成所述第一加密值C1、所述第二加密值C2和所述標(biāo)簽t上的簽名S,其中,OTS.Sign是簽名算法;并且,輸出所述密文C,其中,所述密文C包含所述第一加密值C1、所述第二加密值C2、所述驗(yàn)證密鑰OTS.vk以及所述簽名S。
[0049]在第一優(yōu)選實(shí)施例中,消息m滿足可公開驗(yàn)證的關(guān)系R。
[0050]第二方面,本發(fā)明涉及一種對(duì)包含第一加密值C1、第二加密值C2、驗(yàn)證密鑰OTS.vk和簽名S的群加密C進(jìn)行解密的方法,其中,所述簽名S關(guān)于所述第一加密值C1、所述第二加密值C2和標(biāo)簽t。一種設(shè)備,接收所述群加密c ;關(guān)于驗(yàn)證密鑰OTS.vk驗(yàn)證所述簽名s ;并且,如果成功地驗(yàn)證了所述簽名S,則使用解密算法E1和所述驗(yàn)證密鑰OTS.vk對(duì)所述第一加密值C1進(jìn)行解密。
[0051]在第一優(yōu)選實(shí)施例中,驗(yàn)證簽名還包含驗(yàn)證所述第一加密值C1的解密滿足公開關(guān)系R。
[0052]第三方面,本發(fā)明涉及一種用于關(guān)于標(biāo)簽t為接收者使用公共密鑰pk對(duì)明文m進(jìn)行群加密以得到密文c的設(shè)備。該設(shè)備包含處理器,該處理器被配置為:得到簽名密鑰0TS.sk 和驗(yàn)證密鑰 OTS.vk ;通過(guò)計(jì)算 C1 = E1.Encrypt{pk} (m, OTS.vk)和 c2 = E2.Encrypt{pk0A}(f(pk),0TS.vk)來(lái)創(chuàng)建第一加密值C1和第二加密值c2,其中,E1是第一加密算法,E2是第二加密算法,并且f是映射函數(shù);使用所述簽名密鑰OTS.sk通過(guò)計(jì)算s = OTS.Sign{0TS.sk}(C1, C2, t)來(lái)生成所述第一加密值C1、所述第二加密值C2和所述標(biāo)簽t上的簽名S,其中,OTS.Sign是簽名算法;并且,輸出所述密文C,其中,所述密文C包含所述第一加密值C1、所述第二加密值C2、所述驗(yàn)證密鑰OTS.vk以及所述簽名S。
[0053]在第一優(yōu)選實(shí)施例中,消息m滿足可公開驗(yàn)證的關(guān)系R。
[0054]第四方面,本發(fā)明涉及一種用于對(duì)包含第一加密值C1、第二加密值C2、驗(yàn)證密鑰OTS.vk和簽名s的群加密c進(jìn)行解密的設(shè)備,其中,所述簽名s關(guān)于所述第一加密值C1、所述第二加密值C2和標(biāo)簽t。該設(shè)備包含處理器,該處理器被配置為:接收所述群加密c ;關(guān)于驗(yàn)證密鑰OTS.vk驗(yàn)證所述簽名s ;并且,如果成功地驗(yàn)證了所述簽名S,則使用解密算法E1和所述驗(yàn)證密鑰OTS.vk對(duì)所述第一加密值C1進(jìn)行解密。
[0055]在第一優(yōu)選實(shí)施例中,所述處理器還驗(yàn)證所述第一加密值C1的解密滿足公開關(guān)系R0
[0056]第五方面,本發(fā)明涉及一種計(jì)算機(jī)程序產(chǎn)品,在其上存儲(chǔ)在被處理器執(zhí)行時(shí)實(shí)施第一方面的方法的指令。
[0057]第六方面,本發(fā)明涉及一種計(jì)算機(jī)程序產(chǎn)品,在其上存儲(chǔ)在被處理器執(zhí)行時(shí)實(shí)施第二方面的方法的指令。
【專利附圖】
【附圖說(shuō)明】
[0058]現(xiàn)在將參考附圖通過(guò)非限制性的示例來(lái)說(shuō)明本發(fā)明的優(yōu)選特征,附圖中:
[0059]圖1示出了根據(jù)本發(fā)明的優(yōu)選實(shí)施例的群加密系統(tǒng)。 【具體實(shí)施方式】
[0060]本發(fā)明的主要的發(fā)明思想是對(duì)接收者的公共密鑰的別名(alias)而不是公共密鑰本身進(jìn)行加密。組管理者(GM)在公共數(shù)據(jù)庫(kù)DB中公布公共密鑰、對(duì)應(yīng)的別名的加密和證書。別名是應(yīng)用在公共密鑰上的適當(dāng)選取的映射函數(shù)f得到的值。
[0061]優(yōu)選地,使用函數(shù)f的計(jì)算是易于實(shí)施的,優(yōu)選地,該函數(shù)減小輸入的大小,并且兩個(gè)不同的輸入值不應(yīng)當(dāng)?shù)玫皆跀?shù)據(jù)庫(kù)DB中的同一條目。可以將映射函數(shù)f說(shuō)成是一種無(wú)沖突的(collision resistant)散列函數(shù),通過(guò)使得組管理者通過(guò)例如對(duì)新消息進(jìn)行隨機(jī)化直至其在數(shù)據(jù)庫(kù)中的條目是獨(dú)一無(wú)二的為止來(lái)確保該特性。
[0062]因?yàn)閯e名可以小于公共密鑰,所以這可以使得到的架構(gòu)的大小和成本顯著地降低。具體地,不需要將第二加密方案應(yīng)用與在接收者的公共密鑰中的群元素同樣多的次數(shù)。
[0063]然而,缺點(diǎn)是:在Open過(guò)程中,需要開放型權(quán)威機(jī)構(gòu)OA在數(shù)據(jù)庫(kù)DB中查找別名的原象(公共密鑰)。幸運(yùn)的是,求助于Open過(guò)程的情況出現(xiàn)得非常少;亦即,僅在發(fā)生糾紛的情況下。
[0064]本發(fā)明的群加密方案使用多個(gè)構(gòu)件塊(將稍后在說(shuō)明書中給出示例):
[0065]?加密方案:使用兩個(gè)加密方案EjP E2。必須注意的是,為了本發(fā)明的目的,EjPE2是弱安全的就足夠了,定義如下:
[0066]弱安全的加密方案是一種未達(dá)到“最高的”安全性概念的方案。E1的正確的安全性概念是指在選擇性標(biāo)簽弱選擇密文攻擊(selective tag weak chosen ciphertextattack)下是不可區(qū)分的且匿名的(IND-st-wCCA以及AN0-st-wCCA)。對(duì)于E2,僅要求IND-st-wCCA 安全性。[0067]這兩種安全性概念都使安全性目標(biāo)(IND或ΑΝ0)與攻擊模型(st_wCCA)相結(jié)合。
[0068]非形式化地,不可區(qū)分性(IND)目標(biāo)表示難以從密文得到關(guān)于消息的信息。匿名性(ANO)是指難以從密文推斷出關(guān)于公共密鑰的信息。
[0069]關(guān)于攻擊模型st-wCCA,其指代如下場(chǎng)景:攻擊者提前(在接收質(zhì)詢公共密鑰之前)承諾她希望被質(zhì)詢的標(biāo)簽,而她不被允許發(fā)出涉及該質(zhì)詢標(biāo)簽的解密查詢。
[0070]?簽名或認(rèn)證方案:使用對(duì)群元素進(jìn)行簽名的簽名方案。一種適合的候選是保留結(jié)構(gòu)的簽名方案S,亦即,一種驗(yàn)證密鑰、消息和簽名是群元素,并且驗(yàn)證算法包括配對(duì)等式驗(yàn)證的謂詞(predicate)的方案。
[0071]?一次性簽名方案:使用安全的一次性簽名OTS。
[0072]?關(guān)系R:使用可公開驗(yàn)證的關(guān)系。
[0073] 函數(shù)f:使用可高效計(jì)算(能夠在輸入的大小的多項(xiàng)式時(shí)間內(nèi)進(jìn)行評(píng)估)的函數(shù)
fo
[0074]使用這些構(gòu)件塊,可以將該方案構(gòu)造如下:
[0075].Join。關(guān)于輸入的公共密鑰pk,GM除了使用S.sk(S是所使用的認(rèn)證方案)計(jì)算關(guān)于pk的簽名(或證書)cert之外還計(jì)算f (pk)。GM還將(pk, f (pk),cert)存儲(chǔ)在公共數(shù)據(jù)庫(kù)DB中。注意,GM可以進(jìn)行簡(jiǎn)單的測(cè)量以避免沖突,亦即,避免使用f將兩個(gè)不同的公共密鑰Pk和pk’映射成相同的值。將在下文詳細(xì)說(shuō)明一種在使用具體函數(shù)f的情況下的可能的測(cè)量。
[0076].Encrypt{pk} (m, t)。為了關(guān)于標(biāo)簽t使用公共密鑰pk為接收者對(duì)消息m(該消息是關(guān)于已知的關(guān)系R的某X的證據(jù))進(jìn)行加密,實(shí)體:
[0077]?調(diào)用OTS.keygen產(chǎn)生一對(duì)簽名密鑰和驗(yàn)證密鑰(OTS.sk, OTS.vk)。
[0078]?創(chuàng)建(C1, c2) = (E1.Encrypt {pk} (m, OTS.vk),E2.Encrypt {pk0A} (f (pk, OTS.vk))。應(yīng)當(dāng)注意的是,將OTS.vk視為標(biāo)簽。
[0079]?使用 OTS.sk 生成(C1, C2, t)上的簽名;s = OTS.Sign{OTS.sk} (C1, c2, t)。
[0080]?返回c = (C1, c2, OTS.vk, s)作為關(guān)于t的在pk下的m的群加密。
[0081].Decrypt {sk} (c, t, x) ?
[0082]?將 c 解析為(C1, c2, OTS.vk, s)。
[0083]?關(guān)于 OTS.vk驗(yàn)證在(C1, c2, t)上的簽名 S。如果 OTS.Verify{0TS vk} (s, (C1, c2, t))=O,則返回“失敗”,否則計(jì)算E1.Decrypt{sk} (C1, OTS.vk):如果它是關(guān)于關(guān)系R的x的證據(jù),則返回計(jì)算出的值,否則返回“失敗”。
[0084].0pen{skoA} (c, t)。
[0085]?將 c 解析為(C1, C2, OTS.vk, s)。
[0086]籲關(guān)于OTS.vk 驗(yàn)證(C1, c2,t)上的簽名 S。如果 OTS.Verify{QTS.vk} (s, (c1; c2, t))=O,則返回“失敗”;否則調(diào)用E2.Decrypt{sk0A} (c2, OTS.vk),其返回值F。
[0087]?關(guān)于函數(shù)f在DB中查找值F的原象,并返回該搜索的結(jié)果。
[0088].Prove (c, t, X)。關(guān)于標(biāo)簽t創(chuàng)建了密文c的實(shí)體使用用于產(chǎn)生c = (C1, c2,0TS.vk, S)的隨機(jī)幣提供下面的證明:
[0089]?關(guān)于標(biāo)簽OTS.vk的在某公共密鑰pk下的隱藏在C1下面的消息的知識(shí)的證明,并且證明該消息是關(guān)于關(guān)系R的X的證據(jù)。[0090].關(guān)于標(biāo)簽OTS.vk的在密鑰pkM下的C2的解密的知識(shí)的證明,并且證明該解密是函數(shù)f關(guān)于Pk的值。
[0091]?關(guān)于pk的證書cert的知識(shí)的證明。
[0092]某些類的簽名和加密方案使這些證明的高效的性能成為可能。
[0093]對(duì)于非交互式的證明,優(yōu)選地使用接受討論的證據(jù)的知識(shí)的高效的非交互式證明的成分(例如,在簽名/加密方案的情況下的消息或密鑰,在函數(shù)f的情況下的原象,或者在關(guān)系R的情況下的證據(jù)),諸如兼容Groth-Sahai (Jens Groth、Amit Sahai的《EfficientNon-1nteractive Proof Systems for Bilinear Groups》。 EUR0CRYPT2008:415-432)的密碼系統(tǒng)。在這個(gè)意義上說(shuō),可以使用所謂的自同構(gòu)簽名(亦即,驗(yàn)證密鑰消息和得到的簽名是群元素并且驗(yàn)證算法包括配對(duì)乘積等式的邏輯乘積(conjunction)的簽名方案)以及加密算法對(duì)輸入實(shí)施群運(yùn)算或配對(duì)運(yùn)算的加密方案(這需要消息、公共密鑰和密文是群元素)。函數(shù)f還對(duì)輸入實(shí)施群運(yùn)算(在雙線性群的情況下實(shí)施配對(duì)運(yùn)算)。同樣的情形適用于關(guān)系R。
[0094]同樣地,優(yōu)選使用接受證據(jù)的高效的交互式的證明的成分。在這個(gè)意義上說(shuō),優(yōu)選使用如下簽名方案:給出消息M上的簽名σ,使得能夠定義同態(tài)函數(shù)化使得供(&Μ)的計(jì)算結(jié)果為g(R,vk),其中, vk是驗(yàn)證密鑰,g是公共密鑰,并且(S,R)是從σ轉(zhuǎn)換的對(duì),其中R不泄露關(guān)于σ或M的信息,S是簽名的“極為重要”的部分;隱含的作為基礎(chǔ)的轉(zhuǎn)換算法被稱為CONVERT算法。優(yōu)選地,還使用接受關(guān)于指定的密鑰和指定的標(biāo)簽的解密的正確性的高效的證明的加密方案。而且,用于對(duì)公共密鑰進(jìn)行加密的方案(E2)應(yīng)該關(guān)于消息是同態(tài)的,方案E1應(yīng)該關(guān)于公共密鑰和消息這兩者是同態(tài)的。另外,加密方案E1配有被稱為COMPUTE算法的算法,該算法對(duì)輸入關(guān)于指定標(biāo)簽t的在公共密鑰pk下的對(duì)消息m的加密C1生成關(guān)于相同的標(biāo)簽t的在另一公共密鑰pk’下的對(duì)另一消息m’的另一加密c’ i,使得C1和C’ I的組合(composition)等于關(guān)于標(biāo)簽t的在pk和pk’的組合下的對(duì)m和m’的組合的加密,其中,需將組合理解為施加準(zhǔn)備所涉及的元素所屬的集合的代數(shù)群運(yùn)算。而且,優(yōu)選地,函數(shù)f是同態(tài)函數(shù)(適用于兩個(gè)輸入的組合的f是這兩個(gè)輸入的f的值的組合)。同樣地,指定實(shí)例X,關(guān)系R應(yīng)當(dāng)能夠定義同態(tài)函數(shù)F_R和像I,使得F_R(w) = I,其中,w是與實(shí)例X相對(duì)應(yīng)的證據(jù)。
[0095]與本發(fā)明一起使用的優(yōu)選簽名方案是由Masayuki Abe、Georg Fuchsbauer、JensGroth、Kristiyan Haralambiev和 Miyako Ohkubo在〈〈Structure-Preserving Signaturesand Commitments to Group Elements》(CRYPTO2010:2O9-236 頁(yè))中提出的方案。
[0096]與本發(fā)明一起使用的優(yōu)選加密方案是由David Cash、Eike Kiltz和VictorShoup 在《The Twin Diffie-Hellman Problem and Applications》 (Journal ofCryptology22(4):470-504頁(yè),2009年)提供的弱安全的基于標(biāo)簽的變型。
[0097]如果公共密鑰是η維矢量的群元素,則優(yōu)選函數(shù)f如下:
[0098].f:Gn — G
[0099]{XXn) — Χ ..Xan"
[0100]其中,(G,.)是具有階某d的群,η是某整數(shù),并且a1;……,&11是乙中的公共元素,亦即,以d為模的整數(shù)的集合。然后,函數(shù)f將群G中的η個(gè)元素的元組映射成在群G中的元素。
[0101]關(guān)于f的這種選擇,GM可以通過(guò)對(duì)公共密鑰進(jìn)行系統(tǒng)的隨機(jī)化來(lái)避免沖突。更精確地,GM考慮在指數(shù)群Zd中的隨機(jī)r = (r1;…,rn)來(lái)對(duì)pk進(jìn)行隨機(jī)化以避免函數(shù)f的沖
突;pk = [Xi,..., X11) I pk' = (A7 JC)。GM還公布r以使接收者能夠相應(yīng)地更新其私有密
鑰,這只在Xi = 時(shí)才可行,其中,gi是G的已知的產(chǎn)生器,Xi是與Xi相對(duì)應(yīng)的私有密鑰。對(duì)新計(jì)算出的公共密鑰計(jì)算證書,并將證書與密鑰及其別名一起存儲(chǔ)在DB中。
[0102]最后,優(yōu)選的關(guān)系R是(H.V)e況O e(m,P)^ ?\χ, \?,其中,e是在域GXH(G和H是密碼雙線性群)內(nèi)的高效配對(duì),P是H中的固定元素。
[0103]使用公共密鑰pk為接收者產(chǎn)生了密文c的證明者與任何驗(yàn)證者之間的交互式的Prove協(xié)議以三個(gè)階段進(jìn)行:承諾、質(zhì)詢和響應(yīng)。在承諾階段,證明者在輸入組管理者的公共密鑰S.pk、公共pk和對(duì)應(yīng)的證書時(shí)運(yùn)行CONVERT算法以得到對(duì)(S,R)。證明者還在輸入C1時(shí)運(yùn)行COMPUTE算法并得到元組(pk’,m’,c’ J。接下來(lái),證明者計(jì)算F’ = f (pk’ )、I’_R = F_R(m’)以及/’=供00。最后,證明者計(jì)算作為在公共密鑰?1^下的?’的加密
的c’2。證明者將元組(R,I’,I’_R,c’2)發(fā)送給驗(yàn)證者。在質(zhì)詢階段,在接收該元組時(shí),驗(yàn)證者隨機(jī)地選擇整數(shù)b并且計(jì)算I = g(R,S.pk)和I_R,使得F_R(m) = I_R。驗(yàn)證者將質(zhì)詢b發(fā)送給證明者。在接收該質(zhì)詢時(shí),證明者計(jì)算并發(fā)送值z(mì)s、Zpk> Zm以及Zf,其中,Zpk是pk’和Pkb的組合,Zs是S’和Sb的組合,Zffl是m’和mb的組合,并且Zf是F’和Fb的組合。最后,證明者證明如下知識(shí):(PoKl)V1和Clb的組合是關(guān)于標(biāo)簽t的在公共密鑰Zpk下的Zni的加密;以及,(PoK2) c’ 2和c2b的組合是關(guān)于標(biāo)簽t的在公共密鑰pk0A下的zF的加密。在協(xié)議的結(jié)束,如果⑴等于I’和Ib的組合,(2)F_R(zm)是I’ _R和Ib_R的組合,(3)f (Zpk)等于zF,并且(4)PoKl和PoK2是有效的,則驗(yàn)證者接受。技術(shù)人員將觀察到,當(dāng)使用優(yōu)選的加密方案進(jìn)行實(shí)例化時(shí),知識(shí)證明PoKl和ΡοΚ2歸結(jié)為示出離散對(duì)數(shù)的相等性;其高效的方法可以根據(jù) Claus P.Schnorr 的《Efficient signature generationbysmart cards》(Journal of Cryptolopy,4(3): 161-179 頁(yè),1991 年)的開創(chuàng)性工作得到。另外參見 Jan Camenisch 的〈〈Group signature schemes and payment systems basedon the discrete logarithm problem》(博士論文,信息安全和密碼學(xué)ETH系列第2卷,Hartung-Gorre Verlag,1998 年(ISBN3-89649-286-1))。
[0104]圖1示出用于根據(jù)本發(fā)明的優(yōu)選實(shí)施例的群加密的系統(tǒng)100。為了便于說(shuō)明和理解,省略了在該系統(tǒng)中的設(shè)備之間的連接。
[0105]系統(tǒng)100包含發(fā)送器110和接收器120,其中每一個(gè)均包含:被配置為與其他設(shè)備通信的至少一個(gè)接口單元111、121、至少一個(gè)處理器(“處理器”)112、122以及被配置為存儲(chǔ)數(shù)據(jù)(如累加器和中間計(jì)算結(jié)果)的至少一個(gè)存儲(chǔ)器113、123。系統(tǒng)100還包含組管理者130、數(shù)據(jù)庫(kù)14 0、第三方150以及開放型權(quán)威機(jī)構(gòu)160 ;雖然為了清楚而未示出,但是這些設(shè)備中的每一個(gè)均包含諸如處理器和存儲(chǔ)器這樣的必要的硬件。
[0106]發(fā)送器110的處理器112被配置為實(shí)施本發(fā)明的群加密方案的Encrypt和Prove部分,接收器120的處理器122適用于對(duì)接收的群加密進(jìn)行解密,亦即,實(shí)施Decrypt。組管理者130被配置為實(shí)施Join部分,從而將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)140中。第三方150被配置為驗(yàn)證由發(fā)送器提供的證明,并且開放型權(quán)威機(jī)構(gòu)160被配置為實(shí)施群加密方案的Open部分。諸如⑶-ROM或DVD這樣的第一計(jì)算機(jī)程序產(chǎn)品114包含存儲(chǔ)的指令,該指令在由發(fā)送器110的處理器112執(zhí)行時(shí)實(shí)施根據(jù)本發(fā)明的Encryption和Prove。第二計(jì)算機(jī)程序產(chǎn)品124包含存儲(chǔ)的指令,該指令在由接收器120的處理器122執(zhí)行時(shí)實(shí)施根據(jù)本發(fā)明的Decrypt ο
[0107]技術(shù)人員將意識(shí)到,與現(xiàn)有技術(shù)方案相比,本發(fā)明的群加密方案可以使大小和成本顯著地降低。例如,如果本發(fā)明的GE方案使用以下進(jìn)行實(shí)例化,則得到0.4kB的密文(而不是現(xiàn)有技術(shù)中的L 25kB或2.5kB):
[0108]?由 MasaYuki Abe> Georg Fuchsbauer、Jens Groth、Kristiyan Haralambiev和 Miyako Ohkubo 在((Structure-Preserving Signatures and Commitments to GroupElements)) (CRYPT02010:209-236 頁(yè))中提出的簽名方案;
[0109]?由 Jens Groth、Rafail Ostrovsky 和 Amit Sahai 在《Non-1nteractive Zapsand New Techniques for NIZK)) (CRYPT02006:97-111 頁(yè))中提供的一次性簽名;
[0110]?由 David Cash、Eike Kiltz 和 Victor Shoup 在《The Twin Diffie-HellmanProblem and Applications》(Journal of Cryptology22 (4):470-504 頁(yè),2009 年)中提供的弱安全的基于標(biāo)簽的變型以對(duì)E1和E2進(jìn)行實(shí)例化。
[0111]另外,證明更短并且可以與驗(yàn)證者交互或不交互地執(zhí)行(對(duì)于交互式的證明為lkB,對(duì)于非交互式的證明為2kB),允許后者選擇實(shí)施成本低的、交互式的證明或者成本高的、非交互式的證明。另外,該證明的驗(yàn)證需要325個(gè)配對(duì)計(jì)算(與現(xiàn)有技術(shù)中的3895個(gè)配對(duì)計(jì)算相比)。
[0112]如先前所述,本發(fā)明的GE方案具有如下缺點(diǎn):在每個(gè)Open過(guò)程中訪問(wèn)數(shù)據(jù)庫(kù)DB以便找到公共密鑰的別名的原像。幸運(yùn)的是,求助于Open的情況僅在出現(xiàn)沖突時(shí)才出現(xiàn),因此非常少見。
[0113]雖然在GE的背景下說(shuō)明了本說(shuō)明,但是其范圍并不限制于這種密碼方案。涉及存在于(在線)公共DB的(長(zhǎng))消息的加密的任何密碼方案均可以同樣地從本發(fā)明中受益。應(yīng)用本發(fā)明,(短)別名將與DB的每條消息相關(guān)聯(lián)并且被添加到DB中。然后,將用對(duì)別名的加密替換對(duì)消息的加密,因此減小了密文的大小。在解密時(shí),將恢復(fù)別名并且還將使用向在線DB的請(qǐng)求來(lái)恢復(fù)相關(guān)聯(lián)的消息。
[0114]可以獨(dú)立地或者以任何適當(dāng)?shù)慕M合提供在說(shuō)明書、(當(dāng)合適時(shí))權(quán)利要求書和附圖中公開的每個(gè)特征。被說(shuō)明為以硬件實(shí)現(xiàn)的特征還可以實(shí)現(xiàn)為軟件,反之亦然。在權(quán)利要求書中出現(xiàn)的標(biāo)號(hào)僅用于示例,并且不應(yīng)當(dāng)對(duì)權(quán)利要求的范圍起到限制效果。
【權(quán)利要求】
1.一種關(guān)于標(biāo)簽t為接收者使用公共密鑰Pk對(duì)明文m進(jìn)行群加密以得到密文C的方法,該方法包含在設(shè)備(110)中的以下步驟: 得到簽名密鑰OTS.Sk和驗(yàn)證密鑰OTS.Vk ;
通過(guò)計(jì)算 C1 = E1.Encrypt {pk} (m, OTS.vk)和 c2 = E2.Encrypt {pk0A} (f (pk),OTS.vk)來(lái)創(chuàng)建第一加密值C1和第二加密值C2,其中,E1是第一加密算法,E2是第二加密算法并且f是映射函數(shù); 使用所述簽名密鑰OTS.sk通過(guò)計(jì)算s = OTS.Sign{0TS.sk} (C1, c2, t)來(lái)生成所述第一加密值C1、所述第二加密值C2和所述標(biāo)簽t上的簽名S,其中,OTS.Sign是簽名算法;以及 輸出所述密文C,其中,所述密文c包含所述第一加密值C1、所述第二加密值C2、所述驗(yàn)證密鑰OTS.vk和所述簽名S。
2.如權(quán)利要求1所述方法,其中,消息m滿足可公開驗(yàn)證的關(guān)系R。
3.一種對(duì)包含第一加密值C1、第二加密值C2、驗(yàn)證密鑰OTS.vk和簽名s的群加密c進(jìn)行解密的方法,其中,所述簽名S關(guān)于所述第一加密值C1、第二加密值C2和標(biāo)簽t,該方法包含在設(shè)備(120)中的以下步驟: 接收所述群加密c ; 關(guān)于驗(yàn)證密鑰OTS.vk驗(yàn)證所述簽名s ;以及 如果成功地驗(yàn)證了所述簽名S,則使用解密算法E1和所述驗(yàn)證密鑰OTS.vk對(duì)所述第一加密值C1進(jìn)行解密。
4.如權(quán)利要求3所述的方法,其中,簽名驗(yàn)證步驟還包含驗(yàn)證所述第一加密值C1的解密滿足公開關(guān)系R。
5.一種用于關(guān)于標(biāo)簽t為接收者使用公共密鑰pk對(duì)明文m進(jìn)行群加密以得到密文c的設(shè)備(110),該設(shè)備(110)包含處理器(112),該處理器被配置為: 得到簽名密鑰OTS.sk和驗(yàn)證密鑰OTS.vk ;
通過(guò)計(jì)算 C1 = E1.Encrypt {pk} (m, OTS.vk)和 c2 = E2.Encrypt {pk0A} (f (pk),OTS.vk)來(lái)創(chuàng)建第一加密值C1和第二加密值C2,其中,E1是第一加密算法,E2是第二加密算法并且f是映射函數(shù); 關(guān)于所述第一加密值C1、所述第二加密值C2和所述標(biāo)簽t使用所述簽名密鑰OTS.sk通過(guò)計(jì)算s = OTS.Sign{QTS.sk} (C1, c2, t)來(lái)生成簽名s,其中,OTS.Sign是簽名算法;以及 輸出所述密文C,其中,所述密文c包含所述第一加密值C1、所述第二加密值C2、所述驗(yàn)證密鑰OTS.vk和所述簽名S。
6.如權(quán)利要求5所述的設(shè)備,其中,消息m滿足可公開驗(yàn)證的關(guān)系R。
7.一種用于對(duì)包含第一加密值C1、第二加密值C2、驗(yàn)證密鑰OTS.vk和簽名s的群加密c進(jìn)行解密的設(shè)備(120),其中,所述簽名s關(guān)于所述第一加密值C1、第二加密值C2和標(biāo)簽t,該設(shè)備(120)包含處理器(122),該處理器被配置為: 接收所述群加密c ; 關(guān)于驗(yàn)證密鑰OTS.vk驗(yàn)證所述簽名s ;以及 如果成功地驗(yàn)證了所述簽名S,則使用解密算法E1和所述驗(yàn)證密鑰OTS.vk對(duì)所述第一加密值C1進(jìn)行解密。
8.如權(quán)利要求7所述的設(shè)備,其中,所述處理器還被配置為驗(yàn)證所述第一加密值C1的解密滿足公開關(guān)系R。
9.一種計(jì)算機(jī)程序產(chǎn)品(114),在其上存儲(chǔ)在被處理器執(zhí)行時(shí)實(shí)施如權(quán)利要求1或2所述的方法的指令。
10.一種計(jì)算機(jī)程序產(chǎn)品(124),在其上存儲(chǔ)在被處理器執(zhí)行時(shí)實(shí)施如權(quán)利要求3或4所述的方法的 指令。
【文檔編號(hào)】H04L9/32GK103988466SQ201280061831
【公開日】2014年8月13日 申請(qǐng)日期:2012年12月11日 優(yōu)先權(quán)日:2011年12月15日
【發(fā)明者】L.埃爾艾馬尼, M.喬耶 申請(qǐng)人:湯姆遜許可公司