CN109981246B - 一种字符串的加密方法和解密方法 - Google Patents

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

Info

Publication number
CN109981246B
CN109981246B CN201910215951.3A CN201910215951A CN109981246B CN 109981246 B CN109981246 B CN 109981246B CN 201910215951 A CN201910215951 A CN 201910215951A CN 109981246 B CN109981246 B CN 109981246B
Authority
CN
China
Prior art keywords
sequence
chaotic
numerical
low
order
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
CN201910215951.3A
Other languages
English (en)
Other versions
CN109981246A (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 Lilian Automation Technology Co ltd
Original Assignee
Nantong Textile Vocational Technology College
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 Textile Vocational Technology College filed Critical Nantong Textile Vocational Technology College
Priority to CN201910215951.3A priority Critical patent/CN109981246B/zh
Publication of CN109981246A publication Critical patent/CN109981246A/zh
Application granted granted Critical
Publication of CN109981246B publication Critical patent/CN109981246B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/001Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种字符串的加密方法和解密方法,包括如下步骤:将某段字符串转化成高位数值序列、低位数值序列;然后利用混沌系统产生混沌信号,根据混沌序列排序前、后的位置变化置乱规则,对高位数值序列进行置乱;再利用混沌系统产生混沌信号,对低位数值序列进行正向、逆向扩散加密;最后进行数值与字符的转换,得到该段字符串的加密密文,通过类似的方法可将密文解密恢复出原始的某段字符串。本发明采用混沌序列的置乱规则,对字符串转换而成的高位数值序列进行置乱或者反置乱,同时利用混沌序列的密码特性,对字符串转换而成的低位数值序列进行双向扩散加密或者解密,具有良好的抵抗已知/选择明文攻击、唯密文攻击的性能,保证了字符串加密与解密的安全性和可行性。

Description

一种字符串的加密方法和解密方法
技术领域
本发明涉及信息安全技术领域,特别涉及一种字符串的加密方法和解密方法。
背景技术
随着Internet技术与多媒体技术的飞速发展,数据通信逐渐成为人们进行信息交流的重要手段。由Internet网传输数据方便快捷,不受地域限制,但由于某些数据的特殊性,即发送双方都不希望网络上所传输的数据被未授权者所浏览或处理。这些信息不但涉及个人隐私,有的涉及到国家安全,而且与国家的政治、军事和外交等也有重大的关系,因而数据的安全与保密显得越来越重要。在这些要求数据保密的特殊领域或者当数据所有者需要保护自身的利益时,就需要可靠的数据加密技术。
传统的字符串加密通常采用DES、RAS加密方法进行,加密运算相对比较复杂,随着网络通讯技术的发展,对于字符串加密的安全性、便捷性需求逐渐增加,采用一种安全可靠的密码技术进行字符数据加密已经迫在眉睫。混沌密码技术是一种利用混沌信号对所需对象进行加密的新技术。混沌系统对初始条件和结构参数具有敏感依赖性,可以提供数量众多的非相关、类随机而又确定可再生的混沌序列。由于混沌加密具有连续宽带谱、冲激式的尖锐自相关特性,混沌在数字信息加密和保密通信等领域中所具有的巨大应用前景已引起了人们广泛的研究兴趣。混沌在密码学领域的研究起源于80年代末期,由英国数学家Matthews首先提出一种基于变形Logistic映射作为序列密码方案。自从Matthews的混沌密码提出以来,混沌加密开始受到了来自不同领域研究者的关注。
发明内容
发明目的:本发明的目的是为了解决现有技术中的不足,提供一种字符串的加密方法和解密方法,利用混沌系统所产生混沌序列排序前、后的位置变化规则,将某段字符串转化成的高位数值序列进行置乱,同时利用混沌系统所产生混沌序列的密码特性,对某段字符串转换而成的低位数值序列进行双向扩散加密,进而高、低位数值序列转换以生成密文,从而保证了字符串加密与解密的安全性和可行性。
技术方案:本发明所述的一种字符串的加密方法,包括如下几个步骤:
(1)转码:将某段字符串逐个字符转换为数值型数据,得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},其中数值序列P1、P2的长度与该段字符串的长度一致,记为L;
(2)高位数值序列的置乱:
首先利用外部加密密钥(α、β),按照如下所示公式(1)分别计算得到混沌系统的初始迭代步数m1和抽取间隔n1
Figure GDA0003356051700000021
然后令初值x1=α和参数μ=β,对如下公式(2)所示的倾斜帐篷混沌系统进行迭代,k表示迭代次数,xk+1表示第k次迭代得到的混沌信号,其中k=1,2,...,
Figure GDA0003356051700000022
得到混沌序列X,从第m1个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y,
最后将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对高位数值序列P1={P11,P21,...,Pi1,....,PL1}进行置乱,得到置乱后的高位数值序列
Figure GDA0003356051700000023
(3)低位数值序列的双向扩散加密:
首先,进行低位数值序列的正向扩散加密
利用外部加密密钥(α、β),按照如下所示公式(3)计算得到混沌系统的初始迭代步数m2
Figure GDA0003356051700000024
从混沌序列X中抽取第m2个元素,作为倾斜帐篷混沌系统的初值
Figure GDA0003356051700000025
同时得到倾斜帐篷混沌系统的参数μ1,即μ1=β,
对低位数值序列P2={P12,P22,...,Pi2,....,PL2}中每个元素Pi2,其中i=1,2,3,...,L,依次进行如下操作:
①由初值
Figure GDA0003356051700000026
和参数μ1,对如公式(2)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure GDA0003356051700000027
同时对混沌信号
Figure GDA0003356051700000028
按照如下公式(4)进行整数化处理,得到混沌信号Y1i
Figure GDA0003356051700000029
②利用混沌信号Y1i对数据Pi2按照如下公式(5)进行正向扩散加密,得到正向扩散加密密文C1i
Figure GDA0003356051700000031
其中,Y10和C10为正向扩散加密密钥,
③根据正向扩散加密密文C1i,以及C1i-1和Y1i-1,对倾斜帐篷混沌系统的参数μ1按照如下公式(6)进行调整,
Figure GDA0003356051700000032
从而得到正向扩散加密后的低位数值序列C1={C11,C12,...,C1i,...,C1L};
然后,进行低位数值序列的逆向扩散加密
利用外部加密密钥(α、β),按照如下所示公式(7)计算得到混沌系统的初始迭代步数m3
Figure GDA0003356051700000033
从混沌序列X中抽取第m3个元素,作为倾斜帐篷混沌系统的初值
Figure GDA0003356051700000034
同时得到倾斜帐篷混沌系统的参数μ2,即μ2=β,
对正向扩散加密后的低位数值序列C1={C11,C12,...,C1i,...,C1L}中每个元素C1i,其中i=1,2,3,...,L,依次进行如下操作:
①由初值
Figure GDA0003356051700000035
和参数μ2,对如公式(2)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure GDA0003356051700000036
同时对混沌信号
Figure GDA0003356051700000037
按照如下公式(8)进行整数化处理,得到混沌信号Y2i
Figure GDA0003356051700000038
②利用混沌信号Y2i对数据C1i按照如下公式(9)进行逆向扩散加密,得到双向扩散加密密文C2i
Figure GDA0003356051700000039
其中,Y20和C20为逆向扩散加密密钥,
③根据双向扩散加密密文C2i,以及C2i-1和Y2i-1,对倾斜帐篷混沌系统的参数μ2按照如下公式(10)进行调整,
Figure GDA0003356051700000041
从而得到双向扩散加密后的低位数值序列C2={C21,C22,...,C2i,...,C2L};
(4)转码:将置乱后的高位数值序列
Figure GDA0003356051700000042
和双向扩散加密后的低位数值序列C2,进行数值与字符的转换,得到字符序列C,即为该段字符串的加密密文,其中序列C的长度为
Figure GDA0003356051700000043
Figure GDA0003356051700000044
进一步的,步骤(1)中所述的将某段字符串逐个字符转换为数值型数据,其中某段字符串包括,除空格以外的可显示ASCII码字符,以及GB2312字符集中双字节编码的6763个汉字;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可以用[Pi1,Pi2]表示,相应的数据组合得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2}。
进一步的,步骤(4)中所述的将置乱后的高位数值序列
Figure GDA0003356051700000045
和双向扩散加密后的低位数值序列C2,进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列C,将置乱后的高位数值序列
Figure GDA0003356051700000046
和双向扩散加密后的低位数值序列C2={C21,C22,...,C2i,...,C2L}中各对应元素依次进行如下运算,
如果
Figure GDA0003356051700000047
首先判断,如果
Figure GDA0003356051700000048
且(C2i+161)≥250,那么在字符序列C中添加1个空格,即C=[C,”],并设
Figure GDA0003356051700000049
然后利用native2unicode(·)函数将数值数据
Figure GDA00033560517000000410
转换为单个汉字,并添加到字符序列C中,即
Figure GDA00033560517000000411
如果
Figure GDA00033560517000000412
直接利用char(·)函数将数值数据(C2i+33)转换为单个ASCII码字符,并添加到字符序列C中,即C=[C,char(C2i+33)]。
本发明还公开了一种字符串的解密方法,其特征在于,包括如下几个步骤:
(1)转码:将某段待解密字符串密文
Figure GDA0003356051700000051
逐个字符转换成数值型数据,得到高位数值序列
Figure GDA0003356051700000052
和低位数值序列
Figure GDA0003356051700000053
其中数值序列R1、R2的长度为
Figure GDA0003356051700000054
某段待解密字符串密文
Figure GDA0003356051700000055
的长度为
Figure GDA0003356051700000056
(2)高位数值序列的反置乱:
首先利用外部解密密钥
Figure GDA0003356051700000057
按照如下所示公式(11)分别计算得到混沌系统的初始迭代步数
Figure GDA0003356051700000058
和抽取间隔
Figure GDA0003356051700000059
Figure GDA00033560517000000510
然后令初值
Figure GDA00033560517000000511
和参数
Figure GDA00033560517000000512
对如下公式(12)所示的倾斜帐篷混沌系统进行迭代,k表示迭代次数,
Figure GDA00033560517000000513
表示第k次迭代得到的混沌信号,其中k=1,2,...,
Figure GDA00033560517000000514
得到混沌序列
Figure GDA00033560517000000515
从第
Figure GDA00033560517000000516
个元素开始每隔
Figure GDA00033560517000000517
个元素取1个,从而形成长度为
Figure GDA00033560517000000518
的混沌序列
Figure GDA00033560517000000519
最后将混沌序列
Figure GDA00033560517000000520
按升序排序,根据序列
Figure GDA00033560517000000521
排序前、后的位置变化置乱规则,对高位数值序列
Figure GDA00033560517000000522
进行反置乱,得到反置乱后的高位数值序列
Figure GDA00033560517000000523
(3)低位数值序列的双向扩散解密:
首先,进行低位数值序列的逆向扩散解密
利用外部解密密钥
Figure GDA00033560517000000524
按照如下所示公式(13)计算得到混沌系统的初始迭代步数
Figure GDA00033560517000000525
Figure GDA00033560517000000526
从混沌序列
Figure GDA0003356051700000061
中抽取第
Figure GDA0003356051700000062
个元素,作为倾斜帐篷混沌系统的初值
Figure GDA0003356051700000063
同时得到倾斜帐篷混沌系统的参数
Figure GDA0003356051700000064
Figure GDA0003356051700000065
对低位数值序列
Figure GDA0003356051700000066
中每个元素Ri2,其中
Figure GDA0003356051700000067
依次进行如下操作:
①由初值
Figure GDA0003356051700000068
和参数
Figure GDA0003356051700000069
对如公式(12)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure GDA00033560517000000610
同时对混沌信号
Figure GDA00033560517000000611
按照如下公式(14)进行整数化处理,得到混沌信号
Figure GDA00033560517000000612
Figure GDA00033560517000000613
②利用混沌信号
Figure GDA00033560517000000614
对数据Ri2按照如下公式(15)进行逆向扩散解密,得到逆向扩散解密数据
Figure GDA00033560517000000615
Figure GDA00033560517000000616
其中,
Figure GDA00033560517000000617
和R′02为逆向扩散解密密钥,
③根据低位数值序列中元素Ri2、Ri-12对应的数值R′i2、R′i-12,以及
Figure GDA00033560517000000618
对倾斜帐篷混沌系统的参数
Figure GDA00033560517000000619
按照如下公式(16)进行调整,
Figure GDA00033560517000000620
从而得到逆向扩散解密后的低位数值序列
Figure GDA00033560517000000621
然后,进行低位数值序列的正向扩散解密
利用外部解密密钥
Figure GDA00033560517000000622
按照如下所示公式(17)计算得到混沌系统的初始迭代步数
Figure GDA00033560517000000623
Figure GDA00033560517000000624
从混沌序列
Figure GDA00033560517000000625
中抽取第
Figure GDA00033560517000000626
个元素,作为倾斜帐篷混沌系统的初值
Figure GDA00033560517000000627
同时得到倾斜帐篷混沌系统的参数
Figure GDA00033560517000000628
Figure GDA00033560517000000629
对逆向扩散解密后的低位数值序列
Figure GDA00033560517000000630
中每个元素D1i,其中
Figure GDA00033560517000000631
依次进行如下操作:
①由初值
Figure GDA0003356051700000071
和参数
Figure GDA0003356051700000072
对如公式(12)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure GDA0003356051700000073
同时对混沌信号
Figure GDA0003356051700000074
按照如下公式(18)进行整数化处理,得到混沌信号
Figure GDA0003356051700000075
Figure GDA0003356051700000076
②利用混沌信号
Figure GDA0003356051700000077
对数据D1i按照如下公式(19)进行正向扩散解密,得到双向扩散解密数据D2i
Figure GDA0003356051700000078
其中,
Figure GDA0003356051700000079
和D10为正向扩散解密密钥,
③根据正向扩散解密数据D1i,以及D1i-1
Figure GDA00033560517000000710
对倾斜帐篷混沌系统的参数
Figure GDA00033560517000000711
按照如下公式(20)进行调整,
Figure GDA00033560517000000712
从而得到双向扩散解密后的低位数值序列
Figure GDA00033560517000000713
(4)转码:将反置乱后的高位数值序列
Figure GDA00033560517000000714
和双向扩散解密后的低位数值序列D2,进行数值与字符的转换,得到字符序列PP,即为该段待解密字符串解密后恢复的字符串,其中字符序列PP的长度为
Figure GDA00033560517000000715
进一步的,步骤(1)中所述的将某段待解密字符串密文
Figure GDA00033560517000000716
逐个转换成数值型数据,得到高位数值序列
Figure GDA00033560517000000717
和低位数值序列
Figure GDA00033560517000000718
其转换关系表述如下:
首先将某段待解密字符串密文
Figure GDA00033560517000000719
中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可用[Ri1,Ri2]表示;
然后将数值型数据[Ri1,Ri2]对应组合,得到高位数值序列
Figure GDA00033560517000000720
和低位数值序列
Figure GDA00033560517000000721
其中
Figure GDA00033560517000000722
接着逐个检查低位数值序列R2中是否有Ri2=32的元素,如果是,则将对应高位数值序列R1中后一元素Ri+11数值加1,并删除该数值为32的元素Ri2和其对应高位数值序列R1中的元素Ri1
最后得到高位数值序列
Figure GDA0003356051700000081
和低位数值序列
Figure GDA0003356051700000082
进一步的,步骤(4)中所述的将反置乱后的高位数值序列
Figure GDA0003356051700000083
和双向扩散解密后的低位数值序列D2,进行数值与字符的转换,其转换关系表述如下:
设定一个空字符串PP,将反置乱后的高位数值序列
Figure GDA0003356051700000084
和双向扩散解密后的低位数值序列
Figure GDA0003356051700000085
中对应元素依次进行如下运算,
如果
Figure GDA0003356051700000086
如果
Figure GDA0003356051700000087
且D2i≥250,那么在字符序列PP中添加1个空格,即PP=[PP,”];否则利用native2unicode(·)函数将数值数据
Figure GDA0003356051700000088
转换为单个汉字,并添加到字符序列PP中,即
Figure GDA0003356051700000089
如果
Figure GDA00033560517000000810
直接利用char(·)函数将数值数据(D2i)转换为单个ASCII码字符,并添加到字符序列PP中,即PP=[PP,char(D2i)]。
有益效果:本发明利用混沌系统所产生混沌序列排序前、后的位置变化规则,将某段字符串转化成的高位数值序列进行置乱,同时利用混沌系统所产生混沌序列的密码特性,对某段字符串转换而成的低位数值序列进行双向扩散加密,进而高、低位数值序列转换以生成密文,从而保证了字符串加密与解密的安全性和可行性。
附图说明
图1为本发明的一种字符串的加密、解密流程示意图。
具体实施方式
如图1所示的一种字符串的加密方法,包括如下几个步骤:
(1)转码:将某段字符串逐个字符转换为数值型数据,其中字符串包括,除空格以外的可显示ASCII码字符,以及GB2312字符集中双字节编码的6763个汉字;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可以用[Pi1,Pi2]表示,相应的数据组合得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},数值序列P1、P2的长度与该段字符串的长度一致,记为L,
(2)高位数值序列的置乱:
首先利用外部加密密钥(α、β),按照如下公式分别计算得到混沌系统的初始迭代步数(m1)和抽取间隔(n1),
Figure GDA0003356051700000091
Figure GDA0003356051700000092
然后令初值x1=α和参数μ=β,对倾斜帐篷混沌系统(公式如下)进行迭代,k表示迭代次数,xk+1表示第k次迭代得到的混沌信号,其中k=1,2,...,
Figure GDA0003356051700000093
得到混沌序列X,从第m1个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y,
最后将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对高位数值序列P1={P11,P21,...,Pi1,....,PL1}进行置乱,得到置乱后的高位数值序列
Figure GDA0003356051700000094
(3)低位数值序列的双向扩散加密:
首先,进行低位数值序列的正向扩散加密
利用外部加密密钥(α、β),按照如下公式计算得到混沌系统的初始迭代步数(m2),
Figure GDA0003356051700000095
从混沌序列X中抽取第m2个元素,作为倾斜帐篷混沌系统的初值
Figure GDA0003356051700000096
同时得到倾斜帐篷混沌系统的参数(μ1),即μ1=β,
对低位数值序列P2={P12,P22,...,Pi2,....,PL2}中每个元素Pi2,其中i=1,2,3,...,L,依次进行如下操作:
①由初值
Figure GDA0003356051700000101
和参数μ1,对倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure GDA0003356051700000102
同时对混沌信号
Figure GDA0003356051700000103
进行如下整数化处理,得到混沌信号Y1i
Figure GDA0003356051700000104
②利用混沌信号Y1i对数据Pi2进行如下正向扩散加密,得到正向扩散加密密文C1i
Figure GDA0003356051700000105
其中,Y10和C10为正向扩散加密密钥,
③根据正向扩散加密密文C1i,以及C1i-1和Y1i-1,对倾斜帐篷混沌系统的参数μ1进行如下调整,
Figure GDA0003356051700000106
从而得到正向扩散加密后的低位数值序列C1={C11,C12,...,C1i,...,C1L};
然后,进行低位数值序列的逆向扩散加密
利用外部加密密钥(α、β),按照如下公式计算得到混沌系统的初始迭代步数(m3),
Figure GDA0003356051700000107
从混沌序列X中抽取第m3个元素,作为倾斜帐篷混沌系统的初值
Figure GDA0003356051700000108
同时得到倾斜帐篷混沌系统的参数(μ2),即μ2=β,
对正向扩散加密后的低位数值序列C1={C11,C12,...,C1i,...,C1L}中每个元素C1i,其中i=1,2,3,...,L,依次进行如下操作:
①由初值
Figure GDA0003356051700000109
和参数μ2,对倾斜帐篷混沌系统(公式如下)进行单次迭代,得到混沌信号
Figure GDA00033560517000001010
同时对混沌信号
Figure GDA00033560517000001011
进行如下整数化处理,得到混沌信号Y2i
Figure GDA00033560517000001012
②利用混沌信号Y2i对数据C1i进行如下逆向扩散加密,得到双向扩散加密密文C2i
Figure GDA00033560517000001013
其中,Y20和C20为逆向扩散加密密钥,
③根据双向扩散加密密文C2i,以及C2i-1和Y2i-1,对倾斜帐篷混沌系统的参数μ2进行如下调整,
Figure GDA0003356051700000111
从而得到双向扩散加密后的低位数值序列C2={C21,C22,...,C2i,...,C2L};
(4)转码:设定一个空字符序列C,将置乱后的高位数值序列
Figure GDA0003356051700000112
和双向扩散加密后的低位数值序列C2={C21,C22,...,C2i,...,C2L}中各对应元素依次进行如下运算,
如果
Figure GDA0003356051700000113
首先判断,如果
Figure GDA0003356051700000114
且(C2i+161)≥250,那么在字符序列C中添加1个空格,即C=[C,”],并设
Figure GDA0003356051700000115
然后利用native2unicode(·)函数将数值数据
Figure GDA0003356051700000116
转换为单个汉字,并添加到字符序列C中,即
Figure GDA0003356051700000117
如果
Figure GDA0003356051700000118
直接利用char(·)函数将数值数据(C2i+33)转换为单个ASCII码字符,并添加到字符序列C中,即C=[C,char(C2i+33)]
从而得到字符序列C,即为该段字符串的加密密文,其中序列C的长度为
Figure GDA0003356051700000119
Figure GDA00033560517000001110
如图1所示,一种字符串的解密方法,包括如下几个步骤:
(1)转码:将某段待解密字符串密文
Figure GDA00033560517000001111
逐个字符转换成数值型数据,得到高位数值序列
Figure GDA00033560517000001112
和低位数值序列
Figure GDA00033560517000001113
具体转换关系表述如下:
首先将某段待解密字符串密文
Figure GDA00033560517000001114
中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可用[Ri1,Ri2]表示;
然后将数值型数据[Ri1,Ri2]对应组合,得到高位数值序列
Figure GDA00033560517000001115
和低位数值序列
Figure GDA0003356051700000121
其中
Figure GDA0003356051700000122
接着逐个检查低位数值序列R2中是否有Ri2=32的元素,如果是,则将对应高位数值序列R1中后一元素Ri+11数值加1,并删除该数值为32的元素Ri2和其对应高位数值序列R1中的元素Ri1
最后得到高位数值序列
Figure GDA0003356051700000123
和低位数值序列
Figure GDA0003356051700000124
其中数值序列R1、R2的长度为
Figure GDA0003356051700000125
某段待解密字符串密文
Figure GDA0003356051700000126
的长度为
Figure GDA0003356051700000127
(2)高位数值序列的反置乱:
首先利用外部解密密钥
Figure GDA0003356051700000128
按照如下所示公式分别计算得到混沌系统的初始迭代步数
Figure GDA0003356051700000129
和抽取间隔
Figure GDA00033560517000001210
Figure GDA00033560517000001211
Figure GDA00033560517000001212
然后令初值
Figure GDA00033560517000001213
和参数
Figure GDA00033560517000001214
对倾斜帐篷混沌系统(公式如下)进行迭代,k表示迭代次数,
Figure GDA00033560517000001215
表示第k次迭代得到的混沌信号,其中k=1,2,...,
Figure GDA00033560517000001216
得到混沌序列
Figure GDA00033560517000001217
从第
Figure GDA00033560517000001218
个元素开始每隔
Figure GDA00033560517000001219
个元素取1个,从而形成长度为
Figure GDA00033560517000001220
的混沌序列
Figure GDA00033560517000001221
最后将混沌序列
Figure GDA00033560517000001222
按升序排序,根据序列
Figure GDA00033560517000001223
排序前、后的位置变化置乱规则,对高位数值序列
Figure GDA00033560517000001224
进行反置乱,得到反置乱后的高位数值序列
Figure GDA00033560517000001225
(3)低位数值序列的双向扩散解密:
首先,进行低位数值序列的逆向扩散解密
利用外部解密密钥
Figure GDA00033560517000001226
按照如下公式计算得到混沌系统的初始迭代步数
Figure GDA00033560517000001227
Figure GDA00033560517000001228
从混沌序列
Figure GDA00033560517000001229
中抽取第
Figure GDA00033560517000001230
个元素,作为倾斜帐篷混沌系统的初值
Figure GDA00033560517000001231
同时得到倾斜帐篷混沌系统的参数
Figure GDA0003356051700000131
Figure GDA0003356051700000132
对低位数值序列
Figure GDA0003356051700000133
中每个元素Ri2,其中
Figure GDA0003356051700000134
依次进行如下操作:
①由初值
Figure GDA0003356051700000135
和参数
Figure GDA0003356051700000136
对倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure GDA0003356051700000137
同时对混沌信号
Figure GDA0003356051700000138
进行如下整数化处理,得到混沌信号
Figure GDA0003356051700000139
Figure GDA00033560517000001310
②利用混沌信号
Figure GDA00033560517000001311
对数据Ri2按照如下公式(15)进行逆向扩散解密,得到逆向扩散解密数据
Figure GDA00033560517000001312
Figure GDA00033560517000001313
其中,
Figure GDA00033560517000001314
和R′02为逆向扩散解密密钥,
③根据低位数值序列中元素Ri2、Ri-12对应的数值R′i2、R′i-12,以及
Figure GDA00033560517000001315
对倾斜帐篷混沌系统的参数
Figure GDA00033560517000001316
按照如下公式(16)进行调整,
Figure GDA00033560517000001317
从而得到逆向扩散解密后的低位数值序列
Figure GDA00033560517000001318
然后,进行低位数值序列的正向扩散解密
利用外部解密密钥
Figure GDA00033560517000001319
按照如下公式计算得到混沌系统的初始迭代步数
Figure GDA00033560517000001320
Figure GDA00033560517000001321
从混沌序列
Figure GDA00033560517000001322
中抽取第
Figure GDA00033560517000001323
个元素,作为倾斜帐篷混沌系统的初值
Figure GDA00033560517000001324
同时得到倾斜帐篷混沌系统的参数
Figure GDA00033560517000001325
Figure GDA00033560517000001326
对逆向扩散解密后的低位数值序列
Figure GDA00033560517000001327
中每个元素D1i,其中
Figure GDA00033560517000001328
依次进行如下操作:
①由初值
Figure GDA00033560517000001329
和参数
Figure GDA00033560517000001330
对如公式(12)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure GDA00033560517000001331
同时对混沌信号
Figure GDA00033560517000001332
进行如下整数化处理,得到混沌信号
Figure GDA00033560517000001333
Figure GDA0003356051700000141
②利用混沌信号
Figure GDA0003356051700000142
对数据D1i进行如下正向扩散解密,得到双向扩散解密数据D2i
Figure GDA0003356051700000143
其中,
Figure GDA0003356051700000144
和D10为正向扩散解密密钥,
③根据正向扩散解密数据D1i,以及D1i-1
Figure GDA0003356051700000145
对倾斜帐篷混沌系统的参数
Figure GDA0003356051700000146
进行如下调整,
Figure GDA0003356051700000147
从而得到双向扩散解密后的低位数值序列
Figure GDA0003356051700000148
(4)转码:设定一个空字符串PP,将反置乱后的高位数值序列
Figure GDA0003356051700000149
和双向扩散解密后的低位数值序列
Figure GDA00033560517000001410
中对应元素依次进行数值与字符的转换,具体转换关系表述如下,
如果
Figure GDA00033560517000001411
如果
Figure GDA00033560517000001412
且D2i≥250,那么在字符序列PP中添加1个空格,即PP=[PP,”];否则利用native2unicode(·)函数将数值数据
Figure GDA00033560517000001413
转换为单个汉字,并添加到字符序列PP中,即
Figure GDA00033560517000001414
如果
Figure GDA00033560517000001415
直接利用char(·)函数将数值数据(D2i)转换为单个ASCII码字符,并添加到字符序列PP中,即PP=[PP,char(D2i)]。
从而得到字符序列PP,即为该段密文解密后恢复的字符串,其中字符序列PP的长度为
Figure GDA00033560517000001416
下面结合具体的实施例对本发明作进一步说明:
实施例1
按照上述具体实施方式中一种字符串的加密方法,步骤如下:
(1)将某段字符串“字符串加解密111111aaaaaa”逐个字符转换成数值型数据,得到高位数值序列P1={215,183,180,188,189,195,0,0,0,0,0,0,0,0,0,0,0,0}和低位数值序列P2={214,251,174,211,226,220,49,49,49,49,49,49,97,97,97,97,97,97},其中数值序列P1、P2的长度与该段字符串的长度一致,记为L=18;
(2)首先利用外部加密密钥(α=0.12345、β=0.75),根据上述具体实施方式中一种字符串的加密方法步骤(2)中公式进行计算,得到混沌系统的初始迭代步数(m1)和抽取间隔(n1),
m1=513+25=538
n1=9+1=10
然后令初值x1=α=0.12345和参数μ=β=0.75,上述具体实施方式中一种字符串的加密方法步骤(2)中所示的倾斜帐篷混沌系统进行迭代,得到混沌序列X,从第538个元素开始每隔10个元素取1个,从而形成长度为L=18的混沌序列Y={0.722203285427244,0.890875205023236,0.074566505410670,0.027605142635845,0.490204576614745,0.736737938553961,0.706512185278734,0.160908579611954,0.909369772129020,0.010038655637092,0.178263702574469,0.045578446993861,0.809369602110701,0.830644585500888,0.781903572849237,0.654761047957817,0.428568530673860,0.790729026121181},
最后将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则{10,4,12,3,8,11,17,5,16,7,1,6,15,18,13,14,2,9},对高位数值序列P1={215,183,180,188,189,195,0,0,0,0,0,0,0,0,0,0,0,0}进行置乱,得到置乱后的高位数值序列
Figure GDA0003356051700000151
Figure GDA0003356051700000152
(3)首先,进行低位数值序列的正向扩散加密
利用外部加密密钥(α=0.12345、β=0.75),根据上述具体实施方式中一种字符串的加密方法步骤(3)中公式进行计算,得到混沌系统的初始迭代步数(m2),
m2=432+48=480
从混沌序列X中抽取第480个元素,作为倾斜帐篷混沌系统的初值
Figure GDA0003356051700000153
同时得到倾斜帐篷混沌系统的参数(μ1=0.75),
对低位数值序列P2={P12,P22,...,Pi2,....,P182}={214,251,174,211,226,220,49,49,49,49,49,49,97,97,97,97,97,97}中每个元素Pi2,依次进行上述具体实施方式中一种字符串的加密方法步骤(3)中公式所示的倾斜帐篷混沌系统单次迭代、整数化处理、正向扩散加密和倾斜帐篷混沌系统参数μ1调整等操作,其中取正向扩散加密密钥Y10=46和C10=26,从而得到正向扩散加密后的低位数值序列C1={59,32,0,6,86,62,52,43,12,42,44,26,18,93,34,39,16,71};
然后,进行低位数值序列的逆向扩散加密
利用外部加密密钥(α=0.12345、β=0.75),根据上述具体实施方式中一种字符串的加密方法步骤(3)中公式进行计算,得到混沌系统的初始迭代步数(m3),
m3=543+50=593
从混沌序列X中抽取第593个元素,作为倾斜帐篷混沌系统的初值
Figure GDA0003356051700000161
同时得到倾斜帐篷混沌系统的参数(μ2=0.75),
对低位数值序列C1={C11,C12,...,C1i,....,C118}={59,32,0,6,86,62,52,43,12,42,44,26,18,93,34,39,16,71}中每个元素C1i,依次进行上述具体实施方式中一种字符串的加密方法步骤(3)中公式所示的倾斜帐篷混沌系统单次迭代、整数化处理、逆向扩散加密和倾斜帐篷混沌系统参数μ2调整等操作,其中取逆向扩散加密密钥Y20=56和C20=36,从而得到双向扩散加密后的低位数值序列C2={82,71,64,49,26,63,31,10,61,26,18,6,67,63,33,22,22,3};
(4)将置乱后的高位数值序列
Figure GDA0003356051700000162
Figure GDA0003356051700000163
和双向扩散加密后的低位数值序列C2={82,71,64,49,26,63,31,10,61,26,18,6,67,63,33,22,22,3}中各对应元素依次进行数值与字符的转换,从而得到字符串密文C为“s艰a匆;`@将^;壮莽d`B7贩$”。
按照上述具体实施方式中一种字符串的解密方法,步骤如下:
(1)将某段待解密密文“s艰a匆;`@将^;壮莽d`B7贩$”逐个字符转换成数值型数据,得到高位数值序列R1={0,188,0,180,0,0,0,189,0,0,215,195,0,0,0,0,183,0}和低位数值序列R2={115,232,97,210,59,96,64,171,94,59,179,167,100,96,66,55,183,36};
(2)首先利用外部解密密钥
Figure GDA0003356051700000164
根据上述具体实施方式中一种字符串的解密方法步骤(2)中公式进行计算,得到倾斜帐篷混沌系统的初始迭代步数
Figure GDA0003356051700000165
和抽取间隔
Figure GDA0003356051700000166
Figure GDA0003356051700000171
Figure GDA0003356051700000172
然后令初值
Figure GDA0003356051700000173
和参数
Figure GDA0003356051700000174
上述具体实施方式中一种字符串的解密方法步骤(2)中所示的倾斜帐篷混沌系统进行迭代,得到混沌序列
Figure GDA0003356051700000175
从第538个元素开始每隔10个元素取1个,从而形成长度为
Figure GDA0003356051700000176
的混沌序列
Figure GDA0003356051700000177
Figure GDA0003356051700000178
最后将混沌序列
Figure GDA0003356051700000179
按升序排序,根据序列
Figure GDA00033560517000001710
排序前、后的位置变化置乱规则{10,4,12,3,8,11,17,5,16,7,1,6,15,18,13,14,2,9},对高位数值序列R1={0,188,0,180,0,0,0,189,0,0,215,195,0,0,0,0,183,0}进行反置乱,得到反置乱后的高位数值序列
Figure GDA00033560517000001711
Figure GDA00033560517000001712
(3)首先,进行低位数值序列的逆向扩散解密
利用外部解密密钥
Figure GDA00033560517000001713
根据上述具体实施方式中一种字符串的解密方法步骤(3)中公式进行计算,计算得到混沌系统的初始迭代步数
Figure GDA00033560517000001714
Figure GDA00033560517000001715
从混沌序列
Figure GDA00033560517000001716
中抽取第593个元素,作为倾斜帐篷混沌系统的初值
Figure GDA00033560517000001717
同时得到倾斜帐篷混沌系统的参数
Figure GDA00033560517000001718
对低位数值序列R2={R12,R22,...,Ri2,....,R182}={115,232,97,210,59,96,64,171,94,59,179,167,100,96,66,55,183,36}中每个元素Ri2,其中i=1,2,3,...,18,依次进行上述具体实施方式中一种字符串的解密方法步骤(3)中公式所示的倾斜帐篷混沌系统单次迭代、整数化处理、逆向扩散解密和倾斜帐篷混沌系统参数
Figure GDA00033560517000001719
调整等操作,其中取逆向扩散解密密钥
Figure GDA00033560517000001720
和R′02=36,从而得到双向扩散解密后的低位数值序列D1={59,32,0,6,86,62,52,43,12,42,44,26,18,93,34,39,16,71};
然后,进行低位数值序列的正向扩散解密
利用外部解密密钥
Figure GDA00033560517000001721
根据上述具体实施方式中一种字符串的解密方法步骤(3)中公式进行计算,得到混沌系统的初始迭代步数
Figure GDA00033560517000001722
Figure GDA0003356051700000181
从混沌序列
Figure GDA0003356051700000182
中抽取第480个元素,作为倾斜帐篷混沌系统的初值
Figure GDA0003356051700000183
同时得到倾斜帐篷混沌系统的参数
Figure GDA0003356051700000184
对逆向扩散解密后的低位数值序列D1={D11,D12,...,D1i,...,D118}={59,32,0,6,86,62,52,43,12,42,44,26,18,93,34,39,16,71}中每个元素D1i,依次进行上述具体实施方式中一种字符串的解密方法步骤(3)中公式所示的倾斜帐篷混沌系统单次迭代、整数化处理、正向扩散解密和倾斜帐篷混沌系统参数
Figure GDA0003356051700000185
调整等操作,其中取正向扩散解密密钥
Figure GDA0003356051700000186
和D10=26,从而得到双向扩散解密后的低位数值序列D2={214,251,174,211,226,220,49,49,49,49,49,49,97,97,97,97,97,97};
(4)将反置乱后的高位数值序列
Figure GDA0003356051700000187
和双向扩散解密后的低位数值序列D2,进行数值与字符的转换,得到字符序列PP,即为该段密文解密后恢复的字符串为“字符串加解密111111aaaaaa”。
实施例2
按照上述一种字符串的加密方法,某段待加密字符串为“字符串加解密111111aaaaaa”,一种字符串的加密步骤与具体实施例1相似,仅加密密钥发生细微变化:α=0.12345000000001;或β=0.75000000000001;或Y10=45;或C10=27;或Y20=55;或C20=37,字符串加密结果如表1所示。由表1可知,加密密钥的细微变化会引起字符串加密密文发生很大的变化,由此可见本专利所提一种字符串的加密方法对加密密钥具有敏感性。
表1外部加密密钥发生微变时,字符串加密结果
Figure GDA0003356051700000188
Figure GDA0003356051700000191
实施例3
按上述一种字符串的加密方法,其加密步骤与具体实施例1相似,仅某段待加密字符串(“字符串加解密111111aaaaaa”)发生细微变化:“子符串加解密111111aaaaaa”;或“字符串加解蜜111111aaaaaa”;或“字符串加解密211111aaaaaa”;或“字符串加解密111112aaaaaa”;或“字符串加解密111111baaaaa”;或“字符串加解密111111aaaaab”,字符串加密结果如表2所示。由表2可见:待加密字符串平文信息的细微变化会引起加密密文的“面目全非”,由此可见本专利所提一种字符串加密方法对待加密字符串的平文信息具有敏感性。
表2待加密字符串发生微变时,字符串加密结果
Figure GDA0003356051700000192
Figure GDA0003356051700000201
Figure GDA0003356051700000211
由上述具体实施例2、3分析可知,本专利所提一种字符串加密方法所生成的字符串密文不仅与加密密钥密切相关,而且依赖于待加密字符串平文信息,因此本专利所提一种字符串加密方法可抵抗已知/选择明文攻击,具有很强的安全性。
实施例4
按照上述一种字符串的解密方法,某段待解密密文为“s艰a匆;`@将^;壮莽d`B7贩$”,一种字符串的解密步骤与具体实施例1相似,仅解密密钥发生细微变化:
Figure GDA0003356051700000212
Figure GDA0003356051700000213
Figure GDA0003356051700000214
或D10=27;或
Figure GDA0003356051700000215
或R′02=37,字符串密文解密结果如表3所示。由表3可知,解密密钥的细微变化会引起密文解密结果发生很大的变化,恢复出的字符串将是无用信息,由此可见本专利所提一种字符串的解密方法对解密密钥具有敏感性。
表3外部解密密钥发生微变时,密文解密结果
Figure GDA0003356051700000216
Figure GDA0003356051700000221
实施例5
按照上述一种字符串的解密方法,其解密步骤与具体实施例1相似,仅某段待解密字符串密文(“s艰a匆;`@将^;壮莽d`B7贩$”)发生细微变化:“S艰a匆;`@将^;壮莽d`B7贩$”;或“s艰a匆:`@将^;壮莽d`B7贩$”;或“s艰a匆;`@讲^;壮莽d`B7贩$”;或“s艰a匆;`@将^;壮莽c`B7贩$”;或“s艰a匆;`@将^;壮莽d`B7饭$”;或“s艰a匆;`@将^;壮莽d`B7贩&”;或“艰sa匆;`@将^;壮莽d`B7贩$”;或“s艰a匆;`@将^;壮莽d`B7$贩”,字符串解密结果如表4所示。由表4可知,待解密字符串密文的细微变化会引起密文解密结果发生很大的变化,难以恢复出原始的字符串,由此可见本专利所提一种字符串解密方法可抵抗唯密文攻击。
表4待解密字符串密文发生微变时,密文解密结果
Figure GDA0003356051700000222
Figure GDA0003356051700000231
Figure GDA0003356051700000241

