茅磊
摘要:隨著5G通信技術(shù)和電子技術(shù)的不斷發(fā)展,物聯(lián)網(wǎng)設(shè)備已被廣泛應(yīng)用于商業(yè)、醫(yī)療、交通、工業(yè)等各項領(lǐng)域。然而物聯(lián)網(wǎng)設(shè)備由于自身存儲空間有限、計算能力弱,導致其終端采集的數(shù)據(jù)需要上傳到云端才能進行復(fù)雜的數(shù)據(jù)處理。數(shù)據(jù)在上傳云端時,保證其完整性是一個重要研究內(nèi)容。該文在我國商用基于標識的密碼算法標準——SM9的基礎(chǔ)上,設(shè)計了一種適用于檢測物聯(lián)網(wǎng)中云端海量數(shù)據(jù)的完整性的同態(tài)簽名方案。文章首先詳細介紹了基于標識同態(tài)簽名的形式化定義、安全模型、具體方案,然后分析了其安全性,最后通過JPBC密碼學庫對上述方案的性能進行了仿真實驗。實驗結(jié)果表明,該同態(tài)簽名方案可以提升驗證物聯(lián)網(wǎng)系統(tǒng)云端數(shù)據(jù)完整性的速率。
關(guān)鍵詞:同態(tài)簽名;SM9簽名算法;物聯(lián)網(wǎng)技術(shù);信息安全;密碼學
中圖分類號:TP393? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2023)31-0088-03
開放科學(資源服務(wù))標識碼(OSID)
物聯(lián)網(wǎng)技術(shù)的快速發(fā)展給人們的日常生活帶來了極大的便利。物聯(lián)網(wǎng)主要是通過各種無線傳感設(shè)備、射頻識別設(shè)備以及定位系統(tǒng)等相關(guān)技術(shù)采集獲取現(xiàn)實世界中的各種數(shù)據(jù),并使用各種智能分析方法對信息進行加工處理,從而達到對客觀世界的感知,進一步實現(xiàn)智能控制與決策。無論是在軍事、工業(yè)、農(nóng)業(yè)、交通、醫(yī)療衛(wèi)生、智慧城市以及智能家居等各種領(lǐng)域都能看到物聯(lián)網(wǎng)的應(yīng)用,例如在智能家居系統(tǒng)中,物聯(lián)網(wǎng)技術(shù)可以將安防、智能家庭/建筑、信息家電、室內(nèi)燈光控制、地板采暖、居家健康保健、衛(wèi)生防疫等有機結(jié)合在一起,通過網(wǎng)絡(luò)化綜合智能控制和管理,實現(xiàn)更舒適方便、更安全環(huán)保的全新家居生活體驗[1]。
物聯(lián)網(wǎng)的終端一般是各種無線傳感設(shè)備,它們負責收集、采集四周的環(huán)境數(shù)據(jù),但由于物聯(lián)網(wǎng)終端設(shè)備往往存在存儲容量小、計算能力弱等特點,所以物聯(lián)網(wǎng)終端收集的數(shù)據(jù)一般存放于第三方云端,并由云服務(wù)商提供數(shù)據(jù)的處理和共享服務(wù)。云作為一種擁有巨大計算能力和存儲容量的先進技術(shù),可以對物聯(lián)網(wǎng)設(shè)備采集到的海量數(shù)據(jù)進行存儲和分析,使得物聯(lián)網(wǎng)設(shè)備變得越來越智能化。然而,盡管物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)存儲在云端的方式有很多吸引人的優(yōu)點,但是也出現(xiàn)了許多令人擔憂的數(shù)據(jù)安全問題。數(shù)據(jù)放在云端使得用戶失去了對其物理占有和控制,數(shù)據(jù)的擁有者會擔心存放在云端數(shù)據(jù)有可能被云服務(wù)商有意無意地刪除和篡改。不誠實的云服務(wù)商可能會因為經(jīng)濟原因刪除一些長期沒有訪問的數(shù)據(jù),但對外仍聲稱數(shù)據(jù)被很好地保存,有時還會對數(shù)據(jù)丟失的事件避而不談,以免對其自身的經(jīng)濟和信用造成損失。因此,越來越多的學者對存放在云端數(shù)據(jù)的完整性保護展開了研究。賽偉等人[2]針對云數(shù)據(jù)的完整性展開研究,分析了在物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)云存儲中的安全挑戰(zhàn),提出了云存儲數(shù)據(jù)完整性的驗證框架和設(shè)計目標。董一瀟等人[3]提出了基于國密SM9算法的物聯(lián)網(wǎng)安全解決方案,文中分析了SM9算法的優(yōu)勢,并詳細論述了SM9在物聯(lián)網(wǎng)的應(yīng)用層、網(wǎng)絡(luò)層和感知層的部署架構(gòu)。郭良等人[4]以無線射頻識別(RFID) 和無線傳感器網(wǎng)絡(luò)(WSN) 為主線,分析了物聯(lián)網(wǎng)自動遠程交互技術(shù)的深滲透性,對其主要存在的安全問題給出了解決途徑,并對下一代物聯(lián)網(wǎng)可能的安全問題進行了討論。高昊昱等人[5]把區(qū)塊鏈技術(shù)引入數(shù)據(jù)完整性保護領(lǐng)域,將現(xiàn)有數(shù)據(jù)完整性保護技術(shù)分類并與區(qū)塊鏈數(shù)據(jù)完整性保護技術(shù)進行比較,分析傳統(tǒng)數(shù)據(jù)完整性保護技術(shù)的不足與區(qū)塊鏈數(shù)據(jù)完整性保護技術(shù)的優(yōu)勢,在此基礎(chǔ)上總結(jié)傳統(tǒng)數(shù)據(jù)完整性保護技術(shù)的不足之處,并給出解決思路。錢萍[6]提出了基于同態(tài)橢圓曲線加密(ECC) 算法的物聯(lián)網(wǎng)數(shù)據(jù)隱私保護方法和基于同態(tài) Hash 函數(shù)的隱私保護方法,實現(xiàn)了物聯(lián)網(wǎng)安全認證和數(shù)據(jù)驗證隱私保護,并深入分析了基于安全路由協(xié)議的物聯(lián)網(wǎng)隱私保護方法和安全網(wǎng)絡(luò)編碼的物聯(lián)網(wǎng)隱私保護方法。
1 相關(guān)工作
1.1 SM9基于標識密碼算法介紹
商密SM9密碼算法是我國自主研發(fā)的一種基于標識的商用密碼算法,現(xiàn)執(zhí)行標準為《GB/T 38635.1-2020信息安全技術(shù)SM9標識密碼算法第1部分:總則》和《GB/T 38635.2-2020 信息安全技術(shù)SM9標識密碼算法第2部分:算法》,包括SM9密鑰封裝協(xié)議、數(shù)字簽名算法、密鑰交換算法和公鑰加解密算法[7]。與傳統(tǒng)的公鑰密碼算法不同,SM9基于標識的密碼算法在使用部署時,直接采用用戶的標識信息(例如郵箱地址、公民的身份證號、電話號碼等)作為公鑰,使用過程中無須預(yù)先協(xié)商交換證書,減少了傳統(tǒng)公鑰密碼系統(tǒng)中頒發(fā)公鑰證書、維護公鑰證書、密鑰庫管理等環(huán)節(jié),從而極大地降低了傳統(tǒng)公鑰密碼體系統(tǒng)中公鑰證書存儲校驗和計算等方面的開銷,為公鑰密碼學開辟了新的研究方向。
商密SM9密碼算法在設(shè)計上采用了有限域、橢圓曲線上雙線性映射運算的相關(guān)技術(shù),安全性能上有極高的保障,SM9算法的加密強度相當于RSA 3072位的安全強度,現(xiàn)有計算能力在有限的時間內(nèi)很難實施有效的攻擊[8],因此使用基于SM9算法保護用戶數(shù)據(jù)將無須擔心被竊聽和篡改。2017年,SM9數(shù)字簽名算法被確定為ISO/IEC國際標準。王明東等人[9]對SM9算法BN曲線R-ate雙線性對中的模冪運算優(yōu)化設(shè)計,大幅度降低了R-ate雙線性對計算復(fù)雜度、提高算法的執(zhí)行效率,并通過實驗證明與傳統(tǒng)實現(xiàn)方式相比,使用他們的方法SM9的性能提升了近3倍。方婷等人[10]在跨區(qū)域醫(yī)療背景下設(shè)計了協(xié)同雙向SM9身份驗證方案,該方案是DH算法和國密SM9算法的相結(jié)合,使用DH算法協(xié)商出的共同密鑰作為驗證因子,并結(jié)合數(shù)字簽名實現(xiàn)雙向驗證?;赟M9密碼算法的應(yīng)用目前已有很多研究成果,SM9算法中數(shù)字簽名實現(xiàn)過程如圖1所示。
1.2 基于SM9同態(tài)簽名在物聯(lián)網(wǎng)中數(shù)據(jù)完整性檢測的應(yīng)用
密碼學中的數(shù)字簽名技術(shù)可以為互聯(lián)網(wǎng)、云存儲中的數(shù)據(jù)提供真實性、完整性和不可否認性的有力保障。同態(tài)簽名是一種特殊的數(shù)字簽名,假設(shè)簽名的消息空間[M]中運算為#、簽名空間[Θ]中的運算為[*],對于來自[M]和[Θ]上的消息簽名對[m1,λ1]和[m2,λ2](其中[λ1=fm1],[λ2=fm2]) ,若簽名算法f是代數(shù)系統(tǒng)[M,#]到[Θ,*]上同態(tài)映射,則有[fm1#m2]=[fm1*fm2]=[ λ1*λ2]成立。同態(tài)簽名特有的上述性質(zhì)在物聯(lián)網(wǎng)的無線傳感網(wǎng)絡(luò)和云端數(shù)據(jù)完整性驗證中有著重要的實用價值。
在物聯(lián)網(wǎng)系統(tǒng)中的無線傳感器每時每刻都在收集應(yīng)用場景中的相關(guān)數(shù)據(jù),通過網(wǎng)絡(luò)上傳至云平臺中進行分析處理。如果這些收集到的數(shù)據(jù)在互聯(lián)網(wǎng)中傳輸時或者在云端存儲時,受到破壞,那么錯誤的數(shù)據(jù)就會直接影響物聯(lián)網(wǎng)系統(tǒng)的正常工作。若采用普通的數(shù)字簽名來保證采集數(shù)據(jù)的完整性,對于每一時刻收集的數(shù)據(jù)都要對其進行計算簽名,然后將數(shù)據(jù)和對應(yīng)的簽名通過網(wǎng)絡(luò)傳送至云平臺進行處理。這種方式不但會增加網(wǎng)絡(luò)中傳輸?shù)拇鷥r,而且當需要檢驗存儲在云端數(shù)據(jù)的完整性時,還要逐一下載驗證每一個數(shù)據(jù)塊對應(yīng)的簽名,這樣的驗簽方式對于海量數(shù)據(jù)而言并不實用。使用同態(tài)簽名則可以減少上述動態(tài)增長數(shù)據(jù)簽名的數(shù)量,降低簽名驗證時的代價。在物聯(lián)網(wǎng)系統(tǒng)中可以將一個終端設(shè)備在一段時間內(nèi)收集的數(shù)據(jù)看成一個數(shù)據(jù)集,該數(shù)據(jù)集中的簽名在產(chǎn)生后使用上述同態(tài)組合算法進行運算得到一個同態(tài)簽名,最后只需將該數(shù)據(jù)集中的數(shù)據(jù)打包和生成的同態(tài)簽名一起通過網(wǎng)絡(luò)傳至云平臺保存。云端在驗證用戶數(shù)據(jù)完整性時,只需驗證該同態(tài)簽名是否合法,即可判定云端的對應(yīng)數(shù)據(jù)的完整性。
綜上,由于商密SM9算法具有高度的安全保障,因此本文將研究適應(yīng)于物聯(lián)網(wǎng)系統(tǒng)的SM9同態(tài)簽名算法,有效地提升物聯(lián)網(wǎng)系統(tǒng)無線傳感網(wǎng)中檢驗數(shù)據(jù)完整性時驗簽的效率。
2 基于SM9的同態(tài)簽名方案
2.1 基于SM9同態(tài)簽名算法描述
1) 系統(tǒng)建立算法
KGC輸入系統(tǒng)安全參數(shù)[1k]和正整數(shù)N后,輸出系統(tǒng)的公開參數(shù)params[=(G1,GT,N,e,g,Ppub,H0,H1,H2,φ)],其中,[G1,G2,GT]是N階的循環(huán)群,[P1]是[G1]的生成元,[P2]是[G2]的生成元;雙線性映射[e:G1×G2→GT]。[φ]是[G2]到[G1]上的同態(tài)映射[φP2=P1];計算[GT]中的元素[g=eP1,Ppub-s];系統(tǒng)主私鑰[s∈Z*N],[ Ppub-s=ks?P2];密碼學Hash函數(shù)分別為:[H0]:[0,1*→Z*N],[H1]:[0,1*→Z*N],[ H2:{0,1}*→G1]。
2) 用戶私鑰提取算法
系統(tǒng)輸入公開參數(shù)params,用戶標識[ID∈{0,1}*]和主私鑰[s],計算[h*=H0(ID)],再計算用戶的簽名私鑰[dsID=ks(h*+ks)-1?P1],最后通過秘密信道將[dsID]發(fā)送給用戶。
3) 簽名算法
系統(tǒng)輸入公開參數(shù)params,用戶標識ID,用戶私鑰[dsID],數(shù)據(jù)集標識信息[M]和消息向量[m=m1,m2,...,mn∈ZnN],簽名用戶選擇兩個隨機數(shù)[α,r∈Z*N]。如下計算消息的簽名[?]:
①計算 [w=eP1,Ppub-sr]和[Q=α?P2]
②計算 [h=H1(M∥w)]
③計算 [l=r-h mod N]
④計算 [ε=l?dsID]
⑤設(shè)置數(shù)據(jù)集標簽 [τ=(h,w,ε,Q)]
⑥計算 [Ti=H2ID∥τ∥i]
⑦計算 [σ=α?i=1nmi?Ti]
⑧輸出的簽名為:[?]=([τ,σ])
4) 同態(tài)組合算法
輸入用戶標識ID和[k]個元組[βi,mi,σiki=1],輸出導出的向量簽名對:[y=i=1kβi?mi],[σ=i=1kβi?σi]。
5) 驗證算法
系統(tǒng)輸入公開參數(shù)params,用戶標識ID,數(shù)據(jù)集標識信息[M],消息向量[y=(y1,y2,...,yn)∈ZnN]和由數(shù)據(jù)集標簽[τ=(h,w,ε,Q)]所標識數(shù)據(jù)集中的消息向量[y=(y1,y2,...,yn)∈ZnN]對應(yīng)的簽名[?]=([τ,σ])。系統(tǒng)輸出簽名驗證是否合法的結(jié)果,如果合法則輸出1,否則輸出0。
驗證的過程為:
①計算[h*=H0(ID)]
②[P=h*P2+Ppub]
③[w'=eε,PeP1,Ppubh]
④[h'=H1(M∥w')]
驗證是否有[h'=h]成立,若成立則進入下一步,否則輸出0。
接下來驗證下面的等式是否成立,其中[Ti=H2ID∥τ∥i]:
[eσ,P2=ei=1nyi?Ti,Q]
如果上式成立則該算法輸出1,否則輸出0。
2.2 基于SM9同態(tài)簽名的安全性分析
賴建昌等人[11]在文獻中基于q-SDH困難問題假設(shè),已證明標準的商密SM9數(shù)字簽名算法在隨機預(yù)言模型下滿足適應(yīng)性選擇消息、標識攻擊下的存在性不可偽造 (existentially unforgeable against adaptive chosen message and identity attacks, EUF-CMIA)的安全性?;跇俗R的SM9同態(tài)簽名方案在安全性能上應(yīng)能達到適應(yīng)性選擇數(shù)據(jù)集、適應(yīng)性選擇標識下的存在性不可偽造(existentially unforgeable against adaptive chosen dataset and identity attacks, EUF-CDIA)。因為本文設(shè)計的基于SM9同態(tài)簽名的數(shù)據(jù)集標簽[τ]是由標準的SM9簽名算法產(chǎn)生的,所以本方案中的數(shù)據(jù)集標簽不可偽造,本文提出的同態(tài)簽名方案滿足同態(tài)簽名方案EUF-CDIA的安全性。
3 基于SM9同態(tài)簽名方案性能實驗
本節(jié)針對上述設(shè)計的基于SM9同態(tài)簽名方案使用Java語言編程進行了仿真實驗。在仿真實驗中使用斯坦福大學開發(fā)的JPBC庫(The Java Pairing-Based Cryptography Library)。測試環(huán)境的硬件配置為CPU(Intel Core i7 @2.2GHz),內(nèi)存16GB,操作系統(tǒng)Windows 10 (x64) 教育版。仿真實驗選取的比較對象為標準的SM9簽名方案。仿真實驗中選取的每個數(shù)據(jù)塊大小為5MB,分別使用標準的SM9簽名方案和本文設(shè)計的SM9同態(tài)簽名方案依次對10個、20個、……、50個上述實驗數(shù)據(jù)塊進行簽名和驗證。由此得到的驗簽上述數(shù)據(jù)塊組簽名時所花費的時間數(shù)據(jù)如圖2所示。
從該實驗結(jié)果中可以發(fā)現(xiàn),使用標準的SM9數(shù)字簽名方案和本文設(shè)計的同態(tài)簽名方案,對于每個數(shù)據(jù)塊都要使用簽名算法進行簽名運算得到各數(shù)據(jù)塊對應(yīng)的簽名,并把每個數(shù)據(jù)塊和其對應(yīng)的簽名保存起來。從實驗結(jié)果可以看出,在用戶、云服務(wù)器(或者審計者)進行簽名驗證時,如果使用標準SM9數(shù)字簽名方案,為了驗證N個數(shù)據(jù)塊的完整性,則需要獲得所有用戶數(shù)據(jù)塊的簽名,并逐一對簽名進行驗證??梢婋S著待驗證文件數(shù)據(jù)塊個數(shù)的不斷增大,用戶在驗證時的計算代價也越來越大。
本文設(shè)計的基于SM9同態(tài)簽名方案可以提高上述情況下驗證簽名時的效率,使用時可將同一數(shù)據(jù)集中數(shù)據(jù)塊的簽名使用同態(tài)組合算法(Homomorpic-Combine)進行同態(tài)運算,進而得到一個同態(tài)組合后的壓縮簽名,驗簽時如果該簽名是合法的,那么同于逐一驗證所有同態(tài)組合前的單個數(shù)字簽名是合法的。并且可以發(fā)現(xiàn)同態(tài)組合后的數(shù)字簽名長度并不隨數(shù)據(jù)集中數(shù)據(jù)塊數(shù)量的增長而增大。因此在物聯(lián)網(wǎng)系統(tǒng)中可將在某段時間內(nèi)各個無線傳感器收集的相關(guān)數(shù)據(jù)認為是同一數(shù)據(jù)集中的數(shù)據(jù)塊,使用基于SM9同態(tài)簽名算法壓縮各網(wǎng)絡(luò)節(jié)點產(chǎn)生的隨時間動態(tài)增加數(shù)據(jù)的簽名,減少云服務(wù)器對各數(shù)據(jù)塊進行完整性檢測時驗證簽名的時間,進一步提高云端校驗同一數(shù)據(jù)集中數(shù)據(jù)塊完整性的效率。
4 總結(jié)
本文提出了一種基于商密SM9的同態(tài)簽名算法,并將其應(yīng)用到物聯(lián)網(wǎng)系統(tǒng)中各無線傳感器收集數(shù)據(jù)的完整性檢測中,并對其進行了仿真模擬實驗,從實驗結(jié)果可以看出同態(tài)簽名算法在一定程度上提高了數(shù)據(jù)塊簽名在驗簽時的效率。但是在物聯(lián)網(wǎng)系統(tǒng)中還有很多問題值得討論,例如在不同數(shù)據(jù)集中,由不同用戶私鑰簽署的各數(shù)據(jù)塊簽名如何進行壓縮,以及如何防止不誠實的密鑰生成中心(KGC) 泄露用戶簽名私鑰等相關(guān)問題還有待進一步探究。
參考文獻:
[1] 張國亮.智能家居中的物聯(lián)網(wǎng)安全問題[J].數(shù)字通信世界,2019(12):165,185.
[2] 賽偉,張新鵬,謝承洋,等.云數(shù)據(jù)完整性驗證方案在物聯(lián)網(wǎng)安全中的應(yīng)用[J].智能建筑,2017(9):36-41.
[3] 董一瀟,全建斌,王明儒,等.國密SM9算法在物聯(lián)網(wǎng)安全領(lǐng)域的應(yīng)用研究[J].電信工程技術(shù)與標準化,2022,35(9):22-27,32.
[4] 郭良.物聯(lián)網(wǎng)信息數(shù)據(jù)安全討論[J].信息與電腦(理論版),2014(16):34-35.
[5] 高昊昱,李雷孝,林浩,等.區(qū)塊鏈在數(shù)據(jù)完整性保護領(lǐng)域的研究與應(yīng)用進展[J].計算機應(yīng)用,2021,41(3):745-755.
[6] 錢萍.物聯(lián)網(wǎng)同態(tài)隱私保護關(guān)鍵技術(shù)研究[D].南京:南京郵電大學,2017.
[7] 殷明.基于標識的密碼算法SM9研究綜述[J].信息技術(shù)與信息化,2020(5):88-93.
[8] 袁峰,程朝輝.SM9標識密碼算法綜述[J].信息安全研究,2016,2(11):1008-1027.
[9] 王明東,何衛(wèi)國,李軍,等.國密SM9算法R-ate對計算的優(yōu)化設(shè)計[J].通信技術(shù),2020,53(9):2241-2244.
[10] 方婷,王曉華,楊敏.基于SM9算法的跨區(qū)域醫(yī)療協(xié)同雙向身份驗證方案[J].計算機系統(tǒng)應(yīng)用,2022,31(5):124-130.
[11] 賴建昌,黃欣沂,何德彪,等.國密SM9數(shù)字簽名和密鑰封裝算法的安全性分析[J].中國科學:信息科學,2021,51(11):1900-1913.
【通聯(lián)編輯:代影】