湯海婷,汪學明
(貴州大學 計算機科學與技術學院, 貴州 貴陽 550025)
屬性密碼[1-3]是對身份密碼體制[4,5]的延伸和擴展。S和W兩人提出屬性密碼[6]的原型。之后,隨著訪問控制結構的加入,使得屬性密碼體制更為靈活性。Zheng提出了簽密這種密碼學原語[7],它改變了以往先簽名后加密的模式,使得簽名和加密能同時完成,極大提高了計算效率。在身份簽密這一領域,有不少國內外學者已經陸續(xù)做出研究。隨著量子時代的到來,越來越多的學者利用格理論來提高身份簽密的安全性。Lu等提出了格上模糊的身份簽密方案[8];項等提出具有前向安全的格上的身份簽密方案[9];Lu等又提出了無陷門的格基簽密方案[10]。格上的屬性加密和簽名方案[11-16]陸陸續(xù)續(xù)得到關注,史妍等很早就設計了基于雙線性對的屬性簽密方案[17]。然而,格上的屬性簽密方案一直以來都鮮有問津。Xiang等研究了隱藏訪問控制結構的格屬性簽密方案[18]。閆建華利用變色龍hash函數(shù),變種算法等在標準模型下,設計了格上的屬性簽密方案[19]。本文以Lu等設計的模糊的身份簽密方案[8]和文獻[16]格上的屬性簽名方案為基礎,構建了基于格的屬性簽密方案。格密碼被認為是可以抵抗量子攻擊的密碼體制,同時,格上的加解密等運算量相比雙線對運算量是大大減少的。因此,利用格來構造的屬性簽密方案其安全性和效率都會相對得到提高。本文最后利用隨機預言模型,對方案的安全性進行了簡單的分析,驗證了方案在格的兩個平均困難問題下能夠達到選擇明文攻擊的不可區(qū)分性和選擇訪問結構選擇消息攻擊下的存在性不可偽造性。
定義1 格的定義:格的定義是基于向量空間。假設有線性無關的向量v1,v2…,vn∈Rm。由向量v1,…,vn的線性組合生成格L,即L={a1v1+a2v2+…anvn:a1,a2,…,an∈Z}。
定義2 如果向量的坐標均為整數(shù),比如:Zm={(x1,x2,…,xm):x1,x2,…,xm∈Z},那么它就是整數(shù)格。如果m大于等于1時,那么整數(shù)格是Zm的加法子群。
定義3 如果H是一個概率多項式級算法。算法會輸入安全參數(shù)k,得到{0,1}*→{0,1}k。如果算法滿足高效性和抗碰撞性,那么H稱為抗碰撞HASH函數(shù)。
其它的相關原像抽樣算法和格理論知識見文獻[8,12-16,18]。
定義6 IND-sCPA:選擇明文攻擊的不可區(qū)分性。EUF-SCMA:選擇消息攻擊下的存在性不可偽造性。具體定義見文獻[20]。
本文的方案結合文獻[8]的思路,具體形式化描述如下:
(1)初始化:輸入安全參數(shù),得到系統(tǒng)公共參數(shù)和主密鑰。
(2)解簽密密鑰生成:輸入主私鑰,用戶屬性集θ,輸出解簽密密鑰。
(3)簽名密鑰:簽名密鑰和本文用到的簽名算法有關。
(4)簽密過程:輸入消息MSG,用戶的屬性集W。訪問控制策略為Lpolicy,如果W|=Lpolicy,輸出相對應的密文。
(5)解簽密過程:輸入簽密的密文,如果接收者的屬性集和發(fā)送方的屬性集的交集滿足門限值,且W|=Lpolicy。得到明文MSG,并驗證明文和簽名的有效性。如果驗證成功,返回明文MSG。
文獻[8]構造了第一個格上的模糊的身份簽密方案,本文的方案構造結合文獻[8]的構造方法,簽名部分則利用文獻[16]提出的簽名方法。
假設屬性全集記為K,本文的加密部分采用shamir的門限訪問控制結構,本文的門限值設置為d。設簽名過程要滿足的訪問控制策略記為Lpolicy。同時,假設發(fā)送方的屬性集為W,接受方的屬性集為θ,要簽密消息的消息空間記為t。初始化階段:
(1)輸入安全參數(shù)n,q,m,其中m>5nlogq,q=poly(n),q的值是素數(shù),且非常大。
(3)設有下列hash函數(shù)
(5)系統(tǒng)參數(shù)PK={{Ai}i∈K,{Bi}i∈[t],A0,H1,H2,H3,H4,μ},主私鑰MSK={TA0,{TAi}i∈K}。
密鑰生成:本階段包括2.2節(jié)和2.3節(jié)兩個部分。
(2)假設用戶的屬性集為θ,對于i∈θ,Ri=H1(i)。
(1)要簽密的消息為MSG,輸入W和Lpolicy。
(4)最終的簽密密文為C={W,y1,y2,S3,Z,Cf,{Ci}i∈W}。
為了驗證簽密方案的可行性,不僅要在LWE問題下證明方案的IND-sCPA,還要證明方案在SIS問題下,滿足EUF-SACMA。本文方案中涉及的簽名方案是按照文獻[16]來構建。因此這部分的安全性也是基于文獻[16]。
第一階段:
(1)假設hash詢問包含4個表L1,L2,L3,L4。
H2詢問:發(fā)送方發(fā)送消息MSG*,挑戰(zhàn)者收到消息后,如果表L2中存在,則返回。如果不存在,挑戰(zhàn)者C產生消息MSG*對應的hash值,并存儲在L2中。
H3詢問:對于H3j(MSG,Lpolicy),如果L3中沒有找到對應的值。挑戰(zhàn)者C隨機選擇一個H3j∈{0,1}t存于L3中,并做出應答。
H4詢問:挑戰(zhàn)者C先檢查H4j是否在表L4中,若不在,則隨機選擇一個新的H4j∈{0,1}*,并且存在L4中,并將H4j發(fā)送給敵手。
第二階段:重復第一階段。
猜想階段:敵手A給出猜想b′,如果b′=b,預言機輸出1。否則,挑戰(zhàn)者C認為本實例來源于完全隨機的取樣器。
本階段的Hash詢問和上一階段的游戲類似。選擇要挑戰(zhàn)的訪問控制策略Lpolicy。
假如敵手A偽造了一個密文,如果密文有效。那么就能找到SIS困難問題的解。最后,給出本文方案和相關其它方案的安全方面對比,見表1。
表1 ABSC方案比較
本文方案和文獻[17]相比,本文的方案是利用格理論設計,因此安全性遠高于基于雙線性對的屬性簽密。和文獻[18]相比,本文方案可以實現(xiàn)選擇訪問結構和選擇消息攻擊的存在性不可偽造性,但是不能滿足文獻[18]的選擇密文攻擊下的不可區(qū)分性。這也是下一步要解決的問題。
本文以文獻[8]的思想為基礎,提出一種基于格的屬性簽密方案,實現(xiàn)了選擇訪問結構和選擇消息攻擊的存在性不可偽造性。與傳統(tǒng)的雙線性對構建的屬性簽密方案相比,本文的方案更加安全,且減少了構建過程的運算量,具有更高的效率。下一步,將嘗試構建格上安全性更高支持細粒度訪問控制的屬性簽密方案,同時解決簽密方案在選擇密文攻擊下的不可區(qū)分性。