CN110278066B - 一种中文字符串的加密、解密方法 - Google Patents

一种中文字符串的加密、解密方法 Download PDF

Info

Publication number
CN110278066B
CN110278066B CN201910494401.XA CN201910494401A CN110278066B CN 110278066 B CN110278066 B CN 110278066B CN 201910494401 A CN201910494401 A CN 201910494401A CN 110278066 B CN110278066 B CN 110278066B
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
Application number
CN201910494401.XA
Other languages
English (en)
Other versions
CN110278066A (zh
Inventor
盛苏英
陆国平
张小美
张振娟
周磊
朱建红
任宇
高岩波
任洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nantong University
Original Assignee
Nantong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nantong University filed Critical Nantong University
Priority to CN201910494401.XA priority Critical patent/CN110278066B/zh
Publication of CN110278066A publication Critical patent/CN110278066A/zh
Application granted granted Critical
Publication of CN110278066B publication Critical patent/CN110278066B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/001Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种中文字符串的加密、解密方法,包括:将某段中文字符串转换成高位数值序列、低位数值序列;对高位数值序列逐个元素正向扩散加密,得到高位数值序列的正向扩散加密密文序列;对低位数值序列逐个元素逆向扩散加密,得到低位数值序列的逆向扩散加密密文序列;最后将正向扩散加密密文序列和逆向扩散加密密文序列进行数值与字符的转换,得到该段中文字符串的加密密文,通过类似的方法可将密文解密恢复出原始的中文字符串。本发明所提供的中文字符串的加密、解密方法,利用混沌信号的密码特性,实现字符串的加密和解密,具有良好的抵抗已知/选择明文攻击、唯密文攻击的性能,保证了中文字符串加密与解密的安全性和可行性。

Description

一种中文字符串的加密、解密方法
技术领域
本发明涉及信息安全技术领域,特别涉及一种中文字符串的加密、解密方法。
背景技术
随着现代通信技术的飞速发展,计算机网络已成为众多领域进行信息交换的手段。由于计算机网络是一个开放式网络,信息交换时往往面临信息被窃取、篡改和伪造等安全问题,此时信息加密技术的研究与应用势在必行。
目前大多数主流信息加密解密技术都只能应用于如字母、数字、英文标点符号等单字节字符构成的信息,而可用于汉字、中文标点符号等双字节字符所构成的信息加密算法却很少。现有的中文字符加密算法,主要包括根据汉字区位码,进行的简单取反、区位码位置交换、异或,以及DES或RAS混合加密。现有的中文字符加密算法,所得的大多数密文可读性及可复制性太差,出现太多不易书写或者辨认的密文字符,也没有综合中文、英文字符的特点,提出一套简单方便、安全可靠的加密算法。在此情况下,结合混沌信号的密码特性,提出一套具有良好抗攻击性能的中文字符串加密、解密方法,显得尤为重要。
发明内容
本发明的目的是为了解决现有技术中的不足,提供一种中文字符串的加密、解密方法,利用混沌系统所产生混沌序列的密码特性,对中文字符串转换而成的高位数值序列逐个元素进行正向扩散加密,并对中文字符串转换而成的低位数值序列逐个元素进行逆向扩散加密,进而将高位、低位数值序列加密后数据进行数值与字符的转换以生成密文,从而保证了中文字符串加密与解密的安全性和可行性。
本发明提供了一种中文字符串的加密方法,其特征在于,包括如下几个步骤:
(1)将某段中文字符串逐个字符转换为数值型数据,得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},其中,高位数值序列P1和低位数值序列P2的长度均与该段中文字符串的长度一致,记为L;
(2)对高位数值序列P1进行正向扩散加密,得到高位数值序列P1的正向扩散加密密文序列C1={C11,C12,...,C1i,...,C1L};
所述对高位数值序列P1进行正向扩散加密包括:
利用外部加密密钥(α、β),令初值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,且令切比雪夫混沌系统的参数μ1=β,同时对混沌信号y1按照如下公式(3)进行整数化处理,得到混沌信号Y1
yk+1=cos(μ1·arccos(yk)) (2)
Y1=mod(y1×1014,74) (3)
对高位数值序列P1={P11,P21,...,Pi1,....,PL1}中每个元素Pi1,其中i=1,2,3,...,L,依次进行如下操作:
S11.由混沌信号yi和参数μ1,对如公式(2)所示切比雪夫混沌系统进行单次迭代,得到混沌信号yi+1,同时对混沌信号yi+1按照如公式(3’)进行整数化处理,得到混沌信号Yi+1
Yi+1=mod(yi+1×1014,74) (3’)
S12.利用整数化处理后的混沌信号Yi+1、Yi以及对应的低位数值序列元素Pi2,对数据Pi1按照如下公式(4)进行正向扩散加密,得到正向扩散加密密文C1i
Figure BDA0002088086680000021
其中,C10设为正向扩散加密密钥;
S13.比较i与L的大小,若i=L,则停止,若i<L,则根据正向扩散加密密文C1i、C1i-1和混沌信号Yi、Yi+1以及对应的低位数值序列元素Pi2,对公式(2)所示的切比雪夫混沌系统中的参数μ1按照如下公式(5)进行调整,
Figure BDA0002088086680000022
然后转向步骤S11;
(3)对低位数值序列P2进行逆向扩散加密,得到低位数值序列P2的逆向扩散加密密文C2={C21,C22,...,C2i,...,C2L}:
所述对低位数值序列P2进行逆向扩散加密包括:
从混沌序列X中抽取元素x301,作为如公式(6)所示的切比雪夫混沌系统的初值z1,且令公式(6)所示的切比雪夫混沌系统的参数μ2=β,同时对混沌信号z1按照如下公式(7)进行整数化处理,得到整数化处理后的混沌信号Z1
zk+1=cos(μ2·arccos(zk)) (6)
Z1=mod(z1×1014,94) (7)
对低位数值序列P2={P12,P22,...,Pi2,....,PL2}中每个元素Pi2,其中i=1,2,3,...,L,依次进行如下操作:
S21.由混沌信号zi和参数μ2,对如公式(6)所示切比雪夫混沌系统进行单次迭代,得到混沌信号zi+1,同时对混沌信号zi+1按照如公式(7’)进行整数化处理,得到混沌信号Zi+1
Zi+1=mod(zi+1×1014,94) (7’)
S22.利用整数化处理后的混沌信号Zi+1、Zi,对数据PL+1-i2按照如下公式(8)进行逆向扩散加密,得到逆向扩散加密密文C2L+1-i
Figure BDA0002088086680000031
其中,C2L+1为逆向扩散加密密钥,
S23.比较i与L的大小,若i=L,则停止,若i<L,则根据逆向扩散加密密文C2L+1-i、C2L+2-i和混沌信号Zi、Zi+1以及对应的高位数值序列元素加密密文C1i,对切比雪夫混沌系统的参数μ2按照如下公式(9)进行调整,
Figure BDA0002088086680000032
然后转向步骤S21;
(4)将高位数值序列P1的正向扩散加密密文序列C1和低位数值序列P2的逆向扩散加密密文序列C2,进行数值与字符的转换,得到字符序列C,所述字符序列C即为该段中文字符串的加密密文,其中所述字符序列C的长度为
Figure BDA0002088086680000033
Figure BDA0002088086680000034
进一步的,中文字符串的加密方法里步骤(1)中所述的将某段中文字符串逐个字符转换为数值型数据,其中,某段中文字符串包括中文标点符号和汉字,所述中文标点符号和所述汉字均选自GB2312字符集;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据]形式,记为[Pi1,Pi2],相应的数据组合得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2}。
进一步的,中文字符串的加密方法里步骤(4)中所述的将高位数值序列P1的正向扩散加密密文序列C1和低位数值序列P2的逆向扩散加密密文序列C2,进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列C,将高位数值序列的正向扩散加密密文序列C1={C11,C12,...,C1i,...,C1L}和低位数值序列的逆向扩散加密密文序列C2={C21,C22,...,C2i,...,C2L}中各对应元素依次进行如下运算,
如果C1i=0,则
首先判断是否(C2i+161)=161,如果是,那么在字符序列C中添加1个中文字符'②',即C=[C,'②'],并设C2i=C2i+1,
然后利用native 2 unicode(·)函数将数值数据[C1i+161,C2i+161]转换为单个中文字符,并添加到字符序列C中,即C=[C,native 2 unicode([C1i+161,C2i+161])];
如果C1i=1,则利用native 2 unicode(·)函数将数值数据[C1i+162,C2i+161]转换为单个中文字符,并添加到字符序列C中,即C=[C,native 2 unicode([C1i+162,C2i+161])];
如果C1i>1,则
首先判断是否(C1i+174)=215且(C2i+161)>249,如果是,那么在字符序列C中添加1个中文字符'①',即C=[C,'①'],并设C1i=C1i-1,
然后利用native 2 unicode(·)函数将数值数据[C1i+174,C2i+161]转换为单个中文字符,并添加到字符序列C中,即C=[C,native 2 unicode([C1i+174,C2i+161])]。
本发明还提供了一种中文字符串的解密方法,用于对根据上述的中文字符串的加密方法所获得的加密字符串进行解密,所述中文字符串的解密方法包括如下几个步骤:
(1)将某段待解密中文字符串密文
Figure BDA0002088086680000041
逐个字符转换成数值型数据,得到高位数值序列
Figure BDA0002088086680000042
和低位数值序列
Figure BDA0002088086680000043
其中数值序列R1、R2的长度为
Figure BDA0002088086680000044
某段待解密中文字符串密文
Figure BDA0002088086680000045
的长度为
Figure BDA0002088086680000046
(2)对低位数值序列进行逆向扩散解密,得到低位数值序列R2逆向扩散解密后的序列
Figure BDA0002088086680000047
对低位数值序列R2进行逆向扩散解密包括:
首先利用外部解密密钥
Figure BDA0002088086680000048
令初值
Figure BDA0002088086680000049
和参数
Figure BDA00020880866800000410
对如下公式(10)所示的切比雪夫混沌系统进行迭代,得到混沌序列
Figure BDA0002088086680000051
Figure BDA0002088086680000052
其中,k表示迭代次数(k=1,2,...,300),
Figure BDA0002088086680000053
表示第k次迭代得到的混沌信号,
从混沌序列
Figure BDA0002088086680000054
中抽取元素
Figure BDA0002088086680000055
作为如公式(11)所示的切比雪夫混沌系统的初值
Figure BDA0002088086680000056
且令公式(11)所示的切比雪夫混沌系统的参数
Figure BDA0002088086680000057
同时对混沌信号
Figure BDA0002088086680000058
按照如下公式(12)进行整数化处理,得到整数化处理后的混沌信号
Figure BDA0002088086680000059
Figure BDA00020880866800000510
Figure BDA00020880866800000511
然后对低位数值序列
Figure BDA00020880866800000512
中每个元素Ri2,其中
Figure BDA00020880866800000513
依次进行如下操作:
S31.由混沌信号
Figure BDA00020880866800000514
和参数
Figure BDA00020880866800000515
对如公式(11)所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure BDA00020880866800000516
同时对混沌信号
Figure BDA00020880866800000517
按照如公式(12’)进行整数化处理,得到整数化处理后的混沌信号
Figure BDA00020880866800000518
Figure BDA00020880866800000519
S32.利用整数化处理后的混沌信号
Figure BDA00020880866800000520
对数据
Figure BDA00020880866800000521
按照如下公式(13)进行逆向扩散解密,得到逆向扩散解密后数据
Figure BDA00020880866800000522
Figure BDA00020880866800000523
其中,
Figure BDA00020880866800000524
为逆向扩散解密密钥,
S33.比较i与L的大小,若i=L,则停止,若i<L,则根据低位数值序列元素
Figure BDA00020880866800000525
和混沌信号
Figure BDA00020880866800000526
以及对应的高位数值序列元素Ri1,对切比雪夫混沌系统的参数
Figure BDA00020880866800000527
按照如下公式(14)进行调整,
Figure BDA00020880866800000528
然后转向步骤S31;
(3)对高位数值序列R1进行正向扩散解密,得到高位数值序列R1正向扩散解密后的序列
Figure BDA00020880866800000529
从混沌序列
Figure BDA0002088086680000061
中抽取元素
Figure BDA0002088086680000062
作为如公式(15)所示的切比雪夫混沌系统的初值
Figure BDA0002088086680000063
且令公式(15)所示的切比雪夫混沌系统的参数
Figure BDA0002088086680000064
同时对混沌信号
Figure BDA0002088086680000065
按照如下公式(16)进行整数化处理,得到整数化处理后的混沌信号
Figure BDA0002088086680000066
Figure BDA0002088086680000067
Figure BDA0002088086680000068
对高位数值序列
Figure BDA0002088086680000069
中每个元素Ri1,其中
Figure BDA00020880866800000610
依次进行如下操作:
S41.由混沌信号
Figure BDA00020880866800000611
和参数
Figure BDA00020880866800000612
对如公式(15)所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure BDA00020880866800000613
同时对混沌信号
Figure BDA00020880866800000614
按照如公式(16’)进行整数化处理,得到混沌信号
Figure BDA00020880866800000615
Figure BDA00020880866800000616
S42.利用整数化处理后的混沌信号
Figure BDA00020880866800000617
以及对应的低位数值序列元素的解密数据D2i,对数据Ri1按照如下公式(17)进行正向扩散解密,得到正向扩散解密后数据D1i
Figure BDA00020880866800000619
其中,R01为正向扩散解密密钥,
S43.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列元素Ri1、Ri-11和混沌信号
Figure BDA00020880866800000620
以及对应的低位数值序列元素的解密数据D2i,对切比雪夫混沌系统的参数
Figure BDA00020880866800000621
按照如下公式(18)进行调整,
Figure BDA00020880866800000622
然后转向步骤S41;
(4)将高位数值序列R1正向扩散解密后的序列D1和低位数值序列R2逆向扩散解密后的序列D2,进行数值与字符的转换,得到字符序列PP,即为该段待解密中文字符串解密后恢复的中文字符串,其中所述字符序列PP的长度为
Figure BDA00020880866800000623
进一步的,中文字符串的解密方法里步骤(1)中所述的将某段待解密中文字符串密文
Figure BDA00020880866800000624
逐个字符转换成数值型数据,得到高位数值序列
Figure BDA0002088086680000071
和低位数值序列
Figure BDA0002088086680000072
其转换关系表述如下:
首先将某段待解密中文字符串密文
Figure BDA0002088086680000073
中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],记为
Figure BDA0002088086680000074
然后将数值型数据
Figure BDA0002088086680000075
对应组合
Figure BDA0002088086680000076
得到高位数值序列
Figure BDA0002088086680000077
和低位数值序列
Figure BDA0002088086680000078
接着逐个检查高位数值序列
Figure BDA0002088086680000079
中是否存在有
Figure BDA00020880866800000710
的元素并且低位数值序列
Figure BDA00020880866800000711
中是否存在有
Figure BDA00020880866800000712
的元素,如果存在,则将高位数值序列
Figure BDA00020880866800000713
中后一元素
Figure BDA00020880866800000714
数值加1,并删除高位数值序列
Figure BDA00020880866800000715
Figure BDA00020880866800000716
的元素以及其对应的低位数值序列
Figure BDA00020880866800000717
Figure BDA00020880866800000718
的元素;
同时逐个检查高位数值序列
Figure BDA00020880866800000719
中是否存在有
Figure BDA00020880866800000720
的元素并且低位数值序列
Figure BDA00020880866800000721
中是否存在有
Figure BDA00020880866800000722
的元素,如果存在,则将低位数值序列
Figure BDA00020880866800000723
中后一元素
Figure BDA00020880866800000724
数值减1,并删除高位数值序列
Figure BDA00020880866800000725
Figure BDA00020880866800000726
的元素以及其对应的低位数值序列
Figure BDA00020880866800000727
Figure BDA00020880866800000728
的元素;
再将高位数值序列
Figure BDA00020880866800000729
中各元素
Figure BDA00020880866800000730
逐个进行如下运算,
Figure BDA00020880866800000731
同时将低位数值序列
Figure BDA00020880866800000732
中各元素
Figure BDA00020880866800000733
逐个进行如下运算,
Figure BDA00020880866800000734
最后得到高位数值序列
Figure BDA00020880866800000735
和低位数值序列
Figure BDA00020880866800000736
进一步的,中文字符串的解密方法里步骤(4)中所述的将高位数值序列R1正向扩散解密后的序列D1和低位数值序列R2逆向扩散解密后的序列D2,进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列PP,将序列
Figure BDA00020880866800000737
和序列
Figure BDA00020880866800000738
中对应元素依次进行如下运算,
首先判断是否D1i=215且D2i>249,如果存在,则令D1i=161;
然后利用native 2 unicode(·)函数将数值数据[D1i,D2i]转换为单个中文字符,并添加到字符序列PP中,即PP=[PP,native 2 unicode([D1i,D2i])]。
有益效果:本发明利用混沌信号的密码特性,对中文字符串转换而成的高位数值序列逐个元素进行正向扩散加密或者解密,并对中文字符串转换而成的低位数值序列逐个元素进行逆向扩散加密或者解密,具有良好的抵抗已知/选择明文攻击、唯密文攻击的性能,从而保证了中文字符串加密与解密的安全性和可行性。
附图说明
图1为本发明的一种中文字符串的加密、解密流程示意图。
具体实施方式
如图1所示的一种中文字符串的加密方法,包括如下几个步骤:
(1)将某段中文字符串逐个字符转换为数值型数据;
某段中文字符串选自GB2312字符集中的中文标点符号,以及GB2312字符集中双字节编码的6763个汉字;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据]形式,即为[Pi1,Pi2],相应的数据组合得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},其中数值序列P1、P2的长度与该段中文字符串的长度一致,记为L;
(2)对高位数值序列P1进行正向扩散加密,得到高位数值序列P1的正向扩散加密密文序列C1={C11,C12,...,C1i,...,C1L};
对高位数值序列P1进行正向扩散加密具体包括:
首先利用外部加密密钥(α、β),令初值x1=α和参数μ=β,对如公式xk+1=cos(μ·arccos(xk))所示的切比雪夫混沌系统进行迭代,得到混沌序列X={x1,x2,...,x300,x301},k表示迭代次数(k=1,2,...,300),xk+1表示第k次迭代得到的混沌信号,从混沌序列X中抽取元素x300,作为如公式yk+1=cos(μ1·arccos(yk))所示的切比雪夫混沌系统的初值y1(y1=x300),且令切比雪夫混沌系统的参数μ1=β,同时对混沌信号y1按照如公式Y1=mod(y1×1014,74)所示进行整数化处理,得到混沌信号Y1
然后对高位数值序列P1={P11,P21,...,Pi1,....,PL1}中每个元素Pi1,其中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
S12:利用整数化处理后的混沌信号Yi+1、Yi以及对应的低位数值序列元素Pi2,对高位数值序列元素Pi1按照如下公式进行正向扩散加密,得到正向扩散加密密文C1i
Figure BDA0002088086680000091
其中,C10为正向扩散加密密钥,
S13:比较i与L的大小,若i=L,则停止,若i<L,则根据正向扩散加密密文C1i、C1i-1和混沌信号Yi、Yi+1以及对应的低位数值序列元素Pi2,对切比雪夫混沌系统的参数μ1按照如下公式进行调整,
Figure BDA0002088086680000092
然后转向步骤S11;
当迭代完成后(i=L),得到高位数值序列的正向扩散加密密文C1={C11,C12,...,C1i,...,C1L};
(3)对低位数值序列P2进行逆向扩散加密,得到低位数值序列P2的逆向扩散加密密文序列C2={C21,C22,...,C2i,...,C2L};
对低位数值序列P2进行逆向扩散加密具体包括:
首先从混沌序列X中抽取元素x301,作为如公式zk+1=cos(μ2·arccos(zk))所示的切比雪夫混沌系统的初值z1(z1=x301),且令切比雪夫混沌系统的参数μ2=β,同时对混沌信号z1按照如公式Z1=mod(z1×1014,94)所示进行整数化处理,得到整数化处理后的混沌信号Z1
然后对低位数值序列P2={P12,P22,...,Pi2,....,PL2}中每个元素Pi2,其中i=1,2,3,...,L,依次进行如下操作:
S21:由混沌信号zi和参数μ2,对如公式zk+1=cos(μ2·arccos(zk))所示切比雪夫混沌系统进行单次迭代,得到混沌信号zi+1,同时对混沌信号zi+1按照如公式Zi+1=mod(zi+1×1014,94)所示进行整数化处理,得到整数化处理后的混沌信号Zi+1
S22:利用整数化处理后的混沌信号Zi+1、Zi,对低位数值序列P2中的元素PL+1-i2按照如下公式进行逆向扩散加密,得到逆向扩散加密密文C2L+1-i
Figure BDA0002088086680000101
其中,C2L+1为逆向扩散加密密钥,
S23.比较i与L的大小,若i=L,则停止,若i<L,则根据逆向扩散加密密文C2L+1-i、C2L+2-i和混沌信号Zi、Zi+1以及对应的高位数值序列元素加密密文C1i,对切比雪夫混沌系统的参数μ2按照如下公式进行调整,
Figure BDA0002088086680000102
然后转向步骤S21;
当迭代完成后(i=L),得到低位数值序列的逆向扩散加密密文C2={C21,C22,...,C2i,...,C2L};
(4)设定一个空字符序列C,将高位数值序列的正向扩散加密密文序列C1={C11,C12,...,C1i,...,C1L}和低位数值序列的逆向扩散加密密文序列C2={C21,C22,...,C2i,...,C2L}中各对应元素依次进行如下数值与字符的转换运算,
如果C1i=0,则
首先判断是否(C2i+161)=161,如果是,那么在字符序列C中添加1个中文字符'②',即C=[C,'②'],并设C2i=C2i+1;
然后利用native 2 unicode(·)函数将数值数据[C1i+161,C2i+161]转换为单个中文字符,并添加到字符序列C中,即C=[C,native 2 unicode([C1i+161,C2i+161])];
如果C1i=1,则利用native 2 unicode(·)函数将数值数据[C1i+162,C2i+161]转换为单个中文字符,并添加到字符序列C中,即C=[C,native 2 unicode([C1i+162,C2i+161])];
如果C1i>1,则
首先判断是否(C1i+174)=215且(C2i+161)>249,如果是,那么在字符序列C中添加1个中文字符'①',即C=[C,'①'],并设C1i=C1i-1;
然后利用native 2 unicode(·)函数将数值数据[C1i+174,C2i+161]转换为单个中文字符,并添加到字符序列C中,即C=[C,native 2 unicode([C1i+174,C2i+161])],
从而得到字符序列C,即为该段中文字符串的加密密文,其中序列C的长度为
Figure BDA0002088086680000111
Figure BDA0002088086680000112
如图1所示,本发明还提供了一种中文字符串的解密方法,用于对上述的中文字符串的加密方法所获得的加密字符串进行解密,包括如下几个步骤:
(1)将某段待解密的中文字符串密文
Figure BDA0002088086680000113
逐个字符转换成数值型数据,其转换关系表述如下,
首先将某段待解密中文字符串密文
Figure BDA0002088086680000114
中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],即为
Figure BDA0002088086680000115
然后将数值型数据
Figure BDA0002088086680000116
对应组合
Figure BDA0002088086680000117
得到高位数值序列
Figure BDA0002088086680000118
和低位数值序列
Figure BDA0002088086680000119
接着逐个检查高位数值序列
Figure BDA00020880866800001110
中是否存在有
Figure BDA00020880866800001111
的元素并且低位数值序列
Figure BDA00020880866800001112
中是否存在有
Figure BDA00020880866800001113
的元素,如果存在,则将高位数值序列
Figure BDA00020880866800001114
中后一元素
Figure BDA00020880866800001115
数值加1,并删除高位数值序列
Figure BDA00020880866800001116
Figure BDA00020880866800001117
的元素以及其对应的低位数值序列
Figure BDA00020880866800001118
Figure BDA00020880866800001119
的元素;
同时逐个检查高位数值序列
Figure BDA00020880866800001120
中是否存在有
Figure BDA00020880866800001121
的元素并且低位数值序列
Figure BDA00020880866800001122
中是否存在有
Figure BDA00020880866800001123
的元素,如果存在,则将低位数值序列
Figure BDA00020880866800001124
中后一元素
Figure BDA00020880866800001125
数值减1,并删除高位数值序列
Figure BDA00020880866800001126
Figure BDA00020880866800001127
的元素以及其对应的低位数值序列
Figure BDA00020880866800001128
Figure BDA00020880866800001129
的元素;
再将高位数值序列
Figure BDA00020880866800001130
中各元素
Figure BDA00020880866800001131
逐个进行如下运算,
Figure BDA00020880866800001132
同时将低位数值序列
Figure BDA00020880866800001133
中各元素
Figure BDA00020880866800001134
逐个进行如下运算,
Figure BDA00020880866800001135
最后得到高位数值序列
Figure BDA00020880866800001136
和低位数值序列
Figure BDA00020880866800001137
其中数值序列R1、R2的长度为
Figure BDA00020880866800001138
某段待解密中文字符串密文
Figure BDA00020880866800001139
的长度为
Figure BDA00020880866800001140
(2)低位数值序列的逆向扩散解密:对低位数值序列进行逆向扩散解密,得到低位数值序列R2逆向扩散解密后的序列
Figure BDA00020880866800001141
对低位数值序列R2进行逆向扩散解密具体包括:
首先利用外部解密密钥
Figure BDA0002088086680000121
令初值
Figure BDA0002088086680000122
和参数
Figure BDA0002088086680000123
对如公式
Figure BDA0002088086680000124
所示的切比雪夫混沌系统进行迭代,k表示迭代次数(k=1,2,...,300),
Figure BDA0002088086680000125
表示第k次迭代得到的混沌信号,得到混沌序列
Figure BDA0002088086680000126
从混沌序列
Figure BDA0002088086680000127
中抽取元素
Figure BDA0002088086680000128
作为如公式
Figure BDA0002088086680000129
所示的切比雪夫混沌系统的初值
Figure BDA00020880866800001210
且令切比雪夫混沌系统的参数
Figure BDA00020880866800001211
同时对混沌信号
Figure BDA00020880866800001212
按照如公式
Figure BDA00020880866800001213
所示进行整数化处理,得到混沌信号
Figure BDA00020880866800001214
然后对低位数值序列
Figure BDA00020880866800001215
中每个元素Ri2,其中
Figure BDA00020880866800001216
依次进行如下操作:
S31:由混沌信号
Figure BDA00020880866800001217
和参数
Figure BDA00020880866800001218
对如公式
Figure BDA00020880866800001219
所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure BDA00020880866800001220
同时对混沌信号
Figure BDA00020880866800001221
按照如公式
Figure BDA00020880866800001222
所示进行整数化处理,得到混沌信号
Figure BDA00020880866800001223
S32:利用整数化处理后的混沌信号
Figure BDA00020880866800001224
对低位数值序列R2中的元素
Figure BDA00020880866800001225
按照如下公式进行逆向扩散解密,得到逆向扩散解密后数据
Figure BDA00020880866800001226
Figure BDA00020880866800001227
其中,
Figure BDA00020880866800001228
为逆向扩散解密密钥,
S33:比较i与L的大小,若i=L,则停止,若i<L,则根据低位数值序列元素
Figure BDA00020880866800001229
和混沌信号
Figure BDA00020880866800001230
以及对应的高位数值序列元素Ri1,对切比雪夫混沌系统的参数
Figure BDA00020880866800001231
按照如下公式进行调整,
Figure BDA00020880866800001232
然后转向步骤S31。
当迭代完成后(i=L),得到低位数值序列逆向扩散解密后的序列
Figure BDA00020880866800001233
(3)高位数值序列的正向扩散解密:对高位数值序列R1进行正向扩散解密,得到高位数值序列R1正向扩散解密后的序列
Figure BDA0002088086680000131
对高位数值序列R1进行正向扩散解密具体包括:
首先从混沌序列
Figure BDA0002088086680000132
中抽取元素
Figure BDA0002088086680000133
作为如公式
Figure BDA0002088086680000134
所示的切比雪夫混沌系统的初值
Figure BDA0002088086680000135
且令切比雪夫混沌系统的参数
Figure BDA0002088086680000136
同时对混沌信号
Figure BDA0002088086680000137
按照如下公式
Figure BDA0002088086680000138
所示进行整数化处理,得到混沌信号
Figure BDA0002088086680000139
然后对高位数值序列
Figure BDA00020880866800001310
中每个元素Ri1,其中
Figure BDA00020880866800001311
依次进行如下操作:
S41:由混沌信号
Figure BDA00020880866800001312
和参数
Figure BDA00020880866800001313
对如公式
Figure BDA00020880866800001314
所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure BDA00020880866800001315
同时对混沌信号
Figure BDA00020880866800001316
按照如公式
Figure BDA00020880866800001317
所示进行整数化处理,得到混沌信号
Figure BDA00020880866800001318
S42:利用整数化处理后的混沌信号
Figure BDA00020880866800001319
以及对应的低位数值序列元素的解密数据D2i,对数据Ri1按照如下公式进行正向扩散解密,得到正向扩散解密后数据D1i
Figure BDA00020880866800001327
其中,R01为正向扩散解密密钥,
S43:比较i与L的大小,若i=L,则停止操作,若i<L,则根据高位数值序列元素Ri1、Ri-11和混沌信号
Figure BDA00020880866800001322
以及对应的低位数值序列元素的解密数据D2i,对切比雪夫混沌系统的参数
Figure BDA00020880866800001323
按照如下公式进行调整,
Figure BDA00020880866800001324
然后转向步骤S41;
当迭代完成后(i=L),得到高位数值序列正向扩散解密后的序列
Figure BDA00020880866800001325
(4)设定一个空字符序列PP,将高位数值序列正向扩散解密后的序列
Figure BDA00020880866800001326
和低位数值序列逆向扩散解密后的序列
Figure BDA0002088086680000141
中对应元素依次进行如下数值与字符的转换运算,
首先判断是否D1i=215且D2i>249,如果存在,则令D1i=161;
然后利用native 2 unicode(·)函数将数值数据[D1i,D2i]转换为单个中文字符,并添加到字符序列PP中,即PP=[PP,native 2 unicode([D1i,D2i])],
从而得到字符序列PP,即为该段待解密中文字符串解密后恢复的中文字符串,其中字符序列PP的长度为
Figure BDA0002088086680000142
下面结合具体的实施例对本发明作进一步说明:
实施例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,
然后对高位数值序列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}中每个元素Pi1,依次进行上述具体实施方式中一种中文字符串的加密方法步骤(2)中公式所示的切比雪夫混沌系统单次迭代、整数化处理、正向扩散加密和切比雪夫混沌系统参数μ1调整等操作,其中取正向扩散加密密钥C10=12,从而得到高位数值序列的正向扩散加密密文序列C1={62,36,71,42,8,19,73,62,8,43,4,16,60,40,8,7,42,7,8,71,36};
(3)首先从混沌序列X中抽取元素x301=-0.176980652493400,作为如公式zk+1=cos(μ2·arccos(zk))所示的切比雪夫混沌系统的初值z1(z1=-0.176980652493400),且令切比雪夫混沌系统的参数μ2=β=23.45,同时根据上述具体实施方式中一种中文字符串的加密方法步骤(3)中公式Z1=mod(z1×1014,94)所示对混沌信号z1进行整数化处理,得到混沌信号Z1=37,
然后对低位数值序列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,依次进行上述具体实施方式中一种中文字符串的加密方法步骤(3)中公式所示的切比雪夫混沌系统单次迭代、整数化处理、逆向扩散加密和切比雪夫混沌系统参数μ2调整等操作,其中取逆向扩散加密密钥C222=21,从而得到低位数值序列的逆向扩散加密密文序列C2={35,65,28,55,13,18,14,53,41,29,3,45,14,67,51,32,28,44,30,4,58};
(4)设定一个空字符序列C,将高位数值序列的正向扩散加密密文序列C1={62,36,71,42,8,19,73,62,8,43,4,16,60,40,8,7,42,7,8,71,36}和低位数值序列的逆向扩散加密密文序列C2={35,65,28,55,13,18,14,53,41,29,3,45,14,67,51,32,28,44,30,4,58}中各对应元素依次进行如上述具体实施方式中一种中文字符串的加密方法步骤(4)中所示数值与字符的转换运算,得到该段中文字符串的加密密文C=“炷意踅刎懂脸鳢熘妒倬菠疚戬咒对盗亟低犊酯役”
按照上述具体实施方式中一种中文字符串的解密方法,步骤如下:
(1)将某段待解密的中文字符串密文“炷意踅刎懂脸鳢熘妒倬菠疚戬咒对盗亟低犊酯役”逐个字符转换成数值型数据,得到高位数值序列R1={62,36,71,42,8,19,73,62,8,43,4,16,60,40,8,7,42,7,8,71,36}和低位数值序列R2={35,65,28,55,13,18,14,53,41,29,3,45,14,67,51,32,28,44,30,4,58};
(2)首先利用外部解密密钥
Figure BDA0002088086680000151
令初值
Figure BDA0002088086680000152
和参数
Figure BDA0002088086680000153
根据上述具体实施方式中一种中文字符串的解密方法步骤(2)中公式
Figure BDA0002088086680000154
所示的切比雪夫混沌系统进行迭代,得到混沌序列
Figure BDA0002088086680000155
从混沌序列
Figure BDA0002088086680000156
中抽取元素
Figure BDA0002088086680000157
作为如公式
Figure BDA0002088086680000158
所示的切比雪夫混沌系统的初值
Figure BDA0002088086680000159
Figure BDA00020880866800001510
且令切比雪夫混沌系统的参数
Figure BDA00020880866800001511
同时根据上述具体实施方式中一种中文字符串的解密方法步骤(2)中公式
Figure BDA00020880866800001512
所示对混沌信号
Figure BDA00020880866800001513
进行整数化处理,得到混沌信号
Figure BDA00020880866800001514
然后对低位数值序列R2={35,65,28,55,13,18,14,53,41,29,3,45,14,67,51,32,28,44,30,4,58}中每个元素Ri2,其中i=1,2,3,...,21,依次进行上述具体实施方式中一种中文字符串的解密方法步骤(2)中公式所示的切比雪夫混沌系统单次迭代、整数化处理、逆向扩散解密和切比雪夫混沌系统参数
Figure BDA00020880866800001515
调整等操作,其中取逆向扩散解密密钥R222=21,从而得到低位数值序列逆向扩散解密后的序列D2={187,214,208,196,214,251,174,196,211,220,205,226,220,189,168,172,242,165,181,195,163};
(3)首先从混沌序列
Figure BDA0002088086680000161
中抽取元素
Figure BDA0002088086680000162
作为如公式
Figure BDA0002088086680000163
所示的切比雪夫混沌系统的初值
Figure BDA0002088086680000164
Figure BDA0002088086680000165
且令切比雪夫混沌系统的参数
Figure BDA0002088086680000166
同时根据上述具体实施方式中一种中文字符串的解密方法步骤(3)中公式
Figure BDA0002088086680000167
对混沌信号
Figure BDA0002088086680000168
进行整数化处理,得到混沌信号
Figure BDA0002088086680000169
然后对高位数值序列R1={62,36,71,42,8,19,73,62,8,43,4,16,60,40,8,7,42,7,8,71,36}中每个元素Ri1,其中i=1,2,3,...,21,依次进行上述具体实施方式中一种中文字符串的解密方法步骤(3)中公式所示的切比雪夫混沌系统单次迭代、整数化处理、正向扩散解密和切比雪夫混沌系统参数
Figure BDA00020880866800001610
调整等操作,其中取正向扩散解密密钥R01=12,从而得到高位数值序列正向扩散解密后的序列D1={210,214,214,206,215,183,180,181,188,195,186,189,195,183,183,163,188,181,202,211,161};
(4)将高位数值序列正向扩散解密后的序列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;或C10=13;或C222=20,中文字符串加密结果如表1所示。由表1可知,加密密钥的细微变化会引起中文字符串加密密文发生很大的变化,由此可见本专利所提一种中文字符串的加密方法对加密密钥具有敏感性。
表1外部加密密钥发生微变时,中文字符串加密结果
Figure BDA00020880866800001611
Figure BDA0002088086680000171
实施例3
按上述一种中文字符串的加密方法,其加密步骤与具体实施例1相似,仅某段待加密中文字符串(“一种中文字符串的加密和解密方法,简单实用。”)发生细微变化:“二种中文字符串的加密和解密方法,简单实用。”;或“一种中文子符串的加密和解密方法,简单实用。”;或“一种中文字符串的加蜜和解密方法,简单实用。”;或“一种中文字符串的加密和解密方法、简单实用。”;或“一种中文字符串的加密和解密方法,简卑实用。”;或“一种中文字符串的加密和解密方法,简单实用!”;或“种一中文字符串的加密和解密方法,简单实用。”;或“一种中文字符串的加密和解密方法,简单实。用”,中文字符串加密结果如表2所示。由表2可见:待加密中文字符串平文信息的细微变化会引起加密密文的“面目全非”,由此可见本专利所提一种中文字符串加密方法对待加密中文字符串的平文信息具有敏感性。
表2待加密字符串发生微变时,字符串加密结果
Figure BDA0002088086680000172
Figure BDA0002088086680000181
Figure BDA0002088086680000191
由上述具体实施例2、3分析可知,本专利所提一种中文字符串加密方法所生成的中文字符串密文不仅与加密密钥密切相关,而且依赖于待加密中文字符串平文信息,因此本专利所提一种中文字符串加密方法可抵抗已知/选择明文攻击,具有很强的安全性。
实施例4
按照上述一种中文字符串的解密方法,某段待解密中文密文为“炷意踅刎懂脸鳢熘妒倬菠疚戬咒对盗亟低犊酯役”,一种中文字符串的解密步骤与具体实施例1相似,仅解密密钥发生细微变化:
Figure BDA0002088086680000192
Figure BDA0002088086680000193
或R01=13;或R222=20,中文字符串密文解密结果如表3所示。由表3可知,解密密钥的细微变化会引起密文解密结果发生很大的变化,恢复出的中文字符串将是无用信息,由此可见本专利所提一种中文字符串的解密方法对解密密钥具有敏感性。
表3外部解密密钥发生微变时,密文解密结果
Figure BDA0002088086680000194
Figure BDA0002088086680000201
实施例5
按照上述一种中文字符串的解密方法,其解密步骤与具体实施例1相似,仅某段待解密中文字符串密文(“炷意踅刎懂脸鳢熘妒倬菠疚戬咒对盗亟低犊酯役”)发生细微变化:“柱意踅刎懂脸鳢熘妒倬菠疚戬咒对盗亟低犊酯役”;或“炷意踅刎幢脸鳢熘妒倬菠疚戬咒对盗亟低犊酯役”;或“炷意踅刎懂脸鳢溜妒倬菠疚戬咒对盗亟低犊酯役”;或“炷意踅刎懂脸鳢熘妒倬菠久戬咒对盗亟低犊酯役”;或“炷意踅刎懂脸鳢熘妒倬菠疚戬咒对盗亟底犊酯役”;或“炷意踅刎懂脸鳢熘妒倬菠疚戬咒对盗亟低犊酯股”;或“意炷踅刎懂脸鳢熘妒倬菠疚戬咒对盗亟低犊酯役”;或“炷意踅刎懂脸鳢熘妒倬菠疚戬咒对盗亟低犊役酯”,中文字符串密文解密结果如表4所示。由表4可知,待解密中文字符串密文的细微变化会引起密文解密结果发生很大的变化,难以恢复出原始的中文字符串,由此可见本专利所提一种中文字符串解密方法可抵抗唯密文攻击。
表4待解密中文字符串密文发生微变时,密文解密结果
Figure BDA0002088086680000202
Figure BDA0002088086680000211
Figure BDA0002088086680000221

