王 震, 范 佳, 成 林, 安紅章, 鄭海彬, ??∠?/p>
1(保密通信重點實驗室,四川 成都 610041)
2(中國信息安全評測中心,北京 100085)
3(北京航空航天大學 電子信息工程學院,北京 100191)
互聯網的發展使信息化服務逐漸滲透到人們生活的方方面面,傳統活動逐漸被網上活動所替代.然而,互聯網復雜、開放的特性也充滿了未知的元素.隨著隱私泄露、信息竊取等事件的發生,人與人之間的信任問題、隱私保護問題逐漸成為熱點話題,而身份認證技術、隱私保護技術等安全技術也成為熱點研究方向.
身份認證作為一種確認身份、授權的方式,被廣泛應用于通信、金融、社交等方面.通過身份認證,可以確認用戶是否擁有某種資源的訪問權限或使用權限.
一種常用的身份認證方法是利用一個在線的身份提供者或證書發行者,用戶每次進行身份驗證時,發行人為用戶身份的各種屬性提供證明,但要求發行人時刻在線,增加了系統的負擔.另外一種典型方法是用戶通過離線的證書授權中心(certificate authority,簡稱CA)預先得到關于各種屬性的數字證書,然后直接向驗證者出示數字證書,整個認證過程無需CA的參與.數字證書使用密碼學技術,產生標識各方用戶身份信息的一串數字,通過公開算法在互聯網上提供驗證用戶身份的方式,數字證書由CA頒發,任何人可在網上驗證數字證書的有效性.
目前,數字證書的標準為國際電信聯盟(International Telecommunication Union,簡稱ITU-T)制定的X.509標準(如圖1所示).在X.509標準中,用戶產生一對密鑰,包括公鑰和私鑰,然后將公鑰和多個屬性發送給CA, CA為其頒發一個公鑰的證書,并將公鑰和證書維護在一個數據庫中.證書中包括用戶的屬性信息和公鑰信息等,CA通過數據庫可撤銷或更新相應的證書.在驗證時,驗證者可確定一個訪問策略,如要求用戶出示屬性1的證明,用戶將證書發送給驗證者,驗證者利用CA的公鑰進行驗證.通過X.509數字證書標準,可實現數據完整性、身份確定性、不可否認性和防篡改性等功能.
然而,傳統的 X.509容易導致屬性信息過度暴露的問題,在進行認證時,用戶需要出示證書上的所有屬性信息,從而導致信息泄露或遭到竊取.因此,需要采用匿名認證技術最大限度地減少曝光用戶的屬性信息.
Identity Mixer是IBM于2009年提出的一種匿名證書的方案(如圖2所示),主要解決傳統方案中用戶出示證書時過度暴露信息的問題,可以使用戶選擇性地出示證書中的屬性信息,如驗證者要求用戶出示屬性 1的證明,用戶可將證書轉換為用戶任何假名的有效標記,這些標識只包含原始憑證中的屬性 1,并對其他屬性進行隱藏,轉換后的標記在CA的公鑰下仍可驗證,因此避免了用戶屬性信息的過度暴露.
該類方案雖然克服了傳統 X.509證書方案全屬性暴露的問題,但存在一定的缺陷,即用戶的身份無法監管,一旦出現欺詐行為,即使是 CA也無法追蹤到用戶的真實身份.在醫療記錄、家庭合約以及聯盟鏈中的匿名交易、資產轉移等領域,通常需要對用戶身份進行監管,防止匿名濫用、失信行為的發生.
因此,本文主要針對認證過程中用戶身份信息過度暴露和匿名證書無法監管的問題,采用密碼學技術手段實現可監管的匿名認證方案.方案可應用于區塊鏈中的匿名認證和匿名資產等方面,例如在聯盟鏈中的匿名資產中,可以允許交易方在滿足資產管理規定的條件下轉移匿名資產.在交易過程中,交易方按照規定利用證書顯示交易需要公開的內容,如資產來源銀行代號、資產到賬銀行代號等,其他個人信息則可以進行隱藏,同時,資產的可監管性滿足了審計業務的需求,審計人員可隨時恢復出資產內容和交易方身份信息.
在身份認證方面,X.509[1]第1個版本由國際電信聯盟于1988年7月3日發布,設定了數字證書的標準,使數字證書作為身份認證的重要手段.之后,國際電信聯盟又相繼發表了X.509第2、3個版本,擴展了數字證書的應用,使其支持擴展的功能.2000年,美國國家標準與技術研究院(National Institute of Standards and Technology,簡稱 NIST)給出了利用公鑰技術實現數字簽名和認證的指導意見[2],促進了公鑰技術在認證方面的應用.之后,大量身份認證的方案[3-5]的出現是身份認證的技術逐漸成熟.
然而,大多數方案未考慮身份認證時的隱私保護問題,使用戶在認證時容易暴露過多的身份信息或屬性信息.因此,如何保證身份認證的匿名性逐漸成為一個熱點問題.2004年,Camenisch和Lysyanskaya提出了基于雙線性對的簽名方案和匿名證書方案[6],用于身份的匿名認證,方案可應用于匿名電子投票、電子現金等方面.Man等人基于Boneh等人提出的BLS短群簽名方案[7],也提出了類似的匿名證書方案[8],方案可實現多次動態的認證,且簽名證書長度為常數級的,使得方案具有較好的效率.除此之外,相似的匿名認證方案還有文獻[9,10]等.在匿名證書的應用方面,IBM提出的Identity Mixer[11]可用于匿名認證和認證屬性的傳輸,它允許用戶進行身份驗證而不收集其他任何個人數據.
Identity Mixer的工作方式與傳統公鑰基礎結構(PKI)中的客戶端證書類似,但具有兩個重要區別.
(1) 靈活的公共密鑰:用戶可以擁有多個獨立的公鑰(假名)用于同一個密鑰,而不是每個驗證者綁定到固定單個公鑰,從而為每個驗證者甚至每個會話使用不同的假名;
(2) 靈活的證書:用戶的證書可以轉換為用戶任何假名的有效標記,這些標識只包含原始憑證中的一部分屬性,轉換后的標記在發行人的公鑰下仍可驗證.
傳統的數字簽名不能提供這種靈活性.Identity Mixer方案基于Camenisch-Lysyanskaya(CL)簽名方案[12]構造,該簽名方案含有高效的零知識證明和可驗證加密算法,能在不打開簽名的條件下證明簽名者具有某些屬性.
此外,文獻[13]提出了云環境下的身份認證方案,通過無證書公鑰密碼體制,實現“口令+密鑰”的雙因子認證.然而方案需要保證認證節點服務器在線,增加了系統負擔.文獻[14]對匿名身份認證協議在云環境和多服務器環境下的應用進行了分析,使用公鑰技術保證匿名性,但文中僅對一些現存方案進行了分析比較,并未提出具有實用價值的方案.
以上方案均未考慮可監管的因素,限制了匿名認證在一些需要強制監管領域的應用,如醫療記錄、家庭合約以及聯盟鏈中的匿名交易、資產轉移等方面.基于此,本方案通過結合Identity Mixer方案、群簽名、零知識證明等密碼學組件,設計出可監管的匿名認證方案,在實現匿名認證的同時進行強制監管,防止惡意欺詐、匿名濫用行為的發生.
群簽名是一類特殊的數字簽名,其概念[15]最早由Chaum和Heyst在1991年提出.群簽名方案由簽名者組成一個群體(簡稱群),群中的每個成員都能夠以匿名的方式代表該群對消息進行簽名,生成的簽名用群公鑰進行驗證.一個好的群簽名方案需滿足以下基本的安全性要求:匿名性、可追蹤性、不可偽造性、抗聯合攻擊性、不可鏈接性和防陷害性.但這些特征之間會有重合.直至2003年,Bellare等人第1次給出群簽名的嚴格定義和形式化的安全模型[16].該模型指出,群簽名的最高安全特征為完全匿名性和完全可追蹤性.
零知識證明概念[17]是由Goldwasser等人于20世紀80年代初提出的.零知識證明是指一方(證明者)能夠在不向另一方(驗證者)提供任何有用的信息的前提下,使得驗證者能夠相信某個論斷是正確的.零知識證明分為交互式和非交互式,非交互零知識證明通過減少交互次數從而提高效率,一般采用Fiat-Shamir方案[18]將交互式零知識證明轉化為非交互式零知識證明.
本文第1節主要介紹身份認證的相關概念、目前工作存在的問題以及本文的主要工作.第2節介紹方案相關的預備知識,包括密碼學基礎概念和采用的方案.第3節對方案的構造進行詳細的描述.第4節對方案的安全性進行證明.第5節對方案的效率和功能進行分析比較.第6節介紹方案的應用場景.最后,在第7節進行總結.
設G1,G2,GT為p階的循環群,Zp為p階的整數群,g1為群G1的生成元,g2為群G2的生成元,若存在可計算的映射e:G1×G2→GT滿足下列兩個性質,則稱e為雙線性對.

