基于混沌序列的图像加密算法设计

孙彬哲 庄曼丹 梁为斌 宋金龙 王 清 孙洪波

北京理工大学珠海学院 广东 珠海 519088

数据加密在日常生活中的个人隐私保护、商业信息保密、电子支付安全乃至军事情报的传递等方面都具有重要的意义。第二次世界大战期间,德国军队传递情报所使用的恩尼格玛密码体系号称牢不可破,却仍然被英国通过数理统计的方法破译。相对于普通加密算法,采用混沌序列的加密算法在常用的数理分析手段面前具有更强的抗破解能力。

混沌现象是一类看似随机,实则可以通过精确的数学规律描述的现象。小到树叶飘落的轨迹,大到山川河流的变迁,都是混沌现象。对于特定的混沌现象,通常可以抽象为一个对初始条件极为敏感的非线性动力学系统,如著名的三体系统,这种非线性动力学系统称为混沌系统。如果一个混沌系统某一时刻的状态已知,则系统后续任意时刻的状态可以通过数学规律计算得知,系统在该时刻的状态称为系统的初值,后续若干时刻的状态值则构成一个混沌序列。当一个混沌系统的状态受到微小的扰动,这一微小扰动将会通过系统的非线性机制不断放大,最值使得系统后续的状态与未被扰动前应有的演化趋势大相径庭,使得系统表现出不确定性和不可重复的现象,这就是混沌系统的初值敏感性,体现在数值上就是系统初值发生微小改变会导致后续的混沌序列发生明显的改变。

本文利用混沌系统的特性使得设计的加密算法可以取得比传统加密算法更好的效果,将系统初值作为生成密钥的必需信息,不知道系统初值即无法推测加密信息所使用的密钥,因此也无法通过数理统计方法对密文进行分析破译。同时,由于混沌系统的初值敏感性,密码空间可以随着系统初值精度设置的提高而增大,使加密算法抗暴力破解的性能得到有效提高。

加密算法的具体设计如下。

2.1 混沌系统模型的建立

可采用的混沌系统模型可有多种选择,此处以最常见的几种混沌系统作介绍:

2.1.1 逻辑斯蒂映射

逻辑斯蒂映射(logistic map)是一个典型的一维混沌映射系统,其数学表达式如下:

式中:μ为控制参数,xn为该混沌序列的第n个元素,当控制参数μ和序列初始值x0满足3.5699456<μ≤4,0<x0<1时,系统处于混沌状态。

2.1.2 埃农映射

埃农映射(Hénon map)是一个常见的二维混沌映射系统,应用这一系统可以生成二维混沌序列,数学表达式为xn+1=1+yn-ax2n,yn+1=bxn,当参数值分别取为a=1.4及b=0.3时,系统处于混沌状态。

2.1.3 洛伦兹映射

洛伦兹映射(Lorenz map)是一个三维混沌映射系统,是数值试验中最早发现的呈现混沌运动的耗散系统,该系统的一个简单物理实现是流体在下方加热上方冷却的热对流管中的环流,记x为流体速度,y和z分别为水平和垂直的温度差,P与流体的普朗特数(表示流体中能量和动量迁移过程相互影响程度的无量纲标量)成比例,b是与空间相关的常数,R与流体的瑞利数(描述动量扩散系数与热扩散系数之间关系的无量纲标量)成比例,其数学表达式为dx/dt=P(y-x),dy/dt=Rx-y-xz,dz/dt=xy-bz,当参数值分别取p=10,b=8/3,R=28时,系统处于混沌状态。

在实际的加密算法开发工作中,通常要根据所需的混沌序列维度等特征选择适合混沌系统,通过给选定的混沌系统赋初值可以计算得到所需的混沌序列,可将多个不同混沌系统所生成的混沌序列复合使用。

2.2 密钥生成算法的设计

