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

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

Info

Publication number
CN110650006B
CN110650006B CN201910874188.5A CN201910874188A CN110650006B CN 110650006 B CN110650006 B CN 110650006B CN 201910874188 A CN201910874188 A CN 201910874188A CN 110650006 B CN110650006 B CN 110650006B
Authority
CN
China
Prior art keywords
sequence
binary bit
chinese
binary
elements
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
CN201910874188.5A
Other languages
English (en)
Other versions
CN110650006A (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 CN201910874188.5A priority Critical patent/CN110650006B/zh
Publication of CN110650006A publication Critical patent/CN110650006A/zh
Application granted granted Critical
Publication of CN110650006B publication Critical patent/CN110650006B/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/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/001Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals

Abstract

本发明公开了一种中英文字符串的加密和解密方法,包括:将某段中英文字符串逐个字符转换得到二进制位序列;然后利用倾斜帐篷混沌映射产生的混沌信号,将二进制位序列以8个元素为单位进行分组后进行正向和逆向移位操作,得到双向移位后的二进制位序列;最后将序列正向以6个元素为单位进行分组,并转换为数值型数据,同时进行数值与字符的转换,得到该段中英文字符串的加密密文,通过类似的方法可将密文解密恢复出原始的中英文字符串。本发明利用混沌信号的密码特性,对中英文字符串转换而成的二进制位序列进行双向移位操作的加密/解密,具有良好的抵抗已知/选择明文攻击、唯密文攻击的性能,保证了中英文字符串加密与解密的安全性和可行性。

Description

一种中英文字符串的加密和解密方法
技术领域
本发明涉及信息安全技术领域,特别涉及一种中英文字符串的加密和解密方法。
背景技术
随着现代通信技术的飞速发展,计算机网络已成为众多领域进行信息交换的手段。由于计算机网络是一个开放式网络,信息交换时往往面临信息被窃取、篡改和伪造等安全问题,此时信息加密技术的研究与应用势在必行。
目前大多数主流信息加密解密技术都只能应用于如字母、数字、英文标点符号等单字节字符构成的信息,而可用于汉字、中文标点符号等双字节字符所构成的信息加密算法却很少。现有的中文字符加密算法,主要包括根据汉字区位码,进行的简单取反、区位码位置交换、异或,以及DES或RAS混合加密,所得的大多数密文可读性及可复制性太差,出现太多不易书写或者辨认的密文字符,也没有综合中文、英文字符的特点,提出一套简单方便、安全可靠的加密算法。在此情况下,结合混沌信号的密码特性,提出一套具有良好抗攻击性能的中英文字符串的加密和解密方法,显得尤为重要。
发明内容
本发明的目的在于提供一种中英文字符串的加密和解密方法,利用混沌信号的密码特性,对中英文字符串转换而成的二进制位序列进行分组,并对分组后的二进制位序列进行双向移位操作,进而再进行分组并转换为数值型数据,以及数值与字符的转换以生成密文,从而保证了中英文字符串加密与解密的安全性和可行性。
本发明提供了一种中英文字符串的加密方法,包括如下几个步骤:
(1)转码:将某段中英文字符串逐个字符转换为数值型数据,得到数值序列P={P1,P2,...,Pi,....,Pm},再将数值序列P逐个元素转换成8bits的二进制数据,得到二进制位序列B={B1,B2,...,Bi,....,B8×m},其中该段中英文字符串的长度为L,数值序列P的长度为m,二进制位序列B的长度为8×m,且L≤m≤2×L;
(2)混沌序列产生:
首先利用外部加密密钥(α、β),按照如下公式(1)计算分别得到倾斜帐篷混沌映射的初值x1、参数μ和取样间隔M,
Figure BDA0002203807890000011
其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数,
然后利用初值x1和参数μ,对如下公式(2)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数(k=1,2,...),xk+1表示第k次迭代得到的混沌信号,
Figure BDA0002203807890000021
得到混沌序列X={x1,x2,...},从中每隔M个元素取1个,从而形成长度为8×m的混沌序列Y={Y1,Y2,...,Y8×m},
(3)二进制位序列B的正向移位:
首先将二进制位序列B中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为BF{1},BF{2},...,BF{i},...BF{m},
然后令dircshift1=0、numshift1=0,将每一个二进制位分组序列BF{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号Yi,按照如下公式(3)计算分别得到移位方向direction_shift1、移位个数k_shift1,
Figure BDA0002203807890000022
其中,
Figure BDA0002203807890000023
其中,dircshift1和numshift1与移位后的密文有关,
②当direction_shift1=0时,将二进制位分组序列BF{i}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列BF1{i},
当direction_shift1=1时,将二进制位分组序列BF{i}中元素循环右移k_shift1位,得到正向移位后的二进制位分组序列BF1{i},
③利用正向移位后的二进制位分组序列BF1{i},对dircshift1和numshift1按照如下公式(4)进行计算,
Figure BDA0002203807890000024
最后将二进制位分组序列BF1{i}进行组合,得到正向移位后的二进制位序列
Figure BDA0002203807890000025
(4)二进制位序列
Figure BDA0002203807890000026
的逆向移位:
首先将二进制位序列
Figure BDA0002203807890000031
中元素从尾到头依次逆向以8个元素为单位进行分组,得到逆向分组后的二进制位序列,表示为BF2{1},BF2{2},...,BF2{i},...BF2{m},
然后令dircshift2=0、numshift2=0,将每一个二进制位分组序列BF2{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号Yi,按照如下公式(5)计算分别得到移位方向direction_shift2、移位个数k_shift2,
Figure BDA0002203807890000032
其中,
Figure BDA0002203807890000033
dircshift2和numshift2与移位后的密文有关,
②当direction_shift2=0时,将二进制位分组序列BF2{i}中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列BF3{i},
当direction_shift2=1时,将二进制位分组序列BF2{i}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列BF3{i},
③利用逆向移位后的二进制位分组序列BF3{i},对dircshift2和numshift2按照如下公式(6)进行计算,
Figure BDA0002203807890000034
最后将二进制位分组序列BF3{i}进行组合,得到双向移位后的二进制位序列
Figure BDA0002203807890000035
(5)转码:首先将二进制位序列
Figure BDA0002203807890000036
中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,即进行bin2dec(·)操作,得到数值序列
Figure BDA0002203807890000037
再将数值序列DBF进行数值与字符的转换,得到字符序列C,即为该段中英文字符串的加密密文,其中数值序列DBF的长度为
Figure BDA0002203807890000038
字符序列C的长度为
Figure BDA0002203807890000039
Figure BDA00022038078900000310
进一步地,步骤(1)中所述的将某段中英文字符串逐个字符转换为数值型数据,其中某段中英文字符串包括,GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的6763个汉字,以及可显示ASCII码字符;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],从而得到数值序列P={P1,P2,...,Pi,....,Pm};将数值序列P逐个元素转换成8bits的二进制数据,是指采用dec2bin(·,8)函数,用二进制数据[B8l-7,B8l-6,B8l-5,B8l-4,B8l-3,B8l-2,B8l-1,B8l]表示,l=1,2,...,m,,从而得到二进制位序列B={B1,B2,...,Bi,....,B8×m}。
进一步地,步骤(5)中所述的将数值序列DBF进行数值与字符的转换,其转换关系表述如下:
首先设定一个空字符序列C,将数值序列
Figure BDA0002203807890000041
中两个元素为一组[DBF2t-1,DBF2t],其中,
Figure BDA0002203807890000042
依次利用native2unicode(·)函数将数值型数据[DBF2t-1+180,DBF2t+170]转换为单个中文字符,并添加到字符序列C中,即C=[C,native2unicode([DBF2t-1+180,DBF2t+170])];
然后判定
Figure BDA0002203807890000043
是否为奇数,如果
Figure BDA0002203807890000044
为奇数,则利用char(·)函数将数值型数据
Figure BDA0002203807890000045
转换为单个英文字符,并添加到字符序列C中,即
Figure BDA0002203807890000046
一种中英文字符串的解密方法,其特征在于,包括如下几个步骤:
(1)转码:首先将某段待解密的中英文字符串密文
Figure BDA0002203807890000047
逐个字符转换成数值型数据,得到数值序列
Figure BDA0002203807890000048
然后将数值序列R逐个元素转换成6bits的二进制数据,得到二进制位序列
Figure BDA0002203807890000049
再将二进制位序列RB中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RBF{1},RBF{2},...,RBF{i},...RBF{m},且RBF{i}={RB8×i-7,RB8×i-6,...,RB8×i-1,RB8×i},并将分组后的二进制位序列RBF{i}进行组合,以得到二进制位序列RF={RBF{1},RBF{2},...,RBF{m}}={RF1,RF2,...,RF8×m},其中该段待解密的中英文字符串的长度为
Figure BDA00022038078900000410
数值序列R的长度为
Figure BDA00022038078900000411
二进制位序列RB的长度为
Figure BDA00022038078900000412
二进制位序列RF的长度为8×m,且
Figure BDA00022038078900000413
(2)混沌序列产生:
首先利用外部加密密钥
Figure BDA00022038078900000414
按照如下公式(7)计算分别得到倾斜帐篷混沌映射的初值
Figure BDA00022038078900000415
参数
Figure BDA0002203807890000051
和取样间隔
Figure BDA0002203807890000052
Figure BDA0002203807890000053
其中,RF_1为二进制位序列RF中元素为二进制‘1’的总个数,RF_0为二进制位序列RF中元素为二进制‘0’的总个数,
然后利用初值
Figure BDA0002203807890000054
和参数
Figure BDA0002203807890000055
对如下公式(8)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数(k=1,2,...),
Figure BDA0002203807890000056
表示第k次迭代得到的混沌信号,
Figure BDA0002203807890000057
得到混沌序列
Figure BDA0002203807890000058
从中每隔
Figure BDA0002203807890000059
个元素取1个,从而形成长度为8×m的混沌序列
Figure BDA00022038078900000510
(3)二进制位序列RF的逆向反移位:
首先将二进制位序列RF中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RF1{1},RF1{2},...,RF1{i},...RF1{m},
然后令
Figure BDA00022038078900000511
将每一个二进制位分组序列RF1{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号
Figure BDA00022038078900000512
按照如下公式(9)计算分别得到移位方向
Figure BDA00022038078900000513
移位个数
Figure BDA00022038078900000514
Figure BDA00022038078900000515
其中,
Figure BDA00022038078900000516
Figure BDA00022038078900000517
Figure BDA00022038078900000518
与待移位的密文有关,
②当
Figure BDA0002203807890000061
时,将二进制位分组序列RF1{i}中元素循环右移
Figure BDA0002203807890000062
位,得到反移位后的二进制位分组序列RF2{i},
Figure BDA0002203807890000063
时,将二进制位分组序列RF1{i}中元素循环左移
Figure BDA0002203807890000064
位,得到反移位后的二进制位分组序列RF2{i},
③利用二进制位分组序列RF1{i},对
Figure BDA0002203807890000065
Figure BDA0002203807890000066
按照如下公式(10)进行计算,
Figure BDA0002203807890000067
最后将反移位后的二进制位分组序列RF2{i}进行正向组合得到{RF2{1},RF2{2},...,RF2{m}},并进行逆向翻转,得到逆向反移位后的二进制位序列RC={RC1,RC2,...,RC8×m};
(4)二进制位序列RC的正向反移位:
首先将二进制位序列RC中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RC1{1},RC1{2},...,RC1{i},...RC1{m},
然后令
Figure BDA0002203807890000068
将每一个二进制位分组序列RC1{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号
Figure BDA0002203807890000069
按照如下公式(11)计算分别得到移位方向
Figure BDA00022038078900000610
移位个数
Figure BDA00022038078900000611
Figure BDA00022038078900000612
其中,
Figure BDA00022038078900000613
Figure BDA00022038078900000614
Figure BDA00022038078900000615
与待移位的密文有关,
②当
Figure BDA00022038078900000616
时,将二进制位分组序列RC1{i}中元素循环右移
Figure BDA00022038078900000617
位,得到反移位后的二进制位分组序列RC2{i},
Figure BDA00022038078900000618
时,将二进制位分组序列RC1{i}中元素循环左移
Figure BDA00022038078900000619
位,得到反移位后的二进制位分组序列RC2{i},
③利用二进制位分组序列RC1{i},对
Figure BDA0002203807890000071
Figure BDA0002203807890000072
按照如下公式(12)进行计算,
Figure BDA0002203807890000073
最后将反移位后的二进制位分组序列RC2{i}进行正向组合,即{RC2{1},RC2{2},...,RC2{m}},得到正向反移位后的二进制位序列RP={RP1,RP2,...,RP8×m};
(5)转码:将二进制位序列RP={RP1,RP2,...,RP8×m},进行二进制位与字符的转换,得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中字符序列RR的长度为L。
进一步地,步骤(1)中所述的将某段待解密的中英文字符串密文
Figure BDA0002203807890000074
逐个字符转换成数值型数据,其转换关系是指采用unicode2native(·)函数,将某段待解密的中英文字符串密文
Figure BDA0002203807890000075
中的单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],同时将区数值数据、码数值数据分别减去180、170,并添加到数值序列R中,即R=[R,[区数值数据-180,位数值数据-170]],或将某段待解密的中英文字符串密文
Figure BDA0002203807890000076
中的可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],同时将ASCII码数值数据减去40,并添加到数值序列R中,即R=[R,ASCII码数值数据-40],从而得到数值序列
Figure BDA0002203807890000077
步骤(1)中所述的将数值序列R逐个元素转换成6bits的二进制数据,其转换关系是指将采用dec2bin(·,6)函数,将数值型数据转换为6bits的二进制位,并添加到二进制位序列RB中,即
Figure BDA0002203807890000078
从而得到二进制位序列
Figure BDA0002203807890000079
进一步地,步骤(5)中所述的将二进制位序列RP={RP1,RP2,...,RP8×m},进行二进制位与字符的转换,其转换关系表述如下:
设定一个空字符序列RR,令标志位flag=0,将二进制位序列RP中8个元素划分为一组,即RP1{k}={RP8×k-7,RP8×k-6,...,RP8×k},其中,k=1,2,...,m,并将RP1{k}分别转换为数值型数据,即RDk=bin2dec(RP1{k}),将数值型数据RDk依次进行如下运算,
首先判断RDk的大小,
如果RDk<128,则利用char(·)函数将数值型数据RDk转换为单个英文字符,并添加到字符序列RR中,即RR=[RR,char(RDk)],并令标志位flag=0;
否则如果RDk>128,则继续判定RDk+1(或RDk-1)以及标志位flag的大小,
如果RDk>128,且RDk+1>128,且flag=0,则利用native2unicode(·)函数将数值型数据[RDk,RDk+1]转换为单个中文字符,并添加到字符序列RR中,即
RR=[RR,native2unicode([RDk,RDk+1])],并令标志位flag=1;
否则如果RDk>128,且RDk+1<128,且flag=0,则将英文字符‘@’添加到字符序列RR中,即RR=[RR,'@'],并令标志位flag=1;
否则如果RDk>128,且RDk-1>128,且flag=1,则令标志位flag=0。
从而得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中字符序列RR的长度为L。
有益效果:本发明利用混沌信号的密码特性,对中英文字符串转换而成的二进制位序列进行分组,并对分组后的二进制位序列进行双向移位操作,进而再进行分组并转换为数值型数据,以及数值与字符的转换,以完成中英文字符串的加密或者解密,具有良好的抵抗已知/选择明文攻击、唯密文攻击的性能,从而保证了中英文字符串加密与解密的安全性和可行性。
附图说明
图1为本发明的一种中英文字符串的加密和解密流程示意图。
具体实施方式
如图1所示的一种中英文字符串的加密方法,包括如下几个步骤:
(1)转码:将某段中英文字符串逐个字符转换为数值型数据,其中某段中英文字符串包括,GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的6763个汉字,以及可显示ASCII码字符,逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],得到数值序列P={P1,P2,...,Pi,....,Pm};再将数值序列P逐个元素转换成8bits的二进制数据,即采用dec2bin(·,8)函数,用二进制数据[B8l-7,B8l-6,B8l-5,B8l-4,B8l-3,B8l-2,B8l-1,B8l]表示(l=1,2,...,m),从而得到二进制位序列B={B1,B2,...,Bi,....,B8×m},其中该段中英文字符串的长度为L,数值序列P的长度为m,二进制位序列B的长度为8×m,且L≤m≤2×L;
(2)混沌序列产生:
首先利用外部加密密钥(α、β),按照如下所示公式计算分别得到倾斜帐篷混沌映射的初值x1、参数μ和取样间隔M,
Figure BDA0002203807890000091
其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数,
然后利用初值x1和参数μ,对如下公式所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数(k=1,2,...),xk+1表示第k次迭代得到的混沌信号,
Figure BDA0002203807890000092
得到混沌序列X={x1,x2,...},从中每隔M个元素取1个,从而形成长度为8×m的混沌序列
Y={Y1,Y2,...,Y8×m},
(3)二进制位序列B的正向移位:
首先将二进制位序列B中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为BF{1},BF{2},...,BF{i},...BF{m},
然后令dircshift1=0、numshift1=0,将每一个二进制位分组序列BF{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号Yi,按照如下所示公式计算分别得到移位方向direction_shift1、移位个数k_shift1,
direction_shift1=mod(Y1i-Y2i+dircshift1,2)
k_shift1=mod(Y1i+Y2i+numshift1,8)
其中,
Figure BDA0002203807890000093
dircshift1和numshift1与移位后的密文有关,
②当direction_shift1=0时,将二进制位分组序列BF{i}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列BF1{i},
当direction_shift1=1时,将二进制位分组序列BF{i}中元素循环右移k_shift1位,得到正向移位后的二进制位分组序列BF1{i},
③利用正向移位后的二进制位分组序列BF1{i},对dircshift1和numshift1按照如下所示公式进行计算,
Figure BDA0002203807890000101
最后将二进制位分组序列BF1{i}进行组合,得到正向移位后的二进制位序列
Figure BDA0002203807890000102
(4)二进制位序列
Figure BDA0002203807890000103
的逆向移位:
首先将二进制位序列
Figure BDA0002203807890000104
中元素从尾到头依次逆向以8个元素为单位进行分组,得到逆向分组后的二进制位序列,表示为BF2{1},BF2{2},...,BF2{i},...BF2{m},
然后令dircshift2=0、numshift2=0,将每一个二进制位分组序列BF2{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号Yi,按照如下所示公式计算分别得到移位方向direction_shift2、移位个数k_shift2,
direction_shift2=mod(Y1i+Y2i+dircshift2,2)
k_shift2=mod(Y1i-Y2i+numshift2,8)
其中,
Figure BDA0002203807890000105
dircshift2和numshift2与移位后的密文有关,
②当direction_shift2=0时,将二进制位分组序列BF2{i}中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列BF3{i},
当direction_shift2=1时,将二进制位分组序列BF2{i}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列BF3{i},
③利用逆向移位后的二进制位分组序列BF3{i},对dircshift2和numshift2按照如下所示公式进行计算,
Figure BDA0002203807890000111
最后将二进制位分组序列BF3{i}进行组合,得到双向移位后的二进制位序列
Figure BDA0002203807890000112
(5)转码:首先将二进制位序列
Figure BDA0002203807890000113
中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,即进行bin2dec(·)操作,得到数值序列
Figure BDA00022038078900001115
再将数值序列DBF进行数值与字符的转换,其转换关系表述如下:
首先设定一个空字符序列C,将数值序列
Figure BDA0002203807890000114
中两个元素为一组[DBF2t-1,DBF2t],其中,
Figure BDA0002203807890000115
依次利用native2unicode(·)函数将数值型数据[DBF2t-1+180,DBF2t+170]转换为单个中文字符,并添加到字符序列C中,即C=[C,native2unicode([DBF2t-1+180,DBF2t+170])];
然后判定
Figure BDA0002203807890000116
是否为奇数,如果
Figure BDA0002203807890000117
为奇数,则利用char(·)函数将数值型数据
Figure BDA0002203807890000118
转换为单个英文字符,并添加到字符序列C中,即
Figure BDA0002203807890000119
从而得到字符序列C,即为该段中英文字符串的加密密文,其中数值序列DBF的长度为
Figure BDA00022038078900001110
字符序列C的长度为
Figure BDA00022038078900001111
Figure BDA00022038078900001112
如图1所示,一种中英文字符串的解密方法,包括如下几个步骤:
(1)转码:首先将某段待解密的中英文字符串密文
Figure BDA00022038078900001113
逐个字符转换成数值型数据,即采用unicode2native(·)函数,将某段待解密的中英文字符串密文
Figure BDA00022038078900001114
中的单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],同时将区数值数据、码数值数据分别减去180、170,并添加到数值序列R中,即R=[R,[区数值数据-180,位数值数据-170]],或将某段待解密的中英文字符串密文C中的可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],同时将ASCII码数值数据减去40,并添加到数值序列R中,即R=[R,ASCII码数值数据-40],得到数值序列
Figure BDA00022038078900001116
然后将数值序列R逐个元素转换成6bits的二进制数据,即将采用dec2bin(·,6)函数,将数值型数据转换为6bits的二进制位,并添加到二进制位序列RB中,表示为RB=[RB,dec2bin(Ri,6)],得到二进制位序列
Figure BDA0002203807890000121
再将二进制位序列RB中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RBF{1},RBF{2},...,RBF{i},...RBF{m},且RBF{i}={RB8×i-7,RB8×i-6,...,RB8×i-1,RB8×i},并将分组后的二进制位序列RBF{i}进行组合,以得到二进制位序列RF={RBF{1},RBF{2},...,RBF{m}}={RF1,RF2,...,RF8×m},其中该段待解密的中英文字符串的长度为
Figure BDA0002203807890000122
数值序列R的长度为
Figure BDA0002203807890000123
二进制位序列RB的长度为
Figure BDA0002203807890000124
二进制位序列RF的长度为8×m,且
Figure BDA0002203807890000125
(2)混沌序列产生:
首先利用外部加密密钥
Figure BDA0002203807890000126
按照如下所示公式计算分别得到倾斜帐篷混沌映射的初值
Figure BDA0002203807890000127
参数
Figure BDA0002203807890000128
和取样间隔
Figure BDA0002203807890000129
Figure BDA00022038078900001210
其中,RF_1为二进制位序列RF中元素为二进制‘1’的总个数,RF_0为二进制位序列RF中元素为二进制‘0’的总个数,
然后利用初值
Figure BDA00022038078900001211
和参数
Figure BDA00022038078900001212
对如下所示公式所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数(k=1,2,...),
Figure BDA00022038078900001213
表示第k次迭代得到的混沌信号,
Figure BDA00022038078900001214
得到混沌序列
Figure BDA00022038078900001215
从中每隔
Figure BDA00022038078900001216
个元素取1个,从而形成长度为8×m的混沌序列
Figure BDA00022038078900001217
(3)二进制位序列RF的逆向反移位:
首先将二进制位序列RF中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RF1{1},RF1{2},...,RF1{i},...RF1{m},
然后令
Figure BDA00022038078900001218
将每一个二进制位分组序列RF1{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号
Figure BDA0002203807890000131
按照如下所示公式计算分别得到移位方向
Figure BDA0002203807890000132
移位个数
Figure BDA0002203807890000133
Figure BDA0002203807890000134
Figure BDA0002203807890000135
其中,
Figure BDA0002203807890000136
Figure BDA0002203807890000137
Figure BDA0002203807890000138
与待移位的密文有关,
②当
Figure BDA0002203807890000139
时,将二进制位分组序列RF1{i}中元素循环右移
Figure BDA00022038078900001310
位,得到反移位后的二进制位分组序列RF2{i},
Figure BDA00022038078900001311
时,将二进制位分组序列RF1{i}中元素循环左移
Figure BDA00022038078900001312
位,得到反移位后的二进制位分组序列RF2{i},
③利用二进制位分组序列RF1{i},对
Figure BDA00022038078900001313
Figure BDA00022038078900001314
按照如下所示公式进行计算,
Figure BDA00022038078900001315
最后将反移位后的二进制位分组序列RF2{i}进行正向组合得到{RF2{1},RF2{2},...,RF2{m}},并进行逆向翻转,得到逆向反移位后的二进制位序列RC={RC1,RC2,...,RC8×m};
(4)二进制位序列RC的正向反移位:
首先将二进制位序列RC中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RC1{1},RC1{2},...,RC1{i},...RC1{m},
然后令
Figure BDA00022038078900001316
将每一个二进制位分组序列RC1{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号
Figure BDA00022038078900001317
按照如下所示公式计算分别得到移位方向
Figure BDA00022038078900001318
移位个数
Figure BDA00022038078900001319
Figure BDA00022038078900001320
Figure BDA00022038078900001321
其中,
Figure BDA0002203807890000141
Figure BDA0002203807890000142
Figure BDA0002203807890000143
与待移位的密文有关,
②当
Figure BDA0002203807890000144
时,将二进制位分组序列RC1{i}中元素循环右移
Figure BDA0002203807890000145
位,得到反移位后的二进制位分组序列RC2{i},
Figure BDA0002203807890000146
时,将二进制位分组序列RC1{i}中元素循环左移
Figure BDA0002203807890000147
位,得到反移位后的二进制位分组序列RC2{i},
③利用二进制位分组序列RC1{i},对
Figure BDA0002203807890000148
Figure BDA0002203807890000149
按照如下所示公式进行计算,
Figure BDA00022038078900001410
最后将反移位后的二进制位分组序列RC2{i}进行正向组合,即{RC2{1},RC2{2},...,RC2{m}},得到正向反移位后的二进制位序列RP={RP1,RP2,...,RP8×m};
(5)转码:将二进制位序列RP={RP1,RP2,...,RP8×m},进行二进制位与字符的转换,其转换关系表述如下:
设定一个空字符序列RR,令标志位flag=0,将二进制位序列RP中8个元素划分为一组,即RP1{k}={RP8×k-7,RP8×k-6,...,RP8×k}(其中k=1,2,...,m),并将RP1{k}分别转换为数值型数据,即RDk=bin2dec(RP1{k}),将数值型数据RDk依次进行如下运算,
首先判断RDk的大小,
如果RDk<128,则利用char(·)函数将数值型数据RDk转换为单个英文字符,并添加到字符序列RR中,即RR=[RR,char(RDk)],并令标志位flag=0;
否则如果RDk>128,则继续判定RDk+1(或RDk-1)以及标志位flag的大小,
如果RDk>128,且RDk+1>128,且flag=0,则利用native2unicode(·)函数将数值型数据[RDk,RDk+1]转换为单个中文字符,并添加到字符序列RR中,即
RR=[RR,native2unicode([RDk,RDk+1])],并令标志位flag=1;
否则如果RDk>128,且RDk+1<128,且flag=0,则将英文字符‘@’添加到字符序列
RR中,即RR=[RR,'@'],并令标志位flag=1;
否则如果RDk>128,且RDk-1>128,且flag=1,则令标志位flag=0。
从而得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中字符序列RR的长度为L。
下面结合具体的实施例对本发明作进一步说明:
实施例1
按照上述具体实施方式中一种中英文字符串的加密方法,步骤如下:
(1)将某段中英文字符串“一种中英文字符串的加密和解密方法,1+1>2吗?”逐个字符按照如上述具体实施方式中一种中英文字符串的加密方法步骤(1)中所示字符与数值的转换运算,将其转换成数值型数据,得到数值序列P={210,187,214,214,214,208,211,162,206,196,215,214,183,251,180,174,181,196,188,211,195,220,186,205,189,226,195,220,183,189,183,168,163,172,49,43,49,62,50,194,240,163,191},再将数值序列P逐个元素转换成8bits的二进制数据,得到二进制位序列B={1,1,0,1,0,0,1,0,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,0,1,1,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0,1,1,0,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,0,0,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,0,1,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,1,1,0,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,0,1,1,1,0,1,1,1,1,1,1},其中该段中英文字符串的长度为L=24,数值序列P的长度为43,二进制位序列B的长度为344;
(2)首先利用外部加密密钥(α=0.12345、β=0.54321),计算得到倾斜帐篷混沌映射的初值
Figure BDA0002203807890000151
参数
Figure BDA0002203807890000152
Figure BDA0002203807890000153
和取样间隔M=mod(5×198+7×146,47)=38,利用初值x1和参数μ,根据上述具体实施方式中一种中英文字符串的加密方法步骤(2)中公式所示的倾斜帐篷混沌映射进行迭代,得到混沌序列X,从中每隔38个元素取1个,从而形成长度为344的混沌序列Y;
(3)首先将二进制位序列B中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为BF{1},BF{2},...,BF{i},...BF{m},然后令dircshift1=0、numshift1=0,将分组后的每一个二进制位序列BF{i}依次进行上述具体实施方式中一种中英文字符串的加密方法步骤(3)中所示的循环移位操作,从而得到正向移位后的二进制位序列
Figure BDA0002203807890000154
Figure BDA0002203807890000155
(4)首先将二进制位序列
Figure BDA0002203807890000156
中元素从尾到头依次逆向以8个元素为单位进行分组,得到逆向分组后的二进制位序列,表示为BF2{1},BF2{2},...,BF2{i},...BF2{m},然后令dircshift2=0、numshift2=0,将每一个二进制位分组序列BF2{i}依次进行上述具体实施方式中一种中英文字符串的加密方法步骤(4)中所示的循环移位操作,从而得到双向移位后的二进制位序列
Figure BDA0002203807890000161
Figure BDA0002203807890000162
(5)首先将二进制位序列
Figure BDA0002203807890000163
中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,得到数值序列DBF={61,56,47,3,16,52,50,15,12,35,22,17,41,34,56,42,47,29,58,61,59,1,57,7,59,28,57,23,39,19,51,37,52,49,39,22,53,29,10,63,61,37,46,47,35,9,46,40,57,21,35,22,26,61,27,46,52,32};再将数值序列DBF,按照如上述具体实施方式中一种中英文字符串的加密方法步骤(5)中所示数值与字符的转换运算,得到字符序列C,即为该段中英文字符串的加密密文为“疋悱霓婀劳驶萏煸闱铉铽肀锲砹劢缦枸劾榍鹃裣赓壮庖砜桌午县枋”,其中数值序列DBF的长度为
Figure BDA0002203807890000164
字符序列C的长度为
Figure BDA0002203807890000165
按照上述具体实施方式中一种中英文字符串的解密方法,步骤如下:
(1)将某段待解密的中英文字符串密文
Figure BDA00022038078900001610
Figure BDA00022038078900001611
逐个字符按照如上述具体实施方式中一种中英文字符串的解密方法步骤(1)中所示字符与数值的转换运算,得到数值序列R={61,56,47,3,16,52,50,15,12,35,22,17,41,34,56,42,47,29,58,61,59,1,57,7,59,28,57,23,39,19,51,37,52,49,39,22,53,29,10,63,61,37,46,47,35,9,46,40,57,21,35,22,26,61,27,46,52,32},然后将数值序列R逐个元素转换成6bits的二进制数据,得到二进制位序列RB,再将二进制位序列RB中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RBF{1},RBF{2},...,RBF{i},...RBF{m},并将分组后的二进制位序列RBF{i}进行组合,得到二进制位序列RF={1,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,1,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,0,0,1,0,0,0,1,1,1,1,1,1,0,1,1,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,1,1,1,1,0,0,1,1,1,0,1,0,0,1,1,1,1,0,0,1,1,1,0,0,1,0,1,1,1,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,0,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,0,1,1,0,1,1,1,0,1,0,1,0,0,0,1,1,1,0,0,1,0,1,0,1,0,1,1,0,0,0,1,1,0,1,0,1,1,0,0,1,1,0,1,0,1,1,1,1,0,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,0},其中该段待解密的中英文字符串的长度为
Figure BDA0002203807890000167
数值序列R的长度为
Figure BDA0002203807890000168
二进制位序列RB的长度为6×58=348,二进制位序列RF的长度为8×43=344;
(2)首先利用外部加密密钥
Figure BDA0002203807890000169
计算得到倾斜帐篷混沌映射的初值
Figure BDA0002203807890000171
参数
Figure BDA0002203807890000172
Figure BDA0002203807890000173
和取样间隔
Figure BDA0002203807890000174
利用初值
Figure BDA0002203807890000175
和参数
Figure BDA0002203807890000176
根据上述具体实施方式中一种中英文字符串的解密方法步骤(2)中公式所示的倾斜帐篷混沌映射进行迭代,得到混沌序列
Figure BDA0002203807890000177
从中每隔38个元素取1个,从而形成长度为344的混沌序列
Figure BDA0002203807890000178
(3)首先将二进制位序列RF中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RF1{1},RF1{2},...,RF1{i},...RF1{m},然后令
Figure BDA0002203807890000179
将每一个二进制位分组序列RF1{i}依次进行上述具体实施方式中一种中英文字符串的解密方法步骤(3)中所示的循环反移位、逆向翻转操作,从而得到逆向反移位后的二进制位序列RC={1,1,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,0,0,0,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,0,0,1,1,1,0,1,1,0,0,0,0,1,0,0,1,1,1,1,1,1,0,1,0,1,0,1,1,0,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,0,1,0,0,1,0,1,1,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,1,0,0,1,1,0,0,0,1,1,1,1,0,0,1,0,1,1,0,0,1,1,1,1,0,1,0,0,0,0,1,1,1,1,0,0,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,1,1,0,0,1,0,1,1,1,0,0,0,0,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,0,1,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,1,1,1,0,0,1,0,1,0,1,0,0,1,1,0,0,0,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,1,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,1,1};
(4)首先将二进制位序列RC中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RC1{1},RC1{2},...,RC1{i},...RC1{m},然后令
Figure BDA00022038078900001710
将每一个二进制位分组序列RC1{i}依次进行上述具体实施方式中一种中英文字符串的加密方法步骤(3)中所示的循环反移位操作,从而得到正向反移位后的二进制位序列RP={1,1,0,1,0,0,1,0,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,1,1,0,1,0,0,0,1,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,0,1,0,1,1,1,0,1,0,1,1,0,1,0,1,1,1,0,0,0,1,0,0,1,0,1,1,1,1,0,0,1,1,0,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,0,0,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,1,0,1,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,0,0,1,1,0,0,0,1,0,0,1,1,1,1,1,0,0,0,1,1,0,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,0,1,1,1,0,1,1,1,1,1,1};
(5)将二进制位序列RP={RP1,RP2,...,RP8×m},按照如上述具体实施方式中一种中英文字符串的解密方法步骤(5)中所示二进制位与字符的转换运算,进行二进制位与字符的转换,得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串为“一种中英文字符串的加密和解密方法,1+1>2吗?”。
实施例2
按照上述一种中英文字符串的加密方法,某段待加密中英文字符串为“一种中英文字符串的加密和解密方法,1+1>2吗?”,其加密步骤与具体实施例1相似,仅加密密钥发生细微变化:α=0.12345000000001,或β=0.54321000000001,中英文字符串加密结果如表1所示。由表1可知,加密密钥的细微变化会引起中英文字符串加密密文发生很大的变化,由此可见本专利所提一种中英文字符串的加密方法对加密密钥具有敏感性。
表1外部加密密钥发生微变时,中英文字符串加密结果
Figure BDA0002203807890000181
Figure BDA0002203807890000191
实施例3
按上述一种中英文字符串的加密方法,其加密步骤与具体实施例1相似,仅某段待加密中英文字符串(“一种中英文字符串的加密和解密方法,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 BDA0002203807890000192
Figure BDA0002203807890000201
Figure BDA0002203807890000211
Figure BDA0002203807890000221
由上述具体实施例2、3分析可知,本专利所提一种中英文字符串加密方法所生成的中英文字符串密文不仅与加密密钥密切相关,而且依赖于待加密中英文字符串平文信息,因此本专利所提一种中英文字符串加密方法可抵抗已知/选择明文攻击,具有很强的安全性。
实施例4
按照上述一种中英文字符串的解密方法,某段待解密中英文密文为“疋悱霓婀劳驶萏煸闱铉铽肀锲砹劢缦枸劾榍鹃裣赓壮庖砜桌午县枋”,一种中英文字符串的解密步骤与具体实施例1相似,仅解密密钥发生细微变化:
Figure BDA0002203807890000222
Figure BDA0002203807890000223
中英文字符串密文解密结果如表3所示。由表3可知,解密密钥的细微变化会引起密文解密结果发生很大的变化,恢复出的中英文字符串将是无用信息,由此可见本专利所提一种中英文字符串的解密方法对解密密钥具有敏感性。
表3外部解密密钥发生微变时,密文解密结果
Figure BDA0002203807890000224
Figure BDA0002203807890000231
实施例5
按照上述一种中英文字符串的解密方法,其解密步骤与具体实施例1相似,仅某段待解密中英文字符串密文(“疋悱霓婀劳驶萏煸闱铉铽肀锲砹劢缦枸劾榍鹃裣赓壮庖砜桌午县枋”)发生细微变化:“证悱霓婀劳驶萏煸闱铉铽肀锲砹劢缦枸劾榍鹃裣赓壮庖砜桌午县枋”;或“疋悱霓婀劳使萏煸闱铉铽肀锲砹劢缦枸劾榍鹃裣赓壮庖砜桌午县枋”;或“疋悱霓婀劳驶萏煸闱炫铽肀锲砹劢缦枸劾榍鹃裣赓壮庖砜桌午县枋”;或“疋悱霓婀劳驶萏煸闱铉铽肀锲哎劢缦枸劾榍鹃裣赓壮庖砜桌午县枋”;或“疋悱霓婀劳驶萏煸闱铉铽肀锲砹劢缦枸劾榍鹃捡赓壮庖砜桌午县枋”;或“疋悱霓婀劳驶萏煸闱铉铽肀锲砹劢缦枸劾榍鹃裣赓壮庖枫桌午县枋”;或“疋悱霓婀劳驶萏煸闱铉铽肀锲砹劢缦枸劾榍鹃裣赓壮庖砜桌午县防”,中英文字符串密文解密结果如表4所示。由表4可知,待解密中英文字符串密文的细微变化会引起密文解密结果发生很大的变化,难以恢复出原始的中英文字符串,由此可见本专利所提一种中英文字符串解密方法可抵抗唯密文攻击。
表4待解密中英文字符串密文发生微变时,密文解密结果
Figure BDA0002203807890000232
Figure BDA0002203807890000241
Figure BDA0002203807890000251
Figure BDA0002203807890000261
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权力要求所限定的范围为准。

Claims (6)

1.一种中英文字符串的加密方法,其特征在于,包括如下几个步骤:
(1)转码:将某段中英文字符串逐个字符转换为数值型数据,得到数值序列P={P1,P2,...,Pi,....,Pm},再将数值序列P逐个元素转换成8bits的二进制数据,得到二进制位序列B={B1,B2,...,Bi,....,B8×m},其中该段中英文字符串的长度为L,数值序列P的长度为m,二进制位序列B的长度为8×m,且L≤m≤2×L;
(2)混沌序列产生:
首先利用外部加密密钥(α、β),按照如下公式(1)计算分别得到倾斜帐篷混沌映射的初值x1、参数μ和取样间隔M,
Figure FDA0002203807880000011
其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数,
然后利用初值x1和参数μ,对如下公式(2)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数,k=1,2,...,xk+1表示第k次迭代得到的混沌信号,
Figure FDA0002203807880000012
得到混沌序列X={x1,x2,...},从中每隔M个元素取1个,从而形成长度为8×m的混沌序列Y={Y1,Y2,...,Y8×m};
(3)二进制位序列B的正向移位:
首先将二进制位序列B中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为BF{1},BF{2},...,BF{i},...BF{m},
然后令dircshift1=0、numshift1=0,将每一个二进制位分组序列BF{i},其中i=1,2,3,...,m,依次进行如下操作:
①利用混沌信号Yi,按照如下公式(3)计算分别得到移位方向direction_shift1、移位个数k_shift1,
Figure FDA0002203807880000021
其中,
Figure FDA0002203807880000022
②当direction_shift1=0时,将二进制位分组序列BF{i}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列BF1{i},
当direction_shift1=1时,将二进制位分组序列BF{i}中元素循环右移k_shift1位,得到正向移位后的二进制位分组序列BF1{i},
③利用正向移位后的二进制位分组序列BF1{i},对dircshift1和numshift1按照如下公式(4)进行计算,
Figure FDA0002203807880000023
最后将二进制位分组序列BF1{i}进行组合,得到正向移位后的二进制位序列
Figure FDA0002203807880000024
(4)二进制位序列
Figure FDA0002203807880000025
的逆向移位:
首先将二进制位序列
Figure FDA0002203807880000026
中元素从尾到头依次逆向以8个元素为单位进行分组,得到逆向分组后的二进制位序列,表示为BF2{1},BF2{2},...,BF2{i},...BF2{m},
然后令dircshift2=0、numshift2=0,将每一个二进制位分组序列BF2{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号Yi,按照如下公式(5)计算分别得到移位方向direction_shift2、移位个数k_shift2,
Figure FDA0002203807880000027
其中,
Figure FDA0002203807880000028
②当direction_shift2=0时,将二进制位分组序列BF2{i}中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列BF3{i},
当direction_shift2=1时,将二进制位分组序列BF2{i}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列BF3{i},
③利用逆向移位后的二进制位分组序列BF3{i},对dircshift2和numshift2按照如下公式(6)进行计算,
Figure FDA0002203807880000031
最后将二进制位分组序列BF3{i}进行组合,得到双向移位后的二进制位序列
Figure FDA0002203807880000032
(5)转码:首先将二进制位序列
Figure FDA0002203807880000033
中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,即进行bin2dec(·)操作,得到数值序列
Figure FDA0002203807880000034
再将数值序列DBF进行数值与字符的转换,得到字符序列C,即为该段中英文字符串的加密密文,其中数值序列DBF的长度为
Figure FDA0002203807880000035
字符序列C的长度为
Figure FDA0002203807880000036
Figure FDA0002203807880000037
2.根据权利要求1所述的一种中英文字符串的加密方法,其特征在于:步骤(1)中所述的将某段中英文字符串逐个字符转换为数值型数据,其中某段中英文字符串包括,GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的6763个汉字,以及可显示ASCII码字符;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],从而得到数值序列P={P1,P2,...,Pi,....,Pm};将数值序列P逐个元素转换成8bits的二进制数据,是指采用dec2bin(·,8)函数,用二进制数据[B8l-7,B8l-6,B8l-5,B8l-4,B8l-3,B8l-2,B8l-1,B8l]表示,l=1,2,...,m,从而得到二进制位序列B={B1,B2,...,Bi,....,B8×m}。
3.根据权利要求1所述的一种中英文字符串的加密方法,其特征在于:步骤(5)中所述的将数值序列DBF进行数值与字符的转换,其转换关系表述如下:
首先设定一个空字符序列C,将数值序列
Figure FDA0002203807880000039
中两个元素为一组[DBF2t-1,DBF2t],其中
Figure FDA0002203807880000038
依次利用native2unicode(·)函数将数值型数据[DBF2t-1+180,DBF2t+170]转换为单个中文字符,并添加到字符序列C中,即C=[C,native2unicode([DBF2t-1+180,DBF2t+170])];
然后判定
Figure FDA0002203807880000041
是否为奇数,如果
Figure FDA0002203807880000042
为奇数,则利用char(·)函数将数值型数据
Figure FDA0002203807880000043
转换为单个英文字符,并添加到字符序列C中,即
Figure FDA0002203807880000044
4.一种中英文字符串的解密方法,其特征在于,包括如下几个步骤:
(1)转码:首先将某段待解密的中英文字符串密文
Figure FDA0002203807880000045
逐个字符转换成数值型数据,得到数值序列
Figure FDA0002203807880000046
然后将数值序列R逐个元素转换成6bits的二进制数据,得到二进制位序列
Figure FDA0002203807880000047
再将二进制位序列RB中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RBF{1},RBF{2},...,RBF{i},...RBF{m},且RBF{i}={RB8×i-7,RB8×i-6,...,RB8×i-1,RB8×i},并将分组后的二进制位序列RBF{i}进行组合,以得到二进制位序列RF={RBF{1},RBF{2},...,RBF{m}}={RF1,RF2,...,RF8×m},其中该段待解密的中英文字符串的长度为
Figure FDA0002203807880000048
数值序列R的长度为
Figure FDA0002203807880000049
二进制位序列RB的长度为
Figure FDA00022038078800000410
二进制位序列RF的长度为8×m,且
Figure FDA00022038078800000411
(2)混沌序列产生:
首先利用外部加密密钥
Figure FDA00022038078800000412
按照如下公式(7)计算分别得到倾斜帐篷混沌映射的初值
Figure FDA00022038078800000413
参数
Figure FDA00022038078800000414
和取样间隔
Figure FDA00022038078800000415
Figure FDA00022038078800000416
其中,RF_1为二进制位序列RF中元素为二进制‘1’的总个数,RF_0为二进制位序列RF中元素为二进制‘0’的总个数,
然后利用初值
Figure FDA00022038078800000417
和参数
Figure FDA00022038078800000418
对如下公式(8)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数(k=1,2,...),
Figure FDA00022038078800000419
表示第k次迭代得到的混沌信号,
Figure FDA0002203807880000051
得到混沌序列
Figure FDA0002203807880000052
从中每隔
Figure FDA0002203807880000053
个元素取1个,从而形成长度为8×m的混沌序列
Figure FDA0002203807880000054
(3)二进制位序列RF的逆向反移位:
首先将二进制位序列RF中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RF1{1},RF1{2},...,RF1{i},...RF1{m},
然后令
Figure FDA0002203807880000055
将每一个二进制位分组序列RF1{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号
Figure FDA0002203807880000056
按照如下公式(9)计算分别得到移位方向
Figure FDA0002203807880000057
移位个数
Figure FDA0002203807880000058
Figure FDA0002203807880000059
其中,
Figure FDA00022038078800000510
②当
Figure FDA00022038078800000511
时,将二进制位分组序列RF1{i}中元素循环右移
Figure FDA00022038078800000512
位,得到反移位后的二进制位分组序列RF2{i},
Figure FDA00022038078800000513
时,将二进制位分组序列RF1{i}中元素循环左移
Figure FDA00022038078800000514
位,得到反移位后的二进制位分组序列RF2{i},
③利用二进制位分组序列RF1{i},对
Figure FDA00022038078800000515
Figure FDA00022038078800000516
按照如下公式(10)进行计算,
Figure FDA00022038078800000517
最后将反移位后的二进制位分组序列RF2{i}进行正向组合得到{RF2{1},RF2{2},...,RF2{m}},并进行逆向翻转,得到逆向反移位后的二进制位序列RC={RC1,RC2,...,RC8×m};
(4)二进制位序列RC的正向反移位:
首先将二进制位序列RC中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RC1{1},RC1{2},...,RC1{i},...RC1{m},
然后令
Figure FDA0002203807880000061
将每一个二进制位分组序列RC1{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号
Figure FDA0002203807880000062
按照如下公式(11)计算分别得到移位方向
Figure FDA0002203807880000063
移位个数
Figure FDA0002203807880000064
Figure FDA0002203807880000065
其中,
Figure FDA0002203807880000066
②当
Figure FDA0002203807880000067
时,将二进制位分组序列RC1{i}中元素循环右移
Figure FDA0002203807880000068
位,得到反移位后的二进制位分组序列RC2{i},
Figure FDA0002203807880000069
时,将二进制位分组序列RC1{i}中元素循环左移
Figure FDA00022038078800000610
位,得到反移位后的二进制位分组序列RC2{i},
③利用二进制位分组序列RC1{i},对
Figure FDA00022038078800000611
Figure FDA00022038078800000612
按照如下公式(12)进行计算,
Figure FDA00022038078800000613
最后将反移位后的二进制位分组序列RC2{i}进行正向组合,即{RC2{1},RC2{2},...,RC2{m}},得到正向反移位后的二进制位序列RP={RP1,RP2,...,RP8×m};
(5)转码:将二进制位序列RP={RP1,RP2,...,RP8×m},进行二进制位与字符的转换,得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中字符序列RR的长度为L。
5.根据权利要求4所述的一种中英文字符串的解密方法,其特征在于:步骤(1)中所述的将某段待解密的中英文字符串密文
Figure FDA00022038078800000614
逐个字符转换成数值型数据,其转换关系是指采用unicode2native(·)函数,将某段待解密的中英文字符串密文
Figure FDA00022038078800000615
中的单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],同时将区数值数据、码数值数据分别减去180、170,并添加到数值序列R中,即R=[R,[区数值数据-180,位数值数据-170]],或将某段待解密的中英文字符串密文
Figure FDA00022038078800000616
中的可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],同时将ASCII码数值数据减去40,并添加到数值序列R中,即R=[R,ASCII码数值数据-40],从而得到数值序列
Figure FDA0002203807880000071
步骤(1)中所述的将数值序列R逐个元素转换成6bits的二进制数据,其转换关系是指将采用dec2bin(·,6)函数,将数值型数据转换为6bits的二进制位,并添加到二进制位序列RB中,即RB=[RB,dec2bin(Ri,6)],从而得到二进制位序列
Figure FDA0002203807880000072
6.根据权利要求4所述的一种中英文字符串的解密方法,其特征在于:步骤(5)中所述的将二进制位序列RP={RP1,RP2,...,RP8×m},进行二进制位与字符的转换,其转换关系表述如下:
设定一个空字符序列RR,令标志位flag=0,将二进制位序列RP中8个元素划分为一组,即RP1{k}={RP8×k-7,RP8×k-6,...,RP8×k}(其中k=1,2,...,m),并将RP1{k}分别转换为数值型数据,即RDk=bin2dec(RP1{k}),将数值型数据RDk依次进行如下运算,
首先判断RDk的大小,
如果RDk<128,则利用char(·)函数将数值型数据RDk转换为单个英文字符,并添加到字符序列RR中,即RR=[RR,char(RDk)],并令标志位flag=0;
否则如果RDk>128,则继续判定RDk+1(或RDk-1)以及标志位flag的大小,
如果RDk>128,且RDk+1>128,且flag=0,则利用native2unicode(·)函数将数值型数据[RDk,RDk+1]转换为单个中文字符,并添加到字符序列RR中,即RR=[RR,native2unicode([RDk,RDk+1])],并令标志位flag=1;
否则如果RDk>128,且RDk+1<128,且flag=0,则将英文字符‘@’添加到字符序列RR中,即RR=[RR,'@'],并令标志位flag=1;
否则如果RDk>128,且RDk-1>128,且flag=1,则令标志位flag=0,
从而得到字符序列RR,即为该段待解密中英文字符串解密后恢复的中英文字符串,其中字符序列RR的长度为L。
CN201910874188.5A 2019-09-17 2019-09-17 一种中英文字符串的加密和解密方法 Active CN110650006B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910874188.5A CN110650006B (zh) 2019-09-17 2019-09-17 一种中英文字符串的加密和解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910874188.5A CN110650006B (zh) 2019-09-17 2019-09-17 一种中英文字符串的加密和解密方法

Publications (2)

Publication Number Publication Date
CN110650006A CN110650006A (zh) 2020-01-03
CN110650006B true CN110650006B (zh) 2021-11-12

Family

ID=68991923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910874188.5A Active CN110650006B (zh) 2019-09-17 2019-09-17 一种中英文字符串的加密和解密方法

Country Status (1)

Country Link
CN (1) CN110650006B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115632756B (zh) * 2022-08-18 2023-08-04 重庆市地理信息和遥感应用中心 基于动态循环位移的地理数据加密系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579693A (zh) * 2015-02-09 2015-04-29 广西师范大学 基于高次二阶logistic映射的嵌入式加密方法及装置
CN105975869A (zh) * 2016-02-05 2016-09-28 四川长虹电器股份有限公司 基于显著性区域的自适应选择加密方法
CN106056527A (zh) * 2016-09-05 2016-10-26 中山大学 基于混合型平衡二阶可逆二维细胞自动机图像加密方法
WO2018153317A1 (zh) * 2017-02-24 2018-08-30 陈伟 一种基于混沌数谱的数字化混沌密码方法
CN109981245A (zh) * 2019-03-21 2019-07-05 江苏工程职业技术学院 一种字符串的加密、解密方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104579693A (zh) * 2015-02-09 2015-04-29 广西师范大学 基于高次二阶logistic映射的嵌入式加密方法及装置
CN105975869A (zh) * 2016-02-05 2016-09-28 四川长虹电器股份有限公司 基于显著性区域的自适应选择加密方法
CN106056527A (zh) * 2016-09-05 2016-10-26 中山大学 基于混合型平衡二阶可逆二维细胞自动机图像加密方法
WO2018153317A1 (zh) * 2017-02-24 2018-08-30 陈伟 一种基于混沌数谱的数字化混沌密码方法
CN109981245A (zh) * 2019-03-21 2019-07-05 江苏工程职业技术学院 一种字符串的加密、解密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于双向扩散的混沌图像加密算法研究;吴新华等;《南通纺织职业技术学院学报》;20140625;第14卷(第2期);全文 *

Also Published As

Publication number Publication date
CN110650006A (zh) 2020-01-03

Similar Documents

Publication Publication Date Title
CN110299989B (zh) 一种中英文字符串的加密、解密方法
CN110650005B (zh) 一种中英文字符串加密方法
CN109995504B (zh) 一种字符串的加密和解密方法
CN116032474B (zh) 一种基于大数据计算机网络安全防护系统
CN101894244B (zh) 电子资料加密系统及方法
CN109981249B (zh) 基于拉链式动态散列和nlfsr的加密解密方法及装置
CN102752108B (zh) 魔方加密和解密方法
CN116155620B (zh) 一种刷卡器交易数据安全传输方法
CN114553391A (zh) 一种基于分层移位的字符串加密方法
CN110650006B (zh) 一种中英文字符串的加密和解密方法
Xian et al. Fractal sorting vector-based least significant bit chaotic permutation for image encryption
CN114707165A (zh) 一种基于分层置乱的字符串加密方法
CN114553393A (zh) 一种基于分层移位的汉字加密方法
CN114741712A (zh) 一种基于分层置乱的汉字加密方法
CN110287713B (zh) 一种中文字符串的加密方法和解密方法
KR20010034058A (ko) 이진 데이터 블록의 암호 변환 방법
CN114745096A (zh) 一种基于分层双向扩散的字符串加密方法
CN108777614B (zh) 一种加解密装置和基于通用散列函数的加解密方法
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
Taher et al. An efficient hybrid technique for message encryption using Caesar cipher and deoxyribonucleic acid steganography
Fasila et al. A multiphase cryptosystem with secure key encapsulation scheme based on principles of DNA computing
Mendrofa et al. Manipulation Vigenere Cipher Algorithm with Vernam Cipher through Matrix Table Rotation
Al-Farraji DNA Cryptographic System Utilizing Random Permutation
CN114722409A (zh) 一种基于分层双向扩散的字符串解密方法
CN114726499A (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