(2) 非退化性:e(g1,g2)≠1,即e(g1,g2)為GT的生成元.
一般地,G1≠G2時稱e為非對稱雙線性對;G1=G2時稱e為對稱雙線性對.
群簽名方案包含如下5種算法.
(1) 創建:一個產生群公鑰、群管理員私鑰和追蹤密鑰的概率多項式時間算法;
(2) 注冊:一個用戶和群管理員之間的交互式協議,使得用戶成為一個新的群成員.執行該協議可以產生群成員的私鑰和身份證書;
(3) 簽名:一個概率算法,當輸入一個消息和一個群成員的私鑰后,輸出對消息的群簽名;
(4) 驗證:一個概率算法,當輸入消息、消息的群簽名和群公鑰后,輸出關于簽名有效性的判斷;
(5) 追蹤:一個在給定簽名及群追蹤密鑰的條件下,輸出簽名者合法身份的算法.
安全性質包括完全匿名性和完全可追蹤性等.完全匿名要求沒有管理員的追蹤密鑰,攻擊者在給予消息簽名后不能恢復簽名者的身份.完全可追蹤性要求,互相勾結的群成員不能夠創建一個群管理員無法追蹤的有效簽名.安全性質通過挑戰者和敵手之間的一個游戲定義,完全匿名性和完全可追蹤性可見文獻[16]中的定義,本文不再給出具體描述.
零知識證明包括兩個參與方:證明者P和驗證者V.對于承諾x∈L,證據w和關系R,(x,w)∈R,一個非交互式零知識證明NIZK{x|(x,w)∈R}包含系統生成、證明和驗證這3個算法.系統模型如下.
(1) 系統生成:輸出公共參考字符串CRS;
(2) 證明:證明者P完成對承諾x∈L的證明;
(3) 驗證:驗證者V進行驗證,若通過驗證輸出1,否則輸出0.
當P與V完成一個協議后,這個協議是否是零知識證明協議,其必須滿足下面3個條件.
(1) 完備性:如果P向V的聲稱是真的,則V以一個大的概率接受P的結論;
(2) 可靠性:如果P向V的聲稱是假的,則V以一個大的概率拒絕P的結論;
(3) 零知識性:如果P向V的聲稱是真的,在V不違背協議的前提下,無論V采用任何手段,除了接收到P給出的結論,V無法獲取有關P所聲稱內容的任何信息.
可監管匿名認證方案包含3個參與方:可信中心(certificate authority,簡稱CA)、用戶和驗證者.方案模型如圖3所示.
系統建立后,CA產生發行密鑰對、追蹤密鑰以及群公鑰.然后用戶進行注冊,CA為其分配一對私鑰,同時,CA根據用戶提交的屬性信息為用戶頒發相關的證書.在用戶出示證書時,驗證者可指定用戶證書上需要出示的屬性(如屬性 1),用戶對證書進行簽名,同時隱藏無需出示的屬性值.驗證者可對簽名進行驗證:若簽名通過驗證,則用戶出示的證書有效;否則,用戶出示的證書無效.若出現爭端,驗證者可將用戶出示的證書發送給CA請求仲裁,CA利用追蹤密鑰恢復出用戶的真實身份.
一個完整的可監管匿名認證方案包含以下過程.
(1) 生成發行方密鑰對(ISK,IPK)←Setup(1λ):輸入安全參數 1λ,運行Setup算法,輸出 CA 的密鑰對(ISK,IPK).發行方密鑰對用戶生成和驗證用戶的證書;
(2) 生成群密鑰(TK,GPK)←GKey(1λ):輸入安全參數1λ,運行GKey算法,輸出追蹤密鑰TK和群公鑰GPK.追蹤密鑰由CA保存,用于從匿名證書中追蹤用戶的身份;群公鑰用于出示和驗證證書;
(3) 用戶注冊(SK)←UKey(ISK):輸入CA的私鑰ISK,運行UKey算法,輸出用戶私鑰SK.用戶私鑰用于出示證書,CA將用戶的私鑰存入列表List中,在身份追蹤時,會將計算結果與用戶的私鑰比對,進而確定用戶身份;
(4) 證書請求(CertQst)←CQst(sk,IssuerNonce):輸入用戶秘密值sk,CA發送給用戶的隨機數IssuerNonce,運行CQst算法,輸出用戶的證書請求CertQst;
(5) 證書請求驗證(b)←VerCQ(CertQst,IPK):輸入證書請求CertQst、CA公鑰IPK,運行VerCQ算法,輸出字符b∈{0,1}.若b=1,則驗證通過,CA為用戶生成證書;否則,CA拒絕用戶的請求;
(6) 生成證書(Cert)←CertGen(ISK,IPK,CertQst,attr):輸入CA的密鑰對(ISK,IPK)、證書請求CertQst、用戶屬性值attr,運行CertGen算法,輸出用戶的證書Cert.CA將證書發送給用戶,用戶進行驗證:若通過驗證,則證書有效,用戶在本地存儲證書;否則,證書無效;
(7) 出示證書(Sig)←GSig(SK,sk,IPK,GPK,attr,Cert,m):輸入用戶私鑰SK、用戶秘密值sk、CA公鑰IPK、群公鑰GPK、屬性值attr、用戶證書Cert、消息m,運行GSig算法,輸出出示的證書(或簽名)Sig;
(8) 出示證書驗證(b)←VerSig(Sig,IPK,GPK,attrep,m):輸入用戶出示的證書Sig、CA公鑰IPK、群公鑰GPK、驗證者指定用戶需要出示的屬性值attrep、消息m,運行VerSig算法,輸出字符b∈{0,1}.若b=1,則驗證通過,出示的證書有效;否則,出示的證書無效;
(9) 身份追蹤(SK)←Trac(Sig,TK):輸入用戶出示的證書Sig、CA的追蹤密鑰TK,運行Trac算法,輸出匿名證書所對應的用戶私鑰SK;然后CA將私鑰和群內用戶的私鑰進行對比,從而追蹤到用戶的真實身份.
可監管的匿名證書方案的安全性質包括匿名性和可追蹤性,安全性質通過語義安全性理論進行定義.
匿名安全要求沒有 CA機構的追蹤密鑰,攻擊者在給予消息簽名后不能恢復簽名者的身份.根據安全性模型,即不存在任何多項式時間敵手A,在下面匿名性模擬攻擊游戲中以不可忽略的概率取得成功.
(1) 生成階段:挑戰者執行發行方密鑰、群密鑰算法,把生成的 CA的公鑰IPK和群公鑰GPK發送給A,保留CA的私鑰ISK和追蹤密鑰TK;
(2) 詢問階段1:敵手A可以對挑戰者進行多項式有界次數的詢問:
a) 注冊詢問:敵手A請求詢問用戶i所對應的私鑰SKi,挑戰者執行注冊算法并返回結果給A;
b) 追蹤詢問:敵手A選擇一個出示的證書Sig請求詢問,挑戰者執行追蹤算法并返回結果給A;

