安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能介绍
产品简介
下载中心
帮助中心
客户列表
关于安企神

基于跳跃轨道的数字序列混沌加密算法

更新时间:2022-10-28 15:45:51


本文简介:任何非线性系统的混沌状态都是由无限不稳定的周期轨道组成。对于任意给定的初始状态值,混沌系统不能自发地移动到任何一个轨道上。即该混沌系统可以不受任何外界影响落到这些轨道上的几率接近零。但是,一旦混沌系统运行于这些轨道上,就不会脱离这些轨道除非对其进行外加控制。由于混沌系统的普遍性和其对初始状态极强的敏感性,可以通过改变系统参数,改变系统演化轨道,使混沌系统从一个周期轨道转换到另一周期轨道。但是对于一

基于跳跃轨道的数字序列混沌加密算法

任何非线性系统的混沌状态都是由无限不稳定的周期轨道组成。对于任意给定的初始状态值,混沌系统不能自发地移动到任何一个轨道上。即该混沌系统可以不受任何外界影响落到这些轨道上的几率接近零。但是,一旦混沌系统运行于这些轨道上,就不会脱离这些轨道除非对其进行外加控制。由于混沌系统的普遍性和其对初始状态极强的敏感性,可以通过改变系统参数,改变系统演化轨道,使混沌系统从一个周期轨道转换到另一周期轨道。但是对于一个普通的非线性系统(非混沌),要达到同样的效果非常困难。混沌系统的该特性提高了数字序列加密方法的安全性。

本文提出一种新的数字加密算法,该算法将加密序列映射至几个不用的混沌周期轨道,然后将通过另一个非线性系统迭代周期轨道系统的参数得到的短序列作为重构这些周期轨道的密钥。在解密端,采用基于改进的Newton-Raphson算法的混沌轨道阴影法获取这些系统参数。该加密算法中的密钥不仅包括混沌周期轨道的初始条件值,同时也包括非线性系统的模型参数。该加密算法的特殊性使加密序列可以完全随机,而且该加密序列不带有原序列的任何信息。因此对于攻击者来说,从参数空间估算模型参数是非常困难的;其次,只有获得周期轨道的确切初始值,才有可能解密。但是,因为混沌系统的演化值对于初始条件具有极强的敏感性,获取周期轨道的精确初始值几乎是不可能的。相对于其他加密算法,本文加密算法除了具有较强的抗破译性,也不需要任何空间坐标对的转换。而且,由于Newton-Raphson的快速收敛性,粗略的初始条件估计值是可以达到理想效果的,重构周期轨道的参数演化序列也会非常短。因此该算法在应用中更容易实现。

一、一种新的数字加密算法

1、杜芬振荡器的周期轨道

杜芬振荡器是一种被广泛研究的特殊非线性系统。标准表达式如式(1)所示。

基于跳跃轨道的数字序列混沌加密算法

在式(1)中,如果δ值已经确定,当δ值由小到大变化时,系统状态也相应由小周期行为转换为混沌行为,并且最终达到极大周期行为瞪阄。因为基准信号γcos(t)的频率是连续的(1 rad/s),杜芬方程的使用因此被限制在一个有限的定义域中。于是,ω0=2πfo,基于跳跃轨道的数字序列混沌加密算法式(1)可由式(2)表示如下。

基于跳跃轨道的数字序列混沌加密算法

 

式(2)中,令fo=0.2Hz,δ=0.3,使用四阶龙格库塔算法可以分别得到δ=0.2和δ=1.5时(x VS y)的平面图。为了方便比较,将两图显示在同一图中,如图1所示。

基于跳跃轨道的数字序列混沌加密算法

当δ= 3.5时,杜芬振荡器处于混沌状态,下图2是其吸引子。

基于跳跃轨道的数字序列混沌加密算法

当δ= 0.3(或者其他值)时,γ的值不同系统显示出不同状态。当γ∈[0.05,0.26],系统表现为小周期行为,当γ∈[0.27,0.43]时,系统为混沌状态,但是当γ∈[0.44,10.32]时,系统状态表现为极大周期行为。由此,可以得到另一个重要结论,小周期轨道与极大周期轨道是分离的。即这两个轨道之间没有任何交叉点,这对于数字序列加密方法至关重要。而且,所有周期轨道的形状完全不相同。

由混沌的可定义性可知,如果/取值属于小周期轨道或者极大周期轨道的参数值域,系统轨道必定会演化并最终落在相应的周期轨道上。同时,由于混沌系统固有的随机性,轨道上每一点的坐标都是随机的。在两个周期轨道参数域间转换/的值促使周期轨道转换,这种现象被称为“周期轨道跳跃”。

