CN110650005B - 一种中英文字符串加密方法 - Google Patents

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

Info

Publication number
CN110650005B
CN110650005B CN201910874187.0A CN201910874187A CN110650005B CN 110650005 B CN110650005 B CN 110650005B CN 201910874187 A CN201910874187 A CN 201910874187A CN 110650005 B CN110650005 B CN 110650005B
Authority
CN
China
Prior art keywords
sequence
binary bit
binary
elements
chinese
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
CN201910874187.0A
Other languages
English (en)
Other versions
CN110650005A (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 CN201910874187.0A priority Critical patent/CN110650005B/zh
Publication of CN110650005A publication Critical patent/CN110650005A/zh
Application granted granted Critical
Publication of CN110650005B publication Critical patent/CN110650005B/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

本发明公开了一种中英文字符串加密方法,包括:将某段中英文字符串转换得到二进制位序列B;然后对二进制位序列B进行正向的移位加密后再进行逆向的移位加密,得到双向移位加密后的二进制位序列B,其中移位加密包括正向/逆向依次9个元素的二进制位分组、混沌映射单次迭代、分组序列循环移位、混沌映射初值调整以及分组序列替换更新等重复操作;最后将序列B正向以6个元素为单位进行分组后转换为数值型数据,然后再进行数值与字符的转换,得到该段中英文字符串的加密密文。本发明利用混沌信号的密码特性,对中英文字符串转换而成的二进制位序列进行双向移位加密,具有良好的抵抗已知/选择明文攻击的性能,保证了中英文字符串加密的安全性和可行性。

Description

一种中英文字符串加密方法
技术领域
本发明涉及信息安全技术领域,特别涉及一种中英文字符串加密方法。
背景技术
随着现代通信技术的飞速发展,计算机网络已成为众多领域进行信息交换的手段。由于计算机网络是一个开放式网络,信息交换时往往面临信息被窃取、篡改和伪造等安全问题,此时信息加密技术的研究与应用势在必行。
目前大多数主流信息加密解密技术都只能应用于如字母、数字、英文标点符号等单字节字符构成的信息,而可用于汉字、中文标点符号等双字节字符所构成的信息加密算法却很少。现有的中文字符加密算法,主要包括根据汉字区位码,进行的简单取反、区位码位置交换、异或,以及DES或RAS混合加密。现有的中文字符加密算法,所得的大多数密文可读性及可复制性太差,出现太多不易书写或者辨认的密文字符,也没有综合中文、英文字符的特点,提出一套简单方便、安全可靠的加密算法。在此情况下,结合混沌信号的密码特性,提出一套具有良好抗攻击性能的中英文字符串加密方法,显得尤为重要。
发明内容
本发明的目的在于提供一种中英文字符串加密方法,利用混沌信号的密码特性,对中英文字符串转换而成的二进制位序列,进行包括正向依次9个元素的二进制位分组、混沌映射单次迭代、分组序列循环移位、混沌映射初值调整以及分组序列替换更新等重复操作的正向移位加密,以及包括逆向依次9个元素的二进制位分组、混沌映射单次迭代、分组序列循环移位、混沌映射初值调整以及分组序列替换更新等重复操作的逆向移位加密,进而再进行分组并转换为数值型数据,以及数值与字符的转换以生成密文,从而保证了中英文字符串加密的安全性和可行性。
为解决以上问题,本发明提供了一种中英文字符串加密方法,包括如下几个步骤:
(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)二进制位序列B的双向移位加密:将二进制位序列B进行正向移位加密后再进行逆向移位加密,具体包括:
1)进行二进制位序列B的正向移位加密:
首先利用外部加密密钥(α、β),计算得到倾斜帐篷混沌映射的初值
Figure BDA0002203807640000011
和参数
Figure BDA0002203807640000012
其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数。利用初值x1和参数μ,对如下公式(1)所示的倾斜帐篷混沌映射进行200次迭代,得到第200次迭代后的混沌信号x201
Figure BDA0002203807640000021
然后令混沌信号初值y1=x201,并从二进制位序列B中从头到尾正向取9个元素,得到第一个二进制位分组序列,表示为BF{1}={B1,B2,...,B8,B9},令i=1,进行如下操作:
S11.由混沌信号yi和参数μ,对如公式(1)所示倾斜帐篷混沌映射进行单次迭代,得到混沌信号yi+1,同时利用混沌信号yi+1,按照如下公式(2)计算分别得到移位方向direction_shift1、移位个数k_shift1,
Figure BDA0002203807640000022
其中,
Figure BDA0002203807640000023
S12.当direction_shift1=0时,将二进制位分组序列BF{i}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列
Figure BDA0002203807640000024
表示为
Figure BDA0002203807640000025
当direction_shift1=1时,将二进制位分组序列BF{i}中元素循环右移k_shift1位,得到正向移位后的二进制位分组序列
Figure BDA0002203807640000026
表示为
Figure BDA0002203807640000027
S13.比较i与m的大小,若i<m-1,则利用正向移位后的二进制位分组序列
Figure BDA0002203807640000028
中前7个元素,按照公式(3)对混沌信号yi+1进行调整,
Figure BDA0002203807640000029
同时将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列
Figure BDA00022038076400000210
即{B8×i-7,B8×i-6,...,B8×i,B8×i+1}={BB9×i-8,BB9×i-7,...,BB9×i-1,BB9×i},并令i=i+1,随后从二进制位序列B中正向取9个相应元素,得到第i个二进制位分组序列,表示为BF{i}={B8×i-7,B8×i-6,...,B8×i,B8×i+1},然后转向S11,
若i=m-1,则利用正向移位后的二进制位分组序列
Figure BDA00022038076400000211
中前7个元素,按照如公式(3)所示对混沌信号yi+1进行调整,同时将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列
Figure BDA00022038076400000212
即{B8×i-7,B8×i-6,...,B8×i,B8×i+1}={BB9×i-8,BB9×i-7,...,BB9×i-1,BB9×i},并令i=i+1,随后从二进制位序列B中正向取9个相应元素,得到第m个二进制位分组序列,表示为BF{m}={B8×m-8,B8×m-7,...,B8×m-1,B8×m},然后转向S11,
若i=m,则将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列
Figure BDA0002203807640000031
即{B8×m-8,B8×m-7,...,B8×m-1,B8×m}={BB9×m-8,BB9×m-7,...,BB9×m-1,BB9×m},并令序列
Figure BDA0002203807640000032
与序列B相等,即
Figure BDA0002203807640000033
停止操作,从而得到正向移位加密后的二进制位序列
Figure BDA0002203807640000034
2)进行正向移位加密后二进制位序列
Figure BDA0002203807640000035
的逆向移位加密:
首先利用初值x1和参数μ,对如公式(1)所示的倾斜帐篷混沌映射进行300次迭代,得到第300次迭代后的混沌信号x301
然后令混沌信号初值z1=x301,并从二进制位序列
Figure BDA0002203807640000036
中从尾到头逆向取9个元素,得到第一个二进制位分组序列,表示为
Figure BDA0002203807640000037
令i=1,进行如下操作:
S21.由混沌信号zi和参数μ,对如公式(1)所示倾斜帐篷混沌映射进行单次迭代,得到混沌信号zi+1,同时利用混沌信号zi+1,按照如下公式(4)计算分别得到移位方向direction_shift2、移位个数k_shift2,
Figure BDA0002203807640000038
其中,
Figure BDA0002203807640000039
S22.当direction_shift2=0时,将二进制位分组序列BN{i}中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列
Figure BDA00022038076400000310
表示为
Figure BDA00022038076400000311
当direction_shift2=1时,将二进制位分组序列BN{i}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列
Figure BDA00022038076400000312
表示为
Figure BDA00022038076400000313
S23.比较i与m的大小,若i<m-1,则利用逆向移位后的二进制位分组序列
Figure BDA00022038076400000314
中前7个元素,按照公式(5)对混沌信号zi+1进行调整,
Figure BDA00022038076400000315
同时将二进制位序列
Figure BDA00022038076400000316
中相应元素替换为逆向移位后的二进制位分组序列
Figure BDA00022038076400000317
Figure BDA00022038076400000318
并令i=i+1,随后从二进制位序列
Figure BDA00022038076400000319
中逆向取9个相应元素,得到第i个二进制位分组序列,表示为
Figure BDA0002203807640000041
然后转向S11,
若i=m-1,则利用逆向移位后的二进制位分组序列
Figure BDA0002203807640000042
中前7个元素,按照如公式(5)所示对混沌信号zi+1进行调整,同时将二进制位序列
Figure BDA00022038076400000420
中相应元素替换为逆向移位后的二进制位分组序列
Figure BDA0002203807640000043
Figure BDA0002203807640000044
Figure BDA0002203807640000045
并令i=i+1,随后从二进制位序列B中逆向取9个相应元素,得到第m个二进制位分组序列,表示为
Figure BDA0002203807640000046
然后转向S11,
若i=m,则将二进制位序列
Figure BDA0002203807640000047
中相应元素替换为逆向移位后的二进制位分组序列
Figure BDA0002203807640000048
Figure BDA0002203807640000049
并令序列
Figure BDA00022038076400000410
与序列
Figure BDA00022038076400000411
相等,即
Figure BDA00022038076400000412
从而得到双向移位加密后的二进制位序列
Figure BDA00022038076400000413
(3)转码:首先将双向移位加密后的二进制位序列B中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,即进行bin2dec(·)操作,得到数值序列
Figure BDA00022038076400000414
再将数值序列DB进行数值与字符的转换,得到字符序列C,即为该段中英文字符串的加密密文,其中数值序列DB的长度为
Figure BDA00022038076400000415
字符序列C的长度为
Figure BDA00022038076400000416
Figure BDA00022038076400000417
进一步地,步骤(1)中所述的将某段中英文字符串逐个字符转换为数值型数据,其中某段中英文字符串包括,GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的6763个汉字,以及可显示ASCII码字符;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],从而得到数值序列P={P1,P2,...,Pi,....,Pm};将数值序列P逐个元素转换成8bits的二进制数据,是指采用dec2bin(·,8)函数,用二进制数据[B8×l-7,B8×l-6,B8×l-5,B8×l-4,B8×l-3,B8×l-2,B8×l-1,B8×l]表示(l=1,2,...,m),从而得到二进制位序列B={B1,B2,...,Bi,....,B8×m}。
进一步地,步骤(3)中所述的将数值序列DB进行数值与字符的转换,其转换关系表述如下:
首先设定一个空字符序列C,将数值序列
Figure BDA00022038076400000418
中两个元素为一组[DB2t-1,DB2t](其中
Figure BDA00022038076400000419
)依次利用native2unicode(·)函数将数值型数据[DB2t-1+180,DB2t+170]转换为单个中文字符,并添加到字符序列C中,即C=[C,native2unicode([DB2t-1+180,DB2t+170])];
然后判定
Figure BDA0002203807640000051
是否为奇数,如果
Figure BDA0002203807640000052
为奇数,则利用char(·)函数将数值型数据
Figure BDA0002203807640000053
转换为单个英文字符,并添加到字符序列C中,即
Figure BDA0002203807640000054
有益效果:本发明利用混沌信号的密码特性,对中英文字符串转换而成的二进制位序列,进行包括正向依次9个元素的二进制位分组、混沌映射单次迭代、分组序列循环移位、混沌映射初值调整以及分组序列替换更新等重复操作的正向移位加密,以及包括逆向依次9个元素的二进制位分组、混沌映射单次迭代、分组序列循环移位、混沌映射初值调整以及分组序列替换更新等重复操作的逆向移位加密,进而再进行分组并转换为数值型数据,以及数值与字符的转换以生成密文,从而保证了中英文字符串加密的安全性和可行性。
附图说明
图1为本发明的一种中英文字符串加密流程示意图。
具体实施方式
如图1所示的一种中英文字符串加密方法,包括如下几个步骤:
(1)转码:将某段中英文字符串(包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的6763个汉字,以及可显示ASCII码字符)逐个字符转换为数值型数据,即采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],从而得到数值序列P={P1,P2,...,Pi,....,Pm},再将数值序列P逐个元素转换成8bits的二进制数据,即采用dec2bin(·,8)函数,用二进制数据[B8×l-7,B8×l-6,B8×l-5,B8×l-4,B8×l-3,B8×l-2,B8×l-1,B8×l]表示(l=1,2,...,m),从而得到二进制位序列B={B1,B2,...,Bi,....,B8×m},其中该段中英文字符串的长度为L,数值序列P的长度为m,二进制位序列B的长度为8×m,且L≤m≤2×L;
(2)二进制位序列B的双向移位加密:将二进制位序列B进行正向移位加密后再进行逆向移位加密,具体包括:
1)进行二进制位序列B的正向移位加密:
首先利用外部加密密钥(α、β),计算得到倾斜帐篷混沌映射的初值
Figure BDA0002203807640000055
和参数
Figure BDA0002203807640000056
其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数。利用初值x1和参数μ,对如下公式所示的倾斜帐篷混沌映射进行200次迭代,得到第200次迭代后的混沌信号x201
Figure BDA0002203807640000061
然后令混沌信号初值y1=x201,并从二进制位序列B中从头到尾正向取9个元素,得到第一个二进制位分组序列,表示为BF{1}={B1,B2,...,B8,B9},令i=1,进行如下操作:
S11.由混沌信号yi和参数μ,对如上公式所示的倾斜帐篷混沌映射进行单次迭代,得到混沌信号yi+1,同时利用混沌信号yi+1,按照如下所示公式计算分别得到移位方向direction_shift1、移位个数k_shift1,
direction_shift1=mod(Y1i-Y2i,2)
k_shift1=mod(Y1i+Y2i,9)
其中,
Figure BDA0002203807640000062
S12.当direction_shift1=0时,将二进制位分组序列BF{i}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列
Figure BDA0002203807640000063
表示为
Figure BDA0002203807640000064
当direction_shift1=1时,将二进制位分组序列BF{i}中元素循环右移k_shift1位,得到正向移位后的二进制位分组序列
Figure BDA0002203807640000065
表示为
Figure BDA0002203807640000066
S13.比较i与m的大小,若i<m-1,则利用正向移位后的二进制位分组序列
Figure BDA0002203807640000067
中前7个元素,按照如下所示公式对混沌信号yi+1进行调整,
Figure BDA0002203807640000068
同时将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列
Figure BDA0002203807640000069
即{B8×i-7,B8×i-6,...,B8×i,B8×i+1}={BB9×i-8,BB9×i-7,...,BB9×i-1,BB9×i},并令i=i+1,随后从二进制位序列B中正向取9个相应元素,得到第i个二进制位分组序列,表示为BF{i}={B8×i-7,B8×i-6,...,B8×i,B8×i+1},然后转向S11,
若i=m-1,则利用正向移位后的二进制位分组序列
Figure BDA00022038076400000610
中前7个元素,按照如公式(3)所示对混沌信号yi+1进行调整,同时将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列
Figure BDA0002203807640000071
即{B8×i-7,B8×i-6,...,B8×i,B8×i+1}={BB9×i-8,BB9×i-7,...,BB9×i-1,BB9×i},并令i=i+1,随后从二进制位序列B中正向取9个相应元素,得到第m个二进制位分组序列,表示为BF{m}={B8×m-8,B8×m-7,...,B8×m-1,B8×m},然后转向S11,
若i=m,则将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列
Figure BDA0002203807640000072
即{B8×m-8,B8×m-7,...,B8×m-1,B8×m}={BB9×m-8,BB9×m-7,...,BB9×m-1,BB9×m},并令序列
Figure BDA0002203807640000073
与序列B相等,即
Figure BDA0002203807640000074
停止操作,从而得到正向移位加密后的二进制位序列
Figure BDA0002203807640000075
2)进行正向移位加密后二进制位序列
Figure BDA0002203807640000076
的逆向移位加密:
首先利用初值x1和参数μ,对如公式所示的倾斜帐篷混沌映射进行300次迭代,得到第300次迭代后的混沌信号x301
然后令混沌信号初值z1=x301,并从二进制位序列
Figure BDA0002203807640000077
中从尾到头逆向取9个元素,得到第一个二进制位分组序列,表示为
Figure BDA0002203807640000078
令i=1,进行如下操作:
S21.由混沌信号zi和参数μ,对如公式所示倾斜帐篷混沌映射进行单次迭代,得到混沌信号zi+1,同时利用混沌信号zi+1,按照如下所示公式计算分别得到移位方向direction_shift2、移位个数k_shift2,
direction_shift2=mod(Z1i-Z2i-1,2)
k_shift2=mod(Z1i+Z2i+1,9)
其中,
Figure BDA0002203807640000079
S22.当direction_shift2=0时,将二进制位分组序列BN{i}中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列
Figure BDA00022038076400000710
表示为
Figure BDA00022038076400000711
当direction_shift2=1时,将二进制位分组序列BN{i}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列
Figure BDA00022038076400000712
表示为
Figure BDA00022038076400000713
S23.比较i与m的大小,若i<m-1,则利用逆向移位后的二进制位分组序列
Figure BDA00022038076400000714
中前7个元素,按照如下所示公式对混沌信号zi+1进行调整,
Figure BDA00022038076400000715
同时将二进制位序列
Figure BDA00022038076400000828
中相应元素替换为逆向移位后的二进制位分组序列
Figure BDA0002203807640000081
Figure BDA0002203807640000082
并令i=i+1,随后从二进制位序列
Figure BDA0002203807640000083
中逆向取9个相应元素,得到第i个二进制位分组序列,表示为
Figure BDA0002203807640000084
然后转向S11,
若i=m-1,则利用逆向移位后的二进制位分组序列
Figure BDA0002203807640000085
中前7个元素,按照如公式(5)所示对混沌信号zi+1进行调整,同时将二进制位序列
Figure BDA00022038076400000829
中相应元素替换为逆向移位后的二进制位分组序列
Figure BDA0002203807640000086
Figure BDA0002203807640000087
Figure BDA0002203807640000088
并令i=i+1,随后从二进制位序列B中逆向取9个相应元素,得到第m个二进制位分组序列,表示为
Figure BDA0002203807640000089
然后转向S11,
若i=m,则将二进制位序列
Figure BDA00022038076400000810
中相应元素替换为逆向移位后的二进制位分组序列
Figure BDA00022038076400000811
Figure BDA00022038076400000812
并令序列
Figure BDA00022038076400000813
与序列
Figure BDA00022038076400000814
相等,即
Figure BDA00022038076400000815
从而得到双向移位加密后的二进制位序列
Figure BDA00022038076400000816
(3)转码:首先将双向移位加密后的二进制位序列
Figure BDA00022038076400000817
中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,即进行bin2dec(·)操作,得到数值序列
Figure BDA00022038076400000818
再将数值序列DB进行数值与字符的转换,其转换关系表述如下:
首先设定一个空字符序列C,将数值序列
Figure BDA00022038076400000819
中两个元素为一组[DB2t-1,DB2t](其中
Figure BDA00022038076400000820
)依次利用native2unicode(·)函数将数值型数据[DB2t-1+180,DB2t+170]转换为单个中文字符,并添加到字符序列C中,即C=[C,native2unicode([DB2t-1+180,DB2t+170])];
然后判定
Figure BDA00022038076400000821
是否为奇数,如果
Figure BDA00022038076400000822
为奇数,则利用char(·)函数将数值型数据
Figure BDA00022038076400000823
转换为单个英文字符,并添加到字符序列C中,即
Figure BDA00022038076400000824
从而得到字符序列C,即为该段中英文字符串的加密密文,其中数值序列DB的长度为
Figure BDA00022038076400000825
字符序列C的长度为
Figure BDA00022038076400000826
Figure BDA00022038076400000827
下面结合具体的实施例对本发明作进一步说明:
实施例1
按照上述具体实施方式中一种中英文字符串加密方法,步骤如下:
(1)将某段中英文字符串“一种中英文字符串加密方法,1+1>2吗?”逐个字符按照如上述具体实施方式中一种中英文字符串加密方法步骤(1)中所示字符与数值的转换运算,将其转换成数值型数据,得到数值序列P={210,187,214,214,214,208,211,162,206,196,215,214,183,251,180,174,188,211,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,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,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=20,数值序列P的长度为35,二进制位序列B的长度为280;
(2)二进制位序列B的双向移位加密:将二进制位序列B进行正向移位加密后再进行逆向移位加密,具体包括:
1)进行二进制位序列B的正向移位加密:
首先利用外部加密密钥(α=0.12345、β=0.54321),计算得到倾斜帐篷混沌映射的初值
Figure BDA0002203807640000091
参数
Figure BDA0002203807640000092
利用初值x1和参数μ,根据上述具体实施方式中一种中英文字符串加密方法步骤(2)中公式所示的倾斜帐篷混沌映射进行200次迭代,得到第200次迭代后的混沌信号x201,然后令混沌信号初值y1=x201,通过从二进制位序列B中从头到尾正向取9个元素组成二进制位分组序列、倾斜帐篷混沌映射单次迭代、二进制位分组序列的循环移位、倾斜帐篷混沌映射初值调整以及二进制位分组序列的替换更新等重复操作,得到正向移位加密后的二进制位序列
Figure BDA0002203807640000093
Figure BDA0002203807640000094
2)进行正向移位加密后二进制位序列
Figure BDA0002203807640000095
的逆向移位加密:
首先利用上述计算得到的初值x1=0.63345和参数μ=0.03321,根据上述具体实施方式中一种中英文字符串加密方法步骤(2)中公式所示的倾斜帐篷混沌映射进行300次迭代,得到第300次迭代后的混沌信号x301,然后令混沌信号初值z1=x301,通过从正向移位加密后的二进制位序列
Figure BDA0002203807640000099
中从尾到头逆向取9个元素组成二进制位分组序列、倾斜帐篷混沌映射单次迭代、二进制位分组序列的循环移位、倾斜帐篷混沌映射初值调整以及二进制位分组序列的替换更新等重复操作,得到双向移位加密后的二进制位序列
Figure BDA0002203807640000096
Figure BDA0002203807640000097
(3)首先将双向移位加密后的二进制位序列
Figure BDA0002203807640000098
中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,得到数值序列DB={15,60,19,20,43,22,27,5,40,56,54,34,16,22,57,18,59,14,63,27,14,39,51,36,36,61,54,45,31,55,55,26,42,57,6,43,56,44,58,9,43,45,21,28,59,37,44};再将数值序列DB,按照如上述具体实施方式中一种中英文字符串加密方法步骤(3)中所示数值与字符的转换运算,得到字符序列C,即为该段中英文字符串的加密密文为“面蔷呃席茆晏睦砑锔笈卵缥冂曜俞肽捭赫熘畛咦善锵T”,其中数值序列DB的长度为
Figure BDA0002203807640000101
字符序列C的长度为
Figure BDA0002203807640000102
实施例2
按照上述一种中英文字符串加密方法,某段待加密中英文字符串为“一种中英文字符串加密方法,1+1>2吗?”,其加密步骤与具体实施例1相似,仅加密密钥发生细微变化:α=0.12345000000001,或β=0.54321000000001,中英文字符串加密结果如表1所示。由表1可知,加密密钥的细微变化会引起中英文字符串加密密文发生很大的变化,由此可见本专利所提一种中英文字符串加密方法对加密密钥具有敏感性。
表1外部加密密钥发生微变时,中英文字符串加密结果
Figure BDA0002203807640000103
Figure BDA0002203807640000111
实施例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吗?”;或“一种中英文字符串加密方法,1+1>2?吗”,中英文字符串加密结果如表2所示。由表2可见:待加密中英文字符串平文信息的细微变化会引起加密密文的“面目全非”,由此可见本专利所提一种中英文字符串加密方法对待加密中英文字符串的平文信息具有敏感性。
表2待加密字符串发生微变时,字符串加密结果
Figure BDA0002203807640000112
Figure BDA0002203807640000121
Figure BDA0002203807640000131
Figure BDA0002203807640000141
由上述具体实施例2、3分析可知,本专利所提一种中英文字符串加密方法所生成的中英文字符串密文不仅与加密密钥密切相关,而且依赖于待加密中英文字符串平文信息,因此本专利所提一种中英文字符串加密方法可抵抗已知/选择明文攻击,具有很强的安全性。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权力要求所限定的范围为准。

