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

高效的保型数据加密算法的制作方法

2022-05-18 04:47:32 来源:中国专利 TAG:


1.本发明属于数据加密技术领域,特别涉及一种高效的保型数据加密算法。


背景技术:

2.传统的对称加密需要填充字段,同时具有密文扩张的缺点,为了保持数据格式,保留数据格式加密(简称为保型加密)随之诞生。保型加密后的密文和加密前的明文格式一致,即明文和密文的长度与字符类型完全一致,保型加密具有如下的特征:(1)数据不能被扩充,例如当加密n位的数字时,必须输出另外一个n位的数字;(2)数据类型不能被改变,例如一个只包含数字的字符串加密后输出的字符串也只能是数字;(3)数据必须能被确定性加密,例如对于数据库中作为主键或者索引字段的数据,被加密后将保留其所在的列作为主键或者索引的特性。
3.然而,目前的保型加密算法普遍效率较低,每轮加密完毕后都需要对明文和密文的格式进行检查,如果格式不一致时则需要对密文再次进行加密,增加了保型加密算法的调用次数,提高了计算开销。


技术实现要素:

4.本发明是为了解决上述问题而进行的,目的在于提供一种高效的保型加密算法,能够支持数值型数据、字母型数据、以及由数值型数据和字母型数据构成的混合型数据的统一,保证仅需一次保型加密就可以将明文的每个字符映射到密文的数据上,不需要对明密文格式进行检查,极大地减小了计算开销,提高了计算效率。
5.本发明为了实现上述目的,采用了以下方案:
6.本发明提供一种高效的保型数据加密算法,具有这样的特征,包括以下步骤:
7.步骤s1,根据第一预设划分规则对待加密数据进行划分处理得到包含m个特征字符的明文划分处理结果p=p1||p2…
||pm,并识别出每个特征字符的字符类型,待加密数据由数值、小写字母以及大写字母中的一种或更多种组成,m为不小于2的正整数,||为字符拼接符;
8.步骤s2,根据每个特征字符及对应的字符类型从预设数据域中检索获取对应的位置数值,并将特征字符替换为对应的位置数值得到明文字符串pm,预设数据域包含预设数值型子数据域、预设小写字母型子数据域以及预设大写字母型子数据域;
9.设定si为明文划分处理结果p中第i个特征字符pi对应的子数据域,|si|为pi对应的子数据域的大小,s
i,j
为si中的第j个元素,并设定起始位置j=0,si中每个元素s
i,j
的消息长度|s
i,j
|=2;
10.当si是数值型数据域时,si={00,01,...,09};
11.当si是小写字母型数据域或大写字母型数据域时,si={00,01,...,25};
12.步骤s3,对明文字符串pm进行左右划分处理得到左划分处理结果lm0和右划分处理结果rm0,且pm=lm0||rm0;
13.当m为偶数时,lm0=p1||

||p
m/2
,rm0=p
(m/2) 1
||

||pm;
14.当m为奇数时,lm0=p1||

||p
(m-1)/2
,rm0=p
(m 1)/2
||

||pm;
15.步骤s4,利用feistel结构对明文字符串pm进行r轮加密处理得到密文字符串pr=lmr||rmr,r为不小于2的正整数;在第i轮加密时,执行以下的操作:
16.(1)当m为奇数时:
17.当i《r且i为奇数时,lmi=rm
i-1

[0018][0019]
其中,zi用十六进制数表示且消息长度|zi|=2,|lm
i-1
|表示消息lm
i-1
的长度,trunc(aesk(rm
i-1
,|lm
i-1
|))表示采用密钥k对rm
i-1
进行aes加密并将加密后得到的二进制数转换为十六进制数后取出前|lm
i-1
|位,
[0020]
得到奇数轮输出结果:lm0=p1||...||p
(m 1)/2

[0021]
rm0=p
((m 1)/2) 1
||...||pm;
[0022]
当i《r且i为偶数时,lmi=rm
i-1
[0023][0024]
得到偶数轮输出结果:lm0=p1||...||p
(m-1)/2

[0025]
rm0=p
((m-1)/2) 1
||...||pm;
[0026]
当i=r时,lmi=rm
i-1
,rmi=lm
i-1

[0027]
(2)当m为偶数时:
[0028]
当i《r时,lmi=rm
i-1

[0029][0030]
得到轮输出结果:lm0=p1||...||p
m/2
,rm0=p
(m/2) 1
||...||pm;
[0031]
当i=r时,lmi=rm
i-1
,rmi=lm
i-1