2、数字加密算法

对于一个给定的δ值,与其对应的γ的小周期轨道取值域定义为A,极大周期轨道取值域为B。假设数字序列如式(3)所示。

基于跳跃轨道的数字序列混沌加密算法

其中,ai∈{o,1}{i=1,2...n)。在该加密算法中,式(2)的初始条件是关键,该初始条件必须使求得的解在该方程的周期轨道上。对于随机给定的初始条件(x0,yo),不需要马上就落到一个周期轨道上。但是,当γs∈A时,可由式(2)演化的上一步的结果值得到点(Xsi,ysi)。同理,当γg∈B时,迭代式(2)可得到点(Xgi,Ygi)。此时(xsi,ysi)和(Xgi,ygi)都位于各自的轨道上,并且都是初始条件相对应的轨道周期。

当ao取值O时,令γ=γs,式(2)由初始条件(Xsi,ysi)演化一步。那么ao被映射为小周期轨道上的一个点。相反,如果ao取值1,令7=yg,那么ao将映射到初始条件为(Xgi,Ygi)的极大周期轨道上的某个点。不论点在哪个轨道上,初始点都为(x0,Yo)。同理,ai被映射到点(xi,yi)。当映射呸时,其初始条件一定是(Xi-l,Yi-1)。否则,式(3)中的相同坐标对映射的点对也会相同,那么加密序列会很容易被解密。

式(3)的序列被映射为一个新的序列,如式(4)所示。

基于跳跃轨道的数字序列混沌加密算法

在该式中,每个坐标对都是随机的并且对于一段不是很长的序列来说是唯一的。将序列映射到几个混沌轨道,但是需要首先得到坐标对,然后将序列映射两次以达到算法的性能。除了初始条件(Xsi,ysi)和(Xgi,Ygi),参数δ,γs,γg对于加密和解密也至关重要。因此,本文中通过一个非线性系统将其转换为一个短序列,进一步加强安全性能。该短序列和式(4)中的加密序列共同组成最终的加密序列。解密时,如果非线性系统的模型参数已知,δ,γs,γg可由短序列获得,重建周期轨道。那么通过判定每个坐标对坐落的轨道,就可以解密得到原始序列。

二、关键参数的转换与计算

1、转换序列

已知Rossler系统方程如式(5)所示如下:

基于跳跃轨道的数字序列混沌加密算法

当模型参数为a=0.2,b=0.2,c=9.0,该系统为混沌系统。其吸引子如图3所示。模型参数也可为任意其他使其呈现混沌状态的值。

SE5289880

将δ,γs,γg分别赋值为其参数值域中的某个值作为式(5)的初始条件。迭代式(5),由状态变量xl,X2,X3可得到3个随机向量。由于该系统状态变量之间互相影响,任意一个状态变量的演化向量必然包含完整的系统信息。那么,可从每个向量中截取一个短序列作为参数δ,γs,γg的转换序列,这些序列对部分状态变量可见的系统是非常重要且必须的。

现在,必须有一个算法可以由这些短序列准确估算出式(5)的初始条件,即δ,γs,γg。

2、初始条件估测算法

随机从式(5)吸引子中选取(Xli,X2i,x3i)赋值给δ,γs,γg。其中,(Xli,X2i,X3i)的值必须分别落入δ,γs,γg的定义域内。将这些数据作为式(5)的初始数据。将Eq(5)改写为三维自治混沌系统的矩阵形式,如式(6)所示。

基于跳跃轨道的数字序列混沌加密算法

x= (xl,X2,X3)T∈Rn为状态向量。假设方程向量已知为F=(FI,F2,F3)T,初始状态向量z(O)=(δ,γs,γg)丁,时间演化的状态向量x(t)可以唯一确定。目标是估算x(0)的值。

从短序列截取一个状态变量的值(Xli,X2i,X3i)。不失一般性情况下,选择状态变量x1)。

令y(o)指代x(0)的初始猜测值,从式(6)获取时间演化值y(t)。令e(t)指代误差可得式(7),如下所示:

基于跳跃轨道的数字序列混沌加密算法

y(o)由x(l)演化得到且满足e(t)=0。由混沌系统的时间演化序列由初始条件y(o)唯一确定的属性可知,y(o)等价于x(0)。该方法是一种改进的Newton-Raphson方法。

引入xn= x(nΔt)指代第N个样本,Δt代表步长。同理yn= y(nΔt)且:

基于跳跃轨道的数字序列混沌加密算法