在主流的对称加密算法和非对称加密算法中,密钥的生成都是一个伪随机数的生成过程,这是因为计算机算法无法生成真正意义上的随机数,大部分程序和编程语言中的随机数发生器都是由可确定的函数如梅森旋转、线性同余函数通过特定“种子”作为算法的迭代初始值产生的伪随机数,这些“种子”来自于当前系统时间、键盘敲击速度、鼠标位置、实时网速等可获得的参数,这意味着:如果知道了种子,或者已经产生的随机数,都可以预测接下来随机数序列。混沌序列对于密钥生成的真正意义在于:当获取为系统初值的键盘敲击速度、实时网速数值出现微小的偏差时,计算得到的混沌序列就会截然不同,而键盘敲击速度、实时网速等参数属于现实世界的物理量,由于误差必然存在而无法被精确测量,因此难以被通过诸如网速检测的方法窃取生成密钥时的网速从而破解密钥。下面以一个简单的密钥生成算法实例进行说明:

对于特定时刻网速v(bps)作为系统初值生成的混沌序列X=[x1,x2,x3…,xn],取xi的倒数第二位数值除以2,得到取值为0或1的余数,遍历整个混沌序列所有元素,即可得到一个二进制随机数序列,该序列中0和1在统计学上符合随机分布,出现的概率在50%上下波动。此处特别说明:混沌序列中各个元素的最后一位数值由于计算机浮点数的精度限制并不能确保的精确值,计算所得的余数序列在统计学上可能呈现出某种系统性偏差,因此不能采用。当系统测得的网速数值出现微小差异时,所生成的混沌序列与原来截然不同,计算出的密钥也与真实密钥截然不同,无法对加密信息进行破译。因此,运用以上算法生成的随机数序列可以作为加密算法的密钥使用。

2.3 与传统加密算法的结合

下文以AES为例介绍混沌加密与传统加密算法的结合。

AES(Advanced Encryption Standard,高级加密标准)是美国联邦政府所采用的加密标准,现已代替DES(Data Encryption Standard,数据加密标准)被全世界广泛使用。AES算法加密流程主要包括一下几个部分:

2.3.1 沙盒代换:通过类似的方式为每个字节的数据找到一个对应的“序号”,从而将所有字节由明文逐个替换成密文;

2.3.2 行移位和列混淆:将数据矩阵中各行各列的数据按照特定的规律进行乱序排列;

2.3.3 密钥轮加:将二进制随机数密钥与待加密数据进行异或运算。

上述几个加密步骤在实际的加密过程中通常会重复执行多次,以确保密文具有充足的加密强度。混沌加密与上述加密算法结合最简单的方式是将混沌序列计算得到的二进制随机数序列作为密钥轮加步骤的主密钥使用,在每个加密循环中,由主密钥通过RIJNDAEL密钥生成方案产生对应的回合密钥并整合到算法中,与待加密数据进行异或运算。

下图分别为待加密的原始图像(校园鸟瞰图,源文件大小42.9 MB)和经前文所叙的混沌序列算法加密后的图像以及两图像的局部放大对比图。可见,加密后的图像无法辨认出原始图像所包含的信息。因此,加密算法具有良好的效果。

数据加密在日常生活中的个人隐私保护、商业信息保密、电子支付安全乃至军事情报的传递等方面都具有重要的意义。相对于普通加密算法,采用混沌序列的加密算法在常用的数理分析手段面前具有更强的抗破解能力。本文将混沌系统的特性应用于图像的加密,利用混沌系统的特性使得加密算法可以取得更好性能,设计出具有抗数理分析方法破译的高强度图像加密算法,该算法可与传统加密算法结合,进一步提高加密数据的安全性。

猜你喜欢网速加密算法初值具非定常数初值的全变差方程解的渐近性数学物理学报(2022年1期)2022-03-16带有随机初值的复值Ginzburg-Landau方程的弱平均动力学数学年刊A辑(中文版)(2022年4期)2022-02-16一种适用于平动点周期轨道初值计算的简化路径搜索修正法空间科学学报(2020年1期)2021-01-14英国网速快慢相差800倍环球时报(2019-12-05)2019-12-05混沌参数调制下RSA数据加密算法研究计算机测量与控制(2017年6期)2017-07-01HES:一种更小公钥的同态加密算法衡阳师范学院学报(2016年3期)2016-07-10基于小波变换和混沌映射的图像加密算法火控雷达技术(2016年1期)2016-02-06网速太慢爆笑show(2015年1期)2015-03-26对称加密算法RC5的架构设计与电路实现应用技术学报(2014年1期)2014-02-28具有无穷大初值的二维奇异摄动问题的渐近解东北师大学报(自然科学版)(2014年1期)2014-02-27

推荐访问:序列 混沌 加密算法