一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于分层移位的字符串解密方法

2022-05-11 14:34:27 来源:中国专利 TAG:


1.本发明涉及信息解密技术领域,特别涉及一种基于分层移位的字符串解密方法。


背景技术:

2.随着社会的发展,信息资源逐渐成为人们生活的重要组成部分,信息安全也随之成为人们研究的热门课题,同时随着网络通讯技术的发展,对于数据特别是字符通讯的安全性、便捷性需求逐渐增加。
3.在现有技术中,主要对数据进行简单取反、位置交换、异或,以及des或ras混合加密,加解密性能有待提高。现有的中文字符加解密算法,所得的大多数密文可读性及可复制性太差,出现太多不易书写或者辨认的密文字符,也没有综合中文、英文字符的特点,提出一套简单方便、安全可靠的加解密算法。同时由于混沌系统和密码学之间存在着一些自然联系,混沌系统作为一种天然的密码系统,被引入到密码学领域。在此情况下,结合混沌信号的密码特性,提出一套具有良好抗攻击性能的基于分层移位的字符串解密方法,显得尤为重要。


技术实现要素:

4.发明目的:本发明的目的是为了解决现有技术中的不足,提供一种基于分层移位的字符串解密方法,将某段待解密字符串进行数值型数据转换、交替抽取、8bits二进制转换以及按行分层操作,利用混沌迭代信号计算循环移位的方向与个数,对二进制分层序列依次进行循环移位操作,且混沌系统的初值根据循环移位前的二进制分层序列实时更新,再将循环移位后的二进制分层序列进行逐行填入矩阵、数值型数据转换、数值与字符的转换,从而得到该段待解密字符串解密后恢复的平文。本发明所提的一种基于分层移位的字符串解密方法简单可行,可抵抗已知/选择明文攻击,具有很强的安全性。
5.技术方案:一种基于分层移位的字符串解密方法,包括如下几个步骤:
6.(1)转码
7.将某段待解密的字符串密文c逐个字符转换成数值型数据,得到数值序列并将数值序列r中元素交替抽取组成两个数值序列r1和r2,即数值序列即数值序列和数值序列
8.然后利用函数dec2bin(
·
,8),将数值序列r1中元素r1i逐个转换成8bits的二进制序列rb1{i}={rb1
i1
,rb1
i2
,rb1
i3
,rb1
i4
,rb1
i5
,rb1
i6
,rb1
i7
,rb1
i8
},将数值序列r2中元素r2i逐个转换成8bits的二进制序列rb2{i}={rb2
i1
,rb2
i2
,rb2
i3
,rb2
i4
,rb2
i5
,rb2
i6
,rb2
i7
,rb2
i8
},同时取二进制序列rb1{i}的第3位至第7位以及二进制序列rb2{i}的第5位至第7位,组成新序列{rb1
i3
,rb1
i4
,rb1
i5
,rb1
i6
,rb1
i7
,rb2
i5
,rb2
i6
,rb2
i7
},并填入二进制矩阵bb的第i列,其中得到二进制矩阵bb,
[0009][0010]
其中,某段待解密的字符串密文包括gb2312字符集中的中文标点符号、gb2312字符集中双字节编码的汉字和ascll码值∈[32,126]的可见字符,某段待解密的字符串密文的长度表示为数值序列r1、r2的长度均为二进制矩阵bb的大小为
[0011]
(2)分层循环移位
[0012]
首先,对二进制矩阵bb按行进行分层,得到相应8个二进制分层序列,表示为其中j=1,2,...,7,8,
[0013]
然后,将每一个二进制分层序列依次进行如下循环移位操作:
[0014]
s0:令j=1,利用外部解密密钥α和β,按照如下公式(1)和(2)分别计算得到混沌系统的初值x1和参数μ,
[0015]
令则
[0016]
x1=mod(kp α,0.999) 0.001,(1)
[0017]
μ=β mod(kp,4-β),(2)
[0018]
其中,表示二进制分层序列中含二进制
‘0’
的个数,外部密钥满足α∈(0,1),β∈(3.57,4),
[0019]
s1:首先由混沌系统的初值x1和参数μ,对如下公式(3)所示的logistic混沌映射进行100次迭代,式中k表示迭代次数、x
k 1
表示第k次迭代得到的混沌信号,k=1,2,...,100,
[0020]
x
k 1
=μ
×
xk×
(1-xk)(4)
[0021]
得到混沌信号序列x={x1,x2,...,x
101
},
[0022]
接着计算循环移位方向参数循环移位个数参数并判断dirc_shift的数值,
[0023]
如果dirc_shift=0,则将二进制分层序列循环左移num_shift个元素,
[0024]
如果dirc_shift=1,则将二进制分层序列循环右移num_shift个元素,
[0025]
得到循环移位后的二进制分层序列
[0026]
s2:首先将二进制矩阵第j行bb(j,:)中元素从头到尾依次正向以16个元素为单位
进行分组,得到个分组序列并利用bin2dec()函数依次将各分组序列转换为数值型数据,将转换后的数值型数据之和记为dfj,其中函数表示为不小于的最小整数,
[0027]
然后更新混沌系统的初值且令j=j 1,接着判断j的大小,如果j≤8,则转入步骤s1,否则转入步骤s3,
[0028]
s3:结束二进制分层序列的循环移位操作,从而得到循环移位后的二进制分层序列,表示为
[0029]
最后,依次将循环移位后的二进制分层序列顺序填入二进制矩阵aa的第j行,从而得到二进制矩阵aa,表示如下,
[0030][0031]
(3)转码
[0032]
利用函数bin2dec(
·
),按列依次将二进制矩阵aa的列序列aa(:,m)转换成数值型数据ddm,其中从而得到数值序列
[0033]
将数值序列中元素依次进行数值与字符的转换,得到字符序列a,即为该段待解密字符串解密后恢复的平文,其中字符序列a的长度为l,且
[0034]
进一步地,一种基于分层移位的字符串解密方法里步骤(3)中所述的将数值序列对应元素依次进行数值与字符的转换,是指依次将数值序列分别进行如下操作:
[0035]
h0:令m=1、flag=0,给定空的字符序列a,
[0036]
h1:判断ddm的数值范围、标志位flag的大小,
[0037]
如果31<ddm<127且flag=0,则利用char(
·
)函数将数据ddm转换为单个字符,并添加到字符序列a中,即a=[a,char(ddm)];
[0038]
如果(ddm=161或ddm=163)且flag=0,则设flag=1;
[0039]
如果ddm=162且flag=0,则设flag=2;
[0040]
如果175<ddm《215且flag=0,则设flag=3;
[0041]
如果ddm=215且flag=0,则设flag=4;
[0042]
如果215<ddm《248且flag=0,则设flag=5;
[0043]
如果(128<ddm《161或248<ddm《256)且flag=0,则设flag=6;
[0044]
如果flag=1,则继续判断ddm的数值范围,
[0045]
如果160<ddm<255,则利用native2unicode(
·
)函数将数据[dd
m-1
,ddm]转换为单个汉字字符,并添加到字符序列a中,即a=[a,native2unicode([dd
m-1
,ddm])],且设flag=0;
[0046]
否则,将字符序列a中添加字符即且设flag=0;
[0047]
如果flag=2,则继续判断ddm的数值范围,
[0048]
如果160<ddm<253,则利用native2unicode(
·
)函数将数据[dd
m-1
,ddm]转换为单个汉字字符,并添加到字符序列a中,即a=[a,native2unicode([dd
m-1
,ddm])],且设flag=0;
[0049]
否则,将字符序列a中添加字符