[0032]
步骤s5,根据每个密文字符串pr中的已加密的位置数值及对应的字符类型从预设数据域中检索获取对应的字符,并将已加密的位置数值替换为对应的字符得到与特征字符对应的密文数据;
[0033]
步骤s6,根据第二预设划分规则对密文数据进行划分处理得到包含m个已加密的特征字符的密文划分处理结果q=q1||q2…
||qm,并识别出每个已加密的特征字符的字符类型;
[0034]
步骤s7,根据每个已加密的特征字符及对应的字符类型从预设数据域中检索获取对应的位置数值,并将已加密的特征字符替换为对应的位置数值得到密文字符串qc;
[0035]
步骤s8,对密文字符串qc进行左右划分处理得到左划分处理结果lcr和右划分处理结果rcr,且qc=lcr||rcr;
[0036]
步骤s9,利用feistel结构对密文字符串qc进行r轮解密处理得到明文字符串pm;在第i轮解密时,执行以下的操作:
[0037]
(1)当m为奇数时:
[0038]
当i《r且i为奇数,lc
r-i
=rc
r-i-1

[0039][0040]
其中,|lc
r-i 1
|表示消息lc
r-i 1
的长度,trunc(aesk(rc
r-i-1
,|lc
r-i-1
|))表示采用密钥k对rc
r-i-1
进行aes解密并将解密得到的二进制数转换为十六进制数后取出|lc
r-i-1
|位,
[0041]
得到奇数轮输出结果:lc0=p1||...||p
(m 1)/2

[0042]
rc0=p
((m 1)/2) 1
||...||pm;
[0043]
当i《r且i为偶数时,lci=rc
i-1

[0044][0044][0045]
偶数轮输出结果:lc0=p1||...||p
(m-1)/2
,rc0=p
((m-1)/2) 1
||...||pm;
[0046]
当i=r时,lc
r-i
=rc
r-i 1
,rc
r-i
=lc
r-i 1
[0047]
(2)当m为偶数时:
[0048]
当i《r时,lc
r-i
=rc
r-i 1

[0049][0050]
得到轮输出结果:lc0=p1||...||p
m/2
,rc0=p
(m/2) 1
||...||pm;
[0051]
当i=r时:lc
r-i
=rc
r-i 1
,rc
r-i
=lc
r-i 1

[0052]
步骤s10,根据明文字符串pm中的每个位置数值及对应的字符类型从预设数据域中检索获取对应的字符,并将位置数值替换为对应的字符得到与已加密的特征字符对应的明文数据。
[0053]
在本发明提供的高效的保型数据加密方法中,还可以具有这样的特征:其中,第一预设划分规则为逐比特划分。
[0054]
在本发明提供的高效的保型数据加密方法中,还可以具有这样的特征:其中,第二预设划分规则为逐字符划分。
[0055]
在本发明提供的高效的保型数据加密方法中,还可以具有这样的特征:其中,预设数值型子数据域n={00,01,

,09}={0,1,

,9},预设小写字母型子数据域l={00,01,

,25}={a,b,

,z},预设大写字母型子数据域u={00,01,

,25}={a,b,

,z},当y=n时,进行自定义的加法和减法运算的|y|=10,当y=l或y=u时,进行自定义的加法和减法运算的|y|=26。
[0056]
在本发明提供的高效的保型数据加密方法中,还可以具有这样的特征:其中,r为32。
[0057]
与现有技术相比,本发明提出的一种高效的保型加密算法构造保证了明文仅需加密一次,得到的密文就可以与明文的格式相一致,并结合一种保型加密的分词策略,就可以实现不需要对明密文格式进行检查,极大地减小了计算开销,提高了计算效率。
具体实施方式
[0058]
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下结合实施例对本发明作具体阐述。
[0059]
《实施例》
[0060]
在本实施例中,一种高效的保型数据加密算法,包括以下步骤:
[0061]
步骤s1,根据第一预设划分规则对待加密数据进行划分处理得到包含m个特征字符的明文划分处理结果p=p1||p2…
||pm,并识别出每个特征字符的字符类型,待加密数据由数值、小写字母以及大写字母中的一种或更多种组成,m为不小于2的正整数,||为字符拼接符。在本实施例中,第一预设划分规则为逐比特划分。
[0062]
步骤s2,根据每个特征字符及对应的字符类型从预设数据域中检索获取对应的位置数值,并将特征字符替换为对应的位置数值得到明文字符串pm,预设数据域包含预设数值型子数据域、预设小写字母型子数据域以及预设大写字母型子数据域。在本实施例中,预
设数值型子数据域n={00,01,

,09}={0,1,

,9},预设小写字母型子数据域l={00,01,

,25}={a,b,

,z},预设大写字母型子数据域u={00,01,

,25}={a,b,

,z},当y=n时,进行自定义的加法和减法运算的|y|=10,当y=l或y=u时,进行自定义的加法和减法运算的|y|=26。
[0063]
设定si为明文划分处理结果p中第i个特征字符pi对应的子数据域,|si|为pi对应的子数据域的大小,s
i,j
为si中的第j个元素,并设定起始位置j=0,si中每个元素s
i,j
的消息长度|s
i,j
|=2。
[0064]
当si是数值型数据域时,si={00,01,...,09};当si是小写字母型数据域或大写字母型数据域时,si={00,01,...,25}。
[0065]
步骤s3,对明文字符串pm进行左右划分处理得到左划分处理结果lm0和右划分处理结果rm0,且pm=lm0||rm0。
[0066]
当m为偶数时,lm0=p1||

