一种生成变参数混沌信号的方法及混沌保密通信系统的制作方法

文档序号:7923955阅读:216来源:国知局
专利名称:一种生成变参数混沌信号的方法及混沌保密通信系统的制作方法
技术领域
本发明涉及信息安全领域中的密码生成技术,更具体地说,涉及一种生成变参数混沌信号的方法及混沌保密通信系统。

背景技术
最近几年,混沌开始被应用于保密通信领域,混沌是确定性系统中由于内在随机性而产生的外在复杂表现,是一种貌似随机的非随机运动。由于混沌信号具有遍历性、宽带性、类噪声、对初始条件的敏感性、快速衰减的自相关和微弱的互相关性等特点,从而为实现保密通信提供了丰富的机制和方法。
混沌密码或保密通信系统的分析方法主要有统计分析、频谱分析(包括傅立叶变换和小波变换等)和混沌时间序列分析。前两者都是传统的信号分析手段,而近二十年发展起来的混沌时间序列分析已经成为对混沌密码或保密通信系统进行分析的主要手段。它通过对混沌映射产生的时间序列进行相空间重构分析,利用数值计算估计出混沌映射的宏观特征量,从而为进一步的非线性预测(包括基于神经网络或模糊理论的预测模型)提供模型参数。目前,已经存在对混沌信号进行重构攻击的有效方法;采用非线性预测技术可以实现对几乎所有低维混沌映射的有效攻击。为此,人们主要采用高维混沌映射来提高安全性。但是,高维混沌映射由于其复杂性又使其实现起来较为困难。
文献“基于可变参数混沌的序列密码的设计”(计算机工程,2001年第27卷第9期)提出了一种时变参数的混沌保密通信方案,通过一个外加的m序列改变混沌映射的参数来达到防止非线性预测的目的。但由于m序列具有很强的线性性质,使得混沌映射参数变化的规律性强,使用神经网络等技术仍然可以对其进行有效的预测。


发明内容
本发明的目的在于提供一种生成变参数混沌信号的方法,该方法可以能够有效抵御非线性预测技术的分析;本发明还提供了利用该方法所生成的变参数混沌信号生成伪随机序列的方法,以及进行同步处理和加解密的方法;本发明进一步提供了一种混沌保密通信系统。
本发明提供的生成变参数混沌信号的方法,包括以下步骤 ①选择n组混沌映射参数,构成混沌映射的参数集,n为正整数;将具有n个状态的伪随机序列和混沌映射的n组参数一一对应; ②根据产生的伪随机序列的当前状态在混沌映射的参数集中选择相应的一组参数取代混沌映射中此前的参数,使用混沌映射生成变参数混沌信号。
利用上述生成变参数混沌信号生成伪随机序列的方法,还包括对步骤②得到的变参数混沌信号进行采样,再对采样后的数字信号进行编码,得到服从均匀分布的数字序列,输出得到伪随机序列。
利用上述生成变参数混沌信号方法进行保密通信的方法,其步骤为 (A1)通信双方事先约定,使用相同的混沌映射生成混沌信号,使得通信双方的变参数混沌信号趋于同步; (A2)在通信双方所生成混沌信号达到同步后,分别通过一个相同的伪随机信号实时改变上述混沌映射的参数;通信双方事先确定相同的混沌映射参数集,对上述伪随机信号进行处理,使得该伪随机信号的状态与参数集中的元素一一对应,根据伪随机信号的状态选择相应的参数用于混沌映射生成混沌信号。
利用上述生成变参数混沌信号方法进行加解密的方法,发送方还包括步骤(C1)至(C2),接收方还包括步骤(D1)至(D3) (C1)发送方对经过上述同步处理后的变参数混沌信号进行采样和模数转换,进行模数转换时的最小量化间隔大于同步误差的两倍; (C2)每对上述变参数混沌信号进行一次采样和模数转换后,对转换后得到的二进制数字值进行编码得到单位长度的密钥序列,将单位长度的密钥序列对单位长度的明文序列进行加密得到单位长度的密文序列;将模数转换后所得的二进制数字值的最后一位记为x,将x与单位长度的密文序列一起构成一个数据帧发送到接收方; (D1)接收方将产生的变参数混沌信号减去一个固定值,该固定值的大小等于同步误差;然后对经过上述处理的变参数混沌信号进行采样和模数转换,采样的时刻与发送方相同,进行模数转换时的最小量化间隔与发送方相同; (D2)接收方每收到一个数据帧后,从其中分别提取单位长度的密文序列和x; (D3)接收方提取模数转换后得到二进制数字序列的最后一位,此处记为y,对x和y进行异或操作后所得的值与模数转换所得的二进制值进行相加;将所得的二进制值进行编码操作后得到单位长度的密钥序列;使用该单位长度的密钥序列对步骤(D2)中提取的单位长度的密文序列进行解密得到单位长度的明文序列。
本发明提供的混沌保密通信系统,包括混沌信号产生模块、模数转换模块、参数变换模块、编码模块、多路选择开关、加解密模块、密文数据缓存、明文数据缓存和控制模块; 控制模块分别为其它各模块提供使能复位信号或/和时钟信号; 混沌信号产生模块在通信双方混沌信号达到同步后,混沌信号产生模块接收参数变换模块发送过来的参数值,并使用该值作为混沌映射的参数输出混沌信号; 模数转换模块在通信双方混沌信号达到同步后对混沌信号产生模块输出的模拟混沌信号进行采样并转换为数字混沌序列; 参数变换模块在通信双方混沌信号达到同步后根据所述混沌映射的状态或外部输入对混沌映射参数进行变换,并变换所得到的参数发送给混沌信号产生模块; 编码模块用于将经过模-数转换后的数字混沌序列进行编码; 多路选择开关用于选择混沌信号产生模块输出的模拟混沌信号或编码模块输出的数字混沌序列作为密钥输入到加解密模块; 加解密模块用于根据多路选择开关输出的经编码的数字混沌序列,对所述明文进行加密或所述密文进行解密;或利用多路选择开关所输出的模拟混沌信号实现混沌保密通信; 密文数据缓存用于发送或接收明文,明文数据缓存用于发送或接收密文。
本发明公开一种用于生成变参数混沌信号的方法和系统,根据有限群上的随机行走理论,通过一个复杂的非线性过程控制混沌映射参数的动态变化。与对比文献所提出的技术方案相比,参数的变化毫无规律,因此混沌映射输出的混沌信号或混沌序列的复杂度更高,能够有效抵御非线性预测技术的分析。该变参数混沌映射输出的数字混沌序列可作为伪随机数序列,或作为密钥流对数据进行加解密;输出的连续混沌信号则可用于设计基于混沌同步的保密通信系统。



