CN114745096A - 一种基于分层双向扩散的字符串加密方法 - Google Patents

一种基于分层双向扩散的字符串加密方法 Download PDF

Info

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
Application number
CN202210389472.5A
Other languages
English (en)
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 CN202210389472.5A priority Critical patent/CN114745096A/zh
Publication of CN114745096A publication Critical patent/CN114745096A/zh
Withdrawn legal-status Critical Current

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/001Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Abstract

本发明属于信息加密技术领域,公开了一种基于分层双向扩散的字符串加密方法,步骤如下:将某段待加密字符串进行数值型数据以及8bits二进制转换,得到二进制矩阵BB;对二进制矩阵BB按行进行分层,利用混沌映射产生的混沌信号,对二进制分层序列逐个分组并分别进行正向扩散与逆向扩散,同时根据正向与逆向扩散的平文与密文分别实时更新正向与逆向采样步数,以及正向和逆向扩散值,得到双向扩散后的二进制分层序列,且按行依次填入二进制矩阵;最后进行数值型数据转换,以及数值与字符的转换,从而得到字符序列C,即为该段待加密字符串的加密密文。本发明的字符串加密方法简单可行,可抵抗已知/选择明文攻击,具有很强的安全性。

Description

一种基于分层双向扩散的字符串加密方法
技术领域
本发明涉及信息加密技术领域,特别涉及一种基于分层双向扩散的字符串加密方法。
背景技术
随着社会的发展,信息资源逐渐成为人们生活的重要组成部分,信息安全也随之成为人们研究的热门课题,同时随着网络通讯技术的发展,对于字符通讯的安全性、便捷性需求逐渐增加。在现有技术中,主要对数据进行简单取反、位置交换、异或,以及DES或RAS加密,加密性能有待提高。现有的中文字符加密算法,所得的大多数密文可读性及可复制性太差,出现太多不易书写或者辨认的密文字符,也没有综合中文、英文字符的特点,提出一套简单方便、安全可靠的加密算法。同时由于混沌系统和密码学之间存在着一些自然联系,混沌系统作为一种天然的密码系统,被引入到密码学领域。在此情况下,结合混沌信号的密码特性,提出一套具有良好抗攻击性能的基于分层双向扩散的字符串加密方法,显得尤为重要。
发明内容
发明目的:本发明的目的是为了解决现有技术中的不足,提供一种基于分层双向扩散的字符串加密方法,将某段待加密字符串进行数值型数据、8bits二进制转换,以及按行分层,利用混沌映射产生的混沌信号,对二进制分层序列逐个分组并分别进行正向扩散与逆向扩散,同时根据正向与逆向扩散的平文与密文分别实时更新正向与逆向采样步数,以及正向和逆向扩散值,随后进行数值型数据转换、数值与字符的转换,从而得到字符序列C,即为该段待加密字符串的加密密文。本发明所提的一种基于分层双向扩散的字符串加密方法简单可行,可抵抗已知/选择明文攻击,具有很强的安全性。
技术方案:一种基于分层双向扩散的字符串加密方法,包括如下几个步骤:
(1)转码
将某段待加密字符串A逐个字符转换为数值型数据,得到数值序列
Figure BDA0003595036530000011
再利用函数dec2bin(·,8),将数值序列P中元素Pi逐个转换成8bits的二进制序列{PBi1,PBi2,PBi3,PBi4,PBi5,PBi6,PBi7,PBi8},
Figure BDA0003595036530000012
并依次从左往右填入矩阵BB的各列中,得到二进制矩阵BB,
Figure BDA0003595036530000021
其中,某段待加密字符串A包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字和ASCLL码值∈[32,126]的可见字符,某段待加密字符串A的长度表示为L,数值序列P的长度为
Figure BDA0003595036530000022
二进制矩阵BB的大小为
Figure BDA0003595036530000023
Figure BDA0003595036530000024
(2)分层正向扩散
对二进制矩阵BB按行进行分层,得到相应8个二进制分层序列,表示为
Figure BDA0003595036530000025
将每一个二进制分层序列
Figure BDA0003595036530000026
其中j=1,2,...,7,8,依次进行如下正向扩散操作:
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,...},
然后将第j个二进制分层序列
Figure BDA0003595036530000027
正向以5个元素为单位进行分组,得到分组序列
Figure BDA0003595036530000028
Figure BDA0003595036530000029
并将每一个二进制分组序列
Figure BDA00035950365300000210
其中
Figure BDA00035950365300000211
依次进行如下正向扩散操作:
H0:令m=1,正向采样步数step_1=step_1+123,
H1:先从混沌信号序列X中采样第step_1个混沌信号并进行处理,
Figure BDA00035950365300000212
得到处理后的混沌信号Xjm
再利用bin2dec(·)函数,将二进制分组序列
Figure BDA0003595036530000031
转换为数值型数据DZjm,并将数值型数据DZjm与混沌信号Xjm进行如下运算,
Figure BDA0003595036530000032
并利用dec2bin(DXjm,5)函数,将数值型数据DXjm转换为5位二进制并顺序追加入二进制序列CZ{j}中,即CZ{j}=[CZ{j},dec2bin(DXjm,5)],
H2:更新正向采样步数step_1=step_1+DXjm+DZjm,且更新正向扩散值value_1=value_1+DXjm,令m=m+1,接着判断m的大小,如果
Figure BDA0003595036530000033
则转入步骤H1,否则转入步骤H3,
H3:先从混沌信号序列X中采样第step_1个混沌信号并进行处理,
Figure BDA0003595036530000034
得到处理后的混沌信号Xjm
再利用bin2dec(·)函数,将二进制分组序列
Figure BDA0003595036530000035
转换为数值型数据DZjm,并将数值型数据DZjm与混沌信号Xjm进行如下运算,
Figure BDA0003595036530000036
接着利用
Figure BDA0003595036530000037
函数,将数值型数据DXjm转换为
Figure BDA0003595036530000038
位二进制并顺序追加入二进制序列CZ{j}中,即
Figure BDA0003595036530000039
结束二进制分组序列
Figure BDA00035950365300000310
的正向扩散操作,从而得到正向扩散后的二进制分层序列CZ{j},其中序列CZ{j}的长度为
Figure BDA00035950365300000311
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,...},
然后将第j个二进制分层序列CZ{j}逆向以5个元素为单位进行分组,得到分组序列
Figure BDA0003595036530000041
Figure BDA0003595036530000042
并将每一个二进制分组序列
Figure BDA0003595036530000043
其中
Figure BDA0003595036530000044
依次进行如下逆向扩散操作:
H0:令m=1,逆向采样步数step_2=step_2+321,
H1:先从混沌信号序列Y中采样第step_2个混沌信号并进行处理,
Figure BDA0003595036530000045
得到处理后的混沌信号Yjm
再利用bin2dec(·)函数,将二进制分组序列
Figure BDA0003595036530000046
转换为数值型数据DNjm,并将数值型数据DNjm与混沌信号Yjm进行如下运算,
Figure BDA0003595036530000047
并利用dec2bin(DNjm,5)函数,将数值型数据DYjm转换为5位二进制并顺序追加入二进制序列CN{j}中,即CN{j}=[CN{j},dec2bin(DYjm,5)],
H2:更新逆向采样步数step_2=step_2+DYjm+DNjm,且更新逆向扩散值value_2=value_2+DYjm,令m=m+1,接着判断m的大小,如果
Figure BDA0003595036530000048
则转入步骤H1,否则转入步骤H3,
H3:先从混沌信号序列Y中采样第step_2个混沌信号并进行处理,
Figure BDA0003595036530000049
得到处理后的混沌信号Yjm
再利用bin2dec(·)函数,将二进制分组序列
Figure BDA00035950365300000410
转换为数值型数据DNjm,将数值型数据DNjm与混沌信号Yjm进行如下运算,
Figure BDA00035950365300000411
接着利用
Figure BDA00035950365300000412
函数,将数值型数据DYjm转换为
Figure BDA00035950365300000413
位二进制并顺序追加入二进制序列CN{j}中,即
Figure BDA00035950365300000414
结束二进制分组序列
Figure BDA00035950365300000415
的逆向扩散操作,从而得到双向扩散后的二进制分层序列CN{j},其中序列CN{j}的长度为
Figure BDA00035950365300000416
S2:令j=j+1,接着判断j的大小,如果j≤8,则转入步骤S1,否则转入步骤S3,
S3:结束二进制分层序列的逆向扩散操作,从而得到双向扩散后的二进制分层序列,表示为CN{1},CN{2},...,CN{7},CN{8},并将其按行依次填入二进制矩阵CC中,表示如下,
Figure BDA0003595036530000051
(4)转码
按列依次将二进制矩阵CC的列序列CC(:,n)转换成数值型数据D1n和D2n,其中
Figure BDA0003595036530000052
从而得到数值序列
Figure BDA0003595036530000053
再利用函数char(·),将数值序列
Figure BDA0003595036530000054
中元素依次进行数值与字符的转换,得到字符序列C,即为该段待加密字符串的加密密文,其中字符序列C的长度为
Figure BDA0003595036530000055
进一步地,一种基于分层双向扩散的字符串加密方法里步骤(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字符集中的中文标点符号和双字节编码的汉字转换为两个数值型数据,得到数值序列
Figure BDA0003595036530000061
再利用函数dec2bin(·,8),将数值序列P中元素Pi逐个转换成8bits的二进制序列{PBi1,PBi2,PBi3,PBi4,PBi5,PBi6,PBi7,PBi8},
Figure BDA0003595036530000062
并依次从左往右填入矩阵BB的各列中,得到二进制矩阵BB,
Figure BDA0003595036530000063
其中,某段待加密字符串A包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字和ASCLL码值∈[32,126]的可见字符,某段待加密字符串A的长度表示为L,数值序列P的长度为
Figure BDA0003595036530000064
二进制矩阵BB的大小为
Figure BDA0003595036530000065
Figure BDA0003595036530000066
(2)分层正向扩散
对二进制矩阵BB按行进行分层,得到相应8个二进制分层序列,表示为
Figure BDA0003595036530000067
将每一个二进制分层序列
Figure BDA0003595036530000068
其中j=1,2,...,7,8,依次进行如下正向扩散操作:
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,...},
然后将第j个二进制分层序列
Figure BDA0003595036530000071
正向以5个元素为单位进行分组,得到分组序列
Figure BDA0003595036530000072
Figure BDA0003595036530000073
并将每一个二进制分组序列
Figure BDA0003595036530000074
其中
Figure BDA0003595036530000075
依次进行如下正向扩散操作:
H0:令m=1,正向采样步数step_1=step_1+123,
H1:先从混沌信号序列X中采样第step_1个混沌信号并进行处理,
Figure BDA0003595036530000076
得到处理后的混沌信号Xjm
再利用bin2dec(·)函数,将二进制分组序列
Figure BDA0003595036530000077
转换为数值型数据DZjm,并将数值型数据DZjm与混沌信号Xjm进行如下运算,
Figure BDA0003595036530000078
并利用dec2bin(DXjm,5)函数,将数值型数据DXjm转换为5位二进制并顺序追加入二进制序列CZ{j}中,即CZ{j}=[CZ{j},dec2bin(DXjm,5)],
H2:更新正向采样步数step_1=step_1+DXjm+DZjm,且更新正向扩散值value_1=value_1+DXjm,令m=m+1,接着判断m的大小,如果
Figure BDA0003595036530000079
则转入步骤H1,否则转入步骤H3,
H3:先从混沌信号序列X中采样第step_1个混沌信号并进行处理,
Figure BDA00035950365300000710
得到处理后的混沌信号Xjm
再利用bin2dec(·)函数,将二进制分组序列
Figure BDA00035950365300000711
转换为数值型数据DZjm,并将数值型数据DZjm与混沌信号Xjm进行如下运算,
Figure BDA00035950365300000712
接着利用
Figure BDA00035950365300000713
函数,将数值型数据DXjm转换为
Figure BDA00035950365300000714
位二进制并顺序追加入二进制序列CZ{j}中,即
Figure BDA0003595036530000081
结束二进制分组序列
Figure BDA0003595036530000082
的正向扩散操作,从而得到正向扩散后的二进制分层序列CZ{j},其中序列CZ{j}的长度为
Figure BDA0003595036530000083
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,...},
然后将第j个二进制分层序列CZ{j}逆向以5个元素为单位进行分组,得到分组序列
Figure BDA0003595036530000084
Figure BDA0003595036530000085
并将每一个二进制分组序列
Figure BDA0003595036530000086
其中
Figure BDA0003595036530000087
依次进行如下逆向扩散操作:
H0:令m=1,逆向采样步数step_2=step_2+321,
H1:先从混沌信号序列Y中采样第step_2个混沌信号并进行处理,
Figure BDA0003595036530000088
得到处理后的混沌信号Yjm
再利用bin2dec(·)函数,将二进制分组序列
Figure BDA0003595036530000089
转换为数值型数据DNjm,并将数值型数据DNjm与混沌信号Yjm进行如下运算,
Figure BDA00035950365300000810
并利用dec2bin(DNjm,5)函数,将数值型数据DYjm转换为5位二进制并顺序追加入二进制序列CN{j}中,即CN{j}=[CN{j},dec2bin(DYjm,5)],
H2:更新逆向采样步数step_2=step_2+DYjm+DNjm,且更新逆向扩散值value_2=value_2+DYjm,令m=m+1,接着判断m的大小,如果
Figure BDA0003595036530000091
则转入步骤H1,否则转入步骤H3,
H3:先从混沌信号序列Y中采样第step_2个混沌信号并进行处理,
Figure BDA0003595036530000092
得到处理后的混沌信号Yjm
再利用bin2dec(·)函数,将二进制分组序列
Figure BDA0003595036530000093
转换为数值型数据DNjm,将数值型数据DNjm与混沌信号Yjm进行如下运算,
Figure BDA0003595036530000094
接着利用
Figure BDA0003595036530000095
函数,将数值型数据DYjm转换为
Figure BDA0003595036530000096
位二进制并顺序追加入二进制序列CN{j}中,即
Figure BDA0003595036530000097
结束二进制分组序列
Figure BDA0003595036530000098
的逆向扩散操作,从而得到双向扩散后的二进制分层序列CN{j},其中序列CN{j}的长度为
Figure BDA0003595036530000099
S2:令j=j+1,接着判断j的大小,如果j≤8,则转入步骤S1,否则转入步骤S3,
S3:结束二进制分层序列的逆向扩散操作,从而得到双向扩散后的二进制分层序列,表示为CN{1},CN{2},...,CN{7},CN{8},并将其按行依次填入二进制矩阵CC中,表示如下,
Figure BDA00035950365300000910
(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']),其中
Figure BDA00035950365300000911
从而得到数值序列
Figure BDA00035950365300000912
Figure BDA0003595036530000101
再利用函数char(·),将数值序列
Figure BDA0003595036530000102
中元素依次进行数值与字符的转换,得到字符序列C,即为该段待加密字符串的加密密文,其中字符序列C的长度为
Figure BDA0003595036530000103
下面结合具体的实施例对本发明作进一步说明:
实施例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},
Figure BDA0003595036530000104
并依次从左往右填入矩阵BB的各列中,得到二进制矩阵BB,
Figure BDA0003595036530000105
其中,某段待加密字符串A的长度表示为L=58,数值序列P的长度为
Figure BDA0003595036530000106
二进制矩阵BB的大小为8×101;
(2)分层正向扩散
取正向采样步数step_1=1,设正向扩散初值value_1=1、外部加密密钥α=0.12345和β=3.75,对二进制矩阵BB按行进行分层,得到相应8个二进制分层序列,表示为
Figure BDA0003595036530000111
将每一个二进制分层序列
Figure BDA0003595036530000112
其中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中,
Figure BDA0003595036530000121
(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的长度为
Figure BDA0003595036530000131
实施例2
按照上述一种基于分层双向扩散的字符串加密方法,某段待加密字符串为“字符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出。”,一种基于分层双向扩散的字符串加密步骤与具体实施例1相似,仅外部加密密钥发生细微变化:α=0.123450000001;或β=3.750000000001,字符串加密结果如表1所示。由表1可知,外部加密密钥的细微变化会引起字符串加密密文发生很大的变化,由此可见本专利所提一种基于分层双向扩散的字符串加密方法对外部加密密钥具有敏感性。
表1 外部加密密钥发生微变时,字符串加密结果
Figure BDA0003595036530000132
Figure BDA0003595036530000141
实施例3
按上述一种基于分层双向扩散的字符串加密方法,其加密步骤与具体实施例1相似,仅某段待加密字符串(“字符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出。”)发生细微变化:“子符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出。”;或“字符串“abc123!@#”的加密;先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出。”;或“字符串“abc123!@#”的加密:先输入一个字符串,进行加蜜,最后将加密后的字符添加到一个空的string中输出。”;或“字符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添力到一个空的string中输出。”;或“字符串“abc123!@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出!”,字符串加密结果如表2所示。由表2可见:待加密字符串平文信息的细微变化会引起加密密文的“面目全非”,由此可见本专利所提一种基于分层双向扩散的字符串加密方法对待加密字符串的平文信息具有敏感性。
表2 待加密字符串发生微变时,字符串加密结果
Figure BDA0003595036530000142
Figure BDA0003595036530000151
Figure BDA0003595036530000161
由上述具体实施例2、3分析可知,本专利所提一种基于分层双向扩散的字符串加密方法所生成的字符串加密密文不仅与外部加密密钥密切相关,而且依赖于待加密字符串平文信息,因此本专利所提一种基于分层双向扩散的字符串加密方法可抵抗已知/选择明文攻击,具有很强的安全性。

Claims (3)

1.一种基于分层双向扩散的字符串加密方法,其特征在于,包括如下几个步骤:
(1)转码
将某段待加密字符串A逐个字符转换为数值型数据,得到数值序列
Figure FDA0003595036520000011
再利用函数dec2bin(·,8),将数值序列P中元素Pi逐个转换成8bits的二进制序列
Figure FDA0003595036520000012
Figure FDA0003595036520000013
并依次从左往右填入矩阵BB的各列中,得到二进制矩阵BB,
Figure FDA0003595036520000014
其中,某段待加密字符串A包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字和ASCLL码值∈[32,126]的可见字符,某段待加密字符串A的长度表示为L,数值序列P的长度为
Figure FDA0003595036520000015
二进制矩阵BB的大小为
Figure FDA0003595036520000016
Figure FDA0003595036520000017
(2)分层正向扩散
对二进制矩阵BB按行进行分层,得到相应8个二进制分层序列,表示为
Figure FDA0003595036520000018
将每一个二进制分层序列
Figure FDA0003595036520000019
其中j=1,2,...,7,8,依次进行如下正向扩散操作:
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,...},
然后将第j个二进制分层序列
Figure FDA00035950365200000110
正向以5个元素为单位进行分组,得到分组序列
Figure FDA00035950365200000111
Figure FDA0003595036520000021
并将每一个二进制分组序列
Figure FDA0003595036520000022
其中
Figure FDA0003595036520000023
依次进行如下正向扩散操作:
H0:令m=1,正向采样步数step_1=step_1+123,
H1:先从混沌信号序列X中采样第step_1个混沌信号并进行处理,
Figure FDA0003595036520000024
得到处理后的混沌信号Xjm
再利用bin2dec(·)函数,将二进制分组序列
Figure FDA0003595036520000025
转换为数值型数据DZjm,并将数值型数据DZjm与混沌信号Xjm进行如下运算,
Figure FDA0003595036520000026
并利用dec2bin(DXjm,5)函数,将数值型数据DXjm转换为5位二进制并顺序追加入二进制序列CZ{j}中,即CZ{j}=[CZ{j},dec2bin(DXjm,5)],
H2:更新正向采样步数step_1=step_1+DXjm+DZjm,且更新正向扩散值value_1=value_1+DXjm,令m=m+1,接着判断m的大小,如果
Figure FDA0003595036520000027
则转入步骤H1,否则转入步骤H3,
H3:先从混沌信号序列X中采样第step_1个混沌信号并进行处理,
Figure FDA0003595036520000028
得到处理后的混沌信号Xjm
再利用bin2dec(·)函数,将二进制分组序列
Figure FDA0003595036520000029
转换为数值型数据DZjm,并将数值型数据DZjm与混沌信号Xjm进行如下运算,
Figure FDA00035950365200000210
接着利用
Figure FDA00035950365200000211
函数,将数值型数据DXjm转换为
Figure FDA00035950365200000212
位二进制并顺序追加入二进制序列CZ{j}中,即
Figure FDA00035950365200000213
结束二进制分组序列
Figure FDA00035950365200000214
的正向扩散操作,从而得到正向扩散后的二进制分层序列CZ{j},其中序列CZ{j}的长度为
Figure FDA00035950365200000215
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,...},
然后将第j个二进制分层序列CZ{j}逆向以5个元素为单位进行分组,得到分组序列
Figure FDA0003595036520000031
Figure FDA0003595036520000032
并将每一个二进制分组序列
Figure FDA0003595036520000033
其中
Figure FDA0003595036520000034
依次进行如下逆向扩散操作:
H0:令m=1,逆向采样步数step_2=step_2+321,
H1:先从混沌信号序列Y中采样第step_2个混沌信号并进行处理,
Figure FDA0003595036520000035
得到处理后的混沌信号Yjm
再利用bin2dec(·)函数,将二进制分组序列
Figure FDA0003595036520000036
转换为数值型数据DNjm,并将数值型数据DNjm与混沌信号Yjm进行如下运算,
Figure FDA0003595036520000037
并利用dec2bin(DNjm,5)函数,将数值型数据DYjm转换为5位二进制并顺序追加入二进制序列CN{j}中,即CN{j}=[CN{j},dec2bin(DYjm,5)],
H2:更新逆向采样步数step_2=step_2+DYjm+DNjm,且更新逆向扩散值value_2=value_2+DYjm,令m=m+1,接着判断m的大小,如果
Figure FDA0003595036520000038
则转入步骤H1,否则转入步骤H3,
H3:先从混沌信号序列Y中采样第step_2个混沌信号并进行处理,
Figure FDA0003595036520000039
得到处理后的混沌信号Yjm
再利用bin2dec(·)函数,将二进制分组序列
Figure FDA00035950365200000310
转换为数值型数据DNjm,将数值型数据DNjm与混沌信号Yjm进行如下运算,
Figure FDA0003595036520000041
接着利用
Figure FDA0003595036520000042
函数,将数值型数据DYjm转换为
Figure FDA0003595036520000043
位二进制并顺序追加入二进制序列CN{j}中,即
Figure FDA0003595036520000044
结束二进制分组序列
Figure FDA0003595036520000045
的逆向扩散操作,从而得到双向扩散后的二进制分层序列CN{j},其中序列CN{j}的长度为
Figure FDA0003595036520000046
S2:令j=j+1,接着判断j的大小,如果j≤8,则转入步骤S1,否则转入步骤S3,
S3:结束二进制分层序列的逆向扩散操作,从而得到双向扩散后的二进制分层序列,表示为CN{1},CN{2},...,CN{7},CN{8},并将其按行依次填入二进制矩阵CC中,表示如下,
Figure FDA0003595036520000047
(4)转码
按列依次将二进制矩阵CC的列序列CC(:,n)转换成数值型数据D1n和D2n,其中
Figure FDA0003595036520000048
从而得到数值序列
Figure FDA0003595036520000049
再利用函数char(·),将数值序列
Figure FDA00035950365200000410
中元素依次进行数值与字符的转换,得到字符序列C,即为该段待加密字符串的加密密文,其中字符序列C的长度为
Figure FDA00035950365200000411
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'])。
CN202210389472.5A 2022-04-13 2022-04-13 一种基于分层双向扩散的字符串加密方法 Withdrawn CN114745096A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115396092A (zh) * 2022-08-26 2022-11-25 河南天一智能信息有限公司 一种智能心功能治疗系统的数据管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
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