CN1556602A - 一种有限精度下的混沌密码产生方法 - Google Patents
一种有限精度下的混沌密码产生方法 Download PDFInfo
- Publication number
- CN1556602A CN1556602A CNA2003101099001A CN200310109900A CN1556602A CN 1556602 A CN1556602 A CN 1556602A CN A2003101099001 A CNA2003101099001 A CN A2003101099001A CN 200310109900 A CN200310109900 A CN 200310109900A CN 1556602 A CN1556602 A CN 1556602A
- Authority
- CN
- China
- Prior art keywords
- chaos
- chaotic
- output
- rule
- setting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种有限精度下的混沌密码产生方法,其步骤为:(1)初始化:随机产生或设定混沌***初始值xl [i],i=0;l=1,2,…,n,并设定k种不同的进制,并且k≤n;(2)根据输入的xl [i],分别采用设定的k种不同进制,得到对应进制的混沌***输出xj [i],j=1,2,…,n;(3)将不同进制的输出xj [i],统一地转换成设定的同一进制数值x′j [i];(4)根据设定的编码规则对x′j [i]进行编码得到x″j [i];(5)根据设定的输出规则将n个混沌编码序列x″j [i]进行排序后输出Mξ≡Mξ (i,j)=x″j [i],ξ=1,2,…;(6)根据设定的规则对xj [i]赋值xl [i+1]=xj [i];(7)赋值i=i+1,跳回到步骤(2),直至任务完成。本发明在不增加精度的情况下可以增加序列的周期,降低序列的相关性,增加线性复杂度,从而使混沌序列具有良好的性质。
Description
技术领域
本发明属于信息安全中的密码产生技术,具体而言是一种有限精度下的混沌密码产生方法,它利用电子计算机技术、信息编码技术和混沌***在有限精度的条件下采用多种进制的计算技术产生具有优良性质的混沌密码序列。
背景技术
随着计算机计算速度的不断提高,以及分布处理技术的日益发展,原有的一些加密算法已被破解。目前,国内所采用的加密算法大都是国外将要淘汰的低强度加密算法。由此所带来的不安全因素已成为当前阻碍经济发展和威胁国家安全的一个重要问题。
最近几年,混沌开始被应用于加密通信领域,混沌是确定性***中由于内在随机性而产生的外在复杂表现,是一种貌似随机的非随机运动。由于混沌信号具有遍历性、宽带性、类噪声、对初始条件的敏感性、快速衰减的自相关和微弱的互相关性等特点,从而为实现保密通信提供了丰富的机制和方法。
但是,数字混沌序列的生成都是在计算机或其它有限精度的器件上实现的。因此,任何混沌序列生成器都可归结为有限自动机来描述,在这种条件下所生成的数字混沌序列势必会表现出短周期、强相关以及小线性复杂度等特性退化问题,难以设计出满足密码学要求的数字混沌序列。
Li-Hui Zhou等人在文献“A New Idea of Using One-Dimensional PWLMap in Digital Secure Communications-Dual-Resolution Approach”中提出采用提高输入分辨率使其远高于输出分辨率的双分辨率方法来解决在离散混沌***中由于精度的有限性所带来的上述问题。显然该方法代价是非常大的。
发明内容
本发明的目的在于克服上述不足之处,提供一种数字混沌密码***,该***在不增加计算精度的前提下有效地解决了上述特性退化问题。
本发明提供的一种有限精度下的混沌密码产生方法,利用计算机技术、信息编码技术和数字混沌技术实现,其步骤为:
(1)初始化:随机产生或设定混沌***初始值xl[i],i=0;l=1,2,…,n,并设定k种不同的进制,并且k≤n;
(2)根据输入的xl[i],分别采用设定的k种不同进制,得到对应进制的混沌***输出xj[i],j=1,2,…,n;
(3)将不同进制的输出xj[i],统一地转换成设定的同一进制数值x′j[i];
(4)根据设定的编码规则对x′j[i]进行编码得到x″j[i];
(5)根据设定的输出规则将n个混沌编码序列xj″[i]进行排序后输出Mξ≡Mξ(i,j)=xj″[i],ξ=1,2,…;
(6)根据设定的规则对xj[i]赋值xl[i+1]=xj[i];
(7)赋值i=i+1,跳回到步骤(2),直至任务完成。
本发明利用不同进制的低维混沌动力***进行迭代计算,在不增加精度的情况下增加数字混沌序列的周期,降低数字混沌序列的相关性,增加数字混沌序列的线性复杂度,从而使混沌序列具有良好的性质。由于采用不同的进制,对同一个混沌映射过程中的进位规则也不同,并且导致做舍入处理时的舍入值也不同,由此带来的差异使同一混沌映射在不同进制下的混沌轨道也不相同,这样就可以增加数字混沌序列的周期;由于把k个混沌序列值置乱后输出,增加了线性复杂度;采用k个不同的进制,其进位规则和舍入大小程度都不相同,从而减小了混沌序列的互相关程度。
附图说明
图1为本发明的流程图。
具体实施方式
本发明采用的技术方案中,无论是步骤(2)的混沌***、还是步骤(3)中设定的同一进制,以及步骤(4)中设定的编码规则,均只需要加、解密双方事先约定,采用相同的方式处理即可,并不局限于一种特定的方式。步骤(5)所给出的实现方法实质上具有两种含意:既可以对n个混沌编码序列进行排序后列xj″[i]进行重新排序后输出;又可以按原序列直接输出。类似地,步骤(6)所给出的实现方法实质上也具有两种含意:既可以对n个混沌***的输出xj[i]序列进行重新排序后分别对应的作为其下一输入xl[i+1],此时l与j不一定相等;又可以按原输出xj[i]序列直接反馈给混沌***作为其下一个的输入xl[i+1],此时l与j相等。
下面以列举的方式对本发明作进一步详细的说明。
实例一
本方法中的混沌映射是使用简单一维logistic迭代
在计算
时,因为下次迭代的输入值仍然是64位,但是xi 2是128位,所以必须将xi 2作舍入处理,本方法中采用去尾法。(对舍入方法的说明)。
但是,为了提高加密强度和迭代周期,本发明在计算出8个不同进制对应的十进制数后,使用“洗牌算法”对8个混沌映射的输出值进行置乱,从而是8个混沌序列的值按照一个非固定的顺序输出。
在此,先介绍洗牌算法:
标准纸牌自1872年起源于美国以来,经历了一个多世纪的演变与发展,早已在全球范围内得到非常广泛的普及。它不仅流行于各种民间娱乐活动(包括赌博和占卜)中,而且也已出现在世界性的正式竞技比赛项目——桥牌之中。为了保证这些娱乐活动和比赛的公平与可信,就必须使经过洗牌之后的每张纸牌的排列顺序具有良好的“随机性”。受此启发,本发明提出了对上述码本进行动态修改的“洗牌”算法。
1.顶牌插中Dcb(q)
以q为参数,当p≥0,将序列0,1,…7中第1个和第q个码字交换。完成算法Dcb(p,q)后的结果序列为:
q,…,q-1,0,q+1,,…,7
2.切牌算法Tcb(q)
以q为边界将序列0,1,…,q-1,q,q+1,…,7前后交叉。完成算法Tcb(p)后的结果序列为:
q+1,…,7,0,1,…,q-1,q
伪随机数发生器采用的规则也是一维logistic迭代:
迭代过程中的计算采用二进制。
在该算法中根据伪随机mi决定本次码本变换采用的洗牌算法。当mi≤0的时候使用顶牌插中算法(q=[8*mi],-1<mi<1),否则使用q=1的切牌算法。
必须指出:为了叙述方便,在此不失一般性地将初始序列设定为按自然顺序排列的序列,即0,1,…,7。显然,对不同的初始序列都可做同样的处理。
其算法过程如下:
(1)随机产生输出控制规则的初始值m0和混沌***初始值xl[0],(l=1,2,…8),选定8个进制6,7,9,11,12,13,14和15;
(2)xj[i]=xl[i],(j=1,2,…8);
(3)由xj[i]根据混沌映射
分别采用不同进制计算产生混沌映射输出xj[i+1](j=1,2,…8);
(4)将不同进制的xj[i+1]转换成十进制xj′[i+1](j=1,2,…8);
(5)将xj′[i+1]按照[256*αcos(-xj′[i+1])]([]表示向下取整)编码得到xj″[i+1];
(6)由m[i]根据混沌映射
分别采用二进制计算产生混沌映射输出m[i+1],并根据m[i+1]的正负选择相应的洗牌算法将xj″[i+1]打乱顺序后输出Mξ≡Mξ(i,j)=xj″[i+1](j=1,2,…,n;ξ=1,2,…);
(7)令xl[i+1]=xj[i+1],l=j,(l,j=1,2,…8),i=i+1,跳回到步骤(2),直到任务结束;
采用二进制计算的数字混沌序列周期长度为29,685,894。其他进制的周期见下表:
进制数 | 周期长度 | 进制数 | 周期长度 |
6进制 | 92,219,771 | 12进制 | 161,223,070 |
7进制 | 89,744,731 | 13进制 | 71,878,812 |
9进制 | 24,744,402 | 14进制 | 284,595,078 |
11进制 | 23,354,844 | 15进制 | 544,406,163 |
从上面的数据可以看出:如果只基于计算机或者FPGA芯片中的二进制进行一个混沌映射计算,其周期除了比九进制和11进制大以外,远小于其他进制的周期。
本方法中采用8个混沌映射,如果这8个混沌映射和伪随机数产生全部采用二进制计算,那么最终输出的数字混沌序列的周期为:29685894和Tα[i](码本变换周期)的最小公倍数。而采用本方法的最终输出的数字混沌序列的周期为:29685894、92219771、89744731、24744402、23354844、161223070、71878812、284595078、544406163和Tα[i]的最小公倍数,这是一个天文数字,远远大于只采用二进制的方法的周期。
实例二
还可以采用下面的方法增加数字混沌序列的周期和线性复杂度:采用循环移位的方法将不同进制的迭代值进行交换,然后再进行迭代计算。其算法描述如下:
(1)随机产生输出控制规则的初始值m0和混沌***初始值
xl[0],(l=1,2,…8),选定8个进制12、13、14、15、28、29、30和31;
(2)xj[i]=xl[i],j=l+1,(l=1,2,…7),当l=8时,j=1;
(3)由xj[i]根据混沌映射
分别采用不同进制计算产生混沌映射输出xj[i+1](j=1,2,…8);
(4)将不同进制的xj[i+1]转换成十进制xj′[i+1](j=1,2,…8);
(5)将xj′[i+1]按照[256*αcos(-xj′[i+1])]([]表示向下取整)编码得到xj″[i+1];
(6)伪随机数发生器根据m[i]和分段线性混沌映射:
其中p1=0.29,p2=0.5,p3=0.7产生m[i+1],并根据m[i+1]的正负选择相应的洗牌算法将xj″[i+1]打乱顺序后输出Mξ≡Mξ(i,j)=xj″[i+1](j=1,2,…,n;ξ=1,2,…);
(7)令xl[i+1]=xj[i+1],l=j,(l,j=1,2,…8),i=i+1,跳回到步骤(2),直到任务结束;
对第(2)步的说明:在i时刻8个进制的迭代输出值分别为x1[i]、x2[i]……x8[i],实例一中i+1时刻,8个不同进制在i+1时刻的混沌迭代输入值分别为:x1[i]、x2[i]……x8[i],即xj[i+1]=xj[i](j=1,2,…8),在实例二中i+1时刻,8个不同进制的混沌迭代的输入值不再为:xl[1]、xi[2]……xi[8],而是xj[i+1]=xl[i],j=(l+1)mod8+1,(j,l=1,2…8)。其中循环移位只是其中的一种方法,还可以采用其他的交换方式。
实例三
由于现有的微处理器和硬件算术单位都是基于二进制计算的,所以在实例一中实现M进制数字混沌映射的时候必须采用FPGA技术实现M进制的算术运算,其中乘法器的设计需要大量的硬件资源。而现有的基于二进制的硬件乘法器,在设计方法上相当成熟,在算法上相当优化。如果能够将现有的基于二进制的硬件乘法器和M进制运算结合起来,那么就能在降低设计难度的同时减少硬件资源。
所以可以在计算混沌映射采用二进制计算,然后将得到的结果xk+1转换为M进制数x′k+1,然后再将M进制数x′k+1转换为二进制x″k+1。
因为N进制的进位规则和二进制是不同的,导致进行舍入处理时的舍入精度和二进制也是不同的,所以在有限精度的前提下x′k+1≠x″k+1,而xk+1-x″k+1可以看出是一种随机扰动。这种改进同样在不提高数字化混沌映射数值精度的情况下增加了序列的周期。最后再将产生的8个混沌迭代值置乱后依次输出,可以增加混沌序列的线性复杂度和降低混沌序列的相关性。
其算法描述如下:
(1)随机产生输出控制规则的初始值m0和混沌***初始值xl[0],(l=1,2,…8),选定8个进制60、61、62、63、124、125、126和127;
(2)xj[i]=xl[i],(j=1,2,…8);
(3)由xj[i]根据分段线性混沌映射:
其中p1=0.29,p2=0.5,p3=0.7采用二进制计算产生混沌映射输出xj[i+1](j=1,2,…8),再将xj[i+1]分别转换为对应的进制xj k[j][i+1],(j=1,2,…8),k[1],k[2],…k[8]依次为步骤(1)中选定的8个进制,再将xj k[j][i+1]分别转换为对应的xj[i+1];
(4)将不同进制的xj[i+1]转换成十进制xj′[i+1](j=1,2,…8);
(5)将xj′[i+1]按照[256*αcos(-xj′[i+1])]([]表示向下取整)编码得到xj″[i+1];
(6)伪随机数发生器根据m[i]和
并根据m[i+1]的正负选择相应的洗牌算法将xj″[i+1]打乱顺序后输出Mξ≡Mξ(i,j)=xj″[i+1](j=1,2,…,n;ξ=1,2,…);
(7)令xl[i+1]=xj[i+1],l=j,(l,j=1,2,…8),i=i+1,跳回到步骤(2),直到任务结束;
需要进一步说明如下二点:
(1)在本方法的具体实现的过程中选用混沌映射
和分段线性混沌映射,对其他的混沌映射也可以使用上述方法。
(2)在本方法中的每个具体实现中都采用了8个具体的进制,实际上对于任意进制都可以采用。但是对于混沌迭代式,有些进制的混沌性质有所退化,所以建议不采用这些进制。
实例四
还可以采用下面的方法增加数字混沌序列的周期和线性复杂度:采用洗牌的方法将不同进制的迭代值进行交换,然后再进行迭代计算,其算法描述如下:
(1)随机产生输出控制规则的初始值m0和混沌***初始值
xl[0],(l=1,2,…8),选定8个进制12、13、14、15、28、29、30和31;
(2)由xl[i]根据分段线性混沌映射:
其中p1=0.29,p2=0.5,p3=0.7
采用二进制计算产生混沌映射输出xj[i](j=1,2,…8)
(3)将不同进制的xj[i]转换成十进制xj′[i](j=1,2,…8);
(4)将xj′[i]按照[256*αcos(-xj′[i])]([]表示向下取整)编码得到xj″[i];
(5)将xj″[i]顺序输出;
(6)伪随机数发生器根据m[i]和分段线性混沌映射:
其中p1=0.29,p2=0.5,p3=0.7产生m[i+1],并根据m[i+1]的正负选择相应的洗牌算法将xj[i]打乱顺序后对xl[i+1]赋值:xl[i+1]=xj[i],j为洗牌算法前的码本地址,l为洗牌算法后的码本地址;
(7)i=i+1,跳回到步骤(2),直到任务结束;
Claims (3)
1、一种有限精度下的混沌密码产生方法,利用计算机技术、信息编码技术和数字混沌技术实现,其步骤为:
(1)初始化:随机产生或设定混沌***初始值xl[i],i=0;l=1,2,…,n,并设定k种不同的进制,并且k≤n;
(2)根据输入的xl[i],分别采用设定的k种不同进制,得到对应进制的混沌***输出xj[i],j=1,2,…,n;
(3)将不同进制的输出xj[i],统一地转换成设定的同一进制数值x′j[i];
(4)根据设定的编码规则对x′j[i]进行编码得到x″j[i];
(5)根据设定的输出规则将n个混沌编码序列x″j[i]进行排序后输出Mξ≡Mξ(i,j)=x″j[i],ξ=1,2,…;
(6)根据设定的规则对xj[i]赋值xl[i+1]=xj[i];
(7)赋值i=i+1,跳回到步骤(2),直至任务完成。
2、根据权利要求1所述的方法,其特征在于:步骤(5)采用以下方式实现:根据x″j[i]的数据特性,按照洗牌算法将n个混沌编码序列x″j[i]打乱后输出。
3、根据权利要求1或2所述的方法,其特征在于:步骤(2)中的混沌***为一维logistic迭代或分段线性混沌映射***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101099001A CN100459487C (zh) | 2003-12-31 | 2003-12-31 | 一种有限精度下的混沌密码产生方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101099001A CN100459487C (zh) | 2003-12-31 | 2003-12-31 | 一种有限精度下的混沌密码产生方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1556602A true CN1556602A (zh) | 2004-12-22 |
CN100459487C CN100459487C (zh) | 2009-02-04 |
Family
ID=34335435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101099001A Expired - Fee Related CN100459487C (zh) | 2003-12-31 | 2003-12-31 | 一种有限精度下的混沌密码产生方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100459487C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1697366B (zh) * | 2005-01-18 | 2010-04-28 | 重庆大学 | 可控自然数混沌密码序列产生方法及数字芯片核 |
CN101394266B (zh) * | 2008-10-24 | 2010-12-08 | 华中科技大学 | 一种生成变参数混沌信号的方法及混沌保密通信*** |
CN101436928B (zh) * | 2008-12-09 | 2011-01-26 | 华中科技大学 | 一种用于混沌***的参数估计方法 |
CN105407085A (zh) * | 2015-10-26 | 2016-03-16 | 武汉帕菲利尔信息科技有限公司 | 根据患者用户信息生成用户名密码的方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107800531A (zh) * | 2017-12-13 | 2018-03-13 | 广西师范大学 | 一种采用哈希表分析有限精度下混沌***的周期的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212239B1 (en) * | 1998-01-09 | 2001-04-03 | Scott T. Hayes | Chaotic dynamics based apparatus and method for tracking through dropouts in symbolic dynamics digital communication signals |
US6552588B1 (en) * | 2001-10-05 | 2003-04-22 | Sun Microsystems, Inc. | Method and apparatus to generate pseudo-random non-periodic digital sequences |
CN100369404C (zh) * | 2002-01-10 | 2008-02-13 | 张红雨 | 混沌密码序列发生器 |
-
2003
- 2003-12-31 CN CNB2003101099001A patent/CN100459487C/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1697366B (zh) * | 2005-01-18 | 2010-04-28 | 重庆大学 | 可控自然数混沌密码序列产生方法及数字芯片核 |
CN101394266B (zh) * | 2008-10-24 | 2010-12-08 | 华中科技大学 | 一种生成变参数混沌信号的方法及混沌保密通信*** |
CN101436928B (zh) * | 2008-12-09 | 2011-01-26 | 华中科技大学 | 一种用于混沌***的参数估计方法 |
CN105407085A (zh) * | 2015-10-26 | 2016-03-16 | 武汉帕菲利尔信息科技有限公司 | 根据患者用户信息生成用户名密码的方法及装置 |
CN105407085B (zh) * | 2015-10-26 | 2018-04-06 | 武汉帕菲利尔信息科技有限公司 | 根据患者用户信息生成用户名密码的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100459487C (zh) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Alani | Testing randomness in ciphertext of block-ciphers using DieHard tests | |
CN108665404B (zh) | 基于量子混沌映射和dna编码的图像加密方法 | |
TWI783295B (zh) | 乘法器及乘法運算方法 | |
CN1381095A (zh) | 推荐用于第三代码分多址的turbo码交错器的有效实现 | |
CN111488133B (zh) | 高基数近似布斯编码方法和混合基数布斯编码近似乘法器 | |
CN103731239B (zh) | 一种适用于向量处理器的通用crc并行计算部件及方法 | |
CN103684761A (zh) | 一种加密解密方法 | |
CN102621528B (zh) | 基于改进遗传算法的m-序列雷达信号波形优化方法 | |
CN1359211A (zh) | 混沌密码序列发生器 | |
CN1286077C (zh) | 基于动态变长码的数据加密与解密*** | |
CN1735013A (zh) | 用于执行md5摘要的设备和方法 | |
AU2020202883B1 (en) | Systems and computer-implemented methods for generating pseudo random numbers | |
CN1770094A (zh) | 高质量的真随机数产生器 | |
CN112202545A (zh) | 基于y型填充曲线和变步长约瑟夫遍历的图像加密方法 | |
CN103197912A (zh) | 一种用于深空通信协议编码的均匀随机数生成方法 | |
CN1556602A (zh) | 一种有限精度下的混沌密码产生方法 | |
CN1858999A (zh) | 伪随机序列发生装置 | |
CN1770680A (zh) | 输出-密文混和反馈混沌流密码加密解密方法 | |
CN1271790C (zh) | 用于传输数字消息的方法和实现所述方法的*** | |
CN107733554A (zh) | 极化码的速率匹配方法和装置 | |
Babaei et al. | Introduction to secure PRNGs | |
CN1140074C (zh) | 调频电路 | |
CN1633030A (zh) | 一种循环冗余校验的快速计算方法 | |
CN103401681B (zh) | 取模方法、取模装置及芯片 | |
CN106201435A (zh) | 基于细胞神经网络的伪随机数生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090204 Termination date: 20100201 |