||p
m/2
,rm0=p
(m/2) 1
||

||pm;
[0067]
当m为奇数时,lm0=p1||

||p
(m-1)/2
,rm0=p
(m 1)/2
||

||pm;
[0068]
步骤s4,利用feistel结构对明文字符串pm进行r轮加密处理得到密文字符串pr=lmr||rmr,r为不小于2的正整数,本实施例中,r为32;在第i轮加密时,执行以下的操作:
[0069]
(1)当m为奇数时:
[0070]
当i《r且i为奇数时,lmi=rm
i-1

[0071][0072]
其中,zi用十六进制数表示且消息长度|zi|=2,|lm
i-1
|表示消息lm
i-1
的长度,trunc(aesk(rm
i-1
,|lm
i-1
|))表示采用密钥k对rm
i-1
进行aes加密并将加密后得到的二进制数转换为十六进制数后取出前|lm
i-1
|位,
[0073]
得到奇数轮输出结果:lm0=p1||...||p
(m 1)/2

[0074]
rm0=p
((m 1)/2) 1
||...||pm;
[0075]
当i《r且i为偶数时,lmi=rm
i-1
[0076][0077]
得到偶数轮输出结果:lm0=p1||...||p
(m-1)/2

[0078]
rm0=p
((m-1)/2) 1
||...||pm;
[0079]
当i=r时,lmi=rm
i-1
,rmi=lm
i-1

[0080]
(2)当m为偶数时:
[0081]
当i《r时,lmi=rm
i-1

[0082][0083][0084]
得到轮输出结果:lm0=p1||...||p
m/2
,rm0=p
(m/2) 1
||...||pm;
[0085]
当i=r时,lmi=rm
i-1
,rmi=lm
i-1

[0086]
步骤s5,根据每个密文字符串pr中的已加密的位置数值及对应的字符类型从预设数据域中检索获取对应的字符,并将已加密的位置数值替换为对应的字符得到与特征字符对应的密文数据;
[0087]
步骤s6,根据第二预设划分规则对密文数据进行划分处理得到包含m个已加密的特征字符的密文划分处理结果q=q1||q2…
||qm,并识别出每个已加密的特征字符的字符类型。在本实施例中,第二预设划分规则为逐字符划分。
[0088]
步骤s7,根据每个已加密的特征字符及对应的字符类型从预设数据域中检索获取对应的位置数值,并将已加密的特征字符替换为对应的位置数值得到密文字符串qc。
[0089]
步骤s8,对密文字符串qc进行左右划分处理得到左划分处理结果lcr和右划分处理结果rcr,且qc=lcr||rcr。
[0090]
步骤s9,利用feistel结构对密文字符串qc进行r轮解密处理得到明文字符串pm;在第i轮解密时,执行以下的操作:
[0091]
(1)当m为奇数时:
[0092]
当i《r且i为奇数,lc
r-i
=rc
r-i-1

[0093][0094][0095]
其中,|lc
r-i 1
|表示消息lc
r-i 1
的长度,trunc(aesk(rc
r-i-1
,|lc
r-i-1
|))表示采用密钥k对rc
r-i-1
进行aes解密并将解密得到的二进制数转换为十六进制数后取出|lc
r-i-1
|位,
[0096]
得到奇数轮输出结果:lc0=p1||...||p
(m 1)/2

[0097]
rc0=p
((m 1)/2) 1
||...||pm;
[0098]
当i《r且i为偶数时,lci=rc
i-1

[0099][0100]
偶数轮输出结果:lc0=p1||...||p
(m-1)/2
,rc0=p
((m-1)/2) 1
||...||pm;
[0101]
当i=r时,lc
r-i
=rc
r-i 1
,rc
r-i
=lc
r-i 1
[0102]
(2)当m为偶数时:
[0103]
当i《r时,lc
r-i
=rc
r-i 1

[0104][0105]
得到轮输出结果:lc0=p1||...||p
m/2
,rc0=p
(m/2) 1
||...||pm;
[0106]
当i=r时:lc
r-i
=rc
r-i 1
,rc
r-i
=lc
r-i 1

[0107]
步骤s10,根据明文字符串pm中的每个位置数值及对应的字符类型从预设数据域中检索获取对应的字符,并将位置数值替换为对应的字符得到与已加密的特征字符对应的明文数据。
[0108]
上述实施方式为本发明的优选案例,并不用来限制本发明的保护范围。
再多了解一些

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

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

相关文献