丁毅, 沈薇, 李潔,*, 程子敬, 靳軍, 孫伽寧
1. 北京物資學(xué)院 信息學(xué)院,北京 101149 2. 航天恒星科技有限公司,北京 100094
當(dāng)前,衛(wèi)星通信已成為重要的通信基礎(chǔ)設(shè)施,可進(jìn)行數(shù)據(jù)交換、共享及應(yīng)用,是傳統(tǒng)移動(dòng)互聯(lián)網(wǎng)的有效補(bǔ)充,如衛(wèi)星可在地面網(wǎng)絡(luò)信號(hào)盲區(qū)發(fā)揮特有的作用[1-2]。以典型的氣象數(shù)據(jù)采集系統(tǒng)為例,通過(guò)低軌星座進(jìn)行數(shù)據(jù)傳輸,結(jié)構(gòu)如圖1所示,低軌星座充當(dāng)遠(yuǎn)距離通信手段,從物聯(lián)網(wǎng)采集終端收集氣象數(shù)據(jù),利用低軌星座和地面信關(guān)站傳送數(shù)據(jù)至使用端。信關(guān)站可分為地面信關(guān)站和移動(dòng)信關(guān)站,負(fù)責(zé)連接地面網(wǎng)絡(luò)和衛(wèi)星星座,進(jìn)行轉(zhuǎn)發(fā)處理。數(shù)據(jù)使用終端可以是移動(dòng)的飛行器、汽車、輪船等對(duì)氣象數(shù)據(jù)有需求的設(shè)備和運(yùn)輸工具,也可以連接互聯(lián)網(wǎng)。與地面通信主要依賴互聯(lián)網(wǎng)與各種終端設(shè)備連接。管理控制中心設(shè)置于地面系統(tǒng),是整個(gè)空地系統(tǒng)的管理中樞,負(fù)責(zé)系統(tǒng)監(jiān)控、資源調(diào)度等功能,直接連接互聯(lián)網(wǎng)。
圖1 衛(wèi)星通信數(shù)據(jù)傳輸架構(gòu)示例Fig.1 Architecture diagram of current satellite communication data transmission
在實(shí)際應(yīng)用中,有些數(shù)據(jù)安全級(jí)別高,安全、隱私暴露等問(wèn)題凸顯,如何利用衛(wèi)星信道安全有效地傳輸、分享數(shù)據(jù)成為目前亟待解決的關(guān)鍵問(wèn)題。通常采用經(jīng)典加密算法(比如AES、DES等)進(jìn)行傳輸,對(duì)方收取之后直接解密。然而,這些方法面臨以下挑戰(zhàn):
1)傳統(tǒng)加密數(shù)據(jù)一對(duì)一傳輸,數(shù)據(jù)無(wú)法完成統(tǒng)計(jì)、計(jì)算等操作,應(yīng)用范圍受限;
2)由于現(xiàn)有架構(gòu)中數(shù)據(jù)使用終端通常計(jì)算能力不足,架構(gòu)中缺少高性能計(jì)算節(jié)點(diǎn),僅支持對(duì)數(shù)據(jù)保密要求不高、對(duì)數(shù)據(jù)計(jì)算的處理量不大的場(chǎng)景;
3)中間傳輸過(guò)程存在安全風(fēng)險(xiǎn),一旦出現(xiàn)數(shù)據(jù)泄漏、數(shù)據(jù)使用過(guò)程中被篡改、中間處理節(jié)點(diǎn)被入侵等安全事故, 數(shù)據(jù)就可以被隨意復(fù)制、加工、傳輸,造成難以估量的損失;
4)非對(duì)稱加密方法是數(shù)據(jù)使用終端生成一對(duì)公私鑰。通過(guò)網(wǎng)絡(luò)主動(dòng)發(fā)送公鑰給數(shù)據(jù)發(fā)送端加密。實(shí)際中存在多個(gè)數(shù)據(jù)源和接收端,發(fā)送端依賴接收端。數(shù)據(jù)使用終端的動(dòng)態(tài)加入退出機(jī)制,可能造成無(wú)效的操作和傳輸。為了避免此問(wèn)題,就需要減少加密過(guò)程對(duì)數(shù)據(jù)使用終端的依賴性。
基于上述挑戰(zhàn),本文提出一種面向衛(wèi)星通信的全代理同態(tài)重加密傳輸模型及實(shí)現(xiàn)機(jī)制,有助于提高數(shù)據(jù)傳輸共享的安全性和效率,推動(dòng)衛(wèi)星通信應(yīng)用的發(fā)展。
本文主要涉及一套安全傳輸機(jī)制的設(shè)計(jì),并研究合適的同態(tài)加密算法,在此基礎(chǔ)上進(jìn)行代理重加密方法的改進(jìn),協(xié)同完成數(shù)據(jù)的安全可信傳輸。
同態(tài)加密[3]是一種可對(duì)密文進(jìn)行計(jì)算操作的加密方案,核心思想是對(duì)密文計(jì)算(加或乘)得到的結(jié)果解密,與明文直接計(jì)算得到的結(jié)果相等。
基于理想格的全同態(tài)加密方案[4]的計(jì)算成本高、實(shí)用性不強(qiáng)。RSA算法易被攻擊,Paillier算法效率低下。ElGamal同態(tài)算法應(yīng)用廣泛[5],依賴于有限域中計(jì)算離散對(duì)數(shù)的難題,具有乘法同態(tài)性,也可通過(guò)修改支持加法同態(tài)[6]。相同密鑰加密,得到密文也不同,可有效避免重放攻擊。由于暴力破解變體ElGamal算法需要逆向求指數(shù)冪,因此具有較好的安全性。本文研究基于ElGamal的代理重加密機(jī)制,支持多用戶的數(shù)據(jù)安全傳輸及共享。
代理重加密(Proxy Re-encryption)技術(shù)[7]可用來(lái)解決多用戶(多密鑰)的問(wèn)題。
經(jīng)典的算法原理描述如下:假設(shè)有用戶A、B(擁有不同的公私鑰對(duì)),代理人P。A使用公鑰將數(shù)據(jù)加密,然后傳遞給P,P處理后再傳B,B使用私鑰解密。此過(guò)程可分解為以下幾個(gè)步驟:
1)A、B分別產(chǎn)生公私鑰對(duì),分別為(PKA,SKA)、(PKB,SKB),A將私鑰SKA發(fā)送代理密鑰生成者K,B將密鑰PKB或者SKB發(fā)給K;
2)A使用公鑰PKA對(duì)數(shù)據(jù)M進(jìn)行加密,得到密文CPKA,可表示為CPKA=En(PKA,M),將CPKA發(fā)給代理人P;
3)K使用私鑰SKA和B的密鑰生成新的代理密鑰RK;
4)K將RK并發(fā)給代理人R;
5)P使用RK將CPKA進(jìn)行二次加密,得到結(jié)果CPKB,可表示為:CPKB=Pre(CPKA,RK);
6)P將CPKB發(fā)給B。
7)B使用密鑰SKB將CPKB解密得到明文M,可表示為M=Dec(SKB,CPKB)。
以上過(guò)程如圖2所示。值得注意的是,第3步K需要獲取用戶A的私鑰,既要求傳輸信道是安全的,又要求代理人可信。特別地,若應(yīng)用場(chǎng)景中存在多用戶,需要多用戶共同使用數(shù)據(jù)的處理結(jié)果,則會(huì)產(chǎn)生多對(duì)公私鑰,這就必需由可靠的代理人完成代理密鑰生成的計(jì)算過(guò)程。如何加強(qiáng)代理人的可信性,保護(hù)私鑰不被泄露,是本領(lǐng)域的重要問(wèn)題。
圖2 經(jīng)典代理重加密處理流程示意Fig.2 Flow schematic diagram of traditional proxy re-encryption process
近年來(lái)將代理重加密技術(shù)運(yùn)用到云計(jì)算的研究較多,可通過(guò)管理訪問(wèn)權(quán)限或區(qū)塊鏈方法提高安全性。蘇铓等[8]采用了一種確定更新方案,對(duì)重加密密鑰進(jìn)行分割管理,能夠?qū)崿F(xiàn)授權(quán)時(shí)密鑰確定性更新。王海勇等[9]使用了CP-ABE訪問(wèn)控制技術(shù)完成代理重加密的管理,可以減少解密開銷,并降低用戶私鑰被盜時(shí)數(shù)據(jù)泄露風(fēng)險(xiǎn)。張小紅等[10]提出了一種使用屬性代理重加密機(jī)制進(jìn)行云存儲(chǔ)的方式,并將元數(shù)據(jù)在區(qū)塊鏈上存儲(chǔ),加密過(guò)程使用區(qū)塊鏈智能合約實(shí)現(xiàn)。Manzoor等[11]將代理重加密技術(shù)應(yīng)用到物聯(lián)網(wǎng)領(lǐng)域,傳感器采集數(shù)據(jù)并進(jìn)行加密后,通過(guò)區(qū)塊鏈智能合約管理用戶訪問(wèn)數(shù)據(jù)的權(quán)限。本文研究背景是衛(wèi)星的信道,實(shí)時(shí)性要求高,上述復(fù)雜的訪問(wèn)控制和區(qū)塊鏈系統(tǒng)不適用于此應(yīng)用場(chǎng)景。
關(guān)于ElGamal代理重加密算法的安全性,有人從合謀攻擊方面進(jìn)行安全性改進(jìn)[12],但仍需要使授權(quán)方擁有被授權(quán)方的私鑰,授權(quán)方的權(quán)利過(guò)大。
可信執(zhí)行環(huán)境(trusted execution environ-ment,TEE)表現(xiàn)為一組軟硬件組件,可為應(yīng)用程序提供必要的設(shè)施,使程序能夠隔離運(yùn)行和安全存儲(chǔ)[13]。
TEE有多種實(shí)現(xiàn)方式,比較流行的是基于Intel 架構(gòu)的SGX(Software Guard Extensions)[14]和手機(jī)終端ARM架構(gòu)的TrustZone[15]。本文選用SGX架構(gòu)。SGX程序在運(yùn)行時(shí)會(huì)生成Enclave安全區(qū),將需要保護(hù)的軟件代碼和數(shù)據(jù)存進(jìn)去,即使特權(quán)軟件或其他Enclave中的軟件也無(wú)法訪問(wèn)該代碼和數(shù)據(jù),試圖修改Enclave中內(nèi)容的行為會(huì)被檢測(cè)并禁止,此安全區(qū)可用來(lái)存儲(chǔ)密鑰等關(guān)鍵信息[16-17]。
本研究依據(jù)SGX的特點(diǎn)進(jìn)行系統(tǒng)設(shè)計(jì),負(fù)責(zé)密鑰生成模塊中可信計(jì)算參數(shù)產(chǎn)生的部分,既不會(huì)超出SGX可處理的計(jì)算范圍,又能有效保護(hù)數(shù)據(jù)隱私,解決私鑰、隨機(jī)數(shù)泄露的問(wèn)題,保證程序及數(shù)據(jù)不易被篡改。
本文針對(duì)衛(wèi)星通信應(yīng)用場(chǎng)景,提出一套新型的全代理同態(tài)可信傳輸模型,致力于解決加密數(shù)據(jù)使用效率低、密鑰中途被竊取、計(jì)算能力不足、代理節(jié)點(diǎn)信任風(fēng)險(xiǎn)等問(wèn)題。
本文提出的全代理同態(tài)加密傳輸模型與傳統(tǒng)代理重加密傳輸模型的對(duì)比如圖3所示。
圖3 傳統(tǒng)代理重加密傳輸模型與全代理同態(tài)加密傳輸模型的框架與流程對(duì)比Fig.3 Architecture and flow comparison diagram of traditional proxy re-encryption transmission model and FPRM
圖3 (a)為傳統(tǒng)典型代理重加密傳輸模型框架及流程圖(以下簡(jiǎn)稱原模型),框架分為3個(gè)區(qū)間,分別是數(shù)據(jù)提供者區(qū)間(A區(qū)間)、數(shù)據(jù)代理人區(qū)間(P區(qū)間)以及數(shù)據(jù)使用者區(qū)間(B區(qū)間),使用不同顏色虛線方框來(lái)表示不同區(qū)間,根據(jù)區(qū)間順序?qū)⒛P瓦\(yùn)行流程描述如下:
1)在A區(qū)間,mi表示原始數(shù)據(jù)(實(shí)際中存在多個(gè)數(shù)據(jù)提供者,圖中i表示其中一份由A區(qū)間提供的數(shù)據(jù)),在加密過(guò)程中,數(shù)據(jù)提供者A需要首先獲得B區(qū)間的公鑰PKBi,通過(guò)私鑰SKAi和PKBi自行生成代理密鑰RKi。這一過(guò)程需要用到A的私鑰,因此放到A區(qū)間完成。同時(shí),mi通過(guò)PKAi完成數(shù)據(jù)的初次加密,生成加密數(shù)據(jù)c1i:
c1i=e(PKAi,mi)
2)P區(qū)間主要完成代理重加密數(shù)據(jù)和同態(tài)密文計(jì)算的功能。由A區(qū)間輸入兩部分信息,分別是需要再次加密的數(shù)據(jù)c1i和重加密密鑰RKi,通過(guò)代理重加密操作生成加密數(shù)據(jù)c2i:
c2i=p(RKi,c1i)
密文c2i符合同態(tài)計(jì)算的規(guī)則,可與其他密文共同計(jì)算(加、乘等同態(tài)操作)得到密文結(jié)果g(c2i),該結(jié)果會(huì)傳輸?shù)紹區(qū)間。
3)在B區(qū)間中,g(c2i)通過(guò)SKBi解密得到明文結(jié)果g(mi):
g(mi)=d(SKBi,g(c2i))
傳統(tǒng)代理重加密傳輸模型運(yùn)行結(jié)束。該模型的特征是需要B區(qū)間提供密鑰,主動(dòng)參與重加密密鑰RKi的生成,對(duì)數(shù)據(jù)使用者具有較高要求,不適用于終端動(dòng)態(tài)性的應(yīng)用場(chǎng)景。
圖3(b)是本文提出的全代理同態(tài)加密傳輸模型(FPRM)的框架及流程圖。同樣,該模型分為A區(qū)間、P區(qū)間和B區(qū)間。相對(duì)于圖3(a),最顯著的特點(diǎn)是兩方面:一方面是B區(qū)間不需要輸出密鑰,代理重加密過(guò)程不再依賴于數(shù)據(jù)使用者;另一方面是P區(qū)間又分成3類角色,表現(xiàn)為3個(gè)模塊,分別是密碼管理模塊、數(shù)據(jù)重加密模塊以及隨機(jī)key生成模塊,3個(gè)模塊(角色)是相互獨(dú)立的。以下為該模型運(yùn)轉(zhuǎn)流程的詳細(xì)步驟:
1) A區(qū)間使用公鑰PKAi將原始數(shù)據(jù)mi進(jìn)行加密,得到密文c1i,與原模型相同,表述為:
c1i=e(PKAi,mi)
2) P區(qū)間中的密鑰生成模塊存在于一套可信執(zhí)行環(huán)境中,遵照一定規(guī)則生成代理密鑰SK和隨機(jī)數(shù)ri(r的個(gè)數(shù)與m的個(gè)數(shù)相同),并將SK和隨機(jī)數(shù)ri發(fā)送至A區(qū)間的數(shù)據(jù)提供者,使用SK代替原模型中的PKBi,可以完成對(duì)c1i的重加密,得到結(jié)果c2:
c2i=re(SKAi,SK,c1i)
然后,為了減少P區(qū)間受到攻擊后,從密文反推原始數(shù)據(jù)的風(fēng)險(xiǎn),A區(qū)間使用隨機(jī)數(shù)ri完成對(duì)c2i加鎖操作,得到結(jié)果為l(c2i,ri)。由于SK在該模型中使用頻率較高,故密鑰生成模塊周期性地更換SK。
3) A區(qū)間將l(c2i,ri)傳輸?shù)絇區(qū)間的數(shù)據(jù)重加密模塊。P區(qū)間的密鑰管理模塊根據(jù)ri的順序,生成集合R:
R={r1,r2,…,ri}
然后將R傳遞給數(shù)據(jù)重加密模塊,按照順序完成l(c2i,ri)等密文的解鎖操作,表述為:
c2i=l-1(l(c2i,ri),ri)
進(jìn)而完成同態(tài)計(jì)算操作,得到密文結(jié)果g(c2i),參見圖3(b)中數(shù)據(jù)重加密模塊中的a路徑。
如果同態(tài)計(jì)算可轉(zhuǎn)換成線性加或線性乘,則l(c2i,ri)符合同態(tài)加密計(jì)算規(guī)則,與其他加鎖密文數(shù)據(jù)進(jìn)行同態(tài)計(jì)算操作g(),可以得到結(jié)果l(g(c2i),r),其中:
r=g(ri)
P區(qū)間的密鑰管理模塊根據(jù)同態(tài)計(jì)算操作規(guī)則,得到r,并將其傳遞給數(shù)據(jù)重加密模塊進(jìn)行解鎖逆操作,得到密文結(jié)果g(c2i):
g(c2i)=l-1(l(g(c2i),r),r)
這樣處理可以進(jìn)一步加強(qiáng)安全性,參見圖3(b)中數(shù)據(jù)重加密模塊的b路徑。
4) P區(qū)間的隨機(jī)key生成模塊生成隨機(jī)Kj,并將Kj分別發(fā)送至數(shù)據(jù)重加密模塊和B區(qū)間。數(shù)據(jù)重加密模塊使用Kj對(duì)g(c2i)進(jìn)行代理重加密,得到結(jié)果p(g(c2i),Kj),并發(fā)送至B區(qū)間。其中,加密操作p()是可以通過(guò)Kj進(jìn)行可逆操作的。
5) B區(qū)間利用接收到的隨機(jī)Kj,首先進(jìn)行解密操作,得到結(jié)果g(c2i):
g(c2i)=p-1(p(g(c2i),Kj),Kj)
同時(shí),P區(qū)間中的密鑰管理模塊也會(huì)將SK發(fā)送給B區(qū)間,B區(qū)間利用SK完成同態(tài)計(jì)算密文g(c2i)的明文g(mi):
g(mi)=d(SK,g(c2i))
相對(duì)于傳統(tǒng)代理重加密傳輸模型,該模型為了保證安全性,避免了單個(gè)代理人擁有較高權(quán)限,減少中途被截取從而解密數(shù)據(jù)的風(fēng)險(xiǎn),在P區(qū)間設(shè)置了3個(gè)相互獨(dú)立的模塊。將密鑰生成功能放置于可信執(zhí)行環(huán)境TEE來(lái)保障密鑰不被篡改,同時(shí)通過(guò)不同模塊設(shè)置了2個(gè)隨機(jī)數(shù),用于保障區(qū)間傳輸?shù)陌踩裕阂粋€(gè)用于A區(qū)間到P區(qū)間模塊的加解鎖,另一個(gè)用于P區(qū)間模塊到B區(qū)間的數(shù)據(jù)代理重加密和解密。
通過(guò)上述分析可知,該模型避免了數(shù)據(jù)加密傳輸對(duì)數(shù)據(jù)使用者(B區(qū)間)的依賴性,將數(shù)據(jù)使用者由主動(dòng)參與模式變成被動(dòng)接受模式,適用于在氣象衛(wèi)星應(yīng)用場(chǎng)景中數(shù)據(jù)使用者的異構(gòu)性、動(dòng)態(tài)加入退出的特性。
按照上述分析,本文選用ElGamal算法作為全代理同態(tài)加密傳輸模型的實(shí)現(xiàn)基礎(chǔ)。對(duì)照上述模型,本節(jié)展開詳細(xì)描述,實(shí)現(xiàn)多個(gè)數(shù)據(jù)所有者(A區(qū)間)將數(shù)據(jù)加密后,利用全代理同態(tài)加密傳輸模型將數(shù)據(jù)的計(jì)算結(jié)果發(fā)送給數(shù)據(jù)使用者(B區(qū)間)。
依據(jù)FPRM抽象模型,這部分將模型算法實(shí)例化,流程設(shè)計(jì)如圖4所示。
模型數(shù)據(jù):模型中存在多個(gè)參與安全傳輸?shù)臄?shù)據(jù),來(lái)源于多個(gè)數(shù)據(jù)提供者,假定表示原始明文數(shù)據(jù)集合:
M={m1,m2,m3,…,mi}
圖4 系統(tǒng)加密流程設(shè)計(jì)Fig.4 Design diagram of encryption process
模型組件:模型可分為3個(gè)區(qū)間。
1)數(shù)據(jù)提供者區(qū)間(A區(qū)間):負(fù)責(zé)提供數(shù)據(jù)原文,并且完成2次加密和1次加鎖處理操作。
2)數(shù)據(jù)代理人區(qū)間(P區(qū)間):負(fù)責(zé)代理密鑰生成、數(shù)據(jù)重加密、數(shù)據(jù)解鎖和隨機(jī)數(shù)生成等功能,又根據(jù)角色可拆解為以下3個(gè)功能模塊:
密鑰管理模塊S:產(chǎn)生重加密中涉及的密鑰SK、加鎖隨機(jī)數(shù)ri以及解鎖數(shù)r,該模塊的計(jì)算部分運(yùn)行于可信執(zhí)行環(huán)境SGX中。另外,由于SK在該模型中應(yīng)用較多,為減少風(fēng)險(xiǎn),SK需要周期性更新。
數(shù)據(jù)重加密模塊R:使用S傳遞的參數(shù)r完成A區(qū)間密文數(shù)據(jù)的解鎖,利用隨機(jī)key生成模塊G產(chǎn)生的代理重加密參數(shù)Kj完成代理重加密操作。
隨機(jī)key生成模塊G:產(chǎn)生隨機(jī)數(shù)Kj供R模塊完成代理重加密過(guò)程,并將Kj發(fā)送B區(qū)間用于解密密文數(shù)據(jù)。
3)數(shù)據(jù)使用者區(qū)間(B區(qū)間):收到數(shù)據(jù)密文后使用獲取的SK和Kj解密,得到同態(tài)計(jì)算的明文結(jié)果。
模型輸入輸出及算法:每個(gè)區(qū)間及每個(gè)模塊都有輸入輸出及相關(guān)算法,描述如下。
A區(qū)間的輸入:B區(qū)間S模塊發(fā)送的密鑰SK以及系列加鎖隨機(jī)數(shù)ri,每個(gè)ri對(duì)應(yīng)1個(gè)數(shù)據(jù)源mi。
A區(qū)間的輸出:通過(guò)2次加密操作后,再加鎖輸出同態(tài)密文數(shù)據(jù)。
A區(qū)間涉及的核心函數(shù)描述如下:
1)GenKey(param):密鑰生成函數(shù)。輸入?yún)?shù)param,輸出數(shù)據(jù)提供者的公私鑰對(duì),分別為(PKAi,SKAi);
2)Encrypt(PKAi,mi):加密函數(shù)。mi為A區(qū)間的明文,輸入公鑰PKAi對(duì)明文mi進(jìn)行加密(PKAi,mi),依據(jù)ElGamal算法特點(diǎn),輸出加密后的密文對(duì)(c1i,c2i),其中c1i為算法生成的輔助私鑰,c2i為根據(jù)明文計(jì)算后的初始密文數(shù)據(jù);
P區(qū)間的輸入輸出描述如下:
密鑰管理模塊S輸入:讀取同態(tài)計(jì)算規(guī)則。
密鑰管理模塊S輸出:生成周期性更新的密鑰SK,將其發(fā)送給A區(qū)間和B區(qū)間;同時(shí),將系列加鎖隨機(jī)數(shù)ri發(fā)送至A區(qū)間,而將系列隨機(jī)數(shù)集合R={r1,r2,…,ri}發(fā)送至數(shù)據(jù)重加密模塊,依據(jù)ElGamal算法特點(diǎn),同態(tài)計(jì)算表示為線性的乘法(明文的加運(yùn)算,也表現(xiàn)為密文的乘運(yùn)算,只是加密算法不同),則可以將r=g(ri),在本算法中實(shí)質(zhì)上就是多個(gè)ri相乘,傳遞給數(shù)據(jù)重加密模塊,其中g(shù)()即A區(qū)間密文的同態(tài)計(jì)算規(guī)則。
隨機(jī)key生成模塊G輸入:無(wú)。
隨機(jī)key生成模塊G輸出:將生成的隨機(jī)Kj分別發(fā)送至數(shù)據(jù)重加密模塊R和B區(qū)間。
數(shù)據(jù)重加密模塊R的輸出:代理重加密后的密文(C,C″),將其傳輸至B區(qū)間。
P區(qū)間涉及的核心函數(shù)描述如下:
1)Random():隨機(jī)數(shù)生成函數(shù),S、G模塊需要使用該函數(shù)生成全代理同態(tài)加密中所需密鑰SK、Kj和安全傳輸中用于加鎖的隨機(jī)數(shù)ri。這些過(guò)程都可以在SGX中完成,尤其是S模塊中生成周期性的密鑰SK和隨機(jī)數(shù)ri。
3)ProReEncrypt((C,C′),Kj):代理重加密算法。從G模塊獲得代理重加密所需的隨機(jī)Kj,輸出代理重加密密文(C,C″),其中C不變,C″則為數(shù)據(jù)密文C′再次代理重加密的密文結(jié)果,將該結(jié)果傳輸?shù)紹區(qū)間繼續(xù)運(yùn)行。
B區(qū)間的輸入:P區(qū)間密鑰生成模塊S發(fā)送過(guò)來(lái)的密鑰SK以及隨機(jī)key生成模塊G傳輸過(guò)來(lái)的Kj。
B區(qū)間涉及的核心函數(shù)描述如下:
Decrypt((C,C″),d(SK,Kj)):解密算法。其中,依據(jù)ElGamal算法,Kj和SK可以通過(guò)計(jì)算生成密鑰d(SK,Kj),完成對(duì)于(C,C″)的解密,解密算法分為乘法和加法解密兩種方式,輸出解密后的明文。A區(qū)間再根據(jù)需要自行進(jìn)行計(jì)算或其他操作。
基于ElGamal算法完成全代理同態(tài)加密傳輸模型,由于其乘法和加法是分別進(jìn)行的,在傳輸過(guò)程加強(qiáng)了安全性,比如r的設(shè)計(jì),減少了信息中途被解密的風(fēng)險(xiǎn),當(dāng)然對(duì)于混合計(jì)算的應(yīng)用,可能需要在B區(qū)間的數(shù)據(jù)使用者進(jìn)行明文的進(jìn)一步計(jì)算,但不會(huì)造成源數(shù)據(jù)的泄露。SGX的使用,加強(qiáng)了密鑰生成的可信操作,能夠有效防止代碼運(yùn)行中的隱私變量被竊取??傊贓lGamal算法可以較好地實(shí)現(xiàn)全代理同態(tài)加密傳輸模型,減少對(duì)于B區(qū)間加密傳輸過(guò)程的依賴,A和P區(qū)間負(fù)責(zé)全代理。
本方案是以ElGamal算法作為基礎(chǔ)的,本節(jié)重點(diǎn)介紹算法的設(shè)計(jì)與實(shí)現(xiàn)。ElGamal算法的加密和解密分為支持加法同態(tài)和乘法同態(tài)兩種。下文分別進(jìn)行描述。
2.3.1 加密模塊
這一模塊涉及公私鑰對(duì)的生成,并使用公鑰對(duì)明文進(jìn)行加密。經(jīng)過(guò)加密、重加密之后的密文支持乘法和加法同態(tài)。
生成密鑰的思路是,以生成上述模型mi數(shù)據(jù)使用的SKAi和SK,以及公鑰PKAi為例。取1個(gè)大的隨機(jī)素?cái)?shù)p,生成p的1個(gè)生成元g,并將p、g公開。隨機(jī)生成整數(shù)x作為私鑰(1 算法1:生成密鑰對(duì) 輸出:大素?cái)?shù)p,生成元g,私鑰SKAi與對(duì)應(yīng)公鑰PKAi,密鑰SK 1:function GenKey 2: generate large random prime numberp 3:gis one ofpgenerators (modp) 4: generate random integer numberx 5: whilex≥p-1 do 6: generate random integer numberx 7: end while 8: SKAi←x 9: generate random integer numberx 10:whilex≥p-1 do 11: generate random integer numberx 12:end while 13: SK←x 14:y←gSKAimodp 15: PKAi←y 16:returnp,g,SKAi,SK,PKAi 17:end function (1)乘法同態(tài) 隨后對(duì)明文數(shù)據(jù)mi進(jìn)行加密,具體為生成隨機(jī)數(shù)k(1 算法2:明文數(shù)據(jù)加密(乘法同態(tài)) 輸入:明文mi,大素?cái)?shù)p,生成元g,公鑰PKAi 輸出:加密密文c1,c2 1:function Encrypt(PKAi,mi,p,g) 2: generate random integer numberk 3: whilek≥p-1 do 4: generate random integer numberk 5: end while 7:c1←gkmodp 8:c2←(mi×u)modp 9: returnc1,c2 10:end function (2)加法同態(tài) 同樣,對(duì)明文數(shù)據(jù)mi進(jìn)行加密,對(duì)加密之后的密文支持加法同態(tài)和常數(shù)乘法同態(tài),算法描述如下: 算法3:明文數(shù)據(jù)加密(加法同態(tài)) 輸入:明文mi,大素?cái)?shù)p,生成元g,公鑰PKAi 輸出:加密密文c1,c2 1:function Encrypt(PKAi,mi,p,g) 2: generate random integer numberk 3: whilek≥p-1 do 4: generate random integer numberk 5: end while 6: generate random integer numberα 7: whileα≤0 do 8: generate random integer numberα 9: end while 11:c1←gkmodp 12:c2←(αmi×u)modp 13: returnc1,c2 14:end function 2.3.2 重加密模塊 算法4:重加密算法 輸入:密文c1,c2,密鑰SKAi,SK,大素?cái)?shù)p 1:function ReEncrypt(c1,c2,SKAi,SK,p) 2:x←SKAi-SK 3:v←(c1)xmodp 6:end function 另外,在P區(qū)間數(shù)據(jù)重加密模塊中,通過(guò)獲得隨機(jī)key生成模塊的隨機(jī)正整數(shù)Kj來(lái)完成同態(tài)計(jì)算后的數(shù)據(jù)(C,C′),再進(jìn)行代理重加密,得到密文數(shù)據(jù)(C,C″),算法描述如下所示: 算法5:代理重加密算法 輸入:密文C,C′,密鑰Kj,大素?cái)?shù)p 輸出:重加密后的密文C,C″ 1:function ProReEncrypt(C,C′,Kj,p) 2:x←Kj 3:v←(C)xmodp 4:C″←(C′×v-1)modp 5: returnC,C″ 6:end function 2.3.3 解密模塊 解密模塊運(yùn)行于B區(qū)間數(shù)據(jù)使用者處,分為乘法和加法同態(tài)解密兩種,需要根據(jù)需求選擇不同算法。 (1)乘法同態(tài) 數(shù)據(jù)使用者利用P區(qū)間發(fā)送過(guò)來(lái)的密鑰SK和隨機(jī)正整數(shù)Kj生成解密密鑰x′=SK-Kj,對(duì)密文(C,C″)進(jìn)行解密計(jì)算v=(C)x′modp,得到明文M′=(C″×v-1)modp。解密算法描述如下所示: 算法6:解密算法(乘法同態(tài)) 輸入:密文C,C″,密鑰SK及Kj,大素?cái)?shù)p 輸出:解密明文M′ 1:function Decrypt(C,C″,SK,Kj,p) 2:x′←SK-Kj 3:v←(C)x′modp 4:M′←(C″×v-1)modp 5: returnM′ 6:end function (2)加法同態(tài) 加法同態(tài)的解密過(guò)程比乘法同態(tài)多一步求對(duì)數(shù)的過(guò)程,如算法7所示。 算法7:解密算法(加法同態(tài)) 輸入:密文C,C″,密鑰SK及Kj,正隨機(jī)整數(shù)α,大素?cái)?shù)p 輸出:解密明文M′ 1:function Decrypt(C,C″,SK,Kj,p,α) 2:x′←SK-Kj 3:u←(C)x′modp 4:v←(C″×u-1)modp 5:M′←logαv 6: returnM′ 7: end function 針對(duì)衛(wèi)星通信的現(xiàn)有架構(gòu)以低軌星座氣象數(shù)據(jù)采集傳輸為典型案例(如圖1所示),本節(jié)進(jìn)行基于ElGamal算法的全代理同態(tài)加密傳輸模型的實(shí)例化設(shè)計(jì)工作。在案例的物理架構(gòu)中部署模型的各個(gè)模塊。傳輸系統(tǒng)由衛(wèi)星、信關(guān)站、管理控制中心構(gòu)成,再加上參與計(jì)算的商用數(shù)據(jù)中心(或云計(jì)算中心),共同組成模型中的數(shù)據(jù)代理人區(qū)間(P區(qū)間);氣象采集終端對(duì)應(yīng)于數(shù)據(jù)提供者區(qū)間(A區(qū)間);而數(shù)據(jù)使用者終端則對(duì)應(yīng)于數(shù)據(jù)使用者區(qū)間(B區(qū)間),整體架構(gòu)如圖5所示。在氣象采集終端,除了數(shù)據(jù)采集模塊,又加入了FPRM模型A區(qū)間的公鑰加密模塊、重加密模塊以及加鎖模塊,完成相應(yīng)功能。在P區(qū)間,管理控制中心負(fù)責(zé)系統(tǒng)監(jiān)控、資源調(diào)度等功能,額外增加了基于SGX機(jī)制上的密鑰生成模塊(生成密鑰SK和隨機(jī)數(shù)ri)和隨機(jī)數(shù)處理模塊(用于完成多個(gè)ri生成r的操作);信關(guān)站則加入了隨機(jī)key生成模塊;而商用數(shù)據(jù)中心則囊括數(shù)據(jù)重加密模塊,進(jìn)一步分為同態(tài)計(jì)算、解鎖和代理重加密模塊。數(shù)據(jù)使用者終端擁有解密模塊以及根據(jù)需求對(duì)解密明文進(jìn)行后處理的功能。 本文提出的全代理同態(tài)可信傳輸系統(tǒng)就是將信息在上述各模塊之間進(jìn)行流通。為了保證數(shù)據(jù)傳輸和通信的安全,依賴于現(xiàn)有物理架構(gòu)的基礎(chǔ)特征,在互聯(lián)網(wǎng)、信關(guān)站和低軌星座系統(tǒng)中建立3個(gè)獨(dú)立虛擬專用通道(virtual private network,VPN),分別是t1、t2和t3,保證數(shù)據(jù)互相獨(dú)立,互不干擾。首先,管理控制中心生成的密鑰SK和隨機(jī)數(shù)ri通過(guò)t1信道經(jīng)過(guò)互聯(lián)網(wǎng)、信關(guān)站和衛(wèi)星,到達(dá)氣象采集終端,分別傳遞給重加密模塊和加鎖模塊。進(jìn)而,數(shù)據(jù)采集終端完成加密、重加密、加鎖等操作,將加鎖后的重加密數(shù)據(jù)通過(guò)t2信道經(jīng)由衛(wèi)星、信關(guān)站、互聯(lián)網(wǎng)到達(dá)商用數(shù)據(jù)中心。同時(shí),管理控制中心的隨機(jī)數(shù)處理模塊生成的r通過(guò)互聯(lián)網(wǎng)的專用信道傳遞給商用數(shù)據(jù)中心。信關(guān)站上的隨機(jī)key生成模塊也將生成的Kj通過(guò)信道t3經(jīng)由互聯(lián)網(wǎng)發(fā)送過(guò)來(lái)。商用數(shù)據(jù)中心得到這些信息,繼而進(jìn)行同態(tài)計(jì)算、解鎖及代理重加密工作,并將代理二次重加密同態(tài)計(jì)算后的密文通過(guò)互聯(lián)網(wǎng)專用信道發(fā)送至數(shù)據(jù)使用者。同時(shí),通過(guò)互聯(lián)網(wǎng)專用信道發(fā)送給數(shù)據(jù)使用者的還有管理控制中心的SK以及信關(guān)站隨機(jī)key生成模塊發(fā)出的Kj。數(shù)據(jù)使用者先進(jìn)行解密操作,然后根據(jù)自身需求完成后相關(guān)操作。這樣,就完成了整個(gè)系統(tǒng)的數(shù)據(jù)安全流通。 本研究提出的全代理同態(tài)可信傳輸系統(tǒng)及運(yùn)行機(jī)制,適用于當(dāng)前衛(wèi)星通信的物理架構(gòu),可以進(jìn)行安全數(shù)據(jù)傳輸,并保護(hù)原始隱私數(shù)據(jù),同時(shí),系統(tǒng)還避免了對(duì)數(shù)據(jù)使用者的依賴,將衛(wèi)星和互聯(lián)網(wǎng)及商業(yè)數(shù)據(jù)中心有效結(jié)合,擴(kuò)展了衛(wèi)星通信系統(tǒng)的應(yīng)用范圍。 圖5 可信衛(wèi)星數(shù)據(jù)傳輸系統(tǒng)架構(gòu)示例Fig.5 Architecture diagram of trusted satellite data transmission system 本方案測(cè)試環(huán)境是使用一臺(tái)計(jì)算機(jī),配置SGX環(huán)境,用來(lái)模擬管理控制中心;一臺(tái)服務(wù)器,用來(lái)模擬A、B區(qū)間功能模塊、信關(guān)站和商用數(shù)據(jù)中心。 3.2.1 性能對(duì)比試驗(yàn) 本試驗(yàn)進(jìn)行數(shù)據(jù)傳輸模擬,共進(jìn)行50次測(cè)試,可得到性能對(duì)比結(jié)果。圖6給出了本方案在大素?cái)?shù)p為512位,用戶數(shù)為5,每位用戶數(shù)據(jù)量為100條的條件下各模塊加密時(shí)間分布圖,其中橫坐標(biāo)表示編號(hào)(第1~50次測(cè)試)。依據(jù)基于ElGamal算法的全代理同態(tài)加密傳輸模型,該過(guò)程可分為以下7個(gè)部分:1)生成密鑰;2)加密;3)生成隨機(jī)數(shù)ri、密鑰SK;4)第一次重加密、加鎖;5)解鎖、同態(tài)計(jì)算、第二次代理重加密;6)解密;7)生成隨機(jī)數(shù)Kj。圖7為各部分所用時(shí)間的占比圖。 傳統(tǒng)的多用戶代理重加密方法,主要由生成密鑰、加密、代理重加密、同態(tài)計(jì)算、解密組成。由試驗(yàn)結(jié)果可以得出,密鑰生成模塊的時(shí)間占比最多,由于隨機(jī)因素(生成元),時(shí)間上有一定浮動(dòng)性,除此之外,其他模塊在相同數(shù)據(jù)量的前提下運(yùn)行時(shí)間較為穩(wěn)定。本文所提出的全代理同態(tài)加密傳輸模型在傳統(tǒng)的代理重加密方案的基礎(chǔ)上,增加的加鎖、隨機(jī)參數(shù)生成等安全隱私保護(hù)模塊僅占比約10%,且其中大部分工作在該應(yīng)用場(chǎng)景中可由商用數(shù)據(jù)中心來(lái)完成。說(shuō)明本研究方案可以在增加少量開銷,基本不影響效率的前提下,實(shí)現(xiàn)有效的數(shù)據(jù)隱私保護(hù)和安全傳輸,避免重加密過(guò)程對(duì)數(shù)據(jù)接收方的依賴性。 進(jìn)而對(duì)系統(tǒng)容量的影響進(jìn)行分析。相對(duì)于傳統(tǒng)的代理重加密方法,全代理重加密機(jī)制會(huì)在傳輸中產(chǎn)生少量額外的計(jì)算開銷,增加部分傳輸時(shí)間,但是對(duì)于接入終端數(shù)目并無(wú)顯著影響。另一方面,本文選擇的同態(tài)加密算法存在一個(gè)限制條件(其他許多算法也有類似特征,如RSA算法,要求目標(biāo)數(shù)據(jù)加密的位數(shù)不能超過(guò)密鑰的長(zhǎng)度值減去11), 即加密數(shù)據(jù)要小于密鑰的數(shù)值,這可能會(huì)對(duì)傳輸數(shù)據(jù)源有一定限制,但與全代理加密機(jī)制并無(wú)直接關(guān)系,對(duì)系統(tǒng)容量的影響也較小。 圖6 基于ElGamal算法的FPRM模型各模塊時(shí)間分布Fig.6 Time distribution chart of each module for FPRM model based on ElGamal algorithm 圖7 基于ElGamal算法的FPRM模型各模塊時(shí)間占比Fig.7 Time proportion chart of each module for FPRM model based on ElGamal algorithm 3.2.2 可擴(kuò)展性對(duì)比試驗(yàn) 本試驗(yàn)首先設(shè)置在大素?cái)?shù)p為1024位,用戶數(shù)為5的條件下進(jìn)行。由于生成密鑰需要遍歷操作找到符合條件的大素?cái)?shù)p,且由效率對(duì)比試驗(yàn)可知,密鑰生成模塊時(shí)間有一定浮動(dòng)性,且不是本模型的核心部分,所以本試驗(yàn)所記錄的時(shí)間不包括生成密鑰的時(shí)間。圖8給出了隨著操作數(shù)據(jù)量增加,運(yùn)行時(shí)間的變化趨勢(shì)圖。 由試驗(yàn)結(jié)果可以得出,在不考慮生成大素?cái)?shù)p時(shí)間的情況下,本方案其他各部分的運(yùn)行時(shí)間隨著數(shù)據(jù)量的增長(zhǎng)近似呈線性,不會(huì)有大的波動(dòng),具有良好的可擴(kuò)展性。 另外,在改變素?cái)?shù)位數(shù)后對(duì)運(yùn)行時(shí)間進(jìn)行測(cè)試,圖9為時(shí)間隨大素?cái)?shù)p的取值變化圖。分別記錄p在256、512、1024位大小下的運(yùn)行方案所需的時(shí)間,同樣不包括生成密鑰的時(shí)間。由于本算法同態(tài)數(shù)據(jù)要小于密鑰數(shù)值,因此,過(guò)短的位數(shù)會(huì)造成應(yīng)用范圍變小。另一方面,由試驗(yàn)結(jié)果可以得出,大素?cái)?shù)p的位數(shù)越多,隨著數(shù)據(jù)量的增大,運(yùn)行方案所需要的時(shí)間增長(zhǎng)越快。因此在不影響安全性的情況下,對(duì)p采用512位通??梢宰鳛閷?shí)際應(yīng)用中較好的選擇。 圖8 基于數(shù)據(jù)量的運(yùn)行時(shí)間趨勢(shì)Fig.8 The operational time trend graph with different data volumes 圖9 時(shí)間隨大素?cái)?shù)p位數(shù)變化Fig.9 Graph of time with large prime p bits 本文提出了一套全代理同態(tài)加密傳輸模型,基于ElGamal算法實(shí)現(xiàn),并基于現(xiàn)有衛(wèi)星通信架構(gòu)將其實(shí)例化,形成可信傳輸機(jī)制,具有以下特點(diǎn): 1)該機(jī)制支持?jǐn)?shù)據(jù)多對(duì)多傳輸,同態(tài)加密數(shù)據(jù)在保護(hù)數(shù)據(jù)隱私的前提下,可對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、計(jì)算等操作,滿足衛(wèi)星應(yīng)用的多樣性差異化需求; 2)相對(duì)于傳統(tǒng)代理重加密傳輸模型,該模型在數(shù)據(jù)代理人區(qū)間設(shè)置3個(gè)獨(dú)立的安全管理模塊,并應(yīng)用可信執(zhí)行環(huán)境,避免單個(gè)代理人擁有過(guò)高權(quán)限,減少中途被截取解密數(shù)據(jù)的風(fēng)險(xiǎn);特別的,數(shù)據(jù)提供者區(qū)間和數(shù)據(jù)代理人區(qū)間完成加密和安全傳輸操作,脫離數(shù)據(jù)使用者密鑰的約束,滿足數(shù)據(jù)使用終端動(dòng)態(tài)加入退出機(jī)制,減少無(wú)效操作和傳輸; 3)將商業(yè)數(shù)據(jù)中心引入當(dāng)前傳輸架構(gòu)并承擔(dān)角色,豐富系統(tǒng)的數(shù)據(jù)處理和計(jì)算能力,擴(kuò)展衛(wèi)星應(yīng)用范圍,有助于打破數(shù)據(jù)孤島,保護(hù)數(shù)據(jù)的隱私性,產(chǎn)生更多的經(jīng)濟(jì)效益和社會(huì)價(jià)值。 本研究目前尚處于試驗(yàn)和驗(yàn)證階段,后期還將探索更多同態(tài)加密算法,并致力于將其逐步應(yīng)用于實(shí)際衛(wèi)星通信之中。2.4 系統(tǒng)架構(gòu)設(shè)計(jì)
3 試驗(yàn)與分析
3.1 試驗(yàn)環(huán)境
3.2 試驗(yàn)內(nèi)容
4 結(jié)束語(yǔ)