发明名称 混沌函数的无乘除混沌加/解密方法及其电路
摘要 本发明公开了一种高速高精度混沌函数的无乘除混沌加密方法和加密电路,加密电路包括明文混沌排队-混沌异或电路和混沌序列发生器;首先将排队码与混沌信号异或,变换为nd位混沌排队码,用它作为地址码,由8个数据选择器从8×2nd位并行明文中选出8个作为1字节混沌式重排队明文,此后再与另一混沌信号异或,产生1个字节密文,2nd个cp加密8×2nd位密文;混沌序列发生器每个cp生成8×(2nd+nd)位混沌输出,其中用按位异或实现减法运算N-1-| xi|等,用减法实现乘法μi×数据;有排队码密钥、初值密钥和μ值密钥,安全性高;取nd=4,加密128位明文约需1.7μs;可用FPGA、CPLD和ASIC等实现,用于网络安全技术领域,特别是无线网络和无线传感器网络。
申请公布号 CN101232367B 申请公布日期 2010.06.30
申请号 CN200810063900.5 申请日期 2008.01.23
申请人 黑龙江大学;方倩;刘莹;方振贤 发明人 方倩;刘莹;方振贤
分类号 H04L9/00(2006.01)I;G06F17/10(2006.01)I 主分类号 H04L9/00(2006.01)I
代理机构 哈尔滨市哈科专利事务所有限责任公司 23101 代理人 刘娅
主权项 1.一种混沌函数的无乘除混沌加密方法,其特征在于:该混沌加密方法包括明文混沌排队-混沌异或方法和混沌序列生成方法两大部分;所述的明文混沌排队-混沌异或方法如下:记<maths num="0001"><![CDATA[<math><mrow><msub><mi>N</mi><mi>ra</mi></msub><mo>=</mo><msub><mi>n</mi><mi>ra</mi></msub><mo>&times;</mo><msub><mi>n</mi><mi>d</mi></msub><mo>&times;</mo><msup><mn>2</mn><msub><mi>n</mi><mi>d</mi></msub></msup><mo>,</mo></mrow></math>]]></maths>N<sub>xor</sub>=8×n<sub>d</sub>,<maths num="0002"><![CDATA[<math><mrow><msub><mi>N</mi><mi>data</mi></msub><mo>=</mo><mn>8</mn><mo>&times;</mo><msup><mn>2</mn><msub><mi>n</mi><mi>d</mi></msub></msup><mo>,</mo></mrow></math>]]></maths>K=N<sub>xor</sub>+N<sub>data</sub>;在控制电路作用下,明文N<sub>data</sub>电路由计算机按中断方式输入N<sub>data</sub>位明文;排队码密钥电路是N<sub>ra</sub>位循环右移移位寄存器,它已存入n<sub>ra</sub>组排队码密钥,它输出n<sub>d</sub>位排队码<img file="FSB00000034956400013.GIF" wi="323" he="61" />每循环周期有<img file="FSB00000034956400014.GIF" wi="114" he="45" />拍,每拍1个时钟cp;①每循环第1拍将混沌序列发生器生成的K位混沌输出Y<sub>K-1</sub>~Y<sub>0</sub>分别置入N<sub>data</sub>位移位寄存器和N<sub>xor</sub>位D锁存器,为下步作准备;②第2拍,首先将排队码变换为混沌排队码,措施是:排队码<img file="FSB00000034956400015.GIF" wi="274" he="59" />分别与N<sub>xor</sub>位D锁存器的混沌输出作按位异或运算,得出8个混沌排队码;接着按混沌排队码进行明文混沌式重排队,措施是:8个混沌排队码分别接到8排队数据选择器的地址码输入;该数据选择器数据输入接明文N<sub>data</sub>电路的N<sub>data</sub>位明文输出,该数据选择器输出端为rsh<sub>1</sub>~rsh<sub>8</sub>,于是该数据选择器按各自的混沌排队码从N<sub>data</sub>位明文中选择出8个作为1个字节混沌式重排队明文rsh<sub>1</sub>~rsh<sub>8</sub>;最后产生1个字节的密文,措施是:rsh<sub>1</sub>~rsh<sub>8</sub>接8个异或门输入端shz<sub>1</sub>~shz<sub>8</sub>;shz<sub>1</sub>~shz<sub>8</sub>与N<sub>data</sub>位移位寄存器的输出混沌信号Q<sub>10</sub>~Q<sub>17</sub>作按位异或运算,在8个异或门输出端sho<sub>1</sub>~sho<sub>8</sub>产生1个字节密文,sho<sub>1</sub>~sho<sub>8</sub>接外输出Z<sub>0</sub>~Z<sub>7</sub>;以此同时为下步作准备,措施是:该cp使排队码密钥电路和N<sub>data</sub>位移位寄存器都右移,各自形成新的输出<img file="FSB00000034956400016.GIF" wi="275" he="57" />和Q<sub>10</sub>~Q<sub>17</sub>;③第<img file="FSB00000034956400017.GIF" wi="195" he="39" />拍重复第2拍过程,在第<img file="FSB00000034956400018.GIF" wi="196" he="39" />拍,产生<img file="FSB00000034956400019.GIF" wi="54" he="39" />个串行字节形式密文,完成N<sub>data</sub>位明文的混沌加密;按同样方式对下一个N<sub>data</sub>位明文进行混沌加密;所述的混沌序列生成方法是建立在一种混沌函数f(x<sub>i</sub>)基础上,f(x<sub>i</sub>)表示为<img file="FSB000000349564000110.GIF" wi="758" he="138" />N=2<sup>K</sup>,K=正整数    式一<img file="FSB000000349564000111.GIF" wi="800" he="131" />|x<sub>i</sub>|∈[0,2N-1],|μ<sub>i</sub>|∈[0,2]    式二依据所述混沌函数f(x<sub>i</sub>)完成的混沌序列生成方法如下:取μ<sub>i</sub>≥0,存储混沌值x<sub>i</sub>的混沌锁存器由K+1个D锁存器Q<sub>K</sub>Q<sub>K-1</sub>Q<sub>K-2</sub>~Q<sub>0</sub>组成,其中Q<sub>k</sub>存x<sub>i</sub>的符号,Q<sub>K-1</sub> Q<sub>K-2</sub>~Q<sub>0</sub>存x<sub>i</sub>的绝对值|x<sub>i</sub>|;初值密钥电路存混沌锁存器初始值,μ值密钥电路存序列μ<sub>i</sub>值;前导码判定电路判定发送信号是否来到,信号未来到,开启触发器Q<sub>S</sub>=0,将混沌锁存器置入初始值;信号来到,立即置Q<sub>S</sub>=1,启动混沌序列发生器,每个时钟cp完成一次混沌函数迭代运算,生成K位混沌输出Y<sub>K-1</sub>~Y<sub>0</sub>;生成Y<sub>K-1</sub>~Y<sub>0</sub>的方法是:①按位变换电路将Q<sub>K-1</sub>和Q<sub>K-2</sub>~Q<sub>0</sub>作按位异或运算,由此执行式一的减法运算N-1-|x<sub>i</sub>|或|x<sub>i</sub>|-N,输出d<sub>K-2</sub>~d<sub>0</sub>;②移位数据选择器以μ<sub>i</sub>作为数据选择器的地址码,将数据d<sub>K-2</sub>~d<sub>0</sub>右移4μ<sub>i</sub>+10位,由此执行<img file="FSB00000034956400021.GIF" wi="494" he="64" />输出g<sub>K-12</sub>~g<sub>0</sub>;③减法电路先进行d<sub>K-2</sub>~d<sub>0</sub>减g<sub>K-12</sub>~g<sub>0</sub>=S<sub>K-2</sub>~S<sub>0</sub>,接着将减法的结果S<sub>K-2</sub>~S<sub>0</sub>用连线向左移1位,最低位置1;即D<sub>K-1</sub>接S<sub>K-2</sub>,D<sub>K-2</sub>接S<sub>K-3</sub>,…D<sub>1</sub>接S<sub>0</sub>,D<sub>0</sub>接1,由此用减法电路实现式二的乘法运算<img file="FSB00000034956400022.GIF" wi="328" he="54" /><img file="FSB00000034956400023.GIF" wi="451" he="67" />减法电路输出D<sub>K-1</sub>D<sub>K-2</sub>~D<sub>0</sub>;④在cp上升沿将减法电路输出D<sub>K-1</sub>D<sub>K-2</sub>~D<sub>0</sub>存入混沌锁存器Q<sub>K-1</sub>Q<sub>K-2</sub>~Q<sub>0</sub>,并将Q<sub>K-1</sub>存到Q<sub>K</sub>;⑤混沌输出电路用Q<sub>K</sub>和Q<sub>K-1</sub>~Q<sub>1</sub>按位异或运算及Q<sub>K</sub>取反将正负二进制数Q<sub>K</sub>Q<sub>K-1</sub>~Q<sub>0</sub>转化为正二进制数混沌输出Y<sub>K-1</sub>~Y<sub>0</sub>;对此后每个cp重复上述步骤①~⑤进行,不断产生混沌序列输出Y<sub>K-1</sub>~Y<sub>0</sub>。
地址 150080 黑龙江省哈尔滨市南岗区学府路74号