[发明专利]一种基于混沌系统的单向加密方法有效
申请号: | 201611019140.9 | 申请日: | 2016-11-14 |
公开(公告)号: | CN106301766B | 公开(公告)日: | 2019-08-09 |
发明(设计)人: | 李飞;刘勇;覃周;高路路;徐翔 | 申请(专利权)人: | 成都信息工程大学 |
主分类号: | H04L9/06 | 分类号: | H04L9/06;H04L9/00 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 谈杰 |
地址: | 610225 四川省成都*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于混沌系统的单向加密方法,用户随机输入的任意长度字符串转换的二进制编码的长度值利用Logistic混沌方程Xn+1=uXn(1‑Xn),产生Logistic混沌方程的X0、u、与初始值C固定数值;然后把X0、u、与初始值C固定数值运用到Logistic混沌方程中;最后对混沌计算生成的值C、M、y值进行处理,生成一个固定长度的字符串。本发明的单向加密方法类似哈希函数,能够将任意长度的输入进行处理,最后都可以输出一个固定长度的值,由于混沌系统的特性,同时使得该算法具有了明文可以加密成密文,但密文不能解密出明文的单向性。 | ||
搜索关键词: | 一种 基于 混沌 系统 单向 加密 方法 | ||
【主权项】:
1.一种基于混沌系统的单向加密方法,其特征在于,该基于混沌系统的单向加密方法包括以下步骤:第一步,随机输入一个任意长度的字符串str;第二步,将该字符串按照某种编码方式转换成二进制码,并计算出该二进制长度len_str;第三步,判断该长度len_str是否为3的倍数,即len_str%3=0;如果不是3的倍数,则进行第四步;若是则划分为y个长度为3bit的二进制组,其中y=len_str/3;然后在每个二进制组前填充一个0,跳转到第5步;第四步,如果不是3的倍数,则在前面添加len_str%3个0在二进制字符串前面,划分为y个长度为3bit的二进制,其中
然后在每个二进制组前填充一个0,再进行第五步;第五步,每个二进制组按BCD编码的方式进行转换成一个数ai,然后将所有ai相加得到一个值C,C=a1+a2+...+ay,其中i∈[1,y],再将所有数ai组合成一个大数M,M=a1*100+a2*101+a3*102+...+ay*10n‑1;第六步,判断C是否大于K,如果大于K,则C=[C/2],再重复此步骤,若C小于K,进行第七步;第七步,计算
X0=M/10y;u=4‑X0/10,u取小数点后
位;第八步,带入Logistic混沌方程公式Xn+1=uXn(1‑Xn),进行循环计算C次,得到值Xc;第九步,以Xc为初始值,再带入Logistic混沌方程迭代4*N次,其中N为自定义输出的密文字符串长度,每次迭代的结果记为Xi;Xi>=0.5,则记1;Xi<0.5,则记0,共有4*N个0或1;第十步,再以四个0或1的二进制为一组,转换成一个16进制的字符,最后拼接成一个固定长度为N的字符串,该字符串为最后的密文;其中,ai表示某四个二进制按照BCD码转换成一个数;C表示经过第六步处理后的结果值,即求所有ai加起来的和,即C=∑ai,i∈[1,y],再判断C是否大于K,如果大于K,则C=[C/2],再重复此步骤,最后得到一个满足条件的C,再将此C值带入方程;len_str表示用户随机输入的任意长度字符串转换的二进制编码的长度值;y表示ai的个数,
M表示由ai组合成的一个数,M=a1*100+a2*101+a3*102+...+ay*10y‑1。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都信息工程大学,未经成都信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611019140.9/,转载请声明来源钻瓜专利网。