1.一种中文字符串的加密方法,其特征在于,包括如下几个步骤:
(1)转码:将某段中文字符串逐个字符转换为数值型数据,得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},其中所述高位数值序列P1、所述低位数值序列P2的长度与所述中文字符串的长度一致,记为L;
(2)高位数值序列的逆向扩散加密、低位数值序列的正向扩散加密:对高位数值序列P1和低位数值序列P2分别进行逆向扩散加密和正向扩散加密,得到高位数值序列P1的逆向扩散加密密文序列C1={C11,C12,...,C1i,...,C1L}和低位数值序列P2的正向扩散加密密文序列C2={C21,C22,...,C2i,...,C2L};
所述对高位数值序列P1和低位数值序列P2分别进行逆向扩散加密和正向扩散加密包括:首先利用外部加密密钥(α、β),令初值x1=α和参数μ=β,对如下公式(1)所示的切比雪夫混沌系统进行迭代,得到混沌序列X={x1,x2,...,x300,x301},xk+1=cos(μ·arccos(xk)) (1)其中,k表示迭代次数,k=1,2,...,300,xk+1表示第k次迭代得到的混沌信号;
从混沌序列X中抽取元素x300作为如公式(2)所示的切比雪夫混沌系统的初值y1,y1=x300,且令切比雪夫混沌系统的参数μ1=β,并对混沌信号y1按照如下公式(3)进行整数化处理,得到整数化处理后的混沌信号Y1,yk+1=cos(μ1·arccos(yk)) (2)Y1=mod(y1×1014,74) (3)同时从混沌序列X中抽取元素x301,作为如公式(4)所示的切比雪夫混沌系统的初值z1,z1=x301,且令切比雪夫混沌系统的参数μ2=β,并对混沌信号z1按照如下公式(5)进行整数化处理,得到整数化处理后的混沌信号Z1,zk+1=cos(μ2·arccos(zk)) (4)Z1=mod(z1×1014,94) (5)然后同时对高位数值序列P1={P11,P21,...,Pi1,....,PL1}中每个元素PL+1-i1,以及低位数值序列P2={P12,P22,...,Pi2,....,PL2}中每个元素Pi2,其中i=1,2,3,...,L,依次进行如下操作:S11.由混沌信号yi和参数μ1,对如公式(2)所示切比雪夫混沌系统进行单次迭代,得到混沌信号yi+1,并对混沌信号yi+1按照如公式(3’)进行整数化处理,得到整数化处理后的混沌信号Yi+1,同时由混沌信号zi和参数μ2,对如公式(4)所示切比雪夫混沌系统进行单次迭代,得到混沌信号zi+1,并对混沌信号zi+1按照如公式(5’)进行整数化处理,得到整数化处理后的混沌信号Zi+1;
14
Yi+1=mod(yi+1×10 ,74) (3’)Zi+1=mod(zi+1×1014,94) (5’)S12.利用整数化处理后的混沌信号Yi+1、Yi以及对应的低位数值序列元素PL+1-i2,对数据PL+1-i1按照如下公式(6)进行逆向扩散加密,得到逆向扩散加密密文C1L+1-i,其中,C1L+1为逆向扩散加密密钥,同时利用整数化处理后的混沌信号Zi+1、Zi,对数据Pi2按照如下公式(7)进行正向扩散加密,得到正向扩散加密密文C2i,其中,C20为正向扩散加密密钥,
S13.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列逆向扩散加密密文C1L+1-i、C1L+2-i和整数化处理后的混沌信号Yi、Yi+1以及对应的低位数值序列正向扩散加密密文C2i,对切比雪夫混沌系统的参数μ1按照如下公式(8)进行调整,同时根据低位数值序列正向扩散加密密文C2i、C2i-1和整数化处理后的混沌信号Zi、Zi+1以及对应的高位数值序列逆向扩散加密密文C1L+1-i,对切比雪夫混沌系统的参数μ2按照如下公式(9)进行调整,然后转向步骤S11;
(3)转码:将高位数值序列的逆向扩散加密密文序列C1和低位数值序列的正向扩散加密密文序列C2,进行数值与字符的转换,得到字符序列C,即为该段中文字符串的加密密文,其中序列C的长度为 且
2.根据权利要求1所述的一种中文字符串的加密方法,其特征在于:步骤(1)中所述的将某段中文字符串逐个字符转换为数值型数据,其中某段中文字符串包括GB2312字符集中的中文标点符号和GB2312字符集中双字节编码的汉字;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据]形式,即为[Pi1,Pi2],相应的数据组合得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2}。
3.根据权利要求1所述的一种中文字符串的加密方法,其特征在于:步骤(3)中所述的将高位数值序列的逆向扩散加密密文序列C1和低位数值序列的正向扩散加密密文序列C2,进行数值与字符的转换,其转换关系表述如下:设定一个空字符序列C,将高位数值序列的逆向扩散加密密文序列C1={C11,C12,...,C1i,...,C1L}和低位数值序列的正向扩散加密密文序列C2={C21,C22,...,C2i,...,C2L}中各对应元素依次进行如下运算,如果C1i=0,则
首先判断是否(C2i+161)=161,如果是,那么在字符序列C中添加1个中文字符'②',即C=[C,'②'],并设C2i=C2i+1,然后利用native2unicode(·)函数将数值数据[C1i+161,C2i+161]转换为单个中文字符,并添加到字符序列C中,即C=[C,native2unicode([C1i+161,C2i+161])];
如果C1i=1,则利用native2unicode(·)函数将数值数据[C1i+162,C2i+161]转换为单个中文字符,并添加到字符序列C中,即C=[C,native2unicode([C1i+162,C2i+161])];
如果C1i>1,则
首先判断是否(C1i+174)=215且(C2i+161)>249,如果是,那么在字符序列C中添加1个中文字符'①',即C=[C,'①'],并设C1i=C1i+1,然后利用native2unicode(·)函数将数值数据[C1i+174,C2i+161]转换为单个中文字符,并添加到字符序列C中,即C=[C,native2unicode([C1i+174,C2i+161])]。
4.一种中文字符串的解密方法,用于对根据权利要求1至3中任一项所述的中文字符串的加密方法所获得的加密字符串进行解密,其特征在于,所述中文字符串的解密方法包括如下几个步骤:(1)转码:将某段待解密的中文字符串密文序列 逐个字符转换成数值型数据,得到高位数值序列 和低位数值序列 其中所述高位数值序列R1、所述低位数值序列R2的长度为 所述待解密中文字符串密文序列 的长度为(2)高位数值序列的逆向扩散解密、低位数值序列的正向扩散解密:对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密,得到高位数值序列逆向扩散解密后的序列 和低位数值序列正向扩散解密后的序列所述对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密包括:首先利用外部解密密钥 令初值 和参数 对如下公式(10)所示的
切比雪夫混沌系统进行迭代,得到混沌序列
其中,k表示迭代次数,k=1,2,...,300, 表示第k次迭代得到的混沌信号,从混沌序列 中抽取元素 作为如公式(11)所示的切比雪夫混沌系统的初值且令切比雪夫混沌系统的参数 并对混沌信号 按照如下公式(12)进行整数化处理,得到整数化处理后的混沌信号
同时从混沌序列 中抽取元素 作为如公式(13)所示的切比雪夫混沌系统的初值且令切比雪夫混沌系统的参数 并对混沌信号 按照如下公式(14)进行整数化处理,得到整数化处理后的混沌信号
然后同时对高位数值序列 中每个元素 以及低位数
值序列 中每个元素Ri2,其中 依次进行如下操作:
S21.由混沌信号 和参数 对如公式(11)所示切比雪夫混沌系统进行单次迭代,得到混沌信号 同时对混沌信号 按照如公式(12’)进行整数化处理,得到整数化处理后的混沌信号 同时由混沌信号 和参数 对如公式(13)所示切比雪夫混沌系统进行单次迭代,得到混沌信号 同时对混沌信号 按照如公式(14’)进行整数化处理,得到整数化处理后的混沌信号S22.利用整数化处理后的混沌信号 对数据 按照如下公式(15)进行逆向扩散解密,得到逆向扩散解密后的组合数据
其中, 为逆向扩散解密密钥,
同时利用整数化处理后的混沌信号 对数据Ri2按照如下公式(16)进行正向扩散解密,得到正向扩散解密后数据D2i,其中,R02为正向扩散解密密钥,
S23.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列元素和整数化处理后的混沌信号 以及对应的低位数值序列元素Ri2,对切比雪夫混沌系统的参数 按照如下公式(17)进行调整,
根据低位数值序列元素Ri2、Ri-12和整数化处理后的混沌信号 以及对应的高位数值序列元素 对切比雪夫混沌系统的参数 按照如下公式(18)进行调整,然后转向步骤S21;
最后,将高位数值序列逆向扩散解密后的组合数据序列
逐个元素依次按照如下公式(19)进行运算,得到高位数值序列逆向扩散解密后的序列从而得到高位数值序列逆向扩散解密后的序列 低位数值序列正向扩散解密后的序列
(3)转码:将高位数值序列逆向扩散解密后的序列D1和低位数值序列正向扩散解密后的序列D2,进行数值与字符的转换,得到字符序列PP,即为该段待解密中文字符串解密后恢复的中文字符串,其中字符序列PP的长度为
5.根据权利要求4所述的一种中文字符串的解密方法,其特征在于:步骤(1)中所述的将某段待解密中文字符串密文 逐个字符转换成数值型数据,得到高位数值序列和低位数值序列 其转换关系表述如下:
首先将某段待解密中文字符串密文 中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],即为然后将数值型数据 对应组合 得到高位数值序列
和低位数值序列
接着逐个检查高位数值序列 中是否存在有 的元素并且低位数值序列 中是否存在有 的元素,如果存在,则将高位数值序列 中后一元素 数值减1,并删除高位数值序列 中 的元素以及其对应的低位数值序列 中 的元素;
同时逐个检查高位数值序列 中是否存在有 的元素并且低位数值序列 中是否存在有 的元素,如果存在,则将低位数值序列 中后一元素 数值减1,并删除高位数值序列 中 的元素以及其对应的低位数值序列 中 的元素;
再将高位数值序列 中各元素 逐个按照如下公式进行运算,
同时将低位数值序列 中各元素 逐个按照如下公式进行运算,
最后得到高位数值序列 和低位数值序列
6.根据权利要求4所述的一种中文字符串的解密方法,其特征在于:步骤(3)中所述的将高位数值序列逆向扩散解密后的序列D1和低位数值序列正向扩散解密后的序列D2进行数值与字符的转换,其转换关系表述如下:设定一个空字符序列PP,将序列 和序列
中对应元素依次进行如下运算,
首先判断是否D1i=215且D2i>249,如果存在,则令D1i=214;
然后利用native2unicode(·)函数将数值数据[D1i,D2i]转换为单个中文字符,并添加到字符序列PP中,即PP=[PP,native2unicode([D1i,D2i])]。