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

摘要:

权利要求书:

1.一种字符串的加密方法,其特征在于,包括如下几个步骤:(1)转码:将某段字符串逐个字符转换为数值型数据,得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},其中数值序列P1、P2的长度与该段字符串的长度一致,记为L;

(2)高位数值序列的置乱:

首先利用外部加密密钥(α、β),按照如下所示公式(1)分别计算得到混沌系统的初始迭代步数m1和抽取间隔n1,

然后令初值x1=α和参数μ=β,对如下公式(2)所示的倾斜帐篷混沌系统进行迭代,k表示迭代次数,xk+1表示第k次迭代得到的混沌信号,其中k=1,2,...,得到混沌序列X,从第m1个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y,

最后将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对高位数值序列P1={P11,P21,...,Pi1,....,PL1}进行置乱,得到置乱后的高位数值序列(3)低位数值序列的双向扩散加密:首先,进行低位数值序列的正向扩散加密利用外部加密密钥(α、β),按照如下所示公式(3)计算得到混沌系统的初始迭代步数m2,从混沌序列X中抽取第m2个元素,作为倾斜帐篷混沌系统的初值 同时得到倾斜帐篷

1 1

混沌系统的参数μ,即μ=β,对低位数值序列P2={P12,P22,...,Pi2,....,PL2}中每个元素Pi2,其中i=1,2,3,...,L,依次进行如下操作:

1

①由初值 和参数μ,对如公式(2)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号 同时对混沌信号 按照如下公式(4)进行整数化处理,得到混沌信号Y1i,②利用混沌信号Y1i对数据Pi2按照如下公式(5)进行正向扩散加密,得到正向扩散加密密文C1i,

其中,Y10和C10为正向扩散加密密钥,1

③根据正向扩散加密密文C1i,以及C1i‑1和Y1i‑1,对倾斜帐篷混沌系统的参数μ按照如下公式(6)进行调整,

从而得到正向扩散加密后的低位数值序列C1={C11,C12,...,C1i,...,C1L};

然后,进行低位数值序列的逆向扩散加密利用外部加密密钥(α、β),按照如下所示公式(7)计算得到混沌系统的初始迭代步数m3,从混沌序列X中抽取第m3个元素,作为倾斜帐篷混沌系统的初值 同时得到倾斜帐篷

2 2

混沌系统的参数μ,即μ=β,对正向扩散加密后的低位数值序列C1={C11,C12,...,C1i,...,C1L}中每个元素C1i,其中i=1,2,3,...,L,依次进行如下操作:2

①由初值 和参数μ,对如公式(2)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号 同时对混沌信号 按照如下公式(8)进行整数化处理,得到混沌信号Y2i,②利用混沌信号Y2i对数据C1i按照如下公式(9)进行逆向扩散加密,得到双向扩散加密密文C2i,

其中,Y20和C20为逆向扩散加密密钥,2

③根据双向扩散加密密文C2i,以及C2i‑1和Y2i‑1,对倾斜帐篷混沌系统的参数μ按照如下公式(10)进行调整,

从而得到双向扩散加密后的低位数值序列C2={C21,C22,...,C2i,...,C2L};

(4)转码:将置乱后的高位数值序列 和双向扩散加密后的低位数值序列C2,进行数值与字符的转换,得到字符序列C,即为该段字符串的加密密文,其中序列C的长度为 且

2.根据权利要求1所述的一种字符串的加密方法,其特征在于:步骤(1)中所述的将某段字符串逐个字符转换为数值型数据,其中某段字符串包括,除空格以外的可显示ASCII码字符,以及GB2312字符集中双字节编码的6763个汉字;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可以用[Pi1,Pi2]表示,相应的数据组合得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2}。

3.根据权利要求1所述的一种字符串的加密方法,其特征在于:步骤(4)中所述的将置乱后的高位数值序列 和双向扩散加密后的低位数值序列C2,进行数值与字符的转换,其转换关系表述如下:

设定一个空字符序列C,将置乱后的高位数值序列 和双向扩散加密后的低位数值序列C2={C21,C22,...,C2i,...,C2L}中各对应元素依次进行如下运算,如果 则

首先判断,如果 且(C2i+161)≥250,那么在字符序列C中添加1个空格,即C=[C,''],并设

然后利用native2unicode(·)函数将数值数据 转换为单个汉字,并添加到字符序列C中,即

如果 则

直接利用char(·)函数将数值数据(C2i+33)转换为单个ASCII码字符,并添加到字符序列C中,即C=[C,char(C2i+33)]。

