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

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

Info

Publication number
CN110299989B
CN110299989B CN201910494402.4A CN201910494402A CN110299989B CN 110299989 B CN110299989 B CN 110299989B CN 201910494402 A CN201910494402 A CN 201910494402A CN 110299989 B CN110299989 B CN 110299989B
Authority
CN
China
Prior art keywords
sequence
binary
elements
chinese
data
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
CN201910494402.4A
Other languages
English (en)
Other versions
CN110299989A (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 CN201910494402.4A priority Critical patent/CN110299989B/zh
Publication of CN110299989A publication Critical patent/CN110299989A/zh
Application granted granted Critical
Publication of CN110299989B publication Critical patent/CN110299989B/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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明公开了一种中英文字符串的加密、解密方法,包括:将某段中英文字符串逐个字符转换成数值型数据,并将数值型数据转换成7bits的二进制数据,得到二进制序列;然后根据混沌信号排序前、后的位置变化规则,对二进制序列进行置乱;再通过混沌系统单次迭代、逐个二进制分组序列移位、混沌系统参数调整的循环运算,完成置乱后二进制序列的移位;最后进行数值与字符的转换,得到该段中英文字符串的加密密文,通过类似方法可将密文解密恢复出原始中英文字符串。本发明利用混沌信号的密码特性,对中英文字符串转换而成的二进制序列进行置乱、分组和移位等操作的加密/解密,可抵抗已知/选择明文攻击、唯密文攻击,保证中英文字符串加密与解密的安全性。

Description

一种中英文字符串的加密、解密方法
技术领域
本发明涉及信息安全技术领域,特别涉及一种中英文字符串的加密、解密方法。
背景技术
随着现代通信技术的飞速发展,计算机网络已成为众多领域进行信息交换的手段。由于计算机网络是一个开放式网络,信息交换时往往面临信息被窃取、篡改和伪造等安全问题,此时信息加密技术的研究与应用势在必行。
目前大多数主流信息加密解密技术都只能应用于如字母、数字、英文标点符号等单字节字符构成的信息,而可用于汉字、中文标点符号等双字节字符所构成的信息加密算法却很少。现有的中文字符加密算法,主要包括根据汉字区位码,进行的简单取反、区位码位置交换、异或,以及DES或RAS混合加密。现有的中文字符加密算法,所得的大多数密文可读性及可复制性太差,出现太多不易书写或者辨认的密文字符,也没有综合中文、英文字符的特点,提出一套简单方便、安全可靠的加密算法。在此情况下,结合混沌信号的密码特性,提出一套具有良好抗攻击性能的中英文字符串加密、解密方法,显得尤为重要。
发明内容
本发明的目的是为了解决现有技术中的不足,提供一种中英文字符串的加密、解密方法,根据混沌信号排序前、后的位置变化规则,对中英文字符串转换而成的二进制序列进行置乱,并进行置乱后分组二进制序列的移位、组合操作,进而进行数值与字符的转换以生成密文,从而保证了中英文字符串加密与解密的安全性和可行性。
本发明提供了一种中英文字符串的加密方法,包括如下几个步骤:
(1)转码:将某段中英文字符串逐个字符转换为数值型数据,得到数值序列P={P1,P2,...,Pi,....,P2×L},再将数值序列P逐个元素转换成7bits的二进制数据,得到二进制序列B={B1,B2,...,Bi,....,B14×L},其中该段中英文字符串的长度为L,数值序列P的长度为2×L,二进制序列B的长度为14×L;
(2)二进制序列B的置乱:
首先利用外部加密密钥(α、β),按照如下公式(1)计算分别得到倾斜帐篷混沌映射的初值x1、参数μ和取样间隔m,
Figure BDA0002088086540000021
其中,PB_1为二进制序列B中元素为二进制‘1’的总个数,PB_0为二进制序列B中元素为二进制‘0’的总个数,
然后利用初值x1和参数μ,对如下公式(2)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数(k=1,2,...),xk+1表示第k次迭代得到的混沌信号,
Figure BDA0002088086540000022
得到混沌序列X,从中每隔m个元素取1个,从而形成长度为14×L的混沌序列Y={Y1,Y2,...,Y14×L},
最后将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对二进制序列B={B1,B2,...,Bi,....,B14×L}进行置乱,得到置乱后的二进制序列
Figure BDA0002088086540000023
(3)置乱后二进制序列
Figure BDA0002088086540000024
的分组、移位:
首先根据switch1_k=mod(PB_1,4),对置乱后的二进制序列
Figure BDA0002088086540000025
选择不同的分组方式,
当switch1_k=0时,将二进制序列
Figure BDA0002088086540000026
中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
当switch1_k=1时,将二进制序列
Figure BDA0002088086540000027
中元素从尾到头依次逆向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
当switch1_k=2时,将二进制序列
Figure BDA0002088086540000028
中元素从两头向中间(依次正向从首端取3个元素、正向从尾端取3个元素,逐步向中间逼近)以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
当switch1_k=3时,将二进制序列
Figure BDA0002088086540000029
中元素从两头向中间(依次逆向从尾端取3个元素、逆向从首端取3个元素,逐步向中间逼近)以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
从而得到分组后的二进制序列,表示为
Figure BDA00020880865400000210
其中每一个二进制分组序列均包含6个二进制位,且
Figure BDA0002088086540000031
然后令混沌初值z1=Y14×L、参数μ1=μ,将每一个二进制分组序列BF{i},其中
Figure BDA0002088086540000032
依次进行如下操作:
S11.由混沌信号zi和参数μ1,对如下公式(3)所示的倾斜帐篷混沌映射进行单次迭代,得到混沌信号zi+1
Figure BDA0002088086540000033
S12.利用混沌信号zi+1,按照如下公式(4)计算分别得到移位方向B_shift、移位个数B_k,
Figure BDA0002088086540000034
当B_shift>0时,将二进制分组序列BF{i}中元素循环左移B_k位,得到移位后的二进制分组序列
Figure BDA0002088086540000035
并利用bin2dec(·)函数将二进制分组序列
Figure BDA0002088086540000036
转换成数值型数据
Figure BDA0002088086540000037
当B_shift<0时,将二进制分组序列BF{i}中元素循环右移B_k位,得到移位后的二进制分组序列
Figure BDA0002088086540000038
并利用bin2dec(·)函数将二进制分组序列
Figure BDA0002088086540000039
转换成数值型数据
Figure BDA00020880865400000310
S13.比较i与
Figure BDA00020880865400000311
的大小,若
Figure BDA00020880865400000312
则利用数值型数据
Figure BDA00020880865400000313
对倾斜帐篷混沌映射的参数μ1按照如下公式(5)进行调整,
Figure BDA00020880865400000314
转向步骤S11,若
Figure BDA00020880865400000315
则停止操作,得到数值序列
Figure BDA00020880865400000316
(4)转码:将数值序列
Figure BDA00020880865400000317
进行数值与字符的转换,得到字符序列C,即为该段中英文字符串的加密密文,其中序列C的长度为
Figure BDA00020880865400000318
Figure BDA00020880865400000319
进一步地,中英文字符串的加密方法里步骤(1)中所述的将某段中英文字符串逐个字符转换为数值型数据,其中某段中英文字符串包括,GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字,以及可显示ASCII码字符;逐个字符转换为数值型数据,是指采用unicode 2 native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],并将区数值数据和位数值数据均减去128,即[区数值数据-128,位数值数据-128],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可以用数据[P2k-1,P2k]表示(k=1,2,...,L),从而得到数值序列P={P1,P2,...,Pi,....,P2×L};将数值序列P逐个元素转换成7bits的二进制数据,是指采用dec 2bin(·,7)函数,用二进制数据[B7l-6,B7l-5,B7l-4,B7l-3,B7l-2,B7l-1,B7l]表示(l=1,2,...,2×L),从而得到二进制序列B={B1,B2,...,Bi,....,B14×L}。
进一步地,中英文字符串的加密方法里步骤(4)中所述的将数值序列
Figure BDA0002088086540000041
进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列C,将数值序列
Figure BDA0002088086540000042
中两个元素为一组
Figure BDA0002088086540000043
依次进行如下运算
Figure BDA0002088086540000044
如果
Figure BDA0002088086540000045
Figure BDA0002088086540000046
为奇数,则利用char(·)函数将数值型数据
Figure BDA0002088086540000047
转换为单个英文字符,并添加到字符序列C中,即
Figure BDA0002088086540000048
如果
Figure BDA0002088086540000049
Figure BDA00020880865400000410
为偶数,则利用native 2 unicode(·)函数将数值型数据
Figure BDA00020880865400000411
转换为单个中文字符,并添加到字符序列C中,即
Figure BDA00020880865400000412
本发明还提出了一种中英文字符串的解密方法,用于对上述中英文字符串的加密方法所获得的加密字符串进行解密,包括如下几个步骤:
(1)转码:将某段待解密的中英文字符串密文
Figure BDA00020880865400000413
逐个字符转换成数值型数据,得到数值序列
Figure BDA00020880865400000414
再将数值序列R逐个元素转换成6bits的二进制数据,得到二进制序列
Figure BDA00020880865400000415
其中该段待解密的中英文字符串的长度为
Figure BDA00020880865400000416
数值序列R的长度为
Figure BDA00020880865400000417
二进制序列D的长度为
Figure BDA00020880865400000418
Figure BDA00020880865400000419
(2)二进制序列D的移位、组合:
首先利用外部解密密钥
Figure BDA00020880865400000420
按照如下公式(6)计算分别得到倾斜帐篷混沌映射的初值
Figure BDA00020880865400000421
参数
Figure BDA00020880865400000422
和取样间隔
Figure BDA00020880865400000423
Figure BDA0002088086540000051
其中,RD_1为二进制序列D中元素为二进制‘1’的总个数,RD_0为二进制序列D中元素为二进制‘0’的总个数
Figure BDA0002088086540000052
利用初值
Figure BDA0002088086540000053
和参数
Figure BDA0002088086540000054
对如下公式(7)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数(k=1,2,...),
Figure BDA0002088086540000055
表示第k次迭代得到的混沌信号,
Figure BDA0002088086540000056
得到混沌序列
Figure BDA0002088086540000057
从中每隔
Figure BDA0002088086540000058
个元素取1个,从而形成混沌序列
Figure BDA0002088086540000059
其中
Figure BDA00020880865400000510
然后令混沌初值
Figure BDA00020880865400000511
参数
Figure BDA00020880865400000512
将二进制序列
Figure BDA00020880865400000513
中元素从头到尾依次正向以6个元素为单位进行分组,将每一个分组后的二进制序列DF{i},其中
Figure BDA00020880865400000514
依次进行如下操作,
S21.由混沌信号
Figure BDA00020880865400000515
和参数
Figure BDA00020880865400000516
对如下公式(8)所示的倾斜帐篷混沌映射进行单次迭代,得到混沌信号
Figure BDA00020880865400000517
Figure BDA00020880865400000518
S22.利用混沌信号
Figure BDA00020880865400000519
按照如下公式(9)计算分别得到移位方向D_shift、移位个数D_k,
Figure BDA00020880865400000520
当D_shift>0时,将二进制分组序列DF{i}中元素循环右移D_k位,得到移位后的二进制分组序列
Figure BDA0002088086540000061
当D_shift<0时,将二进制分组序列DF{i}中元素循环左移D_k位,得到移位后的二进制分组序列
Figure BDA0002088086540000062
S23.比较i与
Figure BDA0002088086540000063
的大小,若
Figure BDA0002088086540000064
则停止操作,若
Figure BDA0002088086540000065
则利用二进制分组序列DF{i},对倾斜帐篷混沌映射的参数
Figure BDA0002088086540000066
按照如下公式(10)进行调整,
Figure BDA0002088086540000067
然后转向步骤S21;
最后,设定一个空二进制序列PP,根据switch2_k=mod(RD_1,4),将二进制序列
Figure BDA0002088086540000068
选择不同的组合方式填放到二进制序列PP中,
当switch2_k=0时,将二进制序列
Figure BDA0002088086540000069
中6个元素正向依次从头到尾填放到二进制序列PP中,直至全部填完,再删除二进制序列PP尾端
Figure BDA00020880865400000610
个二进制‘0’,
当switch2_k=1时,将二进制序列
Figure BDA00020880865400000611
中6个元素逆向依次从尾到头填放到二进制序列PP中,直至全部填完,再删除二进制序列PP首端
Figure BDA00020880865400000612
个二进制‘0’,
当switch2_k=2时,将二进制序列
Figure BDA00020880865400000613
中6个元素从两头向中间(前3个元素正向填放到二进制序列PP首端,后3个元素正向填放到二进制序列PP尾端,逐步向中间逼近)依次填放到二进制序列PP中,直至全部填完,再删除二进制序列PP最中间尾端
Figure BDA00020880865400000614
个二进制‘0’,
当switch2_k=3时,将二进制序列
Figure BDA00020880865400000615
中6个元素从两头向中间(前3个元素逆向填放到二进制序列PP尾端,后3个元素逆向填放到二进制序列PP首端,逐步向中间逼近)依次填放到二进制序列PP中,直至全部填完,再删除二进制序列PP最中间首端
Figure BDA00020880865400000616
个二进制‘0’,
从而得到移位组合后的二进制序列PP,表示为{PP1,PP2,...,PPi,...,PPLL},其中二进制序列PP的长度为
Figure BDA00020880865400000617
(3)二进制序列PP的反置乱:
将混沌序列
Figure BDA00020880865400000618
按升序排序,根据序列
Figure BDA00020880865400000619
排序前、后的位置变化置乱规则,对二进制序列PP={PP1,PP2,...,PPi,...,PPLL}进行反置乱,得到反置乱后的二进制序列
Figure BDA00020880865400000620
(4)转码:将反置乱后的二进制序列
Figure BDA0002088086540000071
进行二进制位与字符的转换,得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中字符序列RR的长度为L,且L=LL/14。
进一步地,中英文字符串的解密方法里步骤(1)中所述的将某段待解密的中英文字符串密文
Figure BDA0002088086540000072
逐个字符转换成数值型数据,其转换关系是指采用unicode 2 native(·)函数,将某段待解密的中英文字符串密文
Figure BDA0002088086540000073
中单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],同时将区数值数据、码数值数据分别减去176、161,并添加到数值序列R中,即R=[R,[区数值数据-176,位数值数据-161]],或将某段待解密的中英文字符串密文
Figure BDA0002088086540000074
中英文字符转换为ASCII码数值数据,表示为[ASCII码数值数据],同时将ASCII码数值数据减去33,并添加到数值序列R中,即R=[R,ASCII码数值数据-33],从而得到数值序列
Figure BDA00020880865400000711
步骤(1)中所述的将数值序列R逐个元素转换成6bits的二进制数据,其转换关系是指将采用dec 2 bin(·,6)函数,将数值型数据转换为6bits的二进制位,并添加到二进制序列D中,即D=[D,dec 2 bin(Ri,6)],从而得到二进制序列
Figure BDA0002088086540000075
进一步地,中英文字符串的解密方法里步骤(4)中所述的将反置乱后的二进制序列
Figure BDA0002088086540000076
进行二进制位与字符的转换,其转换关系表述如下:
设定一个空字符序列RR,将二进制序列
Figure BDA0002088086540000077
中14个元素划分为一组
Figure BDA0002088086540000078
(其中k=1,2,...,L),按组依次进行如下运算,
首先将
Figure BDA0002088086540000079
转换为两个数值型数据(RT1和RT2),即
Figure BDA00020880865400000710
然后判断RT1的大小,如果RT1>0,则利用native 2 unicode(·)函数将数值型数据[RT1,RT2]转换为单个中文字符,并添加到字符序列RR中,即RR=[RR,native 2 unicode([RT1+128,RT2+128])],如果RT1=0,则利用char(·)函数将数值型数据RT2转换为单个英文字符,并添加到字符序列RR中,即RR=[RR,char(RT2+33)],从而得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中字符序列RR的长度为L。
有益效果:本发明利用混沌信号的密码特性,根据混沌信号排序前、后的位置变化规则,对中英文字符串转换而成的二进制序列进行置乱,并进行置乱后二进制序列的分组、移位操作,以完成中英文字符串的加密或者解密,具有良好的抵抗已知/选择明文攻击、唯密文攻击的性能,从而保证了中英文字符串加密与解密的安全性和可行性。
附图说明
图1为本发明的一种中英文字符串的加密、解密流程示意图。
具体实施方式
如图1所示的一种中英文字符串的加密方法,包括如下几个步骤:
(1)转码:将某段中英文字符串逐个字符转换为数值型数据,得到数值序列P={P1,P2,...,Pi,....,P2×L},再将数值序列P逐个元素转换成7bits的二进制数据,得到二进制序列B={B1,B2,...,Bi,....,B14×L},其中某段中英文字符串包括,GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的6763个汉字,以及可显示ASCII码字符,逐个字符转换为数值型数据,是指采用unicode 2 native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],并将区数值数据和位数值数据均减去128,即[区数值数据-128,位数值数据-128],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可以用数据[P2k-1,P2k]表示(k=1,2,...,L),从而得到数值序列P={P1,P2,...,Pi,....,P2×L},将数值序列P逐个元素转换成7bits的二进制数据,是指采用dec 2 bin(·,7)函数,用二进制数据[B7l-6,B7l-5,B7l-4,B7l-3,B7l-2,B7l-1,B7l]表示(l=1,2,...,2×L),从而得到二进制序列B={B1,B2,...,Bi,....,B14×L},该段中英文字符串的长度为L,数值序列P的长度为2×L,二进制序列B的长度为14×L;
(2)二进制序列B的置乱:
首先利用外部加密密钥(α、β),按照如下公式计算分别得到倾斜帐篷混沌映射的初值x1、参数μ和取样间隔m,
Figure BDA0002088086540000081
其中,PB_1为二进制序列B中元素为二进制‘1’的总个数,PB_0为二进制序列B中元素为二进制‘0’的总个数,
然后利用初值x1和参数μ,对如下公式所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数(k=1,2,...),xk+1表示第k次迭代得到的混沌信号,
Figure BDA0002088086540000091
得到混沌序列X,从中每隔m个元素取1个,从而形成长度为14×L的混沌序列Y={Y1,Y2,...,Y14×L},
最后将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对二进制序列B={B1,B2,...,Bi,....,B14×L}进行置乱,得到置乱后的二进制序列
Figure BDA0002088086540000092
(3)置乱后二进制序列
Figure BDA0002088086540000093
的分组、移位:
首先根据switch1_k=mod(PB_1,4),对置乱后的二进制序列
Figure BDA0002088086540000094
选择不同的分组方式,
当switch1_k=0时,将二进制序列
Figure BDA0002088086540000095
中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
当switch1_k=1时,将二进制序列
Figure BDA0002088086540000096
中元素从尾到头依次逆向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
当switch1_k=2时,将二进制序列
Figure BDA0002088086540000097
中元素从两头向中间(依次正向从首端取3个元素、正向从尾端取3个元素,逐步向中间逼近)以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
当switch1_k=3时,将二进制序列
Figure BDA0002088086540000098
中元素从两头向中间(依次逆向从尾端取3个元素、逆向从首端取3个元素,逐步向中间逼近)以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
从而得到分组后的二进制序列,表示为
Figure BDA0002088086540000099
其中每一个二进制分组序列均包含6个二进制位,且
Figure BDA00020880865400000910
然后令混沌初值z1=Y14×L、参数μ1=μ,将每一个二进制分组序列BF{i},其中
Figure BDA00020880865400000911
依次进行如下操作,
S11.由混沌信号zi和参数μ1,对如下公式所示的倾斜帐篷混沌映射进行单次迭代,得到混沌信号zi+1
Figure BDA0002088086540000101
S12.利用混沌信号zi+1,按照如下公式计算分别得到移位方向B_shift、移位个数B_k,
Figure BDA0002088086540000102
Figure BDA0002088086540000103
当B_shift>0时,将二进制分组序列BF{i}中元素循环左移B_k位,得到移位后的二进制分组序列
Figure BDA0002088086540000104
并利用bin2dec(·)函数将二进制分组序列
Figure BDA0002088086540000105
转换成数值型数据
Figure BDA0002088086540000106
当B_shift<0时,将二进制分组序列BF{i}中元素循环右移B_k位,得到移位后的二进制分组序列
Figure BDA0002088086540000107
并利用bin2dec(·)函数将二进制分组序列
Figure BDA0002088086540000108
转换成数值型数据
Figure BDA0002088086540000109
S13.比较i与
Figure BDA00020880865400001010
的大小,若
Figure BDA00020880865400001011
则利用数值型数据
Figure BDA00020880865400001012
对倾斜帐篷混沌映射的参数μ1按照如下公式进行调整,然后转向步骤S11,
Figure BDA00020880865400001013
Figure BDA00020880865400001014
则停止操作,得到数值序列
Figure BDA00020880865400001015
(4)转码:设定一个空字符序列C,将数值序列
Figure BDA00020880865400001016
中两个元素为一组
Figure BDA00020880865400001017
依次进行如下运算
Figure BDA00020880865400001018
如果
Figure BDA00020880865400001019
Figure BDA00020880865400001020
为奇数,则利用char(·)函数将数值型数据
Figure BDA00020880865400001021
转换为单个英文字符,并添加到字符序列C中,即
Figure BDA00020880865400001022
如果
Figure BDA00020880865400001023
Figure BDA00020880865400001024
为偶数,则利用native 2 unicode(·)函数将数值型数据
Figure BDA00020880865400001025
转换为单个中文字符,并添加到字符序列C中,即
Figure BDA00020880865400001026
从而得到字符序列C,即为该段中英文字符串的加密密文,其中序列C的长度为
Figure BDA00020880865400001027
Figure BDA00020880865400001028
如图1所示,一种中英文字符串的解密方法,用于对根据上述的中英文字符串的加密方法所获得的加密字符串进行解密,包括如下几个步骤:
(1)转码:将某段待解密的中英文字符串密文
Figure BDA00020880865400001029
逐个字符转换成数值型数据,其转换关系是指采用unicode 2 native(·)函数,将某段待解密的中英文字符串密文
Figure BDA0002088086540000111
中单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],同时将区数值数据、码数值数据分别减去176、161,并添加到数值序列R中,即R=[R,[区数值数据-176,位数值数据-161]],或将某段待解密的中英文字符串密文
Figure BDA0002088086540000112
中英文字符转换为ASCII码数值数据,表示为[ASCII码数值数据],同时将ASCII码数值数据减去33,并添加到数值序列R中,即R=[R,ASCII码数值数据-33],从而得到数值序列
Figure BDA0002088086540000113
再将数值序列R逐个元素转换成6bits的二进制数据,其转换关系是指将采用dec2 bin(·,6)函数,将数值型数据转换为6bits的二进制位,并添加到二进制序列D中,即D=[D,dec 2 bin(Ri,6)],从而得到二进制序列
Figure BDA0002088086540000114
其中该段待解密的中英文字符串的长度为
Figure BDA0002088086540000115
数值序列R的长度为
Figure BDA0002088086540000116
二进制序列D的长度为
Figure BDA0002088086540000117
Figure BDA0002088086540000118
(2)二进制序列D的移位、组合:
首先利用外部解密密钥
Figure BDA0002088086540000119
按照如下公式计算分别得到倾斜帐篷混沌映射的初值
Figure BDA00020880865400001110
参数
Figure BDA00020880865400001111
和取样间隔
Figure BDA00020880865400001112
Figure BDA00020880865400001113
其中,RD_1为二进制序列D中元素为二进制‘1’的总个数,RD_0为二进制序列D中元素为二进制‘0’的总个数
Figure BDA00020880865400001114
利用初值
Figure BDA00020880865400001115
和参数
Figure BDA00020880865400001116
对如下公式所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数(k=1,2,...),
Figure BDA00020880865400001117
表示第k次迭代得到的混沌信号,
Figure BDA00020880865400001118
得到混沌序列
Figure BDA00020880865400001119
从中每隔
Figure BDA00020880865400001120
个元素取1个,从而形成混沌序列
Figure BDA00020880865400001121
其中
Figure BDA0002088086540000121
然后令混沌初值
Figure BDA0002088086540000122
参数
Figure BDA0002088086540000123
将二进制序列
Figure BDA0002088086540000124
中元素正向(从头到尾依次)以6个元素为单位进行分组,将每一个分组后的二进制序列DF{i},其中
Figure BDA0002088086540000125
依次进行如下操作,
S21.由混沌信号
Figure BDA0002088086540000126
和参数
Figure BDA0002088086540000127
对如下公式所示的倾斜帐篷混沌映射进行单次迭代,得到混沌信号
Figure BDA0002088086540000128
Figure BDA0002088086540000129
S22.利用混沌信号
Figure BDA00020880865400001210
按照如下公式计算分别得到移位方向D_shift、移位个数D_k,
Figure BDA00020880865400001211
Figure BDA00020880865400001212
当D_shift>0时,将二进制分组序列DF{i}中元素循环右移D_k位,得到移位后的二进制分组序列
Figure BDA00020880865400001213
当D_shift<0时,将二进制分组序列DF{i}中元素循环左移D_k位,得到移位后的二进制分组序列
Figure BDA00020880865400001214
S23.比较i与
Figure BDA00020880865400001215
的大小,若
Figure BDA00020880865400001216
则停止操作,若
Figure BDA00020880865400001217
则利用二进制组合序列DF{i},对倾斜帐篷混沌映射的参数
Figure BDA00020880865400001218
按照如下公式进行调整,
Figure BDA00020880865400001219
然后转向步骤S21;
最后,设定一个空二进制序列PP,根据switch2_k=mod(RD_1,4),将二进制序列
Figure BDA00020880865400001220
选择不同的组合方式填放到二进制序列PP中
Figure BDA00020880865400001221
当switch2_k=0时,将二进制序列
Figure BDA00020880865400001222
中6个元素正向依次从头到尾填放到二进制序列PP中,直至全部填完,再删除二进制序列PP尾端
Figure BDA00020880865400001223
个二进制‘0’,
当switch2_k=1时,将二进制序列
Figure BDA00020880865400001224
中6个元素逆向依次从尾到头填放到二进制序列PP中,直至全部填完,再删除二进制序列PP首端
Figure BDA0002088086540000131
个二进制‘0’,
当switch2_k=2时,将二进制序列
Figure BDA0002088086540000132
中6个元素从两头向中间(前3个元素正向填放到二进制序列PP首端,后3个元素正向填放到二进制序列PP尾端,逐步向中间逼近)依次填放到二进制序列PP中,直至全部填完,再删除二进制序列PP最中间尾端
Figure BDA0002088086540000133
个二进制‘0’,
当switch2_k=3时,将二进制序列
Figure BDA0002088086540000134
中6个元素从两头向中间(前3个元素逆向填放到二进制序列PP尾端,后3个元素逆向填放到二进制序列PP首端,逐步向中间逼近)依次填放到二进制序列PP中,直至全部填完,再删除二进制序列PP最中间首端
Figure BDA0002088086540000135
个二进制‘0’,
从而得到移位组合后的二进制序列PP,表示为{PP1,PP2,...,PPi,...,PPLL},其中二进制序列PP的长度为
Figure BDA0002088086540000136
(3)二进制序列PP的反置乱:
将混沌序列
Figure BDA0002088086540000137
按升序排序,根据序列
Figure BDA0002088086540000138
排序前、后的位置变化置乱规则,对二进制组合序列PP={PP1,PP2,...,PPi,...,PPLL}进行反置乱,得到反置乱后的二进制序列
Figure BDA0002088086540000139
(4)转码:设定一个空字符序列RR,将
Figure BDA00020880865400001310
中14个元素划分为一组
Figure BDA00020880865400001311
(其中k=1,2,...,L),按组依次进行如下运算,
首先将
Figure BDA00020880865400001312
转换为两个数值型数据(RT1和RT2),即
Figure BDA00020880865400001313
然后判断RT1的大小,如果RT1>0,则利用native 2 unicode(·)函数将数值型数据[RT1,RT2]转换为单个中文字符,并添加到字符序列RR中,即RR=[RR,native 2 unicode([RT1+128,RT2+128])],如果RT1=0,则利用char(·)函数将数值型数据RT2转换为单个英文字符,并添加到字符序列RR中,即RR=[RR,char(RT2+33)],从而得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中字符序列RR的长度为L,且L=LL/14。
下面结合具体的实施例对本发明作进一步说明:
实施例1
按照上述具体实施方式中一种中英文字符串的加密方法,步骤如下:
(1)将某段中英文字符串“一种字符的加密方法和解密方法,1+1>2吗?”逐个字符按照如上述具体实施方式中一种中英文字符串的加密方法步骤(1)中所示字符与数值的转换运算,将其转换成数值型数据,得到数值序列P={82,59,86,86,87,86,55,123,53,68,60,83,67,92,55,61,55,40,58,77,61,98,67,92,55,61,55,40,35,44,0,49,0,43,0,49,0,62,0,50,66,112,35,63}再将数值序列P逐个元素转换成7bits的二进制数据,得到二进制序列B={1,0,1,0,0,1,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,0,1,1,1,1,0,1,0,1,1,0,0,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,0,1,1,0,0,0,1,0,0,0,1,1,1,1,0,0,1,0,1,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,0,1,1,1,0,1,0,1,0,0,0,0,1,1,1,0,1,0,1,0,0,1,1,0,1,0,1,1,1,1,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,0,1,1,1,0,1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,1,1,1,1,1,1},其中该段中英文字符串的长度为L=22,数值序列P的长度为44,二进制序列B的长度为308;
(2)首先利用外部加密密钥(α=0.12345、β=0.54321),计算得到倾斜帐篷混沌映射的初值
Figure BDA0002088086540000141
参数
Figure BDA0002088086540000142
Figure BDA0002088086540000143
和取样间隔m=mod(2×152+3×156,37)=32,令初值x1=α和参数μ=β,根据上述具体实施方式中一种中英文字符串的加密方法步骤(2)中公式所示的倾斜帐篷混沌映射进行迭代,得到混沌序列X,从中每隔32个元素取1个,从而形成长度为308的混沌序列Y,然后将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对二进制序列B进行置乱,得到置乱后的二进制序列
Figure BDA0002088086540000146
Figure BDA0002088086540000147
(3)首先根据switch1_k=mod(152,4)=0,将二进制序列
Figure BDA0002088086540000148
中元素正向(从头到尾依次)以6个元素为单位进行分组,然后将分组后的每一个二进制序列BF{i}依次进行上述具体实施方式中一种中英文字符串的加密方法步骤(3)中公式所示的倾斜帐篷混沌映射单次迭代、循环移位和倾斜帐篷混沌映射参数μ1调整等操作,从而得到数值序列
Figure BDA0002088086540000144
Figure BDA0002088086540000145
Figure BDA0002088086540000151
其中数值序列
Figure BDA0002088086540000152
的长度为
Figure BDA0002088086540000153
(4)将数值序列
Figure BDA0002088086540000154
按照如上述具体实施方式中一种中英文字符串的加密方法步骤(4)中所示数值与字符的转换运算,得到该段中英文字符串的加密密文为“酉溧些涠嗑埃绿毪啡驭胂诞橼峁瓜歼上氨镘擂供楸奋涯遐啵”,其中序列C的长度为
Figure BDA0002088086540000155
按照上述具体实施方式中一种中英文字符串的解密方法,步骤如下:
(1)将某段待解密的中英文字符串密文
Figure BDA0002088086540000156
Figure BDA0002088086540000157
逐个字符按照如上述具体实施方式中一种中英文字符串的解密方法步骤(1)中所示字符与数值的转换运算,得到数值序列R={35,46,52,63,32,8,52,21,48,29,0,2,18,43,59,3,7,39,36,5,59,46,5,13,57,57,49,24,9,46,12,62,25,46,0,16,63,59,16,61,9,8,57,16,7,59,33,35,53,57,48,2},再将数值序列R逐个元素转换成6bits的二进制数据,得到二进制序列D={1,0,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,0,0,0,0,0,1,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,0,1,0,0,1,1,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,0,1,1,1,0,0,0,1,1,0,0,1,1,1,1,1,0,0,1,1,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,0,1,0,0,0,0,1,1,1,1,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0},其中该段待解密的中英文字符串的长度为
Figure BDA0002088086540000158
数值序列R的长度为
Figure BDA0002088086540000159
二进制序列D的长度为6×52=312;
(2)首先利用外部加密密钥
Figure BDA00020880865400001510
计算得到倾斜帐篷混沌映射的初值
Figure BDA00020880865400001511
参数
Figure BDA00020880865400001512
Figure BDA00020880865400001513
和取样间隔
Figure BDA00020880865400001514
令初值
Figure BDA00020880865400001515
和参数
Figure BDA00020880865400001516
根据上述具体实施方式中一种中英文字符串的解密方法步骤(2)中公式所示的倾斜帐篷混沌映射进行迭代,得到混沌序列
Figure BDA00020880865400001517
从中每隔32个元素取1个,从而形成长度为LL=308的混沌序列
Figure BDA00020880865400001518
然后将二进制序列D中元素正向(从头到尾依次)以6个元素为单位进行分组,将分组后的每一个二进制序列DF{i}依次进行上述具体实施方式中一种中英文字符串的解密方法步骤(3)中公式所示的倾斜帐篷混沌映射单次迭代、循环移位和倾斜帐篷混沌映射参数
Figure BDA00020880865400001519
调整等操作,得到移位后的二进制分组序列
Figure BDA00020880865400001520
最后根据switch2_k=mod(152,4)=0,将二进制序列
Figure BDA00020880865400001521
中6个元素从头到尾正向依次填放到二进制序列PP中(i=1,2,3,...,52),得到移位组合后的二进制序列PP={0,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,0,1,1,1,1,1,1,1,0,0,0,0,01,0,1,0,0,0,0,0,1,0,0,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,1,1,1,0,1,1,0,1,1,1,1,0,1,1,0,0,0,1,1,0,0,0,1,0,0,1,1,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,0,1,0,1,0,0,1,1,0,1,0,0,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,0,0,0,0,1,1,0,1,0,0,1,0,0,10,1,1,10,0,1,1,0,0,1,1,1,1,0,1,0,0,1,0,1,1,0,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,1,0,0,1}
(3)将混沌序列
Figure BDA0002088086540000161
按升序排序,根据序列
Figure BDA0002088086540000162
排序前、后的位置变化置乱规则,对二进制序列PP进行置乱,得到置乱后的二进制序列
Figure BDA0002088086540000163
Figure BDA0002088086540000164
(4)将反置乱后的二进制序列
Figure BDA0002088086540000165
按照如上述具体实施方式中一种中英文字符串的解密方法步骤(4)中所示二进制位与字符的转换运算,进行二进制位与字符的转换,得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串为“一种字符的加密方法和解密方法,1+1>2吗?”。
实施例2
按照上述一种中英文字符串的加密方法,某段待加密中英文字符串为“一种字符的加密方法和解密方法,1+1>2吗?”,其加密步骤与具体实施例1相似,仅加密密钥发生细微变化:α=0.12345000000001,或β=0.54321000000001,中英文字符串加密结果如表1所示。由表1可知,加密密钥的细微变化会引起中英文字符串加密密文发生很大的变化,由此可见本专利所提一种中英文字符串的加密方法对加密密钥具有敏感性。
表1外部加密密钥发生微变时,中英文字符串加密结果
Figure BDA0002088086540000166
Figure BDA0002088086540000171
实施例3
按上述一种中英文字符串的加密方法,其加密步骤与具体实施例1相似,仅某段待加密中英文字符串(“一种字符的加密方法和解密方法,1+1>2吗?”)发生细微变化:“二种字符的加密方法和解密方法,1+1>2吗?”;或“一种字俯的加密方法和解密方法,1+1>2吗?”;或“一种字符的加蜜方法和解密方法,1+1>2吗?”;或“一种字符的加密方法及解密方法,1+1>2吗?”;或“一种字符的加密方法和解密方法,1+1<2吗?”;或“一种字符的加密方法和解密方法,1+1>2吗。”;或“一种符字的加密方法和解密方法,1+1>2?吗”,中英文字符串加密结果如表2所示。由表2可见:待加密中英文字符串平文信息的细微变化会引起加密密文的“面目全非”,由此可见本专利所提一种中英文字符串加密方法对待加密中英文字符串的平文信息具有敏感性。
表2待加密字符串发生微变时,字符串加密结果
Figure BDA0002088086540000172
Figure BDA0002088086540000181
Figure BDA0002088086540000191
由上述具体实施例2、3分析可知,本专利所提一种中英文字符串加密方法所生成的中英文字符串密文不仅与加密密钥密切相关,而且依赖于待加密中英文字符串平文信息,因此本专利所提一种中英文字符串加密方法可抵抗已知/选择明文攻击,具有很强的安全性。
实施例4
按照上述一种中英文字符串的解密方法,某段待解密中英文密文为“酉溧些涠嗑埃绿毪啡驭胂诞橼峁瓜歼上氨镘擂供楸奋涯遐啵”,一种中英文字符串的解密步骤与具体实施例1相似,仅解密密钥发生细微变化:
Figure BDA0002088086540000201
Figure BDA0002088086540000202
中英文字符串密文解密结果如表3所示。由表3可知,解密密钥的细微变化会引起密文解密结果发生很大的变化,恢复出的中英文字符串将是无用信息,由此可见本专利所提一种中英文字符串的解密方法对解密密钥具有敏感性。
表3外部解密密钥发生微变时,密文解密结果
Figure BDA0002088086540000203
Figure BDA0002088086540000211
实施例5
按照上述一种中英文字符串的解密方法,其解密步骤与具体实施例1相似,仅某段待解密中英文字符串密文(“酉溧些涠嗑埃绿毪啡驭胂诞橼峁瓜歼上氨镘擂供楸奋涯遐啵”)发生细微变化:“酒溧些涠嗑埃绿毪啡驭胂诞橼峁瓜歼上氨镘擂供楸奋涯遐啵”;或“酉溧些围嗑埃绿毪啡驭胂诞橼峁瓜歼上氨镘擂供楸奋涯遐啵”;或“酉溧些涠嗑埃绿毪非驭胂诞橼峁瓜歼上氨镘擂供楸奋涯遐啵”;或“酉溧些涠嗑埃绿毪啡驭胂诞橼峁瓜千上氨镘擂供楸奋涯遐啵”;或“酉溧些涠嗑埃绿毪啡驭胂诞橼峁瓜歼上氨镘擂共楸奋涯遐啵”;或“酉溧些涠嗑埃绿毪啡驭胂诞橼峁瓜歼上氨镘擂供楸奋涯遐披”,中英文字符串密文解密结果如表4所示。由表4可知,待解密中英文字符串密文的细微变化会引起密文解密结果发生很大的变化,难以恢复出原始的中英文字符串,由此可见本专利所提一种中英文字符串解密方法可抵抗唯密文攻击。
表4待解密中英文字符串密文发生微变时,密文解密结果
Figure BDA0002088086540000212
Figure BDA0002088086540000221
Figure BDA0002088086540000231
Figure BDA0002088086540000241

