DES文件加密(C++实现).docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DES文件加密(C实现)

编号 基于C++的DES算法实现Implementation of DES?algorithm based on C++学 生 姓 名专 业学 号指 导 教 师学 院二〇一四年七月摘 要: 在对DES分组密码算法详细介绍的基础上,用MFC实现了DES算法的可视化演示平台。该平台动态DES加密过程中每一阶段密文和密钥的变换情况,通过再现DES加/解密过程的途径,实现使用DES算法加密解密文件的方式。关键词: MFC, DES,加密解密,文件, 密钥DES算法介绍随着计算机和Internet技术的普及,网络通信已经渗透到社会的各个方面,信息安全问题已受到人们极大的关注。如何保证信息在传送时不会被窃密者窃取并破译,是网络技术人员以及密码学家们所面临的问题。要想使信息可靠传输,发信者必须对所发的数据(即明文)通过加密系统变成密文,收信者收到密文后再用相应的解密系统对密文解密恢复成明文。而《密码学新动向》的发表和美国数据加密标准DES的颁布实施标志着密码学的诞生,密码学在网络安全方面发挥着越来越重要的作用。??密码学是一门古老的学科,在密码学发展的历史上,出现了多种加密方法,又很早的古典加密算法,后来又出现了更成熟的分组密码,公钥密码及流密码等,因为我只涉及了分组公钥密码,所以在这篇文章中就暂且先介绍分组密码,在说分组密码之前要说的就是密码学中常见的两种体制,一种是对称密码体制,一种是非对称密码体制,也叫公钥密码体制。 对称密码体制是指如果一个加密系统的加密密钥和解密密钥相同,或者虽然不同,但是由其中的任意一个可以很容易地推导出另一个,即密钥是双方共享的。目前常用的密码系统根据其加密方式,可分为基于信息理论的密码系统和基于复杂性理论的密码系统,前者是以香农定理为理论依据,后者则是通过复杂算法来实现,主要有RSA公钥密码算法和DES分组密码算法. 在国内,随着三金工程(金桥工程、金关工程和金卡工程)、尤其是金卡工程的启动,DES算法在Pos、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛使用,以此来实现关键数据的必威体育官网网址。如信用卡持卡人的PIN加密传输、IC卡与Pos间的双向认证、金融交易数据包的MAC校验等均用到DES算法。本文将详细介绍DES分组密码算法,并且设计实现基于MFC的DES算法可视化演示平台。该平台的设计与实现能方便观测DES算法加/解密过程中密文和密钥在各阶段的变化过程,形象地再现了DES算法加/解密的迭代过程。?1 DES分组密码算法?DES (Data Encryption Standard )算法是1977年由美国国家标准局NBS(National Bureau of Standard)颁布的标准,用于商业和非机密的政府应用领域的加密,是在IBM的Lucifer算法的基础上设计的,后被国家标准局采用[2]。?简单地说,密码算法只不过是两种基本加密技术——混乱和扩散的组合。DES基本分组也是这些技术的组合(先代替后置换),它基于密钥作用于明文。DES有16轮,这意味着要在明文分组上16次实施相同的组合技术,如图1所示。??DES算法的入口参数有Key、Data、Mode三个,其中Key为8 B,共64 bit,是DES算法的工作密钥;Data是8 B、64 bit的被加/解密的数据;Mode为工作方式,有解密和加密两种。 ?在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行加密,然后以密文形式在公共通信网(如电话网)中传输到目的地后,用同样的Key对密文进行解密,便再现了明文形式的核心数据。这样就保证了核心数据在公共网络中传输的安全性和可靠性。通过定期同时更新通信网络中源端和目的端的Key,便能提高数据的必威体育官网网址性。?1.1? DES算法概述?DES是一个分组加密算法,一次加密64 bit的明文分组,输出是64 bit的密文分组。DES对64 bit的明文分组进行操作,首先通过一个初始置换,将明文分成左半部分和右半部分,各长32 bit,然后进行16轮完全相同的运算。经过16轮后,左、右半部分合在一起经过一个末置换(初始置换的逆过程),这样就完成了该算法。? 其中Bi是第i次迭代结果,Li和Ri是Bi的左半部分和右半部分,Ki是第i轮的密钥,F是实现代替、置换及密钥异或等运算的函数。 ?如图2所示,从密钥的56 bit中选出48 bit,通过一个扩展置换将数据的右半部分扩展成48 bit,并通过一个异或操作与48 bit密钥结合;通过8个S盒将48 bit替代成新的32 bit数据,再将其置换一次,这四步运算构成了函数F(Ri,Ki+1)。通过一个异或运算将函数F(Ri, Ki+1)的输出与左半部分结合,原来的右半部分即成为左半部分。将该操作重复16次便实现了DES的

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档