支持高效检索的电力数据密文存储方案

时间:2023-06-14 11:55:04 公文范文 来源:网友投稿

王冠男 马 帅 叶 琛 尧聪聪 唐文佳

(国网征信有限公司 北京 100053)

数字经济时代下,合理保护用户隐私,发展数据产业链,充分挖掘数据价值,是国家的核心竞争力.2021年《中华人民共和国数据安全法》出台,其中规定:“国家支持数据开发利用和数据安全技术研究,鼓励数据开发利用和数据安全等领域的技术推广和商业创新,培育、发展数据开发利用和数据安全产品、产业体系”.为数据拥有者提供了合规路径,丰富了数据市场多样性.电力数据分布在电力行业各个场所,挖掘其中有效信息可以分析用户用电行为、反映企业发展状况、判断企业偷税漏税情况等[1],同时通过将电力数据与金融学、社会学等进行关联还可以寻找出电力数据背后隐含的社会信息.然而,随着电力数据产业链中数据隐私计算业务需求不断增加,海量的电力数据存储、数据检索与数据分析等需求给电力公司内资源受限的设备和数据安全带来挑战,亟需研究高效的密文检索、安全存储方案来满足电力数据在多领域交叉中的需要,从而充分挖掘公司电力数据资源在跨业务、跨系统等交叉领域的潜力,实现数据隐私保护与价值挖掘的平衡,加速数据价值释放.

云计算技术在缓解类似电力公司内部资源受限的压力上有很大优势,可以在集合互联网中所有的同类信息后再利用应用程序为用户提供自动化服务,从而大大提高工作效率[2-3].由于云服务器自身强大的存储空间和高效的计算能力,云计算技术被广泛应用在数据外包和处理中[4].然而,由于外包存储在云上的各种用户数据中包含大量的敏感信息,因此云环境下也存在各种各样的数据安全问题.如果采用普通的加密方式,又存在数据检索与分析困难的问题.近年来,同态加密[5]、隐私计算等技术在非可信第三方环境的设计方案相继出现[6-11],但在效率、实用性等方面仍存在问题.

鉴于上述问题与电力公司对数据查询和分析的需求,本文设计了一种支持高效密文检索的电力数据云存储方案.针对海量电力数据的存储与电力公司设备受限之间的矛盾,采用云服务器存储电力公司日常收集的各种电力数据;
针对电力数据的分析与用户隐私信息保护之间的矛盾,采用同态加密算法加密电力数据,在不解密的情况下进行数据融合与分析;
针对云服务器中密文检索效率低下的问题,根据密文关键词的顺序对所有数据进行排序,得到云服务器内数据文件的排序表,采用二分查找的方式提高检索效率;
针对云服务器内电力数据被篡改的风险,采用数字签名的方式,分别计算电力数据文件和关键词的哈希值,保护数据的完整性.

1.1 同态加密算法

对于任意2个明文m1和m2,满足E(m1)*E(m2)=E(m1*m2)成立,其中*是任意一种操作,这种算法被称为同态加密算法.同态加密算法大致可分为3种类型[12],分别为部分同态加密、操作次数有限的半同态加密和操作次数无限的全同态加密.

1.2 Paillier加密算法

Paillier加密算法是基于合数剩余的陷门函数方案[13],这一陷门函数方案为公钥密码系统提供了一个新的密码模块.

Paillier加密算法具有加法同态性质,能够通过密文域的乘法运算实现明文相加的操作.

加法操作:E[(m1+m2) modn,r]=(E[m1,r1]·E[m2,r2]) modn2.

减法操作:E[(m1-m2) modn,r]=(E[m1,r1]·E[m2,r2]-1) modn2.

1.3 AES加密算法

AES(advanced encryption standard)是一种取代DES(data encryption standard)算法后常用的分组密码算法.

1.4 RSA签名算法

将RSA公钥密码算法按照数字签名的方式计算即为RSA数字签名算法[14].

2.1 基于同态加密的电力数据密文检索和数据分析模型