图1是本发明提供的生成变参数混沌信号的方法的流程示意图; 图2是参数变换过程的流程图; 图3是本发明提供的混沌保密通信系统的结构示意图。

具体实施例方式 下面结合附图和实例对本发明作进一步详细的说明。
如图1所示,本发明提供的生成变参数混沌信号的方法,包括以下步骤 首先使用混沌映射生成混沌信号,事先选择n组混沌映射参数p1、p2、p3…pn,构成混沌映射的参数集。在混沌映射生成混沌信号的同时产生一个伪随机序列,并对该伪随机序列进行编码处理使得经过处理后的序列具有n个状态q1、q2、q3…qn,将伪随机序列的n个状态和混沌映射的n组参数一一对应,根据当前输出的伪随机序列的状态在混沌映射参数集中选择相应的一组参数实时的输入到混沌映射中取代原有的参数,从而生成变参数混沌信号;具体步骤如图2所示 (1)利用任选的初始值和参数产生一个混沌信号,对该混沌信号进行采样并经过模数转换成为数字信号,对该数字信号或外部输入的数字信号进行编码,使其转换成为2i相输入序列,i为大于0的整数; (2)根据i的值完成变换表B的初始化;该初始化过程可以是以下两种形式 (A1)根据i的值构造长度为2i的数组,得到的数组即变换表B,将0到2i-1共2i个数顺序地填入变换表中得到顺序排列的变换表;根据用作密钥的参数产生2i个服从均匀分布的i比特伪随机数;以2i个i比特的伪随机数为参数根据变换表的转换算法,对顺序排列的变换表进行2i次转换,得到初始变换表B0; 上述变换表转换算法如下将i比特的输入参数m按位取反,得到m′,在数组中查找B[m′+1]的值,设该值为n′,根据n′得到参数w,q。w,q可以是以n′为初始值的任意变换值。根据n′得到的参数q,对变换表B进行弹洗变换Scb(q)先将序列1,2,...,2i等分成两子序列,然后将两子序列按q间距交叉重组构成新的序列。若最后剩下的元素不足q个时,则只要将剩余部分进行直接交叉。例如当i=8时,Scb(3)操作的结果是1,2,3,129,130,131,4,5,6,132,133,134,...,123,124,125,251,252,253,126,127,128,254,255,256。根据n′得到的参数w对经过弹洗变换的变换表B进行切牌变换Tcb(w)以w为边界将序列1,...,w-1,w,w+1,...,2i-1前后交叉。完成算法Tcb(w)后的结果序列为w+1,...,2i,1,...,w-1,w。按上述变换后的结果对变换表B的顺序进行重新排列; (B1)根据i的值构建n维变换表,将i的值分成n份,得到a1,a2,...,an(a1+a2+......+an-1+an=i,a1,a2,...,an的取值可随意确定,只要各值的大小相近即可,避免出现过大或过小的数),以