令Δy0= x0-yo=e0那么,可得式(8),如下所示。

基于跳跃轨道的数字序列混沌加密算法

最后一步为AΔ0的泰勒公式的扩展式。对于At值较小时可写为式(9),如下所示。

基于跳跃轨道的数字序列混沌加密算法

将式(9)带入式(8)忽略高阶部分得到式(10a),如式(10a)所示。

基于跳跃轨道的数字序列混沌加密算法

式(10a)的等价式可表示为式(10b),如下所示。

基于跳跃轨道的数字序列混沌加密算法

式(10b)的矩阵形式如式(11)所示。

基于跳跃轨道的数字序列混沌加密算法

E1是向量81相应的列矩阵,I为单位矩阵,其元素可由式(12)得到。

基于跳跃轨道的数字序列混沌加密算法

同理,e2或E2可表示为式(13),如下所示。

基于跳跃轨道的数字序列混沌加密算法

由式(6)迭代n步得到矩阵误差如式(14)所示。

基于跳跃轨道的数字序列混沌加密算法

令y10=x10,可由X1的序列得出x0=(x1(o),x2(o),x3(O)),其中Y2,Y3可以是任意猜测值。那么,y(t)的初始猜测向量为yo=(x0,rand, rand)。

这里e10=y10一x10,即△y10 =Oo由式(12-14)演化得到丽个方程用于计算△y20,△y30,如式(15)所示。

基于跳跃轨道的数字序列混沌加密算法

 

其中,E20和E30分别指代△y20,△y30,d为系统维数,这里为3。

因此,初始猜测向量可以通过一步演化改进,如式(16)所示。

基于跳跃轨道的数字序列混沌加密算法

给出初始向量yo经过几次迭代过程yo会收敛至xo=δ,γs,γg。由式(15)可知,x1只有两个样本值,xl和砰已知并且用于整个过程。得到加密序列如式(17)所示。

基于跳跃轨道的数字序列混沌加密算法

(x10,x11,x12)是x1的由方程(6)以δ,γs,γg为初始条件迭代后的前三个样本值。

三、加密实例

1、加密

假设Rossler系统第n次迭代的状态向量数据如式(18)所示。

SE1989610

使用上面的数据作为初始条件,可得到X1的演化序列。最初得到的序列可由式(19)表示。

SE1989610

由式(18)可知,这三个元素中没有任何一个值落在δ,γs,γg的参数值域中。事实上,由于数据是随机选取的,要使三个元素值分别落在相应的参数值域中是非常困难且不必要的。可通过式(20)的简单转换得到所需的值。

SE1989610

通过相似转换可以落入δ,γs,γg参数值域的数据并不唯一,其转换方式也不唯一。

令杜芬系统的小周期轨道的初始条件为γs=0.2,xs (0) =12013,γg(0)=-0.0849,对应的极大周期轨道为γg=1.5,xg (O)=2.032 6,yg(O)=-0.8931。初始值也可以是其它任意落在相应轨道上的值。为了说明简便,加密一个8位的数字序列,如式(21)所示。

基于跳跃轨道的数字序列混沌加密算法

值为“1”时,将其映射至极大周期轨道;反之,值为“0”时,映射至小周期轨道。加密后的序列为:

SE1989610

为获取δ,γs,γg的值,必须在解密端提供x的短序列值。因此,最终得到加密序列如式(23)所示。

基于跳跃轨道的数字序列混沌加密算法

该加密序列中,不仅数据由不同系统和不同的周期轨道获得,而且每个周期轨道上的坐标值都是完全随机的。

2、解密

首先计算当a=0.2,b=0.2,c=9.0时,式(5)的参数δ,γs,γg的值。式(23)中code_kpara部分为Rossler系统的状态变量xl的样本序列。假设δ,γs,γg原始猜测值如式(24)所示。

基于跳跃轨道的数字序列混沌加密算法

代入式(16),得到迭代结果如下图:

基于跳跃轨道的数字序列混沌加密算法

分析表1可知,y0快速且稳定的收敛。将最后得到的值代入式(20)得到式(25)。

基于跳跃轨道的数字序列混沌加密算法

通过确定式(23)中每对坐标数据所在的轨道,可解密得到原始数字数列。解密序列01101010,为原始序列。实验表明,即使周期轨道初始条件的估测误差为10-16,解密也会失败。例如,当ys (O)=-0.893 100 000 000 000 1,解密序列将会是00001010。同理,周期轨道的参数误差为10-14,解密也将失败。例如,当ys=1500 000 000 000 01,因为a,b,c的估测值都是错的,解密后的序列为0000。

小知识之线性系统