图1 系统模型

该系统模型如图1所示.图1中5个通信实体的定义及功能具体如下:

1) 云服务器.云服务器拥有巨大的存储空间和强大的计算能力来处理和维护电力公司的电力数据.云服务器可以根据商业用户的搜索需求对服务器内加密数据进行搜索,并将搜索结果发送给用户;
云服务器也可以根据国家数据分析中心的数据处理分析需求对电力数据进行数据聚合或数据分析,并将分析结果返回给国家数据分析中心.

图2 方案整体流程

2) 商业用户.商业用户通常是指已经获得电力公司授权并在云服务器的加密数据中使用密文关键词搜索特定电力数据的用户.

3) 国家数据分析中心.国家数据分析中心通常是指根据某些特定数据进行“政策”分析的机构,如利用电力数据分析某个地区的经济发展状况、利用电力数据估计家庭情况并合理安排电力输送以节约用电、利用电力数据评估中小企业信用风险等.

4) 电力公司.电力公司是指一种特殊类型的用户,他们日常收集各个地区的用电数据,然后以加密的形式将其外包给云服务器,以便与授权用户共享.

5) 密钥生成中心.密钥生成中心是指一个完全受信任的中心,它负责生成不同算法的公私钥对,然后将其发送给电力公司、商业用户和国家数据分析中心.

2.2 方案整体流程

图2是电力数据密文检索和数据分析系统方案的整体流程:

该方案主要包括以下5个方面的功能.

1) 初始化.

密钥生成中心生成对应密码算法的公私钥对,公布公钥并将私钥分发给电力公司,该模型假定密钥生成中心是可信的,不会私自泄露生成的私钥.

2) 电力数据上传处理.

电力公司针对上传的多条电力数据进行数据划分,对每条电力数据提取部分关键词.首先电力公司对每条电力数据采用RSA签名算法进行签名,然后采用AES算法对数据中非关键词部分的内容进行加密,采用Paillier算法对电力数据中的关键词内容逐一进行加密,最后将2部分加密结果合并后上传到云服务器中存储.电力公司在上传完电力数据后对同类关键词根据关键词的大小进行排序,不改变云服务器中的顺序,只在电力公司本地保留不同关键词的索引——顺序对应表,以便降低后续密文检索过程的搜索复杂度.

3) 数据密文检索.

商业用户和电力公司建立保密通信后,将自己的电力数据查询需求发送给电力公司.电力公司收到查询需求后从中提取查询关键词并将其用Paillier算法进行加密,然后将密文关键词发送给云服务器,云服务器经过检索后将查询结果反馈给商业用户.同时,电力公司下载所有查询的电力数据文件并解密,然后通过与商业用户建立的保密通信信道将电力数据文件发送给商业用户.

4) 数据密文分析.

国家数据分析中心和电力公司建立保密通信后,将自己的电力数据分析需求发送给电力公司.电力公司收到数据分析需求后从中提取查询关键词和操作关键词,将数据分析请求中的查询关键词信息采用同态加密算法进行加密并发送给云服务器,云服务器经过密文检索操作后找到所有符合条件的电力数据.然后,电力公司将操作关键词使用同态加密算法加密后发送给云服务器进行数据分析,最终云服务器将数据分析结果反馈给国家数据分析中心.

5) 同态计算.

对于密文检索过程,云服务器接收到密文检索请求后,首先将收到的密文查询关键词求逆,然后与服务器中查询关键词相乘,并将相乘结果发送给电力公司进行判断.电力公司收到同态计算结果后解密,根据Paillier算法的同态性判断计算结果是否为0,由此得出用户想要检索的电力数据文件序号,并将判断结果返回给云服务器,云服务器根据电力公司返回的判断结果发送对应的检索结果给商业用户.

对于数据分析过程,云服务器接收到数据分析请求后,首先根据请求中的查询关键词在服务器中进行密文检索,找到所有需要操作的密文电力数据.然后云服务器利用操作关键词对相应的电力数据进行数据求和或大小比较,最终将数据分析结果返回给国家数据分析中心.