Claims (5)

1.一种中英文字符串的加密方法,其特征在于,包括如下几个步骤:
(1)转码:将某段中英文字符串逐个字符转换为数值型数据,得到数值序列P={P1,P2,...,Pi,....,P2×L},再将数值序列P逐个元素转换成7bits的二进制数据,得到二进制序列B={B1,B2,...,Bi,....,B14×L},其中所述中英文字符串的长度为L,所述数值序列P的长度为2×L,所述二进制序列B的长度为14×L;
(2)二进制序列B的置乱:
首先利用外部加密密钥(α、β),按照如下公式(1)计算分别得到倾斜帐篷混沌映射的初值x1、参数μ和取样间隔m,
Figure FDA0003491075180000011
其中,PB_1为二进制序列B中元素为二进制‘1’的总个数,PB_0为二进制序列B中元素为二进制‘0’的总个数,
然后利用初值x1和参数μ,对如下公式(2)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数,xk+1表示第k次迭代得到的混沌信号,k=1,2,...,
Figure FDA0003491075180000012
得到混沌序列X,从中每隔m个元素取1个,从而形成长度为14×L的混沌序列Y={Y1,Y2,...,Y14×L},
最后将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对二进制序列B={B1,B2,...,Bi,....,B14×L}进行置乱,得到置乱后的二进制序列
Figure FDA0003491075180000013
(3)置乱后二进制序列
Figure FDA0003491075180000014
的分组、移位:
首先根据switch1_k=mod(PB_1,4),对置乱后的二进制序列
Figure FDA0003491075180000015
选择不同的分组方式,
当switch1_k=0时,将二进制序列
Figure FDA0003491075180000016
中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
当switch1_k=1时,将二进制序列
Figure FDA0003491075180000017
中元素从尾到头依次逆向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
当switch1_k=2时,将二进制序列
Figure FDA0003491075180000021
中元素从两头向中间以6个元素为单位进行分组,依次正向从首端取3个元素、正向从尾端取3个元素,逐步向中间逼近,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
当switch1_k=3时,将二进制序列
Figure FDA0003491075180000022
中元素从两头向中间以6个元素为单位进行分组,依次逆向从尾端取3个元素、逆向从首端取3个元素,逐步向中间逼近,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止,
从而得到分组后的二进制序列,表示为
Figure FDA0003491075180000023
其中每一个二进制分组序列均包含6个二进制位,且
Figure FDA0003491075180000024
然后令混沌初值z1=Y14×L、参数μ1=μ,将每一个二进制分组序列BF{i},其中
Figure FDA0003491075180000025
依次进行如下操作:
S11.由混沌信号zi和参数μ1,对如下公式(3)所示的倾斜帐篷混沌映射进行单次迭代,得到混沌信号zi+1
Figure FDA0003491075180000026
S12.利用混沌信号zi+1,按照如下公式(4)计算分别得到移位方向B_shift、移位个数B_k,
Figure FDA0003491075180000027
当B_shift>0时,将二进制分组序列BF{i}中元素循环左移B_k位,得到移位后的二进制分组序列
Figure FDA0003491075180000028
并利用bin2dec(·)函数将二进制分组序列
Figure FDA0003491075180000029
转换成数值型数据
Figure FDA00034910751800000210
当B_shift<0时,将二进制分组序列BF{i}中元素循环右移B_k位,得到移位后的二进制分组序列
Figure FDA00034910751800000211
并利用bin2dec(·)函数将二进制分组序列
Figure FDA00034910751800000212
转换成数值型数据
Figure FDA00034910751800000213
S13.比较i与
Figure FDA00034910751800000214
的大小,若
Figure FDA00034910751800000215
则利用数值型数据
Figure FDA00034910751800000216
对倾斜帐篷混沌映射的参数μ1按照如下公式(5)进行调整,然后转向步骤S11,
Figure FDA0003491075180000031
Figure FDA0003491075180000032
则停止操作,得到数值序列
Figure FDA0003491075180000033
(4)转码:将数值序列
Figure FDA0003491075180000034
进行数值与字符的转换,其转换关系表述为,设定一个空字符序列C,将数值序列
Figure FDA0003491075180000035
中两个元素为一组
Figure FDA0003491075180000036
依次进行如下运算,
Figure FDA0003491075180000037
如果
Figure FDA0003491075180000038
Figure FDA0003491075180000039
为奇数,则利用char(·)函数将数值型数据
Figure FDA00034910751800000310
转换为单个英文字符,并添加到字符序列C中,即
Figure FDA00034910751800000311
如果
Figure FDA00034910751800000312
Figure FDA00034910751800000313
为偶数,则利用native2unicode(·)函数将数值型数据
Figure FDA00034910751800000314
转换为单个中文字符,并添加到字符序列C中,即
Figure FDA00034910751800000315
从而得到字符序列C,即为该段中英文字符串的加密密文,其中序列C的长度为
Figure FDA00034910751800000316
Figure FDA00034910751800000317
2.根据权利要求1所述的一种中英文字符串的加密方法,其特征在于:步骤(1)中所述的将某段中英文字符串逐个字符转换为数值型数据,其中某段中英文字符串包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码汉字,以及可显示ASCII码字符;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],并将区数值数据和位数值数据均减去128,即[区数值数据-128,位数值数据-128],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可以用数据[P2k-1,P2k]表示,k=1,2,...,L,从而得到数值序列P={P1,P2,...,Pi,....,P2×L};将数值序列P逐个元素转换成7bits的二进制数据,是指采用dec2bin(·,7)函数,用二进制数据[B7l-6,B7l-5,B7l-4,B7l-3,B7l-2,B7l-1,B7l]表示,l=1,2,...,2×L,从而得到二进制序列B={B1,B2,...,Bi,....,B14×L}。
3.一种中英文字符串的解密方法,用于对根据权利要求1或2所述的中英文字符串的加密方法所获得的加密字符串进行解密,其特征在于,所述中英文字符串的解密方法包括如下几个步骤:
(1)转码:将某段待解密的中英文字符串密文
Figure FDA00034910751800000318
逐个字符转换成数值型数据,得到数值序列
Figure FDA00034910751800000319
再将数值序列R逐个元素转换成6bits的二进制数据,得到二进制序列
Figure FDA0003491075180000041
其中所述该段待解密的中英文字符串的长度为
Figure FDA0003491075180000042
所述数值序列R的长度为
Figure FDA0003491075180000043
所述二进制序列D的长度为
Figure FDA0003491075180000044
Figure FDA0003491075180000045
(2)二进制序列D的移位、组合:
首先利用外部解密密钥
Figure FDA0003491075180000046
按照如下公式(6)计算分别得到倾斜帐篷混沌映射的初值
Figure FDA0003491075180000047
参数
Figure FDA0003491075180000048
和取样间隔
Figure FDA0003491075180000049
Figure FDA00034910751800000410
其中,RD_1为二进制序列D中元素为二进制‘1’的总个数,RD_0为二进制序列D中元素为二进制‘0’的总个数减去某数值,某数值表示为
Figure FDA00034910751800000411
利用初值
Figure FDA00034910751800000412
和参数
Figure FDA00034910751800000413
对如下公式(7)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数,
Figure FDA00034910751800000414
表示第k次迭代得到的混沌信号,k=1,2,...,
Figure FDA00034910751800000415
得到混沌序列
Figure FDA00034910751800000416
从中每隔
Figure FDA00034910751800000417
个元素取1个,从而形成混沌序列
Figure FDA00034910751800000418
其中
Figure FDA00034910751800000419
然后令混沌初值
Figure FDA00034910751800000420
参数
Figure FDA00034910751800000421
将二进制序列
Figure FDA00034910751800000422
中元素从头到尾依次正向以6个元素为单位进行分组,将每一个分组后的二进制序列DF{i},其中
Figure FDA00034910751800000423
依次进行如下操作,
S21.由混沌信号
Figure FDA00034910751800000424
和参数
Figure FDA00034910751800000425
对如下公式(8)所示的倾斜帐篷混沌映射进行单次迭代,得到混沌信号
Figure FDA00034910751800000426
Figure FDA0003491075180000051
S22.利用混沌信号
Figure FDA0003491075180000052
按照如下公式(9)计算分别得到移位方向D_shift、移位个数D_k,
Figure FDA0003491075180000053
当D_shift>0时,将二进制分组序列DF{i}中元素循环右移D_k位,得到移位后的二进制分组序列
Figure FDA0003491075180000054
当D_shift<0时,将二进制分组序列DF{i}中元素循环左移D_k位,得到移位后的二进制分组序列
Figure FDA0003491075180000055
S23.比较i与
Figure FDA0003491075180000056
的大小,若
Figure FDA0003491075180000057
则停止操作,若
Figure FDA0003491075180000058
则利用二进制分组序列DF{i},对倾斜帐篷混沌映射的参数
Figure FDA0003491075180000059
按照如下公式(10)进行调整,然后转向步骤S21;
Figure FDA00034910751800000510
最后,设定一个空二进制序列PP,根据switch2_k=mod(RD_1,4),将二进制序列
Figure FDA00034910751800000511
选择不同的组合方式填放到二进制序列PP中,
当switch2_k=0时,将二进制序列
Figure FDA00034910751800000512
中6个元素正向依次从头到尾填放到二进制序列PP中,直至全部填完,再删除二进制序列PP尾端
Figure FDA00034910751800000513
个二进制‘0’,
当switch2_k=1时,将二进制序列
Figure FDA00034910751800000514
中6个元素逆向依次从尾到头填放到二进制序列PP中,直至全部填完,再删除二进制序列PP首端
Figure FDA00034910751800000515
个二进制‘0’,
当switch2_k=2时,将二进制序列
Figure FDA00034910751800000516
中6个元素从两头向中间依次填放到二进制序列PP中,前3个元素正向填放到二进制序列PP首端,后3个元素正向填放到二进制序列PP尾端,逐步向中间逼近,直至全部填完,再删除二进制序列PP最中间尾端
Figure FDA00034910751800000517
个二进制‘0’,
当switch2_k=3时,将二进制序列
Figure FDA00034910751800000518
中6个元素从两头向中间依次填放到二进制序列PP中,前3个元素逆向填放到二进制序列PP尾端,后3个元素逆向填放到二进制序列PP首端,逐步向中间逼近,直至全部填完,再删除二进制序列PP最中间首端
Figure FDA00034910751800000519
个二进制‘0’,
从而得到移位组合后的二进制序列PP,表示为{PP1,PP2,...,PPi,...,PPLL},其中二进制序列PP的长度为
Figure FDA0003491075180000061
(3)二进制序列PP的反置乱:
将混沌序列
Figure FDA0003491075180000062
按升序排序,根据序列
Figure FDA0003491075180000063
排序前、后的位置变化置乱规则,对二进制序列PP={PP1,PP2,...,PPi,...,PPLL}进行反置乱,得到反置乱后的二进制序列
Figure FDA0003491075180000064
(4)转码:将反置乱后的二进制序列
Figure FDA0003491075180000065
进行二进制位与字符的转换,得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中所述字符序列RR的长度为L,且L=LL/14。
4.根据权利要求3所述的一种中英文字符串的解密方法,其特征在于:步骤(1)中所述的将某段待解密的中英文字符串密文
Figure FDA0003491075180000066
逐个字符转换成数值型数据,其转换关系是指采用unicode2native(·)函数,将某段待解密的中英文字符串密文
Figure FDA0003491075180000067
中单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],同时将区数值数据、码数值数据分别减去176、161,并添加到数值序列R中,即R=[R,[区数值数据-176,位数值数据-161]],或将某段待解密的中英文字符串密文
Figure FDA0003491075180000068
中英文字符转换为ASCII码数值数据,表示为[ASCII码数值数据],同时将ASCII码数值数据减去33,并添加到数值序列R中,即R=[R,ASCII码数值数据-33],从而得到数值序列
Figure FDA0003491075180000069
步骤(1)中所述的将数值序列R逐个元素转换成6bits的二进制数据,其转换关系是指将采用dec2bin(·,6)函数,将数值型数据转换为6bits的二进制位,并添加到二进制序列D中,即D=[D,dec2bin(Ri,6)],从而得到二进制序列
Figure FDA00034910751800000610
5.根据权利要求4所述的一种中英文字符串的解密方法,其特征在于:步骤(4)中所述的将反置乱后的二进制序列
Figure FDA00034910751800000611
进行二进制位与字符的转换,其转换关系表述如下:
设定一个空字符序列RR,将二进制序列
Figure FDA00034910751800000612
中14个元素划分为一组
Figure FDA00034910751800000613
其中k=1,2,...,L,按组依次进行如下运算,
首先将
Figure FDA00034910751800000614
转换为两个数值型数据RT1和RT2,即
Figure FDA00034910751800000615
然后判断RT1的大小,如果RT1>0,则利用native2unicode(·)函数将数值型数据[RT1,RT2]转换为单个中文字符,并添加到字符序列RR中,即RR=[RR,native2unicode([RT1+128,RT2+128])],如果RT1=0,则利用char(·)函数将数值型数据RT2转换为单个英文字符,并添加到字符序列RR中,即RR=[RR,char(RT2+33)],
从而得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中字符序列RR的长度为L。
CN201910494402.4A 2019-06-10 2019-06-10 一种中英文字符串的加密、解密方法 Active CN110299989B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910494402.4A CN110299989B (zh) 2019-06-10 2019-06-10 一种中英文字符串的加密、解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910494402.4A CN110299989B (zh) 2019-06-10 2019-06-10 一种中英文字符串的加密、解密方法

