丁毅, 沈薇, 李洁,*, 程子敬, 靳军, 孙伽宁
1. 北京物资学院 信息学院,北京 101149 2. 航天恒星科技有限公司,北京 100094
当前,卫星通信已成为重要的通信基础设施,可进行数据交换、共享及应用,是传统移动互联网的有效补充,如卫星可在地面网络信号盲区发挥特有的作用[1-2]。以典型的气象数据采集系统为例,通过低轨星座进行数据传输,结构如图1所示,低轨星座充当远距离通信手段,从物联网采集终端收集气象数据,利用低轨星座和地面信关站传送数据至使用端。信关站可分为地面信关站和移动信关站,负责连接地面网络和卫星星座,进行转发处理。数据使用终端可以是移动的飞行器、汽车、轮船等对气象数据有需求的设备和运输工具,也可以连接互联网。与地面通信主要依赖互联网与各种终端设备连接。管理控制中心设置于地面系统,是整个空地系统的管理中枢,负责系统监控、资源调度等功能,直接连接互联网。
图1 卫星通信数据传输架构示例Fig.1 Architecture diagram of current satellite communication data transmission
在实际应用中,有些数据安全级别高,安全、隐私暴露等问题凸显,如何利用卫星信道安全有效地传输、分享数据成为目前亟待解决的关键问题。通常采用经典加密算法(比如AES、DES等)进行传输,对方收取之后直接解密。然而,这些方法面临以下挑战:
1)传统加密数据一对一传输,数据无法完成统计、计算等操作,应用范围受限;
2)由于现有架构中数据使用终端通常计算能力不足,架构中缺少高性能计算节点,仅支持对数据保密要求不高、对数据计算的处理量不大的场景;
3)中间传输过程存在安全风险,一旦出现数据泄漏、数据使用过程中被篡改、中间处理节点被入侵等安全事故, 数据就可以被随意复制、加工、传输,造成难以估量的损失;
4)非对称加密方法是数据使用终端生成一对公私钥。通过网络主动发送公钥给数据发送端加密。实际中存在多个数据源和接收端,发送端依赖接收端。数据使用终端的动态加入退出机制,可能造成无效的操作和传输。为了避免此问题,就需要减少加密过程对数据使用终端的依赖性。
基于上述挑战,本文提出一种面向卫星通信的全代理同态重加密传输模型及实现机制,有助于提高数据传输共享的安全性和效率,推动卫星通信应用的发展。
本文主要涉及一套安全传输机制的设计,并研究合适的同态加密算法,在此基础上进行代理重加密方法的改进,协同完成数据的安全可信传输。
同态加密[3]是一种可对密文进行计算操作的加密方案,核心思想是对密文计算(加或乘)得到的结果解密,与明文直接计算得到的结果相等。
基于理想格的全同态加密方案[4]的计算成本高、实用性不强。RSA算法易被攻击,Paillier算法效率低下。ElGamal同态算法应用广泛[5],依赖于有限域中计算离散对数的难题,具有乘法同态性,也可通过修改支持加法同态[6]。相同密钥加密,得到密文也不同,可有效避免重放攻击。由于暴力破解变体ElGamal算法需要逆向求指数幂,因此具有较好的安全性。本文研究基于ElGamal的代理重加密机制,支持多用户的数据安全传输及共享。
代理重加密(Proxy Re-encryption)技术[7]可用来解决多用户(多密钥)的问题。
经典的算法原理描述如下:假设有用户A、B(拥有不同的公私钥对),代理人P。A使用公钥将数据加密,然后传递给P,P处理后再传B,B使用私钥解密。此过程可分解为以下几个步骤:
1)A、B分别产生公私钥对,分别为(PKA,SKA)、(PKB,SKB),A将私钥SKA发送代理密钥生成者K,B将密钥PKB或者SKB发给K;
2)A使用公钥PKA对数据M进行加密,得到密文CPKA,可表示为CPKA=En(PKA,M),将CPKA发给代理人P;
3)K使用私钥SKA和B的密钥生成新的代理密钥RK;
4)K将RK并发给代理人R;
5)P使用RK将CPKA进行二次加密,得到结果CPKB,可表示为:CPKB=Pre(CPKA,RK);
6)P将CPKB发给B。
7)B使用密钥SKB将CPKB解密得到明文M,可表示为M=Dec(SKB,CPKB)。
以上过程如图2所示。值得注意的是,第3步K需要获取用户A的私钥,既要求传输信道是安全的,又要求代理人可信。特别地,若应用场景中存在多用户,需要多用户共同使用数据的处理结果,则会产生多对公私钥,这就必需由可靠的代理人完成代理密钥生成的计算过程。如何加强代理人的可信性,保护私钥不被泄露,是本领域的重要问题。
图2 经典代理重加密处理流程示意Fig.2 Flow schematic diagram of traditional proxy re-encryption process
近年来将代理重加密技术运用到云计算的研究较多,可通过管理访问权限或区块链方法提高安全性。苏铓等[8]采用了一种确定更新方案,对重加密密钥进行分割管理,能够实现授权时密钥确定性更新。王海勇等[9]使用了CP-ABE访问控制技术完成代理重加密的管理,可以减少解密开销,并降低用户私钥被盗时数据泄露风险。张小红等[10]提出了一种使用属性代理重加密机制进行云存储的方式,并将元数据在区块链上存储,加密过程使用区块链智能合约实现。Manzoor等[11]将代理重加密技术应用到物联网领域,传感器采集数据并进行加密后,通过区块链智能合约管理用户访问数据的权限。本文研究背景是卫星的信道,实时性要求高,上述复杂的访问控制和区块链系统不适用于此应用场景。
关于ElGamal代理重加密算法的安全性,有人从合谋攻击方面进行安全性改进[12],但仍需要使授权方拥有被授权方的私钥,授权方的权利过大。
可信执行环境(trusted execution environ-ment,TEE)表现为一组软硬件组件,可为应用程序提供必要的设施,使程序能够隔离运行和安全存储[13]。
TEE有多种实现方式,比较流行的是基于Intel 架构的SGX(Software Guard Extensions)[14]和手机终端ARM架构的TrustZone[15]。本文选用SGX架构。SGX程序在运行时会生成Enclave安全区,将需要保护的软件代码和数据存进去,即使特权软件或其他Enclave中的软件也无法访问该代码和数据,试图修改Enclave中内容的行为会被检测并禁止,此安全区可用来存储密钥等关键信息[16-17]。
本研究依据SGX的特点进行系统设计,负责密钥生成模块中可信计算参数产生的部分,既不会超出SGX可处理的计算范围,又能有效保护数据隐私,解决私钥、随机数泄露的问题,保证程序及数据不易被篡改。
本文针对卫星通信应用场景,提出一套新型的全代理同态可信传输模型,致力于解决加密数据使用效率低、密钥中途被窃取、计算能力不足、代理节点信任风险等问题。
本文提出的全代理同态加密传输模型与传统代理重加密传输模型的对比如图3所示。
图3 传统代理重加密传输模型与全代理同态加密传输模型的框架与流程对比Fig.3 Architecture and flow comparison diagram of traditional proxy re-encryption transmission model and FPRM
图3 (a)为传统典型代理重加密传输模型框架及流程图(以下简称原模型),框架分为3个区间,分别是数据提供者区间(A区间)、数据代理人区间(P区间)以及数据使用者区间(B区间),使用不同颜色虚线方框来表示不同区间,根据区间顺序将模型运行流程描述如下:
1)在A区间,mi表示原始数据(实际中存在多个数据提供者,图中i表示其中一份由A区间提供的数据),在加密过程中,数据提供者A需要首先获得B区间的公钥PKBi,通过私钥SKAi和PKBi自行生成代理密钥RKi。这一过程需要用到A的私钥,因此放到A区间完成。同时,mi通过PKAi完成数据的初次加密,生成加密数据c1i:
c1i=e(PKAi,mi)
2)P区间主要完成代理重加密数据和同态密文计算的功能。由A区间输入两部分信息,分别是需要再次加密的数据c1i和重加密密钥RKi,通过代理重加密操作生成加密数据c2i:
c2i=p(RKi,c1i)
密文c2i符合同态计算的规则,可与其他密文共同计算(加、乘等同态操作)得到密文结果g(c2i),该结果会传输到B区间。
3)在B区间中,g(c2i)通过SKBi解密得到明文结果g(mi):
g(mi)=d(SKBi,g(c2i))
传统代理重加密传输模型运行结束。该模型的特征是需要B区间提供密钥,主动参与重加密密钥RKi的生成,对数据使用者具有较高要求,不适用于终端动态性的应用场景。
图3(b)是本文提出的全代理同态加密传输模型(FPRM)的框架及流程图。同样,该模型分为A区间、P区间和B区间。相对于图3(a),最显著的特点是两方面:一方面是B区间不需要输出密钥,代理重加密过程不再依赖于数据使用者;另一方面是P区间又分成3类角色,表现为3个模块,分别是密码管理模块、数据重加密模块以及随机key生成模块,3个模块(角色)是相互独立的。以下为该模型运转流程的详细步骤:
1) A区间使用公钥PKAi将原始数据mi进行加密,得到密文c1i,与原模型相同,表述为:
c1i=e(PKAi,mi)
2) P区间中的密钥生成模块存在于一套可信执行环境中,遵照一定规则生成代理密钥SK和随机数ri(r的个数与m的个数相同),并将SK和随机数ri发送至A区间的数据提供者,使用SK代替原模型中的PKBi,可以完成对c1i的重加密,得到结果c2:
c2i=re(SKAi,SK,c1i)
然后,为了减少P区间受到攻击后,从密文反推原始数据的风险,A区间使用随机数ri完成对c2i加锁操作,得到结果为l(c2i,ri)。由于SK在该模型中使用频率较高,故密钥生成模块周期性地更换SK。
3) A区间将l(c2i,ri)传输到P区间的数据重加密模块。P区间的密钥管理模块根据ri的顺序,生成集合R:
R={r1,r2,…,ri}
然后将R传递给数据重加密模块,按照顺序完成l(c2i,ri)等密文的解锁操作,表述为:
c2i=l-1(l(c2i,ri),ri)
进而完成同态计算操作,得到密文结果g(c2i),参见图3(b)中数据重加密模块中的a路径。
如果同态计算可转换成线性加或线性乘,则l(c2i,ri)符合同态加密计算规则,与其他加锁密文数据进行同态计算操作g(),可以得到结果l(g(c2i),r),其中:
r=g(ri)
P区间的密钥管理模块根据同态计算操作规则,得到r,并将其传递给数据重加密模块进行解锁逆操作,得到密文结果g(c2i):
g(c2i)=l-1(l(g(c2i),r),r)
这样处理可以进一步加强安全性,参见图3(b)中数据重加密模块的b路径。
4) P区间的随机key生成模块生成随机Kj,并将Kj分别发送至数据重加密模块和B区间。数据重加密模块使用Kj对g(c2i)进行代理重加密,得到结果p(g(c2i),Kj),并发送至B区间。其中,加密操作p()是可以通过Kj进行可逆操作的。
5) B区间利用接收到的随机Kj,首先进行解密操作,得到结果g(c2i):
g(c2i)=p-1(p(g(c2i),Kj),Kj)
同时,P区间中的密钥管理模块也会将SK发送给B区间,B区间利用SK完成同态计算密文g(c2i)的明文g(mi):
g(mi)=d(SK,g(c2i))
相对于传统代理重加密传输模型,该模型为了保证安全性,避免了单个代理人拥有较高权限,减少中途被截取从而解密数据的风险,在P区间设置了3个相互独立的模块。将密钥生成功能放置于可信执行环境TEE来保障密钥不被篡改,同时通过不同模块设置了2个随机数,用于保障区间传输的安全性:一个用于A区间到P区间模块的加解锁,另一个用于P区间模块到B区间的数据代理重加密和解密。
通过上述分析可知,该模型避免了数据加密传输对数据使用者(B区间)的依赖性,将数据使用者由主动参与模式变成被动接受模式,适用于在气象卫星应用场景中数据使用者的异构性、动态加入退出的特性。
按照上述分析,本文选用ElGamal算法作为全代理同态加密传输模型的实现基础。对照上述模型,本节展开详细描述,实现多个数据所有者(A区间)将数据加密后,利用全代理同态加密传输模型将数据的计算结果发送给数据使用者(B区间)。
依据FPRM抽象模型,这部分将模型算法实例化,流程设计如图4所示。
模型数据:模型中存在多个参与安全传输的数据,来源于多个数据提供者,假定表示原始明文数据集合:
M={m1,m2,m3,…,mi}
图4 系统加密流程设计Fig.4 Design diagram of encryption process
模型组件:模型可分为3个区间。
1)数据提供者区间(A区间):负责提供数据原文,并且完成2次加密和1次加锁处理操作。
2)数据代理人区间(P区间):负责代理密钥生成、数据重加密、数据解锁和随机数生成等功能,又根据角色可拆解为以下3个功能模块:
密钥管理模块S:产生重加密中涉及的密钥SK、加锁随机数ri以及解锁数r,该模块的计算部分运行于可信执行环境SGX中。另外,由于SK在该模型中应用较多,为减少风险,SK需要周期性更新。
数据重加密模块R:使用S传递的参数r完成A区间密文数据的解锁,利用随机key生成模块G产生的代理重加密参数Kj完成代理重加密操作。
随机key生成模块G:产生随机数Kj供R模块完成代理重加密过程,并将Kj发送B区间用于解密密文数据。
3)数据使用者区间(B区间):收到数据密文后使用获取的SK和Kj解密,得到同态计算的明文结果。
模型输入输出及算法:每个区间及每个模块都有输入输出及相关算法,描述如下。
A区间的输入:B区间S模块发送的密钥SK以及系列加锁随机数ri,每个ri对应1个数据源mi。
A区间的输出:通过2次加密操作后,再加锁输出同态密文数据。
A区间涉及的核心函数描述如下:
1)GenKey(param):密钥生成函数。输入参数param,输出数据提供者的公私钥对,分别为(PKAi,SKAi);
2)Encrypt(PKAi,mi):加密函数。mi为A区间的明文,输入公钥PKAi对明文mi进行加密(PKAi,mi),依据ElGamal算法特点,输出加密后的密文对(c1i,c2i),其中c1i为算法生成的辅助私钥,c2i为根据明文计算后的初始密文数据;
P区间的输入输出描述如下:
密钥管理模块S输入:读取同态计算规则。
密钥管理模块S输出:生成周期性更新的密钥SK,将其发送给A区间和B区间;同时,将系列加锁随机数ri发送至A区间,而将系列随机数集合R={r1,r2,…,ri}发送至数据重加密模块,依据ElGamal算法特点,同态计算表示为线性的乘法(明文的加运算,也表现为密文的乘运算,只是加密算法不同),则可以将r=g(ri),在本算法中实质上就是多个ri相乘,传递给数据重加密模块,其中g()即A区间密文的同态计算规则。
随机key生成模块G输入:无。
随机key生成模块G输出:将生成的随机Kj分别发送至数据重加密模块R和B区间。
数据重加密模块R的输出:代理重加密后的密文(C,C″),将其传输至B区间。
P区间涉及的核心函数描述如下:
1)Random():随机数生成函数,S、G模块需要使用该函数生成全代理同态加密中所需密钥SK、Kj和安全传输中用于加锁的随机数ri。这些过程都可以在SGX中完成,尤其是S模块中生成周期性的密钥SK和随机数ri。
3)ProReEncrypt((C,C′),Kj):代理重加密算法。从G模块获得代理重加密所需的随机Kj,输出代理重加密密文(C,C″),其中C不变,C″则为数据密文C′再次代理重加密的密文结果,将该结果传输到B区间继续运行。
B区间的输入:P区间密钥生成模块S发送过来的密钥SK以及随机key生成模块G传输过来的Kj。
B区间涉及的核心函数描述如下:
Decrypt((C,C″),d(SK,Kj)):解密算法。其中,依据ElGamal算法,Kj和SK可以通过计算生成密钥d(SK,Kj),完成对于(C,C″)的解密,解密算法分为乘法和加法解密两种方式,输出解密后的明文。A区间再根据需要自行进行计算或其他操作。
基于ElGamal算法完成全代理同态加密传输模型,由于其乘法和加法是分别进行的,在传输过程加强了安全性,比如r的设计,减少了信息中途被解密的风险,当然对于混合计算的应用,可能需要在B区间的数据使用者进行明文的进一步计算,但不会造成源数据的泄露。SGX的使用,加强了密钥生成的可信操作,能够有效防止代码运行中的隐私变量被窃取。总之,基于ElGamal算法可以较好地实现全代理同态加密传输模型,减少对于B区间加密传输过程的依赖,A和P区间负责全代理。
本方案是以ElGamal算法作为基础的,本节重点介绍算法的设计与实现。ElGamal算法的加密和解密分为支持加法同态和乘法同态两种。下文分别进行描述。
2.3.1 加密模块
这一模块涉及公私钥对的生成,并使用公钥对明文进行加密。经过加密、重加密之后的密文支持乘法和加法同态。
生成密钥的思路是,以生成上述模型mi数据使用的SKAi和SK,以及公钥PKAi为例。取1个大的随机素数p,生成p的1个生成元g,并将p、g公开。随机生成整数x作为私钥(1 算法1:生成密钥对 输出:大素数p,生成元g,私钥SKAi与对应公钥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)乘法同态 随后对明文数据mi进行加密,具体为生成随机数k(1 算法2:明文数据加密(乘法同态) 输入:明文mi,大素数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)加法同态 同样,对明文数据mi进行加密,对加密之后的密文支持加法同态和常数乘法同态,算法描述如下: 算法3:明文数据加密(加法同态) 输入:明文mi,大素数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,大素数p 1:function ReEncrypt(c1,c2,SKAi,SK,p) 2:x←SKAi-SK 3:v←(c1)xmodp 6:end function 另外,在P区间数据重加密模块中,通过获得随机key生成模块的随机正整数Kj来完成同态计算后的数据(C,C′),再进行代理重加密,得到密文数据(C,C″),算法描述如下所示: 算法5:代理重加密算法 输入:密文C,C′,密钥Kj,大素数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 解密模块 解密模块运行于B区间数据使用者处,分为乘法和加法同态解密两种,需要根据需求选择不同算法。 (1)乘法同态 数据使用者利用P区间发送过来的密钥SK和随机正整数Kj生成解密密钥x′=SK-Kj,对密文(C,C″)进行解密计算v=(C)x′modp,得到明文M′=(C″×v-1)modp。解密算法描述如下所示: 算法6:解密算法(乘法同态) 输入:密文C,C″,密钥SK及Kj,大素数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)加法同态 加法同态的解密过程比乘法同态多一步求对数的过程,如算法7所示。 算法7:解密算法(加法同态) 输入:密文C,C″,密钥SK及Kj,正随机整数α,大素数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 针对卫星通信的现有架构以低轨星座气象数据采集传输为典型案例(如图1所示),本节进行基于ElGamal算法的全代理同态加密传输模型的实例化设计工作。在案例的物理架构中部署模型的各个模块。传输系统由卫星、信关站、管理控制中心构成,再加上参与计算的商用数据中心(或云计算中心),共同组成模型中的数据代理人区间(P区间);气象采集终端对应于数据提供者区间(A区间);而数据使用者终端则对应于数据使用者区间(B区间),整体架构如图5所示。在气象采集终端,除了数据采集模块,又加入了FPRM模型A区间的公钥加密模块、重加密模块以及加锁模块,完成相应功能。在P区间,管理控制中心负责系统监控、资源调度等功能,额外增加了基于SGX机制上的密钥生成模块(生成密钥SK和随机数ri)和随机数处理模块(用于完成多个ri生成r的操作);信关站则加入了随机key生成模块;而商用数据中心则囊括数据重加密模块,进一步分为同态计算、解锁和代理重加密模块。数据使用者终端拥有解密模块以及根据需求对解密明文进行后处理的功能。 本文提出的全代理同态可信传输系统就是将信息在上述各模块之间进行流通。为了保证数据传输和通信的安全,依赖于现有物理架构的基础特征,在互联网、信关站和低轨星座系统中建立3个独立虚拟专用通道(virtual private network,VPN),分别是t1、t2和t3,保证数据互相独立,互不干扰。首先,管理控制中心生成的密钥SK和随机数ri通过t1信道经过互联网、信关站和卫星,到达气象采集终端,分别传递给重加密模块和加锁模块。进而,数据采集终端完成加密、重加密、加锁等操作,将加锁后的重加密数据通过t2信道经由卫星、信关站、互联网到达商用数据中心。同时,管理控制中心的随机数处理模块生成的r通过互联网的专用信道传递给商用数据中心。信关站上的随机key生成模块也将生成的Kj通过信道t3经由互联网发送过来。商用数据中心得到这些信息,继而进行同态计算、解锁及代理重加密工作,并将代理二次重加密同态计算后的密文通过互联网专用信道发送至数据使用者。同时,通过互联网专用信道发送给数据使用者的还有管理控制中心的SK以及信关站随机key生成模块发出的Kj。数据使用者先进行解密操作,然后根据自身需求完成后相关操作。这样,就完成了整个系统的数据安全流通。 本研究提出的全代理同态可信传输系统及运行机制,适用于当前卫星通信的物理架构,可以进行安全数据传输,并保护原始隐私数据,同时,系统还避免了对数据使用者的依赖,将卫星和互联网及商业数据中心有效结合,扩展了卫星通信系统的应用范围。 图5 可信卫星数据传输系统架构示例Fig.5 Architecture diagram of trusted satellite data transmission system 本方案测试环境是使用一台计算机,配置SGX环境,用来模拟管理控制中心;一台服务器,用来模拟A、B区间功能模块、信关站和商用数据中心。 3.2.1 性能对比试验 本试验进行数据传输模拟,共进行50次测试,可得到性能对比结果。图6给出了本方案在大素数p为512位,用户数为5,每位用户数据量为100条的条件下各模块加密时间分布图,其中横坐标表示编号(第1~50次测试)。依据基于ElGamal算法的全代理同态加密传输模型,该过程可分为以下7个部分:1)生成密钥;2)加密;3)生成随机数ri、密钥SK;4)第一次重加密、加锁;5)解锁、同态计算、第二次代理重加密;6)解密;7)生成随机数Kj。图7为各部分所用时间的占比图。 传统的多用户代理重加密方法,主要由生成密钥、加密、代理重加密、同态计算、解密组成。由试验结果可以得出,密钥生成模块的时间占比最多,由于随机因素(生成元),时间上有一定浮动性,除此之外,其他模块在相同数据量的前提下运行时间较为稳定。本文所提出的全代理同态加密传输模型在传统的代理重加密方案的基础上,增加的加锁、随机参数生成等安全隐私保护模块仅占比约10%,且其中大部分工作在该应用场景中可由商用数据中心来完成。说明本研究方案可以在增加少量开销,基本不影响效率的前提下,实现有效的数据隐私保护和安全传输,避免重加密过程对数据接收方的依赖性。 进而对系统容量的影响进行分析。相对于传统的代理重加密方法,全代理重加密机制会在传输中产生少量额外的计算开销,增加部分传输时间,但是对于接入终端数目并无显著影响。另一方面,本文选择的同态加密算法存在一个限制条件(其他许多算法也有类似特征,如RSA算法,要求目标数据加密的位数不能超过密钥的长度值减去11), 即加密数据要小于密钥的数值,这可能会对传输数据源有一定限制,但与全代理加密机制并无直接关系,对系统容量的影响也较小。 图6 基于ElGamal算法的FPRM模型各模块时间分布Fig.6 Time distribution chart of each module for FPRM model based on ElGamal algorithm 图7 基于ElGamal算法的FPRM模型各模块时间占比Fig.7 Time proportion chart of each module for FPRM model based on ElGamal algorithm 3.2.2 可扩展性对比试验 本试验首先设置在大素数p为1024位,用户数为5的条件下进行。由于生成密钥需要遍历操作找到符合条件的大素数p,且由效率对比试验可知,密钥生成模块时间有一定浮动性,且不是本模型的核心部分,所以本试验所记录的时间不包括生成密钥的时间。图8给出了随着操作数据量增加,运行时间的变化趋势图。 由试验结果可以得出,在不考虑生成大素数p时间的情况下,本方案其他各部分的运行时间随着数据量的增长近似呈线性,不会有大的波动,具有良好的可扩展性。 另外,在改变素数位数后对运行时间进行测试,图9为时间随大素数p的取值变化图。分别记录p在256、512、1024位大小下的运行方案所需的时间,同样不包括生成密钥的时间。由于本算法同态数据要小于密钥数值,因此,过短的位数会造成应用范围变小。另一方面,由试验结果可以得出,大素数p的位数越多,随着数据量的增大,运行方案所需要的时间增长越快。因此在不影响安全性的情况下,对p采用512位通常可以作为实际应用中较好的选择。 图8 基于数据量的运行时间趋势Fig.8 The operational time trend graph with different data volumes 图9 时间随大素数p位数变化Fig.9 Graph of time with large prime p bits 本文提出了一套全代理同态加密传输模型,基于ElGamal算法实现,并基于现有卫星通信架构将其实例化,形成可信传输机制,具有以下特点: 1)该机制支持数据多对多传输,同态加密数据在保护数据隐私的前提下,可对数据进行统计、计算等操作,满足卫星应用的多样性差异化需求; 2)相对于传统代理重加密传输模型,该模型在数据代理人区间设置3个独立的安全管理模块,并应用可信执行环境,避免单个代理人拥有过高权限,减少中途被截取解密数据的风险;特别的,数据提供者区间和数据代理人区间完成加密和安全传输操作,脱离数据使用者密钥的约束,满足数据使用终端动态加入退出机制,减少无效操作和传输; 3)将商业数据中心引入当前传输架构并承担角色,丰富系统的数据处理和计算能力,扩展卫星应用范围,有助于打破数据孤岛,保护数据的隐私性,产生更多的经济效益和社会价值。 本研究目前尚处于试验和验证阶段,后期还将探索更多同态加密算法,并致力于将其逐步应用于实际卫星通信之中。2.4 系统架构设计
3 试验与分析
3.1 试验环境
3.2 试验内容
4 结束语