2.3 方案的具体步骤

电力系统密文检索和数据分析模型主要包括3大部分,分别是电力公司上传电力数据、商业用户密文检索电力数据和国家数据分析中心对电力数据进行数据分析.下面依次阐述3个阶段的具体流程.

2.3.1 电力公司上传电力数据

1) 初始化.

首先,密钥生成中心根据Paillier算法的密钥生成过程生成电力公司加密电力数据文件关键词所需的公钥PK=(n,g)和私钥SK=(λ,μ).其次,密钥生成中心利用伪随机数生成器生成1个随机的初始密钥,并利用AES算法的密钥编排算法生成1个128 b的密钥K.然后,密钥生成中心根据RSA算法的密钥生成过程生成电力公司签名电力数据文件所需的公钥PKsign=(nsign,esign)和私钥SKsign=dsign.最后,密钥生成中心将生成的所有密钥分发给电力公司.

2) 对电力数据文件进行签名.

对于日常采集的电力数据datai,电力公司先计算明文电力数据的哈希值hash(datai),然后使用私钥SKsign对hash(datai)加密生成每条电力数据的签名Signi=hash(datai)dsignmodnsign,签名后的电力数据文件FSi=(datai,Signi),从文件的角度保护电力数据的完整性.

3) 加密电力数据文件.

假设电力公司拥有N条已签名的电力数据FSi,每条电力数据均提取了M个关键词.首先,电力公司采用AES算法的密钥K对电力数据文件FSi进行加密,得到密文文件Si(1≤i≤N).其次,电力公司采用Paillier算法的公钥PK=(n,g)对电力数据的关键词Kij依次加密,即CKij=gKijrnmodn2,得到每条电力数据的M个密文关键词CKi1,…,CKiM.最后,将每条电力数据的文件内容和关键词合并,得到加密后的电力数据SSi=(Si‖CKi1‖…‖CKiM),并对其编号为i.

4) 上传电力数据.

电力公司将拥有M个关键词的N条电力数据SSi上传至外包的云服务器上,此时云服务器中电力数据存储格式如表1所示:

表1 云服务器中电力数据存储格式

5) 云服务器中电力数据文件排序.

对密文经过解密后有下列关系式:

电力公司每次在电力数据上传后,根据Paillier算法的同态性质,按照每条电力数据的关键词对不同批次上传的电力数据进行排序,以提升后续检索效率.由于电力数据各个关键词数据的值域具有特殊性,多数集中在某个固定的区间内,且数值较小,因此可以优化电力数据排序算法.对于大部分数据可使用桶排序(bucket sort),剩余少部分数据可采用快速排序、归并排序等算法来完成.如电力数据中的某个关键词用电量单位为kW·h,大部分用户月用电数据在1 000 kW·h以下,根据此数据的特点可以对0~1 000 kW·h的数据进行预处理加密.当对云服务器中的密文数据进行排序时,可以与预处理好的1 000个标准数据进行作差比较.若使用二分查找优化比较过程,可把时间复杂度从1 000N1·Time(compare)提升到10N1·Time(compare),对于用电量超过1 000 kW·h的数据采用快速排序算法,时间复杂度为N2·log(N2)·Time(compare),其中N1+N2=N.

当需要查询某文件关键词A时,可以将A用Paillier算法加密得到cA,向云服务器发送查询请求,云服务器收到检索请求后,根据cA的值在有序的密文c1…cN中用二分查找加速判断,找到相应密文数据的存储位置,所需时间复杂度为O(logN)·Time(compare).

2.3.2 商业用户密文检索电力数据

1) 商业用户发送数据查询请求.

商业用户与电力公司之间通过保密通信向电力公司发送查询请求search.

2) 电力公司构造查询关键词.

电力公司收到商业用户的查询请求search后,提取检索关键词Kquery,用Paillier算法对查询关键词加密,得到密文关键词Cquery=gKqueryrnmodn2.

