基于超混沌Lorenz系统构建Hash函数的数据加密方法

文档序号:7773898阅读:223来源:国知局
基于超混沌Lorenz系统构建Hash函数的数据加密方法
【专利摘要】本发明公开了一种基于超混沌Lorenz系统构建Hash函数的数据加密方法,利用超混沌Lorenz系统的优点,先对固定长度密钥和任意长度消息明文进行预处理,然后将其输入一个精心设计的基于四维Lorenz系统超混沌特性的Hash函数中,通过函数内部多次迭代运算,最后得到一个长度为128比特的Hash值。通过四维Lorenz系统构建Hash函数来对消息明文进行加密处理,使得密文不容易被破解,算法安全性高、单向性好,易于软件和硬件实现,可广泛应用于数字签名、身份认证、消息完整性检测以及口令保护等领域。
【专利说明】基于超混沌Lorenz系统构建Hash函数的数据加密方法
【技术领域】
[0001]发明涉及信息处理中的数据加密技术,具体地讲,是一种基于超混沌Lorenz系统构建Hash函数的数据加密方法。
【背景技术】
[0002]在信息处理技术中,MD5是计算机广泛使用的散列算法之一,即Message-DigestAlgorithm5 (信息摘要算法5,又译为摘要算法、哈希算法),广泛运用于数字签名、文件完整性验证以及口令加密等领域。算法的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。
[0003]但在2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto2004)上,来自中国山东大学的王小云教授做了破译MD5算法的报告,公布了 MD系列算法的破解结果。宣告了世界通行密码标准MD5不再安全。
[0004]因此,行业内还急需研究一种新型的、安全的数据加密算法,即要保证数据的安全性能,又要降低算法复杂度,便于软件和硬件的实现。

【发明内容】

