CN110287713B - 一种中文字符串的加密方法和解密方法 - Google Patents
一种中文字符串的加密方法和解密方法 Download PDFInfo
- Publication number
- CN110287713B CN110287713B CN201910494403.9A CN201910494403A CN110287713B CN 110287713 B CN110287713 B CN 110287713B CN 201910494403 A CN201910494403 A CN 201910494403A CN 110287713 B CN110287713 B CN 110287713B
- Authority
- CN
- China
- Prior art keywords
- sequence
- order
- chaotic
- chinese character
- low
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种中文字符串的加密方法和解密方法,包括:将某段中文字符串转换成高位、低位数值序列;然后通过混沌系统单次迭代、高位数值序列逐个元素逆向扩散加密、低位数值序列逐个元素正向扩散加密、混沌系统参数调整系列操作的循环运算,得到高位数值序列的逆向扩散加密密文序列、低位数值序列的正向扩散加密密文序列;最后将逆向扩散加密密文序列和正向扩散加密密文序列进行数值与字符的转换,得到该段中文字符串的加密密文,通过类似方法可将密文解密恢复出原始的中文字符串。本发明利用混沌信号的密码特性,对中文字符串进行加密和解密,具有良好的抵抗已知/选择明文攻击、唯密文攻击性能,保证了中文字符串加密与解密的安全性。
Description
技术领域
本发明涉及信息安全技术领域,特别涉及一种中文字符串的加密方法和解密方法。
背景技术
随着现代通信技术的飞速发展,计算机网络已成为众多领域进行信息交换的手段。由于计算机网络是一个开放式网络,信息交换时往往面临信息被窃取、篡改和伪造等安全问题,此时信息加密技术的研究与应用势在必行。
目前大多数主流信息加密解密技术都只能应用于如字母、数字、英文标点符号等单字节字符构成的信息,而可用于汉字、中文标点符号等双字节字符所构成的信息加密算法却很少。现有的中文字符加密算法,主要包括根据汉字区位码,进行的简单取反、区位码位置交换、异或,以及DES或RAS混合加密。现有的中文字符加密算法,所得的大多数密文可读性及可复制性太差,出现太多不易书写或者辨认的密文字符,也没有综合中文、英文字符的特点,提出一套简单方便、安全可靠的加密算法。在此情况下,结合混沌信号的密码特性,提出一套具有良好抗攻击性能的中文字符串加密方法和解密方法,显得尤为重要。
发明内容
本发明的目的是为了解决现有技术中的不足,提供一种中文字符串的加密方法和解密方法,利用混沌系统所产生混沌序列的密码特性,对中文字符串转换而成的高位数值序列和低位数值序列逐个元素同时进行高位数值序列的逆向扩散加密、低位数值序列的逆向扩散加密,进而将高位、低位数值序列加密后数据进行数值与字符的转换以生成密文,从而保证了中文字符串加密与解密的安全性和可行性。
本发明提供了一种中文字符串的加密方法,包括如下几个步骤:
(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;
Yi+1=mod(yi+1×1014,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;
进一步的,中文字符串的加密方法里步骤(1)中所述的将某段中文字符串逐个字符转换为数值型数据,其中某段中文字符串包括,GB2312字符集中的中文标点符号,以及GB2312字符集中双字节编码的6763个汉字;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据]形式,即为[Pi1,Pi2],相应的数据组合得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2}。
进一步的,中文字符串的加密方法里步骤(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])]。
本发明还公开了一种中文字符串的解密方法,用于对根据上述的中文字符串的加密方法所获得的加密字符串进行解密,所述中文字符串的解密方法包括如下几个步骤:
(2)高位数值序列的逆向扩散解密、低位数值序列的正向扩散解密:对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密,得到高位数值序列逆向扩散解密后的序列和低位数值序列正向扩散解密后的序列
所述对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密包括:
S21.由混沌信号和参数对如公式(11)所示切比雪夫混沌系统进行单次迭代,得到混沌信号同时对混沌信号按照如公式(12’)进行整数化处理,得到整数化处理后的混沌信号同时由混沌信号和参数对如公式(13)所示切比雪夫混沌系统进行单次迭代,得到混沌信号同时对混沌信号按照如公式(14’)进行整数化处理,得到整数化处理后的混沌信号
其中,R02为正向扩散解密密钥,
转向步骤S21;
(3)转码:将高位数值序列逆向扩散解密后的序列D1和低位数值序列正向扩散解密后的序列D2,进行数值与字符的转换,得到字符序列PP,即为该段待解密中文字符串解密后恢复的中文字符串,其中字符序列PP的长度为
进一步地,中文字符串的解密方法里步骤(3)中所述的将高位数值序列逆向扩散解密后的序列D1和低位数值序列正向扩散解密后的序列D2,进行数值与字符的转换,其转换关系表述如下:
首先判断是否D1i=215且D2i>249,如果存在,则令D1i=214;
然后利用native2unicode(·)函数将数值数据[D1i,D2i]转换为单个中文字符,并添加到字符序列PP中,即PP=[PP,native2unicode([D1i,D2i])]。
有益效果:本发明利用混沌信号的密码特性,对中文字符串转换而成的高位数值序列和低位数值序列逐个元素同时进行高位数值序列的逆向扩散加密(解密)、低位数值序列的正向扩散加密(解密),具有良好的抵抗已知/选择明文攻击、唯密文攻击的性能,保证了中文字符串加密与解密的安全性和可行性。
附图说明
图1为本发明的一种中文字符串的加密和解密流程示意图。
具体实施方式
如图1所示的一种中文字符串的加密方法,包括如下几个步骤:
(1)转码:将某段中文字符串逐个字符转换为数值型数据,其中某段中文字符串包括GB2312字符集中的中文标点符号以及GB2312字符集中双字节编码的汉字;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据]形式,即为[Pi1,Pi2],相应的数据组合得到高位数值序列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};
首先利用外部加密密钥(α、β),令初值x1=α和参数μ=β,对如公式xk+1=cos(μ·arccos(xk))所示的切比雪夫混沌系统进行迭代,k表示迭代次数(k=1,2,...,300),xk+1表示第k次迭代得到的混沌信号,得到混沌序列X={x1,x2,...,x300,x301},
从混沌序列X中抽取元素x300,作为如公式yk+1=cos(μ1·arccos(yk))所示的切比雪夫混沌系统的初值y1(y1=x300),且令切比雪夫混沌系统的参数μ1=β,并按照如公式Y1=mod(y1×1014,74)所示对混沌信号y1进行整数化处理,得到整数化处理后的混沌信号Y1,
同时从混沌序列X中抽取元素x301,作为如公式zk+1=cos(μ2·arccos(zk))所示的切比雪夫混沌系统的初值z1(z1=x301),且令切比雪夫混沌系统的参数μ2=β,并按照如公式Z1=mod(z1×1014,94)所示对混沌信号z1进行整数化处理,得到整数化处理后的混沌信号Z1,
然后同时对高位数值序列P1={P11,P21,...,Pi1,....,PL1}中每个元素Pi1,以及低位数值序列P2={P12,P22,...,Pi2,....,PL2}中每个元素Pi2,其中i=1,2,3,...,L,依次进行如下操作:
S11.由混沌信号yi和参数μ1,对如公式yk+1=cos(μ1·arccos(yk))所示切比雪夫混沌系统进行单次迭代,得到混沌信号yi+1,并对混沌信号yi+1按照如公式Yi+1=mod(yi+1×1014,74)所示进行整数化处理,得到整数化处理后的混沌信号Yi+1,同时由混沌信号zi和参数μ2,对如公式zk+1=cos(μ2·arccos(zk))所示切比雪夫混沌系统进行单次迭代,得到混沌信号zi+1,并对混沌信号zi+1按照如公式Zi+1=mod(zi+1×1014,94)所示进行整数化处理,得到整数化处理后的混沌信号Zi+1;
S12.利用整数化处理后的混沌信号Yi+1、Yi以及对应的低位数值序列元素PL+1-i2,对数据PL+1-i1按照如下公式进行逆向扩散加密,得到逆向扩散加密密文C1L+1-i,
其中,C1L+1为逆向扩散加密密钥,
同时利用整数化处理后的混沌信号Zi+1、Zi,对数据Pi2按照如下公式进行正向扩散加密,得到正向扩散加密密文C2i,
其中,C20为正向扩散加密密钥,
S13.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列逆向扩散加密密文C1L+1-i、C1L+2-i和整数化处理后的混沌信号Yi、Yi+1以及对应的低位数值序列正向扩散加密密文C2i,对切比雪夫混沌系统的参数μ1按照如下公式进行调整,
同时根据低位数值序列正向扩散加密密文C2i、C2i-1和整数化处理后的混沌信号Zi、Zi+1以及对应的高位数值序列逆向扩散加密密文C1L+1-i,对切比雪夫混沌系统的参数μ2按照如下公式进行调整,
转向步骤S11;
迭代完成后,得到高位数值序列的逆向扩散加密密文序列C1={C11,C12,...,C1i,...,C1L},以及低位数值序列的正向扩散加密密文序列C2={C21,C22,...,C2i,...,C2L};
(3)转码:设定一个空字符序列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])],
如图1所示,一种中文字符串的解密方法,用于对根据权利要求1至3中任一项所述的中文字符串的加密方法所获得的加密字符串进行解密,包括如下几个步骤:
(2)高位数值序列的逆向扩散解密、低位数值序列的正向扩散解密:对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密,得到高位数值序列逆向扩散解密后的序列和低位数值序列正向扩散解密后的序列
S21.由混沌信号和参数对如公式所示切比雪夫混沌系统进行单次迭代,得到混沌信号同时对混沌信号按照如公式所示进行整数化处理,得到混沌信号同时由混沌信号和参数对如公式所示切比雪夫混沌系统进行单次迭代,得到整数化处理后的混沌信号同时对混沌信号按照如公式所示进行整数化处理,得到整数化处理后的混沌信号
其中,R02为正向扩散解密密钥,
转向步骤S21;
(3)转码:将高位数值序列逆向扩散解密后的序列D1和低位数值序列正向扩散解密后的序列D2,进行数值与字符的转换,其转换关系表述如下,
首先判断是否D1i=215且D2i>249,如果存在,则令D1i=214;
然后利用native2unicode(·)函数将数值数据[D1i,D2i]转换为单个中文字符,并添加到字符序列PP中,即PP=[PP,native2unicode([D1i,D2i])]。
下面结合具体的实施例对本发明作进一步说明:
实施例1
按照上述具体实施方式中一种中文字符串的加密方法,步骤如下:
(1)将某段中文字符串“一种中文字符串的加密和解密方法,简单实用。”逐个字符转换成数值型数据,得到高位数值序列P1={210,214,214,206,215,183,180,181,188,195,186,189,195,183,183,163,188,181,202,211,161}和低位数值序列P2={187,214,208,196,214,251,174,196,211,220,205,226,220,189,168,172,242,165,181,195,163},其中数值序列P1、P2的长度与该段字符串的长度一致,记为L=21;
(2)首先利用外部加密密钥(α=0.12345、β=23.45),令初值x1=α和参数μ=β,根据上述具体实施方式中一种中文字符串的加密方法步骤(2)中公式xk+1=cos(μ·arccos(xk))所示的切比雪夫混沌系统进行迭代,得到混沌序列X,从混沌序列X中抽取元素x300=-0.925809812983847,作为如公式yk+1=cos(μ1·arccos(yk))所示的切比雪夫混沌系统的初值y1(y1=-0.925809812983847),且令切比雪夫混沌系统的参数μ1=β,并根据上述具体实施方式中一种中文字符串的加密方法步骤(2)中公式Y1=mod(y1×1014,74)所示对混沌信号y1进行整数化处理,得到混沌信号Y1=69,
同时从混沌序列X中抽取元素x301=-0.176980652493400,作为如公式zk+1=cos(μ2·arccos(zk))所示的切比雪夫混沌系统的初值z1(z1=-0.176980652493400),且令切比雪夫混沌系统的参数μ2=β=23.45,并根据上述具体实施方式中一种中文字符串的加密方法步骤(2)中公式Z1=mod(z1×1014,94)所示对混沌信号z1进行整数化处理,得到混沌信号Z1=37,
然后对高位数值序列P1={P11,P21,...,Pi1,....,P211}={210,214,214,206,215,183,180,181,188,195,186,189,195,183,183,163,188,181,202,211,161}中每个元素P22-i1,以及低位数值序列P2={P12,P22,...,Pi2,....,P212}={187,214,208,196,214,251,174,196,211,220,205,226,220,189,168,172,242,165,181,195,163}中每个元素Pi2,依次进行上述具体实施方式中一种中文字符串的加密方法步骤(2)中公式所示的切比雪夫混沌系统单次迭代、整数化处理、逆向扩散加密、正向扩散加密和切比雪夫混沌系统参数μ1、μ2调整等操作,其中取逆向扩散加密密钥C122=21、正向扩散加密密钥C10=12,从而得到高位数值序列的逆向扩散加密密文序列C1={32,14,43,20,41,63,29,72,5,66,5,24,59,22,49,60,2,65,29,69,50},低位数值序列的正向扩散加密密文序列C2={90,85,82,87,33,44,27,39,71,5,42,66,37,57,25,35,18,6,22,46,70};
(3)转码:设定一个空字符序列C,将高位数值序列的逆向扩散加密密文序列C1={32,14,43,20,41,63,29,72,5,66,5,24,59,22,49,60,2,65,29,69,50},低位数值序列的正向扩散加密密文序列C2={90,85,82,87,33,44,27,39,71,5,42,66,37,57,25,35,18,6,22,46,70}中各对应元素依次进行如上述具体实施方式中一种中文字符串的加密方法步骤(3)中所示数值与字符的转换运算,得到该段中文字符串的加密密文为“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”
按照上述具体实施方式中一种中文字符串的解密方法,步骤如下:
(1)将某段待解密的中文字符串密文“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”逐个字符转换成数值型数据,得到高位数值序列R1={32,14,43,20,41,63,29,72,5,66,5,24,59,22,49,60,2,65,29,69,50}和低位数值序列R2={90,85,82,87,33,44,27,39,71,5,42,66,37,57,25,35,18,6,22,46,70};
(2)首先利用外部解密密钥令初值和参数根据上述具体实施方式中一种中文字符串的解密方法步骤(2)中公式所示的切比雪夫混沌系统进行迭代,得到混沌序列从混沌序列中抽取元素作为如公式所示的切比雪夫混沌系统的初值 且令切比雪夫混沌系统的参数并根据上述具体实施方式中一种中文字符串的解密方法步骤(2)中公式对混沌信号进行整数化处理,得到混沌信号
然后对高位数值序列R1={32,14,43,20,41,63,29,72,5,66,5,24,59,22,49,60,2,65,29,69,50}中每个元素R22-i1、低位数值序列R2={90,85,82,87,33,44,27,39,71,5,42,66,37,57,25,35,18,6,22,46,70}中每个元素Ri2,依次进行上述具体实施方式中一种中文字符串的解密方法步骤(2)中公式所示的切比雪夫混沌系统单次迭代、整数化处理、逆向扩散解密、正向扩散解密和切比雪夫混沌系统参数调整等操作,其中取逆向扩散解密密钥R221=21、正向扩散解密密钥R02=12,从而得到高位数值序列逆向扩散解密后的组合数据序列DR1={62,19,13,67,20,25,19,42,64,6,56,6,6,37,16,12,21,11,48,71,2},以及低位数值序列正向扩散解密后的序列D2={187,214,208,196,214,251,174,196,211,220,205,226,220,189,168,172,242,165,181,195,163};
最后将高位数值序列逆向扩散解密后的组合数据序列DR1={62,19,13,67,20,25,19,42,64,6,56,6,6,37,16,12,21,11,48,71,2}逐个元素根据上述具体实施方式中一种中文字符串的解密方法步骤(3)中公式进行运算,从而得到高位数值序列逆向扩散解密后的序列D1={210,214,214,206,215,183,180,181,188,195,186,189,195,183,183,163,188,181,202,211,161};
(3)将高位数值序列逆向扩散解密后的序列D1={210,214,214,206,215,183,180,181,188,195,186,189,195,183,183,163,188,181,202,211,161}和低位数值序列正向扩散解密后的序列D2={187,214,208,196,214,251,174,196,211,220,205,226,220,189,168,172,242,165,181,195,163}进行数值与字符的转换,得到中文字符序列PP,即为该段密文解密后恢复的中文字符串为“一种中文字符串的加密和解密方法,简单实用。”。
实施例2
按照上述一种中文字符串的加密方法,某段待加密中文字符串为“一种中文字符串的加密和解密方法,简单实用。”,其加密步骤与具体实施例1相似,仅加密密钥发生细微变化:α=0.12345000000001;或β=23.45000000000001;或C122=20;或C20=13,中文字符串加密结果如表1所示。由表1可知,加密密钥的细微变化会引起中文字符串加密密文发生很大的变化,由此可见本专利所提一种中文字符串的加密方法对加密密钥具有敏感性。
表1外部加密密钥发生微变时,中文字符串加密结果
实施例3
按上述一种中文字符串的加密方法,其加密步骤与具体实施例1相似,仅某段待加密中文字符串(“一种中文字符串的加密和解密方法,简单实用。”)发生细微变化:“二种中文字符串的加密和解密方法,简单实用。”;或“一种中文子符串的加密和解密方法,简单实用。”;或“一种中文字符串的加蜜和解密方法,简单实用。”;或“一种中文字符串的加密和解密方法、简单实用。”;或“一种中文字符串的加密和解密方法,简卑实用。”;或“一种中文字符串的加密和解密方法,简单实用!”;或“种一中文字符串的加密和解密方法,简单实用。”;或“一种中文字符串的加密和解密方法,简单实。用”,中文字符串加密结果如表2所示。由表2可见:待加密中文字符串平文信息的细微变化会引起加密密文的“面目全非”,由此可见本专利所提一种中文字符串加密方法对待加密中文字符串的平文信息具有敏感性。
表2待加密字符串发生微变时,字符串加密结果
由上述具体实施例2、3分析可知,本专利所提一种中文字符串加密方法所生成的中文字符串密文不仅与加密密钥密切相关,而且依赖于待加密中文字符串平文信息,因此本专利所提一种中文字符串加密方法可抵抗已知/选择明文攻击,具有很强的安全性。
实施例4
按照上述一种中文字符串的解密方法,某段待解密中文密文为“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”,一种中文字符串的解密步骤与具体实施例1相似,仅解密密钥发生细微变化:或或R221=13;或R02=20,中文字符串密文解密结果如表3所示。由表3可知,解密密钥的细微变化会引起密文解密结果发生很大的变化,恢复出的中文字符串将是无用信息,由此可见本专利所提一种中文字符串的解密方法对解密密钥具有敏感性。
表3外部解密密钥发生微变时,密文解密结果
实施例5
按照上述一种中文字符串的解密方法,其解密步骤与具体实施例1相似,仅某段待解密中文字符串密文(“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”)发生细微变化:“喜荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”;或“嘻荐袤慢茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”;或“嘻荐袤馒茁硗思鋈庞穰乘沏槠内吆昴俺铵朔笙噻”;或“嘻荐袤馒茁硗思鋈宠穰乘切槠内吆昴俺铵朔笙噻”;或“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴掩铵朔笙噻”;或“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙塞”;或“荐嘻袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”;或“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔噻笙”,中文字符串密文解密结果如表4所示。由表4可知,待解密中文字符串密文的细微变化会引起密文解密结果发生很大的变化,难以恢复出原始的中文字符串,由此可见本专利所提一种中文字符串解密方法可抵抗唯密文攻击。表4待解密中文字符串密文发生微变时,密文解密结果
Claims (6)
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;
Yi+1=mod(yi+1×1014,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;
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中任一项所述的中文字符串的加密方法所获得的加密字符串进行解密,其特征在于,所述中文字符串的解密方法包括如下几个步骤:
(2)高位数值序列的逆向扩散解密、低位数值序列的正向扩散解密:对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密,得到高位数值序列逆向扩散解密后的序列和低位数值序列正向扩散解密后的序列
所述对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密包括:
S21.由混沌信号和参数对如公式(11)所示切比雪夫混沌系统进行单次迭代,得到混沌信号同时对混沌信号按照如公式(12’)进行整数化处理,得到整数化处理后的混沌信号同时由混沌信号和参数对如公式(13)所示切比雪夫混沌系统进行单次迭代,得到混沌信号同时对混沌信号按照如公式(14’)进行整数化处理,得到整数化处理后的混沌信号
其中,R02为正向扩散解密密钥,
然后转向步骤S21;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910494403.9A CN110287713B (zh) | 2019-06-10 | 2019-06-10 | 一种中文字符串的加密方法和解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910494403.9A CN110287713B (zh) | 2019-06-10 | 2019-06-10 | 一种中文字符串的加密方法和解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110287713A CN110287713A (zh) | 2019-09-27 |
CN110287713B true CN110287713B (zh) | 2022-04-22 |
Family
ID=68003730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910494403.9A Active CN110287713B (zh) | 2019-06-10 | 2019-06-10 | 一种中文字符串的加密方法和解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287713B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111711645A (zh) * | 2020-08-19 | 2020-09-25 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103825723A (zh) * | 2014-01-24 | 2014-05-28 | 深圳市太和物联信息技术有限公司 | 一种加密方法和装置 |
CN104486073A (zh) * | 2014-12-23 | 2015-04-01 | 南通大学 | 一种字符型数据的加密、解密方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1179912A1 (en) * | 2000-08-09 | 2002-02-13 | STMicroelectronics S.r.l. | Chaotic encryption |
-
2019
- 2019-06-10 CN CN201910494403.9A patent/CN110287713B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103825723A (zh) * | 2014-01-24 | 2014-05-28 | 深圳市太和物联信息技术有限公司 | 一种加密方法和装置 |
CN104486073A (zh) * | 2014-12-23 | 2015-04-01 | 南通大学 | 一种字符型数据的加密、解密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110287713A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109995504B (zh) | 一种字符串的加密和解密方法 | |
CN104486073B (zh) | 一种字符型数据的加密、解密方法 | |
CN110299989B (zh) | 一种中英文字符串的加密、解密方法 | |
CN110650005B (zh) | 一种中英文字符串加密方法 | |
CN108090329A (zh) | 一种对文本内容进行数字水印加密保护的方法及装置 | |
CN109981245B (zh) | 一种字符串的加密、解密方法 | |
CN110889877A (zh) | 一种基于l-f级联混沌和3d比特置乱的图像加密方法 | |
CN108768617A (zh) | 一种基于传统分组密码的保持格式加密方法 | |
CN114679250B (zh) | 基于混合混沌和Arnold变换的图像加密算法 | |
CN109981246B (zh) | 一种字符串的加密方法和解密方法 | |
Bandekar et al. | LSB based text and image steganography using AES algorithm | |
CN110287713B (zh) | 一种中文字符串的加密方法和解密方法 | |
Sari et al. | Cryptography Triple Data Encryption Standard (3DES) for Digital Image Security | |
CN106570814B (zh) | 一种超混沌图像加密方法 | |
CN107171782B (zh) | 一种基于可逆逻辑电路的aes私密日志加密方法 | |
CN110278066B (zh) | 一种中文字符串的加密、解密方法 | |
AU2003257891A1 (en) | Data Encryption Method | |
Zhang | Security analysis of a chaos triggered image encryption scheme | |
CN114741712A (zh) | 一种基于分层置乱的汉字加密方法 | |
Bin et al. | Image encryption algorithm based on chaotic map and S-DES | |
CN110650006B (zh) | 一种中英文字符串的加密和解密方法 | |
CN114745096A (zh) | 一种基于分层双向扩散的字符串加密方法 | |
CN114553393A (zh) | 一种基于分层移位的汉字加密方法 | |
CN114707165A (zh) | 一种基于分层置乱的字符串加密方法 | |
Chandran et al. | VLSI Implementaion of Image Encryption and Decryption Using Reversible Logic Gates |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |