基于CP-ABE的工业控制系统加密传输方案

2022-10-24 01:20赵东东石乐义谢云飞
计算机技术与发展 2022年10期
关键词:密文解密密钥

赵东东,石乐义,,谢云飞

(1.中国石油大学(华东) 海洋与空间信息学院,山东 青岛 266580; 2.中国石油大学(华东) 计算机科学与技术学院,山东 青岛 266580)

0 引 言

工业控制系统(Industrial Control System,ICS)是由计算机和工业生产设备根据电气规则组合而成的一套自动控制系统,被广泛应用到电网、石油、交通和智能制造等行业,国内越来越多的领域和行业都与工业控制系统有着密切的联系。随着数字经济的不断发展,数字传输和云服务的增长,原本比较封闭的工控系统开始接入互联网,使用云计算和云存储,带来便利的同时也造成了很多工业领域的安全事故[1]。因此,国内外也对此进行了各项评价指标和评估模型的制定,来保障工业控制系统的安全[2]。

在传统的工业控制系统中,现场设备的电气参数和配置参数等数据经常会以明文的形式进行传输,非常容易出现数据泄露、数据被篡改的风险[3],因此国内外对ICS信息系统提出了很多安全策略、安全措施和安全认证等方面的工作。加密是为数字通信提供安全性和保密性的基本技术之一。Halas等人[4]在PLC(Programmable Logic Controller)设备中对加密算法进行了性能测试,对比模拟性能实验结果可知高级加密标准(Advanced Encryption Standard,AES)能够符合工控系统要求的实时性,但是对称加密算法AES的密钥如何分发到加密端和解密端仍然是个问题。Li等人[5]提出一种将加密控制器与入侵检测系统相结合的方案,提高了工业控制系统的安全性,但是造成了PLC计算开销较大的问题,不能满足实时性的要求。李等人[6]在PLC工控环境下利用同态计算和保序加密的方法对控制器内的数据进行了加密,缺点是计算开销较大。

针对保护工业数据的安全性问题,Sahai等人[7]根据每个人都具有的生物特征,且个体的生物特征无需保密,提出使用生物特征作为身份标识属性进行加密,并对生物特征的测量具有容错性,缺点是要保证生物特征不能被模仿的前提下完成,且方案精度受到生物特征采集设备和技术质量的影响。Goyal等人[8]提出基于密钥策略的属性加密(Key-Policy Attribute-Based Encryption,KP-ABE)和基于密文策略的属性加密(Ciphertext-Policy Attribute-Based Encryption,CP-ABE),有效解决了不同用户根据不同访问策略访问不同数据的问题,实现了细粒度访问控制,能够支持可实现的访问结构,缺点是对访问结构的设计需要花费很大的时间,方案的前期工作较多。随后,Leoko等人[9]设计了密钥和密文的半功能性组件,并提出一次性ABE系统可转换为多次使用的基于属性的加密系统,实现了基于属性加密的完全安全性,但是在系统转换的过程中会产生额外的计算开销,影响了系统的整体效率。熊等人[10]根据用户隐私数据的程度划分为不同的等级进行加密,封装成自毁内容后再发送到存储服务商,数据达到有效期之后无需额外的设备就能进行自毁,有效保护了用户数据的安全性,但是不适用于云环境下的大规模用户的使用。关等人[11]提出使用多授权中心解决单授权中心不可信或遭受到攻击密钥泄露的问题,并改善了属性分组算法,降低了重加密属性的数量,缺点是多授权中心之间的访问控制策略较复杂,且需要提前规划各授权中心的协调配合工作。陈等人[12]针对私钥泄露问题,结合密钥隔离机制在属性加密下提出并行密钥隔离机制,能够实现临时密钥的频繁更新,以抵抗密钥泄露的风险,缺点是临时密钥的更新需要用户与协助器之间频繁的通信,系统整体吞吐量受限于双方的通信效率。王等人[13]提出了在直接模式下,支持细粒度属性撤销的属性加密方案,提高了系统对用户属性撤销的效率,但是方案公钥的大小与用户数量成正相关,容易造成公钥参数过长的问题。闫等人[14]结合数据外包和密钥加密密钥,提出在间接模式下支持及时撤销的属性加密方案,能够对用户的属性撤销实现细粒度的控制,但是在秘钥更新过程中计算开销较大。Ruj等人[15]采用数据聚合和访问控制权限进行属性加密,使用同态加密算法对用户数据进行加密,并对访问控制权限使用属性加密,保障了电网的数据安全,缺点是采用了同态加密算法,计算效率较低,对存储的需求较高。Chaudhary等人[16]提出了SDN通信模型来保护工业物联网插画师能的数据,并采用属性加密数据,对访问权限进行细粒度控制,有效保护了工业数据的通信安全。

上述CP-ABE方案中,都是通过线性秘密共享方案(Linear Secret-Sharing Scheme,LSSS)对单调访问结构进行描述,此种加密方式会随着LSSS矩阵的变化而变化,当矩阵变大时,解密开销也会随着增加,因此此种方式不适合矩阵较大的情况下对数据进行加密操作。因此,Doshi等人[17]结合基于属性的加密方案,提出一种密文长度与用户的属性数量无关的密文定长方案,在用户属性数量较大的场景下具有明显的优势,缺点是仅限于密文中的属性必须是密钥中属性的子集,对于其他的情况无法实现密文定长的功能。王等人[18]使用最小授权子集表示单调访问结构并对原始明文进行加密,实现了解密成本为常数的功能,加快了解密数据的速度,但是最小授权子集的构造较复杂,需要提前准备好最小授权子集才能开始进行加密工作。Cheng等人[19]提出在非单调与门访问策略下,能够实现密文大小固定,计算开销为常数的属性加密方案,缺点是应用范围仅限于与门访问结构进行加密。Hohenberger等人[20]在属性数量没有限制的背景下,提出密钥策略属性加密方案,在解密阶段只需要固定的计算开销,在很大程度上提高了解密的速度。Rao等人[21]提出多授权中心的分散框架,利用最小授权子集进行加密,解密阶段的双线性对数量固定,在保证了授权中心去中心化的同时,提高了解密速度,但是密文大小与最小授权子集相关,没有实现密文定长的功能。

除了将密文定长降低解密开销外,还可以采用计算外包的方式。Qin等人[22]提出一种在解密阶段通过外包服务器进行解密的方案,并支持验证,解密速度远高于用户端的解密,大大提高了解密的效率,但是没有实现密文的定长,在密文较大的情况下,云服务器端计算开销依然很大。Yang等人[23]提出一种使用云服务器应用到医疗保健物联网中,提高了物联网设备的存储和计算效率,但是没有实现密文定长的功能。

该文利用对称加密算法AES和非对称加密算法CP-ABE,设计了一种在工业控制系统场景下的数据加密传输方案。在工控现场设备端,采集好电气参数和配置参数后,由工控系统用AES算法将原始数据进行加密处理,然后再采用CP-ABE对AES的密钥进行加密。在文献[17]算法的基础上,实现CP-ABE算法的密文定长,并通过改进算法可以实现解密外包,同时用户端通过计算验证码的形式验证云服务器解密的结果,减小了密文的存储空间,降低了用户在解密数据阶段的计算开销,提高了用户端访问数据的效率,并基于DBDH假设做出了安全性分析。

1 预备知识

1.1 双线性群

设G1是素数阶为q的乘法循环群,g是G1的生成元,双线性映射e:G1×G1→G2,∀m,n∈G1,选取∀a,b∈ZP(ZP为素数p阶循环群),满足如下:

(1)双线性:e(ma,nb)=e(m,n)ab;

(2)非退化性:e(g,g)≠1;

(3)可计算性:∀u,v∈G1,能够计算出e(u,v)。

1.2 系统模型

该文所提出的基于CP-ABE的工业控制系统加密传输方案如图1所示。系统框架由密钥授权中心、工控系统、访问用户、云服务器、云数据库组成,下面对部署结构中的各个组成部分进行简要介绍。

图1 系统架构

(1)密钥授权中心(Key Generation Center,KGC):负责产生系统主密钥对MPK、MSK,计算系统的公共参数和用户的属性私钥SKL。

(2)工控系统(Industrial Control System,ICS):负责检测和收集工业设备的各项参数、环境参数并进行加密,然后将所有加密的数据上传到云服务器进行打包处理,等待上传到云数据库。

(3)用户(User):属于工业控制系统的操作员工或者上层管理者,需要对工控系统产生的数据进行访问查看。在通过系统的注册认证后,可以通过向云服务器申请访问工业数据,并将自己的属性私钥SKL发送到云服务器进行解密外包。

(4)云服务器(Elastic Compute Service,ECS):负责将ICS发来的密文和密钥进行打包并上传到云数据库,也负责审核用户的访问请求并完成密文文件的解密外包工作,降低用户的解密开销。