作为第1维、第2维、......第n维的长度构造n维数组,得到的n维数组就是n维变换表B;将0到2i-1共2i个数顺序地填入n维变换表中得到顺序排列的n维变换表;根据用作密钥的参数产生2i个服从均匀分布的i比特伪随机数;以2i个i比特的伪随机数为参数根据n维变换表的转换算法,对顺序排列的n维变换表进行2i次转换,得到初始n维变换表B0; n维变换表的转换算法如下将i比特的输入参数m分成n份,分别为a1,a2,...,an比特,用cj(1≤j≤n)表示第j份的值,然后做变换,其中l是由预定的任一伪随机数发生器根据用作密钥的参数产生的一个服从均匀分布的i比特伪随机数。对于n维数组B,在第j维,将第1层到第cj+1层进行循环交换,其中1≤j≤n(将n维变换表中第一维坐标都为k的所有元素称为第一维第k层,其它维类似)得到;按上述变换后的结果对n维变换表B的顺序进行重新排列; (3)从输入序列中获得输入值c,以c为参数根据基于变换表的取值算法得到中间输出值E;该取值算法可以是以下两种形式,其中形式(A2)对应上述步骤(2)中的(A1),形式(B2)对应上述步骤(2)中的(B1) (A2)将输入序列按i比特的长度划分成基元,按顺序取出一个基元作为输入值c;查变换表B0得到中间输出值E=B0[c]; (B2)将输入序列按i比特的长度划分成基元,按顺序取出一个基元作为输入值c;将c分成n份,分别为a1,a2,...,an比特,用bj(1≤j≤n)表示第j份的值,然后查变换表B0得到中间输出值E=B0[b1+1][b2+1]...[bn+1]; (4)以c为参数根据步骤(2)所述的变换表转换算法对初始变换表B0进行转换,转换后的变换表称为B1;将转换后得到的B1作为下一次循环的B0; (5)根据中间输出值E译码得到输出参数P,将输出参数P输出到所述混沌映射中取代原来的参数; (6)判断输入序列是否结束,如果是则转到步骤(7),否则跳转至步骤(3); (7)变换结束。
对上述变参数混沌信号进行采样和编码,即可得到服从均匀分布的数字序列,输出得到伪随机序列。
利用上述变参数混沌信号进行基于混沌同步的保密通信方法,步骤如下 (1)通信双方事先约定,使用相同的混沌映射通过脉冲同步法或自适应同步法或主从同步法或其他混沌同步方法使得通信双方的变参数混沌信号趋于同步;同步是指同一时刻通信双方混沌映射每个维度的状态值之差的绝对值恒小于一固定值,此处称该固定值为同步误差; (2)在通信双方混沌映射达到同步后,将输出的变参数混沌信号用于混沌掩盖、混沌调制等保密通信方式; 上述经过同步处理后的变参数混沌信号进行加解密的方法,步骤如下 (C1)发送方对经过上述同步处理后的变参数混沌信号进行采样和模数转换,进行模数转换时的最小量化间隔必须大于同步误差的两倍; (C2)每对上述变参数混沌信号进行一次采样和模数转换后,对转换后得到的二进制数字值进行编码得到单位长度的密钥序列,将单位长度的密钥序列对单位长度的明文序列进行加密得到单位长度的密文序列;将模数转换后所得的二进制数字值的最后一位记为x,将x与单位长度的密文序列一起构成一个数据帧发送到接收方; (D1)接收方将产生的变参数混沌信号减去一个固定值,并使得该固定值的大小等于同步误差;然后对经过上述处理的变参数混沌信号进行采样和模数转换,采样的时刻与发送方相同,进行模数转换时的最小量化间隔与发送方相同; (D2)接收方每收到一个数据帧后,从其中分别提取单位长度的密文序列和x; (D3)接收方提取模数转换后得到二进制数字序列的最后一位,此处记为y,对x和y进行异或操作后所得的值与模数转换所得的二进制值进行相加;将所得的二进制值进行编码操作后得到单位长度的密钥序列;使用该单位长度的密钥序列对步骤(D2)中提取的单位长度的密文序列进行解密得到单位长度的明文序列。
如图3所示,本发明提供的变参数混沌保密通信系统包括混沌信号产生模块1、模数转换模块2、参数变换模块3、编码模块4、多路选择开关5、加解密模块6、密文数据缓存7、明文数据缓存8和控制模块9; 混沌信号产生模块1用于输出混沌信号,当输出的混沌信号用于生成伪随机序列或利用上述基于混沌同步的保密通信方法或上述加解密方法对明文信号进行加密时,其数学表达式为式中

表示混沌映射的n维状态变量,