Claims (5)

1.一种中文字符串的加密方法,其特征在于,包括如下几个步骤:
(1)将某段中文字符串逐个字符转换为数值型数据,得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},其中,所述高位数值序列P1和所述低位数值序列P2的长度均与所述中文字符串的长度一致,记为L;
(2)对高位数值序列P1进行正向扩散加密,得到高位数值序列P1的正向扩散加密密文序列C1={C11,C12,...,C1i,...,C1L};
所述对高位数值序列P1进行正向扩散加密包括:
利用外部加密密钥(α、β),令初值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,且令切比雪夫混沌系统的参数μ1=β,同时对混沌信号y1按照如下公式(3)进行整数化处理,得到整数化处理后的混沌信号Y1
yk+1=cos(μ1·arccos(yk)) (2)
Y1=mod(y1×1014,74) (3)
对高位数值序列P1={P11,P21,...,Pi1,....,PL1}中每个元素Pi1,其中i=1,2,3,...,L,依次进行如下操作:
S11.由混沌信号yi和参数μ1,对如公式(2)所示切比雪夫混沌系统进行单次迭代,得到混沌信号yi+1,同时对混沌信号yi+1按照如公式(3’)进行整数化处理,得到整数化处理后的混沌信号Yi+1
Yi+1=mod(yi+1×1014,74) (3’)
S12.利用整数化处理后的混沌信号Yi+1、Yi以及对应的低位数值序列元素Pi2,对高位数值序列元素Pi1按照如下公式(4)进行正向扩散加密,得到正向扩散加密密文C1i
Figure FDA0003459398480000011
其中,C10设为正向扩散加密密钥;
S13.比较i与L的大小,若i=L,则停止操作,若i<L,则根据正向扩散加密密文C1i、C1i-1和混沌信号Yi、Yi+1以及对应的低位数值序列元素Pi2,对公式(2)所示的切比雪夫混沌系统中的参数μ1按照如下公式(5)进行调整,
Figure FDA0003459398480000021
然后转向步骤S11;
(3)对低位数值序列P2进行逆向扩散加密,得到低位数值序列P2的逆向扩散加密密文序列C2={C21,C22,...,C2i,...,C2L}:
所述对低位数值序列P2进行逆向扩散加密包括:
从混沌序列X中抽取元素x301,作为如公式(6)所示的切比雪夫混沌系统的初值z1,且令公式(6)所示的切比雪夫混沌系统的参数μ2=β,同时对混沌信号z1按照如下公式(7)进行整数化处理,得到整数化处理后的混沌信号Z1
zk+1=cos(μ2·arccos(zk)) (6)
Z1=mod(z1×1014,94) (7)
对低位数值序列P2={P12,P22,...,Pi2,....,PL2}中每个元素Pi2,其中i=1,2,3,...,L,依次进行如下操作:
S21.由混沌信号zi和参数μ2,对如公式(6)所示切比雪夫混沌系统进行单次迭代,得到混沌信号zi+1,同时对混沌信号zi+1按照如公式(7’)进行整数化处理,得到整数化处理后的混沌信号Zi+1
Zi+1=mod(zi+1×1014,94) (7’)
S22.利用整数化处理后的混沌信号Zi+1、Zi,对低位数值序列P2中的元素PL+1-i2按照如下公式(8)进行逆向扩散加密,得到逆向扩散加密密文C2L+1-i
Figure FDA0003459398480000022
其中,C2L+1为逆向扩散加密密钥,
S23.比较i与L的大小,若i=L,则停止操作,若i<L,则根据逆向扩散加密密文C2L+1-i、C2L+2-i和混沌信号Zi、Zi+1以及对应的高位数值序列元素加密密文C1i,对切比雪夫混沌系统的参数μ2按照如下公式(9)进行调整,
Figure FDA0003459398480000031
然后转向步骤S21;
(4)将高位数值序列P1的正向扩散加密密文序列C1和低位数值序列P2的逆向扩散加密密文序列C2,进行数值与字符的转换,得到字符序列C,具体为:
设定一个空字符序列C,将高位数值序列P1的正向扩散加密密文序列C1={C11,C12,...,C1i,...,C1L}和低位数值序列P2的逆向扩散加密密文序列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])],
所述字符序列C即为步骤(1)中所述中文字符串的加密密文,其中所述字符序列C的长度为
Figure FDA0003459398480000032
Figure FDA0003459398480000033
2.根据权利要求1所述的一种中文字符串的加密方法,其特征在于:步骤(1)所述的将某段中文字符串逐个字符转换为数值型数据,其中某段中文字符串包括GB2312字符集中的中文标点符号以及GB2312字符集中双字节编码汉字;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据]形式,记为[Pi1,Pi2],相应的数据组合得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2}。
3.一种中文字符串的解密方法,用于对根据权利要求1或2所述的中文字符串的加密方法所获得的加密字符串进行解密,其特征在于,所述中文字符串的解密方法包括如下几个步骤:
(1)将某段待解密中文字符串密文序列
Figure FDA0003459398480000041
逐个字符转换成数值型数据,得到高位数值序列
Figure FDA0003459398480000042
和低位数值序列
Figure FDA0003459398480000043
其中所述高位数值序列R1、低位数值序列R2的长度为
Figure FDA0003459398480000044
所述待解密中文字符串密文序列
Figure FDA0003459398480000045
的长度为
Figure FDA0003459398480000046
Figure FDA0003459398480000047
(2)对低位数值序列R2进行逆向扩散解密,得到低位数值序列R2逆向扩散解密后的序列D2={D21,D22,...,D2i,...,D2L};
所述对低位数值序列R2进行逆向扩散解密包括:
首先利用外部解密密钥
Figure FDA0003459398480000048
令初值
Figure FDA0003459398480000049
和参数
Figure FDA00034593984800000410
对如下公式(10)所示的切比雪夫混沌系统进行迭代,得到混沌序列
Figure FDA00034593984800000411
Figure FDA00034593984800000412
其中,k表示迭代次数,k=1,2,...,300,
Figure FDA00034593984800000413
表示第k次迭代得到的混沌信号,
从混沌序列
Figure FDA00034593984800000414
中抽取元素
Figure FDA00034593984800000415
作为如公式(11)所示的切比雪夫混沌系统的初值
Figure FDA00034593984800000416
且令公式(11)所示的切比雪夫混沌系统的参数
Figure FDA00034593984800000417
同时对混沌信号
Figure FDA00034593984800000418
按照如下公式(12)进行整数化处理,得到整数化处理后的混沌信号
Figure FDA00034593984800000419
Figure FDA00034593984800000420
Figure FDA00034593984800000421
对低位数值序列
Figure FDA00034593984800000422
中每个元素Ri2,其中
Figure FDA00034593984800000423
依次进行如下操作:
S31.由混沌信号
Figure FDA00034593984800000424
和参数
Figure FDA00034593984800000425
对如公式(11)所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure FDA00034593984800000426
同时对混沌信号
Figure FDA00034593984800000427
按照如公式(12’)进行整数化处理,得到整数化处理后的混沌信号
Figure FDA00034593984800000428
Figure FDA00034593984800000429
S32.利用整数化处理后的混沌信号
Figure FDA00034593984800000430
对低位数值序列R2中的元素
Figure FDA00034593984800000431
按照如下公式(13)进行逆向扩散解密,得到逆向扩散解密后数据
Figure FDA0003459398480000051
Figure FDA0003459398480000052
其中,
Figure FDA0003459398480000053
为逆向扩散解密密钥,
S33.比较i与L的大小,若i=L,则停止,若i<L,则根据低位数值序列元素
Figure FDA0003459398480000054
和混沌信号
Figure FDA0003459398480000055
以及对应的高位数值序列元素Ri1,对切比雪夫混沌系统的参数
Figure FDA0003459398480000056
按照如下公式(14)进行调整,
Figure FDA0003459398480000057
然后转向步骤S31;
(3)对高位数值序列R1进行正向扩散解密,得到高位数值序列R1正向扩散解密后的序列D1={D11,D12,...,D1i,...,D1L};
所述对高位数值序列R1进行正向扩散解密包括:
从混沌序列
Figure FDA0003459398480000058
中抽取元素
Figure FDA0003459398480000059
作为如公式(15)所示的切比雪夫混沌系统的初值
Figure FDA00034593984800000510
且令公式(15)所示的切比雪夫混沌系统的参数
Figure FDA00034593984800000511
同时对混沌信号
Figure FDA00034593984800000512
按照如下公式(16)进行整数化处理,得到整数化处理后的混沌信号
Figure FDA00034593984800000513
Figure FDA00034593984800000514
Figure FDA00034593984800000515
对高位数值序列
Figure FDA00034593984800000516
中每个元素Ri1,其中
Figure FDA00034593984800000517
依次进行如下操作:
S41.由混沌信号
Figure FDA00034593984800000518
和参数
Figure FDA00034593984800000519
对如公式(15)所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure FDA00034593984800000520
同时对混沌信号
Figure FDA00034593984800000521
按照如公式(16’)进行整数化处理,得到整数化处理后的混沌信号
Figure FDA00034593984800000522
Figure FDA00034593984800000523
S42.利用整数化处理后的混沌信号
Figure FDA00034593984800000524
以及对应的低位数值序列元素的解密数据D2i,对数据Ri1按照如下公式(17)进行正向扩散解密,得到正向扩散解密后数据D1i
Figure FDA0003459398480000061
其中,R01为正向扩散解密密钥,
S43.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列元素Ri1、Ri-11和混沌信号
Figure FDA0003459398480000062
以及对应的低位数值序列元素的解密数据D2i,对切比雪夫混沌系统的参数
Figure FDA0003459398480000063
按照如下公式(18)进行调整,
Figure FDA0003459398480000064
然后转向步骤S41;
(4)将高位数值序列R1正向扩散解密后的序列D1和低位数值序列R2逆向扩散解密后的序列D2,进行数值与字符的转换,得到字符序列PP,即为该段待解密中文字符串解密后恢复的中文字符串,其中所述字符序列PP的长度为
Figure FDA0003459398480000065
4.根据权利要求3所述的一种中文字符串的解密方法,其特征在于:步骤(1)中所述的将某段待解密中文字符串密文序列
Figure FDA0003459398480000066
逐个字符转换成数值型数据,得到高位数值序列
Figure FDA0003459398480000067
和低位数值序列
Figure FDA0003459398480000068
其转换关系表述如下:
首先将某段待解密中文字符串密文序列
Figure FDA0003459398480000069
中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],记为
Figure FDA00034593984800000610
然后将数值型数据
Figure FDA00034593984800000611
对应组合
Figure FDA00034593984800000612
得到高位数值序列
Figure FDA00034593984800000613
和低位数值序列
Figure FDA00034593984800000614
接着逐个检查高位数值序列
Figure FDA00034593984800000615
中是否存在有
Figure FDA00034593984800000616
的元素并且低位数值序列
Figure FDA00034593984800000617
中是否存在有
Figure FDA00034593984800000618
的元素,如果存在,则将高位数值序列
Figure FDA00034593984800000619
中后一元素
Figure FDA00034593984800000620
数值加1,并删除高位数值序列
Figure FDA00034593984800000621
Figure FDA00034593984800000622
的元素以及其对应的低位数值序列
Figure FDA00034593984800000623
Figure FDA00034593984800000624
的元素;
同时逐个检查高位数值序列
Figure FDA00034593984800000625
中是否存在有
Figure FDA00034593984800000626
的元素并且低位数值序列
Figure FDA00034593984800000627
中是否存在有
Figure FDA00034593984800000628
的元素,如果存在,则将低位数值序列
Figure FDA00034593984800000629
中后一元素
Figure FDA00034593984800000630
数值减1,并删除高位数值序列
Figure FDA00034593984800000631
Figure FDA00034593984800000632
的元素以及其对应的低位数值序列
Figure FDA00034593984800000633
Figure FDA00034593984800000634
的元素;
再将高位数值序列
Figure FDA0003459398480000071
中各元素
Figure FDA0003459398480000072
逐个进行如下运算,
Figure FDA0003459398480000073
同时将低位数值序列
Figure FDA0003459398480000074
中各元素
Figure FDA0003459398480000075
逐个进行如下运算,
Figure FDA0003459398480000076
最后得到高位数值序列
Figure FDA0003459398480000077
和低位数值序列
Figure FDA0003459398480000078
5.根据权利要求3所述的一种中文字符串的解密方法,其特征在于:步骤(4)中所述的将高位数值序列R1正向扩散解密后的序列D1和低位数值序列R2逆向扩散解密后的序列D2,进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列PP,将序列
Figure FDA0003459398480000079
和序列
Figure FDA00034593984800000710
中对应元素依次进行如下运算,
首先判断是否D1i=215且D2i>249,如果存在,则令D1i=161;
然后利用native2unicode(·)函数将数值数据[D1i,D2i]转换为单个中文字符,并添加到字符序列PP中,即PP=[PP,native2unicode([D1i,D2i])]。
CN201910494401.XA 2019-06-10 2019-06-10 一种中文字符串的加密、解密方法 Active CN110278066B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910494401.XA CN110278066B (zh) 2019-06-10 2019-06-10 一种中文字符串的加密、解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910494401.XA CN110278066B (zh) 2019-06-10 2019-06-10 一种中文字符串的加密、解密方法

