一种基于精度补偿的混沌密码的方法

文档序号:7595185阅读:117来源:国知局
专利名称:一种基于精度补偿的混沌密码的方法
技术领域
本发明属于信息安全领域中的密码技术,是一种利用电子计算机技术、信息编码技术和混沌系统在有限精度的条件下采用精度补偿方法产生具有优良性质的混沌密码序列。
背景技术
随着计算机计算速度的不断提高,以及分布处理技术的日益发展,原有的一些加密算法已被破解。目前,国内所采用的加密算法大都是国外将要淘汰的低强度加密算法。由此所带来的不安全因素已成为当前阻碍经济发展和威胁国家安全的一个重要问题。
最近几年,混沌开始被应用于保密通信领域,混沌是确定性系统中由于内在随机性而产生的外在复杂表现,是一种貌似随机的非随机运动。由于混沌信号具有遍历性、宽带性、类噪声、对初始条件的敏感性、快速衰减的自相关和微弱的互相关性等特点,从而为实现保密通信提供了丰富的机制和方法。
但是,数字混沌序列的生成都是在计算机或其它有限精度的器件上实现的。因此,任何混沌序列生成器都可归结为有限自动机来描述,在这种条件下所生成的数字混沌序列势必会表现出短周期、强相关以及小线性复杂度等特性退化问题,难以设计出满足密码学要求的数字混沌序列。
Li-Hui Zhou等人在文献“A New Idea of Using One-Dimensional PWLMap in Digital Secure Communications-Dual-Resolution Approach”[Acta Electron.Sin,vol.25,no.7,pp.95-97,1997]中提出采用提高输入分辨率使其远高于输出分辨率的双分辨率方法来解决在离散混沌系统中由于精度的有限性所带来的上述问题。显然该方法硬件代价是非常大的。基于多进制的方法,虽然可以扩展数字混沌序列的周期,改善其性质,但是在该方法中实现不同进制之间转换算法的硬件开销也较大。

发明内容
本发明的目的在于克服上述不足之处,提供一种基于精度补偿的混沌密码的方法,该方法在不增加计算精度的前提下有效地解决了上述特性退化问题。
本发明提供的一种基于精度补偿的混沌密码的方法,其步骤包括(1)设i=0,并给n维混沌映射的状态变量赋初始值 确定对n个初始混沌映射状态变量进行编码后的输出顺序,设初始补偿误差 为零;(2)在精度为L+1比特的条件下,计算n维混沌映射 得到精度为2L比特的状态变量的绝对值和1比特符号位;把其前L比特的数值和1比特符号位赋给中间变量Xi+1′,并把其后L比特的数值和1比特符号位赋给中间变量ΔXi+1′;(3)从第j维混沌映射的补偿参数集合Uj中选取补偿参数kj,i,其中j=1,2...n,集合Uj中元素个数记为mj,根据(2)式计算第i步补偿函数值向量Hi,该向量中的每个元素都是用一个2L比特的绝对值和1比特符号位来表示;把向量Hi中每一元素的前L比特数值和1比特符号位赋给中间变量ΔXi+1″;(4)计算表达式ΔXi+1′+ΔXi+1″的值,如果除符号位外该计算值超过L比特,则将其超过部分的值与Xi+1′相加得 并将未超出部分的值连同符号位赋给 否则,将该计算值直接赋给 并将Xi+1′赋给 (5)对n维混沌状态变量 进行编码,得到向量Si+1;(6)串行地输出向量Si+1中的每一分量,得到相应的密钥序列;(7)如果密钥序列的累计长度达到要求的数值,则结束退出,否则,设i=i+1,转到步骤(2);进行计算时需要使用补偿函数Hi 对有限精度所产生的误差进行补偿,补偿误差记为 其中hj(·)是对第j维混沌映射fj(X)使用的补偿函数,kj,i是对第j维混沌映射fj(X)第i次迭代使用的补偿参数, 是描述第j维混沌映射fj(X)沿第k维方向发散速度的值。
上述步骤(1)中,n维混沌映射的状态变量的 初始值为n个随机数,或为n个固定的数;n个初始混沌映射状态变量编码的输出顺序随机设定,或选择一个固定的输出顺序。上述步骤(3)中,补偿参数为随机选择的参数,或根据每个补偿参数对应的周期环在相空间中的分布规律选择的参数。上述步骤(5)根据n维混沌映射状态变量的概率分布进行编码。上述步骤第(6)采用动态变换的顺序表控制向量Si+1各个分量的输出顺序。所述控制顺序表动态变换的随机数是由一个混沌映射产生的;设控制顺序表动态变换的混沌映射为
yi+1=g(yi)(i=0,1,...)yi(i=0,1,...)大于等于预先设定的阈值0时,对顺序表进行变换操作(1,2)轮换,否则对顺序表进行变换操作(1,2,…,n)轮换。
本发明设计了一种对有限精度下的混沌迭代映射进行多参数精度补偿的算法,在不增加精度的前提下增大数字混沌序列的周期,使数字混沌序列逼近理论的实值混沌序列的分布概率,从而使数字混沌序列具有良好密码学性质,同时克服出现零分布区间的现象。因为不同参数对混沌映射的扰动规则不相同,所以在不同参数的精度补偿下产生的混沌轨道也不相同,这样就能够极大地扩展数字混沌序列的周期。
对密钥流性质的数值分析表明基于精度补偿的混沌密码系统符合所有的安全性设计准则,产生的密钥序列具有串分布均匀、随机统计特性良好、相邻密钥相关性小、长周期和高复杂度等特点,密码系统的混淆与扩散性能良好;并且,该密码系统的工作密钥空间巨大,足以抵抗穷举密钥攻击。