Claims (6)

1.一种字符串的加密方法,其特征在于,包括如下几个步骤:
(1)转码:将某段字符串逐个字符转换为数值型数据,得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},其中数值序列P1、P2的长度与该段字符串的长度一致,记为L;
(2)高位数值序列的置乱:
首先利用外部加密密钥(α、β),按照如下所示公式(1)分别计算得到混沌系统的初始迭代步数m1和抽取间隔n1
Figure FDA0003356051690000011
然后令初值x1=α和参数μ=β,对如下公式(2)所示的倾斜帐篷混沌系统进行迭代,k表示迭代次数,xk+1表示第k次迭代得到的混沌信号,其中k=1,2,...,
Figure FDA0003356051690000012
得到混沌序列X,从第m1个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y,
最后将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对高位数值序列P1={P11,P21,...,Pi1,....,PL1}进行置乱,得到置乱后的高位数值序列
Figure FDA0003356051690000013
(3)低位数值序列的双向扩散加密:
首先,进行低位数值序列的正向扩散加密
利用外部加密密钥(α、β),按照如下所示公式(3)计算得到混沌系统的初始迭代步数m2
Figure FDA0003356051690000014
从混沌序列X中抽取第m2个元素,作为倾斜帐篷混沌系统的初值
Figure FDA0003356051690000015
同时得到倾斜帐篷混沌系统的参数μ1,即μ1=β,
对低位数值序列P2={P12,P22,...,Pi2,....,PL2}中每个元素Pi2,其中i=1,2,3,...,L,依次进行如下操作:
①由初值
Figure FDA0003356051690000021
和参数μ1,对如公式(2)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure FDA0003356051690000022
同时对混沌信号
Figure FDA0003356051690000023
按照如下公式(4)进行整数化处理,得到混沌信号Y1i
Figure FDA0003356051690000024
②利用混沌信号Y1i对数据Pi2按照如下公式(5)进行正向扩散加密,得到正向扩散加密密文C1i
Figure FDA0003356051690000025
其中,Y10和C10为正向扩散加密密钥,
③根据正向扩散加密密文C1i,以及C1i-1和Y1i-1,对倾斜帐篷混沌系统的参数μ1按照如下公式(6)进行调整,
Figure FDA0003356051690000026
从而得到正向扩散加密后的低位数值序列C1={C11,C12,...,C1i,...,C1L};
然后,进行低位数值序列的逆向扩散加密
利用外部加密密钥(α、β),按照如下所示公式(7)计算得到混沌系统的初始迭代步数m3
Figure FDA0003356051690000027
从混沌序列X中抽取第m3个元素,作为倾斜帐篷混沌系统的初值
Figure FDA00033560516900000212
同时得到倾斜帐篷混沌系统的参数μ2,即μ2=β,
对正向扩散加密后的低位数值序列C1={C11,C12,...,C1i,...,C1L}中每个元素C1i,其中i=1,2,3,...,L,依次进行如下操作:
①由初值
Figure FDA0003356051690000028
和参数μ2,对如公式(2)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure FDA0003356051690000029
同时对混沌信号
Figure FDA00033560516900000210
按照如下公式(8)进行整数化处理,得到混沌信号Y2i
Figure FDA00033560516900000211
②利用混沌信号Y2i对数据C1i按照如下公式(9)进行逆向扩散加密,得到双向扩散加密密文C2i
Figure FDA0003356051690000031
其中,Y20和C20为逆向扩散加密密钥,
③根据双向扩散加密密文C2i,以及C2i-1和Y2i-1,对倾斜帐篷混沌系统的参数μ2按照如下公式(10)进行调整,
Figure FDA0003356051690000032
从而得到双向扩散加密后的低位数值序列C2={C21,C22,...,C2i,...,C2L};
(4)转码:将置乱后的高位数值序列
Figure FDA0003356051690000033
和双向扩散加密后的低位数值序列C2,进行数值与字符的转换,得到字符序列C,即为该段字符串的加密密文,其中序列C的长度为
Figure FDA0003356051690000034
Figure FDA0003356051690000035
2.根据权利要求1所述的一种字符串的加密方法,其特征在于:步骤(1)中所述的将某段字符串逐个字符转换为数值型数据,其中某段字符串包括,除空格以外的可显示ASCII码字符,以及GB2312字符集中双字节编码的6763个汉字;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可以用[Pi1,Pi2]表示,相应的数据组合得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2}。
3.根据权利要求1所述的一种字符串的加密方法,其特征在于:步骤(4)中所述的将置乱后的高位数值序列
Figure FDA0003356051690000036
和双向扩散加密后的低位数值序列C2,进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列C,将置乱后的高位数值序列
Figure FDA0003356051690000037
和双向扩散加密后的低位数值序列C2={C21,C22,...,C2i,...,C2L}中各对应元素依次进行如下运算,
如果
Figure FDA0003356051690000038
首先判断,如果
Figure FDA0003356051690000041
且(C2i+161)≥250,那么在字符序列C中添加1个空格,即C=[C,''],并设
Figure FDA0003356051690000042
然后利用native2unicode(·)函数将数值数据
Figure FDA0003356051690000043
转换为单个汉字,并添加到字符序列C中,即
Figure FDA0003356051690000044
如果
Figure FDA0003356051690000045
直接利用char(·)函数将数值数据(C2i+33)转换为单个ASCII码字符,并添加到字符序列C中,即C=[C,char(C2i+33)]。
4.一种字符串的解密方法,其特征在于,包括如下几个步骤:
(1)转码:将某段待解密字符串密文
Figure FDA0003356051690000046
逐个字符转换成数值型数据,得到高位数值序列
Figure FDA0003356051690000047
和低位数值序列
Figure FDA0003356051690000048
其中数值序列R1、R2的长度为
Figure FDA0003356051690000049
某段待解密字符串密文
Figure FDA00033560516900000410
的长度为
Figure FDA00033560516900000427
(2)高位数值序列的反置乱:
首先利用外部解密密钥
Figure FDA00033560516900000411
按照如下所示公式(11)分别计算得到混沌系统的初始迭代步数
Figure FDA00033560516900000412
和抽取间隔
Figure FDA00033560516900000413
Figure FDA00033560516900000414
然后令初值
Figure FDA00033560516900000415
和参数
Figure FDA00033560516900000416
对如下公式(12)所示的倾斜帐篷混沌系统进行迭代,k表示迭代次数,
Figure FDA00033560516900000417
表示第k次迭代得到的混沌信号,其中k=1,2,...,
Figure FDA00033560516900000418
得到混沌序列
Figure FDA00033560516900000419
从第
Figure FDA00033560516900000420
个元素开始每隔
Figure FDA00033560516900000421
个元素取1个,从而形成长度为
Figure FDA00033560516900000422
的混沌序列
Figure FDA00033560516900000423
最后将混沌序列
Figure FDA00033560516900000424
按升序排序,根据序列
Figure FDA00033560516900000425
排序前、后的位置变化置乱规则,对高位数值序列
Figure FDA00033560516900000426
进行反置乱,得到反置乱后的高位数值序列
Figure FDA0003356051690000051
(3)低位数值序列的双向扩散解密:
首先,进行低位数值序列的逆向扩散解密
利用外部解密密钥
Figure FDA0003356051690000052
按照如下所示公式(13)计算得到混沌系统的初始迭代步数
Figure FDA0003356051690000053
Figure FDA0003356051690000054
从混沌序列
Figure FDA0003356051690000055
中抽取第
Figure FDA0003356051690000056
个元素,作为倾斜帐篷混沌系统的初值
Figure FDA0003356051690000057
同时得到倾斜帐篷混沌系统的参数
Figure FDA0003356051690000058
Figure FDA0003356051690000059
对低位数值序列
Figure FDA00033560516900000510
中每个元素Ri2,其中
Figure FDA00033560516900000511
依次进行如下操作:
①由初值
Figure FDA00033560516900000512
和参数
Figure FDA00033560516900000513
对如公式(12)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure FDA00033560516900000514
同时对混沌信号
Figure FDA00033560516900000515
按照如下公式(14)进行整数化处理,得到混沌信号
Figure FDA00033560516900000516
Figure FDA00033560516900000517
②利用混沌信号
Figure FDA00033560516900000518
对数据Ri2按照如下公式(15)进行逆向扩散解密,得到逆向扩散解密数据
Figure FDA00033560516900000519
Figure FDA00033560516900000520
其中,
Figure FDA00033560516900000521
和R′02为逆向扩散解密密钥,
③根据低位数值序列中元素Ri2、Ri-12对应的数值R′i2、R′i-12,以及
Figure FDA00033560516900000522
对倾斜帐篷混沌系统的参数
Figure FDA00033560516900000523
按照如下公式(16)进行调整,
Figure FDA00033560516900000524
从而得到逆向扩散解密后的低位数值序列
Figure FDA00033560516900000525
然后,进行低位数值序列的正向扩散解密
利用外部解密密钥
Figure FDA00033560516900000526
按照如下所示公式(17)计算得到混沌系统的初始迭代步数
Figure FDA0003356051690000061
Figure FDA0003356051690000062
从混沌序列
Figure FDA0003356051690000063
中抽取第
Figure FDA0003356051690000064
个元素,作为倾斜帐篷混沌系统的初值
Figure FDA0003356051690000065
同时得到倾斜帐篷混沌系统的参数
Figure FDA0003356051690000066
Figure FDA0003356051690000067
对逆向扩散解密后的低位数值序列
Figure FDA0003356051690000068
中每个元素D1i,其中
Figure FDA0003356051690000069
依次进行如下操作:
①由初值
Figure FDA00033560516900000610
和参数
Figure FDA00033560516900000611
对如公式(12)所示倾斜帐篷混沌系统进行单次迭代,得到混沌信号
Figure FDA00033560516900000612
同时对混沌信号
Figure FDA00033560516900000613
按照如下公式(18)进行整数化处理,得到混沌信号
Figure FDA00033560516900000614
Figure FDA00033560516900000615
②利用混沌信号
Figure FDA00033560516900000616
对数据D1i按照如下公式(19)进行正向扩散解密,得到双向扩散解密数据D2i
Figure FDA00033560516900000617
其中,
Figure FDA00033560516900000618
和D10为正向扩散解密密钥,
③根据正向扩散解密数据D1i,以及D1i-1
Figure FDA00033560516900000619
对倾斜帐篷混沌系统的参数
Figure FDA00033560516900000620
按照如下公式(20)进行调整,
Figure FDA00033560516900000621
从而得到双向扩散解密后的低位数值序列
Figure FDA00033560516900000622
(4)转码:将反置乱后的高位数值序列
Figure FDA00033560516900000623
和双向扩散解密后的低位数值序列D2,进行数值与字符的转换,得到字符序列PP,即为该段待解密字符串解密后恢复的字符串,其中字符序列PP的长度为
Figure FDA00033560516900000624
5.根据权利要求4所述的一种字符串的解密方法,其特征在于:步骤(1)中所述的将某段待解密字符串密文
Figure FDA00033560516900000625
逐个字符转换成数值型数据,得到高位数值序列
Figure FDA00033560516900000626
和低位数值序列
Figure FDA00033560516900000627
其转换关系表述如下:
首先将某段待解密字符串密文C中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可用[Ri1,Ri2]表示;
然后将数值型数据[Ri1,Ri2]对应组合,得到高位数值序列
Figure FDA0003356051690000071
和低位数值序列
Figure FDA0003356051690000072
其中
Figure FDA0003356051690000073
接着逐个检查低位数值序列R2中是否有Ri2=32的元素,如果是,则将对应高位数值序列R1中后一元素Ri+11数值加1,并删除该数值为32的元素Ri2和其对应高位数值序列R1中的元素Ri1
最后得到高位数值序列
Figure FDA0003356051690000074
和低位数值序列
Figure FDA0003356051690000075
6.根据权利要求4所述的一种字符串的解密方法,其特征在于:步骤(4)中所述的将反置乱后的高位数值序列
Figure FDA0003356051690000076
和双向扩散解密后的低位数值序列D2,进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列PP,将反置乱后的高位数值序列
Figure FDA0003356051690000077
和双向扩散解密后的低位数值序列
Figure FDA0003356051690000078
中对应元素依次进行如下运算,
如果
Figure FDA0003356051690000079
如果
Figure FDA00033560516900000710
且D2i≥250,那么在字符序列PP中添加1个空格,即PP=[PP,''];
否则利用native2unicode(·)函数将数值数据
Figure FDA00033560516900000711
转换为单个汉字,并添加到字符序列PP中,即
Figure FDA00033560516900000712
如果
Figure FDA00033560516900000713
直接利用char(·)函数将数值数据(D2i)转换为单个ASCII码字符,并添加到字符序列PP中,即PP=[PP,char(D2i)]。
CN201910215951.3A 2019-03-21 2019-03-21 一种字符串的加密方法和解密方法 Active CN109981246B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910215951.3A CN109981246B (zh) 2019-03-21 2019-03-21 一种字符串的加密方法和解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910215951.3A CN109981246B (zh) 2019-03-21 2019-03-21 一种字符串的加密方法和解密方法