(4) 詢問階段2:敵手A同階段1一樣,可以對挑戰者進行多項式有界次數的詢問,但是不允許A對用戶i0,i1進行注冊詢問,且不允許對Sig*進行追蹤詢問;
(5) 猜測階段:詢問階段結束后,敵手A輸出一個比特b′,如果存在b′=b,說明敵手A成功進行了攻擊.
可追蹤性要求,互相勾結的群成員用戶不能夠創建一個群管理員無法追蹤的有效簽名.根據安全性模型,即不存在任何多項式時間敵手A,在下面可追蹤性模擬攻擊游戲中以不可忽略的概率取得成功.
(1) 生成階段:挑戰者執行發行方密鑰、群密鑰算法,把生成的 CA的公鑰IPK和群公鑰GPK發送給A,保留CA的私鑰ISK和追蹤密鑰TK;
(2) 勾結階段:敵手A選擇用戶的私鑰進行請求,然后添加腐敗的群成員到列表L.這里,L表示腐敗群成員的身份列表;同時,共謀行為意味著A只能捕獲他們的私鑰,但不能命令他們做一些篡改操作;
(3) 詢問階段1:敵手A可以對挑戰者進行多項式有界次數的詢問.
a) 注冊詢問:敵手A請求詢問用戶i所對應的私鑰SKi,挑戰者執行注冊算法并返回結果給A;
b) 簽名詢問:敵手A選擇用戶私鑰SK、證書Cert和消息m請求詢問,挑戰者執行簽名算法并返回結果Sig給A;
c) 追蹤詢問:敵手A選擇一個出示的證書Sig請求詢問,挑戰者執行追蹤算法并返回結果給A;
(4) 挑戰階段:最終,敵手A輸出關于消息m*的挑戰簽名Sig*.如果以下任意情況發生,則敵手A攻擊成功.
a) 出示的證書Sig*有效,但恢復出的私鑰無效,即:
b) 出示的證書Sig*有效且未被詢問過,但恢復出的私鑰不屬于勾結列表L,即:
本文方案主要涉及的符號變量和意義見表1.

