欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019102154100
申请人: 南通大学
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-07-23
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种字符串的加密方法,其特征在于,包括如下几个步骤:(1)转码:将某段字符串逐个字符转换为数值型数据,得到高位数值序列P1={P11 ,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},其中数值序列P1、P2的长度与该段字符串的长度一致,记为L;(2)产生混沌序列:首先利用外部加密密钥(α、β),按照如下所示公式分别计算得到混沌系统的初值x1、参数μ、初始迭代步数m和抽取间隔n1、n2,令则x1=mod(kp1+α,0.99999)+0.00001,μ=β+mod(kp1,4‑β),其中,α∈(0,1),β∈[3.75,4),从而保证x1∈(0,1),μ∈[3.75,4),m∈[419,479]的整数,n1∈[1,23]的整数,n2∈[1,29]的整数,可见混沌系统的初值x1、参数μ、初始迭代步数m和抽取间n1、n2不仅与外部密钥α、β有关,而且会随着该段待加密的字符串变化;然后由初值x1和参数μ,对如下公式所示的Logistic混沌系统进行迭代,k表示迭代次数,xk+1表示第k次迭代得到的混沌信号,k=1,2,...,xk+1=μ×xk×(1‑xk)得到混沌序列X,从第m个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y,并从第m个元素开始每隔n2个元素取1个,从而形成长度为L的混沌序列Z;(3)高位、低位数值序列置乱:将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对高位数值序列P 1 ={ P 1 1 ,P 2 1 , . . . ,P i 1 , . . . . ,P L 1 } 进行置乱,得到置乱后的高位数值序列用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可以用数据[Pi1,Pi2]表示,相应的数据组合得到高位数值序列P1={P11 ,P21 ,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2}。3.根据权利要求1所述的一种字符串的加密方法,其特征在于:步骤(4)中所述的将置乱后的高位数值序列和置乱后的低位数值序列进行数值与字符的转换,其转换关系

表述如下:设定一个空字符序列C,将置乱后的高位数值序列和置乱后的

低位数值序列中各对应元素依次进行如下运算,如果则首先判断,如果那么将对应低位数值数据加128,即然后判断,如果且那么在字符序列C中添加1个空格,即C=[C,''],并设接着利用native2unicode(·)函数将数值数据转换为单个汉字,并添加到字符

序列C中,即如果则首先判断,如果那么将对应低位数值数据减128,即然后利用char(·)函数将数值数据转换为单个ASCII码字符,并添加到字符序列C中,即4.一种字符串的解密方法,其特征在于,包括如下几个步骤:(1)转码:将某段待解密字符串密文逐个字符转换成数值型数据,得到高位数值序列其中,从而保证的整数,的整数,的整数,可见混沌系统的初值参数初始迭代步数和抽取间隔不仅与外部密钥有关,而且会随着待解密字符串密文变化;然后由初值和参数对如下公式所示的Logistic混沌系统进行迭代,k表示迭代次数,表示第k次迭代得到的混沌信号,k=1,2,...,得到混沌序列从第个元素开始每隔个元素取1个,从而形成长度为的混沌序列并从第个元素开始每隔个元素取1个,从而形成长度为的混沌序列(3)高位、低位数值序列反置乱:将混沌序列按升序排序,根据序列排序前、后的位置变化置乱规则,对高位数值序列进行反置乱,得到反置乱后的高位数值序列

接着逐个检查低位数值序列R2中是否有Ri2=32的元素,如果是,则将对应高位数值序列R1中后一元素Ri+11数值加1,并删除该数值为32的元素Ri2和对应高位数值序列R1中的元素Ri1;最后得到高位数值序列和低位数值序列6.根据权利要求4所述的一种字符串的解密方法,其特征在于:步骤(4)中所述的将反置乱后的高位数值序列和反置乱后的低位数值序列进行数值与字符的转换,其转换

关系表述如下:设定一个空字符序列PP,将反置乱后的高位数值序列和反置

乱后的低位数值序列中对应元素依次进行如下运算,如果则首先判断,如果那么将对应低位数值数据加128,即然后判断,如果且那么在字符序列PP中添加1个空格,即PP=[PP,''];否则利用native2unicode(·)函数将数值数据转换为单个汉字,并添加

到字符序列PP中,即如果则首先判断,如果那么将对应低位数值数据减128,即然后利用char(·)函数将数值数据转换为单个ASCII码字符,并添加到字符序列PP中,即