能源互联网中基于格密码的区块链隐私保护研究
2022-12-05曹永娇姜姝宇
刘 超,王 宇,曹永娇,马 凯,姜姝宇
(国网吉林省电力有限公司信息通信公司,长春 130000)
能源互联网下的电力区块链主要负责承载用户用电行为信息,为各用电终端提供稳定电力供应等功能。介于不法分子可通过攻击电力区块链来获得用电终端信息,造成用电终端隐私信息泄露问题,同时为进一步增加能源互联网下区块链结构的抗风险能力,本文将以格密码加密方式为基础,构建区块链隐私保护模型,以此降低用户用电信息失窃概率,提高信息加密与解密的效率。
1 能源互联网下电力区块链的设计
1.1 功能设计
在能源互联网下的电力区块链中,区块链的设计主要为保存电网终端的实时电量数据,其中包括电表读数、账户地址及时间等信息。在该结构中电力区块链主要由用户终端、第三方机构、智能电表、控制中心及金融机构等组成,各类型主要负责的功能如下:用户终端主要负责查看账户余额,同时对账户进行充值操作;第三方机构主要负责对电量数据的加密、解密和对用户身份的认证,同时在命令请求中生成同态加密公私钥对,从而在执行命令的同时保存命令用户的真实身份信息;智能电表处于用电终端侧,主要负责将用户的实时用电数据信息进行加密,然后将其通过网关发送到区块链网络中进行存储,此过程中验证节点会将上传用户实时用电数据进行验证,且在验证通过后将其上传至新的区块中进行存储;控制中心主要承担管理与保存用户各项信息等功能,日常调用智能合约实现对日用电量与电费的计算,同时完成对单个用户用电电费的结算与价值转移,并对已经欠费的电表用户进行监控[1]。
1.2 架构设计
能源互联网下电力区块链的设计可分为5层结构,即应用层、智能合约层、共识层、数据层和网络层。
图1设计电力区块链架构的网络层主要使用P2P协议,承担对交易数据与区块数据的传输,其中交易数据主要涵盖用户终端的账户转账记录及用电数据。区块链网络中的节点时刻监听网络中广播的数据,当节点接收到邻居节点发送的新交易或新区块时,首先要验证交易和区块的有效性,验证通过后才能将新交易加入新的区块后转发或将新的区块加入区块链后转发,从而有效防止无效数据的传播。数据层负责数据的存储。用户实时用电数据包括电表账户、时间、电表读数及电表账户签名,转账记录包括输入用户账户地址、输出用户账户或电表账户地址、转账金额及输出账户签名。区块链每次加入新的区块时,都需要执行共识算法,使得所有区块链网络节点达成共识[2]。智能合约层主要实现电费结算和转账功能。智能合约是部署在区块链上的由算法和程序编写的可以按预定规则自动执行的数字化合同。智能合约编写完成后部署在区块链网络各个节点中,由外部程序调用,运行在沙箱环境中,依照合约内容访问区块链内部数据,或者向区块链外部通知区块链内部事件。当合约需要向区块链写入数据时,需要执行共识算法。应用层主要实现用户与区块链的交互及区块链数据可视化,实现用户账户余额查询、电费充值等功能[3]。
图1 电力区块链架构图
2 电力区块链的格上加法同态加密算法设计
2.1 算法设计
2.1.1 初始化
若设n为系统自身的安全系数,奇素数为q,且q=poly(n),存在整数m,且m=O(n log q),素数为p,且p>n3ε+1·log5n,同时p<q<p3,存在高斯噪声分布为(q),参数为β,且β=poly(n)。
2.1.2 密钥生成
2.1.3 加密过程
用b表示明文数据编码向量,且b=(b1,…,bm)t∈中随机挑选一个随机均匀分布向量s,然后从,同时。从(q)中随机挑选出一个误差向量e,且e应当满足e∈。对明文向量e∈下密文向量cT=sTA+peT+bT(modq)进行计算,然后输出密文向量。
2.1.4 解密过程
用v表示向量,对vT=cTR(modq)的值进行计算,然后再对bT=vTR-1(modp)的值进行计算,由此可知明文的值。
首先,需令vT为
假设参数q=poly(n)无限大,参数β=poly(n)满足最小条件值,同时使得peT+bT中所有元素皆小于q,则
2.2 安全性证明
对区块链信息加密的算法主要建立决策版本的LWE问题(Decisional LWE,DLWE)问题上,并需要使算法满足选择明文攻击下的不可区分性(Ⅰndistinguishability under chosen-plaintext attack,ⅠND-CPA)安全性[6]。假设存在一个可区分性的算法,存在巨大攻击优势ε能够在短时破解参数为n、m、p、q和β的加密算法,则需要借助区块链下某区分算法来构建一个区分器D1,若在相同时间内攻击者的攻击能够以不少于ε/2m的优势破解参数n、m、p、q和β下容错学习(Learning with errors,LWE)问题,则可视为该算法是安全的。为此,需要假设A1为具有选择明文攻击(Chosen Plaintext Attack,CPA)能力的对象,其拥有巨大的攻击优势区分不同明文条件的加密密文。对此,需要构建一个优势不少于ε/2m概率的区分器D1,并使其可以区分如下2个分布条件密文
若密文向量为cT=sAT+emT(modq),则攻击密文应当为pcT+bT=s1AT+pe+bT(modp),其中属于均匀随机分布。因p与q是互异的2个素数,所以通过A1的CPA攻击能力可以准确猜测出k的概率为(1+ε)/2,进而认为D1输出1时的概率约为(1+ε)/2。
综上,区分器D1可以准确区分出2个分布的算法优势应当高于ε/2。因此,DLWE问题所需的最大优势应当高于ε/2m。
3 模型实现及评估
本文所提区块链信息加密算法需要将其设置在Linux操作系统上,为使所建平台能够顺利运行上述功能设计,需要在Linux操作系统中配置功能运行所需要的库[7-8]。
3.1 节点配置
在保障最简洁实验设计的前提下设计6个节点,以此构建能源互联网下电力区块链信息节点框架,节点信息见表1。
表1 节点设置
以上述为基础构建电力区块链的数据库,其中节点a—e皆为重量级节点,属于电力区块链数据库下承担数据存储的重要节点,而节点f为轻量级节点,具有对上述节点的验证能力,但不具备数据存储功能。
3.2 攻击模型
作为能源互联网下的电力区块链模型,其所受攻击的重点应当放置在分叉攻击对系统造成扰动上。若在某次攻击中存在多个验证节点被攻击,并在攻击过程中试图构建一个新的区块链分支,假设攻击者所能够控制的分叉链长度与主链长度的差距为z,在攻击者某轮的攻击中防守率为q[9]。攻击者在某轮的分叉攻击中成功攻破防火墙盗取电力信息的概率见表2。
表2 实验结果
由双叉攻击得出的模拟结果曲线如图2所示。
图2 双叉攻击成功的概率图
由图2数据可知,攻击者的分叉攻击成功率会随着随z的增加而出现下降。从理论上看,只有攻击者具有电力区块链50%以上的算力时才可攻破加密数据。
3.3 性能分析
3.3.1 加密时间分析
图3与图4为电力区块链下密钥的生成时间与加密时间。
由图3和图4中数据可知,由格密码设计而成的轻量级同态加密方法和全同态加密方法,在密钥生成与加密时间上均出现明显的下降。同时,因零数据情况的存在,所以其加密与解密活动可提前结束,或作为不满足判断条件将其转移至其他同态运算,该现象在理论上存在可优化的空间。另外,因整个同态加密活动时间中效率会受向量的维数影响,所以当所需维数较少时,对数据加密的时间将会缩短。
图3 加密时间图
图4 解密时间图
3.3.2 数据隐私性分析
在区块链的中转节点中,通过可借助零数据节点数据作为预验证数据进行用电终端的活动判断,例如对数据的转移安全性验证、交易转移条件验证及验证攻击风险隐患等。上述活动皆满足数据管理标准要求后,才可进行用电终端数据信息的加密与迁移,因所有数据皆受到加密算法处理,且通过专属信道进行通信,所以受到攻击导致信息泄露的出现概率相对较低。
4 结束语
综上所述,本文以格密码为基础构建用于能源互联网下电力区块链信息的加密算法。时刻掌握用电终端用电信息,可以为电力调度提供帮助,保护原始数据不会受到盗取、更改及违法利用。通过实验结果可看出,所提方法具有较高的数据加密与解密效率,能够在短时间内实现对产生数据的管控,且承受攻击能力大幅提高,能够较好地保护用电终端信息安全,为相关人员或单位提供帮助。