Publications (2)

Publication Number Publication Date
CN109981246A CN109981246A (zh) 2019-07-05
CN109981246B true CN109981246B (zh) 2021-12-17

Family

ID=67079846

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910215951.3A Active CN109981246B (zh) 2019-03-21 2019-03-21 一种字符串的加密方法和解密方法

Country Status (1)

Country Link
CN (1) CN109981246B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457949A (zh) * 2019-08-14 2019-11-15 于向东 一种基于数据字典的保持唯一性、完整性、关联性的数据脱敏方法
CN110650005B (zh) * 2019-09-17 2022-02-01 南通大学 一种中英文字符串加密方法
CN114500035B (zh) * 2022-01-24 2023-06-23 杭州天宽科技有限公司 一种基于服务数据共享云平台的数据加密系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486073A (zh) * 2014-12-23 2015-04-01 南通大学 一种字符型数据的加密、解密方法
CN109472338A (zh) * 2018-11-19 2019-03-15 南通大学 一种商品防伪二维码的批量生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532701B (zh) * 2013-10-16 2014-09-10 南通纺织职业技术学院 一种数值型数据的加密、解密方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104486073A (zh) * 2014-12-23 2015-04-01 南通大学 一种字符型数据的加密、解密方法
CN109472338A (zh) * 2018-11-19 2019-03-15 南通大学 一种商品防伪二维码的批量生成方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A novel bit-level image encryption scheme using hyper-chaotic systems;Suying Sheng,Xinhua Wu;《IEEE》;20130725;全文 *
A novel chaos-based image encryption scheme using coupled map lattices;Xinhua Wu;《IEEE》;20130725;全文 *
基于斜帐篷混沌映射和Arnold变换的图像加密方案;李春虎等;《计算机应用研究》;20171115(第11期);全文 *
基于有限状态斜帐篷映射的图像加密算法;张子振;《湖南理工学院学报(自然科学版)》;20101215;全文 *
基于混沌序列置乱与扩散变换的彩色数字图像加密算法;张芳君等;《软件导刊》;20180905;全文 *

