掌桥专利:专业的专利平台
掌桥专利
首页

一种基于2D-LCLM的能源互联网数据分组加密算法

文献发布时间:2023-06-19 13:45:04


一种基于2D-LCLM的能源互联网数据分组加密算法

技术领域

本发明涉及数据加密技术领域,具体地涉及一种基于2D-LCLM的能源互联网数据分组加密算法。

背景技术

能源互联网作为能源和互联网融合的产物,实现了多能融合和物理信息融合。随着能源互联网的建设和发展,能源系统与信息系统的联系愈发紧密。数据作为串联数字网络和各行各业的纽带,在能源互联网中起着至关重要的作用。电力系统作为能源系统的关键环节,其数据管理研究尚处于探索阶段,新型电网数据中通常包含评估设备状态的电网数据信息、文字信息、图片信息等异构私密信息,如何在联网过程中确保信息的安全性是电力系统信息处理过程中的关键性问题。

采集信息的智能终端传感设备通常具有体积小,计算能力弱及电力受限的缺点。因此轻量级密码成为了资源受限环境下数据加密的主要方法。混沌系统与密码学之间有着天然的相似性,混沌系统所具有的随机性、遍历性、不确定性和对初始条件的敏感性与密码学中的扩散和置乱特性相对应;融合了混沌特性和密码学特性的混沌加密算法应运而生。能源互联网中用于采集数据的终端设备往往资源受限,此时因此,有必要设计一种采用高混淆,低功耗的轻量级混沌密码算法,以对数据进行快速有效的加密。

发明内容

本发明的目的在于克服现有技术存在的缺点,提出设计一种基于2D-LCLM的能源互联网数据分组加密算法,能够对数据进行快速有效的加密。

本发明解决其技术问题所采取的技术方案是:

一种基于2D-LCLM的能源互联网数据分组加密算法,包括以下步骤:

1)读取待加密的文本或图像数据,用plain来表示;计算所有明文数据的十进制和,并记为Sum_Pt,即Sum_Pt=∑(plain)

2)设用于加密算法的2D-LCLM的初值为(x'

其中(x

3)用实数序列X

4)在给定十六进制初始密钥Key的前提下,截取X

5)用公式P

6)类Feistel密码结构加密步骤为:首先将明文分组Plain_block(i)与初始向量IV进行异或操作,再经过P置乱后划分为4个等长的运算单元L

7)经过类Feistel密码结构输出的密文Ciphered_block(i)通过密文分组组链接(Cipher Block Chaining,CBC)模式进行链接,得到最终的二进制密文输出Ciphered_data;

8)最后,利用函数bin2dec(·),将每8位二进制数转化为整数,再根据ASCII码表翻译成最终的密文。

进一步的,所述F函数的表示方法为

其中,l表示16bit序列,k代表该轮中16bit轮密钥,DNA_algorithm(·)表示DNA加密规则,S_box(·)代表动态S盒,

进一步的,步骤2)中,两个整数序列w和z分别为:

进一步的,所述2D-LCLM(二维滞后复Logistic映射,2D lag-complex Logisticmap)方程为:

其中w

进一步的,所述2D-LCLM系统的不动点的值仅与参数b的取值有关,与参数a无关,即参数b唯一决定系统是否混沌;当a=1,b∈[1.69,2)时,2D-LCLM是混沌的。

进一步的,设2D-LCLM的初值为(x

对序列值按从小到大的顺序排列,将每个实数在原序列中的位置记为位置序列T;利用公式floor(((X

进一步的,所述动态S盒的生成过程为:首先,根据待加密明文数据确定2D-LCLM的初值大小,迭代混沌系统,得到三组伪随机序列X

进一步的,所述Feistel密码结构开始前和结束后利用P置乱对明文数据进行预处理和进一步打乱密文数据以增强每轮数据的伪随机性。

本发明的技术效果:

与现有技术相比,本发明的一种基于2D-LCLM的能源互联网数据分组加密算法,以能源互联网为背景,将混沌系统用于电力文本、图像等数据的加密,主要具有以下优点:

1)对2D-LCLM的不动点的稳定性和分岔图进行了分析,进一步验证了b是影响系统混沌的唯一参数;

2)2D-LCLM的初值与明文直接相关,该混沌系统迭代生成的伪随机序列被用来构造整数序列和位置序列以替换和置乱明文数据;

3)将2D-LCLM和Baker映射相结合,构造了随明文变化的动态S盒以充当密码算法中的非线性部分;

4)轮密钥是由DNA加密规则和2D-LCLM生成的位置序列构造的,该算法具有“一次一密”的效果;

