CN103490876B - 基于超混沌Lorenz系统构建Hash函数的数据加密方法 - Google Patents
基于超混沌Lorenz系统构建Hash函数的数据加密方法 Download PDFInfo
- Publication number
- CN103490876B CN103490876B CN201310491150.2A CN201310491150A CN103490876B CN 103490876 B CN103490876 B CN 103490876B CN 201310491150 A CN201310491150 A CN 201310491150A CN 103490876 B CN103490876 B CN 103490876B
- Authority
- CN
- China
- Prior art keywords
- circleplus
- function
- lorenz system
- input
- input value
- 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.)
- Active
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于超混沌Lorenz系统构建Hash函数的数据加密方法,利用超混沌Lorenz系统的优点,先对固定长度密钥和任意长度消息明文进行预处理,然后将其输入一个精心设计的基于四维Lorenz系统超混沌特性的Hash函数中,通过函数内部多次迭代运算,最后得到一个长度为128比特的Hash值。通过四维Lorenz系统构建Hash函数来对消息明文进行加密处理,使得密文不容易被破解,算法安全性高、单向性好,易于软件和硬件实现,可广泛应用于数字签名、身份认证、消息完整性检测以及口令保护等领域。
Description
技术领域
发明涉及信息处理中的数据加密技术,具体地讲,是一种基于超混沌Lorenz系统构建Hash函数的数据加密方法。
背景技术
在信息处理技术中,MD5是计算机广泛使用的散列算法之一,即Message-DigestAlgorithm5(信息摘要算法5,又译为摘要算法、哈希算法),广泛运用于数字签名、文件完整性验证以及口令加密等领域。算法的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。
但在2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto2004)上,来自中国山东大学的王小云教授做了破译MD5算法的报告,公布了MD系列算法的破解结果。宣告了世界通行密码标准MD5不再安全。
因此,行业内还急需研究一种新型的、安全的数据加密算法,即要保证数据的安全性能,又要降低算法复杂度,便于软件和硬件的实现。
发明内容
基于上述需求,本发明的目的在于提供一种基于超混沌Lorenz系统构建Hash函数的数据加密方法,由于超混沌Lorenz系统输出的序列对系统初值和控制参数非常敏感,并且难以对输出的序列进行预测和重构。通过参考中国专利201310048834.5和201210146858.X可以发现其优点,但目前主要用于数字图像加密领域。本发明利用超混沌Lorenz系统的优点,先对固定长度密钥和任意长度消息明文进行预处理,然后将其输入一个精心设计的基于四维Lorenz系统超混沌特性的Hash函数中,通过函数内部多次迭代运算,最后得到一个长度为128比特的Hash值。通过四维Lorenz系统构建Hash函数来对消息明文进行加密处理,使其具备理想的密码学特性,提高算法的安全性能。
为达到上述目的,本发明所采用的具体技术方案如下:
一种基于超混沌Lorenz系统构建Hash函数的数据加密方法,包括以下步骤:
步骤1:设置计数器i=1,设置两个长度为128比特的密钥K1和K1',K1≠K1',并将任意长度的消息明文M以128比特为一个单位分解为L组,即M=M1||M2||…||ML,消息明文M分解时,位数不足填充0;
步骤2:将作为第一输入值,将作为第二输入值,通过一个G函数得出Ki+1,另外将作为第一输入值,将作为第二输入值,通过一个G函数得出Ki+1';
步骤3:判断i+1是否大于L,如果不大于,则设置i=i+1,返回步骤2;如果大于,则进入步骤4;
步骤4:将Ki+1作为第一输入值,将Ki+1'作为第二输入值,通过一个G函数得出Hout,Hout即是任意长度消息明文M的单向Hash值;
其中:步骤2中的Mi表示消息明文M分解时的第i个分组;
步骤2和步骤4中的G函数为带有两个输入和一个输出的函数运算模块,该函数运算模块中嵌入有四维超混沌Lorenz系统。
作为进一步描述,所述G函数的第一输入H1和第二输入H2均为128比特,具体运算过程如下:
S1:按照8比特长度将第一输入H1和第二输入H2分别分解为16个分组,即:
H1=H1,1||H1,2||…||H1,16;
H2=H2,1||H2,2||…||H2,16;
S2:按照:
k=(t1+t2+t3+t4)×16.6/(4×256);
分别计算系统参数x0,y0,z0,u0,k,N;
S3:按照:
建立四维超混沌Lorenz系统,并设置参数a=10,b=8/3,c=28;
S4:从S2中计算所得的x0,y0,z0,u0出发,利用步骤S3建立的四维超混沌Lorenz系统迭代N次得到第N个状态点xN,yN,zN,uN;
S5:计算
S6:计算
S7:计算:
并分别将其表示为二进制形式:
xd=0.bx,1bx,2…bx,32;
yd=0.by,1by,2…by,32;
zd=0.bz,1bz,2…bz,32;
ud=0.bu,1bu,2…bu,32;
S8:将bx,1bx,2…bx,32,by,1by,2…by,32,bz,1bz,2…bz,32,bu,1bu,2…bu,32连接成128比特的整数并左移21位得到G函数的输出;
上述步骤中的运算符A<<α表示循环左移α位,例如步骤S2中就表示数据H1,1在二进制表示时,循环左移1位;同理A>>α表示循环右移α位,表示异或操作,A||B表示连接操作,floor(x)表示向下求整运算,mod(x)表示整除x后求余数运算,这些运算符号即函数在数字信号处理中均是常见的,相关技术人员应当理解且不存在歧义。
采用上述方案对消息明文进行加密处理,其显著效果是:密文不容易破解,算法安全性高、单向性好,易于软件和硬件实现,可广泛应用于数字签名、身份认证、消息完整性检测以及口令保护等领域。
附图说明
图1是本发明的计算流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图及具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用于解释本发明,并不用于限定本发明。
假设本例中的消息明文:
M="Ahashfunctionisanyalgorithmthatmapsdataofvariablelengthtodataofafixedlength.Thevaluesreturnedbyahashfunctionarecalledhashvalues,hashcodes,hashsums,checksumsorsimplyhashes."
初始密钥:
K1="A6DE9BC535D4EF0C4DA68CBEC18EB3C8"
K1'="CED71A0A695FE1C40C62418E091796A5"
那么该消息明文进行加密时的具体步骤如下:
步骤1:可参见图1,设置计数器i=1,按照自定义的初始密钥设置两个长度为128比特的密钥K1和K1',这里K1≠K1',并将消息明文M以128比特为一个单位分解为L组,即M=M1||M2||…||ML,消息明文M分解时,位数不足填充0;
步骤2:将作为第一输入值,将作为第二输入值,通过一个G函数得出密钥Ki+1,另外将作为第一输入值,将作为第二输入值,通过一个G函数得出密钥Ki+1';
步骤3:判断i+1是否大于L,如果不大于,则设置i=i+1,返回步骤2;如果大于,则进入步骤4,相当于图1中对消息明文分组所得的M1~ML依次进行左、右两端的G函数运算,上一层运算输出的值将作为下一层运算的新密钥进行处理,直到第L层计算完毕;
步骤4:将Ki+1作为第一输入值,将Ki+1'作为第二输入值,通过一个G函数得出Hout,Hout即是任意长度消息明文M的单向Hash值;
其中:所述步骤2中的Mi表示消息明文M分解时的第i个分组;
在具体实施过程中,步骤2和步骤4中的G函数为带有两个输入和一个输出的函数运算模块,第一输入H1和第二输入H2均为128比特,具体运算过程如下:
S1:按照8比特长度将第一输入H1和第二输入H2分别分解为16个分组,即:
H1=H1,1||H1,2||…||H1,16;
H2=H2,1||H2,2||…||H2,16;
S2:按照:
k=(t1+t2+t3+t4)×16.6/(4×256);
分别计算系统参数x0,y0,z0,u0,k,N;
S3:按照:
建立四维超混沌Lorenz系统,并设置参数a=10,b=8/3,c=28;
S4:从S2中计算所得的x0,y0,z0,u0出发,利用步骤S3建立的四维超混沌Lorenz系统迭代N次得到第N个状态点xN,yN,zN,uN;
S5:计算
S6:计算
S7:计算:
并分别将其表示为二进制形式:
xd=0.bx,1bx,2…bx,32;
yd=0.by,1by,2…by,32;
zd=0.bz,1bz,2…bz,32;
ud=0.bu,1bu,2…bu,32;
S8:将bx,1bx,2…bx,32,by,1by,2…by,32,bz,1bz,2…bz,32,bu,1bu,2…bu,32连接成128比特的整数并左移21位得到G函数的输出;
这里输出的Hash值如下:
Hout="4C5171CE42F38DED9CF30BFE2EB3BCF1"。
下面按照上述步骤进行多次实验来验证本算法的性能:
(1)对M做轻微修改,将第一个字符"A"更改为"B",得到Hash值如下:
Hout="36E907A2469511B608B1F50FCC2B4BF3"。
(2)对M做轻微修改,删除M最后一个字符".",得到Hash值如下:
Hout="E113B5C159E3FE5240189988CF7207BD"。
(3)将M中的所有hash用Hash替换,得到Hash值如下:
Hout="FB5D2C9FF226ECCE45E499C8CAF2DBDE"。
(4)对密钥K1做轻微修改,将最后一个字符"8"更改为"7",得到Hash值如下:
Hout="208F178DA22CDA3BCCEC1387026CFF20"。
(5)对密码K1'做轻微修改,将第三个字符"D"更改为"E",得到Hash值如下:
Hout="F489370F57DEA86AEB4F4AEF4E4A0A6F"。
(6)对M和密钥同时做轻微修改,将第20个字符的值加1,得到Hash值如下:
Hout="1A62B3CEE2A7F653AB4D193907976B06"。
上述6种情况下,计算出相应Hash值的比特变化率如表1所示(平均变化率为50.13%):
表1:不同情况下Hash值的比特变化数和比特变化率
情况(1) | 情况(2) | 情况(3) | 情况(4) | 情况(5) | 情况(6) | |
比特变化数 | 64 | 66 | 62 | 68 | 61 | 64 |
比特变化率 | 50.00% | 51.56% | 48.44% | 53.13% | 47.66% | 50.00% |
为了更进一步的说明本方法的安全性能,下面选择更大范围的数据进行测试:
随机选取消息明文,计算其Hash值;任意改变消息明文中的一个比特位,再计算其Hash值;计算前后两个Hash值之间的比特位的更改个数,记为Bi。重复该过程,观察Hash值比特位数值的变化。设执行N次试验,并计算如下四个统计量:
(1)平均比特变化数
(2)平均比特变化概率P:
(3)标准方差ΔB和ΔP:
分别取N=128,256,512,1024,2048,4096,执行上述试验,并计算相应统计量,结果如表2所示:
表2:不同Hash值之间比特位数值的变化
试验表明,通过我们所设计的Hash函数构造算法,将得到理想的Hash值。轻微改变消息明文将有接近50%概率的比特位数值发生改变,说明Hash函数具有非常强的混淆和扰乱特性,可以广泛用于数字签名、身份认证、消息完整性检测、口令保护等领域。
Claims (1)
1.一种基于超混沌Lorenz系统构建Hash函数的数据加密方法,其特征在于包括以下步骤:
步骤1:设置计数器i=1,设置两个长度为128比特的密钥K1和K1',K1≠K1',并将任意长度的消息明文M以128比特为一个单位分解为L组,即M=M1||M2||…||ML,消息明文M分解时,位数不足填充0;
步骤2:将作为第一输入值,将作为第二输入值,通过一个G函数得出Ki+1,另外将作为第一输入值,将作为第二输入值,通过一个G函数得出Ki+1';
步骤3:判断i+1是否大于L,如果不大于,则设置i=i+1,返回步骤2;如果大于,则进入步骤4;
步骤4:将Ki+1作为第一输入值,将Ki+1'作为第二输入值,通过一个G函数得出Hout,Hout即是任意长度消息明文M的单向Hash值;
其中:所述步骤2中的Mi表示消息明文M分解时的第i个分组;
所述步骤2和步骤4中的G函数为带有两个输入和一个输出的函数运算模块,该函数运算模块中嵌入有四维超混沌Lorenz系统;
G函数的第一输入H1和第二输入H2均为128比特,具体运算过程如下:
S1:按照8比特长度将第一输入H1和第二输入H2分别分解为16个分组,即:
H1=H1,1||H1,2||…||H1,16;
H2=H2,1||H2,2||…||H2,16;
S2:按照:
k=(t1+t2+t3+t4)×16.6/(4×256);
分别计算系统参数x0,y0,z0,u0,k,N;
S3:按照:
建立四维超混沌Lorenz系统,并设置参数a=10,b=8/3,c=28;
S4:从S2中计算所得的x0,y0,z0,u0出发,利用步骤S3建立的四维超混沌Lorenz系统迭代N次得到第N个状态点xN,yN,zN,uN;
S5:计算
S6:计算
S7:计算:
并分别将其表示为二进制形式:
xd=0.bx,1bx,2…bx,32;
yd=0.by,1by,2…by,32;
zd=0.bz,1bz,2…bz,32;
ud=0.bu,1bu,2…bu,32;
S8:将bx,1bx,2…bx,32,by,1by,2…by,32,bz,1bz,2…bz,32,bu,1bu,2…bu,32连接成128比特的整数并左移21位得到G函数的输出;
上述步骤中的运算符A<<α表示循环左移α位,A>>α表示循环右移α位,表示异或操作,A||B表示连接操作,floor(x)表示向下求整运算,mod(x)表示整除x后求余数运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310491150.2A CN103490876B (zh) | 2013-10-18 | 2013-10-18 | 基于超混沌Lorenz系统构建Hash函数的数据加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310491150.2A CN103490876B (zh) | 2013-10-18 | 2013-10-18 | 基于超混沌Lorenz系统构建Hash函数的数据加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103490876A CN103490876A (zh) | 2014-01-01 |
CN103490876B true CN103490876B (zh) | 2016-05-18 |
Family
ID=49830852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310491150.2A Active CN103490876B (zh) | 2013-10-18 | 2013-10-18 | 基于超混沌Lorenz系统构建Hash函数的数据加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103490876B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104717060B (zh) * | 2015-03-10 | 2017-11-17 | 大唐微电子技术有限公司 | 一种攻击椭圆曲线加密算法的方法和攻击设备 |
TWI540456B (zh) * | 2015-07-15 | 2016-07-01 | 緯創資通股份有限公司 | 帳號管理應用程式的強固方法以及使用該方法的裝置 |
CN105281911B (zh) * | 2015-08-04 | 2018-09-25 | 电子科技大学 | 将任意长度字符串映射到固定大小矩阵的哈希函数方法 |
CN109145624B (zh) * | 2018-08-29 | 2021-10-19 | 广东工业大学 | 一种基于Hadoop平台的多混沌文本加密算法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003104969A2 (en) * | 2002-06-06 | 2003-12-18 | Cryptico A/S | Method for improving unpredictability of output of pseudo-random number generators |
CN101237320A (zh) * | 2008-02-04 | 2008-08-06 | 西安理工大学 | 利用无穷维超混沌构造单向散列函数进行密码保护的方法 |
CN101741544A (zh) * | 2009-12-29 | 2010-06-16 | 电子科技大学 | 一种基于时滞混沌迭代的数字签名方法及装置 |
-
2013
- 2013-10-18 CN CN201310491150.2A patent/CN103490876B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003104969A2 (en) * | 2002-06-06 | 2003-12-18 | Cryptico A/S | Method for improving unpredictability of output of pseudo-random number generators |
CN101237320A (zh) * | 2008-02-04 | 2008-08-06 | 西安理工大学 | 利用无穷维超混沌构造单向散列函数进行密码保护的方法 |
CN101741544A (zh) * | 2009-12-29 | 2010-06-16 | 电子科技大学 | 一种基于时滞混沌迭代的数字签名方法及装置 |
Non-Patent Citations (4)
Title |
---|
COMPLEX BEHAVIOURS IN TWO BI-DIRECTIONALLY COUPLED LORENZ SYSTEMS;Silvano Cincotti,Simona Di Stefano;《IEEE》;20030528;全文 * |
Hash Function Based on Chaotic Neural Networks;Shiguo Lian,etc;《IEEE》;20060524;全文 * |
Research on a Novel Image Encryption Algorithm Based on the Hybrid of Chaotic Maps and DNA Encoding;Jun Peng,etc;《IEEE》;20130718;全文 * |
基于Hash函数和多混沌系统的图像加密算法;栗风永,徐江峰;《计算机工程与设计》;20101231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103490876A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101237320B (zh) | 利用无穷维超混沌构造单向散列函数进行密码保护的方法 | |
CA2792571C (en) | Hashing prefix-free values in a signature scheme | |
CN103490876B (zh) | 基于超混沌Lorenz系统构建Hash函数的数据加密方法 | |
CN106161012A (zh) | 一种基于极化码纠错的量子密钥分发后处理系统和方法 | |
CN101951314B (zh) | 对称密码加密中s-盒的设计方法 | |
CN101814985B (zh) | 应用多混沌映射多动态s盒的分组密码系统 | |
CN115659409B (zh) | 一种金融资产交易数据安全存储方法 | |
CN107833174B (zh) | 一种基于Logistic混沌系统算法的图像加密方法 | |
CN102082668B (zh) | 一种基于耦合混沌映射的消息完整性认证方法 | |
CN103780382A (zh) | 一种基于超球面的多变量公钥加密/解密系统及方法 | |
CN103973439A (zh) | 一种多变量公钥加密方法 | |
CN111314090B (zh) | 一种基于比特级门限的安全多云端口令管理方法 | |
Alsaffar et al. | An encryption based on DNA and AES algorithms for hiding a compressed text in colored Image | |
Ge et al. | Fast chaotic image encryption algorithm using a novel divide and conquer diffusion strategy | |
CN103812658B (zh) | 一种基于流密码的安全通信协议 | |
Rahim et al. | An application data security with lempel-ziv welch and blowfish | |
Ashila et al. | Hybrid AES-Huffman coding for secure lossless transmission | |
CN104868989B (zh) | 用于图像数据安全传输的加密方法 | |
CN112769545B (zh) | 基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法 | |
CN103780794A (zh) | 一种基于混沌系统的图像加密改进方法 | |
CN104618098A (zh) | 一种集合成员关系判定的密码学构造方法及系统 | |
CN103957418A (zh) | 基于离散量子游走和中国剩余定理的图像加密压缩方法 | |
CN106201435A (zh) | 基于细胞神经网络的伪随机数生成方法 | |
CN1815948A (zh) | 基于复合非线性数字滤波器的混沌散列构造方法 | |
CN106921486A (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 |