Also Published As

Publication number Publication date
CN109981246A (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
CN109995504B (zh) 一种字符串的加密和解密方法
CN109981245B (zh) 一种字符串的加密、解密方法
CN109981246B (zh) 一种字符串的加密方法和解密方法
CN109547663B (zh) 一种结合密码学的改进lsb图像隐写方法
Abdulzahra et al. Combining cryptography and steganography for data hiding in images
Sinha et al. Encrypted information hiding using audio steganography and audio cryptography
CN110011783A (zh) 一种汉字的加密、解密方法
CN114157772B (zh) 一种基于时空混沌系统和半张量积压缩感知的数字图像加密方法
Su et al. A robust visual image encryption scheme based on controlled quantum walks
Miss et al. Fuzzy logic based image encryption for confidential data transfer using (2, 2) secret sharing scheme
Bandekar et al. LSB based text and image steganography using AES algorithm
Kundu et al. A secure approach to audio steganography
CN116192360A (zh) 一种基于2d压缩感知的非对称视觉有意义图像加密方法
CN110278066B (zh) 一种中文字符串的加密、解密方法
Alghamdi et al. A secure iris image encryption technique using bio-chaotic algorithm
CN110287713B (zh) 一种中文字符串的加密方法和解密方法
Sivakumar et al. Generation of random key stream using word grid puzzle for the applications of cryptography
Alghamdi et al. Bio-chaotic stream cipher-based iris image encryption
Mishra et al. Image encryption technique based on chaotic system and hash function
Barakat et al. Securing Digital Image using Modified Chaotic Logistic Key
Sharma et al. Steganography techniques using cryptography-a review paper
Bremnavas et al. Medical image security using LSB and chaotic logistic map
Mangi et al. Encrypting of text based on chaotic map
Zyara Suggested Method for Encryption and Hiding‎ Image using LCG and LSB
CN109409143B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240808

Address after: Room 607-608, building 2, 58 Chongchuan Road, Chongchuan District, Nantong City, Jiangsu Province, 226000

Patentee after: NANTONG LILIAN AUTOMATION TECHNOLOGY CO.,LTD.

Country or region after: China

Address before: 226000 No. 87 Youth Middle Road, Nantong City, Jiangsu Province

Patentee before: JIANGSU College OF ENGINEERING AND TECHNOLOGY

Country or region before: China