专利名称:可控自然数混沌密码序列产生方法及数字芯片核的制作方法
技术领域:
本发明属于信息领域信息安全的加密序列产生方法与数字芯片核技术,具体涉及一种可控自然数混沌密码序列产生方法及数字芯片核。
背景技术:
随着移动通信、无线通信的发展,嵌入式系统和数字芯片产品越来越得到广泛应用,相应的信息安全越来越得到重视。Shannon证明了只有一次一密钥是完全安全的,即在加密过程中随时改变加密密钥而不是固定密钥,采用随机序列的序列密码正好可以实现这种加密方式。采用序列密码的关键是序列的产生和传递。如果研究采用少量的参数表示序列,则序列的传递就只要传递这少量的参数,而采用序列值作为每次加密的密钥,从而方便实现安全加密通信。真正的随机序列不能获得,一般采用伪随机序列。在信息通信与信息加密中,伪随机序列具有广泛的应用。
混沌序列具有伪随机特性,对初始条件敏感以及具有白噪声的统计特性。基于无限精度的混沌序列具有容易生成,但对处理器要求具有浮点处理能力。采用有限精度的混沌迭代使得混沌序列周期短,失去了混沌的伪随机特性。
在嵌入式系统中或数字芯片中,由于对处理浮点数的能力和速度限制,特别需求一种适合的混沌计算迭代方法,该算法采用整数或自然数进行迭代计算,避免浮点运算,适合位运算的特点。发明此类的自然数混沌序列产生方法,必将为移动通信、无线通信等嵌入式数字产品的信息安全加密提供简单方便安全性高的手段。将自然数混沌序列产生方法用硅知识产权芯片核实现,可以方便与其它数字系统集成。
发明内容
为了研究一种适合嵌入环境或数字芯片处理的自然数运算或数字化运算,产生自然数混沌序列,该发明的目的在于提供一种可控自然数混沌密码序列产生方法及数字芯片核,它首先提出了一种自然数迭代的计算方法,进而在此基础上实现自然数混沌序列,并完成自然数混沌密码序列产生方法的硅芯片核。
为了实现上述发明目的,本发明所采用的技术方案本发明提出的可控自然数混沌密码序列产生方法包括以下步骤1.采用自然数迭代的类混沌序列算式实现自然数序列的迭代根据动力学系统Logistic映射的迭代公式,由无限精度的迭代推导出了有限精度的自然数迭代算式。可变字节数的可控自然数序列迭代方法是采用形如下算式zk+w=4zk-2azk2,]]>其中a=28q-1,而q=2,3…,表示所取的字节数;自然数序列的取值范围通过参数a或q的取值决定zk∈(0,2a)=(O,28q),其中k=0,1,2,…,当w=1时则变为单步迭代式zk+1=4zk-2azk2.]]>通过三个参数初始值z0、q和步长w就确定了整个自然数序列。在嵌入系统或数字芯片处理中,根据选定的w、所取的初始值z0和q,只进行乘法zk×zk、求补(即求负数-zk2)、移位(即除以a2=28q-2]]>及zk乘以4的操作4zk)、加法4zk+(-2azk2)]]>运算就可以迭代计算获得整个自然数序列{zk|zk+w=4zk-2azk2,a=28q-1,k=0,1,2,...}.]]>2.采用周期延拓扩展的方法使得序列迭代中的零值消失由于自然数表示的有限精度,导致迭代所得序列周期变短,迭代中出现停止迭代等现象。本发明提出了周期延拓扩展的方法,即采用非零值区的值代替出现零值区的值继续迭代zk+hTn=zk,]]>其中k为序列的序号,k∈[1,Tn]Tn为混沌序列连续非零值的最大长度;h为序列的循环周期序,h=0,1,2,…。
3.采用三个以上的自然数序列的加扰获得自然数混沌序列为了延长序列周期,本发明采用了三个以上自然数序列进行同步二进制位乘加扰。多个自然数序列{pi(k)|pi(k)=zk,序列编号i≥3;k=0,1,2,…)通过二进制位乘加扰后获得新的自然数混沌序列p1(k)p2(k)p3(k)…p(k),k=0,1,2,…。其中p1(k)、p2(k),p3(k),…为由上述l、2步骤产生的序列,p(k)即为可控自然数混沌密码序列。通过选定字节参数q和调整控制各自然数序列初始参数z0(z01,z02,z03,…)和步长w(w1,w2,w3,…)w(w1,w2,w3,…)就可以获得不同的自然数类混沌序列。
该自然数混沌序列产生方法可以通过16位,32位嵌入系统方便实现,也可方便通过数字芯片硬件实现。
本发明进一步提出了一种为实现上述自然数混沌序列产生方法的数字芯片核,芯片采用了硬件描述语言实现了上述自然数混沌序列产生方法。其组成包括三个周期延拓自然数类混沌单序列发生器模块和钟控三异或门模块。其中的周期延拓自然数类混沌单序列发生器模块组成又包括自然数迭代模块、钟控寄存器和数据选择器。其中的自然数迭代模块完成zk+1=4zk-2azk2]]>的运算;钟控寄存器在时钟沿完成对预置的保存;数据选择器完成非零数据的输出。钟控三异或门在时钟沿完成并输出三个输入数据的异或运算结果。该芯片核具有三个数据输入端口A、B、C(分别用以输入z01、z02、z03三个初始值)和一个输出端口Z(用以输出p(k)),三个控制端口分别是时钟(CLK)、预置(SET)、清零端口(CLR)。该芯片核可以通过预置端(SET)重新设置初始迭代值(z01、z02、z03),可以通过清零端(CLR)清除迭代值。通过改变三个初始值(z01、z02、z03)获得不同的自然数混沌序列。输出序列对参数改变具有敏感性。
本发明的有益效果是1、采用自然数迭代的类混沌序列算式减少了处理器或数字芯片处理浮点的复杂要求。采用乘法、求补、移位、加法等简单运算即可实现自然数序列的迭代。迭代数的范围由参数调整。通过初始值控制确定了整个迭代序列。该迭代方法具有对初始值敏感的特点。
2、采用周期延拓扩展的方法使得序列迭代中的零值消失。该方法从而使得自然数迭代序列任意长,克服了有限精度迭代中的迭代终止现象。为产生序列提供了手段。
3、采用三个以上的自然数序列进行加扰。将三个以上的自然数序列值同步进行二进制异或运算,获得新的自然数混沌序列值。该方法具有参数少,安全性高的特点。
4、发明的自然数混沌序列数字芯片核既可以采用CPLD/FPGA实现形成数字芯片,也可以方便地与大规模数字系统集成。
附图1是序列产生的原理图。在图1中,各数字的含义如下1.初始自然数1;2.初始自然数2;3.初始自然数3;4.预置信号;5.清零信号;6.同步时钟信号;7.含有周期延拓的自然数混沌发生器1;8.含有周期延拓的自然数混沌发生器2;9.含有周期延拓的自然数混沌发生器3;10.二进制乘积加扰(异或)运算;11.混沌序列附图2为自然数迭代周期延拓的序列结果(图(a)、(b)、(c),初始参数分别为9、10、11)及其三个序列加扰后的自然混沌序列(图(d))的效果例图。
附图3为采用图2所示的周期延拓加扰序列计算到长度至105所得混沌序列的例图(初始参数分别为9、10、11)。
附图4为自然数混沌产生方法的数字硅芯片核符-号。具有三个数据输入端口A
、B
、C
和一个输出端口Z
,三个控制端口(时钟CLK、预置SET、清零CLR)。该芯片核可以通过SET预置初始迭代值A
、B
、C
,可以通过CLR清除迭代值。通过改变三个初始值A
、B
、C
获得不同的自然数混沌序列Z
。
附图5为附图4所述芯片核的内部组成,由三个相同的myiterate和一个my3xor模块组成。一个myiterate模块见附图6。My3xor是钟控三异或门,在时钟沿完成三个输入信号的异或运算。
附图6为一个myiterate模块的内部组成,又由con_reg、iterate和comp三个模块组成。其中的con_reg是钟控寄存器,当set有效时对预置值的保存;其中的iterate是采用乘法、求补、移位、加法等运算实现迭代算式zk+1=4zk-2azk2]]>功能;其中的comp是数据比较器,当din
=0时,dout
输出dkep
的值,否则dout
输出din
的值。
附图7为芯片核的仿真图。A、B、C为预置初始值,Z为芯片核产生的序列输出值。CLK为芯片核工作的时钟信号;SET为初始值预置信号;CLR为清除芯片核输出信号。
具体实施例方式参见图1,本发明方法可由此图体现该方法是通过预置初始自然数参数,即图1中初始自然数1、初始自然数2、初始自然数3,在同步时钟信号6作用下进行迭带产生自然数混沌序列11。当使能预置信号4时,可以改变初使自然参数1、2或3,再当预置信号4去掉后的下一时钟开始按照新的初始值1、2、3进行迭代运算,产生新的混沌序列11。当使能清零信号5时,自然数混沌序列算法的输出11变为零值。由于含有周期延拓,自然数混沌发生器7、8、9不会出现零值。通过不同初始自然参数1、2、3的组合,就可以获得不同自然数混沌密码序列11,且序列11对初始参数1、2、3的改变具有敏感性。
图5是图1的具体实现。由三个相同的myiterate和一个my3xor模块组成。一个myiterate模块见附图6。My3xor是钟控三异或门,在时钟沿完成三个输入信号的异或运算。附图6为一个myiterate模块的内部组成,又由con_reg、iterate和comp三个模块组成。其中的con_reg是钟控寄存器,当set有效时对预置值的保存;其中的iterate是采用乘法、求补、移位、加法等运算实现迭代算式zk+1=4zk-2azk2]]>功能;其中的comp是数据比较器,当din
=0时,dout
输出dkep
的值,否则dout
输出din
的值。
基于周期延拓的嵌入式16bits整数混沌密码序列产生方法描述(行为级整体描述)如下(1)设定初始参数z0(z01,z02,z03)(即图1中1、2、3)、w(w1,w2,w3),j=1,以及所求序列长度n;(2)若j==n算法结束;否则j+1j,继续;(3)令i=0;(注以下(4)~(11)步计算完成图1中7、8、9)(4)令z(1)为z(1)=z01;k=1;(5)若k==w,t3z(j),1k转(9);否则t3z(j-1),继续;
(6)计算z(j-1)左移2位t1;(7)计算z(j-1)*z(j-1)并右移14位t2;(8)计算t1-t2t3,k=k+1,转(5)(9)计算z(j)pi(j);(10)周期延拓判断a.若pi(j)=0或65536,记录Tn,置周期延拓标志signal=1;否则清周期延拓标志signal=0;继续b;b.若signal=1,则pi(j-Tn+1)pi(j);(11)i=i+1,若i≠3,转(4),否则继续下步(12);(12)p1(j)p2(j)p3(j)p(j);(注该步完成图1中10、11)(13)转步骤(2)。
将上述算法采用硬件描述语言在EDA(Electronic Design Automation)中进行综合,产生了硅芯片核。并进行功能仿真。
按照上述算法(4)~(11)步骤获得的例图如图2(a)、图2(b)、图2(c);步骤(12)获得的例图如2(d)和图3。图4为采用硬件描述语言在EDA中实现的上述算法的芯片核符号。图7为该算法芯片核功能仿真图。
权利要求
1.一种可控自然数混沌密码序列产生方法,所述方法包括以下步骤(1)采用自然数迭代的类混沌序列算式实现自然数序列的迭代通过字节的改变获得不同范围内的自然数序列,通过初始参数控制获得不同的自然数序列;可控自然数序列迭代方法是采用以下类混沌序列算式zk+w=4zk-2azk2,]]>其中a=28q-1,而q=2,3...,表示所取的字节数;自然数序列的取值范围通过参数a或q的取值决定zk∈(0,2a)=(0,28q),其中k=0,1,2,...,当w=1时则变为单步迭代式zk+1=4zk-2azk2;]]>通过三个参数初始值z0、q和步长w就确定了整个自然数序列;(2)采用周期延拓扩展的方法使得序列迭代中的零值消失采用非零区的序列进行周期延拓扩展覆盖迭代中的零值区域,获得长自然数序列,即zk+hTn=zk,]]>其中k为序列的序号,k∈[1,Tn];h为序列的循环周期序,h=0,1,2,...;Tn为序列迭带连续非零区的最大长度;(3)采用三个以上的自然数序列的加扰获得自然数混沌序列即p1(k)p2(k)p3(k)…p(k),其中p1(k)、p2(k),p3(k),…为由上述(2)步骤产生的序列,p(k)即为可控自然数类混沌密码序列,通过选定字节参数q和调整控制各自然数序列初始参数z0(z01,z02,z03,…)和步长w(w1,w2,w3,…)就可以获得不同的自然数类混沌序列。
2.一种实现权利要求1所述的可控自然数混沌加密序列产生方法的数字芯片核,其特征在于数字芯片核采用硬件描述语言实现权利要求1所述的可控自然数混沌加密序列产生方法,其组成包括三个周期延拓自然数类混沌单序列发生器模块和钟控三异或门模块;其中的周期延拓自然数类混沌单序列发生器模块组成又包括自然数迭代模块、钟控寄存器和数据选择器;其中的自然数迭代模块完成zk+1=4zk-2azk2]]>的运算;钟控寄存器在时钟沿完成对预置的保存;数据选择器完成非零数据的输出;钟控三异或门在时钟沿完成并输出三个输入数据的异或运算结果;该芯片核具有三个数据输入端口和一个输出端口,三个控制端口分别为时钟、预置、清零端口,进行预置初始迭代值,清除迭代值,改变三个初始值,获得不同的自然数混沌密码序列,自然数混沌序列加扰的各自然数序列初始参数作为加密密钥用于信息安全。
全文摘要
一种用于可控自然数混沌密码序列产生的方法及数字芯片核,它首先通过一种自然数迭代的计算方法产生可控自然数序列,在用周期延拓扩展算法产生可控自然数混沌序列,进而在此基础上采用三个以上的自然数混沌序列进行二进制乘法(异或)加扰运算产生自然数混沌长序列,并采用硬件语言实现了自然数混沌序列发生器数字芯片核。本发明方法对初始值具有敏感性,集合了混沌技术密码算法和自然数运算简单的优点,可广泛用于扩频及数据加密、保密通信等信息安全之中。
文档编号H04L9/00GK1697366SQ200510074598
公开日2005年11月16日 申请日期2005年5月30日 优先权日2005年1月18日
发明者钟先信, 陈帅, 石军锋 申请人:重庆大学