Table 1 Symbols and its notions in our scheme表1 本文的變量符號和意義
本文構造的可監管匿名認證方案結合了Identity Mixer方案[11]、BBS群簽名方案[7]和Fiat-Shamir方案[18]非交互式零知識證明技術,下面介紹具體的方案,方案流程如圖4所示.
可監管匿名認證方案包括以下過程.
(1) 生成發行方密鑰對


任何人可驗證CA密鑰是否正確,驗證過程如下.
(2) 生成群密鑰

(3) 用戶注冊

(4) 證書請求
CA隨機選擇一個整數IssuerNonce∈Zp并發送給用戶.用戶隨機選擇一個整數sk∈Zp作為自己的秘密值,然后隨機選擇整數creds∈Zp,計算假名(或承諾)Nym=HSKsk·Hrandcreds,然后計算關于秘密值sk和隨機數creds的零知識證明,記為NIZK{sk,creds|Nym=HSKsk·Hrandcreds},計算過程如下.

b) 計算挑戰值csk=H(t,HSK,Nym,IssuerNonce);
c) 計算s值s1=rs+csk·sk,s2=rds+csk·creds.
最后輸出證書請求CertQst=(Nym,IssuerNonce,csk,s1,s2).
(5) 證書請求驗證
CA接收到用戶的證書請求后,首先進行驗證,驗證過程如下.
a) 計算t′ =HSKs1·Hrands2,t′ =t′′/Nymcsk;
b) 計算挑戰值c′sk=H(t′,HSK,Nym,IssuerNonce).判斷c′sk=csk是否成立:若公示成立,則用戶證書請求有效;否則,用戶證書請求無效,CA拒絕為用戶頒發證書.
(6) 生成證書
最后得到證書Cert=(A,B,e,s′,attr).
(7) 出示證書
用戶在交易時需要出示證書,驗證者可指定需要出示的屬性值,用戶對需要隱藏的屬性值(設共有l個)的下標進行標記,記為HiddenIndices=[I1,…,Il],其中,Ii為需要隱藏的屬性值的下標.
計算過程如下.
c) 設簽名的消息為m,用戶隨機產生一個整數nonce∈Zp,然后利用下列公式計算挑戰值:
d) 計算s值:

最終,用戶出示的匿名證書(簽名)為
(8) 出示證書驗證
對于用戶出示的證書,驗證過程如下.
b) 利用下列公式計算輔助值:
設需要出示的屬性值下標集合記為Disclosure=[I1,…,Ik-l],計算:
c) 利用下列公式計算挑戰值:
判斷c′=c是否成立:若等式成立,則用戶出示的證書有效;否則,出示的證書無效.
(9) 身份追蹤
若出現爭端,驗證者可將用戶出示的證書Sig發送給CA,請求仲裁.CA利用追蹤密鑰TK=(ξ1,ξ2)進行解密:
得到用戶的私鑰K′,然后查找對比用戶私鑰的列表List,最終追蹤到用戶的真實身份.
本文方案基于Identity Mixer方案[11]、BBS群簽名方案[7]和Fiat-Shamir方案[18]非交互式零知識證明協議構造,根據各模塊的安全特性,下面給出匿名性和可追蹤性安全性分析.
本文方案的匿名性滿足以下結論.
結論1.若Identity Mixer方案滿足基本安全性質,BBS群簽名方案滿足完全匿名性,且Fiat-Shamir零知識證明協議滿足完備性、可靠性和計算零知識性,則本文可監管匿名認證方案滿足匿名性.
證明:定義Aanony為攻擊本文方案匿名性模擬攻擊游戲的敵手,Aidm為攻擊Identity Mixer方案方案的敵手,Asg,f-anony為攻擊群簽名方案完全匿名性安全的敵手,Apof為攻擊零知識證明協議的敵手.假設Aanony成功攻擊了該方案的匿名性,定義一個多項式時間算法Aγ∈(Aidm,Asg,f-anony,Apof)包含攻擊Identity Mixer方案、群簽名方案和零知識證明協議等攻擊者的能力.通過匿名模擬攻擊游戲中Aanony的查詢和Aγ的響應交互來構造Aγ,使其能夠攻擊Identity Mixer方案、群簽名方案和零知識證明協議.即:若敵手Aanony成功攻擊了該方案的匿名性,則Aγ就能以某一概率成功攻擊Identity Mixer方案、群簽名方案的完全匿名性和零知識證明協議.
根據匿名性定義的步驟,算法Aγ和敵手Aanony的交互運行如下.
(1) 生成階段:算法Aγ執行系統生成算法,通過分別運行Aidm,Asg,f-anony,Apof在Identity Mixer方案、群簽名方案和零知識證明模擬攻擊游戲中產生的公共參數,生成匿名性模擬攻擊游戲的公共參數IPK和GPK,然后將公共參數發送給Aanony,保留系統主密鑰ISK和群追蹤密鑰TK;
(2) 詢問階段1:敵手Aanony可以對算法Aγ進行多項式有界次數的詢問:
a) 注冊詢問:敵手Aanony請求詢問用戶i所對應的私鑰SKi,算法Aγ通過運行Aidm,Asg,f-anony,Apof在群簽名方案模擬攻擊游戲中的注冊詢問,將得到的注冊詢問結果返回給Aanony;
b) 追蹤詢問:敵手A選擇一個出示的證書Sig請求詢問,算法Aγ通過運行Asg,f-anony在群簽名方案模擬攻擊游戲中的追蹤詢問,將得到的詢問結果返回給Aanony;

