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

摘要:

权利要求书:

1.一种中英文字符串的加密方法,其特征在于,包括如下几个步骤:(1)转码:将某段中英文字符串逐个字符转换为数值型数据,得到数值序列P={P1,P2,...,Pi,....,P2×L},再将数值序列P逐个元素转换成7bits的二进制数据,得到二进制序列B={B1,B2,...,Bi,....,B14×L},其中所述中英文字符串的长度为L,所述数值序列P的长度为2×L,所述二进制序列B的长度为14×L;

(2)二进制序列B的置乱:

首先利用外部加密密钥(α、β),按照如下公式(1)计算分别得到倾斜帐篷混沌映射的初值x1、参数μ和取样间隔m,

其中,PB_1为二进制序列B中元素为二进制‘1’的总个数,PB_0为二进制序列B中元素为二进制‘0’的总个数,

然后利用初值x1和参数μ,对如下公式(2)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数,xk+1表示第k次迭代得到的混沌信号,k=1,2,...,得到混沌序列X,从中每隔m个元素取1个,从而形成长度为14×L的混沌序列Y={Y1,Y2,...,Y14×L},

最后将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对二进制序列B={B1,B2,...,Bi,....,B14×L}进行置乱,得到置乱后的二进制序列(3)置乱后二进制序列 的分组、移位:首先根据switch1_k=mod(PB_1,4),对置乱后的二进制序列 选择不同的分组方式,当switch1_k=0时,将二进制序列 中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,当switch1_k=1时,将二进制序列 中元素从尾到头依次逆向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,当switch1_k=2时,将二进制序列 中元素从两头向中间以6个元素为单位进行分组,依次正向从首端取3个元素、正向从尾端取3个元素,逐步向中间逼近,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,当switch1_k=3时,将二进制序列 中元素从两头向中间以6个元素为单位进行分组,依次逆向从尾端取3个元素、逆向从首端取3个元素,逐步向中间逼近,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,从而得到分组后的二进制序列,表示为 其中每一个二进制分组序列均包含6个二进制位,且然后令混沌初值z1=Y14×L、参数μ1=μ,将每一个二进制分组序列BF{i},其中依次进行如下操作:

S11.由混沌信号zi和参数μ1,对如下公式(3)所示的倾斜帐篷混沌映射进行单次迭代,得到混沌信号zi+1,

S12.利用混沌信号zi+1,按照如下公式(4)计算分别得到移位方向B_shift、移位个数B_k,

当B_shift>0时,将二进制分组序列BF{i}中元素循环左移B_k位,得到移位后的二进制分组序列 并利用bin2dec(·)函数将二进制分组序列 转换成数值型数据当B_shift<0时,将二进制分组序列BF{i}中元素循环右移B_k位,得到移位后的二进制分组序列 并利用bin2dec(·)函数将二进制分组序列 转换成数值型数据S13.比较i与 的大小,若 则利用数值型数据 对倾斜帐篷混沌映射的参数μ1按照如下公式(5)进行调整,然后转向步骤S11,若 则停止操作,得到数值序列

(4)转码:将数值序列 进行数值与字符的转换,其转换关系表述为,设定一个空字符序列C,将数值序列 中两个元素为一组 依次进行如下运算,

如果 且 为奇数,则利用char(·)函数将数值型数据 转换为单个英文字符,并添加到字符序列C中,即

如果 或 为偶数,则利用native2unicode(·)函数将数值型数据转换为单个中文字符,并添加到字符序列C中,即从而得到字符序列C,即为该段中英文字符串的加密密文,其中序列C的长度为 且

2.根据权利要求1所述的一种中英文字符串的加密方法,其特征在于:步骤(1)中所述的将某段中英文字符串逐个字符转换为数值型数据,其中某段中英文字符串包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码汉字,以及可显示ASCII码字符;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],并将区数值数据和位数值数据均减去128,即[区数值数据‑128,位数值数据‑128],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可以用数据[P2k‑1,P2k]表示,k=1,2,...,L,从而得到数值序列P={P1,P2,...,Pi,....,P2×L};将数值序列P逐个元素转换成7bits的二进制数据,是指采用dec2bin(·,7)函数,用二进制数据[B7l‑6,B7l‑5,B7l‑4,B7l‑3,B7l‑2,B7l‑1,B7l]表示,l=1,

2,...,2×L,从而得到二进制序列B={B1,B2,...,Bi,....,B14×L}。

3.一种中英文字符串的解密方法,用于对根据权利要求1或2所述的中英文字符串的加密方法所获得的加密字符串进行解密,其特征在于,所述中英文字符串的解密方法包括如下几个步骤:

(1)转码:将某段待解密的中英文字符串密文 逐个字符转换成数值型数据,得到数值序列 再将数值序列R逐个元素转换成6bits的二进制数据,得到二进制序列 其中所述该段待解密的中英文字符串的长度为 所述数值序列R的长度为 所述二进制序列D的长度为 且(2)二进制序列D的移位、组合:

首先利用外部解密密钥 按照如下公式(6)计算分别得到倾斜帐篷混沌映射的初值 参数 和取样间隔

其中,RD_1为二进制序列D中元素为二进制‘1’的总个数,RD_0为二进制序列D中元素为二进制‘0’的总个数减去某数值,某数值表示为利用初值 和参数 对如下公式(7)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数, 表示第k次迭代得到的混沌信号,k=1,2,...,得到混沌序列 从中每隔 个元素取1个,从而形成混沌序列 其中然后令混沌初值 参数 将二进制序列 中元素从头到尾依次正向以6个元素为单位进行分组,将每一个分组后的二进制序列DF{i},其中依次进行如下操作,

S21.由混沌信号 和参数 对如下公式(8)所示的倾斜帐篷混沌映射进行单次迭代,得到混沌信号

S22.利用混沌信号 按照如下公式(9)计算分别得到移位方向D_shift、移位个数D_k,

当D_shift>0时,将二进制分组序列DF{i}中元素循环右移D_k位,得到移位后的二进制分组序列

当D_shift<0时,将二进制分组序列DF{i}中元素循环左移D_k位,得到移位后的二进制分组序列

S23.比较i与 的大小,若 则停止操作,若 则利用二进制分组序列DF{i},对倾斜帐篷混沌映射的参数 按照如下公式(10)进行调整,然后转向步骤S21;

最后,设定一个空二进制序列PP,根据switch2_k=mod(RD_1,4),将二进制序列选择不同的组合方式填放到二进制序列PP中,当switch2_k=0时,将二进制序列 中6个元素正向依次从头到尾填放到二进制序列PP中,直至全部填完,再删除二进制序列PP尾端 个二进制‘0’,当switch2_k=1时,将二进制序列 中6个元素逆向依次从尾到头填放到二进制序列PP中,直至全部填完,再删除二进制序列PP首端 个二进制‘0’,当switch2_k=2时,将二进制序列 中6个元素从两头向中间依次填放到二进制序列PP中,前3个元素正向填放到二进制序列PP首端,后3个元素正向填放到二进制序列PP尾端,逐步向中间逼近,直至全部填完,再删除二进制序列PP最中间尾端 个二进制‘0’,

当switch2_k=3时,将二进制序列 中6个元素从两头向中间依次填放到二进制序列PP中,前3个元素逆向填放到二进制序列PP尾端,后3个元素逆向填放到二进制序列PP首端,逐步向中间逼近,直至全部填完,再删除二进制序列PP最中间首端 个二进制‘0’,

从而得到移位组合后的二进制序列PP,表示为{PP1,PP2,...,PPi,...,PPLL},其中二进制序列PP的长度为

(3)二进制序列PP的反置乱:

将混沌序列 按升序排序,根据序列 排序前、后的位置变化置乱规则,对二进制序列PP={PP1,PP2,...,PPi,...,PPLL}进行反置乱,得到反置乱后的二进制序列(4)转码:将反置乱后的二进制序列 进行二进制位与字符的转换,得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中所述字符序列RR的长度为L,且L=LL/14。

4.根据权利要求3所述的一种中英文字符串的解密方法,其特征在于:步骤(1)中所述的将某段待解密的中英文字符串密文 逐个字符转换成数值型数据,其转换关系是指采用unicode2native(·)函数,将某段待解密的中英文字符串密文 中单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],同时将区数值数据、码数值数据分别减去176、161,并添加到数值序列R中,即R=[R,[区数值数据‑176,位数值数据‑161]],或将某段待解密的中英文字符串密文 中英文字符转换为ASCII码数值数据,表示为[ASCII码数值数据],同时将ASCII码数值数据减去33,并添加到数值序列R中,即R=[R,ASCII码数值数据‑33],从而得到数值序列 步骤(1)中所述的将数值序列R逐个元素转换成6bits的二进制数据,其转换关系是指将采用dec2bin(·,6)函数,将数值型数据转换为6bits的二进制位,并添加到二进制序列D中,即D=[D,dec2bin(Ri,6)],从而得到二进制序列

5.根据权利要求4所述的一种中英文字符串的解密方法,其特征在于:步骤(4)中所述的将反置乱后的二进制序列 进行二进制位与字符的转换,其转换关系表述如下:

设定一个空字符序列RR,将二进制序列 中14个元素划分为一组其中k=1,2,...,L,按组依次进行如下运算,首先将 转换为两个数值型数据RT1和RT2,即然后判断RT1的大小,如果RT1>0,则利用native2unicode(·)函数将数值型数据[RT1,RT2]转换为单个中文字符,并添加到字符序列RR中,即RR=[RR,native2unicode([RT1+128,RT2+128])],如果RT1=0,则利用char(·)函数将数值型数据RT2转换为单个英文字符,并添加到字符序列RR中,即RR=[RR,char(RT2+33)],从而得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中字符序列RR的长度为L。