[发明专利]利用无穷维超混沌构造单向散列函数进行密码保护的方法有效
申请号: | 200810017496.8 | 申请日: | 2008-02-04 |
公开(公告)号: | CN101237320A | 公开(公告)日: | 2008-08-06 |
发明(设计)人: | 任海鹏;庄元 | 申请(专利权)人: | 西安理工大学 |
主分类号: | H04L9/00 | 分类号: | H04L9/00 |
代理公司: | 西安弘理专利事务所 | 代理人: | 罗笛 |
地址: | 710048*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 无穷 混沌 构造 单向 函数 进行 密码保护 方法 | ||
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]之间,变换的公式为
其中
将演化最后时刻的三个值记为p1、p2、p3;
步骤4、将密钥带入超混沌系统进行演化
将步骤2得到的3个[0,1]区间上的小数作为延迟反馈Chen系统的初始值,带入上步的Chen电路数学模型中进行演化,得到混沌序列,把最后时刻的三个状态值分别进行变换,使变量的变化范围限制在[-1,1]之间,变换的公式为
其中
演化最后时刻的三个值为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值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安理工大学,未经西安理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810017496.8/1.html,转载请声明来源钻瓜专利网。