Publications (2)

Publication Number Publication Date
CN110278066A CN110278066A (zh) 2019-09-24
CN110278066B true CN110278066B (zh) 2022-02-25

Family

ID=67961999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910494401.XA Active CN110278066B (zh) 2019-06-10 2019-06-10 一种中文字符串的加密、解密方法

Country Status (1)

Country Link
CN (1) CN110278066B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116781244B (zh) * 2023-08-21 2023-10-27 徐州医科大学 基于余弦混沌的mnss平台的数据私密及管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1179912A1 (en) * 2000-08-09 2002-02-13 STMicroelectronics S.r.l. Chaotic encryption
CN103532701A (zh) * 2013-10-16 2014-01-22 南通纺织职业技术学院 一种数值型数据的加密、解密方法
CN104486073A (zh) * 2014-12-23 2015-04-01 南通大学 一种字符型数据的加密、解密方法
CN109472338A (zh) * 2018-11-19 2019-03-15 南通大学 一种商品防伪二维码的批量生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001326631A (ja) * 2000-05-17 2001-11-22 Yazaki Corp カオス暗号通信方法、及びカオス暗号通信システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1179912A1 (en) * 2000-08-09 2002-02-13 STMicroelectronics S.r.l. Chaotic encryption
CN103532701A (zh) * 2013-10-16 2014-01-22 南通纺织职业技术学院 一种数值型数据的加密、解密方法
CN104486073A (zh) * 2014-12-23 2015-04-01 南通大学 一种字符型数据的加密、解密方法
CN109472338A (zh) * 2018-11-19 2019-03-15 南通大学 一种商品防伪二维码的批量生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
混沌加密算法的研究与实现;刘成斌;《中国优秀硕士学位论文全文数据库》;20100331;全文 *