5)基于2D-LCLM的分组加密算法作为轻量级加密算法能被同时用于电力数据和电力图像的加密;实验仿真和性能分析结果表明,此分组加密算法对电力数据和电力图像都具有良好的加密效果,且对密码攻击具有很强的鲁棒性。

附图说明

图1为本发明类Feistel密码结构图;

图2为本发明轮函数F结构示意图;

图3为本发明动态S盒结构示意图;

图4为本发明P置乱结构示意图;

图5为本发明明文文本加密,解密结果图;

图6为本发明加密前后文本数据ASCII码值占比分布情况图;

图7为本发明测试图像及其加密解密图;

图8为本发明‘Lena’中R,G,B三信道加密前后直方图;

图9为本发明‘算例4’单信道中加密前后相邻像素分布图;

图10为本发明剪切攻击下‘Lena’的密文和解密图像;

图11为本发明遭受噪声攻击后‘算例4’的解密图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面结合说明书附图,对本发明实施例中的技术方案进行清楚、完整地描述。

本发明首先用2D-LCLM和Baker映射一起构建动态S盒;使用DNA加密规则及2D-LCLM生成轮密钥;最后采用每轮包含两次F函数的类Feistel密码结构对电力数据和电力图像进行加密。其中,轮密钥随明文自适应变化,使加密算法具有“一次一密”的效果以抵抗选择明文攻击。仿真结果及性能分析测试表明,此混沌分组加密算法能对电力文本和图像信息进行充分的混淆和扩散以达到加密的效果,并且该算法对密码攻击表现出良好的鲁棒性。

1、二维滞后复Logistic映射

二维滞后复Logistic映射(2D lag-complex Logistic map,2D-LCLM)是对二维实Logistic映射的拓展,即将系统变量由实数域向复数域拓展,从而构造出在实数域三维,复数域二维的Logistic映射。

2、系统方程

二维Logistic映射系统方程为:

其中w

令x

1)当x≠0,y≠0时,有不动点:

2)当x=0,y≠0时,有不动点:

3)当x≠0,y=0时,有不动点:

4)当b=1时,有不动点:P

系统(3)的Jacobin矩阵为:

取det(λE-J=0),其中E为单位矩阵,将7个不动点依次代入Jacobin矩阵,可得特征方程:

(λ-1)(λ

解得特征根为:

根据不动点的稳定性定理,有以下推论:

1)当

2)当b<0,a>-1或当

3)当

4)当

5)当b=0时,特征值为:λ

6)当b<1时,特征值为:λ

7)当b>1时,特征值为:λ

由上述推论可得,2D-LCLM系统的不动点的值仅与参数b的取值有关,与参数a无关,即参数b唯一决定系统是否混沌。当a=1,b∈[1.69,2)时,2D-LCLM是混沌的。

3、分组加密算法

本发明所述的分组加密算法采用类Feistel密码结构,如图1所示;该密码结构与传统Feistel密码结构相比,每组明文被分为4个等长的运算单元且每轮采用两次F函数,能更有效的抵抗差分攻击;F函数作为Feistel密码结构的核心由动态S盒和DNA加密规则所构成;其中DNA加密规则为整个算法提供轮密钥;2D-LCLM迭代生成的混沌序列主要用于构造整数序列和位置序列来对明文数据的值和位置进行替换和置乱;本发明提出的算法主要是对能源互联网中电力数据、电力图像进行加密和解密,且为满足终端传感设备存储空间小、能量少、对数据处理能力弱的特点,本发明将Feistel密码结构的输入输出均设为64bit,即将明文数据分为每64bit为一组,每组划分成包含4个16bit的运算单元,且每轮采用左右各16bit,共32bit的轮密钥。

1)整数序列和位置序列的构造

