利索能及
我要发布
收藏
专利号: 2019108741870
申请人: 南通大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-04-28
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

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

(2)二进制位序列B的双向移位加密:将二进制位序列B进行正向移位加密后再进行逆向移位加密,具体包括:

1)进行二进制位序列B的正向移位加密:首先利用外部加密密钥(α、β),计算得到倾斜帐篷混沌映射的初值和参数 其中,

PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数,利用初值x1和参数μ,对如下公式(1)所示的倾斜帐篷混沌映射进行200次迭代,得到第200次迭代后的混沌信号x201,然后令混沌信号初值y1=x201,并从二进制位序列B中从头到尾正向取9个元素,得到第一个二进制位分组序列,表示为BF{1}={B1,B2,...,B8,B9},令i=1,进行如下操作:S11.由混沌信号yi和参数μ,对如公式(1)所示倾斜帐篷混沌映射进行单次迭代,得到混沌信号yi+1,同时利用混沌信号yi+1,按照如下公式(2)计算分别得到移位方向direction_shift1、移位个数k_shift1,其中,

S12.当direction_shift1=0时,将二进制位分组序列BF{i}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列 表示为当direction_shift1=1时,将二进制位分组序列BF{i}中元素循环右移k_shift1位,得到正向移位后的二进制位分组序列 表示为S13.比较i与m的大小,若i<m‑1,则利用正向移位后的二进制位分组序列中前7个元素,按照公式(3)对混沌信号yi+1进行调整,

其中bin2dec({BB9×i‑8,BB9×i‑7,...,BB9×i‑3,BB9×i‑2})操作表示将二进制位分组序列{BB9×i‑8,BB9×i‑7,...,BB9×i‑1,BB9×i}转换为数值型数据,同时将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列{B8×i‑7,B8×i‑6,...,B8×i,B8×i+1}={BB9×i‑8,BB9×i‑7,...,BB9×i‑1,BB9×i},并令i=i+1,随后从二进制位序列B中正向取9个相应元素,得到第i个二进制位分组序列,表示为BF{i}={B8×i‑7,B8×i‑6,...,B8×i,B8×i+1},然后转向S11,若i=m‑1,则利用正向移位后的二进制位分组序列中前7个元素,按照如公式(3)所示对混沌信号yi+1进行调整,同时将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列{B8×i‑7,B8×i‑6,...,B8×i,B8×i+1}={BB9×i‑8,BB9×i‑7,...,BB9×i‑1,BB9×i},并令i=i+1,随后从二进制位序列B中正向取9个相应元素,得到第m个二进制位分组序列,表示为BF{m}={B8×m‑8,B8×m‑7,...,B8×m‑1,B8×m},然后转向S11,若i=m,则将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列{B8×m‑8,B8×m‑7,...,B8×m‑1,B8×m}={BB9×m‑8,BB9×m‑7,...,BB9×m‑1,BB9×m},并令序列与序列B相等, 停止操作,从而得到正向移位加密后的二进制位序列

2)进行正向移位加密后二进制位序列 的逆向移位加密:首先利用初值x1和参数μ,对如公式(1)所示的倾斜帐篷混沌映射进行300次迭代,得到第300次迭代后的混沌信号x301,然后令混沌信号初值z1=x301,并从二进制位序列 中从尾到头逆向取9个元素,得到第一个二进制位分组序列,表示为 令i=1,进行如下操作:

S21.由混沌信号zi和参数μ,对如公式(1)所示倾斜帐篷混沌映射进行单次迭代,得到混沌信号zi+1,同时利用混沌信号zi+1,按照如下公式(4)计算分别得到移位方向direction_shift2、移位个数k_shift2,其中,

S22.当direction_shift2=0时,将二进制位分组序列BN{i}中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列 表示为当direction_shift2=1时,将二进制位分组序列BN{i}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列 表示为S23.比较i与m的大小,若i<m‑1,则利用逆向移位后的二进制位分组序列中前7个元素,按照公式(5)对混沌信号zi+1进行调整,同时将二进制位序列 中相应元素替换为逆向移位后的二进制位分组序列并令i=i+1,随

后从二进制位序列 中逆向取9个相应元素,得到第i个二进制位分组序列,表示为然后转向S11,

若i=m‑1,则利用逆向移位后的二进制位分组序列中前7个元素,按照如公式(5)所示对混沌信号zi+1进行调整,同时将二进制位序列 中相应元素替换为逆向移位后的二进制位分组序列并令i

=i+1,随后从二进制位序列B中逆向取9个相应元素,得到第m个二进制位分组序列,表示为然后转向S11,

若i=m,则将二进制位序列 中相应元素替换为逆向移位后的二进制位分组序列并令序列 与序列 相等,

从而得到双向移位加密后的二进制位序列(3)转码:首先将双向移位加密后的二进制位序列 中元素从头到尾依次正向以6个元素为单位进行分组,如果剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,进行bin2dec(·)操作,得到数值序列再将数值序列DB进行数值与字符的转换,得到字符序列C,为该段中英文字符串的加密密文,其中数值序列DB的长度为 字符序列C的长度为 且

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

3.根据权利要求1所述的一种中英文字符串加密方法,其特征在于:步骤(3)中所述的将数值序列DB进行数值与字符的转换,其转换关系表述如下:首先设定一个空字符序列C,将数值序列 中两个元素为一组[DB2t‑1,DB2t],其中 依次利用native2unicode(·)函数将数值型数据[DB2t‑1+180,DB2t+170]转换为单个中文字符,并添加到字符序列C中,C=[C,native2unicode([DB2t‑1+180,DB2t+170])];

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