图1为数字化混沌系统状态序列的自相关函数图。
具体实施例方式
设n维混沌迭代映射为 (其中,n为正整数,通常取值范围为1至4。混沌映射状态变量 在计算机中用L+1个比特表示的混沌映射状态变量值记为 (其中,L根据系统对加密强度和速度的要求选值,可以取任意正整数,如16bits,33bits)由于计算精度的有限性所导致的与无限精度下的混沌映射状态变量Xi间的计算误差为 使其n维数字混沌系统的轨迹特性出现不可避免的退化问题——短周期、强相关等。为此,在精度L+1比特条件下对n维混沌映射 进行计算时需要使用补偿函数Hi 对有限精度所产生的误差进行补偿,补偿误差记为 即ΔXi=Σk=L+22L+1αk·2-k+Σk=2L+2Mαk·2-k=ΔX~i+o(ΔX~i)]]>在上式中,用 表示从第2L+2位到第M位的误差。因此,可以将补偿后的第j维混沌映射fj(Xi)表示为xj,i+1=fj(X~i)+hj(kj,i)+o(Δx~j,i)=fj(X~i)+kj,i·Σk=1nΔx~k,i·eE(ln|∂∂xkfk(X)|)+o(Δx~j,i+1)---(3)]]>在(3)式中,kj为对第j维混沌映射fj(Xi)进行补偿时所使用的补偿参数。
在L+1精度下,设使用一个参数kj对第j维混沌映射进行精度补偿后,该混沌映射周期轨道上的状态变量集合记为Vkj。一般情况下,集合Vkj中元素个数都小于2L+1,对任一混沌映射,总可以找到参数kj的一个集合Uj,使得在精度L+1比特的条件下集合 中有2L+1个元素,而且有限精度下的混沌映射的状态变量的概率分布与理论上混沌映射的状态变量的概率分布之间的全变差范数足够小,即有限精度下混沌映射的轨迹可以达到在相应精度下混沌吸引域中的所有状态,而且能够逼近混沌映射的状态变量在理论上的概率分布。显然,补偿参数集合Uj并不是唯一的。
在对混沌映射进行补偿过程中,按照预定的规则从对第j维混沌映射进行补偿的补偿参数集合Uj={kj
,kj[1],…,kj[mj]}中确定用于对第i次迭代的补偿参数kj,i。设对第j维混沌映射的第i次迭代xj,i+1=fj(Xi)进行补偿后的状态变量为 并且补偿到精度L+1位后的剩余误差为Δxj,i+1,则根据(3)式得到对第j维混沌映射fj(Xi)进行多参数精度补偿计算的公式x~j,i+1+Δx~j,i+1=fj(X~i)+kj,i·Σk=1nΔx~j,k·eE(ln|∂∂xkfj(X)|)---(4)]]>由(4)式计算出经过精度补偿后的数字混沌序列,根据预定的编码方法对序列中的元素逐一进行编码,然后,根据预定规则输出密钥流序列。
实例一在本实例中利用一维混沌映射设计得密码系统,运算精度为16比特,依据混沌映射f(x)的性质和计算精度确定的补偿参数集合为U={k
=0.5,k[1]=0…65,k[2]=0.7,k[3]=0.75,k[4]=0.8,k[5]=0.85,k[6]=1.0,k[7]=1.1,k[8]=1.25,k[9]=1.4,k[10]=1.45,k[11]=1.55,k[12]=1.6,k[13]=1.7,k[14]=1.75,k[15]=1.8,k[16]=1.85,k[17]=1.9,k[18]=1.95,k[19]=-0.55,k[20]=-0.6,k[21]=-0.65,k[22]=-0.75,k[23]=-0.8,k[24]=-0.85,k[25]=-0.9,k[26]=-0.95,k[27]=-1.1,k[28]=-1.15,k[29]=-1.25,k[30]=-1.4,k[31]=-1.45,k[32]=-1.5,k[33]=-1.55,k[34]=-1.6,k[35]=-1.7,k[36]=-1.75,k[37]=-1.8,k[38]=-1.85,k[39]=-1.9}。本实施例中按照先后顺序选取补偿参数,因此,(4)式可以具体写为如下形式x~i+1+Δx~i+1=f(x~i)+k[l]·Δx~i·eλ---(5)]]>其中λ=ln2,f(x)=1-2·x2,l=0,1,...39。
产生密钥流的算法如下(1)初始化i=0,l=0,随机产生混沌映射初始值 初始化补偿误差Δx~i=0;]]>(2)在精度16比特条件下,计算(5)式的第一部分f(x~i)=1-2·x~i2,]]>得到一个30比特的状态变量的绝对值和1比特符号位,把它的前15个比特数值和1比特符号位赋给中间变量xi+1′,把它的后15个比特数值和1比特符号位赋给中间变量Δxi+1′;(3)计算(5)式的第二部分 的值,得到一个30比特的数值和1比特的符号位,把它的前15比特数值和1比特符号位赋给中间变量Δxi+1″,丢弃它的后15比特数值;(4)计算Δxi+1′+Δxi+1″的值,如果除符号位外该计算值超过15比特,则将其超过部分的值与xi+1′相加得 并将未超出部分的值(连同符号位)赋给 否则,将该计算值直接赋给 并将xi+1′赋给 (5)根据编码规则si+1=[256(1-arcosx~i+1/π),]]>对 进行编码得到si+1,si+1就是加解密所需的密钥;(6)如果密钥序列的累计长度达到要求的数值,则结束退出,否则,i=i+1,l=lmod40,转到(2)。
利用上述算法产生一个长度为100万字节的密钥序列{s0,s1,…,s999,999}。首先,经过参数补偿后的数字化混沌系统的状态序列{x0,x1,…,x999,999}的概率分布与混沌系统f(x)=1-2·x2的理论概率分布之间的全变差范数为0.0456,非常接近混沌系统f(x)=1-2·x2的理论概率分布;其次,如图1所示,经过参数补偿后的数字化混沌系统的状态序列的自相关函数近似于冲激函数,序列的自相关性非常弱;第三,密钥序列自相关函数也近似于冲击函数,自相关性非常弱,在100万字节的密钥序列中没有出现周期现象。
实例二在本实例中利用一维混沌映射设计得密码系统,运算精度为16比特,依据混沌映射f(x)的性质和计算精度确定的补偿参数集合为U={k
=0.5,k[1]=0.65,k[2]=0.7,k[3]=0.75,k[4]=0.8,k[5]=0.85,k[6]=1.0,k[7]=1.1,k[8]=1.25,k[9]=1.4,k[10]=1.45,k[11]=1.55,k[12]=1.6,k[13]=1.7,k[14]=1.75,k[15]=1.8,k[16]=1.85,k[17]=1.9,k[18]=1.95,k[19]=-0.55,k[20]=-0.6,k[21]=-0.65,k[22]=-0.75,k[23]=-0.8,k[24]=-0.85,k[25]=-0.9,k[26]=-0.95,k[27]=-1.1,k[28]=-1.15,k[29]=-1.25,k[30]=-1.4,k[31]=-1.45,k[32]=-1.5,k[33]=-1.55,k[34]=-1.6,k[35]=-1.7,k[36]=-1.75,k[37]=-1.8,k[38]=-1.85,k[39]=-1.9}。从补偿参数集合U中随机地选择补偿参数,用它对混沌映射f(x)的第i次迭代进行补偿,因此,(4)式可以具体写为如下形式x~i+1+Δx~i+1=f(x~i)+k[l]·Δx~i·eλ---(6)]]>其中λ=ln2;f(x)=1-2·x2;l∈{0,1,2,...,39}是补偿参数的标号,它是由物理噪声芯片产生的随机整数。在本实施例中,预先选定混沌映射的初始值 为0.02731。
产生密钥流的算法如下(1)初始化i=0,设定混沌映射初始值x~i=0.02731,]]>初始化补偿误差Δx~i=0;]]>(2)在精度16比特条件下,计算(6)式的第一部分f(x~i)=1-2·x~i2,]]>得到一个30比特的状态变量的绝对值和1比特符号位,把它的前15个比特数值和1比特符号位赋给中间变量xi+1′,把它的后15个比特数值和1比特符号位赋给中间变量Δxi+1′;(3)用物理噪声芯片产生一个0~39的随机整数,并把它赋给l,从补偿参数集合U中选出补偿参数k[l]作为对混沌映射第i次迭代进行精度补偿的补偿参数;(4)计算(6)式的第二部分 的值,得到一个30比特的数值和1比特的符号位,把它的前15比特数值和1比特符号位赋给中间变量Δxi+1″,丢弃它的后15比特数值;(4)计算Δxi+1′+Δxi+1″的值,如果除符号位外该计算值超过15比特,则将其超过部分的值与xi+1′相加得 并将未超出部分的值(连同符号位)赋给 否则,将该计算值直接赋给 并将xi+1′赋给 (5)根据编码规则si+1=[256(1-arcosx~i+1/π)],]]>对 进行编码得到Si+1,Si+1就是加解密所需的密钥;(6)如果密钥序列的累计长度达到要求的数值,则结束退出,否则,i=i+1,l=lmod40,转到(2)。
实例三在本实例中使用一个30维混沌映射 其中ε=0.5,f(x)=1-2x2。精度补偿混沌映射的运算精度为16比特。每维混沌映射的补偿参数集中都包含两个补偿参数,根据(3)式得第j维混沌映射的补偿运算式为x~j,i+1+Δx~j,i+1=(1-ϵ)·f(x~j,i)+ϵ2·[f(x~j-1,i)+f(x~j+1,i)]+kj[l]·Σk=130Δx~k,i·eλk---(8)]]>其中λk=ln2(k=1,2,...30);kj[l]∈Uj是对第j维混沌映射第i次迭代进行精度补偿的补偿参数,各维混沌映射使用的补偿参数集合分别是U1={k1
=0.85,k1[1]=-0.8125},U2={k2
=1.0,k2[1]=0.79687},U3={k3
=1.1,k3[1]=-0.796875},U4={k4
=1.25,k4[1]=0.8125},U5={k5
=1.4,k5[1]=0.921875},U6={k6
=1.45,k6[1]=-0.921875},U7={k7
=1.55,k7[1]=0.953125},U8={k8
=1.7,k8[1]=-0.953125},U8={k9
=1.75,k9[1]=0.984375},U10={k10
=1.8,k10[1]=-1.03125},U11={k11
=1.85,k11[1]=1.015625},U12={k12
=1.9,k12[1]=-1.078125},U13={k13
=1.95,k13[1]=1.03125},U14={k14
=-0.55,k14[1]=-1.40625},U15={k15
=-0.6,k15[1]=1.078125},U16={k16
=-0.65,k16[1]=-1.15625},U17={k17
=-0.8,k17[1]=1.109375},U18={k18
=-0.85,k18[1]=-1.21875},U19={k19
=-0.9,k19[1]=1.125},U20={K20
=-0.95,k20[1]=1.125},U21={k21
=-1.1,k21[1]=1.5625},U22={k22
=-1.25,k22[1]=-1.25},U23={k23
=-1.4,k23[1]=-1.28125},U24={k24
=-1.45,k24[1]=1.21875},U25={k25
=-1.5,k25[1]=-1.3 125},U26={k26
=-1.55,k26[1]=1.25},U27={k27
=-1.6,k27[1]=-1.4375},U28={k28
=-1.7,k28[1]=1.3125},U29={k29
=-1.75,k29[1]=-1.46875},U30={k30
=-1.8,k30[1]=1.34375}。在本例中利用物理噪声芯片产生的随机整数(随机整数范围是0~1)来确定对各维混沌映射每次迭代进行精度补偿的补偿参数。
产生密钥流的算法如下(1)初始化i=0,随机产生Logistic映射的初始值y1,随机产生30维混沌映射的初始值x~1,i,x~2,i,···,x~30,i,]]>初始化误差Δx~1,i=0,Δx~2,i=0,···,Δx~30,i=0;]]>(2)j=1;(3)在精度16比特条件下,计算(8)式的第一部分(1-ϵ)·f(x~j,i)+ϵ2[f(x~j-1,i)+f(x~j+1,i)],]]>得到一个30比特的状态变量的绝对值和1比特符号位,把它的前15个比特数值和1比特符号位赋给中间变量xj,i+1′,把它的后15个比特数值和1比特符号位赋给中间变量Δxj,i+1′;(4)利用物理噪声芯片产生一个0~1的随机整数,并把它赋给l,从补偿参数集合Uj中选出补偿参数kj[l]作为对混沌映射第i次迭代进行精度补偿的补偿参数;(5)计算(8)式的第二部分kj[l]·Σk=130Δx~k,i·eλk]]>的值,得到一个30比特的数值和1比特的符号位,把它的前15比特数值和1比特符号位赋给中间变量Δxi+1″,丢弃它的后15比特数值;(6)计算Δxj,i+1′+Δxj,i+1″的值,如果除符号位外该计算值超过15比特,则将其超过部分的值与xj,i+1′相加得 并将未超出部分的值(连同符号位)赋给 否则,将该计算值直接赋给 并将xj,i+1′赋给 (7)根据编码规则sj,i+1=[256(1-arcosx~j,i+1/π),]]>对 进行编码得到sj,i+1;(8)如果j<30,则j=j+1转到(4),否则继续;(9)依据维数从低到高顺序输出30维混沌映射状态变量的编码序列,得到加/解密所需的密钥;(9)如果密钥序列的累计长度达到要求的数值,则结束退出,否则,i=i+1,转到(2)。
实例四在本实例中使用一个80维混沌映射 设计密码系统。精度补偿混沌映射的运算精度为33比特,每一维混沌映射使用一个补偿参数进行精度补偿,根据(3)式得第j维混沌映射的补偿运算式为x~j,i+1+Δx~j,i+1=fj(x~j,i)+kj·Δx~j,i·eλj---(10)]]>其中λj是第j维混沌映射的Lyapunov指数,λj=ln2;kj是对第j维混沌映射进行补偿的补偿参数,各维混沌映射的补偿参数集合分别是U1={k1=0.79687},U2={k2=-0.796875},U3={k3=0.8125},U4={k4=-0.8125},U5={k5=0.921875},U6={k6=-0.921875},U7={k7=0.953125},U8={k8=-0.953125},U9={k9=0.984375},U10={k10=-1.03125},U11={k11=1.015625},U12={k12=-1.078125},U13={k13=1.03125},U14={k14=-1.40625},U15={k15=1.078125},U16={k16=-1.15625},U17={k17=1.109375},U18={k18=-1.21875},U19={k19=1.125},U20={k20=1.125},U21={k21=1.5625},U22={k22=-1.25},U23={k23=-1.28125},U24={k24=1.21875},U25={k25=-1.3125},U26={k26=1.25},U27={k27=-1.4375},U28={k28=1.3125},U29={k29=-1.46875},U30={k30=1.34375},U31={k31=-1.484375},U32={k32=1.375},U33={k33=-1.5},U34={k34=1.40625},U35={K35=-1.515625},U36={k36=1.5},U37={k37=-1.578125},U38={k38=-1.578125},U39={k39=-1.59375},U40={k40=1.59375},U41={k41=-1.609375},U42={k42=1.609375},U43={k43=-1.625},U44={k44=1.625},U45={k45=-1.65625},U46={k46=1.65625},U47={k47=-1.671875},U48={k48=1.703125},U49={k49=-1.6875},U50={k50=1.71875},U51={k51=-1.703125},U52={k52=1.78125},U53={k53=-1.71875},U54={U54=1.796875},U55={k55=-1.78125},U56={k56=1.828125},U57={k57=-1.796875},U58={k58=1.84375},U59={k59=-1.8125},U60={k60=1.859375},U61={k61=-1.859375},U62={k62=1.90625},U63={k63=-1.890625},U64={k64=1.921875},U65={k65=-1.921875},U66={k66=1.96875},U67={k67=-1.96875},U68={k68=1.8671875},U69={k69=-1.984375},U70={k70=1.8828125},U71={k71=-1.8515625},U72={k72=1.8984375},U73={k73=-1.8671875},U74={k74=1.9140625},U75={k75=-1.9296875},U76={k76=1.9296875},U77={k77=-1.9453125},U78={k78=1.9609375},U79={k79=-1.9765625},U80={k80=1.9765625}利用顺序表控制这80维混沌映射的输出顺序。表1(a)是控制80个混沌映射状态编码序列输出顺序的顺序表,第一行表示混沌映射的编号,第二行表示对应混沌映射的输出顺序。表1(b)是顺序表的原始状态。Logistic混沌映射被用于产生控制顺序表变换的伪随机数,Logistic混沌映射为yi+1=g(yi)=1-2yi2.]]>根据有限群上随机行走理论,设计如下的顺序表变换规则当yi≥0时对顺序表进行(1,2)轮换操作(如表1(c)所示);
当yi<0时对顺序表进行(1,2,…,80)轮换操作(表1(d)所示)。
设顺序表初始化次数为Nord,顺序表初始化算法如下(1)初始化j=0,随机产生控制顺序变换的混沌映射初始值yj,此时顺序表为原始状态;(2)根据混沌映射yj+1=g(yj)计算得到yj+1;(3)如果yj+1≥0,则对顺序表进行(1,2)轮换操作,否则对顺序表进行(1,2,…,80)轮换操作;(4)如果j<Nord,则j=j+1,返回(2);否则结束顺序表初始化过程,得到初始顺序表。
产生密钥流的算法如下(1)设定的顺序表初始化次数Nord=150和控制顺序表变换的上述Logistic混沌映射,调用顺序表初始化算法,得到初始顺序表。
(2)初始化i=0,随机产生Logistic映射的初始值yi,随机产生80维混沌映射的初始值x~1,i,x~2,i,···,x~80,i,]]>初始化误差Δx~1,i=0,Δx~2,i=0,···,Δx~80,i=0;]]>(3)j=1;(4)在精度33比特条件下,计算(10)式的第一部分fj(x~j,i)=1-2·x~j,i2,]]>得到一个64比特的状态变量的绝对值和1比特符号位,把它的前32个比特数值和1比特符号位赋给中间变量xj,i+1′,把它的后32个比特数值和1比特符号位赋给中间变量Δxj,i+1′;(5)计算(10)式的第二部分 的值,得到一个64比特的数值和1比特的符号位,把它的前32比特数值和1比特符号位赋给中间变量Δxi+1″,丢弃它的后32比特数值;(6)计算Δxj,i+1′+Δxj,i+1″的值,如果除符号位外该计算值超过32比特,则将其超过部分的值与xj,i+1′相加得 并将未超出部分的值(连同符号位)赋给 否则,将该计算值直接赋给 并将xj,i+1′赋给 (7)根据编码规则sj,i+1=[256(1-arcosx~j,i+1/π)],]]>对 进行编码得到Sj,i+1;(8)如果j<80,则j=j+1转到(4),否则继续;(9)根据yi和Logistic混沌映射yi+1=g(yi)=1-2yi2]]>产生控制顺序表变换的伪随机数yi+1;(10)如果yi+1≥0,则对当前顺序表进行(1,2)轮换操作,得到新的顺序表,否则对当前顺序表进行(1,2,…,80)轮换操作,得到新的顺序表;(11)根据顺序表输出80维混沌映射状态变量的编码序列,得到加/解密所需的密钥;(12)如果密钥序列的累计长度达到要求的数值,则结束退出,否则,i=i+1,转到(3)。
编号 1 2 3 4...... 78 79 80顺序Ord1Ord2Ord3Ord4...... Ord78Ord79Ord80表1(a)控制80个混沌映射输出顺序的顺序表编号1234 ...... 787980顺序1234 ...... 787980表1(b)顺序表初始状态编号 1 2 3 4...... 78 79 80顺序 Ord2Ord1Ord3Ord4...... Ord78Ord79Ord80表1(c)表1(a)经过(1,2)轮换得到的顺序表编号1 2 3 4...... 78 79 80顺序 Ord2Ord3Ord4Ord5...... Ord79Ord80Ord1表1(d)表1(a)经过(1,2,3,…,80)轮换得到的顺序表编号 1 2 3 4...... n-2n-1 n顺序 Ord1Ord2Ord3Ord4...... Ordn-2Ordn-1Ordn表2(a)控制n维混沌映射输出顺序的顺序表编号1234 ...... n-2 n-1n顺序1234 ...... n-2 n-1n表2(b)顺序表初始状态编号1 2 3 4...... n-2 n-1 n顺序 Ord2Ord1Ord3Ord4...... Ordn-2Ordn-1Ordn表2(c)表2(a)经过(1,2)轮换得到的顺序表编号 1 2 3 4...... n-2 n-1 n顺序 Ord2Ord3Ord4Ord5...... Ordn-1OrdnOrd1表2(d)表2(a)经过(1,2,3,…,n)轮换得到的顺序表从上述说明中可以得知以下几点(1)、n维混沌映射的状态变量的初始值可以是n个随机数,也可以是n个固定的数。
(2)、n个初始混沌映射状态变量编码的输出顺序既可以随机设定,也可以预先选择一个特定的输出顺序。
(3)、根据n维混沌映射Xi+1=F(Xi)(i=0,1,2,...)的性质和计算精度L+1确定补偿参数集合,使得有限精度混沌映射可以达到该精度下的所有状态而且能够足够好地逼近无限精度下混沌迭代映射状态变量的理论概率分布;在使用补偿参数对混沌映射进行补偿时,既可以是随机地选择补偿参数,也可以根据每个补偿参数对应的周期环在相空间中的分布规律选择补偿参数,使得混沌映射状态变量能够在不同周期环间切换,从而增加数字化混沌系统的周期。
(4)、本发明可以根据n维混沌映射状态变量的概率分布设定编码规则,使得n维混沌映射状态变量序列的编码序列能够具有均匀、独立分布性质。
(5)、采用动态变换的顺序表控制向量Si+1各个分量的输出顺序,表2(a)是控制n维混沌映射状态变量的编码向量串行输出顺序的顺序表,第一行表示混沌映射的编号,第二行表示对应混沌映射的输出顺序,表2(b)是原始顺序表;当控制顺序表动态变换的随机数yi(i=0,1,...)大于等于预先设定的阈值c时,对顺序表进行变换操作P1,否则对顺序表进行变换操作P2;(6)、控制顺序表动态变换的随机数是由一个混沌映射产生的;设控制顺序表动态变换的混沌映射为yi+1=g(yi)(i=0,1,...)yi(i=0,1,...)大于等于预先设定的阈值c时,对顺序表进行变换操作P1,否则对顺序表进行变换操作P2。
(7)、顺序表变换操作P1是(1,2)轮换(如表2(c)所示),变换操作P2是(1,2,…,n)轮换(如表2(d)所示)。
权利要求
1.一种基于精度补偿的混沌密码的方法,其步骤包括(1)设i=0,并给n维混沌映射的状态变量赋初始值 确定对n个初始混沌映射状态变量进行编码后的输出顺序,设初始补偿误差 为零;(2)在精度为L+1比特的条件下,计算n维混沌映射 得到精度为2L比特的状态变量的绝对值和1比特符号位;把其前L比特的数值和1比特符号位赋给中间变量Xi+1′,并把其后L比特的数值和1比特符号位赋给中间变量ΔXi+1′;(3)从第j维混沌映射的补偿参数集合Uj中选取补偿参数kj,i,其中j=1,2...n,集合Uj中元素个数记为mj,根据(II)式计算第i步补偿函数值向量Hi,该向量中的每个元素都是用一个2L比特的绝对值和1比特符号位来表示;把向量Hi中每一元素的前L比特数值和1比特符号位赋给中间变量ΔXi+1″;(4)计算表达式ΔXi+1′+ΔXi+1″的值,如果除符号位外该计算值超过L比特,则将其超过部分的值与Xi+1′相加得 并将未超出部分的值连同符号位赋给 否则,将该计算值直接赋给 并将Xi+1′赋给 (5)对n维混沌状态变量 进行编码,得到向量Si+1;(6)串行地输出向量Si+1中的每一分量,得到相应的密钥序列;(7)如果密钥序列的累计长度达到要求的数值,则结束退出,否则,设i=i+1,转到步骤(2);进行计算时需要使用补偿函数Hi 对有限精度所产生的误差进行补偿,补偿误差记为 其中hj(·)是对第j维混沌映射fj(X)使用的补偿函数,kj,i是对第j维混沌映射fj(X)第i次迭代使用的补偿参数, 是描述第j维混沌映射fj(X)沿第k维方向发散速度的值。
2.根据权利要求1所述的方法,其特征在于步骤(1)中,n维混沌映射的状态变量的 初始值为n个随机数,或为n个固定的数;n个初始混沌映射状态变量编码的输出顺序随机设定,或选择一个固定的输出顺序。
3.根据权利要求1所述的方法,其特征在于步骤(3)中,补偿参数为随机选择的参数,或根据每个补偿参数对应的周期环在相空间中的分布规律选择的参数。
4.根据权利要求1所述的方法,其特征在于步骤(5)根据n维混沌映射状态变量的概率分布进行编码。
5.根据权利要求1所述的方法,其特征在于步骤第(6)采用动态变换的顺序表控制向量Si+1各个分量的输出顺序。
6.根据权利要求5中所述的方法,其特征在于控制顺序表动态变换的随机数是由一个混沌映射产生的;设控制顺序表动态变换的混沌映射为yi+1=g(yi)(i=0,1,...)yi(i=0,1,...)大于等于预先设定的阈值0时,对顺序表进行变换操作(1,2)轮换,否则对顺序表进行变换操作(1,2,...,n)轮换。
全文摘要
本发明公开一种基于精度补偿的混沌密码的方法,该方法在不增加精度的情况下可以增加序列的周期,克服数字混沌序列零分布区间的出现,使混沌序列具有良好的性质。利用基于精度补偿的低维混沌动力系统进行迭代计算,补偿参数随机选择或根据其对应的周期环在相空间中的分布规律选择参数,增加序列的周期,克服数字混沌序列零分布区间的出现,改善数字混沌序列性质的目的。本发明产生的密钥序列具有串分布均匀、随机统计特性良好、相邻密钥相关性小、长周期和高复杂度等特点,密码系统的混淆与扩散性能良好;并且,该密码系统的工作密钥空间巨大,足以抵抗穷举密钥攻击。
文档编号H04L9/28GK1625102SQ20041006128
公开日2005年6月8日 申请日期2004年12月6日 优先权日2004年12月6日
发明者胡汉平, 吴晓刚, 王祖喜, 曾江卫, 许娅, 周麟, 刘双红 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1