[0005]基于上述需求,本发明的目的在于提供一种基于超混沌Lorenz系统构建Hash函数的数据加密方法,由于超混沌Lorenz系统输出的序列对系统初值和控制参数非常敏感,并且难以对输出的序列进行预测和重构。通过参考中国专利201310048834.5和201210146858.X可以发现其优点,但目前主要用于数字图像加密领域。本发明利用超混沌Lorenz系统的优点,先对固定长度密钥和任意长度消息明文进行预处理,然后将其输入一个精心设计的基于四维Lorenz系统超混沌特性的Hash函数中,通过函数内部多次迭代运算,最后得到一个长度为128比特的Hash值。通过四维Lorenz系统构建Hash函数来对消息明文进行加密处理,使其具备理想的密码学特性,提高算法的安全性能。
[0006]为达到上述目的,本发明所采用的具体技术方案如下:
[0007]一种基于超混沌Lorenz系统构建Hash函数的数据加密方法,包括以下步骤:
[0008]步骤1:设置计数器i = 1,设置两个长度为128比特的密钥K1和K1' ,K1关K1',并将任意长度的消息明文M以128比特为一个单位分解为L组,即M=M1 Im2I I...I |ml,消息明文M分解时,位数不足填充O ;
[0009]步骤2:将十f,.’作为第一输入值,将A; 作为第二输入值,通过一个G函
数得出Ki+1,另外将K 'e Mi作为第一输入值,将Ki十Ki ’作为第二输入值,通过一个G函数得出Ki+1 ’ ;
[0010]步骤3:判断i+Ι是否大于L,如果不大于,则设置i = i+Ι,返回步骤2 ;如果大于,则进入步骤4 ;
[0011]步骤4:将Ki+1作为第一输入值,将Ki+1’作为第二输入值,通过一个G函数得出Hout, Hout即是任意长度消息明文M的单向Hash值;
[0012]其中:步骤2中的Mi表示消息明文M分解时的第i个分组;
[0013]步骤2和步骤4中的G函数为带有两个输入和一个输出的函数运算模块,该函数运算模块中嵌入有四维超混沛Lorenz系统。
[0014]作为进一步描述,所述G函数的第一输入H1和第二输入H2均为128比特,具体运算过程如下:
[0015]S1:按照8比特长度将第一输入H1和第二输入H2分别分解为16个分组,即:
[0016]H1 = H1; J Ih12I 卜..I Ih116 ;
[0017]H2 = H2jl Ih2 2I 卜..I Ih216 ;
[0018]S2:按照:
[0019]X0 = 十 Hg + Θ ^)/512;
[0020]y0 = (//S1 十 + 十/?)/ 512 ;
[0021 ] Z0 = 十 Hg + Φ /512;
[0022]% 二? 十/?2 +//JX)/512 ;
[0023]tx = H21 Θ H2 2 Θ H2 5 十 H2 6 ;
[0024]t2 = H23 十 H2a 十 Hin 十 H2.u ;
[0025]?3 = //2,9 十 //2,8 十 //2,12 十 // 14
[0026]t4 = H210 Φ H211 Φ H215 Φ H216 ;
[0027]k =X 16.6/ (4X256);
[0028]TV-50 + (Hll 十 tf + H14 Θ tf + H113 Θ tf + H116 θ tf) mod 256 ;
[0029]分别计算系统参数X。,y0, Z0, U0, k, N ;

X = -a(y - x)

y = -cx -y-xz +u
[0030]
【权利要求】
1.一种基于超混沌Lorenz系统构建Hash函数的数据加密方法,其特征在于包括以下步骤: 步骤1:设置计数器i = 1,设置两个长度为128比特的密钥K1和K1' ,K1 Φ K1',并将任意长度的消息明文M以128比特为一个单位分解为L组,即M=M1I IM2 I...I |My消息明文M分解时,位数不足填充O ; 步骤2:将K.十Ki'作为第一输入值,将? 作为第二输入值,通过一个G函数得出Ki+1,另外将&M1□作为第一输入值,将? K,.’作为第二输入值,通过一个G函数得出 Ki+1,; 步骤3:判断i+Ι是否大于L,如果不大于,则设置i = i+Ι,返回步骤2 ;如果大于,则进入步骤4 ; 步骤4:将Ki+1作为第一输入值,将Ki+1’作为第二输入值,通过一个G函数得出Hwt,Hwt即是任意长度消息明文M的单向Hash值; 其中:所述步骤2中的Mi表示消息明文M分解时的第i个分组; 所述步骤2和步骤4中的G函数为带有两个输入和一个输出的函数运算模块,该函数运算模块中嵌入有四维超混沛Lorenz系统。
2.根据权利要求1所述的基于超混沌Lorenz系统构建Hash函数的数据加密方法,其特征在于:所述步骤2和步骤4中的G函数的第一输入H1和第二输入H2均为128比特,具体运算过程如下: 51:按照8比特长度将第一输入H1和第二输入H2分别分解为16个分组,即:
H1 = H1;1 H1j2 I...I Hljl6 ;
H2 = H2jl H2j2 I...I H2jl6 ; 52:按照: X。= ? 十/?2 + H<f 十Ιφ/512; y0 =(丑S1 Φ Ke2 + hUO Φ Ku)/512; Z0 = (H^ 十 H= + H^1 十 /O / 512 ;u0=(K:;
tx = H,j ? Hn,0 H,5 0 H,6 ;
-- = H13 Φ H’ 4 Φ H0 η 0 H’ 13 ;
t3 = H2 9 十 Η.2,% 十 H2,u 十 H2,u ;
,4 _ ^2,10 十 ^2,11 ? H2,15 十 ^2,16 ;
k = (t1+t2+t3+t4) X 16.6/ (4 X 256);
TV = 50 + (H11 十 + H14 十 tf + H113 十 tf + Hllb 十 tf) mod 256 ;
分别计算系统参数X(i,Y0, z0, u0, k, N ;
【文档编号】H04L9/18GK103490876SQ201310491150
【公开日】2014年1月1日 申请日期:2013年10月18日 优先权日:2013年10月18日
【发明者】彭军, 贾蓉, 韩琦, 金尚柱 申请人:重庆科技学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1