Publications (2)

Publication Number Publication Date
CN110299989A CN110299989A (zh) 2019-10-01
CN110299989B true CN110299989B (zh) 2022-04-01

Family

ID=68027679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910494402.4A Active CN110299989B (zh) 2019-06-10 2019-06-10 一种中英文字符串的加密、解密方法

Country Status (1)

Country Link
CN (1) CN110299989B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110247912B (zh) * 2019-06-14 2021-10-26 广州中安电工高新科技股份有限公司 一种数据处理方法及装置
CN110737908B (zh) * 2019-10-12 2021-05-25 京东数字科技控股有限公司 加密方法和装置、解密方法和装置、电子设备和介质
CN110768785B (zh) * 2019-10-22 2023-05-02 宜人恒业科技发展(北京)有限公司 一种编、解码方法、相关装置及计算机设备
CN111552716A (zh) * 2020-07-10 2020-08-18 支付宝(杭州)信息技术有限公司 保护隐私的公共子串确定方法及装置
CN112651214B (zh) * 2020-08-28 2023-03-28 成都格斗科技有限公司 数据表格明文转换为便于程序可读取的二进制密文的方法
CN113255860B (zh) * 2021-03-26 2022-08-02 南通大学 一种基于分层加密的商品防伪二维码生成方法
CN112994874B (zh) * 2021-04-19 2021-07-27 工业信息安全(四川)创新中心有限公司 一种基于消息鉴别码算法的保留格式加密方法及解密方法
CN115632756B (zh) * 2022-08-18 2023-08-04 重庆市地理信息和遥感应用中心 基于动态循环位移的地理数据加密系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103402185A (zh) * 2013-07-30 2013-11-20 东北石油大学 一种私密信息传递方法
CN103427978A (zh) * 2012-05-17 2013-12-04 哈尔滨职业技术学院 基于混沌加密系统的无线汉字传输装置
CN103532701A (zh) * 2013-10-16 2014-01-22 南通纺织职业技术学院 一种数值型数据的加密、解密方法
CN104486073A (zh) * 2014-12-23 2015-04-01 南通大学 一种字符型数据的加密、解密方法

