郝立元 苑 毅
(兰州文理学院 传媒工程学院,兰州 730000)
智能电网就是电网的智能化,其通过先进的传感和测量技术、控制方法以及决策支持系统技术的应用,实现电网的可靠、安全、经济和高效的目标[1-2],其主要特征包括自愈、激励和抵御攻击、提供满足21 世纪用户需求的电能质量、容许各种不同发电形式的接入、启动电力市场以及资产的优化高效运行[2]。
供电企业和用电户(客户)是智能电网的两个主要实体。供电企业通过监测电表状态,获取相应的数据,进而平衡电网负荷。客户依据供电企业的用电策略,优化用电时间,压缩用电成本。
然而,关于智能电表数据的隐私、安全以及数据滥用问题是建设智能电网中不可小觑的议题[3]。例如篡改用户数据危害客户经济利益。随着数据挖掘、机器学习等技术的推广,攻击者很容易利用智能电网中的数据关联到客户的隐私信息,包括用电习惯,家庭地址[4]。
针对智能电表至供电企业间通信安全问题,传统方法是采用基于公钥基站设施(PKI:Public-key Infrastructure)的安全策略[5-6]。利用PKI 验证接收者的证书。然而,通过偷窥或篡改证书仍可窃取智能电表间通信的数据,这可能会给客户造成经济损失。因此,智能电表需要将数据存储于可信的第三方实体的仓库,并设置严格的访问机制,进而限制未授权方访问数据库。
属性密码机制是一类采用字符语义属性对数据机密性进行保障的密码机制。因安全灵活的访问机制,属性密码得到广泛的研究和应用[7-8]。Guan 等[9]提出基于属性密码(ABE:Attribute-Based Encryption)方案。ABE 方案对通信数据加密,只允许已授权的用户访问数据,其中访问策略由一些属性集组成。这些属性集关联到智能电表加密的数据。而未授权的用户不满足访问策略,从而无法接入关键数据。然而,传统的密文策略ABE(CP-ABE:Ciphertext Policies ABE)方案[10]仍存在遭受访问策略攻击问题。因此应在将CP-ABE 方案应用于智能电网时,需实施访问策略的模糊化,增加安全性。
为此,笔者针对智能电网中的安全数据共享问题,提出基于属性加密的安全数据共享(AEDS:Attribute-Based Encryption Secure Data Sharing)算法。采用属性加密,提高共享数据的安全性;并对访问策略进行模糊化,提高数据接入的安全性;同时,采用线性密钥共享方案减少接入成本,降低开销。仿真结果表明,提出的AEDS 算法有效地缩短了运算时间,提高了访问数据的安全性。
以数据为视角构建加密框架,如图1 所示。整个框架由主终端单元(MTU:Master Terminal Units)、相量测量单元(PMU:Phasor Measurement Units)和远程终端单元(RTU:Remote Terminal Units)组成[11]。
在整个系统框架中,MTU 为存储中心和其他实体的控制中心,PMU 采集数据,通过RTU 传输至MTU。用户通过人机接口(HMI:Human-Machine Interface)访问MTU,进而获取存储于MTU 中的数据。
结合图1的系统框架,考虑如图2 所示的系统模型。系统模型主要由密钥生成中心(KGC:Key Generation Center)、存储中心(SC:Storage Center)、数据发送者(Sender)和用户(User)组成。
图1 系统框架Fig.1 System framework
图2 系统模型Fig.2 System model
作为系统主体,KGC 为不同实体的密钥。第三方可信实体依据自身环境,提供公共参数。将公共参数输入KGC,再由KGC 产生相应的密钥。
SC 为数据存储中心。用户或官方部门可以访问这些数据。依据图1的系统架构,由MTU 执行SC。SC 存储数据,并为User 提供访问接口。
Sender 能产生数据,并向SC 传输数据。在本文的系统模型中,Sender 为基于多属性加密提供了访问策略,并对其产生的数据进行加密。然而,在向SC 传输密文前,Sender 也混淆访问策略。依据图1的系统架构,由RTU 或电表设备执行Sender。
User 表示访问数据的实体。User 通过HMI 从SC 中获取相关数据。一个User 能利用它的属性确认其能安全地访问存储于SC 中的密文,并解密密文。
线性秘密共享(LSS:Linear Secret Sharing)是一个秘密共享方案[12],其定义于属性集合U。若满足以下条件,LSS 称为在集合Zp上是线性的,其中p是素数。
1) 每个属性共享的密钥s∊Zp都能形成一个Zp上矢量。
2) 存在一个共享矩阵A,此矩阵有ι行、n列;对每行i=1,2,…,ι,矩阵A的第i行由一组ρ(i)进行映射。其中ρ为映射向量,ρ:{1,2,…,ι}→U。若s为共享秘密,则存在列矢量v=(s,r2,…,rn),其中r2,…,rn∊Zp为随机数。λ=Av为对于密钥s的ι维矢量。其中λx属于属性ρ(x)。
其中Ax为矩阵A中的第x行。
如果是未被授权的集合S,则不存在这些常数。将密钥s进行保存。在AEDS 算法中,利用(A,ρ)表示满足LSS 方案的访问策略。
AEDS 算法主要由系统初始化、密钥生成、加密、令牌生成、解密参数生成和解密6 部分组成。
选择阶为p的双线性群G和一个散列函数H:H:{0,1}*→G。用变量J隐藏访问策略中的属性。
首先,由第三方可信实体产生公共参数
其中G,GT为阶为p的循环群;g为群G的生成元;e为一个双线性对:e:G×G→GT;J为隐藏访问策略中属性的随机系列,即J:G→{0,1}log2p。
第三方可信体将公共参数PGP传输至KGC,然后KGC 产生自己的私钥KSGC和公钥KPGC,如下
利用每个User 所关联的属性,KGC 执行密钥生成KeyGen 算法,为每个User 产生密钥。令u表示第i个用户,S表示其属性集。KGC 先为用户u选择随机数ru,并针对属性集S中任意一个属性i∊S选择随机数rk。再将S、自己私钥和公共参数PGP作为KeyGen 算法的输入,KeyGen 算法输出用户u的私钥
Sender 在向SC 发送数据前,对数据进行加密。令IDa表示用户Ua的身份。数据拥有者Ua执行加密算法Encrypt(·)对数据进行加密
其中M为被加密的数据;A为访问策略;TC为被加密的密文。
下面分析构建TC的具体过程。最初,先选择两个随机矢量:v=(s,v2,…,νn)和χ=(0,χ2,…,χn)∊,并计算两个参数λx和wx
回首《路线图》编制的过程,我们深刻感受到,这是国内印刷界首次历时最长、涉及领域最广、触及难点最直接、引起社会关注度最高的行业产业发展探索和实现印刷强国之梦的一场思想大碰撞、大讨论的过程;也是一个凝聚共识、开放交流、共同提升和全面受益的集智过程、一段饱受煎熬和顽强坚守的心路历程。
其中Ax表示A的第x行。
为了隐藏访问接入策略,在访问策略中对属性进行模糊化。先选择一个随机数再计算sx=e((gβ))a和H(ρ(x))。ρ(x)为明文属性。为了在访问策略中对属性进行模糊,用J(sx)替换ρ(x)。
令IDs和IDa分别表示SC 和Sender的ID。Sender 计算KS=e((gγ))a和H(IDs)。计算以下参数
Sender 向SC 上传(TC,IDa,ga)。
若某个用户(假定Ut)想访问数据,需向SC 进行申请。具体而言,如果用户Ut需要访问存储于SC中的加密数据,用户Ut就向SC 先提供ga。并执行令牌生成TokenGen(·)算法,生成令牌
依据上述分析可知,用户User 端在解密密文时只需执行双线性对操作,这有利于减少计算开销,提高系统效率。
图3 给出User 获取数据的流程。其中图3a 给出上传、访问和解密数据的流程;图3b 给出获取数据过程中的相关参数传递流程。
图3 User 获取数据的流程Fig.3 The flow of obtaining data for user
AEDS 算法主要由系统初始化,密钥生成,数据加密,令牌生成,解密密文参数和解密6 个操作项。下面分析执行这些操作所消耗的时间。
实验利用Python3.6 版和Charm 加密库[13]产生智能电网数据,包括设备ID 号,测量时间,消耗的能量和设备数据。在Windows 7 操作系统、8 GByte 内存,Core i7 CPU的PC 上进行实验。
图4 给出了系统初始化和密钥生成两个阶段的运行时间。从图4 可知,密钥生成阶段的运行时间不受属性个数影响,维持0.12 s。而系统初始化阶段的运行时间随属性个数的增加呈线性增长。当属性个数增加至50 时,完成系统初始化阶段需要0.24 s。
图4 系统初始化和密钥生成 两个阶段的运行时间Fig.4 The running time of the system initialization and key generation phases
图5 给出了数据加密阶段的运行时间随属性个数的变化曲线。由图5 可知,数据加密阶段的运行时间与属性个数呈线性关系。数据加密阶段的运行时间随属性个数的增加而增加。但即使当属性个数增加至50 时,运行数据加密阶段也只需消耗约0.245 s。
图5 数据加密阶段的运行时间Fig.5 The running time of the data encryption phase
图6 给出运行令牌生成,解密密文参数和解密3 个阶段所消耗的时间。从图6 可知,与加密阶段相同,运行解密阶段所消耗的时间与属性个数无关,一直保持在0.06 s。运行令牌生成,解密密文参数阶段所消耗的时间与属性个数呈线性增长关系,但令牌生成阶段增长速度较缓慢。当属性个数为50,运行解密密文参数阶段消耗了0.231 s,而运行令牌生成阶段消耗了0.097 s。
图6 令牌生成,解密参数 和解密3 个阶段的运行时间Fig.6 The ruuning time of token generation,decryption parameters and decryption three stages
为更好地分析加密算法的性能,选择Sdhp[14]提出的基于隐藏策略的安全数据加密(SDHP:Secure Data Sharing with Hidden Policies) 方案和Hu 等[15]提出的基于属性加密 (ABSC:Attribute-Based Signcryption)方案作为参照,并分别从访问结构、隐私策略、密钥开销、公钥开销和密文开销5 个方面分析它们的性能,如表1 所示。
表1 性能对比Tab.1 Performance comparison
表1 中为访问策略大小;α为G中存储一个元素所需的容量;β为GT中存储一个元素所需的容量;s为用户私钥所包含的属性;r为访问策略包含的属性;ι为LSS 矩阵的行数。
SDHP 方案和ABSC 方案采用了与-或门限访问结构,而AEDS 方案采用了基于线性秘密共享矩阵访问结构。同时,AEDS 方案也具有匿名性,但ABSC 方案不具有匿名性。
此外,AEDS 方案与SDHP 方案的密钥开销为(3s+1)α,ABSC 方案的密钥开销为(2s+1)α。它们的公钥开销相同,均为2α+β。但其密文开销均不相同,AEDS 方案的密文开销小于ABSC 方案。
针对电网数据接入安全和效率问题,笔者提出基于属性加密的安全数据共享AEDS 算法。AEDS 算法采用属性加密,提高数据接入的安全性,采用线性密钥共享策略,增强访问策略的表述性。并将模糊策略与加密相结合,提高接入策略的隐私性。在解密端,AEDS 算法将开销转借于SC,减少了资源受限的用户端负担。