Also Published As

Publication number Publication date
CN110278066A (zh) 2019-09-24

Similar Documents

Publication Publication Date Title
CN109995504B (zh) 一种字符串的加密和解密方法
CN110299989B (zh) 一种中英文字符串的加密、解密方法
CN109981245B (zh) 一种字符串的加密、解密方法
CN110011783B (zh) 一种汉字的加密、解密方法
CN110650005B (zh) 一种中英文字符串加密方法
Purnama An Analysis of Encryption and Decryption Application by using One Time Pad Algorithm
CN108768617A (zh) 一种基于传统分组密码的保持格式加密方法
Geetha et al. Tamilian cryptography: an efficient hybrid symmetric key encryption algorithm
CN109981246B (zh) 一种字符串的加密方法和解密方法
CN110768797A (zh) 一种基于身份格式保留加密的数据脱敏方法
Sari et al. Cryptography Triple Data Encryption Standard (3DES) for Digital Image Security
CN110278066B (zh) 一种中文字符串的加密、解密方法
CN110287713B (zh) 一种中文字符串的加密方法和解密方法
Kulkarni et al. A robust encryption method for speech data hiding in digital images for optimized security
CN114741712A (zh) 一种基于分层置乱的汉字加密方法
CN114745096A (zh) 一种基于分层双向扩散的字符串加密方法
Sivakumar et al. Generation of random key stream using word grid puzzle for the applications of cryptography
CN110650006B (zh) 一种中英文字符串的加密和解密方法
CN114553393A (zh) 一种基于分层移位的汉字加密方法
CN114707165A (zh) 一种基于分层置乱的字符串加密方法
CN109495430A (zh) 一种基于泄序加密的解密算法
Chandran et al. VLSI Implementaion of Image Encryption and Decryption Using Reversible Logic Gates
Siahaan et al. Application of Data Encryption Standard and Lempel-Ziv-Welch Algorithm for File Security
Sathiaraj et al. Secure Transfer of Image-Acquired Text Using a Combination of Cryptography and Steganography
CN110287712B (zh) 一种中英文字符串的加密方法

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