張應輝 賀江勇 郭 瑞 鄭 東,3
1(西安郵電大學網絡空間安全學院 西安 710121) 2(無線網絡安全技術國家工程實驗室(西安郵電大學) 西安 710121) 3(衛士通摩石實驗室 北京 100070)
工業物聯網(industrial Internet of things, IIoT)作為新一代信息技術的重要組成部分,它按照約定的信息交換協議通過傳感器設備連接各種網絡,以實現智能識別、跟蹤、監視、定位和管理[1-2].隨著IIoT的普及,其安全問題也越來越受到研究者的關注[3].由于IIoT環境的開放性,數據經過公共信道傳輸時可能被惡意的敵手偽造或篡改.另外,涉及IIoT情況的數據包含用戶身份的敏感信息,容易造成用戶身份隱私的泄露.因此,如何確保IIoT系統的數據安全和用戶身份隱私非常具有挑戰性[4].屬性基簽名(attribute-based signature, ABS)既可以保護用戶身份隱私,又可以實現數據認證.近年來,大多數國內外學者基于ABS,圍繞其簽名和驗證階段的計算開銷、靈活的訪問結構、服務器輔助(server-aided, SA)簽名和驗證階段的安全性等問題進行了研究,形成了較為豐富的理論成果.在減小簽名者和驗證者的計算開銷方面,一個可行的方法是采用SA技術[5]將繁重的計算委托給服務器.但是針對SA簽名產生和驗證階段安全性的研究,大多數學者只是通過抵抗簽名者和服務器的共謀攻擊保證了SA驗證階段的安全性.如何抵抗服務器對部分簽名的偽造,保證SA簽名產生階段的安全性具有重要的研究意義,需進一步研究.
本文的主要貢獻包括3個方面:
1) 提出了一種服務器輔助且可驗證的ABS(server-aided and verifiable ABS, SA-VABS)方案,通過對服務器產生的部分簽名進行有效性驗證,抵抗了服務器對部分簽名的偽造;
2) 提出的SA-VABS方案可以抵抗簽名者和服務器的共謀攻擊,即簽名者勾結服務器并指導服務器產生一個無效的中介簽名去欺騙驗證者;
3) 對提出的SA-VABS方案進行了嚴格的安全性分析,并在理論上和實驗上評估了其性能,最后通過對比分析說明了SA-VABS方案是安全高效的.
ABS的概念是從屬性基加密(attribute-based encryption, ABE)演變而來的[6],正式定義首先由Maji等人[7]提出,該方案僅能在一般的群模型下給出安全性證明.為了提高方案的安全性,Li等人[8]提出兩種支持門限訪問結構的ABS方案,并且在隨機預言模型和標準模型下分別證明了方案的不可偽造性;為了減小系統的存儲負擔,Ge等人[9]在標準模型下提出一種高效的ABS方案,該方案的簽名長度是恒定的,不會隨著屬性的數量發生變化;為了實現更靈活的訪問結構,Su等人[10]在2014年提出一種支持樹形訪問結構的ABS方案.然而,這5種ABS方案的一個共同問題是簽名者和驗證者的計算開銷隨著屬性的數量呈線性增長.
外包計算基于云計算[11],最早是由Hohenberger等人[12]提出;由于現有ABS方案中簽名生成算法需要大量的指數運算,Chen等人[13]首先提出外包ABS(outsourced ABS, OABS)方案,將簽名產生算法的主要計算開銷委托給服務器;Ren等人[14]在2018年提出另一種可以驗證外包簽名有效性的OABS方案;最近,Mo等人[15]也提出了一種應用于醫療系統中的OABS方案,該方案支持更靈活的訪問結構;在2019年Sun等人[16]提出一種外包的分散式多屬性機構ABS(outsourced decentralized multi-authority,ODMA-ABS)方案,該方案相關的公私鑰由多個屬性機構交互來生成,提高了OABS方案的安全性.然而,這些OABS方案只減小了簽名產生階段的計算開銷,并沒有減小簽名驗證階段的計算開銷.
為了提高ABS方案簽名驗證的效率,Matsumoto等人[17]首次提出SA的概念,可以將驗證者的繁重計算委托給服務器.2014年Wang等人[18]首先提出SA驗證的ABS(attribute-based server-aided verifi-cation signature, ABSAVS)方案,借助服務器減輕了驗證者的計算開銷.最近,Cui等人[19]第1次提出可撤銷的SA-ABS(server-aided ABS with revoca-tion, SA-ABSR)方案,該方案借助服務器同時減小了簽名者和驗證者的計算開銷,而且支持用戶撤銷的功能,但是不能抵抗簽名者和服務器的共謀攻擊.基于此,Xiong等人[20]提出另一種SA-ABS方案,不僅抵抗簽名者和服務器的共謀攻擊,而且實現了更靈活的LSSS訪問結構.但是,他們提出的SA-ABS方案都不能驗證部分簽名(即服務器產生的簽名)的有效性,因此不能抵抗服務器對部分簽名的偽造.
綜上,現有的SA-ABS方案中,對于計算開銷的研究比較理想的技術是SA技術.而對于SA階段的安全性問題,大多數學者主要是圍繞SA驗證階段的安全性研究,通過抵抗簽名者和服務器的共謀攻擊來保證SA驗證階段的安全性.如何抵抗服務器對部分簽名的偽造,確保SA簽名產生階段的安全性還存在許多問題,成為本文的主要研究工作之一.
本節介紹了文中用到的主要符號和基礎知識.
文中所用到的主要符號及解釋說明如表1所示:

Table 1 The Main Notations and Description表1 主要符號及說明
定義1.雙線性映射.給定G,G1為2個階為大素數p的乘法循環群,g是G的生成元,Zp為有限域.一個映射e:G×G→G1如果滿足3個特性,則稱該映射為雙線性映射:

2) 非退化性.e(g,g)≠1.
3) 可計算性.對任意g1,g2∈G,存在可以計算e(g1,g2)的高效算法.
定義2.n-DHE問題.對任意a∈Zp,g∈G,給定g,ga,ga2,…,gan,gan+2,…,ga2n,計算gan+1的值.如果不存在能夠以不可忽略的概率優勢解決n-DHE問題的多項式時間算法,則稱n-DHE問題是困難的.
定義3.拉格朗日插值.設p(x)是有限域Zp上n-1階多項式,定義Ω∈{1,2,…,n},計算p(x):
定義4.門限訪問結構.門限訪問結構是一個單調的布爾函數,可以描述為
其中,A是用戶的屬性集,S是訪問結構的屬性集,k是訪問結構中所指定的門限值.當Γk,S(A)=1時,我們認為屬性集A滿足訪問結構Γk,S(A).
本節介紹了SA-VABS方案的系統模型和安全性模型,包括正確性、不可偽造性、抗共謀攻擊以及匿名性.
我們提出的SA-VABS方案包含4個實體:屬性機構、簽名者、驗證者以及服務器.系統結構圖如圖1所示:

Fig. 1 The system architecture圖1 系統結構圖

Setup.屬性機構將安全參數λ作為輸入,輸出公共參數par和主私鑰msk.
KeyGen.屬性機構將公共參數par、主私鑰msk以及用戶屬性集A作為輸入,分別為服務器和簽名者輸出部分簽名鑰psk和簽名鑰sk.
SSign.服務器將公共參數par、部分簽名鑰psk、消息m以及訪問結構Γk,S作為輸入,輸出部分簽名σ′和相應的驗證信息W1及W2.
USign.簽名者將公共參數par、簽名鑰sk、驗證信息W1及W2、部分簽名σ′作為輸入,如果部分簽名σ′驗證有效則輸出完整的簽名σ.



提出的SA-VABS方案的安全性需要滿足正確性、不可偽造性、抗共謀攻擊以及匿名性.
1) 正確性.SA-VABS方案的正確性是指對任意消息m,任何滿足訪問結構Γk,S的屬性集A,運行算法Setup,KeyGen,SSign,USign,Transform以及SVerify,最后UVerify算法輸出的結果為true,則說明方案SA-VABS滿足正確性.




3) 抗共謀攻擊.簽名者和服務器的共謀攻擊是指簽名者使用一個偽造的消息m*產生簽名,然后勾結服務器基于m*執行SVerify算法去產生中介簽名,但是服務器欺騙驗證者中介簽名是基于m產生的.這樣就可能導致驗證者將一個無效的簽名通過UVerify算法.因此,包含消息m的驗證部分不能由服務器來驗證,如果這部分驗證由驗證者來完成,則可以有效抵抗簽名者和服務器的共謀攻擊.

