CN114745096A - 一种基于分层双向扩散的字符串加密方法 - Google Patents
一种基于分层双向扩散的字符串加密方法 Download PDFInfo
- Publication number
- CN114745096A CN114745096A CN202210389472.5A CN202210389472A CN114745096A CN 114745096 A CN114745096 A CN 114745096A CN 202210389472 A CN202210389472 A CN 202210389472A CN 114745096 A CN114745096 A CN 114745096A
- Authority
- CN
- China
- Prior art keywords
- sequence
- binary
- diffusion
- numerical data
- chaotic signal
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/001—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Abstract
本发明属于信息加密技术领域,公开了一种基于分层双向扩散的字符串加密方法,步骤如下:将某段待加密字符串进行数值型数据以及8bits二进制转换,得到二进制矩阵BB;对二进制矩阵BB按行进行分层,利用混沌映射产生的混沌信号,对二进制分层序列逐个分组并分别进行正向扩散与逆向扩散,同时根据正向与逆向扩散的平文与密文分别实时更新正向与逆向采样步数,以及正向和逆向扩散值,得到双向扩散后的二进制分层序列,且按行依次填入二进制矩阵;最后进行数值型数据转换,以及数值与字符的转换,从而得到字符序列C,即为该段待加密字符串的加密密文。本发明的字符串加密方法简单可行,可抵抗已知/选择明文攻击,具有很强的安全性。
Description
技术领域
本发明涉及信息加密技术领域,特别涉及一种基于分层双向扩散的字符串加密方法。
背景技术
随着社会的发展,信息资源逐渐成为人们生活的重要组成部分,信息安全也随之成为人们研究的热门课题,同时随着网络通讯技术的发展,对于字符通讯的安全性、便捷性需求逐渐增加。在现有技术中,主要对数据进行简单取反、位置交换、异或,以及DES或RAS加密,加密性能有待提高。现有的中文字符加密算法,所得的大多数密文可读性及可复制性太差,出现太多不易书写或者辨认的密文字符,也没有综合中文、英文字符的特点,提出一套简单方便、安全可靠的加密算法。同时由于混沌系统和密码学之间存在着一些自然联系,混沌系统作为一种天然的密码系统,被引入到密码学领域。在此情况下,结合混沌信号的密码特性,提出一套具有良好抗攻击性能的基于分层双向扩散的字符串加密方法,显得尤为重要。
发明内容
发明目的:本发明的目的是为了解决现有技术中的不足,提供一种基于分层双向扩散的字符串加密方法,将某段待加密字符串进行数值型数据、8bits二进制转换,以及按行分层,利用混沌映射产生的混沌信号,对二进制分层序列逐个分组并分别进行正向扩散与逆向扩散,同时根据正向与逆向扩散的平文与密文分别实时更新正向与逆向采样步数,以及正向和逆向扩散值,随后进行数值型数据转换、数值与字符的转换,从而得到字符序列C,即为该段待加密字符串的加密密文。本发明所提的一种基于分层双向扩散的字符串加密方法简单可行,可抵抗已知/选择明文攻击,具有很强的安全性。
技术方案:一种基于分层双向扩散的字符串加密方法,包括如下几个步骤:
(1)转码
再利用函数dec2bin(·,8),将数值序列P中元素Pi逐个转换成8bits的二进制序列{PBi1,PBi2,PBi3,PBi4,PBi5,PBi6,PBi7,PBi8},并依次从左往右填入矩阵BB的各列中,得到二进制矩阵BB,
其中,某段待加密字符串A包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字和ASCLL码值∈[32,126]的可见字符,某段待加密字符串A的长度表示为L,数值序列P的长度为二进制矩阵BB的大小为且
(2)分层正向扩散
S0:令j=1、正向采样步数step_1=1,设正向扩散初值value_1、外部加密密钥α和β,且外部密钥满足α∈(0,1),β∈(3.57,4),另令混沌系统的初值x1=α和参数μ=β,
S1:首先由混沌系统的初值x1和参数μ,对如下公式(1)所示Logistic混沌映射进行迭代,式中k表示迭代次数、xk+1表示第k次迭代得到的混沌信号,k=1,2,...
xk+1=μ·xk·(1-xk) (1)
得到混沌信号序列X={x1,x2,...},
H0:令m=1,正向采样步数step_1=step_1+123,
并利用dec2bin(DXjm,5)函数,将数值型数据DXjm转换为5位二进制并顺序追加入二进制序列CZ{j}中,即CZ{j}=[CZ{j},dec2bin(DXjm,5)],
S2:令j=j+1,接着判断j的大小,如果j≤8,则转入步骤S1,否则转入步骤S3,
S3:结束二进制分层序列的正向扩散操作,从而得到正向扩散后的二进制分层序列,表示为CZ{1},CZ{2},...,CZ{7},CZ{8};
(3)分层逆向扩散
将每一个正向扩散后的二进制分层序列CZ{j},其中j=1,2,...,7,8,依次进行如下逆向扩散操作:
S0:令j=1、逆向采样步数step_2=1,设逆向扩散初值value_2,且令混沌系统的初值y1=x345456+step_2和参数μ=β,
S1:首先由混沌系统的初值y1和参数μ,对如下公式(1)所示Logistic混沌映射进行迭代,式中k表示迭代次数、yk+1表示第k次迭代得到的混沌信号,k=1,2,...,得到混沌信号序列Y={y1,y2,...},
H0:令m=1,逆向采样步数step_2=step_2+321,
并利用dec2bin(DNjm,5)函数,将数值型数据DYjm转换为5位二进制并顺序追加入二进制序列CN{j}中,即CN{j}=[CN{j},dec2bin(DYjm,5)],
S2:令j=j+1,接着判断j的大小,如果j≤8,则转入步骤S1,否则转入步骤S3,
S3:结束二进制分层序列的逆向扩散操作,从而得到双向扩散后的二进制分层序列,表示为CN{1},CN{2},...,CN{7},CN{8},并将其按行依次填入二进制矩阵CC中,表示如下,
(4)转码
进一步地,一种基于分层双向扩散的字符串加密方法里步骤(1)中所述的将某段待加密字符串A逐个字符转换为数值型数据,是指将某段待加密字符串A中字符逐个采用unicode2native()函数,将ASCII码值属于[32,126]的可见字符转换为单个数值型数据,或将GB2312字符集中的中文标点符号和双字节编码的汉字转换为两个数值型数据,从而得到数值序列P。
进一步地,一种基于分层双向扩散的字符串加密方法里步骤(4)中所述的按列依次将二进制矩阵CC的列序列CC(:,n)转换成数值型数据D1n和D2n,是指取列序列CC(:,n)的前5位且在其首端加上二进制“01”、在其尾端加上二进制“0”,并采用bin2dec()函数转换成数值型数据D1m,即D1n=bin2dec(['01',(CC(1:5,n))T,'0']);同时取列序列CC(:,n)的后5位且在其首端加上二进制“01”、在其尾端加上二进制“0”,并采用bin2dec()函数转换成数值型数据D2n,即D2n=bin2dec(['01',(CC(4:8,n))T,'0'])。
有益效果:本发明利用混沌映射产生的混沌信号,将某段待加密字符串进行数值型数据、8bits二进制转换及按行分层后的二进制分层序列,逐个分组并分别进行正向扩散与逆向扩散,同时根据正向与逆向扩散的平文与密文分别实时更新正向与逆向采样步数,以及正向和逆向扩散值,随后进行数值型数据转换、数值与字符的转换,从而得到该段待加密字符串的加密密文。本发明所提一种基于分层双向扩散的字符串加密方法简单可行,可抵抗已知/选择明文攻击,具有很强的安全性。
附图说明
图1为本发明的一种基于分层双向扩散的字符串加密流程示意图;
具体实施方式
如图1所示的一种基于分层双向扩散的字符串加密方法,包括如下几个步骤:
(1)转码
将某段待加密字符串A中字符逐个采用unicode2native()函数,将ASCII码值属于[32,126]的可见字符转换为单个数值型数据,或将GB2312字符集中的中文标点符号和双字节编码的汉字转换为两个数值型数据,得到数值序列
再利用函数dec2bin(·,8),将数值序列P中元素Pi逐个转换成8bits的二进制序列{PBi1,PBi2,PBi3,PBi4,PBi5,PBi6,PBi7,PBi8},并依次从左往右填入矩阵BB的各列中,得到二进制矩阵BB,
其中,某段待加密字符串A包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字和ASCLL码值∈[32,126]的可见字符,某段待加密字符串A的长度表示为L,数值序列P的长度为二进制矩阵BB的大小为且
(2)分层正向扩散
S0:令j=1、正向采样步数step_1=1,设正向扩散初值value_1、外部加密密钥α和β,且外部密钥满足α∈(0,1),β∈(3.57,4),另令混沌系统的初值x1=α和参数μ=β,
S1:首先由混沌系统的初值x1和参数μ,对如下公式所示的Logistic混沌映射进行迭代,式中k表示迭代次数、xk+1表示第k次迭代得到的混沌信号,k=1,2,...
xk+1=μ·xk·(1-xk)
得到混沌信号序列X={x1,x2,...},
H0:令m=1,正向采样步数step_1=step_1+123,
并利用dec2bin(DXjm,5)函数,将数值型数据DXjm转换为5位二进制并顺序追加入二进制序列CZ{j}中,即CZ{j}=[CZ{j},dec2bin(DXjm,5)],
S2:令j=j+1,接着判断j的大小,如果j≤8,则转入步骤S1,否则转入步骤S3,
S3:结束二进制分层序列的正向扩散操作,从而得到正向扩散后的二进制分层序列,表示为CZ{1},CZ{2},...,CZ{7},CZ{8};
(3)分层逆向扩散
将每一个正向扩散后的二进制分层序列CZ{j},其中j=1,2,...,7,8,依次进行如下逆向扩散操作:
S0:令j=1、逆向采样步数step_2=1,设逆向扩散初值value_2,且令混沌系统的初值y1=x345456+step_2和参数μ=β,
S1:首先由混沌系统的初值y1和参数μ,对如下公式(1)所示Logistic混沌映射进行迭代,式中k表示迭代次数、yk+1表示第k次迭代得到的混沌信号,k=1,2,...,得到混沌信号序列Y={y1,y2,...},
H0:令m=1,逆向采样步数step_2=step_2+321,
并利用dec2bin(DNjm,5)函数,将数值型数据DYjm转换为5位二进制并顺序追加入二进制序列CN{j}中,即CN{j}=[CN{j},dec2bin(DYjm,5)],
S2:令j=j+1,接着判断j的大小,如果j≤8,则转入步骤S1,否则转入步骤S3,
S3:结束二进制分层序列的逆向扩散操作,从而得到双向扩散后的二进制分层序列,表示为CN{1},CN{2},...,CN{7},CN{8},并将其按行依次填入二进制矩阵CC中,表示如下,
(4)转码
按列依次将二进制矩阵CC的列序列CC(:,n)转换成数值型数据D1n和D2n,是指取列序列CC(:,n)的前5位且在其首端加上二进制“01”、在其尾端加上二进制“0”,并采用bin2dec()函数转换成数值型数据D1m,即D1n=bin2dec(['01',(CC(1:5,n))T,'0']);同时取列序列CC(:,n)的后5位且在其首端加上二进制“01”、在其尾端加上二进制“0”,并采用bin2dec()函数转换成数值型数据D2n,即D2n=bin2dec(['01',(CC(4:8,n))T,'0']),其中从而得到数值序列
下面结合具体的实施例对本发明作进一步说明:
实施例1
按照上述一种基于分层双向扩散的字符串加密方法,步骤如下:
(1)转码
将某段待加密字符串A=“字符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出。”,逐个字符转换为数值型数据,得到数值序列P={215,214,183,251,180,174,161,176,97,98,99,49,50,51,33,64,35,161,177,181,196,188,211,195,220,163,186,207,200,202,228,200,235,210,187,184,246,215,214,183,251,180,174,163,172,189,248,208,208,188,211,195,220,163,172,215,238,186,243,189,171,188,211,195,220,186,243,181,196,215,214,183,251,204,237,188,211,181,189,210,187,184,246,191,213,181,196,115,116,114,105,110,103,214,208,202,228,179,246,161,163},
再利用函数dec2bin(·,8),将数值序列P中元素Pi逐个转换成8bits的二进制序列{PBi1,PBi2,PBi3,PBi4,PBi5,PBi6,PBi7,PBi8},并依次从左往右填入矩阵BB的各列中,得到二进制矩阵BB,
(2)分层正向扩散
取正向采样步数step_1=1,设正向扩散初值value_1=1、外部加密密钥α=0.12345和β=3.75,对二进制矩阵BB按行进行分层,得到相应8个二进制分层序列,表示为将每一个二进制分层序列其中j=1,2,...,7,8,依次进行正向扩散操作,从而得到正向扩散后的二进制分层序列CZ{1}={0,0,0,1,0,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,1,0,1,1,0,1,0,1,0,0,0,1,0,1,1,0,0,1,1,0,1,0,1,0,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0,1,0,1,0,0,1,1,1,0,0,1,0,1,1,1,1}、CZ{2}={1,0,0,0,0,1,0,0,1,1,1,1,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,0,0,0,1,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,1,1,0,1,1,0,0,0,0,1,0,1,1,0}、CZ{3}={1,0,0,0,0,0,1,0,1,1,0,0,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0,0,1,0,1,1,1,1,1,1,1,0,1,1,0,0,1,0,1,1,0,1,0,0,0,1,0,1,1,0,1,0,1,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,0,1,1,1,0,1}、CZ{4}={1,1,1,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0,0,1,0,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,1,0,0,1,1,1,1,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,0,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,0}、CZ{5}={0,0,0,1,0,0,0,0,1,1,1,0,0,0,1,0,1,1,0,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0,1,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,1,0,1,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,1,1,0,1,1,1,0,0}、CZ{6}={0,1,1,1,0,0,1,0,1,0,1,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1,0,1,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0,1,0,1,0,1,0,1,1,0,1,1,0,1,1,1,0,0,1,1,0,1,0,1,0,1,0,1,1,1,0,0,1,0,0}、CZ{7}={1,0,1,1,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,1,1,1,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,0,1,1,1,1,0,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,0,0,0,1,1,1,0,0,1,1}、CZ{8}={0,0,0,0,0,1,1,0,0,1,1,1,0,0,1,0,1,1,0,1,1,0,0,1,1,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,1,1,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,1,1,1,1,0,1,1,0};
(3)分层逆向扩散
取逆向采样步数step_2=1,设逆向扩散初值value_2=2,且令混沌系统的初值y1=x345456+step_2和参数μ=β,将每一个正向扩散后的二进制分层序列CZ{j},其中j=1,2,...,7,8,依次进行逆向扩散操作,从而得到双向扩散后的二进制分层序列CN{1}={0,1,0,0,1,0,1,0,1,1,1,1,1,0,0,1,0,1,0,0,1,1,0,1,0,1,1,0,0,0,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,0,1,1,0,1,1,0,1,1,0,0,1,1,1,0,1,0,0,1,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,1,0,1,1,1,1,0,1,1,0,0,1,1,0}、CN{2}={0,1,1,1,0,1,1,1,0,0,1,0,1,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,1,0,0,0,1,1,1,1,0,0,1,0,1,1,1,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,1,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,0,1,0}、CN{3}={0,0,0,1,1,1,0,1,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,1,0,1,1,1,1,0,0,1,0,1,1,0,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,1,1,1,1}、CN{4}={1,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1,1,0,1,0,1,1,0,0,0,1,1,0,0,1,0,1,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,0,1,0,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,1,1,0,0,0,0,1}、CN{5}={0,0,1,0,0,0,1,0,0,1,1,1,1,0,1,0,0,1,0,1,0,0,0,0,1,1,0,1,0,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,0,1,1,0,1,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,1,0,1}、CN{6}={0,0,0,1,1,1,1,1,0,0,0,1,1,0,1,0,1,0,0,0,0,1,1,0,1,1,1,1,1,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,1,1,0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,0,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,1,1}、CN{7}={1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,0,1,0,1,1,1,0,0,1,1,1,1,1,1,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,1,0,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,1,0,1,1,1,1,1,0,0,1,0,0,1,1,0,1,1,1,1}、CN{8}={1,0,1,0,1,1,0,0,1,0,0,1,1,1,1,1,1,0,1,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,0,1,1,0,0,1,0,1,1,0,0,0,1,0,1,0,1,1,0,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,1,0},并将其按行依次填入二进制矩阵CC中,
(4)转码
按列依次将二进制矩阵CC的列序列CC(:,n)转换成数值型数据D1n和D2n,从而得到数值序列D={68,102,116,96,86,114,88,72,108,106,92,110,114,88,92,108,96,66,110,112,118,112,106,90,126,122,80,70,94,126,116,98,84,110,114,80,68,102,82,84,100,100,100,104,80,72,112,68,66,92,126,126,124,110,90,92,72,78,86,112,106,94,68,96,108,104,122,94,94,118,118,120,86,120,104,64,106,82,120,74,102,112,120,68,122,88,120,66,76,108,80,64,82,80,122,92,80,68,120,64,110,122,70,116,100,106,96,76,70,116,108,110,120,64,84,102,88,78,102,112,118,118,108,102,84,100,110,112,86,126,86,116,96,74,126,118,92,100,120,72,112,72,118,126,92,96,90,86,66,84,120,78,94,126,106,84,122,82,80,76,90,92,126,112,72,78,122,90,104,78,122,92,90,94,102,118,88,78,110,120,122,80,106,92,104,66,78,120,100,102,118,118,80,74,90,84,106,92,120,78,78,124};
再利用函数char(·),将数值序列D中元素依次进行数值与字符的转换,得到字符序列C=“Dft`VrXHlj\nrX\l`BnpvpjZ~zPF^~tbTnrPDfRTdddhPHpDB\~~|nZ\HNVpj^D`lhz^^vvxVxh@jRxJfpxDzXxBLlP@RPz\PDx@nzFtdj`LFtlnx@TfXNfpvvlfTdnpV~Vt`J~v\dxHpHv~\`ZVBTxN^~jTzRPLZ\~pHNzZhNz\Z^fvXNnxzPj\hBNxdfvvPJZTj\xNN|”,即为该段待加密字符串的加密密文,其中字符序列C的长度为
实施例2
按照上述一种基于分层双向扩散的字符串加密方法,某段待加密字符串为“字符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出。”,一种基于分层双向扩散的字符串加密步骤与具体实施例1相似,仅外部加密密钥发生细微变化:α=0.123450000001;或β=3.750000000001,字符串加密结果如表1所示。由表1可知,外部加密密钥的细微变化会引起字符串加密密文发生很大的变化,由此可见本专利所提一种基于分层双向扩散的字符串加密方法对外部加密密钥具有敏感性。
表1 外部加密密钥发生微变时,字符串加密结果
实施例3
按上述一种基于分层双向扩散的字符串加密方法,其加密步骤与具体实施例1相似,仅某段待加密字符串(“字符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出。”)发生细微变化:“子符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出。”;或“字符串“abc123!@#”的加密;先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出。”;或“字符串“abc123!@#”的加密:先输入一个字符串,进行加蜜,最后将加密后的字符添加到一个空的string中输出。”;或“字符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添力到一个空的string中输出。”;或“字符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出!”,字符串加密结果如表2所示。由表2可见:待加密字符串平文信息的细微变化会引起加密密文的“面目全非”,由此可见本专利所提一种基于分层双向扩散的字符串加密方法对待加密字符串的平文信息具有敏感性。
表2 待加密字符串发生微变时,字符串加密结果
由上述具体实施例2、3分析可知,本专利所提一种基于分层双向扩散的字符串加密方法所生成的字符串加密密文不仅与外部加密密钥密切相关,而且依赖于待加密字符串平文信息,因此本专利所提一种基于分层双向扩散的字符串加密方法可抵抗已知/选择明文攻击,具有很强的安全性。
Claims (3)
1.一种基于分层双向扩散的字符串加密方法,其特征在于,包括如下几个步骤:
(1)转码
其中,某段待加密字符串A包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字和ASCLL码值∈[32,126]的可见字符,某段待加密字符串A的长度表示为L,数值序列P的长度为二进制矩阵BB的大小为且
(2)分层正向扩散
S0:令j=1、正向采样步数step_1=1,设正向扩散初值value_1、外部加密密钥α和β,且外部密钥满足α∈(0,1),β∈(3.57,4),另令混沌系统的初值x1=α和参数μ=β,
S1:首先由混沌系统的初值x1和参数μ,对如下公式(1)所示Logistic混沌映射进行迭代,式中k表示迭代次数、xk+1表示第k次迭代得到的混沌信号,k=1,2,...
xk+1=μ·xk·(1-xk) (1)
得到混沌信号序列X={x1,x2,...},
H0:令m=1,正向采样步数step_1=step_1+123,
并利用dec2bin(DXjm,5)函数,将数值型数据DXjm转换为5位二进制并顺序追加入二进制序列CZ{j}中,即CZ{j}=[CZ{j},dec2bin(DXjm,5)],
S2:令j=j+1,接着判断j的大小,如果j≤8,则转入步骤S1,否则转入步骤S3,
S3:结束二进制分层序列的正向扩散操作,从而得到正向扩散后的二进制分层序列,表示为CZ{1},CZ{2},...,CZ{7},CZ{8};
(3)分层逆向扩散
将每一个正向扩散后的二进制分层序列CZ{j},其中j=1,2,...,7,8,依次进行如下逆向扩散操作:
S0:令j=1、逆向采样步数step_2=1,设逆向扩散初值value_2,且令混沌系统的初值y1=x345456+step_2和参数μ=β,
S1:首先由混沌系统的初值y1和参数μ,对如下公式(1)所示Logistic混沌映射进行迭代,式中k表示迭代次数、yk+1表示第k次迭代得到的混沌信号,k=1,2,...,得到混沌信号序列Y={y1,y2,...},
H0:令m=1,逆向采样步数step_2=step_2+321,
并利用dec2bin(DNjm,5)函数,将数值型数据DYjm转换为5位二进制并顺序追加入二进制序列CN{j}中,即CN{j}=[CN{j},dec2bin(DYjm,5)],
S2:令j=j+1,接着判断j的大小,如果j≤8,则转入步骤S1,否则转入步骤S3,
S3:结束二进制分层序列的逆向扩散操作,从而得到双向扩散后的二进制分层序列,表示为CN{1},CN{2},...,CN{7},CN{8},并将其按行依次填入二进制矩阵CC中,表示如下,
(4)转码
2.根据权利要求1所述的一种基于分层双向扩散的字符串加密方法,其特征在于:步骤(1)中所述的将某段待加密字符串A逐个字符转换为数值型数据,是指将某段待加密字符串A中字符逐个采用unicode2native()函数,将ASCII码值属于[32,126]的可见字符转换为单个数值型数据,或将GB2312字符集中的中文标点符号和双字节编码的汉字转换为两个数值型数据,从而得到数值序列P。
3.根据权利要求1所述的一种基于分层双向扩散的字符串加密方法,其特征在于:步骤(4)中所述的按列依次将二进制矩阵CC的列序列CC(:,n)转换成数值型数据D1n和D2n,是指取列序列CC(:,n)的前5位且在其首端加上二进制“01”、在其尾端加上二进制“0”,并采用bin2dec()函数转换成数值型数据D1m,即D1n=bin2dec(['01',(CC(1:5,n))T,'0']);同时取列序列CC(:,n)的后5位且在其首端加上二进制“01”、在其尾端加上二进制“0”,并采用bin2dec()函数转换成数值型数据D2n,即D2n=bin2dec(['01',(CC(4:8,n))T,'0'])。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210389472.5A CN114745096A (zh) | 2022-04-13 | 2022-04-13 | 一种基于分层双向扩散的字符串加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210389472.5A CN114745096A (zh) | 2022-04-13 | 2022-04-13 | 一种基于分层双向扩散的字符串加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114745096A true CN114745096A (zh) | 2022-07-12 |
Family
ID=82280866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210389472.5A Withdrawn CN114745096A (zh) | 2022-04-13 | 2022-04-13 | 一种基于分层双向扩散的字符串加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114745096A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115396092A (zh) * | 2022-08-26 | 2022-11-25 | 河南天一智能信息有限公司 | 一种智能心功能治疗系统的数据管理方法 |
-
2022
- 2022-04-13 CN CN202210389472.5A patent/CN114745096A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115396092A (zh) * | 2022-08-26 | 2022-11-25 | 河南天一智能信息有限公司 | 一种智能心功能治疗系统的数据管理方法 |
CN115396092B (zh) * | 2022-08-26 | 2023-09-12 | 河南天一智能信息有限公司 | 一种智能心功能治疗系统的数据管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114553391A (zh) | 一种基于分层移位的字符串加密方法 | |
CN110299989B (zh) | 一种中英文字符串的加密、解密方法 | |
CN112597480B (zh) | 一种可扩展的格式保留加密方法的实现方式 | |
CN110650005B (zh) | 一种中英文字符串加密方法 | |
CN110011783B (zh) | 一种汉字的加密、解密方法 | |
CN116032474B (zh) | 一种基于大数据计算机网络安全防护系统 | |
CN101335616B (zh) | 一种具有无限密钥空间的对称加密方法 | |
CN108418683B (zh) | 一种基于汉字结构特征的无载体文本隐写方法 | |
CN111353166B (zh) | 一种图片转汉字的加密方法 | |
CN115296862B (zh) | 一种基于数据编码的网络数据安全传输方法 | |
CN114465709A (zh) | 一种基于分层移位的字符串解密方法 | |
CN114745096A (zh) | 一种基于分层双向扩散的字符串加密方法 | |
CN100459489C (zh) | 可变大小的密钥以及使用该密钥的方法和装置 | |
CN116865950B (zh) | 一种检测试剂盒质检数据安全存储系统 | |
Rafat et al. | Secure digital steganography for ASCII text documents | |
CN114741712A (zh) | 一种基于分层置乱的汉字加密方法 | |
Torvi et al. | An unique data security using text steganography | |
CN114553393A (zh) | 一种基于分层移位的汉字加密方法 | |
CN110278066B (zh) | 一种中文字符串的加密、解密方法 | |
CN108460023B (zh) | 合法区间双认证全密钥依赖无载体试题伪装、恢复方法 | |
CN114722409A (zh) | 一种基于分层双向扩散的字符串解密方法 | |
CN104393988B (zh) | 一种可逆的数据加密方法及装置 | |
CN116192507A (zh) | 一种基于深度学习的信息隐藏方法 | |
CN110287713B (zh) | 一种中文字符串的加密方法和解密方法 | |
CN116566597A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220712 |
|
WW01 | Invention patent application withdrawn after publication |