陳紀(jì)成,包子健,羅敏,何德彪
(武漢大學(xué)國家網(wǎng)絡(luò)安全學(xué)院空天信息安全與可信計算教育部重點實驗室,湖北 武漢 430072)
隨著物聯(lián)網(wǎng)和5G 技術(shù)的不斷發(fā)展,工業(yè)物聯(lián)網(wǎng)(IIoT)成為工業(yè)領(lǐng)域的重要發(fā)展方向,可以有效提升工業(yè)生產(chǎn)的自動化和智能化水平[1]。工業(yè)物聯(lián)網(wǎng)繼承了物聯(lián)網(wǎng)“萬物互聯(lián)”的思想,在環(huán)境監(jiān)測[2]、智慧交通[3]、智能家居[4]等領(lǐng)域都得到了廣泛應(yīng)用,逐漸成為工業(yè)4.0 的核心應(yīng)用之一[5]。廣闊的應(yīng)用前景和巨大的利潤潛力,使其受到國內(nèi)外學(xué)術(shù)界的廣泛關(guān)注[6-8]。IIoT 利用局部網(wǎng)絡(luò)或互聯(lián)網(wǎng)等通信技術(shù),將傳感器、控制器和工作人員等連接在一起,實現(xiàn)信息化、遠程管理控制和智能化的網(wǎng)絡(luò)。通過與云計算、數(shù)據(jù)挖掘等技術(shù)相結(jié)合,工業(yè)物聯(lián)網(wǎng)可以更好地對工業(yè)數(shù)據(jù)進行分析,輔助生產(chǎn)過程中的決策[9-10];通過與數(shù)字簽名、區(qū)塊鏈等技術(shù)相結(jié)合,工業(yè)物聯(lián)網(wǎng)也可以實現(xiàn)更安全的遠程設(shè)備認(rèn)證與管理[11-12]。在工業(yè)物聯(lián)網(wǎng)環(huán)境中,各種智能設(shè)備(傳感器、控制器等)通常被部署在智慧工廠中作為數(shù)據(jù)收集終端或執(zhí)行終端,以獲取或接收工業(yè)數(shù)據(jù)[13]。專家或?qū)I(yè)技術(shù)人員可以通過向具有指令執(zhí)行功能的智能設(shè)備發(fā)送一系列操作指令,實現(xiàn)對設(shè)備的遠程控制。
然而,近年來針對工業(yè)基礎(chǔ)設(shè)施的網(wǎng)絡(luò)攻擊不斷增多,工業(yè)物聯(lián)網(wǎng)的安全問題也越來越引起人們的重視[14-15]。在工業(yè)物聯(lián)網(wǎng)遠程設(shè)備控制場景中,指令數(shù)據(jù)對生產(chǎn)過程具有很大的影響。如果一個惡意攻擊者向設(shè)備發(fā)送了惡意操作指令,可能會對工業(yè)生產(chǎn)造成嚴(yán)重破壞。因此,對遠程操作人員及其指令數(shù)據(jù)進行安全認(rèn)證,保證指令來自合法的操作人員,是工業(yè)物聯(lián)網(wǎng)安全運行的必要條件?;谏矸莸臄?shù)字簽名可以保證用戶發(fā)出的指令簽名是可驗證且不可偽造的,同時避免了基于公鑰基礎(chǔ)設(shè)施(PKI)的數(shù)字簽名方案中復(fù)雜的證書管理問題。為了保護操作人員的身份隱私,群簽名技術(shù)可以在數(shù)字簽名的基礎(chǔ)上隱藏簽名者的身份,并可以由群管理者公開某簽名的簽名者身份,從而兼顧指令簽名的匿名性和可監(jiān)管性,方便身份溯源和追責(zé)。同時,涉及關(guān)鍵操作的指令需要經(jīng)過不少于一人的確認(rèn)同意,且即使是合法用戶也可能存在部分指令錯誤或者不合規(guī)的情況,因此,在指令簽名之前需要對指令進行審核,設(shè)計兩方協(xié)同簽名則可以滿足此安全需求,此處兩方協(xié)同指的是簽名密鑰被分割為兩部分,簽名的過程由保管這兩部分密鑰的兩個人共同完成。
當(dāng)前,基于國密標(biāo)準(zhǔn)的兩方協(xié)同群簽名相關(guān)研究還較少,SM9 算法作為基于身份標(biāo)識的公鑰密碼,于2016 年成為國家標(biāo)準(zhǔn)[16]。為了實現(xiàn)國產(chǎn)密碼基礎(chǔ)設(shè)施自主可控,本文以國密SM9 密碼算法為基礎(chǔ),設(shè)計一種面向IIoT 的遠程安全指令控制系統(tǒng)。提出一種基于國密SM9 標(biāo)識密碼算法的兩方協(xié)同群簽名算法,結(jié)合區(qū)塊鏈實現(xiàn)面向工業(yè)物聯(lián)網(wǎng)的遠程安全指令控制系統(tǒng)方案。該方案基于國密標(biāo)準(zhǔn),遠程用戶以群ID 來生成對指令的合法簽名,且指令的簽名過程由發(fā)起者和群管理員協(xié)同完成,以實現(xiàn)指令簽名前的審核,避免關(guān)鍵指令誤用。通過引入?yún)^(qū)塊鏈技術(shù),實現(xiàn)IIoT 平臺的去中心化管理,通過智能合約對歷史操作記錄進行審計與追責(zé)。在驗證簽名階段通過批量驗證減少計算量,以滿足大量指令的驗證需求。最后進行安全性和性能分析,并與類似方案進行對比。
當(dāng)前已經(jīng)有學(xué)者針對數(shù)字簽名、區(qū)塊鏈等技術(shù)在保障物聯(lián)網(wǎng)安全方面進行了大量研究。文獻[17]提出一種智能家居安全互認(rèn)證系統(tǒng),該系統(tǒng)通過集成區(qū)塊鏈、群簽名等技術(shù),實現(xiàn)了對用戶訪問歷史的可靠審計、匿名驗證組成員和高效驗證家庭網(wǎng)關(guān)等功能。但是,該系統(tǒng)存在簽名權(quán)力集中、群簽名非國密化等問題。文獻[18]提出基于許可區(qū)塊鏈的匿名可追溯聚合簽名(PBATAS)方案,該方案使用智能合約驗證匿名來源并在實體之間共享加密材料,為IIoT 提供了可靠的監(jiān)管支持。文獻[19]提出基于證書的短簽名方案,并將其應(yīng)用于工業(yè)物聯(lián)網(wǎng)中,該方案的簽名驗證階段可以通過對多條簽名聚合實現(xiàn)批量驗證,從而節(jié)省驗證時間。此外,基于證書的簽名避免了基于身份標(biāo)識簽名的密鑰托管問題和無證書密碼體制的公鑰替換攻擊。針對VANETs 中車輛之間的安全認(rèn)證問題,文獻[20]重構(gòu)了一個安全高效的短群簽名方案,以實現(xiàn)域內(nèi)的可控匿名認(rèn)證。通過整合區(qū)塊鏈,該文提出了一個區(qū)塊鏈輔助的隱私保護跨域認(rèn)證協(xié)議BCGS,在BCGS 中,區(qū)塊鏈被用來實現(xiàn)可信信息共享,從而支持車輛之間的跨域認(rèn)證。
自2016 年SM9 標(biāo)識密碼算法正式成為國家密碼行業(yè)標(biāo)準(zhǔn)以來,對SM9 標(biāo)識密碼算法及其應(yīng)用的相關(guān)研究工作一直備受重視。文獻[21]提出一種基于身份認(rèn)證的多KGC 群簽名方案。在此基礎(chǔ)上,結(jié)合聯(lián)盟鏈的特點,該文設(shè)計一種基于SM9 算法的可證明安全區(qū)塊鏈隱私保護方案。文獻[22]提出基于SM9 商用密碼的標(biāo)識簽密方案,相較于先采用SM9數(shù)字簽名算法對數(shù)據(jù)進行簽名再利用SM9 加密算法加密簽名后的數(shù)據(jù)的方案,該方案在計算開銷和密文長度方面有明顯減少。文獻[23]提出一種基于SM9 算法的兩方協(xié)同盲簽名方案,該方案將簽名密鑰分割成兩部分,分配給2 個簽名者,兩方合作生成合法的盲簽名。文獻[24]提出一種基于SM9 門限簽名的電力終端安全認(rèn)證方案,該方案結(jié)合無證書標(biāo)識密碼和門限密碼,將SM9 私鑰進行分割和存儲,并采用電力終端與服務(wù)端交互計算后合成簽名的方法,解決了密鑰在電力終端安全便捷存儲和使用的問題。為提高智能家居系統(tǒng)中用戶簽名私鑰的安全性,文獻[25]基于SM9 數(shù)字簽名算法提出一種安全高效的兩方協(xié)同SM9 簽名方案,該方案通過協(xié)同密鑰生成算法生成用戶簽名私鑰,避免了單一KGC 功能過于集中的問題,降低了簽名主私鑰丟失的風(fēng)險。
群簽名是一種數(shù)字簽名的變體,旨在允許群體中的任何成員代表整個群體對消息進行匿名簽名。自群簽名于1991 年被提出以來[26],已經(jīng)受到廣泛的研究和關(guān)注。
相比于普通數(shù)字簽名,群簽名具有更好的隱私保護特性。當(dāng)簽名者需要保持匿名時,群簽名可以有效地保護其身份,而在發(fā)生糾紛時,群管理員可以打開群簽名以揭露簽名者的真實身份,這種機制保證了系統(tǒng)的可追溯性和安全性。基于身份的群簽名方案將身份標(biāo)識驗證與群簽名相結(jié)合,進一步保護用戶的隱私。這種方案在簽名時使用用戶的身份標(biāo)識作為簽名參數(shù)之一,以保證簽名是由一個合法用戶完成的,同時簽名仍然是匿名的。群簽名通常包含以下算法[27]:
1)創(chuàng)建:多項式時間概率算法,初始化系統(tǒng)參數(shù)并輸出群公私鑰。
2)群成員加入:輸入群成員提供的身份標(biāo)識信息,群管理員根據(jù)此信息生成用戶的私鑰。
3)簽名:多項式時間概率算法,輸入一個消息和一個群成員的私鑰,輸出對該消息的簽名。
4)驗證:任何人輸入原消息、該消息的簽名以及群公鑰后,輸出0 或1 以驗證簽名是否有效。
5)打開:輸入一個簽名和群私鑰,輸出該簽名者的身份信息。
區(qū)塊鏈?zhǔn)且环N分布式數(shù)據(jù)庫技術(shù),可以記錄數(shù)據(jù)和交易,將數(shù)據(jù)存儲在多個節(jié)點上并同步更新。區(qū)塊鏈的核心特點是去中心化、可信性和不可篡改性。智能合約是一種在區(qū)塊鏈上運行的自動化合約。智能合約是以編程的形式記錄在區(qū)塊鏈上的,可以自動執(zhí)行程序代碼,并且具有安全性、不可篡改性和可編程性的特點。智能合約可以與外部系統(tǒng)進行交互,可以用于自動化支付、數(shù)字身份驗證、票據(jù)追蹤等領(lǐng)域。
SM9 標(biāo)識密碼算法是一種基于身份標(biāo)識的密碼體制,2016 年被確定為商用密碼國家標(biāo)準(zhǔn),包括數(shù)字簽名、密鑰交換和公鑰加密3 個部分。該算法采用256 bit 的BN 曲線來實現(xiàn)雙線性對運算,并基于q-BDHI 困難問題。SM9 數(shù)字簽名算法包括數(shù)字簽名生成算法和驗證算法。簽名者使用由密鑰生成中心根據(jù)自己的身份標(biāo)識生成的私鑰和待簽名的消息生成數(shù)字簽名,驗證者使用簽名者的標(biāo)識以及系統(tǒng)公鑰生成驗證公鑰以驗證簽名的有效性。本文方案中的SM9 數(shù)字簽名算法包含如下算法:
3)簽名驗證算法:驗證者收到消息M和簽名值(h,S)后,依次計算P=[H1(IDi)]P2+Ppub-s,u=e(S,P),w=u?gh,并驗證等式h=H2(M||w)是否成立。若成立,則簽名驗證通過;否則,驗證失敗。
關(guān)于SM9 密碼算法的其他信息以及應(yīng)用情況見文獻[28-29]。
本文提出的IIoT 遠程安全指令控制系統(tǒng)模型如圖1 所示,共包含4 個模塊,分別為注冊中心、用戶群、智能網(wǎng)關(guān)以及部署物聯(lián)網(wǎng)設(shè)備的智慧工廠,其中,用戶群包括群管理員和其他群成員。各部分具體如下:
圖1 面向IIoT 的遠程安全指令控制系統(tǒng)模型Fig.1 System model of security remote command control for IIoT
1)注冊中心:負責(zé)群管理員和智能網(wǎng)關(guān)注冊。
2)用戶群:包含群管理員和遠程用戶,群管理員負責(zé)群成員加入、群成員的密鑰生成、指令的審核以及群簽名的協(xié)同生成,遠程用戶負責(zé)發(fā)起指令并與群管理員協(xié)同對指令數(shù)據(jù)進行簽名。
3)智能網(wǎng)關(guān):作為區(qū)塊鏈節(jié)點,負責(zé)驗證簽名合法性、維護區(qū)塊鏈、部署智能合約以及與智慧工廠的數(shù)據(jù)轉(zhuǎn)發(fā)。
4)智慧工廠:包含智能設(shè)備,負責(zé)指令執(zhí)行。
本文設(shè)計一種基于SM9 標(biāo)識密碼算法的兩方協(xié)同群簽名算法,并結(jié)合區(qū)塊鏈提出了面向工業(yè)物聯(lián)網(wǎng)的遠程安全指令控制系統(tǒng)方案,方案主要包含5 個階段,即系統(tǒng)初始化及群建立階段、群成員加入階段、簽名階段、驗證簽名階段和指令執(zhí)行階段,簡要的工作流程如圖2 所示。當(dāng)有需要時,還可以執(zhí)行打開階段和撤銷階段來獲取某個簽名者身份或撤銷某個群成員。
圖2 本文方案工作流程Fig.2 The work flow of the scheme in this paper
在用戶端,根據(jù)實際的成員組織管理情況確定不同的群并指定該群的管理者。輸入安全參數(shù)λ,輸出 SM9 標(biāo)識密碼算法的安全公共參數(shù){G1,G2,GT,P1,P2,e,N,hid,H1,H2},其 中,N是大素 數(shù)且N>2λ,G1、G2為N階循環(huán)子群,P1、P2分別是其生成元,存在P1=φ(P2),雙線性對e的值域為N階乘法循環(huán)群GT。hid 為KGC 選擇并公開地用一個字節(jié)標(biāo)識的簽名私鑰生成函數(shù)識別符。2 個密碼雜湊函數(shù)分別為H1:{0,1}*→,H2:{0,1}n×GT×N→,KGC另外選擇一個密碼雜湊函數(shù)H2:{0,1}n×GT→。在一個群中,密鑰生成中心KGC 同時也是群管理者GM,生成群公私鑰對,具體為:KGC 選擇隨機數(shù)ks?[1,N-1]作為主私鑰(或群私鑰),計算G2中的元素Ppub-s作為群公鑰,g=e(P1,Ppub-s),因此,群公私鑰為(ks,Ppub-s)。群管理者GM 的身份標(biāo)識為IDGM(其中含有隨機數(shù),為方便描述,隨機數(shù)不在表達式中標(biāo)出,下同),計算t=H1(IDGM||hid,N)+ks,若t≠0,則秘密保存(ks,t),公開(IDGM,Ppub-s);否則,重新選擇IDGM中的隨機數(shù)。
在IIoT 端,智能網(wǎng)關(guān)初始化區(qū)塊鏈并作為全節(jié)點加入?yún)^(qū)塊鏈網(wǎng)絡(luò),部署相應(yīng)的智能合約。
根據(jù)系統(tǒng)需要,身份為IDA的成員A 可以申請加入群管理者為IDGM的群。輸入身份IDA,GM 計算t1=H1(IDA||hid,N)+ks。若t1=0,則成員A 更換IDA中的隨機數(shù)并重新執(zhí)行本階段;否則,GM 計算t2=ks?,t3=ks?t-1,選擇隨機數(shù)a,b?[1,N-1],計算成員A 的部分簽名私鑰,其中=bP1。同時,GM 計算簽名私鑰的另一部分其中,GM 秘密保存GM 通過安全信道將DA發(fā)送給成員A,并將A 的身份加入群成員名單L={IDi|i=1,2,…,n},至此,成員A 成功加入群。
3.3.1 用戶A 發(fā)起簽名
如果用戶A 準(zhǔn)備操作設(shè)備B 完成指令I(lǐng),首先構(gòu)造指令消息M={B,I,IDGM,timestamp},其中,timestamp 是當(dāng)前的時間戳。接下來,用戶A 執(zhí)行以下步驟:
步驟1計算群GT中的元素g=e(P1,Ppub-s)。
步驟2選取隨機數(shù)r?[1,N-1],依次計算P3=[r]P2、P4=[r](H1(IDA||hid,N)P2+Ppub-s)=[r?t1]P2。
步驟3用戶A 向群管理員發(fā)起簽名請求,包含消息{M,P3,P4}。
3.3.2 群管理員確認(rèn)簽名
群管理員接收到用戶A 的簽名請求后,首先檢查指令M是否符合規(guī)定要求,若不符合則拒絕該請求,若符合,則群管理員GM 執(zhí)行以下步驟:
步驟1按照群 成員名 單L,計 算ti=H1(IDi||hid,N)+ks,i=1,2,…,n,并驗證等式P4=tiP3是否成立,若成立,則確定該成員身份IDi;否則,令i=i+1,重新執(zhí)行此步驟。若驗證完所有用戶的身份標(biāo)識后都不成立,則說明用戶不在群中,拒絕此申請。
步驟2查詢,選取隨機數(shù)r1,r2?[ 1,N-1],依次計算將{ω1,ω2,ω3}發(fā)送回用戶A。
3.3.3 用戶生成部分簽名
用戶A 收到{ω1,ω2,ω3}后,選擇隨機數(shù)r3,r4?[ 1,N-1],依次計算h=H2(M||ωA,N),hA=r4-h(modN)。將hA發(fā)送至GM。
3.3.4 GM 生成部分簽名
GM 生成部分簽名的步驟如下:
步驟1群管理員收到hA后,依次計算s1=將發(fā)送回用戶A。
步驟2GM 計算對于hA的打開參數(shù)=,秘密保存(P3,)。
3.3.5 用戶合成簽名
用戶A 收到群管理員返回的消息后,計算S1=,輸 出簽名σM={h,P3,P4,S1,S2},將{M,σM}發(fā)送至智能網(wǎng)關(guān)。
步驟1依次計算g=e(P1,Ppub-s),t=gh',h1=H1(IDGM||hid,N),P=[h1]P2+Ppub-s。
步驟2計算,若等式u1=u2成立,則進行下一步;否則,簽名驗證不通過。
步驟3依次計算H2(M||ω,N),若等式h=h'成立,則可以確定該簽名來自合法的群成員;否則,該簽名驗證失敗。
驗證過程需要進行雙線性對運算,計算量較大,當(dāng)簽名數(shù)量較多時,繁重的計算可能會使系統(tǒng)崩潰。因此,當(dāng)驗證k條簽名時,本文通過批量驗證減少計算量。具體如下:
步驟1提前預(yù)計算g=e(P1,Ppub-s),h1=H1(IDGM||hid,N),P=[h1]P2+Ppub-s。
步驟2計算若等式U1=U2成立,則進行下一步;否則,簽名中有非法簽名。
步驟3對于i=1,2,…,k,分別依次計算ti=ghi,若等式hi成立,則可以確定該簽名來自合法的群成員;否則,該簽名無效。
在驗證簽名成功后,智能網(wǎng)關(guān)將指令發(fā)送至對應(yīng)的智能設(shè)備B,設(shè)備B 執(zhí)行結(jié)束后,將執(zhí)行結(jié)果返回給網(wǎng)關(guān),網(wǎng)關(guān)將通過智能合約上傳至區(qū)塊鏈,ret 為執(zhí)行結(jié)果。
如果需要確認(rèn)某個消息M中的某個操作指令I(lǐng)的執(zhí)行者身份(即該指令的簽名者身份),則該執(zhí)行者所在群的群管理員GM 進行此階段的計算,具體描述如下:
步驟1GM 調(diào)用區(qū)塊鏈中的智能合約接口獲取需要執(zhí)行打開操作的消息及對應(yīng)的簽名{Mi,σMi}。
步驟2GM 根據(jù)P3檢索得到,計算用以查詢,根據(jù)查詢得到IDA。
當(dāng)用戶A 需要被撤銷時,GM 在群成員名單L={IDi|i=1,2,…,n}中刪除IDA以及即可。
因此,若簽名σM是合法的,則h2=h成立。同理可證明批量驗證時的正確性,在此不再贅述。
根據(jù)基于身份的簽名(IBS)的安全模型,方案需滿足簽名的不可偽造性、匿名性、可追蹤性等安全特性并能夠抵御各種攻擊。本節(jié)通過對所提方案中群簽名的不可偽造性、匿名性以及可追溯性進行分析,證明方案滿足安全性需求。KGC 負責(zé)生成用戶的私鑰,在知道用戶身份信息的前提下可以偽造任意群內(nèi)的用戶簽名,因此,本文假設(shè)KGC 是絕對安全可信的。
不可偽造性要求敵手無法創(chuàng)建正確的證明,證明某個群成員生成了某個有效簽名,除非這個用戶確實生成了這個簽名。由于密碼雜湊函數(shù)H1、H2都具有單向性且橢圓曲線上的離散對數(shù)問題是困難的,敵手通過獲取隨機數(shù)a、b的概率是可忽略的。假設(shè)敵手猜測用戶A的部分私鑰為則可以得到S1=的概率為1/N,是可忽略的。因此,在隨機諭言機模型下,如果q-SDH 問題是困難的,那么本文設(shè)計的群簽名具有不可偽造性。
匿名性要求除群管理者外的任何人都很難從群簽名中恢復(fù)原始簽名者的身份。在簽名驗證過程中,輸入的參數(shù)全部為公開參數(shù),不包括用戶身份IDA。通過計算ti=H1(IDi||hid,N)+ks,i=1,2,…,n并驗證等式P4=tiP3可以確定成員身份。敵手在不知道KGC 的主私鑰ks的情況下,根據(jù)P3、P4以及S1、S2計算出用戶身份的概率是可忽略的。另外,由于隨機數(shù){r,r1,r2,r3,r4}在每次簽名中都是變化的,因此同一個人對同一個消息的前后2 次簽名σM也是不相關(guān)的,簽名具有不可鏈接性。
可追溯性要求敵手無法生成群管理者不能打開的簽名,或者敵手能夠打開但無法產(chǎn)生正確證明的簽名。由于GM 對于每一個簽名都秘密保存其中包含簽名者的身份信息,因此只要有合法簽名生成,管理員一定可以打開。計算得到時,如 果CDH 問題是困難的,那么敵手在無法得到ks或r的情況下計算H3(ks?P3)=H3(r?Ppub-s)是困難的。
在簽名過程中,由于群成員需要和GM 進行交互,因此容易受到惡意攻擊。一些常見攻擊對本文方案的影響分析如下:
1)重放攻擊:由于指令數(shù)據(jù)M包含時間戳,GM可以在驗證M的同時驗證消息的時效性。
2)中間人攻擊:假如用戶A 發(fā)起簽名請求后被敵手B 截獲,敵手B 將指令M更換為M',并繼續(xù)發(fā)送給GM,B 將{ω1,ω2,ω3}轉(zhuǎn)發(fā)給A,A 會繼續(xù)根據(jù)M生成哈希值hA,即使B 自己生成關(guān)于M'的h'A,由于不知道A 的部分私鑰,B 也無法成功偽造{S1,S2}。
3)去同步化攻擊:在簽名過程中,由于不存在存儲表的更新,因此無法實施去同步化攻擊。
分析比較本文方案與文獻[17,19,25]中的方案,這些方案的簽名都具有不可偽造性,因此在匿名性、可追溯性和是否支持協(xié)同簽名3 個方面進行比較,結(jié)果如表1 所示。從表1 可以看出,本文方案滿足全部安全特性。
表1 方案安全特性比較Table 1 Comparison of security features of schemes
本節(jié)首先分析所提方案的通信消耗,并與文獻[25]方案進行比較。文獻[25]方案也是采用兩方協(xié)同簽名來實現(xiàn)的,因此比較協(xié)同簽名生成和簽名發(fā)送過程中的通信消耗(不考慮存儲消耗),結(jié)果如表2 所示,其中,|G1|、|G2|和|GT|分別表示群G1、G2和GT中元素的大小,|M|為消息長度。
表2 方案通信消耗比較Table 2 Comparison of communication cost of schemes
結(jié)合表1 和表2 可知,為了實現(xiàn)匿名性和可追溯性,本文方案相比文獻[25]方案增加了部分通信消耗。對于發(fā)起簽名的用戶來說,在簽名生成階段,本文方案相比文獻[25]方案增加了2|G2| +|M|長度的消耗,在簽名發(fā)送階段增加了|G1| +2|G2|長度的消耗。
接下來分析本文方案的計算消耗,并與文獻[17,19,25]中的方案進行比較。由于運算代價主要集中在雙線性對運算TB、群GT中指數(shù)運算TE、Map to point 哈希運算TH和群G1、G2中元素 的標(biāo)量乘運算TM,因此只考慮這4 種運算在方案中的使用次數(shù),其他如哈希運算、模逆運算等計算量較小的操作此處不作考慮。另外,群成員私鑰生成后短時間內(nèi)不會再執(zhí)行此階段操作,簽名的打開和成員的撤銷也不會頻繁進行,因此只對比簽名和驗簽的計算消耗。計算消耗對比結(jié)果如表3 所示。
表3 方案計算消耗比較Table 3 Comparison of calculate cost of schemes
結(jié)合表1 和表3 可知:文獻[19]方案計算量最小,但是不提供匿名性、可追溯性,不支持協(xié)同簽名;文獻[17]方案計算量次之,但是不支持協(xié)同簽名;文獻[25]方案比本文方案計算量略低,但是不提供匿名性、可追溯性。本文方案在驗簽階段可以對多條簽名進行批量驗證以減少計算量,當(dāng)有n條簽名時,正常驗簽時間消耗為3nTB+nTE,批量驗證時間消耗為(n+2)TB+nTE,因此,簽名數(shù)量越多(即n越大),批量驗證節(jié)省的時間也越多。經(jīng)計算可得,在簽名數(shù)量超過20 條時,本文方案通過批量驗證節(jié)省的時間超過50%。
本文方案在簽名和驗簽階段用戶的計算量比其他方案略高,但是提供了更好的安全特性,在計算消耗較大的驗簽階段可以通過對多條簽名進行批量驗證以減少計算時間消耗,相對多付出的計算代價對于用戶和計算能力較強的智能網(wǎng)關(guān)來說處于可接受的范圍內(nèi),因此,本文方案在工業(yè)物聯(lián)網(wǎng)環(huán)境中具備實用性。
針對工業(yè)物聯(lián)網(wǎng)中的遠程指令控制場景,為兼顧該場景中指令合法性認(rèn)證、簽名者身份匿名性和可監(jiān)管性,本文設(shè)計一種基于SM9 數(shù)字簽名算法的兩方協(xié)同群簽名算法,結(jié)合區(qū)塊鏈技術(shù)實現(xiàn)工業(yè)物聯(lián)網(wǎng)中的遠程安全指令控制方案。該方案基于SM9國密標(biāo)準(zhǔn),允許遠程用戶以群ID 來生成對指令的合法簽名,在保證指令發(fā)起者匿名性的同時,允許群管理員打開簽名以公開簽名者身份,同時需要群管理員審核簽名并共同完成簽名以防止關(guān)鍵指令出現(xiàn)錯誤和不合規(guī)的情況。安全性和性能分析結(jié)果表明,相較對比方案,本文方案能更好地滿足應(yīng)用場景中的安全性需求,雖然增加了一定的計算和通信消耗,但是對于用戶和計算能力較強的智能網(wǎng)關(guān)而言處于可接受范圍內(nèi),且簽名驗證過程可以通過批量驗證來有效減少計算量,使得方案可以較好地兼顧安全性和實用性。由于本文方案沒有考慮指令的隱私保護,無論是在協(xié)同簽名還是在簽名發(fā)送的過程中,指令數(shù)據(jù)都以明文傳送,且方案只是完成了兩方協(xié)同簽名,難以滿足需要2 人以上共同簽名的場景需求。因此,下一步會將該方案改進為(t,n)門限群簽密,在用戶群中通過使用廣播加密來秘密傳輸某個要執(zhí)行的指令,以達到保護指令數(shù)據(jù)隱私安全以及多方協(xié)同簽名的目的。