利索能及
我要发布
收藏
专利号: 2016110191409
申请人: 成都信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-10-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于混沌系统的单向加密方法,其特征在于,该基于混沌系统的单向加密方法包括以下步骤:第一步,随机输入一个任意长度的字符串str;

第二步,将该字符串按照某种编码方式转换成二进制码,并计算出该二进制长度len_str;

第三步,判断该长度len_str是否为3的倍数,即len_str%3=0;如果不是3的倍数,则进行第四步;若是则划分为len_str/3个长度为3bit的二进制组;然后在每个二进制组前填充一个0,跳转到第5步。

第四步,如果不是3的倍数,则在前面添加len_str%3个0在二进制字符串前面,划分为个长度为3bit的二进制,然后在每个二进制组前填充一个0,再进行第五步;

第五步,每个二进制组按BCD编码的方式进行转换成一个数ai,然后将所有ai相加得到一个值C,C=a1+a2+...+an;再将所有数ai拼接成一个大数M,M=a1*100+a2*101+a3*102+...+an*10n-1;其中,第六步,判断C是否大于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次,每次迭代的结果记为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];len_str表示用户随机输入的任意长度字符串转换的二进制编码的长度值;y表示ai的个数, M表示由ai组合成的一个数,M=a1*100+a2*101+a3*102+...+ay*10y-1。

2.如权利要求1所述的基于混沌系统的单向加密方法,其特征在于,所述Logistic混沌方程中Xn的初始值为X0,且X0在[0,1]内;u是混沌方程中的u值,u在[0,4]内;当u<3.57时,Logistic方程出现准周期性变化,当u>3.57后,Logistic出现混沌状态。

3.如权利要求1所述的基于混沌系统的单向加密方法,其特征在于,ai的生成方法:将输入字符转换的二进制,判断该二进制长度len_str是否为3的倍数,即len_str%3=0;若是则划分为len_str/3个长度为3bit的二进制组,然后在每个二进制组前填充一个0;如果不是3的倍数,则在前面添加len_str%3个0在二进制字符串头部,然后划分为个长度为3bit的二进制组,然后在每个二进制组前填充一个0,最后每个组按BCD码的方式进行转换成一个数ai;

M的生成方法:将所有数ai拼接成一个大数M,拼接方法为:M=a1*100+a2*101+a3*102+...+an*10n-1;

X0的生成方法:M是一个长度为y的正整数,利用M生成一个[0,1]范围内的X0,公式表示为:X0=M/10y;

u的生成方法:u为大于3.57的数使Logistic混沌方程进入混沌状态,利用X0进行除以

10,使之进入[0,0.1)内,再用4减去该除数即得到u];公式表示为:u=4-X0/10,u取小数点后 位;

C值的生成方法:先计算C值:C=a1+a2+...+an;然后用for循环判断C是否小于某个固定值K,若C小于K,则退出循环,否则进行C=[C/2],再循环判断。

4.如权利要求1所述的基于混沌系统的单向加密方法,其特征在于,所述C是让X0进入混沌状态混沌方程初始迭代的次数;C过大影响整个加密的效率,通过设置数K控制C为至少能使K0进入混沌状态的最小迭代次数。