Claims (3)

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)二进制位序列B的双向移位加密:将二进制位序列B进行正向移位加密后再进行逆向移位加密,具体包括:
1)进行二进制位序列B的正向移位加密:
首先利用外部加密密钥(α、β),计算得到倾斜帐篷混沌映射的初值
Figure FDA0003376493990000011
和参数
Figure FDA0003376493990000012
其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数,利用初值x1和参数μ,对如下公式(1)所示的倾斜帐篷混沌映射进行200次迭代,得到第200次迭代后的混沌信号x201
Figure FDA0003376493990000013
然后令混沌信号初值y1=x201,并从二进制位序列B中从头到尾正向取9个元素,得到第一个二进制位分组序列,表示为BF{1}={B1,B2,...,B8,B9},令i=1,进行如下操作:
S11.由混沌信号yi和参数μ,对如公式(1)所示倾斜帐篷混沌映射进行单次迭代,得到混沌信号yi+1,同时利用混沌信号yi+1,按照如下公式(2)计算分别得到移位方向direction_shift1、移位个数k_shift1,
Figure FDA0003376493990000014
其中,
Figure FDA0003376493990000015
S12.当direction_shift1=0时,将二进制位分组序列BF{i}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列
Figure FDA0003376493990000021
表示为
Figure FDA0003376493990000022
当direction_shift1=1时,将二进制位分组序列BF{i}中元素循环右移k_shift1位,得到正向移位后的二进制位分组序列
Figure FDA0003376493990000023
表示为
Figure FDA0003376493990000024
S13.比较i与m的大小,若i<m-1,则利用正向移位后的二进制位分组序列
Figure FDA0003376493990000025
中前7个元素,按照公式(3)对混沌信号yi+1进行调整,
Figure FDA0003376493990000026
其中bin2dec({BB9×i-8,BB9×i-7,...,BB9×i-3,BB9×i-2})操作表示将二进制位分组序列{BB9×i-8,BB9×i-7,...,BB9×i-1,BB9×i}转换为数值型数据,
同时将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列
Figure FDA0003376493990000027
{B8×i-7,B8×i-6,...,B8×i,B8×i+1}={BB9×i-8,BB9×i-7,...,BB9×i-1,BB9×i},并令i=i+1,随后从二进制位序列B中正向取9个相应元素,得到第i个二进制位分组序列,表示为BF{i}={B8×i-7,B8×i-6,...,B8×i,B8×i+1},然后转向S11,
若i=m-1,则利用正向移位后的二进制位分组序列
Figure FDA0003376493990000028
中前7个元素,按照如公式(3)所示对混沌信号yi+1进行调整,同时将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列
Figure FDA0003376493990000029
{B8×i-7,B8×i-6,...,B8×i,B8×i+1}={BB9×i-8,BB9×i-7,...,BB9×i-1,BB9×i},并令i=i+1,随后从二进制位序列B中正向取9个相应元素,得到第m个二进制位分组序列,表示为BF{m}={B8×m-8,B8×m-7,...,B8×m-1,B8×m},然后转向S11,
若i=m,则将二进制位序列B中相应元素替换为正向移位后的二进制位分组序列
Figure FDA00033764939900000210
{B8×m-8,B8×m-7,...,B8×m-1,B8×m}={BB9×m-8,BB9×m-7,...,BB9×m-1,BB9×m},并令序列
Figure FDA00033764939900000211
与序列B相等,
Figure FDA00033764939900000212
停止操作,从而得到正向移位加密后的二进制位序列
Figure FDA00033764939900000213
2)进行正向移位加密后二进制位序列
Figure FDA00033764939900000214
的逆向移位加密:
首先利用初值x1和参数μ,对如公式(1)所示的倾斜帐篷混沌映射进行300次迭代,得到第300次迭代后的混沌信号x301
然后令混沌信号初值z1=x301,并从二进制位序列
Figure FDA00033764939900000215
中从尾到头逆向取9个元素,得到第一个二进制位分组序列,表示为
Figure FDA00033764939900000216
令i=1,进行如下操作:
S21.由混沌信号zi和参数μ,对如公式(1)所示倾斜帐篷混沌映射进行单次迭代,得到混沌信号zi+1,同时利用混沌信号zi+1,按照如下公式(4)计算分别得到移位方向direction_shift2、移位个数k_shift2,
Figure FDA0003376493990000031
其中,
Figure FDA0003376493990000032
S22.当direction_shift2=0时,将二进制位分组序列BN{i}中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列
Figure FDA0003376493990000033
表示为
Figure FDA0003376493990000034
当direction_shift2=1时,将二进制位分组序列BN{i}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列
Figure FDA0003376493990000035
表示为
Figure FDA0003376493990000036
S23.比较i与m的大小,若i<m-1,则利用逆向移位后的二进制位分组序列
Figure FDA0003376493990000037
中前7个元素,按照公式(5)对混沌信号zi+1进行调整,
Figure FDA0003376493990000038
同时将二进制位序列
Figure FDA0003376493990000039
中相应元素替换为逆向移位后的二进制位分组序列
Figure FDA00033764939900000310
Figure FDA00033764939900000311
并令i=i+1,随后从二进制位序列
Figure FDA00033764939900000312
中逆向取9个相应元素,得到第i个二进制位分组序列,表示为
Figure FDA00033764939900000313
然后转向S11,
若i=m-1,则利用逆向移位后的二进制位分组序列
Figure FDA00033764939900000314
中前7个元素,按照如公式(5)所示对混沌信号zi+1进行调整,同时将二进制位序列
Figure FDA00033764939900000315
中相应元素替换为逆向移位后的二进制位分组序列
Figure FDA00033764939900000316
Figure FDA00033764939900000317
Figure FDA00033764939900000318
并令i=i+1,随后从二进制位序列B中逆向取9个相应元素,得到第m个二进制位分组序列,表示为
Figure FDA00033764939900000319
然后转向S11,
若i=m,则将二进制位序列
Figure FDA00033764939900000320
中相应元素替换为逆向移位后的二进制位分组序列
Figure FDA00033764939900000321
Figure FDA00033764939900000322
并令序列
Figure FDA00033764939900000323
与序列
Figure FDA00033764939900000324
相等,
Figure FDA00033764939900000325
从而得到双向移位加密后的二进制位序列
Figure FDA00033764939900000326
(3)转码:首先将双向移位加密后的二进制位序列
Figure FDA00033764939900000327
中元素从头到尾依次正向以6个元素为单位进行分组,如果剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,进行bin2dec(·)操作,得到数值序列
Figure FDA00033764939900000328
再将数值序列DB进行数值与字符的转换,得到字符序列C,为该段中英文字符串的加密密文,其中数值序列DB的长度为
Figure FDA0003376493990000041
字符序列C的长度为
Figure FDA0003376493990000042
Figure FDA0003376493990000043
2.根据权利要求1所述的一种中英文字符串加密方法,其特征在于:步骤(1)中所述的将某段中英文字符串逐个字符转换为数值型数据,其中某段中英文字符串包括,GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的6763个汉字,以及可显示ASCII码字符;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],从而得到数值序列P={P1,P2,...,Pi,....,Pm};将数值序列P逐个元素转换成8bits的二进制数据,是指采用dec2bin(·,8)函数,用二进制数据[B8×l-7,B8×l-6,B8×l-5,B8×l-4,B8×l-3,B8×l-2,B8×l-1,B8×l]表示,l=1,2,...,m,从而得到二进制位序列B={B1,B2,...,Bi,....,B8×m}。
3.根据权利要求1所述的一种中英文字符串加密方法,其特征在于:步骤(3)中所述的将数值序列DB进行数值与字符的转换,其转换关系表述如下:
首先设定一个空字符序列C,将数值序列
Figure FDA0003376493990000044
中两个元素为一组[DB2t-1,DB2t],其中
Figure FDA0003376493990000045
依次利用native2unicode(·)函数将数值型数据[DB2t-1+180,DB2t+170]转换为单个中文字符,并添加到字符序列C中,C=[C,native2unicode([DB2t-1+180,DB2t+170])];
然后判定
Figure FDA0003376493990000046
是否为奇数,如果
Figure FDA0003376493990000047
为奇数,则利用char(·)函数将数值型数据
Figure FDA0003376493990000048
转换为单个英文字符,并添加到字符序列C中,
Figure FDA0003376493990000049
CN201910874187.0A 2019-09-17 2019-09-17 一种中英文字符串加密方法 Active CN110650005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910874187.0A CN110650005B (zh) 2019-09-17 2019-09-17 一种中英文字符串加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910874187.0A CN110650005B (zh) 2019-09-17 2019-09-17 一种中英文字符串加密方法