(4) 詢問階段2:敵手Aanony與階段1一樣,可以對算法Aγ進行多項式有界次數的詢問,但是不允許Aanony對用戶i0,i1進行注冊詢問,且不允許對Sig*進行追蹤詢問;
(5) 猜測階段:詢問階段結束后,敵手Aanony輸出一個比特b′,若存在b′=b,說明敵手Aanony成功進行了攻擊.敵手Aanony成功概率為
因此,如果攻擊者Aidm成功攻擊Identity Mixer方案,攻擊者Asg,f-anony成功攻擊群簽名方案的完全匿名性,攻擊者Apof成功攻擊零知識證明協議,則Aanony在可監管匿名認證方案匿名性模擬攻擊游戲中獲勝.然而根據定理中對基本組件安全性的假設,我們得到敵手Aanony攻擊成功概率可以忽略不計,因此方案滿足匿名性.
本文方案的可追蹤性滿足以下結論.
結論2.若Identity Mixer方案滿足基本安全性質,BBS群簽名方案滿足完全可追蹤性,且Fiat-Shamir零知識證明協議滿足完備性、可靠性和計算零知識性,則本文可監管匿名認證方案滿足可追蹤性.
證明:定義Atrace為攻擊本文方案可追蹤性模擬攻擊游戲的敵手,Aidm為攻擊 Identity Mixer方案的敵手,Asg,f-trace為攻擊群簽名方案完全匿名性安全的敵手,Apof為攻擊零知識證明協議的敵手.假設Atrace成功攻擊了該方案的可追蹤性,定義一個多項式時間算法Aη∈(Aidm,Asg,f-trace,Apof)包含攻擊 Identity Mixer方案、群簽名方案和零知識證明協議等攻擊者的能力.通過可追蹤模擬攻擊游戲中Atrace的查詢和Aη的響應交互來構造Aη,使其能夠攻擊Identity Mixer方案、群簽名方案和零知識證明協議.即:如果敵手Atrace成功攻擊了該方案的可追蹤性,則Aη就能以某一概率成功攻擊Identity Mixer方案、群簽名方案的完全可追蹤性和零知識證明協議.根據可追蹤性定義的步驟,算法Aη和敵手Atrace的交互運行如下.
(1) 生成階段:算法Aη執行系統生成算法,通過分別運行Aidm,Asg,f-trace,Apof在Identity Mixer方案、群簽名方案和零知識證明模擬攻擊游戲中產生的公共參數,生成可追蹤性模擬攻擊游戲的公共參數IPK和GPK,然后將公共參數發送給Aη,保留系統主密鑰ISK和群追蹤密鑰TK;
(2) 勾結階段:敵手Atrace選擇用戶的私鑰進行請求,算法Aη通過運行Aidm,Asg,f-trace群簽名方案模擬攻擊游戲中的勾結詢問,將得到的詢問結果返回給Atrace,然后添加腐敗的群成員到列表L;
(3) 詢問階段1:敵手Atrace可以對算法Aη進行多項式有界次數的詢問.
a) 注冊詢問:敵手Atrace請求詢問用戶i所對應的私鑰SKi,算法Aη通過運行Aidm,Asg,f-trace,Apof在群簽名方案模擬攻擊游戲中的注冊詢問,將得到的注冊詢問結果返回給Atrace;
b) 簽名詢問:敵手Atrace選擇用戶私鑰SK、證書Cert和消息m請求詢問,算法Aη通過運行Aidm,Asg,f-trace,Apof在Identity Mixer方案和群簽名方案模擬攻擊游戲中的簽名詢問,將得到的Sig返回給Atrace;
c) 追蹤詢問:敵手Atrace選擇一個出示的證書Sig請求詢問,算法Aη通過運行Asg,f-trace在群簽名方案模擬攻擊游戲中的追蹤詢問,將得到的追蹤詢問結果返回給Atrace;
(4) 挑戰階段:最終,敵手Atrace輸出關于消息m*的挑戰證書Sig*.如果以下任意情況發生,則敵手Atrace攻擊成功.
a) 出示的證書Sig*有效,但恢復出的私鑰無效,即Trac(Sig*,TK)=⊥;
b) 出示的證書Sig*有效且未被詢問過,但恢復出的私鑰不屬于勾結列表L,即Trac(Sig*,TK)=SKi?L.根據算法Aη和敵手Atrace的交互,敵手Atrace成功的概率為
因此,如果攻擊者Aidm成功攻擊Identity Mixer方案,攻擊者Asg,f-trace成功攻擊群簽名方案的完全可追蹤性,攻擊者Apof成功攻擊零知識證明協議,則Atrace在可監管匿名認證方案可追蹤性模擬攻擊游戲中獲勝.然而根據定理中對基本組件安全性的假設,我們得到敵手Atrace攻擊成功概率可以忽略不計,因此方案滿足可追蹤性.
本文方案相比IdentiyMixer方案增加了可監管的功能,CA可以為群內用戶分配密鑰,并通過追蹤密鑰追蹤用戶的身份.本文方案在用戶出示證書的部分增加了群簽名技術,驗證者在驗證證書的同時也驗證了用戶匿名身份信息的正確性,如果出現爭端,CA 可追蹤到用戶的身份,因此,本文方案具有強制監管的作用.此外,本文方案在增加強制監管功能的同時還保證了用戶的匿名性,相比一般的身份監管方案,極大保護了用戶的身份隱私.用戶在交易時,只需出示相應的屬性值,無需出示的屬性值可以在證書中進行隱藏,滿足了用戶的隱私保護需求.但由于增加了可監管機制,本文方案并未實現Identity Mixer方案完全匿名性的功能,對第三方仍有一定的信任依賴.
本文方案在Identity Mixer方案上增加了可監管的功能,下面對比原方案進行效率方面的比較.
選擇橢圓曲線上的群G1,G2,階數p為170bit的大質數,群內元素的長度為171bit(相當于1024bit的RSA方案),大整數長度設為170bit,GT內元素的長度設為171bit.定義E為指數運算,H為哈希運算,P為雙線性對運算,k為全部屬性個數,l為隱藏屬性個數.忽略乘法、加法運算,方案計算開銷對比結果見表2.

