第二章介绍了一些基本的密码学知识,让大家初步了解算法的实现过程和信息加密解密。 第三章介绍了目前使用较多的密码算法库,并对其功能和使用方法做了说明。第四章则是对算法库的实现,本文对使用Crypto++库进行文件加密解密做了研究和实现,主要用了 AES算法和 RSA算法,并编写了一个 MFC 应用程序,最后做了验证。2 密码学基础知识密码学研究的是如何编写密码和破解密码。密码是交换信息的双方用一定的规则也称算法进行信息数据的特殊变换的保密方式。密码算法主要可分为两种:一种是对称加密算法,一种是非对称加密算法又称为公钥加密算法,密码技术是信息安全的核心技术。要保证计算机网络环境下的数据信息等不被恶意窃取或修改,就要用到加密解密技术,加密消息时,要使用加密密钥[1]。在公钥算法中这就类型于用一把钥匙去锁一把锁一样。当解密这个消息时,必须用相应的解密密钥。因此在使用非对称加密算法加密时就要严格限制和管理解密密钥,因为如果解密密钥又称私钥被不小心窃取,那么无论是谁得到它都可能可以解开对应的公钥加密的数据或消息。公钥加密算法的安全保密性能较好,不需要用户像对称加密算法一样共有密钥,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。然而在对称加密算法中,我们使用同一密钥对数据或文件进行加密解密,密钥更改则不能解密得到原消息或文件。对称加密算法对于使用者使用起来容易上手,并且它的特点是密钥较短,然而破译起来又比较困难源Z自-优尔+文/论^文]网[www.youerw.com。下面就介绍了几种常用的对称加密和非对称加密的算法。
2.1 对称密码算法对称密码算法从加密模式上可分为流密码和分组密码。流密码是加密时逐位加密;分组密码是将明文分成固定长度的块,用相同的密钥按块加密,其输出的也是固定长度的密文。对称密码适合对数据或文件内存较大的加密解密。目前,较为成熟的对称密钥算法有 DES及其替代的 AES 算法。2.1.1 DES(数据加密标准)DES是一种特殊类型的迭代密码,称为Feistel 型密码。它的基本形式如下:我们将每一组被加密的消息分成相同长度的两半 iL 和 iR 。采用的轮函数为) , ( ) , (1 1 i i i iR L R L g ,其中1 i iR L , ) , (1 1 i i i iK R f L R 这里的函数 f 并不需要满足任何单射条件, 因为任何一个 Feistel 型轮函数一定为可逆的,给定一个轮密钥,就有:) , (1 i i i iK L f R L , i iL R 1DES加密共进行16 轮,它的分组长度为64,用 56比特的密钥来加密 64 比特的明文串,