- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DES加密算法的实现及应用
第 PAGE \* Arabic 20页 共 NUMPAGES \* Arabic 20页
DES加密算法的实现及应用
学生姓名:梁帅 指导老师:熊兵
摘 要 随着信息与通信技术的迅猛发展和广泛应用,人们通过互联网进行信息交流,难免涉及到密码保护问题,这就需要使用DES加密技术来对数据进行加密保护。本课程设计介绍了DES加密的基本原理以及简单的实现方法。本课程设计基于C语言,采用DES算法技术,设计了DES加密程序,实现了DES加密解密功能。经测试,程序能正常运行,实现了设计目标。
关键词 DES加密,C语言,信息交流
1 引 言
1.1本文主要内容
DES是一个分组密码算法,使用64位密钥(除去8位奇偶校验,实际密钥长度为56位)对64比特的数据分组(二进制数据)加密,产生64位密文数据。DES是一个对称密码体制,加密和解密使用同意密钥,解密和加密使用同一算法(这样,在硬件与软件设计时有利于加密单元的重用)。DES的所有的保密性均依赖于密钥。
DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。??
DES算法是这样工作的:如Mode为加密,则用Key?去把数据Data进行加密,?生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性
DES的加密过程:?
第一阶段:初始置换IP。在第一轮迭代之前,需要加密的64位明文首先通过初始置换IP?的作用,对输入分组实施置换。最后,按照置换顺序,DES将64位的置换结果分为左右两部分,第1位到第32位记为L0,第33位到第64位记为R0。?
第二阶段:16次迭代变换。DES采用了典型的Feistel结构,是一个乘积结构的迭代密码算法。其算法的核心是算法所规定的16次迭代变换。DES算法的16才迭代变换具有相同的结构,每一次迭代变换都以前一次迭代变换的结果和用户密钥扩展得到的子密钥Ki作为输入;每一次迭代变换只变换了一半数据,它们将输入数据的右半部分经过函数f后将其输出,与输入数据的左半部分进行异或运算,并将得到的结果作为新的有半部分,原来的有半部分变成了新的左半部分。用下面的规则来表示这一过程(假设第i次迭代所得到的结果为LiRi):?Li?=?Ri-1;?Ri?=?Li-1⊕f(Ri-1,Ki);在最后一轮左与右半部分并未变换,而是直接将R16?L16并在一起作为未置换的输入。?
第三阶段:逆(初始)置换。?他是初始置换IP的逆置换,记为IP-1。在对16次迭代的结果(R16?L16)再使用逆置换IP-1后得到的结果即可作为DES加密的密文Y输出,即Y?=?IP-1?(R16?L16)。?
DES解密过程:?
DES的解密算法与其加密算法使用的算法过程相同。两者的不同之处在于解密时子密钥Ki的使用顺序与加密时相反,如果子密钥为K1K2…K16,那么解密时子密钥的使用顺序为K16K15…K1,即使用DES解密算法进行解密时,将以64位密文作为输入,第1次迭代运算使用子密钥K16,第2次迭代运算使用子密钥K15,……,第16?次迭代使用子密钥K1,其它的运算与加密算法相同。这样,最后输出的是64位明文。
对数据进行加密传输能有效地保证数据的机密性,DES是一个保证数据机密性的经典算法,本次课程设计将基于C语言简单实现DES加密解密算法
本文第二节介绍了DES算法的实现原理,第三节详细描述了DES加密算法的设计步骤,第四节为结束语。
1.2设计平台
笔记本,
windows7 64bit操作系统,
Microsoft Visual C++6.0,
C语言。
2 设计原理
2.1对称密码算法简介?
对称加密(也叫 HYPERLINK /view/493846.htm \t _blank 私钥加密)指加密和解密使用相同 HYPERLINK /view/934.htm \t
文档评论(0)