3) 密文关键词检索.

4) 查询结果发送给商业用户.

电力公司对查询结果进行解密,根据Paillier算法的同态性质,若存在某个文件的同态计算结果解密后为0,即decrypt(resi)=0,则电力公司将该文件的序号h1返回作为检索结果的初始位置.然后依据次序继续进行检索,直到同态计算结果decrypt(resi)≠0的文件序号hi作为检索结果的结束位置.文件检索的结果为序号是h1~hi的所有文件,此时云服务器返回检索结果“Right”以及文件序号h1~hi,同时云服务器将结果发送给商业用户并提示用户与电力公司联系获取具体数据;
若依据检索顺序检索完所有的文件后均未查找到满足同态计算结果decrypt(resi)=0的文件,则云服务器直接返回检索结果“Error”给商业用户.

5) 电力公司发送检索数据文件.

若密文检索文件的返回结果为“Right”,则电力公司发送指令从云服务器中把用户所需的电力数据文件ZIPSSi发送给商业用户,同时电力公司通过保密通信通道发送给商业用户相应文件的AES密钥,若云服务器密文检索文件返回的结果为“Error”,则电力公司不作任何操作.

6) 商业用户收到并验证密文检索文件.

商业用户收到电力公司发来的密文数据ZIPSSi后,使用AES私钥进行解密,然后利用RSA签名算法的公钥PKsign=(nsign,esign)验证密文文件是否被篡改.

2.3.3 国家数据分析中心对电力数据进行数据分析

1) 国家数据分析中心发送数据分析请求.

国家数据分析中心提出数据分析请求request,发送给电力公司.

2) 电力公司提取并加密查询关键词和操作关键词.

电力公司收到密文数据分析请求request后,从数据分析请求中提取出查询关键词mqu和操作关键词mop,然后采用Paillier算法的公钥PK=(n,g)对需要查询和操作的关键词进行加密,得到密文查询关键词Cqu=gmqurnmodn2和操作关键词Cop=gmoprnmodn2.

例如,国家数据分析中心需要评估3个地区(包括地区1、地区2和地区3)的用户用电量的用电水平,现在假设地区和用电量是电力数据的2个关键词,那么国家数据分析中心将地区和用电量这2个关键词使用Paillier算法进行加密,并设置地区为查询关键词Cqu,用电量为操作关键词Cop.模型后续步骤均以该例的操作请求进行数据分析.

3) 云服务器同态计算并进行数据分析.

4) 返回数据分析结果.

云服务器将计算结果Eng1,Eng2,Eng3分别发送给电力公司进行解密,电力公司比较Eng1,Eng2,Eng3解密后的数值大小,返回1个排序结果result并上传给云服务器,云服务器再将排序结果result返回给国家数据分析中心,至此完成了一个简单的数据分析请求.

3.1 具体实现

本节通过1个具体的案例来验证本文方案,加密原文件可以是部分电力数据,电力数据数目N=10,关键词数M=3,关键词分别为用户、时间(月份)、地区、电量(kW·h),实验环境为Intel®CoreTMi7-1165G7 @ 2.80 GHz,16.0 GB内存,PyCharm 2022.

1) 待加密上传的电力数据文件明文形式如表2所示:

表2 电力数据文件

2) 将关键词通过编码统一为整数形式,使用Paillier加密,加密算法参数设置为(p,q)=(10 395 521,10 381 387),将电力文件用utf-8编码转化为整数形式,用AES加密并用RSA签名,然后一同上传到云服务器.例如:文件1的3个关键词密文分别为“110 815 100 413 029 749 039 344 442 844”“9 433 125 980 177 089 779 347 842 208”“6 988 493 104 528 151 239 410 885 134”;
文件密文为“a1b27 6637109ef40876b8124882707b0”;
签名值为“oImE 7R1IpQK4NEurOoNQfmOiyTF8S63mRu8RvISY eORNClsVM9JHnu+qgJ551jlHIhbVpnI9IG3Dv xGMaGHQgg==”.

