密码函数库的研究和实现_毕业论文

毕业论文移动版

毕业论文 > 数学论文 >

密码函数库的研究和实现

摘要随着信息化时代的迅速发展,信息的安全性问题也受到广泛关注,国内外的许多科研人员也开发出了许多加密解密的算法库,这些算法库有些以软件包的形式提供给用户,方便用户直接安装使用,目前应用较为广泛的密码算法库有 Crypto++库、OpenSSL 库、CyaSSL、jsCrypto、Crypto-JS和 pidCrypt。Crypto++库通过了 FIPS 的140-2 验证因此具有良好的安全性能,同时具有良好的跨平台性能,本文首先介绍了密码学的一些基础知识,然后着重介绍了Crypto++库及其封装地加密算法,并相应的介绍了其他几类算法库,最后重点研究了基于Crypto++库的对称加密的 AES 算法和公钥加密的RSA 算法在文件加密方面的应用,并形成了一个 MFC应用程序,最后验证了这两种算法的可行性。50091
毕业论文关键词 文件加密,Crypto++,AES,RSA
Title Research and Implementation of Cryptographic LibraryAbstractWith the rapid development of the information age, information security has also beenconcerned widely. Many researchers at home and abroad developed lots of encryption anddecryption algorithm libraries, these algorithm libraries are served as software packages whichare pretty available to the users. They are also convenient for the users to install and use directly.Presently, the most widely used cryptographic algorithm libraries are Crypto++ library,OpenSSL library, CyaSSL, jsCrypto, Crypto-JS and pidCrypt.Crypto++ library had been tested through the FIPS 140-2 validation, therefore it has good safetyperformance as well as good cross-platform performance. This paper emphatically introducesthe Crypto++ library and encryption algorithms it has been encapsulated, and then introducesseveral other algorithms library. Finally it focus on the file encryption using AES algorithm ofsymmetric encryption algorithm and RSA algorithm of public key encryption algorithm. At lastit make a formation of an MFC application.
Keywords File encryption,Crypto++,AES,RSA

目次

1引言1

1.1国内外研究现状1

1.2本文所做的工作1

1.3本文结构安排1

2密码学基础知识...2

2.1对称密码算法2

2.2非对称密码算法3

2.3Hash函数5

3常用的密码算法库...6

3.1Crypto++库.6

3.2OpenSSL.8

3.3其他常用库...10

4文件加密解密实现.11

4.1Crypto++库的编译实现...11

4.2应用程序相关演示.11

4.3文件加密解密编程及验证..13

结论26

致谢27

参考文献.28
1 引言1.1 国内外研究现状密码技术尤其是加密技术是信息安全中的核心技术,目前,国内外不仅在密码的理论方面的研究发展较好,并且在实际应用中也是成果很多。对于已经提出并证实安全的加密算法通常以软件包或加密卡的形式提供给用户。对于以软件包形式提供给用户的加密算法库常用的有 Crypto++库、OpenSSL 库、CyaSSL,jsCrypto和Crypto-JS 和pidCrypt。这几个加密算法库都是开源的, 其中Crypto++库是一个基于标准的 C++模板的密码类库,包含了大部分的通用的加密算法和方案。 它的开发者是 Wei Dai, 目前最新的版本是 Crypto++Library 5.6.3,这个版本的组成不仅有原作者所编写的代码还添加了其他开发人员的一些编码一起封装。Crypto++库使用起来较为方便,并且跨平台性能较好。OpenSSL 是一个基于C 语言的软件包,它的功能是实现了安全套接层协议(SSL)及相关加密解密技术,它可以实现消息摘要、文件的加密和解密、数字证书、数字签名和随机数字等。 不过一般研发人员并不是将它作为一个大数库,而是用来实现和应用安全套接层协议,当然其中也可以实现大整数的一些功能。CyaSSL 软件包能够实现一个具有双向协议的安全套接层协议,一般经常将这个软件包应用在嵌入式的设备中。jsCrypto,Crypto-JS和 pidCrypt 是 java script 实现的加密解密库。同样支持多种算法。1.2 本文所做的工作本文介绍了目前使用较多的加密算法库,介绍这些库支持的算法和功能,并详细介绍了Crypto++库的相关内容和使用方法。通过了解Crypto++库的使用方法,首先编译生成自己的软件开发工具包,然后利用生成的库文件和库中提供的头文件、库函数实现了对文件加密解密的编码,主要运用的是对称加密算法中的 AES 算法和公钥加密算法中的 RSA 算法,最后生成一个基于对话框的 MFC 应用程序,并验证所做编程的正确性。1.3 本文结构安排通过对 Crypto++库的学习了解到应用并形成应用程序,本文共分成四章。在第一章对本文进行了概述,使大家对文章的脉络有个醒目的认识。 (责任编辑:qin)