4.一种字符串的解密方法,其特征在于,包括如下几个步骤:(1)转码:将某段待解密字符串密文 逐个字符转换成数值型数据,得到高位数值序列和低位数值序列 其中数值序列R1、R2的长度为 某段待解密字符串密文 的长度为(2)高位数值序列的反置乱:首先利用外部解密密钥 按照如下所示公式(11)分别计算得到混沌系统的初始迭代步数 和抽取间隔

然后令初值 和参数 对如下公式(12)所示的倾斜帐篷混沌系统进行迭代,k表示迭代次数, 表示第k次迭代得到的混沌信号,其中k=1,2,...,得到混沌序列 从第 个元素开始每隔 个元素取1个,从而形成长度为 的混沌序列

最后将混沌序列 按升序排序,根据序列 排序前、后的位置变化置乱规则,对高位数值序列 进行反置乱,得到反置乱后的高位数值序列(3)低位数值序列的双向扩散解密:首先,进行低位数值序列的逆向扩散解密利用外部解密密钥 按照如下所示公式(13)计算得到混沌系统的初始迭代步数

从混沌序列 中抽取第 个元素,作为倾斜帐篷混沌系统的初值 同时得到倾斜帐篷混沌系统的参数 即

对低位数值序列 中每个元素Ri2,其中 依次进行如下操作:

①由初值 和参数 对如公式(12)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号 同时对混沌信号 按照如下公式(14)进行整数化处理,得到混沌信号②利用混沌信号 对数据Ri2按照如下公式(15)进行逆向扩散解密,得到逆向扩散解密数据

其中, 和R′02为逆向扩散解密密钥,③根据低位数值序列中元素Ri2、Ri‑12对应的数值R′i2、R′i‑12,以及 对倾斜帐篷混沌系统的参数 按照如下公式(16)进行调整,从而得到逆向扩散解密后的低位数值序列然后,进行低位数值序列的正向扩散解密利用外部解密密钥 按照如下所示公式(17)计算得到混沌系统的初始迭代步数

从混沌序列 中抽取第 个元素,作为倾斜帐篷混沌系统的初值 同时得到倾斜帐篷混沌系统的参数 即

对逆向扩散解密后的低位数值序列 中每个元素D1i,其中依次进行如下操作:

①由初值 和参数 对如公式(12)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号 同时对混沌信号 按照如下公式(18)进行整数化处理,得到混沌信号②利用混沌信号 对数据D1i按照如下公式(19)进行正向扩散解密,得到双向扩散解密数据D2i,

其中, 和D10为正向扩散解密密钥,③根据正向扩散解密数据D1i,以及D1i‑1和 对倾斜帐篷混沌系统的参数 按照如下公式(20)进行调整,

从而得到双向扩散解密后的低位数值序列(4)转码:将反置乱后的高位数值序列 和双向扩散解密后的低位数值序列D2,进行数值与字符的转换,得到字符序列PP,即为该段待解密字符串解密后恢复的字符串,其中字符序列PP的长度为

5.根据权利要求4所述的一种字符串的解密方法,其特征在于:步骤(1)中所述的将某段待解密字符串密文 逐个字符转换成数值型数据,得到高位数值序列和低位数值序列 其转换关系表述如下:

首先将某段待解密字符串密文C中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可用[Ri1,Ri2]表示;

然后将数值型数据[Ri1,Ri2]对应组合,得到高位数值序列 和低位数值序列 其中

接着逐个检查低位数值序列R2中是否有Ri2=32的元素,如果是,则将对应高位数值序列R1中后一元素Ri+11数值加1,并删除该数值为32的元素Ri2和其对应高位数值序列R1中的元素Ri1;

最后得到高位数值序列 和低位数值序列

6.根据权利要求4所述的一种字符串的解密方法,其特征在于:步骤(4)中所述的将反置乱后的高位数值序列 和双向扩散解密后的低位数值序列D2,进行数值与字符的转换,其转换关系表述如下:

设定一个空字符序列PP,将反置乱后的高位数值序列 和双向扩散解密后的低位数值序列 中对应元素依次进行如下运算,

如果 则

如果 且D2i≥250,那么在字符序列PP中添加1个空格,即PP=[PP,''];

否则利用native2unicode(·)函数将数值数据 转换为单个汉字,并添加到字符序列PP中,即

如果 则

直接利用char(·)函数将数值数据(D2i)转换为单个ASCII码字符,并添加到字符序列PP中,即PP=[PP,char(D2i)]。