CN101237320B - 利用无穷维超混沌构造单向散列函数进行密码保护的方法 - Google Patents
利用无穷维超混沌构造单向散列函数进行密码保护的方法 Download PDFInfo
- Publication number
- CN101237320B CN101237320B CN2008100174968A CN200810017496A CN101237320B CN 101237320 B CN101237320 B CN 101237320B CN 2008100174968 A CN2008100174968 A CN 2008100174968A CN 200810017496 A CN200810017496 A CN 200810017496A CN 101237320 B CN101237320 B CN 101237320B
- Authority
- CN
- China
- Prior art keywords
- key
- plaintext
- hash
- expressly
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种利用无穷维超混沌构造单向散列函数进行密码保护的方法,首先把明文和密钥作为两个具有延迟反馈的超混沌Chen系统的初始值,按照系统的混沌动力学特性进行演化,将演化的最终结果进行量化,将量化值代入密钥流进行迭代,实现明文和密钥信息的混淆和扩散,并基于密码块链接方式产生任意长度明文的128位Hash值。本发明方法通过构造Hash函数来进行密码保护,充分利用了无穷维超混沌系统产生的信号提高了信号的置乱性能和参数的敏感性,对预测攻击具有更强的抗击能力和更好的安全性。
Description
技术领域
本发明属于信息安全技术领域,涉及一种密码保护方法,具体涉及一种利用无穷维超混沌特性和密钥流构造的单向散列(Hash)函数进行密码保护的方法。
背景技术
密码单向散列(Hash)函数是目前使用的最重要的密码编码方法之一。Hash函数被广泛的应用在IT业、安全协议和计划中,例如,软件的完整性检测、数字签名系统、消息认证和密码保护等。Hash函数是IT产业和安全协议的重要基础,典型的应用包括数字签名和密码保护。随着现代化商业、金融等领域的迅速发展,远距离交易和通信日显重要,这时双方需达成某种协议,并在协议中签名。通过计算机和通信系统传送或贮存的文件无法辨认笔迹,而手工签名和印章难以实现,用数字签名系统可解决这一问题。数字签名系统中需构造一个抗攻击能力强、压缩报文的Hash函数。各种软件设计的密码,都是保存在本机数据库中,如果直接保存密码信息很容易被破解,采用单向散列函数对原始密码信息进行变换再进行保存,即使非法用户得到保存的信息,也无法正常使用。如果单向散列函数具有很好的性能,加密的密码很难破译。设计认证系统和信息完整性检测的核心问题也是构造单向Hash函数。
传统的单向散列方法有MD2、MD5、SHA等标准,多是采用基于异或等逻辑运算的复杂方法或是用DES等分组加密方法多次迭代得到散列结果,后一种方法运算量很大;而前面的几种方法由于异或运算中固有的缺陷,虽然每步运算简单,但计算轮数即使在被处理的文本很短情况下也很大。2004年8月,王小云公布她的研究小组对MD5、HAVAL-128、MD4和RIPEMD等四个著名密码算法的破译结果。2005年初又破解了SHA-1密码算法。因此设计高效安全的Hash算法是非常必要的。
近年来,为获得更安全的Hash函数,利用混沌特有的性质来构造Hash函数并取得了一定的进展,用混沌系统的不可预测性和对初值的敏感性构造安全性更强的Hash函数。
现有技术提出了基于混沌映射来构造单向散列函数、用改变参数的方法构造单向Hash函数、基于帐篷映射构造单向Hash函数、基于前馈-反馈非线性数字滤波器构造带密钥的Hash函数、基于广义混沌映射切换的混沌Hash方法、具有可变参数的分段线性混沌映射的Hash函数构造、基于RBF神经网络和混沌映射构造Hash函数等,这些方法均为低维的混沌动力系统。还有的提出了基于时空混沌系统构造单向Hash函数,利用该单向Hash函数技术进行密码保护时,在明文填充时,仅仅填充了一些字符并没有加入明文的任何信息,这样很容易产生碰撞。
发明内容
本发明的目的在于提供一种利用无穷维超混沌构造单向散列函数进行密码保护的方法,该方法利用延迟反馈产生的无穷维超混沌系统和密钥流迭代方法构造一混沌单向Hash函数,利用该函数进行密码保护,对预测攻击具有更强的抗击能力和更好的安全性。
本发明所采用的技术方案是,利用无穷维超混沌构造单向散列函数进行密码保护的方法,首先把明文和密钥进行拆分和数值变换,作为两个具有延迟反馈的超混沌Chen系统的初始值,按照系统的混沌动力学特性进行演化,将演化的最终结果进行量化,将量化值代入密钥流进行迭代,实现明文和密钥信息的混淆和置乱,并基于密码块链接方式产生任意长度明文的128位Hash值,将待认证的密码与该Hash值进行比对,判断其真伪,该方法按以下步骤进行,
步骤1、对待保护的密码作为明文进行分组、拆分和数值变换
将需要保护的密码作为明文,对该明文按128位进行分组,最后一个分组不足128位时,明文后面补上待处理明文的长,然后补0使其达到128位,再将每一组的128位明文,拆分成40bit、40bit、48bit的三个二进制数,将上述每组拆分后得到的三个数的前两个数除以240、后一个数除以242进行变换,分别变换得到3个[0,1]区间上的小数;
步骤2、对密钥进行拆分和数值变换
设定一个128位的初始密钥,将该128位初始密钥按先后顺序分别拆分成40bit、40bit、48bit的三个二进制数,对上述每组拆分后得到的三个数的前两个数除以240、后一个数除以242进行变换,分别变换得到3个[0,1]区间上的小数;
步骤3、待保护密码明文带入超混沌系统进行演化
将步骤1最后变换得到的分组明文的3个[0,1]区间上的小数作为延迟反馈Chen系统的初始值,带入下列直接延迟反馈控制的Chen电路数学模型中:
其中a,b,c为系统参数,k33和τ3为控制参数,
进行演化,得到混沌序列,把最后时刻的三个状态值分别进行x、y、z的坐标变换,使变量的变化范围限制在[-1,1]之间,变换的公式为
其中 tend表示演化的最后时刻,
将演化最后时刻的三个值记为p1、p2、p3;
步骤4、将密钥带入超混沌系统进行演化
将步骤2得到的3个[0,1]区间上的小数作为延迟反馈Chen系统的初始值,带入上步的Chen电路数学模型中进行演化,得到混沌序列,把最后时刻的三个状态值分别进行变换,使变量的变化范围限制在[-1,1]之间,变换的公式为
其中 tend表示演化的最后时刻,
演化最后时刻的三个值为v1,v2,v3;
步骤5、对上步经置乱后明文和密钥进一步混合置乱与混淆
将步骤3、步骤4得到的三个明文p1,p2,p3和三个密钥v1,v2,v3分别代入下列密钥流函数中进行迭代,
密钥流迭代函数如下:
其中pi为经过超混沌系统置乱后的明文,vi为经过超混沌系统置乱后的密钥,n表示置乱后的明文pi和置乱后的密钥vi经过非线性函数f1的迭代次数,f1为线性分段函数,具体的形式如下
该函数中x和k的值在「-h,h]之间,经过至少30次迭代得到三个密钥流迭代输出e(p1,v1),e(p2,v2),e(p3,v3),将得到的三个值分别变换为40bit、40bit、48bit的二进制整数,将得到的二进制数eb1,eb2,eb3依次连接起来,得到128位的二进制整数,这个整数就是第一组128位明文得到的单向散列变换值;
步骤6、对明文长度大于128位的进行密码块链接
采用密码块链接模式对明文长度大于128位的进行链接,最终对整个密码明文得到完整的128位hash值;
步骤7、将需验证的明文经过上述步骤得到的128位hash值与数据库中保存信息进行比对判断,确定密码的合法性
将经上步Hash变换后得到的Hash值存入数据库,对需验证的明文也按上述步骤进行Hash变换,将该变换值与数据库中保存值进行比较,如果相同则通过,否则,则拒绝通过。
本发明方法的有益效果是,
1、利用该Hash函数进行密码保护时,利用了无穷维超混沌系统产生的信号提高了信号的置乱性能和参数的敏感性,对预测攻击具有更强的抗击能力和更好的安全性。
2、采用无穷维超混沌系统和密钥流迭代相结合的技术,构造出Hash函数,使得构造出的Hash函数具有更好的抗碰撞性能。
附图说明
图1是利用直接延迟反馈在Chen系统中产生的超混沌吸引子的2维相图、时间序列图和频谱分布图,其中,a是x坐标和y坐标的相图,b是y坐标和z坐标的相图,c是x坐标和z坐标的相图,d是x(t)随时间演化的时间序列图,e是x(t)频谱图;
图2是以明文的拆分值作为超混沌Chen系统的初值,通过超混沌Chen系统演化的时间序列图,其中a是x的时间序列图,b是y的时间序列图,c是z的时间序列图;
图3是密码块连接方式原理图;
图4是文本1-5的Hash值比较图;
图5是明文敏感性分析,其中,a是明文为1024位的比特率变化图,b是明文为2040位的比特率变化图;
图6是密钥敏感性分析图;
图7是k-N(k)的分布图;
图8中,a、b、c分别是本发明方法与现有三种技术的抗碰撞性分析对比结果。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明首先利用超混沌和密钥流构造高性能的单向散列函数,再利用该函数对密码进行加密。
把明文(需要保护的密码)和密钥作为两个具有延迟反馈的超混沌Chen系统的初始值,按照两个系统的混沌动力学特性进行一定时间的演化,将演化的最终结果进行量化,将量化值代入密钥流进行迭代,实现明文和密钥信息的混淆和扩散,并基于密码块链接方式产生任意长度明文的128位Hash值,将待认证的密码的Hash值与合法密码的Hash值进行比对,判断其真伪。
本发明方法具体包括以下步骤:
步骤1、待保护密码作为明文进行分组、拆分和数值变换
将需要保护的密码作为明文,对该明文按128位(Bit)进行分组,最后一个分组不足128位时,明文后面补上待处理明文的长,然后补0使其达到128位。
例如:如果明文为132位二进制数,表示成十六进制数为
DDCC17E846755AE46F64F47A16565E237
将其按128位进行分组,则得到
第一组为DDCC17E846755AE46F64F47A16565E23
第二组为7840000000000000000000000000000
第二组中“7”为实际明文,后面补充的84为整个明文的长度132的十六进制表示,后面补充29个十六进制的0构成128位的分组数据。
将得到的每一组128位明文,拆分成40位、40位、48位的三个二进制数。
如对于上面例子,对第一组进行拆分可以得到如下三个用十六进制表示的数:
DDCC17E846
755AE46F64
F47A16565E23
对于第二组也同样可以拆分为7840000000,0000000000,000000000000三个十六进制表示的数;
将每组拆分后的三个数变换为3个[0,1]区间上的小数,具体的方法是给前两个数除以240,后一个数除以242。
如对于第一组得到的三个数分别为
0.8663954679559...
0.0458418156809...
0.9549879036768...
同样可以对分组中的第二组进行拆分和变换得到三个[0,1]之间的数。将每组的128位转换为3个[0,1]区间上的小数,这样整个明文得到一个大数组,记为P。
步骤2、对密钥进行拆分和数值变换
设定一个128位的初始密钥(对合法用户公开),对该128位的初始密钥,也按照上一步中的拆分方法,将128位初始密钥按先后顺序分解成40bit、40bit、48bit的三个二进制数,对上述每组拆分后得到的三个数的前两个数除以240、后一个数除以242进行变换,分别变换得到3个[0,1]区间上的小数。
步骤3、将待保护密码(明文)带入超混沌系统进行演化(混淆)
利用直接延迟反馈控制方法在Chen电路中产生混沌,直接延迟反馈控制的Chen电路数学模型如下:
其中a,b,c为系统参数,k33和τ3为控制参数,适当调节控制参数可以得到具有多个李亚谱诺夫指数的超混沌系统。
该系统所产生的混沌吸引子如图1所示,其中,a是x坐标和y坐标的相图,b是y坐标和z坐标的相图,c是x坐标和z坐标的相图,d是x(t)随时间演化的时间序列图,e是x(t)频谱图。从图1可以看出系统具有很好的混沌的特性,混沌程度的定量描述指标为最大Lyapunov指数,该系统有多个正的Lyapunov指数,因此,是一个超混沌系统。混沌系统的一个重要特点是对初值的敏感性,即所谓的“蝴蝶效应”,直观的解释是当系统在两个具有微小差别的初始值(理论上是无限小)开始演化,经过足够长的时间后两个不同初始值演化出的系统状态轨迹变得完全不相关(差别非常大)。因此,混沌系统对初始值具有很好的混淆能力,而超混沌系统比一般混沌系统具有更复杂的演化特性,对于初始值的敏感性和混淆能力更强。
将步骤1得到的分组明文作为如公式(1)所示延迟反馈Chen系统的初始值,进行t≥30s的演化,得到混沌序列,把最后时刻的三个状态进行坐标变换,使变量的变化范围限制在[-1,1]之间,将演化最后时刻的三个值作为三个密钥流迭代中的明文pi,其中参数a=35,b=3,c=18.5,k=2.85,τ=0.3,h=1。
例如将上面的明文分组得到的第一组数据作为超混沌系统的初始值,可以得到三个混沌时间序列如图2所示,其中a是x的时间序列,b是y的时间序列,c是z的时间序列,演化的时间是30s,最后得到的三个状态值分别是:4.52222397579072...,4.72288981488884...,2.12903245563008...。通过计算每一个时间序列的最大和最小值,根据最大和最小值计算变换到[-1,1]之间所使用的公式中的数值。例如对于序列x可以得到其最大值xmax和最小值xmin,将x变换到[-1,1]之间所使用的公式则为
对于y和z的变换公式也相似。上面三个最后时刻的值经过变换变为0.904444795158143...,0.944577962977769...,-0.428594682907884...,这三个值可以分别作为三个密钥流迭代运算的输入p1,p2,p3。
步骤4、将密钥带入超混沌系统进行演化(混淆)
采用与步骤3相同的方法,将步骤2得到的初始密钥值作为延迟反馈Chen系统的初始值,经过延迟反馈混沌Chen系统的演化和坐标变换得到最后时刻的三个状态值,经过变换作为三个密钥流迭代中的密钥v1,v2,v3。
本发明对需要变换的明文(128位)和密钥(128位)作为上述超混沌系统的初始值,经过一段时间的演化,得到经过超混沌系统分别混淆的明文和密钥,由于系统的超混沌特性,明文和密钥经过这一步后,已经被很好地混淆和置乱。为了进一步提高变换的置乱性能,将上述结果再送入具有很强置乱功能的密钥流迭代函数,进一步混淆和置乱。
步骤5、将步骤3、4置乱后明文和密钥进一步进行混合置乱与混淆
将第3、4步得到的三个明文p1,p2,p3和三个密钥v1,v2,v3分别代入三个如公式(2)和(3)所示的密钥流进行迭代,
密钥流迭代函数如下:
其中pi为经过超混沌系统置乱后的明文,vi为经过超混沌系统置乱后的密钥,n表示置乱后的明文pi和置乱后的密钥vi经过非线性函数f1的迭代次数,f1为线性分段函数,具体的形式如下
该函数中x和k的值必须限制在[-h,h]之间,迭代次数n≥30。
经过至少30次迭代可以得到三个密钥流迭代输出e(p1,v1),e(p2,v2),e(p3,v3),将得到的三个值分别变换为40bit、40bit、48bit的二进制整数,具体的方法是,
eb1=bin(int((e(p1,v1)+1)×239)),
eb2=bin(int((e(p2,v2)+1)×239)),
eb3=bin(int((e(p3,v3)+1)×247)),
其中int(·)表示取整,bin(·)表示将整数变为二进制的二进制变换。
将得到的二进制数eb1,eb2,eb3依次连接起来,得到128位的二进制整数,这个整数就是第一组128位明文得到的单向散列变换值。
本发明通过密钥流函数将经过超混沌系统混淆和置乱后的明文和密钥进一步混淆和置乱,并构成了由两者共同决定的输出,将输出变换成128位,就可以得到一个长度为128位的明文对应的单向散列函数的输出。
步骤6、对于明文长度大于128位的通过密码块链接模式产生最终的128位Hash函数值
如果明文的长度超过128位,则可以采用如图3所示的密码块链接模式(CBC)将后面的信息用密码块链接的方式得到任意长度明文的128位hash值。
通过引入密码块链接模式(CBC),可对任意长度的明文数据产生128位的Hash值,密码块链接模式如图3所示,其中H为实现(1)至(5)步算法的单向散列函数(Hash)单元。
下面对照图3详细描述密码块链接方式,图3中M表示需要变换的明文信息,其长度可以是任意长度。M0至Mn-1表示将明文M分组后得到的n个明文组。Key表示初始密钥(对合法用户公开)。如图3所示,将明文的第一个分组128位二进制数M0和初始密钥Key通过上述步骤1中的数值调整和步骤2至步骤5得到对于第一个明文组M0的Hash值h0。将Key与h0异或作为下一次Hash变换的密钥k1,下一次需变换的明文为M1,通过与得到h0相同的步骤可以得到h1,依次类推,可以得到对于任意长度明文的Hash值。
步骤7、利用上述Hash变换进行密码保护
将需要保护的密码经过上述Hash变换后得到的Hash值,存入数据库,在合法用户输入正确的密码后,将该密码作为Hash变换的明文利用对合法用户公开或授权的密钥,经过上述Hash变换得到的值与数据库中保存值进行比较,如果相同则通过,否则,则拒绝通过。
本发明利用上述方法构造的单向散列变换进行密码保护,将需要保护的密码或信息变换为二进制明文,将合法用户可以获得的密钥和上述明文通过前面的单向散列函数变换得到输出值,将输出值作为密码验证值保存在计算机程序或文件中,而不是保存实际的密码。这样即使盗用者得到了文件中保存的密码,也无法知道实际的密码是多少,起到密码保护的作用。
上述密码保护的步骤中的核心是单向散列函数,单向散列函数的性能决定了密码的保密性能。对于密码的保护,本发明方法中构造的单向散列函数具有如下特点:
1、明文的敏感性,即明文(用户输入的密码)有微小差别,Hash值将有很大变化。
2、密钥的敏感性,即(对合法用户发布的)密钥,如果发生微小变化,Hash值将有很大变化。
3、抗生日攻击和碰撞攻击的能力,对于穷举所有可能解的攻击方式要具有足够的复杂度;对于不同的明文值可以得到相同Hash的可能性要很小,同时寻找这种碰撞值的耗费很大。
本发明的密码保护方法具有如下特点:
1.不直接将明文和密钥作为密钥流迭代的输入,而是首先经过由直接延迟反馈控制产生的无穷维超混沌系统进行演化,无穷维超混沌具有非常复杂的动力学行为,对初值的敏感度更加强烈,对明文和密钥信息具有非常好的置乱性能。
2.将明文和密钥通过超混沌系统演化和置乱后,进一步通过密钥流迭代将明文和密钥进一步混淆,使得明文和密钥里的信息被进一步置乱,从而得到更好的抗碰撞性能。
3.通过密码块连接的方式将后面的明文与前面的明文及密钥产生的hash值进一步混沌,得到任意长度明文的固定长度hash值。
4.延迟反馈Chen系统和密钥流迭代产生的序列拥有单向Hash函数所要求的较好的混淆和散布特性,防伪造性,不可逆性和初值敏感性。本发明通过延迟反馈超混沌Chen系统产生超混沌信号,并且通过密钥流进行迭代,大大增强了信号的复杂性,使得信号更难以预测。同时采用密码块连接模式使信号更加复杂和安全,抗碰撞性更好。
为了验证本发明方法的效果,对上述方法得到的Hash函数性能分析如下:
1.明文敏感性分析:
根据本文提出的方法,分别计算了下面5种情况下文本的Hash值:
原始文本1为:
Chaos is a deterministic process.which is ubiquitously present in the world.Because of its random like behavior,sensitivity to initial conditions and parametervalues,ergodicity,and confusion and diffusion properties;chaotic cryptographyhas become an important branch of modern cryptography and has huge potential inprotecting the assets.
文本2将文本1中的Chaos改为chaos;文本3将文本1中的values改为value;文本4将文本1最后的句号改为逗号;文本5将文本1的最后加一个空格。
对应的Hash值十六进制表示为:
文本1:DDCC17E846755AE46F64F47A16565E23
文本2:2300F10798897A828112E46E6DB9998B
文本3:0C30BB10321C138A30023D12E0FD67C0
文本4:B20EBDADEB07ED8663F471E2CA31355E
文本5:B363000FC436BBA1C6D4206DF9128BDB
其位序列表示如图4,从上面的仿真结果可以看出,本发明的Hash函数对初值的变化相当敏感,即使明文发生很小的改变也会导致最终得到的Hash值发生很大的变化。
2.单向性分析
单向性是从明文消息M和密钥K计算Hash值是非常容易的,根据最终的Hash值计算明文M和密钥K是非常困难的。
从数学上看,报文空间可以是无限的,而Hash结果总是一段定长字节的数字,会有无数的报文具有同样的Hash函数值,但在Hash结果达到一定长度,比如结果为固定的128bit长时,结果空间已有2128≈3.4028×1028个,现有的计算环境下在这样大的空间穷举计算是困难的。
一般说来,密钥的长度应不小于128bit,以防止密钥穷尽搜索攻击;消息摘要的Hash值长度也不应小于128bit,以防止生日攻击。
3.明文和密钥安全性分析
在本发明的方法中,通过延迟反馈Chen系统和密钥流的迭代运算,实现了对明文信息和密钥信息的混合,这一混合操作实现了密码编码所必须的混淆和扩散。这种良好的混淆和扩散作用,保证了所构造的Hash函数对统计攻击的安全性。理论上混淆和扩散特性越好,最终所得到的Hash值对密钥和明文的敏感性越强。下面对本发明给出的Hash函数对明文和密钥的敏感性进行了测试。
对一个二进制表示的Hash值而言,其每一位的值非1即0,因此理想的敏感值应保证任何明文或密钥的轻微改变将导致Hash比特发生50%的变化概率。对一个明文消息每次改变其一位上的值,即将第i个位的“0”(“1”)改为“1”(“0”),计算改变后的明文消息的Hash值hi,然后将其和原始消息的Hash值h0进行比较,并计算h0和hi二进制表示的Hamming距离,最终获得Hash比特变化率。对密钥的敏感性分析跟明文的敏感性分析方法相同。
图5给出了明文比特率的分布情况,明文为1024bit时的Hash值比特平均改变率为64.0713,明文为2040时的Hash值比特平均改变率为64.0382,说明所构造的Hash函数具有非常好且稳定的明文敏感性。明文消息的任何微小变化都会导致Hash值发生较大的改变,保证了当攻击者可进行选择明文攻击时,根据已知的明文-密文对很难伪造和推导出其它的明文-密文对。
另外,经N=150、400、1024、2040次测试,N为统计总次数,算法在明文发生1bit变化的情况下,引起Hash密文结果的变化位数,定义:平均变化位数 ,平均变化率 ,B的均方差 ,P的均方差 ,其中Bi为明文第i位变化引起Hash函数值的变化位数。得到基于该算法在每变化1bit的情况下的平均Hash值变化bit数、变化bit数的均方差ΔB、平均变化概率P以及变化概率的均方差ΔP的值。如表1所示。
表1平均Hash值变化bit数及其相关指标列表
图6是在原始明文情况下密钥的敏感性分析结果,从图6可看出,Hash值比特平均改变率为50.7690,因此具有较好的密钥敏感性保证了对统计分析的安全。
表2平均Hash值变化bit数及其相关指标列表
4.抗生日攻击和碰撞攻击分析
对生日攻击而言,Hash值的比特长度决定了密码系统的安全性。对本文Hash函数而言,128位Hash值长度意味着264位的攻击难度,这个数量级的攻击难度对一般应用来说是足够的。
Hash函数的抗碰撞性是指找到任意两个不同明文具有同样的Hash值在计算上是不可行的。下面对本发明中具有直接延迟反馈Chen系统加密钥流方法构造的Hash函数的抗碰撞性进行了仿真分析。首先取初始文本为一字节,即8bit,ASCII码对应值为0~255,Hash结果取为8bit,即也为0~255的数,这样明文空间与Hash值空间相同。记Hash值空间即像空间中任一值对应明文空间中原像的个数为k,记Hash值空间中具有k个原像的点的个数为N(k),N(1)越大,N(0)和其它各项越小,说明碰撞越少,Hash函数的散乱能力越强,因此从N(k)的分布情况,可看出Hash函数的抗碰撞性能,令n(k)为
其中,K为发生最大碰撞的数值。
图7为k-N(k)的分布图。本文的Hash函数构造算法的N(0)至N(8)依次为93,94,51,13,4,1,0,0,0。k>8均为0。
采用相同的测试方法,图8给出了采用本发明方法与现有三种技术的抗碰撞性分析对比结果,从图中可以看出,本发明给出的Hash函数构造方法较现有一些方法具有更好的抗碰撞性能。
利用本发明给出的Hash函数和密码保护方法可以得到更好的密码保护效果。
Claims (2)
1.一种利用无穷维超混沌构造单向散列函数进行密码保护的方法,首先把明文和密钥进行拆分和数值变换,作为两个具有延迟反馈的超混沌Chen系统的初始值,按照系统的混沌动力学特性进行演化,将演化的最终结果进行量化,将量化值代入密钥流进行迭代,实现明文和密钥信息的混淆和置乱,并基于密码块链接方式产生任意长度明文的128位Hash值,将待认证的密码与该Hash值进行比对,判断其真伪,其特征在于,该方法按以下步骤进行,
步骤1、对待保护的密码作为明文进行分组、拆分和数值变换
将需要保护的密码作为明文,对该明文按128位进行分组,最后一个分组不足128位时,明文后面补上待处理明文的长,然后补0使其达到128位,再将每一组的128位明文,拆分成40bit、40bit、48bit的三个二进制数,将上述每组拆分后得到的三个数的前两个数除以240、后一个数除以242进行变换,分别变换得到3个[0,1]区间上的小数;
步骤2、对密钥进行拆分和数值变换
设定一个128位的初始密钥,将该128位初始密钥按先后顺序分别拆分成40bit、40bit、48bit的三个二进制数,对上述每组拆分后得到的三个数的前两个数除以240、后一个数除以242进行变换,分别变换得到3个[0,1]区间上的小数;
步骤3、待保护密码明文带入超混沌系统进行演化
将步骤1最后变换得到的分组明文的3个[0,1]区间上的小数作为延迟反馈Chen系统的初始值,带入下列直接延迟反馈控制的Chen电路数学模型中:
其中a,b,c为系统参数,k33和τ3为控制参数,
进行演化,得到混沌序列,把最后时刻的三个状态值分别进行x、y、z的坐标变换,使变量的变化范围限制在[-1,1]之间,变换的公式为
其中 tend表示演化的最后时刻,
将演化最后时刻的三个值记为p1、p2、p3;
步骤4、将密钥带入超混沌系统进行演化
将步骤2得到的3个[0,1]区间上的小数作为延迟反馈Chen系统的初始值,带入上步的Chen电路数学模型中进行演化,得到混沌序列,把最后时刻的三个状态值分别进行变换,使变量的变化范围限制在[-1,1]之间,变换的公式为
其中 tend表示演化的最后时刻,
演化最后时刻的三个值为v1,v2,v3;
步骤5、对上步经置乱后明文和密钥进一步混合置乱与混淆
将步骤3、步骤4得到的三个明文p1,p2,p3和三个密钥v1,v2,v3分别代入下列密钥流函数中进行迭代,
密钥流迭代函数如下:
其中p1为经过超混沌系统置乱后的明文,vi为经过超混沌系统置乱后的密钥,n表示置乱后的明文pi和置乱后的密钥vi经过非线性函数f1的迭代次数,f1为线性分段函数,具体的形式如下
该函数中x和k的值在「-h,h]之间,经过至少30次迭代得到三个密钥流迭代输出e(p1,v1),e(p2,v2),e(p3,v3),将得到的三个值分别变换为40bit、40bit、48bit的二进制整数,将得到的二进制数eb1,eb2,eb3依次连接起来,得到128位的二进制整数,这个整数就是第一组128位明文得到的单向散列变换值;
步骤6、对明文长度大于128位的进行密码块链接
采用密码块链接模式对明文长度大于128位的进行链接,最终对整个密码明文得到完整的128位hash值;
步骤7、将需验证的明文经过上述步骤得到的128位hash值与数据库中保存信息进行比对判断,确定密码的合法性
将经上步Hash变换后得到的Hash值存入数据库,对需验证的明文也按上述步骤进行Hash变换,将该变换值与数据库中保存值进行比较,如果相同则通过,否则,则拒绝通过。
2.按照权利要求1所述的方法,其特征在于,步骤5中,将超混沌演化得到明文pi(i=1,2,3)和密钥vi(i=1,2,3)通过密钥流迭代函数进行大于30步的迭代混淆,将得到的三个值分别变换为40bit、40bit、48bit的二进制整数,具体的方法是,
eb1=bin(int((e(p1,v1)+1)×239)),
eb2=bin(int((e(p2,v2)+1)×239)),
eb3=bin(int((e(p3,v3)+1)×247)),
其中int(·)表示取整,bin(·)表示将整数变为二进制的二进制变换,将eb1,eb2,eb3合并成128位二进制,从而得到一个128位明文分组对应的Hash值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100174968A CN101237320B (zh) | 2008-02-04 | 2008-02-04 | 利用无穷维超混沌构造单向散列函数进行密码保护的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100174968A CN101237320B (zh) | 2008-02-04 | 2008-02-04 | 利用无穷维超混沌构造单向散列函数进行密码保护的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101237320A CN101237320A (zh) | 2008-08-06 |
CN101237320B true CN101237320B (zh) | 2010-09-08 |
Family
ID=39920696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100174968A Expired - Fee Related CN101237320B (zh) | 2008-02-04 | 2008-02-04 | 利用无穷维超混沌构造单向散列函数进行密码保护的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101237320B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741560B (zh) * | 2008-11-14 | 2014-07-02 | 北京石油化工学院 | 基于整数非线性映射的散列函数构造方法 |
CN101777975A (zh) * | 2010-03-05 | 2010-07-14 | 西北工业大学 | 一种基于s盒和混沌映射的测试数据加密方法 |
CN102075812B (zh) * | 2010-08-10 | 2013-06-19 | 深圳市九洲电器有限公司 | 一种数字电视的数据接收的方法和系统 |
CN102710416A (zh) * | 2012-06-14 | 2012-10-03 | 上海端口商务咨询有限公司 | 一种社交网站用的密码加密方法 |
CN103490876B (zh) * | 2013-10-18 | 2016-05-18 | 重庆科技学院 | 基于超混沌Lorenz系统构建Hash函数的数据加密方法 |
CN105391544A (zh) * | 2015-11-19 | 2016-03-09 | 北京石油化工学院 | 一种适用于RFID认证系统的Hash函数构造方法 |
CN106301764B (zh) * | 2016-10-09 | 2020-09-25 | 上海泥娃通信科技有限公司 | 基于路径散列的消息摘要方法和系统 |
CN106385312A (zh) * | 2016-12-13 | 2017-02-08 | 陈伟 | 一种基于混沌数谱的数字化混沌加密方法 |
CN107659753B (zh) * | 2017-10-23 | 2019-08-06 | 北京邮电大学 | 图像的压缩加密方法 |
CN108599922B (zh) * | 2018-04-26 | 2021-03-30 | 成都盛拓源科技有限公司 | 新型含密钥消息完整性认证码的生成方法 |
CN110245501B (zh) * | 2019-05-10 | 2023-03-24 | 西安理工大学 | 一种基于无穷维超混沌的图像加密方法 |
CN113343609B (zh) * | 2021-06-21 | 2023-07-07 | 中国人民解放军陆军炮兵防空兵学院 | 基于可公开的混沌流密码加密的通信保密电路设计方法 |
CN115225330A (zh) * | 2022-06-21 | 2022-10-21 | 中国电信股份有限公司 | 一种数据加密方法、装置、电子设备及存储介质 |
CN116545771B (zh) * | 2023-07-05 | 2023-09-15 | 上海伯镭智能科技有限公司 | 一种智能驾驶系统测试数据的智能存储方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770680A (zh) * | 2005-10-17 | 2006-05-10 | 浙江大学 | 输出-密文混和反馈混沌流密码加密解密方法 |
CN1881874A (zh) * | 2006-04-26 | 2006-12-20 | 集美大学 | 基于神经网络混沌吸引子的公钥密码加密和解密方法 |
-
2008
- 2008-02-04 CN CN2008100174968A patent/CN101237320B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770680A (zh) * | 2005-10-17 | 2006-05-10 | 浙江大学 | 输出-密文混和反馈混沌流密码加密解密方法 |
CN1881874A (zh) * | 2006-04-26 | 2006-12-20 | 集美大学 | 基于神经网络混沌吸引子的公钥密码加密和解密方法 |
Non-Patent Citations (2)
Title |
---|
任海鹏、刘丁、韩崇昭.基于直接延迟反馈的混沌反控制.物理学报55 6.2006,55(6),全文. * |
陈军、张为群、何春筱、韦鹏程、张伟.一种利用外键控制的密文反馈混沌分组密码算法研究.计算机科学33 1.2006,55(6),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN101237320A (zh) | 2008-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101237320B (zh) | 利用无穷维超混沌构造单向散列函数进行密码保护的方法 | |
Ali et al. | A novel improvement with an effective expansion to enhance the MD5 hash function for verification of a secure E-document | |
Li et al. | Cryptanalysis and improvement of a chaotic image encryption by first-order time-delay system | |
Zheng et al. | Research for the application and safety of MD5 algorithm in password authentication | |
CN101753304B (zh) | 一种生物特征和密钥绑定的方法 | |
CN104270247A (zh) | 适用于量子密码系统的高效泛Hash函数认证方案 | |
CN105933108B (zh) | 一种对sm4算法实现破解的方法 | |
CN101814985B (zh) | 应用多混沌映射多动态s盒的分组密码系统 | |
CN110263586A (zh) | 一种混沌密码系统的硬件安全评估方法 | |
CN104410490B (zh) | 非线性挤压保护密码s盒的方法 | |
CN101741544B (zh) | 一种基于时滞混沌迭代的数字签名方法及装置 | |
CN106385316B (zh) | Puf模糊提取电路和方法 | |
Fadel et al. | A light-weight ESalsa20 Ciphering based on 1D logistic and chebyshev chaotic maps | |
Liu et al. | Chaos-based color image encryption using one-time keys and Choquet fuzzy integral | |
Awdun et al. | Retracted: The Color Image Encryption Technology Based on DNA Encoding & Sine Chaos | |
CN107204841A (zh) | 一种抵御差分功耗攻击的分组密码多s盒实现的方法 | |
CN102752285A (zh) | 基于高碰撞概率散列函数预先验证的计算机系统登录方法 | |
CN103595523B (zh) | 基于混沌变换的文件加解密方法及其系统 | |
CN103490876B (zh) | 基于超混沌Lorenz系统构建Hash函数的数据加密方法 | |
CN1815948B (zh) | 基于复合非线性数字滤波器的混沌散列构造方法 | |
CN101179375A (zh) | 基于混沌算法的网络数据加密卡 | |
CN104618092A (zh) | 一种信息加密方法及系统 | |
Abdoun | Design, implementation and analysis of keyed hash functions based on chaotic maps and neural networks | |
Nivetha et al. | A comparative analysis of cryptography algorithms | |
CN105678677A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100908 Termination date: 20170204 |