1. 引言
普遍认为,密码算法是信息安全领域的重要基础之一,其中,流密码算法是一种常见的密码算法。流密码算法研究的一个关键问题是密钥流序列产生器的设计,通常可用离散系统来产生。当前,混沌流密码算法是流密码算法研究的热点问题之一,其中的关键问题是如何利用离散混沌系统来产生算法中的密钥流序列。本文将先在理论上研究一类新的特殊时变广义符号混沌系统,之后再研究利用这类新系统来设计新的密钥流序列产生器的问题。由于广义符号系统比移位寄存器系统更加广泛,并且能在计算机上准确计算与实现,因此,它们在流密码算法中的应用研究是有理论和实际意义的。
作为特殊离散系统的时变广义符号混沌系统及其在构造伪随机序列方面的应用是一个研究较少的热点问题 [1] [2] [3] [4] [5] 。因此,本文将讨论如下一种新的二维时变广义符号系统的相关问题:
(1)
其中,
,I是实数集R的一个有界子集,k是一个正整数,
和
是两个多元函数,并将
称为系统(1)的系统函数或生成函数。
设
和
,
。记
,则对任意定义在
上的序列
和
,一定存在二维离散时空序列
满足(1),且
和
,对任意
。称
为系统(1)初值为
的一个解。参照文献 [5] ,当
和
时,可将系统(1)称为(二维时变)(广义)符号动力系统。现有文献对时变符号系统研究很少,系统(1)的混沌性还没有文献研究过。
设
是系统(1)的一个解,其中,
,
。记
,
, (2)
对于任一有界子集
,设
. (3)
参照文献 [3] [5] ,可在
上定义如下的一种常见形式的度量
:
, (4)
对任意
,其中,T表示转置,可省略不写。
对任意
,由式(2),不难发现可将系统(1)等价地改写为无穷维离散系统:
, (5)
其中,
是由
决定的
上的一列映射。为了方便,对任意
和
,记
,
. (6)
下面介绍一列映射混沌性的相关概念,可参见文献 [2] [3] [4] [5] 。
定义1:对于度量空间
上的一列映射
和任意一点
,如果
的轨道
是周期为p的周期序列,其中,
,
,则称
为G或系统(5)周期为p的周期点。如果G的所有周期点组成的集合是X中的稠密子集,则称G或G所决定的系统(5)具有周期点的稠密性。
同时,如果任意两个非空开子集
,存在整数
,使得非空,则称G或系统(5)具有(拓扑)传递性。另外,如果存在
,使得对任一
和x的邻域U,存在
和整数
,使得
,则称G或G决定的系统(5)具有初值敏感依赖性。
定义2:对于度量空间
上的一列映射,如果
或G决定的系统(5)具有传递性、周期点的稠密性和初值敏感依赖性,则称
或系统(5)是Devaney混沌的,也称与系统(5)等价的相应系统(1)在
上是Devaney混沌的。
2. 一类二维时变广义符号混沌系统
下面将通过例子来说明如何去构造具体的时变广义符号混沌系统。
设
,,
和
定义如下:
, (7)
,
和
, (8)
其中,
和
是两个周期非负整数列,即存在整数
,使得对任一和,有
和
,a和b是两个正整数,且a与q互素,以及b与q互素。
显然,利用式(7)和(8)所定义的函数f和g可以生成如下二维时变广义符号动力系统
(9)
其中,
,对任意
。下面将系统(9)所等价的无穷维离散系统设为
,
,
,
, (10)
其中,
是由f和g所导出的唯一映射,即对任意
,有
. (11)
参照文献 [6] [7] ,并利用已知条件,容易证明如下的两个引理及其推论,其证明过程省略。
引理1:式(10)所定义的
是周期为p的一列映射,即
,
。
推论1:设是由式(10)所确定的一列映射,则对一切
,都有
. (12)
引理2:对任一、正整数m和
,一定存在
,使得
。
定理1:时变广义符号系统(9)在度量空间
上是Devaney混沌的,其中,
。
证明:由定义2,显然只需要证明系统(10)是
上的Devaney混沌系统就行了。
首先,将证明系统(10)在
上具有传递性。
对任意两个非空开子集
,以及对任一
和
,存在
,使得
和
。因此,根据式(4)所定义的度量d的性质可知,存在一个正整数M,使得
,
. (13)
对任意一点
,记
,
其中,
,且函数
和
满足
和
。
一般地,利用递推法,对任意
和
,都有
,
,
其中,由式(6)定义,且
, (14)
和
是按递推方式由G唯一决定的两列函数,对任意
。
由引理2可知,对任一整数
和
,都存在,使得
,
. (15)
对于
和
,由式(13),(14)和(15),可找到一点
,满足和
,对,且依次可选取的
和
,使得如下等式成立:
,
,
.
因此,
和
。这样,系统(10)在
上具有传递性。
其次,利用与上面传递性的相似证明方法,不仅可证明系统(10)具有周期点的稠密性,而且也能证明系统(10)具有初值敏感依赖性。由于证明过程是类似的,因此,省略它们的证明过程。这样,综合上面的证明过程可知,系统(10)在
上是Devaney混沌的。证毕。
例1:考虑如下时变离散时空系统
,
, (16)
其中,
,
,和
,
,
,对任意
,
和
表示模2加法运算。
由于系统(16)是时变广义符号系统,因此,现有的判断方法不能判断系统(16)是否具有Devaney混沌性。但是,由于
和
都是周期数列,对任一
,且2与1、2和3都是互素的,因此,由定理1可知,系统(16)在
上是Devaney混沌的。
参见文献 [6] [7] [8] [9] [10] 的研究和分析方法,下面将对系统(16)的解序列伪随机性进行一些分析,并在此基础上,将构造一种流密码算法。
首先,系统(16)是Devaney混沌的,因而在理论上其解一般是混乱和几乎不相关的,因而下面就对解序列的混乱性和相关性进行数值计算,并与常用的Logistic系统的相应性质进行对比。仿真效果可参见图1,其中,(a)和(b)、以及(d)和(e)分别为本文符号系统解序列X和Y的混乱性和自相关函数,而(c)和(f)分别为Logistic系统解序列的混乱性和自相关函数。
Figure 1. Confusion and correlation diagram of Solutions
图1. 解的混乱性和相关性图
由图1可以看出,系统(16)解具有很好的类随机性。由于广义符号系统解序列在三维空间中都很混乱,这比二维空间中的混乱性更加复杂和难以预测,因此,利用符号系统来设计密钥流序列所具有的安全性比Logistic系统就会更好一些。
其次,按照常见随机数检测方法 [10] ,再对解序列进行单比特、扑克和游程检验,参见表1。
从表1中数据可以看出,与Logistic系统的相应性能检测相比,本文符号系统大都会更容易通过上述3项随机性检测,因而它的解序列在单比特、连续多比特和游程总数的分布上都会接近均匀分布,因而其类随机性较为理想。
最后,参照现有混沌序列密码算法的设计方法,下面利用系统(16)的解序列来构造一种流密码系统:
1) 选择常见的一副数字灰度图像作为明文,利用Matlab语言可以将该图像表示为一个数字矩阵
,其中,每个明文数值
;
2) 先选取某个JK触发器序列作为系统(16)的初始值,再利用系统(16)的某个解
计算出密钥流序列,其中,需要将二元解序列
转化为在0~255中取值的密钥流序列;
3) 加密变换:
,其中,
表示密文数值,
表示逐比特异或运算;
4) 解密变换:
。
将由上述方法所构造的流密码算法与基于Logistic系统所构造的流密码算法进行效果对比,它们的Matlab仿真效果可参见图2。
Table 1. Three common random number test results
表1. 三种常见随机数检测结果
Figure 2. Encryption and decryption effect diagram
图2. 加解密效果图
直观上,由图2可以看出,两种算法都能对原图像进行优良和正确的置乱加解密。下面继续再对图2中原图和两种算法加密效果图的3种方向的相邻像素值之间的相关性进行仿真计算,可见表2。
Table 2. Correlation between adjacent pixels between original and encrypted graphs
表2. 原图与加密图相邻像素之间各方向的相关性
从表2中,可以看到原图在三个方向上相邻像素之间具有很高的相关性,在各个方向的相关系数都接近1。而经过加密后,Logistic加密图和本文符号系统加密图在各个方向的相关系数则都接近0,说明加密效果良好。而且,还可以看出,利用本文符号系统加密比利用Logistic系统加密后在多数方向上的相关性更小,加密效果会更好。
3. 小结
本文研究了二维时变广义符号系统的混沌性,并对该系统所产生的序列进行了多种常见的伪随机性能分析,结果说明系统解序列的伪随机性能优良。在此基础上,构造了一种新的序列密码算法,仿真实验说明了该算法在数字图像加密中具有良好的效果。本文对今后混沌序列密码算法的研究具有一定的参考价值和实际意义。
NOTES
*通讯作者。