设2D-LCLM的初值为(x

对序列值按从小到大的顺序排列,将每个实数在原序列中的位置记为位置序列T;利用公式floor(((X

2)轮函数F的构造

轮函数F是分组密码结构的核心,是非线性的;在整个密码结构中除了P置换(permutation)和Feistel结构中每轮包含的位置交换以外,F函数承担着主要的混淆(confusion)和扩散(diffusion)作用;本发明所提出的加密算法中的F函数,如图2所示;由动态S盒和DNA加密规则所构成。若用l表示16bit序列,则F函数可以表示为:

其中k代表该轮中16bit轮密钥,DNA_algorithm(·)表示DNA加密规则,S_box(·)代表动态S盒,

表1.QF方程

2.1)动态S盒的生成

本发明将2D-LCLM生成的伪随机序列与Baker映射的拉升、折叠功能相结合,共同生成动态S盒;首先,根据待加密明文数据确定2D-LCLM的初值大小,迭代混沌系统,得到三组伪随机序列X

2.2)DNA加密规则

DNA作为脱氧核苷酸大分子组成的聚合物,主要由A(腺嘌呤),C(胞嘧啶),G(鸟嘌呤),T(胸腺嘧啶)这四种碱基组成;这四种碱基根据碱基互补配对原则两两配对,以此来传递遗传信息,其中A和T互补配对,C和G互补配对;在二进制算法中同样有类似规则,即0和1是互补配对的,因此可将01,10和11,00两两分组;将DNA规则引入二进制算法,即分别用A、T、G和C来表示00、01、10和11,可得表2中的8种DNA加密规则。

若对整数177进行加密,首先应将其换算成8位二进制数,即10010011,此时177对应于GTAC;接着,若选则表2中的规则4对该数加密,则此数的DNA表示方法为TAGC,即177经过DNA加密规则后的二进制表示为01001011;DNA解密规则是加密规则的逆过程。

表2.DNA加密规则

3)轮密钥的生成

本发明主要采用DNA加密规则来生成动态轮密钥,动态轮密钥指密钥流的值会随明文而变化,如当明文发生微小扰动时,轮密钥会随之更新以达到“一次一密”的效果。

首先,在给定一串16进制初始密钥Key的前提下,将其中所有元素转化为4位二进制数;其次,用2D-LCLM生成的位置序列T对所有的二进制数进行置乱;最后,将置乱后的二进制序列每8bit分为一组作为DNA加密规则的输入,输出值即为轮密钥k,以上过程可用如下公式来表示:

k=DNA_algorithm(T(hex2bin(Key,4))) (7)。

4)P置乱

P置乱(permutation)是一种对二进制数进行位置置乱的方法,它能在一定程度上打乱序列的顺序。本发明的算法在Feistel密码结构开始前和结束后利用P置乱对明文数据进行预处理和进一步打乱密文数据以增强每轮数据的伪随机性;P置乱结构示意图如图4所示。

实施例1:

本实施例涉及的一种基于2D-LCLM的能源互联网数据分组加密算法,包括以下步骤:

1)读取待加密的文本或图像数据,用plain来表示;计算所有明文数据的十进制和,并记为Sum_Pt,即Sum_Pt=∑(plain)

2)设用于加密算法的2D-LCLM的初值为(x'

其中(x

3)用实数序列X

4)在给定十六进制初始密钥Key的前提下,截取X

5)用公式P

6)类Feistel密码结构加密步骤如表3所示,首先将明文分组Plain_block(i)与初始向量IV进行异或操作,再经过P置乱后划分为4个等长的运算单元L

其中F函数的表示方法为

7)经过类Feistel密码结构输出的密文Ciphered_block(i)通过密文分组组链接(Cipher Block Chaining,CBC)模式进行链接,得到最终的二进制密文输出Ciphered_data;

8)最后,利用函数bin2dec(·),将每8位二进制数转化为整数,再根据ASCII码表翻译成最终的密文。

表3.类Feistel加密算法

针对本发明所述基于2D-LCLM的能源互联网数据分组加密算法的解密方法,本质上与加密算法一致,但需满足以下三个条件:

1)为保证解密成功,加密、解密的循环轮数round只能取偶数,否则只有半数密文能被解密;

2)奇数轮的左右轮密钥完全相同,即k

3)最后一轮输出换位与加密过程不同,即变为L

本实施例实验结果及性能分析测试:

1)文本加密实验结果分析

为了直观展示2D-LCLM分组加密算法对电力数据的加密效果,本发明将部分接收、发送电力数据作为明文数据在Windows10系统的Matlab平台上进行仿真。根据上述循环轮数只能取偶数的推论,取round=6;再根据奇数轮左右两个轮密钥相同的条件,仅取38个16进制初始密钥Key:

Key=a4360d25e71dcbf807483c1bb957f0e4533ca6

