为获得采用整型运算的似混沌序列,基于Kaprekar变换并利用Kaprekar常数的数学性质,构造一种新的时间序列Kaprekar序列。利用时间序列的分析方法对Kaprekar序列进行功率谱特性、相空间重构、最大Lyapunov指数和主分量等方面的分析,与经典Logistic序列进行比较,得到Kaprekar序列与混沌序列的关系。
一、Kaprekar时间序列
1、Kaprekar变换
印度数学家D R Kaprekar提出一种称作Kaprekar变换的迭代操作,即:首先任意选择一个各位数字不完全相同的4位自然数,即不能有1111,2 222,…等数,然后对这个数的各位数字重新排列,选出最大值与最小值,再将最大值与最小值之差作为新的数并重复进行上述操作。Kaprekar变换操作非常简单,却有一个惊人的结果:
所有选择的数字在7次以内的上述操作之后都会收敛于6 174,并不再变化。以1 21 3为例,结果见表1。
从自然数用经过若干次Kaprekar变换到6 174,产生的序列称作Kaprekar路径。
2、Kaprekar变换的推广
将Kaprekar变换推广到2位、3位、5位、6位直至9位数,计算结果如表2所示。
此外,2位数虽然没有收敛值,但收敛于1个循环;5位数与2位数类似,但收敛于3个循环;6位数收敛于2个数值,还收敛于1个循环;7位数与2位数一样,没有收敛值,但收敛于1个循环;8位数收敛于2个数值,还收敛于2个循环;9位数收敛于2个数值,还收敛于2个循环。
3、Kaprekar序列
根据Kaprekar操作的特殊性质,将符合条件的8 991个4位数的Kaprekar路径连接成一维时间序列:
0 999 8 991 8 082 8 532 6174…1 998 8 082 8 532 6 174 0 999 8 991 8 082 8 532 6 174
此外,也可以用同样的方法构造其他位数的Kaprekar序列,只不过需要对收敛值做一点界定:如有循环,则从每个收敛循环中任意挑选一个数作为收敛值。每个数的Kaprekar路径为到收敛值的路径。
二、Kaprekar序列的时间序列分析
取4位数的Kaprekar序列为研究对象,与典型的Logistic序列相比较。3000个数据点就可以判断一个序列为混沌时间序列,并可以重构相空间。
1、功率谱分析
选取4位数Kaprekar序列的前3 000个数据点进行分析。利用FFT算法,可以对时间序列进行功率谱分析,图1与图2分别是Kaprekar序列与Logistic混沌序列的功率谱,可以看到,两序列的功率谱没有明显区别,都呈现宽频且无明显的峰值特征。
2、主分量分析
主分量分析是一种能够有效区分噪声和混沌信号的方法。对于给定序列[x(1),x(2),…,x(n)],进行主分量分析的步骤如下:
首先,可以选取一个嵌入维数历构造轨线矩阵X(X∈Rkxm,k=N-(m-1)):
然后计算其协方差矩阵A(A∈Rm*n):
再计算A的所有特征值λi(i=1,2,…,m),并按大小排列,求出:
最后,以i为X轴,In(λily)为y轴得到该时间序列的主分量谱。
混沌信号和噪声的主分量分布有着明显差异。混沌信号的主分量谱是一条过定点且斜率为负的直线(或含有类似直线部分),噪声则是一条与X轴接近平行的直线。图3、图4、图5分别给出了Kaprekar序列、Logistic序列和高斯白噪声的主分量分析结果,实验结果表明,Kaprekar序列与Logistic混沌序列相似,而与噪声不同,所以Kaprekar序列具有似混沌的特性。
三、相空间重构与最大Lyapunov指数
在混沌系统中,任一分量的演化是由与之相互作用的其他分量所决定的,根据Takens的嵌入定理,只要选取合适的嵌入维数与时间延迟重构相空间,就可以在拓扑等价意义上恢复系统。
为了确定嵌入维数与时间延迟,采用H S Kim等提出的C-C算法,与Logistic序列比较如表3所示。
对初值条件非常敏感是混沌系统的基本特点,2个靠得很近的初值所产生的轨道,随着时间推移按照指数分离。Lyapunov指数是对这种现象的定量描述。如果Lyapunov指数小于0,则相邻点最终要收敛于一点;若Lyapunov指数大于0,则相邻点最终要发散,如果轨道还有其他稳定因素,则在此共同作用下形成混沌吸引子。因此,判断Lyapunov指数的正负可以作为混沌系统的一个判断标准。
采用Wolf方法计算时间序列的最大Lyapunov指数为1.186 2,说明Kaprekar序列与混沌序列一样对初始值非常敏感。
4、结论
对其他位数的Kaprekar序列进行了类似的分析,得出相同的结论:Kaprekar序列与Logistic混沌时间序列具有相似的特性。
三、Kaprekar序列在图像加密中的应用
1、图像加密算法
混沌信号应用于图像加密中已取得了很好的加密效果。既然Kaprekar序列与混沌信号具有相似的性质,将Kaprekar序列应用在图像加密中,可以预期获得很好的加密效果。
实验中采用了一种基于猫映射和混沌序列加密算法,取得了满意的加密效果。加密算法流程如图6所示。
下面分别介绍猫映射算法与Kaprekar序列加密算法。
猫映射算法:对于N×N像素点的图像,将像素点位置按照某一规则置乱。坐标为(x,y)的像素点,按照:
移动到新的坐标(x',y'),式(4)中,p,g为正整数,对N取模保证计算出的坐标结果取值范围与原图像坐标取值范围相同。
Kaprekar序列加密:Kaprekar序列加密算法对每个像素的像素值进行扰动,对于整个图像,经过第k次加密后的像素值为:
式中:C(k)为本次加密后的图像的像素值矩阵;C(k-1)为上次加密后的像素值矩阵;I(k)为从Kaprekar序列数值处理得到的整数值矩阵;P(k)为原始图像的像素值矩阵。
图像加密具体算法步骤如下:
步骤1:将图像按照猫映射算法进行像素位置置乱,遍历每个像素点,按照式(4)计算其新的位置。并输出位置置乱后的图像。进行M次置乱,每一次置乱之后,同时改变p,g的值,使得:
式中:p(m),q(m)为第聊次置乱采用的p,g;K(.)为Kaprekar操作。
步骤2:获得Kaprekar加密序列(在此采用4位数Kaprekar序列与5位数Kaprekar序列,因为像素值为O到255之间的整数,将4位数Kaprekar序列与5位数Kaprekar序列分别归一化为O到255的整数并连接在一起)。
选定Kaprekar初始值,此处选择0001(高位包含3个0表示4位数的1)。
步骤3:将Kaprekar加密序列转化为NxN矩阵。
步骤4:确定初始加密条件C(O),采用式(5),完成指定次数的加密。
实验中,原始图像为Lena图像,初始加密条件选C(O)为零矩阵。
2、实验结果
图7为原始的Lena图像,经过猫映射后得到图8,此时图像的直方图分布并未发生改变,图12为图7的直方图,图13为图8的直方图。取Kaprekar序列作为加密序列得到图9,此时图像的直方图分布已经变为图14。
整个加密过程,既改变了像素位置,又改变了像素的值。图10为解密得到正确的图像。图11为在实验中用错一位的I(k)去解密得到错误图像,说明Kaprekar序列与混沌序列一样对初始值极为敏感。其他图像应用本加密算法也取得了相似的结果。
3、结果分析
直方图分析可以很好地反映出图像加密算法抵御统计攻击的能力。加密后的图像直方图分布越均匀,则抵抗统计攻击的能力越强。原始图像的直方图具有明显的统计特性,在进行猫映射变换后,虽然图像发生了变化,但是直方图分布并未变换,仍然具有原始图像的统计特性。而经过Kaprekar时间序列加密后,图像的直方图已经趋于均匀分布,大大增加了抵御统计攻击的能力。
实验中,猫映射加密阶段采用了2个自然数为密钥:a,b都是O到255的任意整数。进行猫映射的次数也是一个密钥,取值范围也为O到255。在Kaprekar序列加密阶段,Kaprekar序列的初始值为一个无符号的长整型数据,取值范围为O到(232-1)。加密次数一般取2到8,此外还需要确定初始加密条件C(O),C(O)包含N2个0到255之间的整数元素。综上所述,密钥空间为:2563x232xN2x6。
而对Logistic序列而言,因为Logistic序列的每个元素都为双精度浮点数,由于计算机字长限制,Logistic序列的数据精度一般取十万分之一,故Logistic序列加密的密钥空间为:2563x105xN2x6。
所以从计算复杂度来看,Kaprekar序列具有整数存储的优势,可取密钥空间更大。
像素值的改变率(Number of Pixels Change Rate,NPCR)和图像的整体平均变化密度(Unified Average ChangingIntensity,UACI)是用来衡量加密算法抗差分攻击能力的指标。如果图像某个像素值的改变可以大大改变加密后图像,则加密算法具有好的抗差分攻击的能力。
通过与Logistic序列作为加密序列的实验结果进行对比分析,可得出两者具有相似的抗差分攻击的能力,如表4所示。
小知识之Lyapunov指数
Lyapunov指数是衡量系统动力学特性的一个重要定量指标,它表征了系统在相空间中相邻轨道间收敛或发散的平均指数率。对于系统是否存在动力学混沌, 可以从最大Lyapunov指数是否大于零非常直观的判断出来: 一个正的Lyapunov指数,意味着在系统相空间中,无论初始两条轨线的间距多么小,其差别都会随着时间的演化而成指数率的增加以致达到无法预测,这就是混沌现象。