3) 按照电量关键词排序,电力公司保存存储索引与顺序的对应表,如表3所示.

4) 若商业用户检索关键词为查询月电量大于600的数据,电力公司收到请求后加密得到Cquery=g600rn=3 476 586 918 908 701 036 581 387 607(modn2)根据电量顺序表使用二分查找检索到第1个用电量大于等于600的索引位置,然后把这个索引值之后的所有索引值发送给云服务器,云服务器接收到命令后把对应索引位置的打包文件发送给商业用户,图3为二分检索的过程.

表3 关键词顺序索引

图3 检索过程

5) 若国家数据分析中心需要评估3个地区(100001,100002,100004)的用电总量,电力公司收到请求后分别检索到地区1,2,3的密文索引位置,例如查询地区3用Paillier加密得到Cqu=g100004rnmodn2.根据电量顺序表使用二分查找检索到地区3的起始索引位置与结束位置,把从起始到结束的索引位置及Cop为对电量求和操作的指令发送给云服务器,云服务器接收到命令后把对应索引位置密文数据电量值进行求和,得到密文结果为3 393 398 825 301 652 228 780 859 506,解密得到明文值为2 834.最终,将结果返回给电力公司,由电力公司发送3个地区的电量情况.

3.2 安全性分析

在该方案中,电力公司将加密后的文件、签名和关键词一并上传到云端,然后所有的操作都基于关键词进行检索,所以本文方案电力数据的安全性分为密文存储安全与密文操作安全.

3.2.1 密文数据存储安全性

对电力数据文件使用对称加密算法AES加密,在全部密钥由电网公司客户端保存,加密过程由电力公司完成,在商业用户、国家数据分析中心解密密文数据时由电网公司发送对应文件的私钥,整个过程均由保密通信完成,保证了电力数据文件的安全性.关键词采用Paillier加密,Paillier同态加密算法具有自盲性,满足选择明文攻击下的密文的不可区分性,方案安全性可以归约到判定性合数剩余假设,攻击者及云服务器无法恢复私钥获取关键词内容.

3.2.2 密文数据操作安全性

电力数据与关键词均以密文形式存储在云服务器中,检索过程利用同态加法的性质对密文进行操作,不涉及密钥及明文信息泄露,整个过程都是密文操作,排序过程云服务器只完成密文的乘法操作并返回计算密文值,不会泄露关键词排序的结果,保证了数据操作的安全.

本文基于Paillier同态加密算法设计了新型密文检索、计算模型,并结合经典的签名算法RSA与对称加密算法AES,提出了一个适用于电网数据的云端密文数据共享与数据分析方案.该方案保证了电力数据安全的存储并能够进行高效数据检索与数据操作,并且数据检索与操作过程中云端无法获知任何有关密钥信息和明文数据.在下一步的研究中,将尝试设计一种功能更全面的全同态加密算法,并将其应用在云端密文检索中,使之具有更好的可操作性与安全性.

猜你喜欢同态密文电力公司国网甘肃省电力公司创新成果展示机械研究与应用(2022年4期)2022-09-15一种支持动态更新的可排名密文搜索方案黑龙江大学自然科学学报(2022年1期)2022-03-29基于模糊数学的通信网络密文信息差错恢复计算机仿真(2021年10期)2021-11-19关于半模同态的分解*吉首大学学报(自然科学版)(2020年2期)2020-09-14巨怪电力公司面试中小哥白尼(趣味科学)(2020年4期)2020-07-27拉回和推出的若干注记五邑大学学报(自然科学版)(2020年1期)2020-06-17大型电力公司面临的财务风险消费导刊(2018年8期)2018-05-25一种基于LWE的同态加密方案信息安全研究(2016年3期)2016-12-01一种基于密文分析的密码识别技术*信息安全与通信保密(2016年10期)2016-11-11HES:一种更小公钥的同态加密算法衡阳师范学院学报(2016年3期)2016-07-10

推荐访问:文存 高效 检索