原始明文文本加密、解密结果如图5所示,图5(b)的密文信息是一串乱码,人们很难通过肉眼和理解能力从中判断出有效信息,而只有当加密和解密端密钥一致时,才能最终解密出正确信息(图5(c))。为从客观上对此算法做定量分析,本发明引入了密钥空间分析、“0-1”平衡性测试、字符频率测试、信息熵测试等测试方法对该分组加密算法的性能作进一步的分析和验证,以证明其有良好的加密效果和鲁棒性,能被应用于电力终端传感设备。

2)文本加密性能分析

2.1)密钥空间分析

本发明所提出的分组算法的密钥包括两部分,一部分来自于2D-LCLM混沌系统的参数和初值,即a,b,x

2.2)“0-1”平衡性测试

“0-1”平衡性测试是对密文二进制数据中“0”和“1”的个数进行比较的测试方法;若经过加密后的密文具有足够的随机性,其二值数据中的“0”和“1”的个数应该是均衡的。可用如下公式进行平衡性测试:

其中k

表4.二值序列“0-1”平衡性测试结果

2.3)信息熵测试

信息熵能对信息源中的数据的有序性进行度量,其公式如下所示:

其中L=256,p(x

表5.加密算法的信息熵

2.4)频率测试

频率测试,即字符频率统计测试,被用于检测256个ASCII码在密文中出现的频率。在输出结果中,如果部分字符出现频率高,其余字符出现频率低,那么密码攻击者就可能会根据统计规律破译出明文,从而劫取甚至篡改数据,威胁数据安全。而当字符出现频率基本一致时,人们就很难对密文进行有效分析。因此密文字符频率测试至关重要。

如图6所示,展示了两组电网数据加密前后字符频率分布情况。从图中可以看出,加密前的数据聚集在某些字符附近,数据分布具有明显的规律性。而密文文本的ASCII码值在0-255之间几乎是均匀分布的,第三方很难从中获取有效信息。与此同时,从图6(b)中可以看出,密文的分布频率在理想值3.90625×10

3)图像加密实验结果分析

为测试本发明所提出的分组加密算法对图片的加密效果,本节选取大小为512×512的标准化测试图‘Lena’,大小为400×300的两个电力设备红外图像(‘算例2’,‘算例3’)及大小为640×420的风力发电故障设备图像(‘算例4’)作为测试图像。图7中第一列为原图,第二列为加密图像,第三列为解密图像。从图7可以看出,密文图像为一堆乱码,单凭人的肉眼无法辨识出原图,而解密图像与明文图像完全一致。为定量分析此分组加密算法对图像的加密效果,下文中将引入直方图,信息熵,像素点的相关性,NIST测试等分析测试方法。密码攻击测试将被用于检测该分组加密算法对外部攻击的鲁棒性。

4)图像加密性能分析

1)直方图分析

直方图能精确反应图像的信息特征,直观显示各个灰度级下像素点的个数,不同图像具有完全不同的直方图。图8为‘Lena’中R,G,B三信道加密前后的直方图,从图中可以看出加密后的图像的像素点在各个灰度级下均匀分布,明文图像中的信息特征完全被隐藏,即该算法具有良好的保密特性。

2)信息熵测试

图像的信息熵测试与文本信息熵测试从本质上来说是一致的。做文本信息熵测试时,是把数据每8bit分为一组。单信道图像的像素点一般可直接用8个位平面来表示,即图像信息的信息熵的理想值为8。信息熵计算公式如(11)所示。其中L=256,p(x

表6.图像的信息熵

3)相关性测试

图像之所以能呈现出肉眼可识别的信息是因为其相邻像素点之间具有很强的相关性。加密算法的作用就在于打破这种相关性,使像素点随机分布。相关性测试能定量分析像素点之间的相关性程度,相邻像素点的相关性越接近于0,像素点就被打乱地越彻底。在测试图像‘Lena’中随机选取N=8000对相邻像素点,每对像素点用坐标(u

其中E表示数学期望,D为方差,Cov则是协方差。r

表7.加密前后相邻像素点的相关性

4)差分攻击测试

差分攻击测试又称为明文敏感性测试,它能定量地分析出明文中的某个像素值发生微小变化后输出的密文与原密文之间的差异。像素变化率(the number of pixelschange rate,NPCR)和归一化平均变化强度(the unified average changing intensity,UACI)通常被用来衡量此项指标。两者数学表达式如下所示:

其中M和N分别表示图像的长和宽,C

表8.密文图像的NPCR和UACI值

5)剪切攻击和噪声攻击分析