线性系统是状态变量和输出变量对于所有可能的输入变量和初始状态都满足叠加原理的系统。一个由线性元部件所组成的系统必是线性系统。但是,相反的命题在某些情况下可能不成立。线性系统的状态变量(或输出变量)与输入变量间的因果关系可用一组线性微分方程或差分方程来描述,这种方程称为系统的数学模型。

立即下载试用

基于3DES加密算法的研究

关于加密方法,我们之前有介绍过很多,最近大出风头的秀尔算法和DES、MD5等等一直占据鳌头,今天我们来介绍一个小众的加密算法——就是3DES。

加密算法主要通过软件和硬件两种方式来实现,软件的实现方式具有灵活方便的优点,同时也具有加密速度受限制的缺点。采用硬件实现加密算法是实际应用中必须要考虑到的问题。目前经常采用硬件FPGA等来实现,该种实验方式具有处理速度快的特点,但是对系统的复杂度要求较高。

嵌入式微处理器具有实现简单,系统集成度高,体积小,易于移植等众多优点,因此有必要研发基于嵌入式微处理器的加密算法硬件设备,在此提出一种基于ARM处理器的3DES的硬件实现方法。

3DES算法原理

DES是美国国家标准局颁布的数据加密算法,作为世界范围内的公开加密标准已经使用了20多年。随着计算机处理速度的提高,DES算法面临着一些安全威胁,DES采用56位密钥,曾经有人用穷举搜索法对DES进行过密钥搜索攻击。

近年来也有人提出了差分和线性攻击方案,该方案的实施必须有超高速计算机的支持。为了增强DES算法应对差分或线性攻击的可能性,人们提出了一系列改进方案,采用增加密钥长度是一种可行的途径。

为了增加密钥的长度,可将分组密码进行级联,在不同的密钥作用下,连续多次对一组明文进行加密。其中,最有效的方法是使用三重DES加密,它可使加密密钥长度扩展到128位,在提高加密强度的同时,足以应付目前的各种攻击。

DES是一个分组加密算法,它以64位为分组对数据加密。64位的分组明文序列作为加密算法的输入,经过16轮加密得到64位的密文序列。加密的密钥为64位,实际长度为56位,DES算法的保密性取决于密钥。DES对64位的明文分组进行操作。

首先通过一个初始置换IP,将64位的明文分成各32位长的左半部分和右半部分,该初始置换只在16轮加密过程进行之前进行一次。在经过初始置换操作后,对得到的64位序列进行16轮加密运算,这些运算被称为函数f,在运算过程中,输入数据与密钥结合。经过16轮运算后,左、右两部分合在一起得到一个64位的输出序列,该序列再经过一个末尾置换IP-1,获得最终的加密结果。过程如图1所示。

在每一轮加密过程中,函数厂的运算包括以下四个部分:

首先进行密钥序列移位,从移位后的56位密钥序列中选出48位;

然后通过一个扩展置换将输入序列32位的右半部分扩展成48位,再与48位的轮密钥进行异或运算;

再者通过8个s盒将异或运算后获得的48位序列替代成一个32位序列;

最后对32位序列应用置换P进行置换变换,得到-厂的32位输出序列。将函数厂的输出与输入序列的左半部分进行异或运算后的结果作为新一轮加密过程输入序列的右半部分,当前输入序列的右半部分作为新一轮加密过程输入序列的左半部分。

上述过程重复操作16次,便实现了DES的16轮加密运算。

假设Bi是第i轮计算的结果,则Bi为一个64位的序列,Li和Ri分别是Bi的左半部分和右半部分,Ki是第i轮的48位密钥,且f是实现代换、置换及密钥异或等运算的函数,那么每一轮加密的具体过程为:

以上操作的详细过程如图2所示。

在3DES加密算法中,加密过程用两个不同的密钥K1和K2对一个分组消息进行三次DES加密。首先使用第一个密钥进行DES加密,然后使用第二个密钥对第一次的结果进行DES解密,最后使用第一个密钥对第二次的结果进行DES加密。

解密过程首先使用第一个密钥进行DES解密,然后使用第二个密钥对第一次的结果进行DES加密,最后再使用第一个密钥对第二次的结果进行DES解密。

DES算法的密钥长度是56位,三重DES算法的密钥长度是112位,加密强度显著增强,可以很好地应付各种攻击,目前尚没有可行的攻击方法,应用3DES的加密系统具有很大的实用价值。

本文为收集整理,文章部分观点不代表本站观点,如有侵权或其它问题请反馈客服。https://www.wgj7.com/cjwt/16435.html