Publications (2)

Publication Number Publication Date
CN110650005A CN110650005A (zh) 2020-01-03
CN110650005B true CN110650005B (zh) 2022-02-01

Family

ID=68991924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910874187.0A Active CN110650005B (zh) 2019-09-17 2019-09-17 一种中英文字符串加密方法

Country Status (1)

Country Link
CN (1) CN110650005B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111382452B (zh) * 2020-02-25 2021-12-14 南通大学 一种汉字转图片的加密方法
CN111353166B (zh) * 2020-02-25 2021-10-26 南通大学 一种图片转汉字的加密方法
CN113255860B (zh) * 2021-03-26 2022-08-02 南通大学 一种基于分层加密的商品防伪二维码生成方法
CN113268747A (zh) * 2021-04-23 2021-08-17 杭州安恒信息技术股份有限公司 数据加密方法、系统、电子装置和存储介质
CN115632756B (zh) * 2022-08-18 2023-08-04 重庆市地理信息和遥感应用中心 基于动态循环位移的地理数据加密系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102456108A (zh) * 2011-06-22 2012-05-16 中标软件有限公司 一种ibus拼音码表的加密方法
CN109981246A (zh) * 2019-03-21 2019-07-05 江苏工程职业技术学院 一种字符串的加密方法和解密方法
CN110011783A (zh) * 2019-03-21 2019-07-12 南通大学 一种汉字的加密、解密方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102456108A (zh) * 2011-06-22 2012-05-16 中标软件有限公司 一种ibus拼音码表的加密方法
CN109981246A (zh) * 2019-03-21 2019-07-05 江苏工程职业技术学院 一种字符串的加密方法和解密方法
CN110011783A (zh) * 2019-03-21 2019-07-12 南通大学 一种汉字的加密、解密方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110650005B (zh) 一种中英文字符串加密方法
CN110299989B (zh) 一种中英文字符串的加密、解密方法
JP5744377B2 (ja) 対称鍵データ暗号化の方法
CN103825723B (zh) 一种加密方法和装置
Raj et al. Secure data transfer through DNA cryptography using symmetric algorithm
CN113194213B (zh) 一种基于秘密共享和混沌映射的png图像信息隐藏和恢复方法
CN110011783B (zh) 一种汉字的加密、解密方法
US8341417B1 (en) Data storage using encoded hash message authentication code
CN114553391A (zh) 一种基于分层移位的字符串加密方法
US20040096056A1 (en) Method of encryption using multi-key process to create a variable-length key
CN109981249B (zh) 基于拉链式动态散列和nlfsr的加密解密方法及装置
CN102752108B (zh) 魔方加密和解密方法
US10225074B2 (en) Encryption system and method based on biometric technology
JP2008513811A (ja) 計算変換の方法及びシステム
CN115150201A (zh) 一种云计算数据的远程加密传输方法
Vinodhini et al. A survey on DNA and image steganography
CN114465709A (zh) 一种基于分层移位的字符串解密方法
CN110650006B (zh) 一种中英文字符串的加密和解密方法
CN110601817B (zh) 一种数据处理方法及装置
CN107835070B (zh) 一种简单的嵌入式加密方法
CN110086633B (zh) 一种区块链技术中密文防篡改方法
CN110287713B (zh) 一种中文字符串的加密方法和解密方法
Mohammed et al. DNA-based steganography using neural networks
CN107493164B (zh) 一种基于混沌系统的des加密方法和系统
CN114741712A (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