本節我們給出SA-VABS方案的具體構造,包括7個算法:Setup,KeyGen,SSign,USign,Transform,SVerify,UVerify.
Setup.該算法用于產生系統公共參數和主私鑰,輸入安全參數λ,算法運行步驟為:
1) 定義U為系統中的屬性集合,M定義為長度最大為m的明文空間.Ω為默認屬性集,其中|Ω|=n.假設U∪Ω中的每一個屬性都是Zp中的元素.
2) 設G,G1為p階乘法循環群,定義一個雙線性映射e:G×G→G1,其中g是G的生成元.隨機選取α∈Zp,計算Z=e(g,g)α.
最多可以說,這些橘紅色的生物數量太多,整體場景給人帶來一種驚恐感受——似乎金魚們誤闖了一個本不屬于它們的空間。這間房間更容易理解,其中擺放的都是一間典型的臥室應有的東西:床、梳妝臺、臺燈、鏡子、格子窗戶。所有物品顯然都曾在綠色染料中浸泡過——整個場景使人聯想到一個超大的金魚缸。
4) 從Zp中選取n個元素,令D={d1,d2,…,dn}作為虛擬屬性集.

因此,系統的主私鑰為msk=α,公共參數為par=(g,G,G1,e,p,Z,h0,h1,…,hN,u0,u1,…,unm).

1) 對虛擬屬性d∈AUD,隨機選擇rd∈Zp,計算:
Pd,2=grd,
2) 對屬性w∈A∪Ω,隨機選擇rw∈Zp,計算:

Pw,2=grw,
因此,屬性機構為服務器和用戶產生的部分簽名鑰以及簽名鑰分別是
psk={Pd,1,Pd,2,{Pd,i}i∈{1,2,…,N-1}},
sk={gα-β,Pw,1,Pw,2,{Pw,i}i∈{1,2,…,N-1}}.
SSign.該算法用于將簽名過程的繁重計算委托給服務器.輸入公共參數par、部分簽名鑰psk、消息m以及訪問結構Γk,S,算法運行為:
2) 定義一個向量b=(b1,b2,…,bN),計算多項式:
當|S∪D′|+2≤i≤N時,設置bi=0.
3) 對每一個虛擬屬性d∈S′∪D′,計算:

4) 隨機選擇s0,s1∈Zp,計算:
5) 另外,計算相應的驗證信息W1和W2:


USign.輸入公共參數par、簽名鑰sk以及部分簽名σ′,算法運行為:
1) 計算:Z1=e(g,gα-β).
2) 驗證下列等式是否成立:
Z1×W1=W2.
3) 如果等式成立,計算:

4) 隨機選擇s∈Zp,計算:
最終,消息m的簽名為σ={m,Γk,S,σ0,σ1,σ2}.
Transform.輸入公共參數par和簽名σ,算法運行如下:
1) 隨機選擇t∈Zp.





本節主要參考文獻[20-21],對提出的SA-VABS的正確性、不可偽造性、抗共謀攻擊以及匿名性進行了詳細的安全性分析.
SA-VABS方案的正確性證明:





Setup.首先選擇一個包含n個元素的虛擬屬性集D以及一個子集D′?D,其中|D′|=n-k*.




Pw,2=grw,



第2步,因為:

其中k1,k2都是可計算的,分別為



3) 簽名詢問(signing oracle).對每個消息m,C定義函數:
通過以上函數,對于一個消息m,存在:
① 如果J(M)=0,C中止游戲.
② 如果J(M)≠0,C隨機選擇r,rw,s0,s1,s以及s2∈Zp,使得:
簽名可以模擬為:
δ1=gr×gs0×grw=gr+s0+rw,




所以C可以計算出
如果用abort表示C在模擬過程中終止,定義事件Ei:J(Mi)≠0,i∈[q],E*:J(M*)=0,則C成功的概率為
由于我們所提出的SA-VABS方案在執行簽名驗證算法時包含消息m的部分是由驗證者來執行,m不參與中介簽名的產生,所以簽名者就無法勾結服務器基于消息m*執行SVerify算法去產生中介簽名,指導服務器欺騙驗證者慌稱中介簽名是基于m產生的.因此,我們所提出的SA-VABS方案有效地抵抗了簽名者和服務器的共謀攻擊,保證了SA驗證階段的安全性.
在SA-VABS方案中,消息m的簽名為