数据在信道中传输时难免会受到外界干扰,而剪切攻击和噪声攻击是最常见的两种攻击方式。本发明通过裁剪图像像素点的方式来实现剪切攻击,通过对明文图像叠加常见噪声以实现噪声攻击。为证明本发明提出的分组加密算法对数据丢失攻击有较强的鲁棒性,本发明分别裁剪掉‘算例2’中64×64,80×80,128×128个像素点,并对比了裁剪前后的解密图像,如图10所示;为证明该算法同样能抵抗噪声攻击,本发明在密文图像中添加了密度分别为0.01和0.05的松柏噪声(speckle noise,SN),均值为0、方差为0.01和0.005的高斯噪声(Gaussian noise,GN)和密度分别为0.05和0.01的椒盐噪声(salt-and-peppernoise,SPN)并对噪声攻击前后的解密图像进行了比较,如图11所示。本发明引入了峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)作为一种全参考的图像质量评价指标,对图片质量进行定量评估。PSNR的数学公式如下:

其中,M×N代表测试图像大小,K(i,j)和I(i,j)分别表示遭受攻击前后图片中各个像素点的像素值,MSE表示K和I间的均方误差,MAX在本发明中表示8bit图像的最大像素值255。PSNR单位为dB,其与MSE具有强相关性,PSNR数值越大表明图像失真越小。

表9中记录了遭到剪切攻击后‘算例2’的PSNR值,图10为残缺图像的加密和解密图。虽然PSNR值随剪切面积的变大而逐渐减小,但此分组加密算法的在图像极大部分像素都丢失的情况下,仍能基本还原出图像。表10记录了6组噪声攻击下‘算例4’的PSNR值,其中所有值都大于或趋近于20。图10为噪声攻击下的解密图像,从图中可以看出,解密出的噪声图像虽然清晰度有所下降,但图像原本所包含的特征还是十分容易被辨别。因此该算法对剪切攻击和噪声攻击具有强鲁棒性,即当电力图像在传输信道中遭受攻击后仍能保留其重要特征并在解密端被成功解密。

表9.剪切攻击下的PSNR值

表10.噪声攻击下的PSNR值

6)经典攻击分析

在密码学领域主要包含四种典型攻击方式“”唯密文攻击、已知明文攻击、选择密文攻击和选择明文攻击。而在这四种攻击方式中,选择明文攻击对图像的破坏性最大,也即当加密算法能有效抵抗这种攻击时,必然能够抵抗其余三种攻击方式。

选择明文攻击方法主要为差分攻击,本发明已经验证了本发明算法对差分攻击的鲁棒性。2D-LCLM的初值随明文数据的变化而变换,轮密钥、DNA加密规则、S盒也会受到混沌序列的直接影响,即明文的微小扰动会直接改变Feistel结构中轮密钥的值,从而使不同明文对应于不同的加密和解密密钥,有“一次一密”的效果。与此同时,CBC模式使每组明文都与之前的密文相关联,这种混合加密方法进一步增加了像素的复杂度。综上所述,本发明所提出的分组加密算法能有效抵抗典型的攻击分析,从而确保电力图像的完整性和有效性。

7)NIST测试

NIST测试中包含15项统计测试,它通常被用于测试序列的随机性。每项测试都对应于一个P_value,当α<P_value<1(α通常取0.01)时,表明通过此项测试,且P_value值越大,数据的随性越好。在图像加密算法中,NIST测试同样可以检测以二值形式表示的密文图像是否服从随机分布。本发明通过改变初始密钥的值分别对图像‘Lena’,‘算例2’,‘算例3’,‘算例4’进行循环加密,以获取20,000,000个二值序列作为NIST测试的输入,测试结果被记录在表11中。表中所有测试图像的15个P_value均大于阈值0.01且小于1,并且图像的某些测试结果甚至接近于1。也就是说,4个图像经过该分组加密算法加密后所得的密文图像的像素点随机分布。

表11.图像的NIST测试结果

本发明将混沌映射与分组密码相结合,提出了一种基于2D-LCLM的分组加密算法。该算法主要采用类Feistel密码结构,该密码结构与传统Feistel结构相比,每轮包含两个F函数并对差分攻击具有更强的鲁棒性。随明文变化的混沌伪随机序列、动态S盒、动态轮密钥、DNA加密规则及F函数进一步增强了该算法的置乱和替换效果使密文呈现出随机分布的特性,并达到“一次一密”的效果。仿真实验及性能分析结果表明,该算法在满足终端传感设备特点的同时,对电力文本和电力图像具有良好的加密效果,对密码攻击表现出良好鲁棒性。

技术分类

06120113792374