目次
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++库的学习了解到应用并形成应用程序,本文共分成四章。在第一章对本文进行了概述,使大家对文章的脉络有个醒目的认识。