從式中可以看出簽名的產生只是通過選擇隨機數r,rw,s,s0,s1并沒有泄露用戶的屬性及訪問結構的任何信息.所以我們提出的SA-VABS方案實現了匿名性.
本節主要將提出的SA-VABS方案與其他的3種方案從功能和計算開銷方面進行對比,最后對方案進行了性能分析.
表2將提出的SA-VABS方案與方案OABS-II[13],SA-ABSR[19],SA-ABS[20]進行了功能對比.在表2中,SAS Secure和SAV Secure分別表示在SA簽名產生階段和SA驗證階段是否滿足安全性.SA-Sign和SA-Verify分別表示方案在簽名和驗證階段是否運用SA技術.空白代表方案沒有涉及.方案OABS-II[13]只是在簽名產生階段運用SA技術,雖然方案SA-ABSR[19]和SA-ABS[20]在簽名產生和驗證階段都用到了SA技術,但是它們不能對部分簽名的有效性進行驗證,因此不能抵抗服務器對部分簽名的偽造,而且方案SA-ABSR[19]不能抵抗簽名者和服務器的共謀攻擊.從表2可以看出SA-VABS方案在簽名產生和驗證階段都運用了SA技術,而且可以抵抗簽名者和服務器的共謀攻擊,最重要的是可以對部分簽名的有效性進行驗證,從而抵抗了服務器對部分簽名的偽造.因此我們的方案保證了SA簽名產生和驗證階段的安全性,所以我們的方案有更好的安全性.

Table 2 The Functional Comparison of Four Schemes
Note: “√” means that the requirement is met; “×” means that the requirement is not met.
表3將提出的SA-VABS方案與OABS-II[13],SA-ABSR[19],SA-ABS[20]進行了計算開銷的對比.Key.Gen,Sig.Gen,Verify分別表示簽名鑰產生、簽名產生以及用戶驗證的計算開銷.n和d分別表示默認的屬性集合和用戶的屬性集合.E,P,H分別表示指數運算、雙線性對運算以及Hash運算的時間消耗.對于計算開銷,從表3可以看出我們的方案在簽名鑰產生方面優于其他方案;在簽名驗證方面,我們的方案與最新的方案SA-ABS[20]持平.

Table 3 The Computational Overheads Comparison表3 計算開銷對比
在實驗中,我們使用JPBC(Java pairing based cryptography)庫[22]在裝有Intel Core i5-7440HQ 2.8 GHz處理器和8 GB內存的WINDOWS系統上進行仿真實驗.使用typeA類型的雙線性對在域Fp上構建橢圓曲線y2=x3+x.

Fig. 2 Time comparison of signature key generation圖2 簽名鑰產生的時間對比
在圖2中,將我們提出的SA-VABS方案和方案OABS-II[13],SA-ABSR[19],SA-ABS[20]對簽名鑰產生所消耗的時間進行了對比.默認的屬性集合大小設置為n=10,橫坐標表示用戶的屬性數量,縱坐標表示簽名鑰產生的時間.可以看出SA-VABS方案與方案SA-ABSR[19]的簽名鑰產生時間是恒定的,不會隨著用戶屬性的數量發生變化,而方案OABS-II[13]和SA-ABS[20]簽名鑰產生的時間隨著屬性的數量呈線性增長.因此,SA-VABS方案的簽名鑰產生效率有著明顯的優勢.圖3表示簽名產生所消耗時間的對比,這4個方案簽名產生的時間都保持不變,由于我們的SA-VABS方案在部分簽名生成時進行了有效性驗證,因此消耗的時間略高于方案SA-ABS[20].同樣,圖4表示簽名驗證所消耗時間的對比,不可否認的是SA-VABS的簽名驗證時間與最新方案SA-ABS[20]持平,略高于方案SA-ABSR[19],但是我們的SA-VABS方案有更好的安全性.總之,在我們的方案中,簽名鑰生成、簽名生成以及簽名驗證的時間消耗都是是恒定的,不會隨著用戶屬性的數量而增加.因此,我們的方案適用于資源受限的IIoT場景中.

Fig. 3 Time comparison of signature generation圖3 簽名產生的時間對比

Fig. 4 Time comparison of signature verification圖4 簽名驗證的時間對比
對于物聯網中資源受限的設備,普通ABS方案存在的挑戰是計算開銷過高.方案SA-ABSR[19]和SA-ABS[20]通過將簽名和驗證階段的主要計算委托給服務器來克服這種挑戰.但是這些方案都不能對服務器產生的部分簽名進行有效性驗證,可能造成服務器對部分簽名的偽造.基于此,我們提出一種SA-VABS方案,該方案不僅可以減小簽名和驗證階段的計算開銷,而且可以抵抗簽名者和服務器的共謀攻擊,最重要的是可以驗證部分簽名的有效性,防止服務器對部分簽名的偽造.最后,通過具體的安全性分析表明所提出的SA-VABS方案是安全的,并且通過仿真實驗和對比分析表明該方案是高效的.