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

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

Info

Publication number
CN109995504A
CN109995504A CN201910215410.0A CN201910215410A CN109995504A CN 109995504 A CN109995504 A CN 109995504A CN 201910215410 A CN201910215410 A CN 201910215410A CN 109995504 A CN109995504 A CN 109995504A
Authority
CN
China
Prior art keywords
sequence
values
character
character string
low level
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.)
Granted
Application number
CN201910215410.0A
Other languages
English (en)
Other versions
CN109995504B (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.)
Hefei Minglong Electronic Technology Co ltd
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 CN201910215410.0A priority Critical patent/CN109995504B/zh
Publication of CN109995504A publication Critical patent/CN109995504A/zh
Application granted granted Critical
Publication of CN109995504B publication Critical patent/CN109995504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/001Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • 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)产生混沌序列:
首先利用外部加密密钥(α、β),按照如下所示公式分别计算得到混沌系统的初值x1、参数μ、初始迭代步数m和抽取间隔n1、n2
x1=mod(kp1+α,0.99999)+0.00001,
μ=β+mod(kp1,4-β),
其中,α∈(0,1),β∈[3.75,4),从而保证x1∈(0,1),μ∈[3.75,4),m∈[419,479]的整数,n1∈[1,23]的整数,n2∈[1,29]的整数,可见混沌系统的初值x1、参数μ、初始迭代步数m和抽取间隔n1、n2不仅与外部密钥α、β有关,而且会随着待加密的该段字符串变化;
然后由初值x1和参数μ,对如下公式所示的Logistic混沌系统进行迭代,k表示迭代次数(k=1,2,...),xk+1表示第k次迭代得到的混沌信号,
xk+1=μ×xk×(1-xk)
得到混沌序列X,从第m个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y,并从第m个元素开始每隔n2个元素取1个,从而形成长度为L的混沌序列Z;
(3)高位、低位数值序列置乱:
将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对高位数值序列P1={P11,P21,...,Pi1,....,PL1}进行置乱,得到置乱后的高位数值序列同时将混沌序列Z按升序排序,根据序列Z排序前、后的位置变化置乱规则,对低位数值序列P2={P12,P22,...,Pi2,....,PL2}进行置乱,得到置乱后的低位数值序列
(4)转码:将置乱后的高位数值序列和置乱后的低位数值序列进行数值与字符的转换,得到字符串密文C,即为该段字符串的加密密文,其中字符串密文C的长度为
进一步的,步骤(1)中所述的将某段字符串逐个字符转换为数值型数据,其中某段字符串包括,除空格以外的可显示ASCII码字符,以及GB2312字符集中双字节编码的6763个汉字;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可以用数据[Pi1,Pi2]表示,相应的数据组合得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2}。
进一步的,步骤(4)中所述的将置乱后的高位数值序列和置乱后的低位数值序列进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列C,将置乱后的高位数值序列和置乱后的低位数值序列中各对应元素依次进行如下运算,
如果
首先判断,如果那么将对应低位数值数据加128,即
然后判断,如果那么在字符序列C中添加1个空格,即C=[C,”],并设
接着利用native2unicode(·)函数将数值数据转换为单个汉字,并添加到字符序列C中,即
如果
首先判断,如果那么将对应低位数值数据减128,即
然后利用char(·)函数将数值数据转换为单个ASCII码字符,并添加到字符序列C中,即
本发明还公开了一种字符串的解密方法,包括如下几个步骤:
(1)转码:将某段待解密字符串密文逐个字符转换成数值型数据,得到高位数值序列和低位数值序列其中数值序列R1、R2的长度为某段待解密字符串密文的长度为
(2)产生混沌序列:
首先利用外部解密密钥按照如下所示公式分别计算得到混沌系统的初值参数初始迭代步数和抽取间隔
其中,从而保证的整数,的整数,的整数,可见混沌系统的初值参数初始迭代步数和抽取间隔不仅与外部密钥有关,而且会随着待解密字符串密文变化;
然后由初值和参数对如下公式所示的Logistic混沌系统进行迭代,k表示迭代次数(k=1,2,...),表示第k次迭代得到的混沌信号,
得到混沌序列从第个元素开始每隔个元素取1个,从而形成长度为的混沌序列并从第个元素开始每隔个元素取1个,从而形成长度为的混沌序列
(3)高位、低位数值序列反置乱:
将混沌序列按升序排序,根据序列排序前、后的位置变化置乱规则,对高位数值序列进行反置乱,得到反置乱后的高位数值序列同时将混沌序列按升序排序,根据序列排序前、后的位置变化置乱规则,对低位数值序列进行反置乱,得到反置乱后的低位数值序列
(4)转码:将反置乱后的高位数值序列和反置乱后的低位数值序列进行数值与字符的转换,得到字符序列PP,即为该段密文解密后恢复的字符串,其中字符序列PP的长度为
进一步的,步骤(1)中所述的将某段待解密字符串密文逐个字符转换成数值型数据,得到高位数值序列和低位数值序列其转换关系表述如下:
首先将某段待解密字符串密文中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可用数据[Ri1,Ri2]表示;
然后将各个数值型数据[Ri1,Ri2]对应组合得到高位数值序列和低位数值序列
接着逐个检查低位数值序列R2中是否有Ri2=32的元素,如果是,则将对应高位数值序列R1中后一元素Ri+1 1数值加1,并删除该数值为32的元素Ri2和对应高位数值序列R1中的元素Ri1
最后得到高位数值序列和低位数值序列
进一步的,步骤(4)中所述的将反置乱后的高位数值序列和反置乱后的低位数值序列进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列PP,将反置乱后的高位数值序列和反置乱后的低位数值序列中对应元素依次进行如下运算,
如果
首先判断,如果那么将对应低位数值数据加128,即
然后判断,如果那么在字符序列PP中添加1个空格,即PP=[PP,”];否则利用native2unicode(·)函数将数值数据转换为单个汉字,并添加到字符序列PP中,即
如果
首先判断,如果那么将对应低位数值数据减128,即
然后利用char(·)函数将数值数据转换为单个ASCII码字符,并添加到字符序列PP中,即
有益效果:本发明根据外部加密密钥以及与待加密字符串相关的混沌系统初值、参数、初始迭代步数和抽取间隔等数据,利用混沌系统所产生混沌序列排序前、后的位置变化规则,将某段字符串转化成数值序列并进行置乱以生成密文,从而保证了字符串加密与解密的安全性和可行性。
附图说明
图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)产生混沌序列:
首先利用外部加密密钥(α、β),按照如下所示公式分别计算得到混沌系统的初值(x1)、参数(μ)、初始迭代步数(m)和抽取间隔(n1、n2),
x1=mod(kp1+α,0.99999)+0.00001,
μ=β+mod(kp1,4-β)
其中,α∈(0,1),β∈[3.75,4),从而保证x1∈(0,1),μ∈[3.75,4),m∈[419,479]的整数,n1∈[1,23]的整数,n2∈[1,29]的整数,可见混沌系统的初值(x1)、参数(μ)、初始迭代步数(m)和抽取间隔(n1、n2)不仅与外部密钥α、β有关,而且会随着待加密的该段字符串变化;
然后由初值x1和参数μ,对如下公式所示的Logistic混沌系统进行迭代,k表示迭代次数(k=1,2,...),xk+1表示第k次迭代得到的混沌信号,
xk+1=μ×xk×(1-xk)
得到混沌序列X,从第m个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y,并从第m个元素开始每隔n2个元素取1个,从而形成长度为L的混沌序列Z;
(3)高位、低位数值序列置乱:
将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对高位数值序列P1={P11,P21,...,Pi1,....,PL1}进行置乱,得到置乱后的高位数值序列同时将混沌序列Z按升序排序,根据序列Z排序前、后的位置变化置乱规则,对低位数值序列P2={P12,P22,...,Pi2,....,PL2}进行置乱,得到置乱后的低位数值序列
(4)转码:设定一个空字符序列C,将置乱后的高位数值序列和置乱后的低位数值序列中各对应元素依次进行数值与字符的转换,具体转换关系表述如下,
如果
首先判断,如果那么将对应低位数值数据加128,即
然后判断,如果那么在字符序列C中添加1个空格,即C=[C,”],并设
接着利用native2unicode(·)函数将数值数据转换为单个汉字,并添加到字符序列C中,即
如果
首先判断,如果那么将对应低位数值数据减128,即
然后利用char(·)函数将数值数据转换为单个ASCII码字符,并添加到字符序列C中,即
从而得到字符串密文C,即为该段字符串的加密密文,其中字符串密文C的长度为
如图1所示,一种字符串的解密方法,包括如下几个步骤:
(1)转码:将某段待解密字符串密文逐个字符转换成数值型数据,得到高位数值序列和低位数值序列具体转换关系表述如下:
首先将某段待解密字符串密文中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可用数据[Ri1,Ri2]表示;
然后将各个数值型数据[Ri1,Ri2]对应组合得到高位数值序列和低位数值序列
接着逐个检查低位数值序列R2中是否有Ri2=32的元素,如果是,则将对应高位数值序列R1中后一元素Ri+1 1数值加1,并删除该数值为32的元素Ri2和对应高位数值序列R1中的元素Ri1
最后得到高位数值序列和低位数值序列其中数值序列R1、R2的长度为某段待解密字符串密文的长度为
(2)产生混沌序列:
首先利用外部解密密钥按照如下所示公式分别计算得到混沌系统的初值参数初始迭代步数和抽取间隔
其中,从而保证的整数,的整数,的整数,可见混沌系统的初值参数初始迭代步数和抽取间隔不仅与外部密钥有关,而且会随着待解密字符串密文变化;
然后由初值和参数对如下公式所示的Logistic混沌系统进行迭代,k表示迭代次数(k=1,2,...),表示第k次迭代得到的混沌信号,
得到混沌序列从第个元素开始每隔个元素取1个,从而形成长度为的混沌序列并从第个元素开始每隔个元素取1个,从而形成长度为的混沌序列
(3)高位、低位数值序列反置乱:
将混沌序列按升序排序,根据序列排序前、后的位置变化置乱规则,对高位数值序列进行反置乱,得到反置乱后的高位数值序列同时将混沌序列按升序排序,根据序列排序前、后的位置变化置乱规则,对低位数值序列进行反置乱,得到反置乱后的低位数值序列
(4)转码:设定一个空字符串PP,将反置乱后的高位数值序列和反置乱后的低位数值序列中对应元素依次进行数值与字符的转换,具体转换关系表述如下,
如果
首先判断,如果那么将对应低位数值数据加128,即
然后判断,如果那么在字符序列PP中添加1个空格,即PP=[PP,”];否则利用native2unicode(·)函数将数值数据转换为单个汉字,并添加到字符序列PP中,即
如果
首先判断,如果那么将对应低位数值数据减128,即
然后利用char(·)函数将数值数据转换为单个ASCII码字符,并添加到字符序列PP中,即
从而得到字符序列PP,即为该段密文解密后恢复的字符串,其中字符序列PP的长度为
下面结合具体的实施例对本发明作进一步说明:
实施例1
按照上述具体实施方式中一种字符串的加密方法,步骤如下:
(1)将某段字符串“字符串加解密111aaa”逐个转换成数值型数据,得到高位数值序列P1={215,183,180,188,189,195,0,0,0,0,0,0}和低位数值序列P2={214,251,174,211,226,220,49,49,49,97,97,97},其中数值序列P1、P2的长度与该段字符串的长度一致,记为L=12;
(2)首先利用外部加密密钥(α=0.12345、β=3.75),根据上述具体实施方式中一种字符串的加密方法步骤(2)中公式进行计算,得到混沌系统的初值(x1)、参数(μ)、初始迭代步数(m)和抽取间隔(n1、n2)为,
x1=mod(0.305555555555556+0.12345,0.99999)+0.00001=0.429015555555556,
μ=3.75+mod(0.305555555555556,0.25)=3.805555555555555,
m=419+21=440,
n1=22+1=23,
n2=13+1=14,
然后由初值x1和参数μ对上述具体实施方式中一种字符串的加密方法步骤(2)中所示的Logistic混沌系统进行迭代,得到混沌序列X,从第440个元素开始每隔23个元素取1个,从而形成长度为L=12的混沌序列Y={0.890583241596402,0.913694386774153,0.542383620002776,0.905749750780190,0.674379516544880,0.792993406641482,0.306351378857341,0.941235153403690,0.860601448837542,0.764777723972489,0.346631613465010,0.745359933400717},并从第440个元素开始每隔14个元素取1个,从而形成长度为L=12的混沌序列Z={0.890583241596402,0.505965297861060,0.327322707741922,0.934467507852149,0.612320360285809,0.324869392906346,0.556736338535452,0.933706949497245,0.272806232285981,0.205161375648756,0.588779639402925,0.178515911060263};
(3)混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则{7,11,3,5,12,10,6,9,1,4,2,8},对高位数值序列P1={215,183,180,188,189,195,0,0,0,0,0,0}进行置乱,得到置乱后的高位数值序列同时将混沌序列Z按升序排序,根据序列Z排序前、后的位置变化置乱规则{12,10,9,6,3,2,7,11,5,1,8,4},对低位数值序列P2={214,251,174,211,226,220,49,49,49,97,97,97}进行置乱,得到置乱后的低位数值序列
(4)将置乱后的高位数值序列和置乱后的低位数值序列进行数值与字符的转换,得到字符串密文C,即为该段字符串的加密密文为“aa幢杰.{帽a租贾繁S”。
按照上述具体实施方式中一种字符串的解密方法,步骤如下:
(1)将某段待解密密文“aa幢杰.{帽a租贾繁S”逐个转换成数值型数据,得到高位数值序列R1={0,0,180,189,0,0,195,0,215,188,183,0}和低位数值序列R2={97,97,177,220,46,123,177,97,226,214,177,83},其中数值序列R1、R2的长度为
(2)首先利用外部解密密钥根据上述具体实施方式中一种字符串的解密方法步骤(2)中公式进行计算,得到混沌系统的初值参数初始迭代步数和抽取间隔为,
然后由初值和参数对上述具体实施方式中一种字符串的解密方法步骤(2)中所示的Logistic混沌系统进行迭代,得到混沌序列从第440个元素开始每隔23个元素取1个,从而形成长度为的混沌序列0.913694386774153,0.542383620002776,0.905749750780190,0.674379516544880,0.792993406641482,0.306351378857341,0.941235153403690,0.860601448837542,0.764777723972489,0.346631613465010,0.745359933400717},并从第440个元素开始每隔14个元素取1个,从而形成长度为的混沌序列0.505965297861060,0.327322707741922,0.934467507852149,0.612320360285809,0.324869392906346,0.556736338535452,0.933706949497245,0.272806232285981,0.205161375648756,0.588779639402925,0.178515911060263};
(3)将混沌序列按升序排序,根据序列排序前、后的位置变化置乱规则{7,11,3,5,12,10,6,9,1,4,2,8},对高位数值序列R1={0,0,180,189,0,0,195,0,215,188,183,0}进行反置乱,得到反置乱后的高位数值序列同时将混沌序列按升序排序,根据序列排序前、后的位置变化置乱规则{12,10,9,6,3,2,7,11,5,1,8,4},对低位数值序列R2={97,97,177,220,46,123,177,97,226,214,177,83}进行反置乱,得到反置乱后的低位数值序列
(4)将反置乱后的高位数值序列和反置乱后的低位数值序列进行数值与字符的转换,得到字符序列PP,即为该段密文解密后恢复的字符串为“字符串加解密111aaa”。
实施例2
按照上述一种字符串的加密方法,某段待加密字符串为“字符串加解密111aaa”,一种字符串的加密步骤与具体实施例1相似,仅外部加密密钥发生细微变化:α=0.12345000000001;或β=3.75000000000001,字符串加密结果如表1所示。由表1可知,外部加密密钥的细微变化会引起字符串加密密文发生很大的变化,由此可见本专利所提一种字符串的加密方法对外部加密密钥具有敏感性。
表1外部加密密钥发生微变时,字符串加密结果
实施例3
按上述一种字符串的加密方法,其加密步骤与具体实施例1相似,仅某段待加密字符串(“字符串加解密111aaa”)发生细微变化:“子符串加解密111aaa”;或“字符川加解密111aaa”;或“字符串加解蜜111aaa”;或“字符串加解密211aaa”;或“字符串加解密110aaa”;或“字符串加解密111aac”,字符串加密结果如表2所示。由表2可见:待加密字符串平文信息的细微变化会引起加密密文的“面目全非”,由此可见本专利所提一种字符串加密方法对待加密字符串的平文信息具有敏感性。
表2待加密字符串发生微变时,字符串加密结果
由上述具体实施例2、3分析可知,本专利所提一种字符串加密方法所生成的字符串密文不仅与外部加密密钥密切相关,而且依赖于待加密字符串平文信息,因此本专利所提一种字符串加密方法可抵抗已知/选择明文攻击,具有很强的安全性。
实施例4
按照上述一种字符串的解密方法,某段待解密密文为“aa幢杰.{帽a租贾繁S”,一种字符串的解密步骤与具体实施例1相似,仅外部解密密钥发生细微变化:字符串密文解密结果如表3所示。由表3可知,外部解密密钥的细微变化会引起密文解密结果发生很大的变化,恢复出的字符串将是无用信息,由此可见本专利所提一种字符串的解密方法对外部解密密钥具有敏感性。
表3外部解密密钥发生微变时,密文解密结果
实施例5
按照上述一种字符串的解密方法,其解密步骤与具体实施例1相似,仅某段待解密字符串密文(“aa幢杰.{帽a租贾繁S”)发生细微变化:“ba幢杰.{帽a租贾繁S”;或“aa撞杰.{帽a租贾繁S”;或“aa幢杰,{帽a租贾繁S”;或“aa幢杰.{帽a阻贾繁S”;或“aa幢杰.{帽a租贾烦S”;或“aa幢杰.{帽a租贾繁s”,字符串解密结果如表4所示。由表4可知,待解密字符串密文的细微变化会引起密文解密结果发生很大的变化,难以恢复出原始的字符串,由此可见本专利所提一种字符串解密方法可抵抗唯密文攻击。
表4待解密字符串密文发生微变时,密文解密结果

Claims (6)

1.一种字符串的加密方法,其特征在于,包括如下几个步骤:
(1)转码:将某段字符串逐个字符转换为数值型数据,得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},其中数值序列P1、P2的长度与该段字符串的长度一致,记为L;
(2)产生混沌序列:
首先利用外部加密密钥(α、β),按照如下所示公式分别计算得到混沌系统的初值x1、参数μ、初始迭代步数m和抽取间隔n1、n2
x1=mod(kp1+α,0.99999)+0.00001,
μ=β+mod(kp1,4-β),
其中,α∈(0,1),β∈[3.75,4),从而保证x1∈(0,1),μ∈[3.75,4),m∈[419,479]的整数,n1∈[1,23]的整数,n2∈[1,29]的整数,可见混沌系统的初值x1、参数μ、初始迭代步数m和抽取间n1、n2不仅与外部密钥α、β有关,而且会随着该段待加密的字符串变化;
然后由初值x1和参数μ,对如下公式所示的Logistic混沌系统进行迭代,k表示迭代次数(k=1,2,...),xk+1表示第k次迭代得到的混沌信号,
xk+1=μ×xk×(1-xk)
得到混沌序列X,从第m个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y,并从第m个元素开始每隔n2个元素取1个,从而形成长度为L的混沌序列Z;
(3)高位、低位数值序列置乱:
将混沌序列Y按升序排序,根据序列Y排序前、后的位置变化置乱规则,对高位数值序列P1={P11,P21,...,Pi1,....,PL1}进行置乱,得到置乱后的高位数值序列同时将混沌序列Z按升序排序,根据序列Z排序前、后的位置变化置乱规则,对低位数值序列P2={P12,P22,...,Pi2,....,PL2}进行置乱,得到置乱后的低位数值序列
(4)转码:将置乱后的高位数值序列和置乱后的低位数值序列进行数值与字符的转换,得到字符串密文C,即为该段字符串的加密密文,其中字符串密文C的长度为
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)中所述的将置乱后的高位数值序列和置乱后的低位数值序列进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列C,将置乱后的高位数值序列和置乱后的低位数值序列中各对应元素依次进行如下运算,
如果
首先判断,如果那么将对应低位数值数据加128,即
然后判断,如果那么在字符序列C中添加1个空格,即C=[C,”],并设
接着利用native2unicode(·)函数将数值数据转换为单个汉字,并添加到字符序列C中,即
如果
首先判断,如果那么将对应低位数值数据减128,即
然后利用char(·)函数将数值数据转换为单个ASCII码字符,并添加到字符序列C中,即
4.一种字符串的解密方法,其特征在于,包括如下几个步骤:
(1)转码:将某段待解密字符串密文逐个字符转换成数值型数据,得到高位数值序列和低位数值序列其中数值序列R1、R2的长度为某段待解密字符串密文的长度为
(2)产生混沌序列:
首先利用外部解密密钥按照如下所示公式分别计算得到混沌系统的初值参数初始迭代步数和抽取间隔
其中,从而保证的整数,的整数,的整数,可见混沌系统的初值参数初始迭代步数和抽取间隔不仅与外部密钥有关,而且会随着待解密字符串密文变化;
然后由初值和参数对如下公式所示的Logistic混沌系统进行迭代,k表示迭代次数(k=1,2,...),表示第k次迭代得到的混沌信号,
得到混沌序列从第个元素开始每隔个元素取1个,从而形成长度为的混沌序列并从第个元素开始每隔个元素取1个,从而形成长度为的混沌序列
(3)高位、低位数值序列反置乱:
将混沌序列按升序排序,根据序列排序前、后的位置变化置乱规则,对高位数值序列进行反置乱,得到反置乱后的高位数值序列同时将混沌序列按升序排序,根据序列排序前、后的位置变化置乱规则,对低位数值序列进行反置乱,得到反置乱后的低位数值序列
(4)转码:将反置乱后的高位数值序列和反置乱后的低位数值序列进行数值与字符的转换,得到字符序列PP,即为该段密文解密后恢复的字符串,其中字符序列PP的长度为
5.根据权利要求4所述的一种字符串的解密方法,其特征在于:步骤(1)中所述的将某段待解密字符串密文逐个字符转换成数值型数据,得到高位数值序列和低位数值序列其转换关系表述如下:
首先将某段待解密字符串密文中逐个字符转换为数值数据,即采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[0,ASCII码数值数据],都可用数据[Ri1,Ri2]表示;
然后将各个数值型数据[Ri1,Ri2]对应组合得到高位数值序列和低位数值序列
接着逐个检查低位数值序列R2中是否有Ri2=32的元素,如果是,则将对应高位数值序列R1中后一元素Ri+11数值加1,并删除该数值为32的元素Ri2和对应高位数值序列R1中的元素Ri1
最后得到高位数值序列和低位数值序列
6.根据权利要求4所述的一种字符串的解密方法,其特征在于:步骤(4)中所述的将反置乱后的高位数值序列和反置乱后的低位数值序列进行数值与字符的转换,其转换关系表述如下:
设定一个空字符序列PP,将反置乱后的高位数值序列和反置乱后的低位数值序列中对应元素依次进行如下运算,
如果
首先判断,如果那么将对应低位数值数据加128,即
然后判断,如果那么在字符序列PP中添加1个空格,即PP=[PP,”];否则利用native2unicode(·)函数将数值数据转换为单个汉字,并添加到字符序列PP中,即
如果
首先判断,如果那么将对应低位数值数据减128,即
然后利用char(·)函数将数值数据转换为单个ASCII码字符,并添加到字符序列PP中,即
CN201910215410.0A 2019-03-21 2019-03-21 一种字符串的加密和解密方法 Active CN109995504B (zh)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN109995504A true CN109995504A (zh) 2019-07-09
CN109995504B CN109995504B (zh) 2022-02-08

Family

ID=67130747

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN109995504B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457949A (zh) * 2019-08-14 2019-11-15 于向东 一种基于数据字典的保持唯一性、完整性、关联性的数据脱敏方法
CN111985591A (zh) * 2020-07-24 2020-11-24 南通大学 一种基于字符串加密的商品防伪码生成方法
CN112149773A (zh) * 2020-09-16 2020-12-29 南通大学 一种基于汉字加密的商品防伪码生成方法
CN112163230A (zh) * 2020-09-16 2021-01-01 南通大学 一种汉字加密的商品防伪码生成方法
CN112183698A (zh) * 2020-09-28 2021-01-05 南通大学 一种汉字垃圾分类二维码生成方法
CN112422491A (zh) * 2020-05-08 2021-02-26 上海幻电信息科技有限公司 数字编码的加密解密方法、服务器和存储介质
CN113947096A (zh) * 2021-10-12 2022-01-18 南通大学 一种基于图片转字符串解密的商品防伪码识别方法
CN115065555A (zh) * 2022-07-28 2022-09-16 贵州电网有限责任公司 一种信息安全处理方法、系统
CN115865523A (zh) * 2023-02-14 2023-03-28 杭银消费金融股份有限公司 一种用于信息分析系统的数据加密传输方法
CN116781419A (zh) * 2023-08-15 2023-09-19 河北科乾信息技术服务有限公司 一种保密数据数据安全管理方法及系统
CN118013558A (zh) * 2024-04-08 2024-05-10 山东瑞福锂业有限公司 一种工业设备数据的存储方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130159698A1 (en) * 2011-12-19 2013-06-20 Khalifa University of Science, Technology & Research (KUSTAR) Chaotic cryptography for ofdm based communications systems
CN103532701A (zh) * 2013-10-16 2014-01-22 南通纺织职业技术学院 一种数值型数据的加密、解密方法
CN104486073A (zh) * 2014-12-23 2015-04-01 南通大学 一种字符型数据的加密、解密方法
CN106570815A (zh) * 2016-10-21 2017-04-19 广东工业大学 一种基于双混沌系统和分块的图像加密方法
CN107911572A (zh) * 2017-12-15 2018-04-13 安阳工学院 基于分数傅里叶变换改进逻辑斯蒂混沌系统的图像加密方法
CN108366181A (zh) * 2018-01-23 2018-08-03 西南财经大学 一种基于超混沌系统和多级置乱的图像加密方法
CN109284803A (zh) * 2018-11-19 2019-01-29 南通大学 一种商品防伪二维码生成方法
CN109472338A (zh) * 2018-11-19 2019-03-15 南通大学 一种商品防伪二维码的批量生成方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130159698A1 (en) * 2011-12-19 2013-06-20 Khalifa University of Science, Technology & Research (KUSTAR) Chaotic cryptography for ofdm based communications systems
CN103532701A (zh) * 2013-10-16 2014-01-22 南通纺织职业技术学院 一种数值型数据的加密、解密方法
CN104486073A (zh) * 2014-12-23 2015-04-01 南通大学 一种字符型数据的加密、解密方法
CN106570815A (zh) * 2016-10-21 2017-04-19 广东工业大学 一种基于双混沌系统和分块的图像加密方法
CN107911572A (zh) * 2017-12-15 2018-04-13 安阳工学院 基于分数傅里叶变换改进逻辑斯蒂混沌系统的图像加密方法
CN108366181A (zh) * 2018-01-23 2018-08-03 西南财经大学 一种基于超混沌系统和多级置乱的图像加密方法
CN109284803A (zh) * 2018-11-19 2019-01-29 南通大学 一种商品防伪二维码生成方法
CN109472338A (zh) * 2018-11-19 2019-03-15 南通大学 一种商品防伪二维码的批量生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SK SAFIKUL ALAM等: "A Novel Image Encryption Algorithm Using Hyper-chaos Key Sequences, Multi Step Group Based Binary Gray Conversion and Circular Bit Shifting Logic", 《IEEE》 *
盛苏英,吴新华: "基于耦合映象格子的混沌图像加密算法研究", 《微电子学与计算机》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457949A (zh) * 2019-08-14 2019-11-15 于向东 一种基于数据字典的保持唯一性、完整性、关联性的数据脱敏方法
CN112422491A (zh) * 2020-05-08 2021-02-26 上海幻电信息科技有限公司 数字编码的加密解密方法、服务器和存储介质
CN111985591A (zh) * 2020-07-24 2020-11-24 南通大学 一种基于字符串加密的商品防伪码生成方法
CN111985591B (zh) * 2020-07-24 2022-06-21 南通大学 一种基于字符串加密的商品防伪码生成方法
CN112149773A (zh) * 2020-09-16 2020-12-29 南通大学 一种基于汉字加密的商品防伪码生成方法
CN112163230A (zh) * 2020-09-16 2021-01-01 南通大学 一种汉字加密的商品防伪码生成方法
CN112149773B (zh) * 2020-09-16 2021-10-26 南通大学 一种基于汉字加密的商品防伪码生成方法
CN112183698B (zh) * 2020-09-28 2022-05-03 南通大学 一种汉字垃圾分类二维码生成方法
CN112183698A (zh) * 2020-09-28 2021-01-05 南通大学 一种汉字垃圾分类二维码生成方法
CN113947096A (zh) * 2021-10-12 2022-01-18 南通大学 一种基于图片转字符串解密的商品防伪码识别方法
CN115065555A (zh) * 2022-07-28 2022-09-16 贵州电网有限责任公司 一种信息安全处理方法、系统
CN115865523A (zh) * 2023-02-14 2023-03-28 杭银消费金融股份有限公司 一种用于信息分析系统的数据加密传输方法
CN115865523B (zh) * 2023-02-14 2023-04-28 杭银消费金融股份有限公司 一种用于信息分析系统的数据加密传输方法
CN116781419A (zh) * 2023-08-15 2023-09-19 河北科乾信息技术服务有限公司 一种保密数据数据安全管理方法及系统
CN118013558A (zh) * 2024-04-08 2024-05-10 山东瑞福锂业有限公司 一种工业设备数据的存储方法及系统
CN118013558B (zh) * 2024-04-08 2024-06-04 山东瑞福锂业有限公司 一种工业设备数据的存储方法及系统

Also Published As

Publication number Publication date
CN109995504B (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
CN109995504A (zh) 一种字符串的加密和解密方法
CN104486073B (zh) 一种字符型数据的加密、解密方法
CN110011783A (zh) 一种汉字的加密、解密方法
CN109981245A (zh) 一种字符串的加密、解密方法
CN103473733B (zh) 基于dna编码和混沌映射的图像加密算法
CN103532701B (zh) 一种数值型数据的加密、解密方法
CN105847629A (zh) 一种加密图像的可逆信息隐藏方法
CN109981246A (zh) 一种字符串的加密方法和解密方法
Limbong et al. Testing the classic caesar cipher cryptography using of matlab
CN105959118A (zh) 基于流密码的双位单向循环链表加密解密方法
CN105701755A (zh) 一种基于分形和dna序列操作的图像加密方法
CN107292802A (zh) 一种量子混沌的并行图像加密方法
CN111353166A (zh) 一种图片转汉字的加密方法
Dey SD-AREE: A new modified caesar cipher cryptographic method along with bit-manipulation to exclude repetition from a message to be encrypted
Ge et al. Fast chaotic image encryption algorithm using a novel divide and conquer diffusion strategy
Negi et al. Cryptography Playfair cipher using linear feedback shift register
CN104252604B (zh) 一种基于数据库的积木式动态加密方法
CN101552778B (zh) 安全协议自动化检测中的攻击者模型构建方法
Kayani et al. Efficient region of interest encryption based on a new chaotic map
Pertiwi et al. Simulations of text encryption and decryption by applying vertical bit rotation algorithm
CN101364868B (zh) 基于广义信息域的伪随机码发生器及其发生方法
CN110278066B (zh) 一种中文字符串的加密、解密方法
CN110287713B (zh) 一种中文字符串的加密方法和解密方法
CN110287712B (zh) 一种中英文字符串的加密方法
Honge et al. A chaotic algorithm of image encryption based on dispersion sampling

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: 20240523

Address after: 230000 B-1015, wo Yuan Garden, 81 Ganquan Road, Shushan District, Hefei, Anhui.

Patentee after: HEFEI MINGLONG ELECTRONIC TECHNOLOGY Co.,Ltd.

Country or region after: China

Address before: 226000 No. 9 Siyuan Road, Chongchuan District, Nantong City, Jiangsu Province

Patentee before: NANTONG University

Country or region before: China