Table 2 Comparison between Identity Mixer scheme and ours in computation cost表2 本文方案和Identity Mixer方案的計算開銷對比

在Win10 64位,Inter(R) Core(TM) i7-7700@3.6GHz,16G內存PC機上對方案進行仿真實現后,效率比對如圖5所示.
圖5(a)顯示:當設定用戶屬性個數為5,10,20,40時,Identity Mixer方案、本文方案以及預計算方案的效率隨屬性增加而降低.采用預計算方法可一定程度提高方案效率,但仍會比Identity Mixer方案效率略低.以上結果也驗證了理論分析的正確性.圖5(b)顯示,本文方案和預計算后的方案在出示證書和驗證過程會有差別,即:預計算只在出示證書和驗證過程進行,與理論結論一致.圖 5(c)和圖 5(d)則進一步說明:只有出示證書部分和驗證部分會隨屬性值增加而增加,方案其他過程效率與屬性個數無關.通過方案對比分析,本文方案的效率相比 Identity Mixer方案雖有一定程度的下降,但仍屬于可接受的范圍(整個方案耗時不足0.5s),且存在提升的空間,具有較好的實用性.
方案的存儲開銷對比見表 3.由表 3可知:由于可監管功能,方案在私鑰長度和簽名長度上相比 Identity Mixer方案略有增加,但仍屬于可接受的范圍.