Family Cites Families (2)

* 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
US10439802B2 (en) * 2010-08-04 2019-10-08 Lawrence P. Huang System for scrambling and methods for use therewith

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103427978A (zh) * 2012-05-17 2013-12-04 哈尔滨职业技术学院 基于混沌加密系统的无线汉字传输装置
CN103402185A (zh) * 2013-07-30 2013-11-20 东北石油大学 一种私密信息传递方法
CN103532701A (zh) * 2013-10-16 2014-01-22 南通纺织职业技术学院 一种数值型数据的加密、解密方法
CN104486073A (zh) * 2014-12-23 2015-04-01 南通大学 一种字符型数据的加密、解密方法

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
CN110299989A (zh) 2019-10-01

Similar Documents

Publication Publication Date Title
CN110299989B (zh) 一种中英文字符串的加密、解密方法
CN110650005B (zh) 一种中英文字符串加密方法
CN110011783B (zh) 一种汉字的加密、解密方法
CN101461173B (zh) 同音替代对称加密
CN109995504B (zh) 一种字符串的加密和解密方法
CN113194213B (zh) 一种基于秘密共享和混沌映射的png图像信息隐藏和恢复方法
CN108768617B (zh) 一种基于传统分组密码的保持格式加密方法
CN116032474B (zh) 一种基于大数据计算机网络安全防护系统
CN109861810B (zh) 一种基于混沌块加密算法的数据加密方法及解密方法
CN102752108B (zh) 魔方加密和解密方法
CN102761418A (zh) 一种字符压缩加密方法
CN116155620B (zh) 一种刷卡器交易数据安全传输方法
CN114826590B (zh) 一种分组模式加密方法、解密方法及其装置、设备
Kumar et al. A novel approach of symmetric key cryptography
CN103812658B (zh) 一种基于流密码的安全通信协议
Sermeno et al. Modified Vigenere cryptosystem: An integrated data encryption module for learning management system
CN100501724C (zh) 一种基于逻辑字体的文字加密方法与系统
CN110650006B (zh) 一种中英文字符串的加密和解密方法
CN110278066B (zh) 一种中文字符串的加密、解密方法
Singh et al. A secure private key encryption technique for data security in modern cryptosystem
CN114741712A (zh) 一种基于分层置乱的汉字加密方法
CN110287713B (zh) 一种中文字符串的加密方法和解密方法
CN114707165A (zh) 一种基于分层置乱的字符串加密方法
Petrescu Applications of quasigroups in cryptography
CN107276746A (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