ч’,即a=[a,'ч'],且设flag=0;
[0050]
如果flag=3,则继续判断ddm的数值范围,
[0051]
如果160<ddm<255,则利用native2unicode(
·
)函数将数据[dd
m-1
,ddm]转换为单个汉字字符,并添加到字符序列a中,即a=[a,native2unicode([dd
m-1
,ddm])],且设flag=0;
[0052]
否则,将字符序列a中添加字符
‘※’
,即a=[a,'

'],且设flag=0;
[0053]
如果flag=4,则继续判断ddm的数值范围,
[0054]
如果160<ddm<250,则利用native2unicode(
·
)函数将数据[dd
m-1
,ddm]转换为单个汉字字符,并添加到字符序列a中,即a=[a,native2unicode([dd
m-1
,ddm])],且设flag=0;
[0055]
否则,将字符序列a中添加字符
‘☆’
,即a=[a,'

'],且设flag=0;
[0056]
如果flag=5,则继续判断ddm的数值范围,
[0057]
如果160<ddm<255,则利用native2unicode(
·
)函数将数据[dd
m-1
,ddm]转换为单个汉字字符,并添加到字符序列a中,即a=[a,native2unicode([dd
m-1
,ddm])],且设flag=0;
[0058]
否则,将字符序列a中添加字符
‘★’
,即a=[a,'

'],且设flag=0;
[0059]
如果flag=6,将字符序列a中添加字符

∮’,即a=[a,'∮'],且设flag=0;
[0060]
否则,将字符序列a中添加字符

#’,即a=[a,'#'];
[0061]
h2:令m=m 1,接着判断m的大小,如果m≤l,则转入步骤h1,否则转入步骤h3,
[0062]
h3:结束数值序列dd中对应元素进行数值与字符的转换操作,从而得到字符序列a。
[0063]
有益效果:本发明利用混沌映射产生混沌信号,将某段待解密字符串进行数值型数据转换、交替抽取、二进制转换以及按行分层操作,对二进制分层序列依次进行循环移位操作,且根据循环移位前的二进制分层序列实时更新混沌系统的初值,从而得到该段待解密字符串解密后恢复的平文。本发明所提的一种基于分层移位的字符串解密方法简单可行,可抵抗已知/选择明文攻击,具有很强的安全性。
附图说明
[0064]
图1为本发明的一种基于分层移位的字符串解密流程示意图;
具体实施方式
[0065]
如图1所示的一种基于分层移位的字符串解密方法,包括如下几个步骤:
[0066]
(1)转码
[0067]
将某段待解密的字符串密文c逐个字符转换成数值型数据,得到数值序列并将数值序列r中元素交替抽取组成两个数值序列r1和r2,即数值序列即数值序列和数值序列
[0068]
然后利用函数dec2bin(
·
,8),将数值序列r1中元素r1i逐个转换成8bits的二进制序列rb1{i}={rb1
i1
,rb1
i2
,rb1
i3
,rb1
i4
,rb1
i5
,rb1
i6
,rb1
i7
,rb1
i8
},将数值序列r2中元素r2i逐个转换成8bits的二进制序列rb2{i}={rb2
i1
,rb2
i2
,rb2
i3
,rb2
i4
,rb2
i5
,rb2
i6
,rb2
i7
,rb2
i8
},同时取二进制序列rb1{i}的第3位至第7位以及二进制序列rb2{i}的第5位至第7位,组成新序列{rb1
i3
,rb1
i4
,rb1
i5
,rb1
i6
,rb1
i7
,rb2
i5
,rb2
i6
,rb2
i7
},并填入二进制矩阵bb的第i列,其中得到二进制矩阵bb,
[0069][0070]
其中,某段待解密的字符串密文包括gb2312字符集中的中文标点符号、gb2312字符集中双字节编码的汉字和ascll码值∈[32,126]的可见字符,某段待解密的字符串密文的长度表示为数值序列r1、r2的长度均为二进制矩阵bb的大小为
[0071]
(2)分层循环移位
[0072]
首先,对二进制矩阵bb按行进行分层,得到相应8个二进制分层序列,表示为其中j=1,2,...,7,8,
[0073]
然后,将每一个二进制分层序列依次进行如下循环移位操作:
[0074]
s0:令j=1,利用外部解密密钥α和β,按照如下公式(1)和(2)分别计算得到混沌系统的初值x1和参数μ,
[0075]
令则
[0076]
x1=mod(kp α,0.999) 0.001,(1)
[0077]
μ=β mod(kp,4-β),(2)
[0078]
其中,表示二进制分层序列中含二进制
‘0’
的个数,外部密钥满足α∈(0,1),β∈(3.57,4),
[0079]
s1:首先由混沌系统的初值x1和参数μ,对如下公式(3)所示的logistic混沌映射进行100次迭代,式中k表示迭代次数、x
k 1
表示第k次迭代得到的混沌信号,k=1,2,...,100,
[0080]
x
k 1
=μ
×
xk×
(1-xk)(4)
[0081]
得到混沌信号序列x={x1,x2,...,x
101
},
[0082]
接着计算循环移位方向参数循环移位个数参数并判断dirc_shift的数值,
[0083]
如果dirc_shift=0,则将二进制分层序列循环左移num_shift个元素,
[0084]
如果dirc_shift=1,则将二进制分层序列循环右移num_shift个元素,
[0085]
得到循环移位后的二进制分层序列
[0086]
s2:首先将二进制矩阵第j行bb(j,:)中元素从头到尾依次正向以16个元素为单位进行分组,得到个分组序列并利用bin2dec()函数依次将各分组序列转换为数值型数据,将转换后的数值型数据之和记为dfj,其中函数表示为不小于的最小整数,
[0087]
然后更新混沌系统的初值且令j=j 1,接着判断j的大小,如果j≤8,则转入步骤s1,否则转入步骤s3,
[0088]
s3:结束二进制分层序列的循环移位操作,从而得到循环移位后的二进制分层序列,表示为
[0089]
最后,依次将循环移位后的二进制分层序列顺序填入二进制矩阵aa的第j行,从而得到二进制矩阵aa,表示如下,
[0090][0091]
(3)转码
[0092]
利用函数bin2dec(
·
),按列依次将二进制矩阵aa的列序列aa(:,m)转换成数值型
数据ddm,其中从而得到数值序列
[0093]
将数值序列中元素依次进行数值与字符的转换,即依次将数值序列分别进行如下操作:
[0094]
h0:令m=1、flag=0,给定空的字符序列a,
[0095]
h1:判断ddm的数值范围、标志位flag的大小,
[0096]
如果31<ddm<127且flag=0,则利用char(
·
)函数将数据ddm转换为单个字符,并添加到字符序列a中,即a=[a,char(ddm)];
[0097]
如果(ddm=161或ddm=163)且flag=0,则设flag=1;
[0098]
如果ddm=162且flag=0,则设flag=2;
[0099]
如果175<ddm《215且flag=0,则设flag=3;
[0100]
如果ddm=215且flag=0,则设flag=4;
[0101]
如果215<ddm《248且flag=0,则设flag=5;
[0102]
如果(128<ddm《161或248<ddm《256)且flag=0,则设flag=6;
[0103]
如果flag=1,则继续判断ddm的数值范围,
[0104]
如果160<ddm<255,则利用native2unicode(
·
)函数将数据[dd
m-1
,ddm]转换为单个汉字字符,并添加到字符序列a中,即a=[a,native2unicode([dd
m-1
,ddm])],且设flag=0;
[0105]
否则,将字符序列a中添加字符

︾’,即a=[a,'︾'],且设flag=0;
[0106]
如果flag=2,则继续判断ddm的数值范围,
[0107]
如果160<ddm<253,则利用native2unicode(
·
)函数将数据[dd
m-1
,ddm]转换为单个汉字字符,并添加到字符序列a中,即a=[a,native2unicode([dd
m-1
,ddm])],且设flag=0;
[0108]
否则,将字符序列a中添加字符

ч’,即a=[a,'ч'],且设flag=0;
[0109]
如果flag=3,则继续判断ddm的数值范围,
[0110]
如果160<ddm<255,则利用native2unicode(
·
)函数将数据[dd
m-1
,ddm]转换为单个汉字字符,并添加到字符序列a中,即a=[a,native2unicode([dd
m-1
,ddm])],且设flag=0;
[0111]
否则,将字符序列a中添加字符
‘※’
,即a=[a,'

'],且设flag=0;
[0112]
如果flag=4,则继续判断ddm的数值范围,
[0113]
如果160<ddm<250,则利用native2unicode(
·
)函数将数据[dd
m-1
,ddm]转换为单个汉字字符,并添加到字符序列a中,即a=[a,native2unicode([dd
m-1
,ddm])],且设flag=0;
[0114]
否则,将字符序列a中添加字符
‘☆’
,即a=[a,'

'],且设flag=0;
[0115]
如果flag=5,则继续判断ddm的数值范围,
[0116]
如果160<ddm<255,则利用native2unicode(
·
)函数将数据[dd
m-1
,ddm]转换为单个汉字字符,并添加到字符序列a中,即a=[a,native2unicode([dd
m-1
,ddm])],且设flag=0;
[0117]
否则,将字符序列a中添加字符
‘★’
,即a=[a,'

'],且设flag=0;
[0118]
如果flag=6,将字符序列a中添加字符

∮’,即a=[a,'∮'],且设flag=0;
[0119]
否则,将字符序列a中添加字符

#’,即a=[a,'#'];
[0120]
h2:令m=m 1,接着判断m的大小,如果m≤l,则转入步骤h1,否则转入步骤h3,
[0121]
h3:结束数值序列dd中对应元素进行数值与字符的转换操作,从而得到字符序列a,即为该段待解密字符串解密后恢复的平文,其中字符序列a的长度为l,且
[0122]
下面结合具体的实施例对本发明作进一步说明:
[0123]
实施例1
[0124]
按照上述一种基于分层移位的字符串解密方法,步骤如下:
[0125]
(1)转码
[0126]
将某段待解密的字符串密文c=“`.h$db|lx$\jl`h&ln@,tlb2h(h*j4xj0vtvv~rldnv~x|b~p~tx"x.x*llnv|fvx|dnrz》nt`"h,fv`&td~v|`b》tjvzz8dfn|vx~vh.|nfpfvl`x(x"|`lj|dn|~xv|vvldtjvvtjj0~vdnntx h.h,|nllp.b2v||nx(x vztjtb\b|dp,x*lnp(j》h$v~|dl`x,h(”逐个字符转换成数值型数据,得到数值序列r,并将数值序列r中元素交替抽取组成两个数值序列r1和r2,即数值序列r1={96,104,100,124,88,92,76,72,76,64,84,66,72,104,106,120,106,118,118,126,108,110,126,124,126,126,120,120,120,108,110,124,118,124,110,122,110,96,104,102,96,116,126,124,98,116,118,122,100,110,118,126,104,124,102,102,108,120,120,124,108,124,110,126,118,118,108,116,118,116,106,126,100,110,120,104,104,124,108,112,98,118,124,88,88,86,84,84,92,124,112,120,108,112,106,104,118,124,108,120,104}和数值序列r2={46,36,98,108,36,106,96,38,110,44,108,50,40,42,52,32,48,116,118,114,100,118,120,98,112,116,34,46,42,108,118,102,120,100,114,62,116,34,44,118,38,100,118,96,62,106,122,56,102,124,120,118,46,110,112,118,96,40,34,96,106,100,124,120,124,118,100,106,118,106,48,118,110,116,32,46,44,110,108,46,50,124,110,40,32,122,106,98,98,100,44,42,110,40,62,36,126,100,96,44,40};
[0127]
然后利用函数dec2bin(
·
,8),将数值序列r1中元素r1i逐个转换成8bits的二进制序列rb1{i}={rb1
i1
,rb1
i2
,rb1
i3
,rb1
i4
,rb1
i5
,rb1
i6
,rb1
i7
,rb1
i8
},将数值序列r2中元素r2i逐个转换成8bits的二进制序列rb2{i}={rb2
i1
,rb2
i2
,rb2
i3
,rb2
i4
,rb2
i5
,rb2
i6
,rb2
i7
,rb2
i8
},同时取二进制序列rb1{i}的第3位至第7位以及二进制序列rb2{i}的第5位至第7位,组成新序列{rb1
i3
,rb1
i4
,rb1
i5
,rb1
i6
,rb1
i7
,rb2
i5
,rb2
i6
,rb2
i7
},并填入二进制矩阵bb的第i列,其中i=1,2,...,100,101,得到二进制矩阵bb,
[0128]
[0129][0130]
其中,某段待解密的字符串密文c的长度表示为数值序列r1、r2的长度均为二进制矩阵bb的大小为8
×
101;
[0131]
(2)分层循环移位
[0132]
首先,对二进制矩阵bb按行进行分层,得到相应8个二进制分层序列,表示为其中j=1,2,...,7,8,
[0133]
然后,利用外部解密密钥α=0.12345和β=3.75,将每一个二进制分层序列依次进行循环移位操作,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,得到循环移位后的二进制分层序列,
[0134]
最后,依次将循环移位后的二进制分层序列顺序填入二进制矩阵aa的第j行,从而得到二进制矩阵aa,
[0135][0136]
(3)转码
[0137]
利用函数bin2dec(
·
),按列依次将二进制矩阵aa的列序列aa(:,m)转换成数值型数据ddm,其中m=1,2,3,...,101,从而得到数值序列dd={215,214,183,251,180,174,161,176,97,98,99,49,50,51,38,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},
[0138]
将数值序列dd,对应元素依次进行数值与字符的转换,得到字符序列a=“字符串“abc123&@#”的加密:先输入一个字符串,进行加密,最后将加密后的字符添加到一个空的string中输出。”,即为该段待解密字符串解密后恢复的平文,其中字符序列a的长度为l=58。
[0139]
实施例2
[0140]
按照上述一种基于分层移位的字符串解密方法,某段待解密的字符串密文c=“`.h$db|lx$\jl`h&ln@,tlb2h(h*j4xj0vtvv~rldnv~x|b~p~tx"x.x*llnv|fvx|dnrz》nt`"h,fv`&td~v|`b》tjvzz8dfn|vx~vh.|nfpfvl`x(x"|`lj|dn|~xv|vvldtjvvtjj0~vdnntx h.h,|nllp.b2v||nx(x vztjtb\b|dp,x*lnp(j》h$v~|dl`x,h(”,其解密步骤与具体实施例1相似,仅外部解密密钥发生细微变化:α=0.123450000001;或β=3.750000000001,字符串解密结果如表1所示。由表1可知,外部解密密钥的细微变化会引起字符串解密后恢复的平文发生很大的变化,由此可见本专利所提一种基于分层移位的字符串解密方法对外部解密密钥具有敏感性。
[0141]
表1 外部解密密钥发生微变时,字符串解密结果
[0142][0143]
实施例3
[0144]
按上述一种基于分层移位的字符串解密方法,其解密步骤与具体实施例1相似,仅某段待解密汉字发生细微变化:“i:ld~pvxp~~tdp"tlllljt`z》~zl`|`lbj0`&ddd`|d|d|fdbtdvr|hn~dlx$|bdn|fh$`.h&|`|lx&`"|`dbxz:|jll~~|`v~b:r6n|h.z4j0lfvzfvx$h*x$x,~z|hz6|d~|z4~xx"\`b》x"h"j《x.r:llv|frdhnzn|vrtnthj6b6h$dj|nljlndlfpz》nvz4x.|l”;或“j:ld~pvxp~~tdp"tlllljt`z》~zl`|`lbj0`&ddd`|d|d|fdbtdvr|hn~dlx$|bdn|fh$`.h&|`|lx&`"|`dbxz:|jll~~|`v~b:r6n|h.z4j0lfvzfvx$h*x$x,~z|hz6|d~|z4~xx"\`b》x"h"j《x.r:llv|frdhnzn|vrtnthj6b6h$dj|nljlndlfpz》nvz4x.|l”;或“j:ld~pvxp~~tdp"tlllljt`z》~zl`|`lbj0`&ddd`|d|d|fdbtdvr|hn~dlx$|bdn|fh$`.h&|`|lx&`"|`dbxz:-jll~~|`v~b:r6n|h.z4j0lfvzfvx$h*x$x,~z|hz6|d~|z4~xx"\`b》x"h"j《x.r:llv|frdhnzn|vrtnthj6b6h$dj|nljlndlfpz》nvz4x.|l”;或“j:ld~pvxp~~tdp"tlllljt`z》~zl`|`lbj0`&ddd`|d|d|fdbtdvr|hn~dlx$|bdn|fh$`.h&|`|lx&`"|`dbxz:|jll~~|`v~b:r6n|h.z4j0lfvzfvx$h*x$x,~z|hz6|d~|z9~xx"\`b》x"h"j《x.r:llv|frdhnzn|vrtnthj6b6h$dj|nljlndlfpz》nvz4x.|l”;或“j:ld~pvxp~~tdp"tlllljt`z》~zl`|`lbj0`&ddd`|d|d|fdbtdvr|hn~dlx$|bdn|fh$`.h&|`|lx&`"|`dbxz:|jll~~|`v~b:r6n|h.z4j0lfvzfvx$h*x$x,~z|hz6|d~|z4~xx"\`b》x"h"j《x.r:llv|frdhnzn|vrtnthj6b6h$dj|nljlndlfpz》nvz4x.|t”,字符串解密结果如表2所示。由表2可见:待解密字符串信息的细微变化会引起解密恢复平文的“面目全非”,由此可见本专利所提一种基于分层移位的字符串解密方法对待解密字符串具有敏感性。
[0145]
表2 待解密字符串发生微变时,字符串解密结果
[0146][0147][0148]
由上述具体实施例2、3分析可知,本专利所提一种基于分层移位的字符串解密方法所生成的字符串解密密文不仅与外部解密密钥密切相关,而且依赖于待解密汉字平文信息,因此本专利所提一种基于分层移位的字符串解密方法可抵抗选择密文攻击,具有很强
的安全性。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献