为其初始条件,A是一个n阶参数矩阵,ΦRn→Rn是描述混沌映射非线性部分的函数。当输出的混沌信号用于利用上述基于混沌同步的保密通信方法或上述加解密方法对密文进行解密时,其数学表达式为其中u(t)是用于同步控制的函数;当输出的混沌信号用于生成伪随机序列时,混沌信号产生模块1接收参数变换模块3发送过来的参数值,并使用该值作为混沌映射的参数输出混沌信号;当输出的混沌信号用于对明文信号进行加解密时,通信双方约定相同的初始参数,在通信双方混沌信号达到同步后,混沌信号产生模块1接收参数变换模块3发送过来的参数值,并使用该值作为混沌映射的参数输出混沌信号;当输出的混沌信号用于利用上述加解密方法对密文进行解密时,还需要将输出的混沌信号减去一个固定值,该固定值等于同步误差; 模数转换模块2对混沌信号产生模块1输出的模拟混沌信号进行采样并转换为数字混沌序列; 参数变换模块3根据所述混沌映射的状态或外部输入对混沌系统参数进行变换,其中 参数编码模块31用于对经过模数转换后得到的混沌序列或外部输入序列进行编码;编码变换模块32用于对参数编码模块输出的序列进行非线性变换;参数译码模块33用于将经过变换的序列转换为混沌系统的参数值并将其输入到所述混沌映射中去取代原来的混沌系统参数值; 编码模块4用于将经过模-数转换后的数字混沌序列进行编码; 多路选择开关5用于选择混沌信号产生模块1输出的模拟混沌信号或编码模块4输出的数字混沌序列作为密钥输入到加解密模块6; 加解密模块6用于根据多路选择开关5输出的经编码的数字混沌序列,对所述明文进行加密或所述密文进行解密;或利用多路选择开关5所输出的模拟混沌信号实现基于混沌同步的保密通信,包括混沌掩盖、混沌调制等; 密文数据缓存7用于发送或接收明文,明文数据缓存8用于发送或接收密文;加解密模块6可根据所述多路选择开关模块的输出,对明文数据缓存中的明文进行加密处理后输出到密文数据缓存,或对密文数据缓存中的密文进行解密处理后输出到明文数据缓存; 控制模块9用于产生各种时钟信号和控制信号,包括为混沌信号产生模块1提供使能信号和复位信号;为模数转换模块2、参数变换模块3、编码模块4、加解密模块6提供时钟信号、使能信号和复位信号;根据数据缓存7和8的状态控制输入到数据缓存中的数据流的速度;其中,各时钟的频率由通信双方事先约定。
实例一 本实例为利用变参数混沌信号生成伪随机序列的过程,具体步骤如下 (1)在本实例中,chen混沌系统在控制模块的控制下生成混沌信号;chen混沌系统可以表达为如下形式 根据用作密钥的参数确定数字混沌系统的初始条件为x(0)=0.454,y(0)=0.5236,z(0)=0.55878,因为仅产生伪随机序列,不用进行加解密操作,不需要经过多路选通开关,直接输出经过编码后的数字混沌序列。
(2)在混沌信号产生模块生成混沌信号的同时,参数变换模块在控制模块的控制下根据所述混沌系统的状态或外部输入改变混沌系统的参数,控制模块提供参数变换模块的时钟信号,周期为T=0.33ms。本实例仅对混沌系统的一个参数进行了变换,以此类推可知多个参数同时变换的方法。参数变换的具体步骤如下 (2.1)参数编码模块对chen混沌系统的状态值x(i)按下式进行编码,u(i)=[1000·(xj(i)+30)]mod256,使其转换成为28相输入序列; (2.2)编码变换模块初始化变换表构造长度为28的数组,得到的数组即变换表B,将0到0到28-1共256个数顺序地填入表换表中得到顺序排列的表换表B[1]=0,B[2]=1,......,B[256]=255;根据用作密钥的参数产生28=256个服从均匀分布的8比特伪随机数;以256个8比特的伪随机数为参数根据步骤(2.4)所述的变换表的转换算法,对顺序排列的变换表进行256次转换,得到初始变换表B0; (2.3)编码变换模块将经过参数编码模块编码的输入序列uj(i)按8比特的长度划分成基元,按顺序取出一个基元作为输入值m;查变换表B0得到中间输出值E=B0[m]; (2.4)编码变换模块使用一组构成对称群生成系的弹洗、切牌变换操作对变换表B0进行转换,转换后的变换表称为B1;将转换后得到的B1作为下一次循环的B0;将8比特的输入参数m按位取反,得到m′,在数组中查找B0[m′+1]的值,设该值为n′,取n′的低三位α得到弹洗算法的参数q=2α(此处设a=2),对变换表B0进行弹洗变换Scb(q)先将序列1,2,...,28等分成两子序列,然后将两子序列按q间距交叉重组构成新的序列。若最后剩下的元素不足q个时,则只要将剩余部分进行直接交叉。Scb(q)操作的结果是1,2,3,4,129,130,131,132,5,6,7,8,133,134,135,136,...,125,126,127,128,253,254,255,256。取n′的高五位β得到切牌算法的参数w=8*β(此处设β=5),对经过弹洗变换的变换表B0进行切牌变换Tcb(w)以w为边界将序列1,...,w-1,w,w+1,...,2i-1前后交叉。完成算法Tcb(w)后的结果序列为41,42...,256,1,...,39,40。按上述变换后的结果对表换表B0的顺序进行重新排列即得到表换表B1。
(2.5)参数译码模块根据中间输出值E译码得到输出参数P,将输出参数P输出到所述混沌系统中取代原来的参数;本实例以改变数字混沌系统的参数a为例,事先选择28个可用参数,构成1维数组σ[k](1≤k≤256),如a[1]=30,a[2]=30+0.04,a[3]=30+2*0.04,...,a[k]=30+(k-1)*0.04,...,a[256]=40.2,输出的参数P=a[E+1]; (2.6)参数编码模块判断输入序列是否结束,如果是则转到步骤(2.7),否则跳转至步骤(2.3) (2.7)变换结束 (3)模数转换模块在控制模块的控制下以周期T=1ms对变参数混沌信号进行采样和模数转换得到数字混沌序列d(i),i=0,1,2,...;编码模块对d(i)进行如下编码变换v(i)=1000·(d(i)+30)mod256,得到服从均匀分布的伪随机序列v(i)。
实例二 本实例为通信双方利用变参数混沌信号进行加解密的过程,具体步骤如下 (1)通信双方的chen混沌系统通过脉冲同步法达到同步; 发送方chen混沌系统可以表达为如下微分方程的形式 初始参数a=10,c=28,b=3。
接收方chen混沌系统可以表示为如下脉冲微分方程的形式 初始参数a=10,c=28,b=3。b1=0.8,b2=0.8,b3=0.8,nk=i*Δ2,Δ2=0.01,i=1,2,3...。x1(nk)、y1(nk)、z1(nk)是发送方给接收方的同步驱动信号。
通信双方根据用作密钥的参数确定混沌系统的初始条件为x1(0)=x2(0)=0.454,y1(0)=y2(0)=0.5236,z1(0)=z2(0)=0.55878,约定多路选通开关所选择的输出信号为混沌信号经过采样编码后输出的数字混沌序列。
(2)在混沌信号产生模块生成混沌信号的同时,参数变换模块在控制模块的控制下根据所述混沌映射的状态或外部输入改变混沌系统的参数。本实例仅对混沌系统的一个参数进行了变换,以此类推可知多个参数同时变换的方法。参数变换的具体步骤如下 (2.1)通信双方的参数编码模块均对经过采样和模数转换后的数字混沌序列D(x1(nk))按下式进行编码,u(i)=[1000·(D(x1(nk))+30)]mod256,使其转换成为28相输入序列;由于x1(nk)是发送方给接收方的同步驱动信号,因此通信双方均能够获取D(x1(nk)); (2.2)通信双方的编码变换模块初始化变换表;构建2维变换表,以24=16和24=16作为第1维和第2维的长度构造2维数组,得到变换表B;将0到28-1共256个数顺序地填入该2维变换表中得到顺序排列的2维变换表B[1][1]=0,B[1][2]=1,......,B[1][16]=15,B[2][1]=16,......,B[2][16]=31,...,B[16][1]=240,......,B[16][16]=255;根据用作密钥的参数产生28=256个服从均匀分布的8比特伪随机数;以256个8比特的伪随机数为参数根据步骤(2.4)所述的2维变换表的转换算法,对顺序排列的2维变换表进行256次转换,得到初始2维变换表B0; (2.3)通信双方的编码变换模块将经过参数编码模块编码的输入序列u(i)按8比特的长度划分成基元,按顺序取出一个基元作为输入值m;取m的高4位和低4位得到b1,b2(0≤b1≤15,0≤b2≤15),然后以b1+1,b2+1为二维坐标在二维变换表B0中取得对应元素B0[b1+1][b2+1]的值即为中间输出值E。
(2.4)通信双方的编码变换模块使用一组构成对称群生成系的轮换操作对变换表B0进行转换,转换后的变换表称为B1;将转换后得到的B1作为下一次循环的B0;将m表示为8比特二进制形式,取m的高4位和低4位得到c1,c2(0≤c1≤15,0≤c2≤15),然后做c1=(c1+l)mod(24),c2=(c2+l)mod(24)变换,其中l是由预定的任一伪随机数发生器根据用作密钥的参数产生的一个服从均匀分布的8比特伪随机数。将二维变换表B0的第1行到第c1+1行以行为单位依次循环交换,在交换后,原第1行的所有元素移动到第2行相应的位置,即将B0[1][j]移到B0[2][j](1≤j≤16);原第2行移动到第3行;......原第c1行移动到第c1+1行;原第c1+1行移动到第1行。在移动的过程中每一行的元素从左到右的相对顺序不变。
然后,根据同样的方法将二维变换表的第1列到第c2+1列以列为单位依次循环交换,在交换后,原第1列的所有元素移动到第2列相应的位置,即将B0[j][1]移到B0[j][2](1≤j≤16);原第2列移动到第3列;......原第c2列移动到第c2+1列;原第c2+1列移动到第1列。在移动的过程中每一列的元素从上至下的相对顺序不变。
(2.5)通信双方的参数译码模块根据中间输出值E译码得到输出参数P,将输出参数P输出到所述混沌映射中取代原来的参数;本实例以改变模拟混沌系统的参数a为例,事先选择28个可用参数,构成1维数组σ[k](1≤k≤256),如σ[1]=8,σ[2]=8+0.015625,σ[3]=8+2*0.015625,...,σ[k]=8+(k-1)*0.015625,...,σ[256]=12,输出的参数P=σ[E+1]; (2.6)通信双方的参数编码模块判断输入序列是否结束,如果是则转到步骤(2.7),否则跳转至步骤(2.3) (2.7)变换结束 (3)通信双方利用上述经过同步处理后的变参数混沌信号按如下步骤进行加解密 (C1)发送方的模数转换模块对经过上述同步处理后的变参数混沌信号的xI方向的状态以周期T=1ms进行采样和模数转换,进行模数转换时的最小量化间隔必须大于同步误差的两倍;设同步误差为0.06,则取最小量化间隔为0.125,chen混沌系统的吸引域约为-30<x<30,-30<y<30,0<z<45,因此取模数转换得到的数字混沌序列为9位,最高位为符号位;设得到的数字序列为d1(i),i=01,2,...; (C2)每对上述变参数混沌信号进行一次采样和模数转换后,编码模块对转换后得到的二进制数字值进行如下编码得到单位长度的密钥序列v1(i) v1(i)=1000·(d1(i)+30)mod256 加解密模块将单位长度的密钥序列对单位长度的明文序列进行按位异或运算得到单位长度的密文序列;将模数转换后所得的二进制数字值d1(i)的最后一位记为x,将x与单位长度的密文序列一起构成一个数据帧发送到接收方; (D1)接收方的混沌信号产生模块将产生的变参数混沌信号减去一个固定值,并使得该固定值的大小等于同步误差0.06;然后模数转换模块对经过上述处理的变参数混沌信号进行采样和模数转换,采样的时刻与发送方相同,进行模数转换时的最小量化间隔与发送方相同;模数转换得到的数字混沌序列为9位,最高位为符号位;设得到的数字序列为d2(i),i=0,1,2,...; (D2)接收方的加解密模块每收到发送方发来的一个数据帧后,从其中分别提取单位长度的密文序列和x; (D3)接收方的加解密模块提取模数转换后所得到二进制数字序列d2(i)的最后一位,此处记为y,对x和y进行异或操作后所得的值与模数转换所得的二进制值d2(i)进行相加;将所得的二进制值d’2(i)进行进行如下编码得到单位长度的密钥序列v2(i) v2(i)=1000·(d’2(i)+30)mod256 使用该单位长度的密钥序列与步骤(D2)中提取的单位长度的密文序列进行异或运算得到单位长度的明文序列。
上述实例输出的变参数混沌信号频带宽度大于不变参数混沌信号的频带宽度,输出的变参数混沌序列可以通过美国国家标准技术研究所提出的用于密码学的随机和伪随机数统计测试标准“Special Publication 800-22”所包含的所有16项随机序列测试指标。具体包括单比特频数测试;分块块内频数测试;游程测试;块内长游程测试;二进制矩阵秩测试;离散傅里叶变换测试;非重叠块匹配测试;重叠块匹配测试;Maurer的通用统计测试;Lempe1-Ziv压缩测试;线性复杂度测试;串行检验;近似熵测试;累加和测试;随机游动测试;随机游动状态频数测试。
以上所述为本发明的较佳实施例而已,但本发明不应该局限于该实施例和附图所公开的内容。所以凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。
权利要求
1、一种生成变参数混沌信号的方法,包括以下步骤
①选择n组混沌映射参数,构成混沌映射的参数集,n为正整数;将具有n个状态的伪随机序列和混沌映射的n组参数一一对应;
②根据产生的伪随机序列的当前状态在混沌映射的参数集中选择相应的一组参数取代混沌映射中此前的参数,使用混沌映射生成变参数混沌信号。
2、根据权利要求1所述的方法,其特征在于步骤②包括下述过程
(2.1)对数字信号进行编码,使其转换成为2i相输入序列,i为大于0的整数;所述数字信号由外部输入,或者是由对上述混沌信号进行采样后,再经过模数转换得到的数字信号;
(2.2)根据i的值构造长度为2i的数组,得到的数组即变换表B,将0到2i-1共2i个数顺序地填入变换表中得到顺序排列的变换表;根据用作密钥的参数产生2i个服从均匀分布的i比特伪随机数;以2i个i比特的伪随机数为参数根据下述变换表转换算法,对顺序排列的变换表进行2i次转换,得到初始变换表B0;
所述变换表转换算法为将i比特的输入参数m按位取反,得到m′,在数组中查找B[m′+1]的值,设该值为n′,根据n′得到参数w,q,利用参数q对变换表B进行弹洗变换Scb(q)先将序列1,2,...,2i等分成两子序列,然后将两子序列按q间距交叉重组构成新的序列;若最后剩下的元素不足q个时,则只要将剩余部分进行直接交叉;根据n′得到参数w对经过弹洗变换的变换表B进行切牌变换Tcb(w)以w为边界将序列1,...,w-1,w,w+1,...,2i-1前后交叉,完成算法Tcb(w)后的结果序列为w+1,...,2i,1,...,w-1,w,按上述变换后的结果对变换表B的顺序进行重新排列;
(2.3)将步骤(2.1)得到的2i相输入序列按i比特的长度划分成基元,按顺序取出一个基元作为输入值c;查变换表B0得到中间输出值E=B0[c];
(2.4)以c为参数根据步骤(2.2)所述的变换表转换算法对初始变换表B0进行转换,转换后的变换表称为B1;将转换后得到的B1作为下一次循环的B0;
(2.5)根据中间输出值E译码得到输出参数P,将输出参数P输出到所述混沌映射中取代原来的参数;
(2.6)判断输入序列是否结束,如果是则转到步骤(2.7),否则跳转至步骤(2.3);
(2.7)变换结束。
3、根据权利要求1所述的方法,其特征在于步骤③包括下述过程
(3.1)对数字信号进行编码,使其转换成为2i相输入序列,i为大于0的整数;所述数字信号由外部输入,或者是由对上述混沌信号进行采样后,再经过模数转换得到的数字信号;
(3.2)根据i的值构建n维变换表,将i的值分成n份,得到a1,a2,...,an,以
作为第1维、第2维、......第n维的长度构造n维数组,得到的n维数组就是n维变换表B;将0到2i-1共2i个数顺序地填入n维变换表中得到顺序排列的n维变换表;根据用作密钥的参数产生2i个服从均匀分布的i比特伪随机数;以2i个i比特的伪随机数为参数根据下述n维变换表的转换算法,对顺序排列的n维变换表进行2i次转换,得到初始n维变换表B0;
所述n维变换表的转换算法如下将i比特的输入参数m分成n份,分别为a1,a2,...,an比特,用cj表示第j份的值,1≤j≤n,然后做变换,其中l是由预定的任一伪随机数发生器根据用作密钥的参数产生的一个服从均匀分布的i比特伪随机数;对于n维数组B,在第j维,将第1层到第cj+1层进行循环交换得到,即将n维变换表中第一维坐标都为k的所有元素称为第一维第k层,其它维类似;按上述变换后的结果对n维变换表B的顺序进行重新排列;
(3.3)将输入序列按i比特的长度划分成基元,按顺序取出一个基元作为输入值c;将c分成n份,分别为a1,a2,...,an比特,用bj表示第j份的值,然后查变换表B0得到中间输出值E=B0[b1+1][b2+1]...[bn+1],1≤j≤n;
(3.4)以c为参数根据步骤(3.2)所述的n维变换表的转换算法对初始变换表B0进行转换,转换后的变换表称为B1;将转换后得到的B1作为下一次循环的B0;
(3.5)根据中间输出值E译码得到输出参数P,将输出参数P输出到所述混沌映射中取代原来的参数;
(3.6)判断输入序列是否结束,如果是则转到步骤(3.7),否则跳转至步骤(3.3);
(3.7)变换结束。
4、一种利用权利要求1、2或3得到的生成变参数混沌信号生成伪随机序列的方法,包括下述过程
对步骤③得到的变参数混沌信号进行采样,再对采样后的数字信号进行编码,得到服从均匀分布的数字序列,输出得到伪随机序列。
5、一种利用权利要求1、2或3所述方法进行保密通信的方法,其步骤为
(A1)通信双方事先约定,使用相同的混沌映射生成混沌信号,使得通信双方的混沌信号趋于同步;
(A2)在通信双方所生成混沌信号保持同步的前提下,分别通过一个相同的伪随机信号实时改变上述混沌映射的参数;通信双方事先选择相同的n组混沌映射参数,构成混沌映射的参数集。在混沌映射生成混沌信号的同时,通信双方分别产生一个相同的伪随机序列,并对该伪随机序列进行编码处理使得经过处理后的序列具有n个状态,将伪随机序列的n个状态和混沌映射的n组参数一一对应,根据当前输出的伪随机序列的状态在混沌映射的参数集中选择相应的一组参数实时的输入到混沌映射中取代原有的参数。
6、一种利用权利要求5所述方法进行加解密的方法,其特征在于发送方还包括步骤(C1)至(C2),接收方还包括步骤(D1)至(D3)
(C1)发送方对经过上述同步处理后的变参数混沌信号进行采样和模数转换,进行模数转换时的最小量化间隔大于同步误差的两倍;
(C2)每对上述变参数混沌信号进行一次采样和模数转换后,对转换后得到的二进制数字值进行编码得到单位长度的密钥序列,将单位长度的密钥序列对单位长度的明文序列进行加密得到单位长度的密文序列;将模数转换后所得的二进制数字值的最后一位记为x,将x与单位长度的密文序列一起构成一个数据帧发送到接收方;
(D1)接收方将产生的变参数混沌信号减去一个固定值,该固定值的大小等于同步误差;然后对经过上述处理的变参数混沌信号进行采样和模数转换,采样的时刻与发送方相同,进行模数转换时的最小量化间隔与发送方相同;
(D2)接收方每收到一个数据帧后,从其中分别提取单位长度的密文序列和x;
(D3)接收方提取模数转换后得到二进制数字序列的最后一位,此处记为y,对x和y进行异或操作后所得的值与模数转换所得的二进制值进行相加;将所得的二进制值进行编码操作后得到单位长度的密钥序列;使用该单位长度的密钥序列对步骤(D2)中提取的单位长度的密文序列进行解密得到单位长度的明文序列。
7、一种混沌保密通信系统,其特征在于该系统包括混沌信号产生模块(1)、模数转换模块(2)、参数变换模块(3)、编码模块(4)、多路选择开关(5)、加解密模块(6)、密文数据缓存(7)、明文数据缓存(8)和控制模块(9);
控制模块(9)分别为其它各模块提供使能复位信号或/和时钟信号;
混沌信号产生模块(1)在通信双方混沌信号达到同步后,混沌信号产生模块(1)接收参数变换模块(3)发送过来的参数值,并使用该值作为混沌映射的参数输出混沌信号;
模数转换模块(2)在通信双方混沌信号达到同步后对混沌信号产生模块(1)输出的模拟混沌信号进行采样并转换为数字混沌序列;
参数变换模块(3)在通信双方混沌信号达到同步后根据所述混沌映射的状态或外部输入对混沌映射参数进行变换,并变换所得到的参数发送给混沌信号产生模块(1);
编码模块(4)用于将经过模-数转换后的数字混沌序列进行编码;
多路选择开关(5)用于选择混沌信号产生模块(1)输出的模拟混沌信号或编码模块(4)输出的数字混沌序列作为密钥输入到加解密模块(6);
加解密模块(6)用于根据多路选择开关(5)输出的经编码的数字混沌序列,对所述明文进行加密或所述密文进行解密;或利用多路选择开关(5)所输出的模拟混沌信号实现混沌保密通信;
密文数据缓存(7)用于发送或接收明文,明文数据缓存(8)用于发送或接收密文。
8、根据权利要求7所述的变参数混沌加密系统,其特征在于参数变换模块(3)包括参数编码模块(31)、编码变换模块(32)和参数译码模块(33);
参数编码模块(31)用于对经过模数转换后得到的混沌序列或外部输入序列进行编码,并输出至编码变换模块(32);
编码变换模块(32)用于对参数编码模块(31)输出的序列进行非线性变换,输出至参数译码模块(33);
参数译码模块(33)用于将经过变换的序列转换为混沌映射的参数值并将其输入到所述混沌映射中去取代原来的混沌映射参数值。
全文摘要
本发明公开一种生成变参数混沌信号的方法及混沌保密通信系统。先使用混沌映射生成混沌信号;再事先确定混沌映射的参数集,对任一伪随机信号进行处理,使得该伪随机信号的状态与参数集中的元素一一对应,根据伪随机信号的状态选择相应的参数用于混沌映射生成变参数混沌信号。系统包括混沌信号产生模块、模数转换模块、参数变换模块、编码模块、多路选择开关、加解密模块、密文数据缓存、明文数据缓存和控制模块。本发明可以增加输出的混沌信号或混沌序列的复杂度,有效抵御基于相空间重构的非线性预测技术的分析。所输出的数字混沌序列可作为伪随机数序列,或作为密钥流对数据进行加密;输出的连续混沌信号则可用于设计基于混沌同步的保密通信系统。
文档编号H04L9/00GK101394266SQ200810197389
公开日2009年3月25日 申请日期2008年10月24日 优先权日2008年10月24日
发明者胡汉平, 程孟凡, 王祖喜, 朱子奇, 王炫聪 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1