一种DES加密算法的实现方法与流程

文档序号:11253701阅读:307来源:国知局

本发明涉及加密技术领域,具体涉及一种des加密算法的实现方法。



背景技术:

信息是一种资源,也是一种财富。在现代社会中,信息处理和通信技术日益发展,保护信息的安全,特别是保护重要信息的安全,已成为国际社会普遍关注的重大问题,当今网络社会选择加密已是我们别无选择,其一是我们知道在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。而且这种不安全性是互联网存在基础——tcp/ip协议所固有的,包括一些基于tcp/ip的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业。



技术实现要素:

本发明针对上述所要解决的问题,提供一种des加密算法的实现方法。

为实现本发明的目的,本发明所采用的技术方案是:

一种des加密算法的实现方法,主要包括以下步骤:(1)创建16个子密钥,每个长度是48位,根据指定的顺序或“表”置换64位的密钥,如果表中的第一项是"27",这表示原始密钥k中的第27位将变成置换后的密钥k+的第一位,如果表的第二项是36,则这表示原始密钥中的第36位将变成置换后密钥的第二位,以此类推,置换后的密钥中只出现了原始密钥中的56位;(2)将这个密钥分成左右两半,c0和d0,每一半28位,定义了c0和d0之后,创建16个cn和dn块,其中1<=n<=16,每一对cn和dn块都通过使用标识“左移位”的表分别从前一对cn-1和dn-1形成,n=1,2,...,16,而“左移位”表说明了要对哪一位进行操作,在所有情况下,单一左移位表示这些位轮流向左移动一个位置,在一次左移位之后,28个位置中的这些位分别是以前的第2、3„„28位;(3)编码每个64位的数据块;(4)解密。

所述步骤3的具体实现方法:使用函数f来生成一个32位的块,函数f对两个块进行操作,一个是32位的数据块,一个是48位的密钥kn,连续迭代16次,其中1<=n<=16,用+表示xor加法(逐位相加,模除2),然后,n从1到16,计算ln=rn-1rn=ln-1+f(rn-1,kn),即在每次迭代中,我们用前一结果的右边32位,并使它们成为当前步骤中的左边32位,对于当前步骤中的右边32位,我们用算法fxor前一步骤中的左边32位。

所述函数f的计算方法为:首先将每一块rn-1从32位扩展到48位,得到f(rn-1)的输入块是32位,输出块是48位。f的输出是48位,写成8块,每块6位;将每组中的6位经历一次变换,在“s盒”的中,把这些位当作地址使用,每组6位在不同的s盒中表示不同的地址,该地址中是一个4位数字,它将替换原来的6位。最终结果是8组,每组6位变换成8组,每组4位(s盒的4位输出),总共32位;对s盒输出执行置换p,以得到f的最终值。

所述步骤4的解密只是加密的逆过程,使用以上相同的步骤,但要逆转应用子密钥的顺序。

本发明提供的一种des加密算法的实现方法,针对互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输等起到防止在网络上被拦截和窃取的作用。

具体实施方式

下列对本发明的实施作进一步的说明,以便本领域的技术人员能够更好的理解并实施。

实施例1

一种des加密算法的实现方法,主要包括以下步骤:(1)创建16个子密钥,每个长度是48位,根据指定的顺序或“表”置换64位的密钥,如果表中的第一项是"27",这表示原始密钥k中的第27位将变成置换后的密钥k+的第一位,如果表的第二项是36,则这表示原始密钥中的第36位将变成置换后密钥的第二位,以此类推,置换后的密钥中只出现了原始密钥中的56位;(2)将这个密钥分成左右两半,c0和d0,每一半28位,定义了c0和d0之后,创建16个cn和dn块,其中1<=n<=16,每一对cn和dn块都通过使用标识“左移位”的表分别从前一对cn-1和dn-1形成,n=1,2,...,16,而“左移位”表说明了要对哪一位进行操作,在所有情况下,单一左移位表示这些位轮流向左移动一个位置,在一次左移位之后,28个位置中的这些位分别是以前的第2、3„„28位;(3)编码每个64位的数据块:使用函数f来生成一个32位的块,函数f对两个块进行操作,一个是32位的数据块,一个是48位的密钥kn,连续迭代16次,其中1<=n<=16,用+表示xor加法(逐位相加,模除2),然后,n从1到16,计算ln=rn-1rn=ln-1+f(rn-1,kn),即在每次迭代中,我们用前一结果的右边32位,并使它们成为当前步骤中的左边32位,对于当前步骤中的右边32位,我们用算法fxor前一步骤中的左边32位。

所述函数f的计算方法为:首先将每一块rn-1从32位扩展到48位,得到f(rn-1)的输入块是32位,输出块是48位。f的输出是48位,写成8块,每块6位;将每组中的6位经历一次变换,在“s盒”的中,把这些位当作地址使用,每组6位在不同的s盒中表示不同的地址,该地址中是一个4位数字,它将替换原来的6位。最终结果是8组,每组6位变换成8组,每组4位(s盒的4位输出),总共32位;对s盒输出执行置换p,以得到f的最终值。(4)解密只是加密的逆过程,使用以上相同的步骤,但要逆转应用子密钥的顺序。

以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。



技术特征:

技术总结
一种DES加密算法的实现方法,属于加密技术领域,由以下步骤实现:(1)创建16个子密钥,每个长度是48位,根据指定的顺序或“表”置换64位的密钥;(2)将这个密钥分成左右两半,C0和D0,每一半28位,定义了C0和D0之后,创建16个Cn和Dn块;(3)编码每个64位的数据块;(4)解密。本发明提供的一种DES加密算法的实现方法,针对互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输等起到防止在网络上被拦截和窃取的作用。

技术研发人员:不公告发明人
受保护的技术使用者:黄宗美
技术研发日:2016.11.29
技术公布日:2017.09.15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1