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

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

Info

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
Application number
CN201910494403.9A
Other languages
English (en)
Other versions
CN110287713A (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 CN201910494403.9A priority Critical patent/CN110287713B/zh
Publication of CN110287713A publication Critical patent/CN110287713A/zh
Application granted granted Critical
Publication of CN110287713B publication Critical patent/CN110287713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing 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
Figure BDA0002088086620000021
其中,C1L+1为逆向扩散加密密钥,
同时利用整数化处理后的混沌信号Zi+1、Zi,对数据Pi2按照如下公式(7)进行正向扩散加密,得到正向扩散加密密文C2i
Figure BDA0002088086620000031
其中,C20为正向扩散加密密钥,
S13.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列逆向扩散加密密文C1L+1-i、C1L+2-i和整数化处理后的混沌信号Yi、Yi+1以及对应的低位数值序列正向扩散加密密文C2i,对切比雪夫混沌系统的参数μ1按照如下公式(8)进行调整,
Figure BDA0002088086620000032
同时根据低位数值序列正向扩散加密密文C2i、C2i-1和整数化处理后的混沌信号Zi、Zi+1以及对应的高位数值序列逆向扩散加密密文C1L+1-i,对切比雪夫混沌系统的参数μ2按照如下公式(9)进行调整,
Figure BDA0002088086620000033
然后转向步骤S11;
(3)转码:将高位数值序列的逆向扩散加密密文序列C1和低位数值序列的正向扩散加密密文序列C2,进行数值与字符的转换,得到字符序列C,即为该段中文字符串的加密密文,其中序列C的长度为
Figure BDA0002088086620000034
Figure BDA0002088086620000035
进一步的,中文字符串的加密方法里步骤(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])]。
本发明还公开了一种中文字符串的解密方法,用于对根据上述的中文字符串的加密方法所获得的加密字符串进行解密,所述中文字符串的解密方法包括如下几个步骤:
(1)转码:将某段待解密的中文字符串密文
Figure BDA0002088086620000041
逐个字符转换成数值型数据,得到高位数值序列
Figure BDA0002088086620000042
和低位数值序列
Figure BDA0002088086620000043
其中高位数值序列R1、低位数值序列R2的长度为
Figure BDA0002088086620000044
某段待解密中文字符串密文
Figure BDA0002088086620000045
的长度为
Figure BDA0002088086620000046
Figure BDA0002088086620000047
(2)高位数值序列的逆向扩散解密、低位数值序列的正向扩散解密:对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密,得到高位数值序列逆向扩散解密后的序列
Figure BDA0002088086620000048
和低位数值序列正向扩散解密后的序列
Figure BDA0002088086620000049
所述对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密包括:
首先利用外部解密密钥
Figure BDA00020880866200000410
令初值
Figure BDA00020880866200000411
和参数
Figure BDA00020880866200000412
对如下公式(10)所示的切比雪夫混沌系统进行迭代,得到混沌序列
Figure BDA00020880866200000413
Figure BDA00020880866200000414
其中,k表示迭代次数(k=1,2,...,300),
Figure BDA0002088086620000051
表示第k次迭代得到的混沌信号,
从混沌序列
Figure BDA0002088086620000052
中抽取元素
Figure BDA0002088086620000053
作为如公式(11)所示的切比雪夫混沌系统的初值
Figure BDA0002088086620000054
且令切比雪夫混沌系统的参数
Figure BDA0002088086620000055
并对混沌信号
Figure BDA0002088086620000056
按照如下公式(12)进行整数化处理,得到整数化处理后的混沌信号
Figure BDA0002088086620000057
Figure BDA0002088086620000058
Figure BDA0002088086620000059
同时从混沌序列
Figure BDA00020880866200000510
中抽取元素
Figure BDA00020880866200000511
作为如公式(13)所示的切比雪夫混沌系统的初值
Figure BDA00020880866200000512
且令切比雪夫混沌系统的参数
Figure BDA00020880866200000513
并对混沌信号
Figure BDA00020880866200000514
按照如下公式(14)进行整数化处理,得到整数化处理后的混沌信号
Figure BDA00020880866200000515
Figure BDA00020880866200000516
Figure BDA00020880866200000517
然后同时对高位数值序列
Figure BDA00020880866200000518
中每个元素Ri1,以及低位数值序列
Figure BDA00020880866200000519
中每个元素Ri2,其中
Figure BDA00020880866200000520
依次进行如下操作:
S21.由混沌信号
Figure BDA00020880866200000521
和参数
Figure BDA00020880866200000522
对如公式(11)所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure BDA00020880866200000523
同时对混沌信号
Figure BDA00020880866200000524
按照如公式(12’)进行整数化处理,得到整数化处理后的混沌信号
Figure BDA00020880866200000525
同时由混沌信号
Figure BDA00020880866200000526
和参数
Figure BDA00020880866200000527
对如公式(13)所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure BDA00020880866200000528
同时对混沌信号
Figure BDA00020880866200000529
按照如公式(14’)进行整数化处理,得到整数化处理后的混沌信号
Figure BDA00020880866200000530
Figure BDA00020880866200000531
Figure BDA00020880866200000532
S22.利用整数化处理后的混沌信号
Figure BDA00020880866200000533
对数据
Figure BDA00020880866200000534
按照如下公式(15)进行逆向扩散解密,得到逆向扩散解密后的组合数据
Figure BDA00020880866200000535
Figure BDA00020880866200000536
其中,
Figure BDA00020880866200000537
为逆向扩散解密密钥,
同时利用整数化处理后的混沌信号
Figure BDA00020880866200000538
对数据Ri2按照如下公式(16)进行正向扩散解密,得到正向扩散解密后数据D2i
Figure BDA00020880866200000539
其中,R02为正向扩散解密密钥,
S23.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列元素
Figure BDA0002088086620000064
和整数化处理后的混沌信号
Figure BDA0002088086620000065
以及对应的低位数值序列元素Ri2,对切比雪夫混沌系统的参数
Figure BDA0002088086620000066
按照如下公式(17)进行调整,
Figure BDA0002088086620000061
根据低位数值序列元素Ri2、Ri-12和整数化处理后的混沌信号
Figure BDA00020880866200000616
以及对应的高位数值序列元素
Figure BDA0002088086620000067
对切比雪夫混沌系统的参数
Figure BDA0002088086620000068
按照如下公式(18)进行调整,
Figure BDA0002088086620000062
转向步骤S21;
最后,将高位数值序列逆向扩散解密后的组合数据序列
Figure BDA0002088086620000069
逐个元素依次按照如下公式(19)进行运算,得到高位数值序列逆向扩散解密后的序列
Figure BDA00020880866200000610
Figure BDA0002088086620000063
从而得到高位数值序列逆向扩散解密后的序列
Figure BDA00020880866200000611
低位数值序列正向扩散解密后的序列
Figure BDA00020880866200000612
(3)转码:将高位数值序列逆向扩散解密后的序列D1和低位数值序列正向扩散解密后的序列D2,进行数值与字符的转换,得到字符序列PP,即为该段待解密中文字符串解密后恢复的中文字符串,其中字符序列PP的长度为
Figure BDA00020880866200000613
进一步地,中文字符串的解密方法里步骤(1)中所述的将某段待解密中文字符串密文
Figure BDA00020880866200000614
逐个字符转换成数值型数据,得到高位数值序列
Figure BDA00020880866200000615
和低位数值序列
Figure BDA0002088086620000073
其转换关系表述如下:
首先将某段待解密中文字符串密文
Figure BDA0002088086620000074
中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],即为
Figure BDA0002088086620000075
然后将数值型数据
Figure BDA0002088086620000076
对应组合
Figure BDA0002088086620000077
得到高位数值序列
Figure BDA0002088086620000078
和低位数值序列
Figure BDA0002088086620000079
接着逐个检查高位数值序列
Figure BDA00020880866200000710
中是否存在有
Figure BDA00020880866200000711
的元素并且低位数值序列
Figure BDA00020880866200000712
中是否存在有
Figure BDA00020880866200000713
的元素,如果存在,则将高位数值序列
Figure BDA00020880866200000718
中后一元素
Figure BDA00020880866200000715
数值减1,并删除高位数值序列
Figure BDA00020880866200000714
Figure BDA00020880866200000716
的元素以及其对应的低位数值序列
Figure BDA00020880866200000719
Figure BDA00020880866200000717
的元素;
同时逐个检查高位数值序列
Figure BDA00020880866200000720
中是否存在有
Figure BDA00020880866200000721
的元素并且低位数值序列
Figure BDA00020880866200000722
中是否存在有
Figure BDA00020880866200000723
的元素,如果存在,则将低位数值序列
Figure BDA00020880866200000724
中后一元素
Figure BDA00020880866200000725
数值减1,并删除高位数值序列
Figure BDA00020880866200000726
Figure BDA00020880866200000727
的元素以及其对应的低位数值序列
Figure BDA00020880866200000737
Figure BDA00020880866200000728
的元素;
再将高位数值序列
Figure BDA00020880866200000729
中各元素
Figure BDA00020880866200000730
逐个按照如下公式进行运算,
Figure BDA0002088086620000071
同时将低位数值序列
Figure BDA00020880866200000731
中各元素
Figure BDA00020880866200000732
逐个按照如下公式进行运算,
Figure BDA0002088086620000072
最后得到高位数值序列
Figure BDA00020880866200000733
和低位数值序列
Figure BDA00020880866200000734
进一步地,中文字符串的解密方法里步骤(3)中所述的将高位数值序列逆向扩散解密后的序列D1和低位数值序列正向扩散解密后的序列D2,进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列PP,将序列
Figure BDA00020880866200000735
和序列
Figure BDA00020880866200000736
中对应元素依次进行如下运算,
首先判断是否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
Figure BDA0002088086620000091
其中,C1L+1为逆向扩散加密密钥,
同时利用整数化处理后的混沌信号Zi+1、Zi,对数据Pi2按照如下公式进行正向扩散加密,得到正向扩散加密密文C2i
Figure BDA0002088086620000092
其中,C20为正向扩散加密密钥,
S13.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列逆向扩散加密密文C1L+1-i、C1L+2-i和整数化处理后的混沌信号Yi、Yi+1以及对应的低位数值序列正向扩散加密密文C2i,对切比雪夫混沌系统的参数μ1按照如下公式进行调整,
Figure BDA0002088086620000093
同时根据低位数值序列正向扩散加密密文C2i、C2i-1和整数化处理后的混沌信号Zi、Zi+1以及对应的高位数值序列逆向扩散加密密文C1L+1-i,对切比雪夫混沌系统的参数μ2按照如下公式进行调整,
Figure BDA0002088086620000094
转向步骤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])],
从而得到字符序列C,即为该段中文字符串的加密密文,其中序列C的长度为
Figure BDA0002088086620000102
Figure BDA0002088086620000101
如图1所示,一种中文字符串的解密方法,用于对根据权利要求1至3中任一项所述的中文字符串的加密方法所获得的加密字符串进行解密,包括如下几个步骤:
(1)转码:将某段待解密中文字符串密文
Figure BDA0002088086620000105
逐个字符转换成数值型数据,得到高位数值序列
Figure BDA0002088086620000103
和低位数值序列
Figure BDA0002088086620000104
其转换关系表述如下,
首先将某段待解密中文字符串密文
Figure BDA0002088086620000106
中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],即为
Figure BDA0002088086620000107
然后将数值型数据
Figure BDA0002088086620000113
对应组合
Figure BDA0002088086620000114
得到高位数值序列
Figure BDA0002088086620000115
和低位数值序列
Figure BDA0002088086620000116
接着逐个检查高位数值序列
Figure BDA0002088086620000117
中是否存在有
Figure BDA0002088086620000118
的元素并且低位数值序列
Figure BDA0002088086620000119
中是否存在有
Figure BDA00020880866200001110
的元素,如果存在,则将高位数值序列
Figure BDA00020880866200001111
中后一元素
Figure BDA00020880866200001112
数值减1,并删除高位数值序列
Figure BDA00020880866200001113
Figure BDA00020880866200001114
的元素以及其对应的低位数值序列
Figure BDA00020880866200001116
Figure BDA00020880866200001115
的元素;
同时逐个检查高位数值序列
Figure BDA00020880866200001117
中是否存在有
Figure BDA00020880866200001118
的元素并且低位数值序列
Figure BDA00020880866200001119
中是否存在有
Figure BDA00020880866200001120
的元素,如果存在,则将低位数值序列
Figure BDA00020880866200001121
中后一元素
Figure BDA00020880866200001122
数值减1,并删除高位数值序列
Figure BDA00020880866200001124
Figure BDA00020880866200001123
的元素以及其对应的低位数值序列
Figure BDA00020880866200001126
Figure BDA00020880866200001125
的元素;
再将高位数值序列
Figure BDA00020880866200001127
中各元素
Figure BDA00020880866200001128
逐个进行如下运算,
Figure BDA0002088086620000111
同时将低位数值序列
Figure BDA00020880866200001129
中各元素
Figure BDA00020880866200001130
逐个进行如下运算,
Figure BDA0002088086620000112
最后得到高位数值序列
Figure BDA00020880866200001131
和低位数值序列
Figure BDA00020880866200001132
其中数值序列R1,R2的长度为
Figure BDA00020880866200001133
某段待解密中文字符串密文
Figure BDA00020880866200001155
的长度为
Figure BDA00020880866200001134
Figure BDA00020880866200001135
(2)高位数值序列的逆向扩散解密、低位数值序列的正向扩散解密:对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密,得到高位数值序列逆向扩散解密后的序列
Figure BDA00020880866200001136
和低位数值序列正向扩散解密后的序列
Figure BDA00020880866200001137
首先利用外部解密密钥
Figure BDA00020880866200001138
令初值
Figure BDA00020880866200001139
和参数
Figure BDA00020880866200001140
对如公式
Figure BDA00020880866200001141
所示的切比雪夫混沌系统进行迭代,k表示迭代次数(k=1,2,...,300),
Figure BDA00020880866200001142
表示第k次迭代得到的混沌信号,得到混沌序列
Figure BDA00020880866200001143
从混沌序列
Figure BDA00020880866200001144
中抽取元素
Figure BDA00020880866200001145
作为如公式
Figure BDA00020880866200001146
所示的切比雪夫混沌系统的初值
Figure BDA00020880866200001147
且令切比雪夫混沌系统的参数
Figure BDA00020880866200001148
并按照如公式
Figure BDA00020880866200001149
所示对混沌信号
Figure BDA00020880866200001150
进行整数化处理,得到整数化处理后的混沌信号
Figure BDA00020880866200001151
同时从混沌序列
Figure BDA00020880866200001152
中抽取元素
Figure BDA00020880866200001153
作为如公式
Figure BDA00020880866200001154
所示的切比雪夫混沌系统的初值
Figure BDA0002088086620000124
且令切比雪夫混沌系统的参数
Figure BDA0002088086620000125
并按照如公式
Figure BDA0002088086620000126
所示对混沌信号
Figure BDA0002088086620000127
进行整数化处理,得到整数化处理后的混沌信号
Figure BDA0002088086620000128
然后同时对高位数值序列
Figure BDA0002088086620000129
中每个元素Ri1,以及低位数值序列
Figure BDA00020880866200001210
中每个元素Ri2,其中
Figure BDA00020880866200001211
依次进行如下操作:
S21.由混沌信号
Figure BDA00020880866200001212
和参数
Figure BDA00020880866200001213
对如公式
Figure BDA00020880866200001214
所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure BDA00020880866200001215
同时对混沌信号
Figure BDA00020880866200001216
按照如公式
Figure BDA00020880866200001217
所示进行整数化处理,得到混沌信号
Figure BDA00020880866200001218
同时由混沌信号
Figure BDA00020880866200001219
和参数
Figure BDA00020880866200001220
对如公式
Figure BDA00020880866200001221
所示切比雪夫混沌系统进行单次迭代,得到整数化处理后的混沌信号
Figure BDA00020880866200001222
同时对混沌信号
Figure BDA00020880866200001223
按照如公式
Figure BDA00020880866200001224
所示进行整数化处理,得到整数化处理后的混沌信号
Figure BDA00020880866200001225
S22.利用整数化处理后的混沌信号
Figure BDA00020880866200001226
对数据
Figure BDA00020880866200001227
按照如下公式进行逆向扩散解密,得到逆向扩散解密后的组合数据
Figure BDA00020880866200001228
Figure BDA0002088086620000121
其中,
Figure BDA00020880866200001229
为逆向扩散解密密钥,
同时利用整数化处理后的混沌信号
Figure BDA00020880866200001230
对数据Ri2按照如下公式进行正向扩散解密,得到正向扩散解密后数据D2i
Figure BDA0002088086620000122
其中,R02为正向扩散解密密钥,
S23.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列元素
Figure BDA00020880866200001231
和整数化处理后的混沌信号
Figure BDA00020880866200001232
以及对应的低位数值序列元素Ri2,对切比雪夫混沌系统的参数
Figure BDA00020880866200001233
按照如下公式进行调整,
Figure BDA0002088086620000123
根据低位数值序列元素Ri2、Ri-12和整数化处理后的混沌信号
Figure BDA00020880866200001234
以及对应的高位数值序列元素
Figure BDA00020880866200001236
对切比雪夫混沌系统的参数
Figure BDA00020880866200001235
按照如下公式进行调整,
Figure BDA0002088086620000131
转向步骤S21;
迭代完成后,得到高位数值序列逆向扩散解密后的组合数据序列
Figure BDA0002088086620000134
以及低位数值序列正向扩散解密后的序列
Figure BDA0002088086620000135
最后,将高位数值序列逆向扩散解密后的组合数据序列
Figure BDA0002088086620000136
逐个元素依次按照如下公式进行运算,得到高位数值序列逆向扩散解密后的序列
Figure BDA0002088086620000137
Figure BDA0002088086620000132
Figure BDA0002088086620000133
从而得到高位数值序列逆向扩散解密后的序列
Figure BDA0002088086620000138
低位数值序列正向扩散解密后的序列
Figure BDA0002088086620000139
(3)转码:将高位数值序列逆向扩散解密后的序列D1和低位数值序列正向扩散解密后的序列D2,进行数值与字符的转换,其转换关系表述如下,
设定一个空字符序列PP,将序列
Figure BDA00020880866200001310
和序列
Figure BDA00020880866200001311
中对应元素依次进行如下运算,
首先判断是否D1i=215且D2i>249,如果存在,则令D1i=214;
然后利用native2unicode(·)函数将数值数据[D1i,D2i]转换为单个中文字符,并添加到字符序列PP中,即PP=[PP,native2unicode([D1i,D2i])]。
从而得到字符序列PP,即为该段待解密中文字符串解密后恢复的中文字符串,其中字符序列PP的长度为
Figure BDA00020880866200001312
下面结合具体的实施例对本发明作进一步说明:
实施例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)首先利用外部解密密钥
Figure BDA0002088086620000151
令初值
Figure BDA0002088086620000153
和参数
Figure BDA0002088086620000152
根据上述具体实施方式中一种中文字符串的解密方法步骤(2)中公式
Figure BDA0002088086620000154
所示的切比雪夫混沌系统进行迭代,得到混沌序列
Figure BDA0002088086620000155
从混沌序列
Figure BDA0002088086620000156
中抽取元素
Figure BDA0002088086620000157
作为如公式
Figure BDA0002088086620000158
所示的切比雪夫混沌系统的初值
Figure BDA0002088086620000159
Figure BDA00020880866200001510
且令切比雪夫混沌系统的参数
Figure BDA00020880866200001511
并根据上述具体实施方式中一种中文字符串的解密方法步骤(2)中公式
Figure BDA00020880866200001512
对混沌信号
Figure BDA00020880866200001513
进行整数化处理,得到混沌信号
Figure BDA00020880866200001514
从混沌序列
Figure BDA00020880866200001515
中抽取元素
Figure BDA00020880866200001516
作为如公式
Figure BDA00020880866200001517
所示的切比雪夫混沌系统的初值
Figure BDA00020880866200001518
且令切比雪夫混沌系统的参数
Figure BDA00020880866200001519
并根据上述具体实施方式中一种中文字符串的解密方法步骤(2)中公式
Figure BDA00020880866200001520
所示对混沌信号
Figure BDA00020880866200001521
进行整数化处理,得到混沌信号
Figure BDA00020880866200001522
然后对高位数值序列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)中公式所示的切比雪夫混沌系统单次迭代、整数化处理、逆向扩散解密、正向扩散解密和切比雪夫混沌系统参数
Figure BDA00020880866200001523
调整等操作,其中取逆向扩散解密密钥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外部加密密钥发生微变时,中文字符串加密结果
Figure BDA0002088086620000161
实施例3
按上述一种中文字符串的加密方法,其加密步骤与具体实施例1相似,仅某段待加密中文字符串(“一种中文字符串的加密和解密方法,简单实用。”)发生细微变化:“二种中文字符串的加密和解密方法,简单实用。”;或“一种中文子符串的加密和解密方法,简单实用。”;或“一种中文字符串的加蜜和解密方法,简单实用。”;或“一种中文字符串的加密和解密方法、简单实用。”;或“一种中文字符串的加密和解密方法,简卑实用。”;或“一种中文字符串的加密和解密方法,简单实用!”;或“种一中文字符串的加密和解密方法,简单实用。”;或“一种中文字符串的加密和解密方法,简单实。用”,中文字符串加密结果如表2所示。由表2可见:待加密中文字符串平文信息的细微变化会引起加密密文的“面目全非”,由此可见本专利所提一种中文字符串加密方法对待加密中文字符串的平文信息具有敏感性。
表2待加密字符串发生微变时,字符串加密结果
Figure BDA0002088086620000171
Figure BDA0002088086620000181
由上述具体实施例2、3分析可知,本专利所提一种中文字符串加密方法所生成的中文字符串密文不仅与加密密钥密切相关,而且依赖于待加密中文字符串平文信息,因此本专利所提一种中文字符串加密方法可抵抗已知/选择明文攻击,具有很强的安全性。
实施例4
按照上述一种中文字符串的解密方法,某段待解密中文密文为“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”,一种中文字符串的解密步骤与具体实施例1相似,仅解密密钥发生细微变化:
Figure BDA0002088086620000192
Figure BDA0002088086620000193
或R221=13;或R02=20,中文字符串密文解密结果如表3所示。由表3可知,解密密钥的细微变化会引起密文解密结果发生很大的变化,恢复出的中文字符串将是无用信息,由此可见本专利所提一种中文字符串的解密方法对解密密钥具有敏感性。
表3外部解密密钥发生微变时,密文解密结果
Figure BDA0002088086620000191
实施例5
按照上述一种中文字符串的解密方法,其解密步骤与具体实施例1相似,仅某段待解密中文字符串密文(“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”)发生细微变化:“喜荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”;或“嘻荐袤慢茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”;或“嘻荐袤馒茁硗思鋈庞穰乘沏槠内吆昴俺铵朔笙噻”;或“嘻荐袤馒茁硗思鋈宠穰乘切槠内吆昴俺铵朔笙噻”;或“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴掩铵朔笙噻”;或“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙塞”;或“荐嘻袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔笙噻”;或“嘻荐袤馒茁硗思鋈宠穰乘沏槠内吆昴俺铵朔噻笙”,中文字符串密文解密结果如表4所示。由表4可知,待解密中文字符串密文的细微变化会引起密文解密结果发生很大的变化,难以恢复出原始的中文字符串,由此可见本专利所提一种中文字符串解密方法可抵抗唯密文攻击。表4待解密中文字符串密文发生微变时,密文解密结果
Figure BDA0002088086620000201
Figure BDA0002088086620000211

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
Figure FDA0002088086610000021
其中,C1L+1为逆向扩散加密密钥,
同时利用整数化处理后的混沌信号Zi+1、Zi,对数据Pi2按照如下公式(7)进行正向扩散加密,得到正向扩散加密密文C2i
Figure FDA0002088086610000022
其中,C20为正向扩散加密密钥,
S13.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列逆向扩散加密密文C1L+1-i、C1L+2-i和整数化处理后的混沌信号Yi、Yi+1以及对应的低位数值序列正向扩散加密密文C2i,对切比雪夫混沌系统的参数μ1按照如下公式(8)进行调整,
Figure FDA0002088086610000023
同时根据低位数值序列正向扩散加密密文C2i、C2i-1和整数化处理后的混沌信号Zi、Zi+1以及对应的高位数值序列逆向扩散加密密文C1L+1-i,对切比雪夫混沌系统的参数μ2按照如下公式(9)进行调整,
Figure FDA0002088086610000031
然后转向步骤S11;
(3)转码:将高位数值序列的逆向扩散加密密文序列C1和低位数值序列的正向扩散加密密文序列C2,进行数值与字符的转换,得到字符序列C,即为该段中文字符串的加密密文,其中序列C的长度为
Figure FDA0002088086610000032
Figure FDA0002088086610000033
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)转码:将某段待解密的中文字符串密文序列
Figure FDA0002088086610000041
逐个字符转换成数值型数据,得到高位数值序列
Figure FDA0002088086610000042
和低位数值序列
Figure FDA0002088086610000043
其中所述高位数值序列R1、所述低位数值序列R2的长度为
Figure FDA0002088086610000044
所述待解密中文字符串密文序列
Figure FDA0002088086610000045
的长度为
Figure FDA0002088086610000046
Figure FDA0002088086610000047
(2)高位数值序列的逆向扩散解密、低位数值序列的正向扩散解密:对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密,得到高位数值序列逆向扩散解密后的序列
Figure FDA0002088086610000048
和低位数值序列正向扩散解密后的序列
Figure FDA0002088086610000049
所述对高位数值序列P1和低位数值序列P2分别进行逆向扩散解密和正向扩散解密包括:
首先利用外部解密密钥
Figure FDA00020880866100000410
令初值
Figure FDA00020880866100000411
和参数
Figure FDA00020880866100000412
对如下公式(10)所示的切比雪夫混沌系统进行迭代,得到混沌序列
Figure FDA00020880866100000413
Figure FDA00020880866100000414
其中,k表示迭代次数,k=1,2,...,300,
Figure FDA00020880866100000415
表示第k次迭代得到的混沌信号,
从混沌序列
Figure FDA00020880866100000416
中抽取元素
Figure FDA00020880866100000417
作为如公式(11)所示的切比雪夫混沌系统的初值
Figure FDA00020880866100000418
Figure FDA00020880866100000419
且令切比雪夫混沌系统的参数
Figure FDA00020880866100000420
并对混沌信号
Figure FDA00020880866100000421
按照如下公式(12)进行整数化处理,得到整数化处理后的混沌信号
Figure FDA00020880866100000422
Figure FDA00020880866100000423
Figure FDA00020880866100000424
同时从混沌序列
Figure FDA00020880866100000425
中抽取元素
Figure FDA00020880866100000426
作为如公式(13)所示的切比雪夫混沌系统的初值
Figure FDA00020880866100000427
Figure FDA00020880866100000428
且令切比雪夫混沌系统的参数
Figure FDA00020880866100000429
并对混沌信号
Figure FDA00020880866100000430
按照如下公式(14)进行整数化处理,得到整数化处理后的混沌信号
Figure FDA00020880866100000431
Figure FDA00020880866100000432
Figure FDA00020880866100000433
然后同时对高位数值序列
Figure FDA00020880866100000434
中每个元素
Figure FDA00020880866100000435
以及低位数值序列
Figure FDA00020880866100000436
中每个元素Ri2,其中
Figure FDA00020880866100000437
依次进行如下操作:
S21.由混沌信号
Figure FDA0002088086610000051
和参数
Figure FDA0002088086610000052
对如公式(11)所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure FDA0002088086610000053
同时对混沌信号
Figure FDA0002088086610000054
按照如公式(12’)进行整数化处理,得到整数化处理后的混沌信号
Figure FDA0002088086610000055
同时由混沌信号
Figure FDA0002088086610000056
和参数
Figure FDA0002088086610000057
对如公式(13)所示切比雪夫混沌系统进行单次迭代,得到混沌信号
Figure FDA0002088086610000058
同时对混沌信号
Figure FDA0002088086610000059
按照如公式(14’)进行整数化处理,得到整数化处理后的混沌信号
Figure FDA00020880866100000510
Figure FDA00020880866100000511
Figure FDA00020880866100000512
S22.利用整数化处理后的混沌信号
Figure FDA00020880866100000513
对数据
Figure FDA00020880866100000514
按照如下公式(15)进行逆向扩散解密,得到逆向扩散解密后的组合数据
Figure FDA00020880866100000515
Figure FDA00020880866100000516
其中,
Figure FDA00020880866100000517
为逆向扩散解密密钥,
同时利用整数化处理后的混沌信号
Figure FDA00020880866100000518
对数据Ri2按照如下公式(16)进行正向扩散解密,得到正向扩散解密后数据D2i
Figure FDA00020880866100000519
其中,R02为正向扩散解密密钥,
S23.比较i与L的大小,若i=L,则停止,若i<L,则根据高位数值序列元素
Figure FDA00020880866100000520
和整数化处理后的混沌信号
Figure FDA00020880866100000521
以及对应的低位数值序列元素Ri2,对切比雪夫混沌系统的参数
Figure FDA00020880866100000522
按照如下公式(17)进行调整,
Figure FDA00020880866100000523
根据低位数值序列元素Ri2、Ri-12和整数化处理后的混沌信号
Figure FDA00020880866100000524
以及对应的高位数值序列元素
Figure FDA00020880866100000525
对切比雪夫混沌系统的参数
Figure FDA00020880866100000526
按照如下公式(18)进行调整,
Figure FDA0002088086610000061
然后转向步骤S21;
最后,将高位数值序列逆向扩散解密后的组合数据序列
Figure FDA0002088086610000062
逐个元素依次按照如下公式(19)进行运算,得到高位数值序列逆向扩散解密后的序列
Figure FDA0002088086610000063
Figure FDA0002088086610000064
Figure FDA0002088086610000065
从而得到高位数值序列逆向扩散解密后的序列
Figure FDA0002088086610000066
低位数值序列正向扩散解密后的序列
Figure FDA0002088086610000067
(3)转码:将高位数值序列逆向扩散解密后的序列D1和低位数值序列正向扩散解密后的序列D2,进行数值与字符的转换,得到字符序列PP,即为该段待解密中文字符串解密后恢复的中文字符串,其中字符序列PP的长度为
Figure FDA0002088086610000068
5.根据权利要求4所述的一种中文字符串的解密方法,其特征在于:步骤(1)中所述的将某段待解密中文字符串密文
Figure FDA0002088086610000069
逐个字符转换成数值型数据,得到高位数值序列
Figure FDA00020880866100000610
和低位数值序列
Figure FDA00020880866100000611
其转换关系表述如下:
首先将某段待解密中文字符串密文
Figure FDA00020880866100000612
中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],即为
Figure FDA00020880866100000613
然后将数值型数据
Figure FDA00020880866100000614
对应组合
Figure FDA00020880866100000615
得到高位数值序列
Figure FDA00020880866100000616
和低位数值序列
Figure FDA00020880866100000617
接着逐个检查高位数值序列
Figure FDA00020880866100000618
中是否存在有
Figure FDA00020880866100000619
的元素并且低位数值序列
Figure FDA00020880866100000620
中是否存在有
Figure FDA00020880866100000621
的元素,如果存在,则将高位数值序列
Figure FDA00020880866100000622
中后一元素
Figure FDA00020880866100000623
数值减1,并删除高位数值序列
Figure FDA00020880866100000624
Figure FDA00020880866100000625
的元素以及其对应的低位数值序列
Figure FDA00020880866100000626
Figure FDA00020880866100000627
的元素;
同时逐个检查高位数值序列
Figure FDA00020880866100000628
中是否存在有
Figure FDA00020880866100000629
的元素并且低位数值序列
Figure FDA00020880866100000630
中是否存在有
Figure FDA0002088086610000071
的元素,如果存在,则将低位数值序列
Figure FDA0002088086610000072
中后一元素
Figure FDA0002088086610000073
数值减1,并删除高位数值序列
Figure FDA0002088086610000074
Figure FDA0002088086610000075
的元素以及其对应的低位数值序列
Figure FDA0002088086610000076
Figure FDA0002088086610000077
的元素;
再将高位数值序列
Figure FDA0002088086610000078
中各元素
Figure FDA0002088086610000079
逐个按照如下公式进行运算,
Figure FDA00020880866100000710
同时将低位数值序列
Figure FDA00020880866100000711
中各元素
Figure FDA00020880866100000712
逐个按照如下公式进行运算,
Figure FDA00020880866100000713
最后得到高位数值序列
Figure FDA00020880866100000714
和低位数值序列
Figure FDA00020880866100000715
6.根据权利要求4所述的一种中文字符串的解密方法,其特征在于:步骤(3)中所述的将高位数值序列逆向扩散解密后的序列D1和低位数值序列正向扩散解密后的序列D2进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列PP,将序列
Figure FDA00020880866100000716
和序列
Figure FDA00020880866100000717
中对应元素依次进行如下运算,
首先判断是否D1i=215且D2i>249,如果存在,则令D1i=214;
然后利用native2unicode(·)函数将数值数据[D1i,D2i]转换为单个中文字符,并添加到字符序列PP中,即PP=[PP,native2unicode([D1i,D2i])]。
CN201910494403.9A 2019-06-10 2019-06-10 一种中文字符串的加密方法和解密方法 Active CN110287713B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111711645A (zh) * 2020-08-19 2020-09-25 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置

Citations (2)

* Cited by examiner, † Cited by third party
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)

* 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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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