(5)云数据库(Cloud DataBase,CDB):主要用于存储加密过的工业数据和密钥文件。

2 方案设计

2.1 CP-ABE加密AES密钥的访问结构

在文献[17]的算法基础上,该文设计出用CP-ABE算法加密AES密钥的方案,使得AES密钥的密文长度不会随着属性的增加而变长,实现了密文定长的功能,并通过改进算法实现了解密外包,用户可以通过计算验证码的方式验证解密结果。该访问结构利用多值与门进行表示,设U={att1,att2,…,attn}为属性集合,Si={vi,1,vi,2,…,vi,ni}为属性可能值的集合,ni为属性i可能取值的个数。L=[L1,L2,…,Lni](Li∈Si)表示访问用户的属性列表,W=[W1,W2,…,Wn](Wi⊂Si)为访问结构。

2.2 CP-ABE加密AES密钥方案构造

本节给出了密文定长且解密外包的CP-ABE工业控制系统加密传输方案的具体构造。

(1)Setup(1k):首先由授权中心KGC计算系统的公开参数(G1,GT,e,g,u,h,y,ti,j)。Gi表示阶为i的群G下的子群,其中G1、GT为两个阶为素数p的双线性群,e:G1×G1→GT为双线性映射,g,u∈G1表示为G1的生成元,h为哈希运算,算法随机选择参数y∈RZP,ti,j∈RZP(i∈[1,n],j∈[1,ni]),然后由KGC计算Y=e(g,h)y,Ti,j=gti,j(i∈[1,n],j∈[1,ni]),最后得到系统主密钥对(MPK,MSK):

MPK=(e,g,h,Y,Ti,j(i∈[1,n],j∈[1,ni]))

MSK=(y,ti,j(i∈[1,n],j∈[1,ni]))

(2)KeyGen(MSK,L):用户(ID)向授权中心(KGC)申请属性私钥,KGC随机选择参数r∈RZP,输入系统的主私钥MSK和属性列表L,由KGC计算得出用户的属性私钥SKL:

SKL={sk1=gti,jh(ID)ti,j|νi,j∈L,

(3)Encrypt(M,MPK,W,V):数据加密由工控系统(ICS)完成,输入待加密AES的密钥M(M∈ZP),主公钥MPK和用户访问结构W,选取一个随机值s∈RZP,并计算本次验证码V,得到密钥的密文CT:

CT={C1,C2,C3,W,V}

(4)Decrypt(MPK,CT,SKL):本方案中,对AES密钥的密文解密由云服务器完成。用户将自己与属性集合S有关的属性密钥SKL发送到云服务器,当属性列表L满足单调访问结构W时,云服务器利用用户的属性私钥即可计算出对应的AES密钥,计算过程如下:

得到AES的密钥M后,采用AES解密算法将加密后的工业数据解密为DATA,然后将密钥和工业数据(M,DATA)发送回用户端。

(5)Check(V):用户利用从云服务器传送回的M计算本次验证码,若h(uM)=V,则证明密钥是正确的,收到的DATA是正确且可信的,否则,数据解密过程出现错误,重新解密。

3 安全性证明

Step4:对Step2和Step3步骤进行重复操作。

Step5:若经过几轮操作之后,能够得出Z=e(g,g)abc,则敌手能够对i的值进行精准的预测,否则敌手只能以概率ε对消息进行随机的猜测才能解决DBDH问题。

4 性能分析

本节将从理论分析和实验测试两个方面对所提的方案进行性能评估,并与文献[17,23]方案进行对比。

4.1 理论分析

4.1.1 密文长度分析

本节对比文中方案与文献[17,23]方案在云服务器端和用户端的密文长度,选取文献[23]里面基于属性的访问方案。|G1|、|GT|、|ZP|分别表示G1、GT和ZP中元素的长度,n为属性的数量。在本次对比实验中,主要对比解密外包云服务器端的密文长度和用户端解密的密文长度,由于文献[17]没有解密外包,所以在云服务器端没有出现密文,具体对比情况见表1。

表1 密文长度对比

由表1可以看出,文中方案和文献[23]在用户端的密文长度分别为|GT|和2|GT|,文献[17]用户端的密文长度为4|G1|;文献[23]在云服务器端的密文长度与属性数量n相关,文中方案在云服务器端的密文长度为一个定值,在属性数量n较大的情况下,文中方案更具有优势。

4.1.2 解密计算开销对比

本节对比文献[17,23]的在加密和解密阶段的计算开销,本次不考虑哈希计算和AES对工业数据的加密计算,具体对比情况见表2。其中E1、ET分别是G1、GT中的指数运算,P为配对运算,n为用户的属性数量。

表2 计算开销对比

通过表2可以得知,在加密阶段,文献[23]方案计算开销最小;在外包解密阶段,文献[17]没有实现外包,文献[23]解密开销与用户属性数量n相关。该文由于实现了密文定长,计算开销是一个定值;在用户解密阶段,文献[17]与用户属性数量相关,文献[23]为7E1,文中为ET。文献[17]整体计算开销为(3+n)E1+ET+3P,文献[23]整体计算开销为(8+2n)E1+ET+3P,文中方案的整体计算开销是一个定值2E1+2ET+3P,另外两个方案总计算开销与属性数量n相关,因此当属性数量n很大的情况下,文中方案具有明显的优势。

4.2 实验测试

在实验测试中,该文以椭圆曲线TypeA:y2=x3+x为基准,测试程序基于开源密码学库Bouncy Castle实现,使用java语言编写,解密外包云服务器采用阿里云服务器ECS,数据库采用MySQL,加密工业数据的算法为128 bit AES算法,主要运行环境如表3所示。

表3 服务器配置情况

在不考虑网络延时的情况下,分别测试三种方案在加密阶段和解密阶段的系统响应时间,使用压力测试工具Apache JMeter在模拟工控系统(ICS)加密阶段和云服务器端、用户端解密阶段系统响应时间,实验测试中每组数据均采用20轮实验的平均值,图2为加密阶段对比实验,图3为解密阶段对比实验,图4为用户解密阶段对比实验。

图2 加密阶段系统响应时间

图3 解密阶段系统响应时间

图4 用户端解密响应时间

通过图2可以看出,在加密阶段,3种方案的系统加密时间都随着用户属性的增加而增加,没有明显的差异,都保持在1 s到5 s之间。通过图3可以看出,文中方案和文献[23]都采用的是外包解密结合用户解密,文献[17]没有采用外包解密,因此文献[17]用户端解密的开销和文中方案、文献[23]走势和几乎相同,但是文中方案和文献[17]都采用了密文定长的算法,因此在属性数量到达80到100区间,文中方案的外包解密与文献[17]的用户解密时间开销在5 s到6 s区间,文献[23]在8.1 s左右,并且上升趋势更快。通过图4可以看到,文中方案的用户端解密开销基本稳定在10 ms左右,文献[23]的用户端解密开销随着属性数量的增加而不断增加,文献[17]没有实现外包解密,用户端解密开销放在图3进行对比。

在工控系统的实际应用场景中,工业数据一般会进行一次加密上传后多次下载解密,即下载解密阶段的性能才能决定系统整体性能的好坏,当用户下载解密的次数远大于上传加密的次数时,加密上传阶段的性能几乎可以忽略不计,因此,文中方案在对比实验中,具有用户端访问数据解密时间短,访问数据量大的优势。

5 结束语

针对工业控制系统日益严峻的数据安全性问题,采用AES加密工业数据后用CP-ABE加密AES算法的密钥,并在文献[17]算法的基础上实现了AES密钥的密文定长的功能,减小了存储空间,并改进算法实现外包解密,用户端通过计算验证码对云服务器解密数据进行验证,降低了用户端的解密开销和访问数据的效率。在实际应用场景中,工业数据一般进行一次加密上传和多次下载解密,当下载解密次数远大于加密上传的次数时,系统整体效率与下载解密阶段有关,用户端的解密时间为解密阶段的重要指标。通过实验结果可知,文中方案在解密阶段,由于采用了解密外包,在用户端的解密时间远低于文献[17]方案的解密时间,随着属性数量的增加,也明显低于文献[23]用户端的解密时间,因此所提的方案能够满足工业控制系统用户访问量大、响应时间短的优势,提高了访问数据的效率,适合工控系统的大规模数据加密和访问。

下一步的研究内容为访问用户提供数字证书验证,用户在请求访问数据之前需要到授权中心注册并申请签名得到数字证书,凭借数字证书获得访问数据的资格,进一步增加工业数据的安全性。

猜你喜欢
密文解密密钥
一种支持动态更新的可排名密文搜索方案
幻中邂逅之金色密钥
幻中邂逅之金色密钥
群智感知网络环境下的一种高效安全数据聚合方案*
基于模糊数学的通信网络密文信息差错恢复
炫词解密
支持多跳的多策略属性基全同态短密文加密方案
解密“一包三改”
密码系统中密钥的状态与保护*
炫词解密