Table 3 Comparison between Identity Mixer scheme and ours in storage cost表3 本文方案和Identity Mixer方案的存儲開銷對比
綜上所述,本文方案在增加可監管功能的同時,保證了良好的運行效率和存儲性能,具有較好的功能性和實用性.
隨著網絡的日益發達,金融、醫療、政務等領域的各種網絡應用層出不窮,各種各樣的系統和復雜的網絡環境使得用戶在進行身份認證時消耗成本和信任代價過高;同時,中心式的信任模型還存在泄露用戶信息的風險,因此,急需采用新技術手段解決傳統身份認證方法的不足.
針對以上問題,本文結合可監管匿名認證方案和區塊鏈技術,設計了一種基于區塊鏈的統一身份認證系統,旨在為用戶和服務方提供統一身份認證、身份隱私保護和可監管的服務,系統模型如圖6所示.
系統由統一認證平臺模塊、服務提供方、用戶等組成,而統一認證平臺又分為可監管匿名認證模塊和區塊鏈模塊.統一認證平臺連接服務提供方,為用戶提供認證服務.可監管匿名認證模塊為用戶頒發屬性證書,提供屬性證明,用戶出示證書時只需出示部分屬性,無需出示全部屬性,可有效保護用戶的身份隱私.區塊鏈模塊則記錄了用戶出示的匿名證書和相關屬性信息,可監管匿名認證模塊可通過區塊鏈查閱用戶出示的屬性信息,若出現爭端,還可根據匿名證書恢復出用戶的身份信息.
本文提出了一種可監管匿名認證方案,方案結合了匿名認證技術、群簽名和零知識證明技術,在傳統認證手段中引入了監管機制,使CA能夠對匿名證書進行身份追蹤.一方面,本方案解決了傳統認證體制中用戶身份、屬性信息過度暴露的問題,采用匿名認證的技術手段保護用戶的身份隱私,同時采用靈活的認證策略,使用戶可以選擇出示證書中的屬性,避免過度暴露信息;另一方面,本文方案還解決了目前匿名認證手段無法監管的問題,旨在減少匿名濫用和失信行為的發生.結合可監管匿名認證技術和區塊鏈技術,本文提出了統一身份認證系統模型,但未針對實際系統設計具體方案.此外,本文方案的效率還存在可提升的空間.因此,下一步工作是進一步提高方案的效率,拓展方案的應用范圍,根據實際系統需求設計具體方案,使方案落實到具體應用上.