Crypto++ 库是一个用c++ 编写的密码类库,是一个
自由软件。
简介
Crypto++库的开发者是Wei Dai,非常好,标准的C++模板,不论是学习还是从应用的角度,都是难得的教材。算是提供一个给大家多学习和交流的机会
特征
Crypto++™ Library 5.1于2003年3月22日发布,目前的最高的版本是Crypto++ Library 5.6.2,该版本加入了除了作者Wei Dai以外的另外一些作者的代码重新包装成类,类库里主要包含下列的内容:
2、
高级加密标准AES(Advanced Encryption Standard) Rijndael和AES候选算法:
RC6, MARS,
Twofish, Serpent, CAST-256
1997年4月15日美国
国家标准技术研究所
NIST发起征集高级加密标准AES算法的活动,目的是为确定一个安全性能更好的分组密码算法用于取代
DES,AES的基本要求是比三重DES快并且至少与DES一样安全,分组长度为128位,密钥长度为128位,192位或256位.2001年11月26日,NIST正式公布高级加密标准AES, AES的安全性能是良好的,经过多年来的分析和测试,至今没有发现AES的明显缺点,也没有找到明显的
安全漏洞. AES能够抵抗目前已知的各种攻击方法的攻击。
3、 对称
分组密码:IDEA, DES, Triple-DES (DES-EDE2 and DES-EDE3), DESX (DES-XEX3),
RC2,
RC5, Blowfish, Diamond2, TEA, SAFER, 3-
WAY, GOST, SHARK, CAST-128, Square, Skipjack。
分组密码又称为秘密钥密码或对称密码。利用分组密码对明文进行加密时,首先需要对明文进行分组,每组的长度都相同,然后对每组明文分别加密得到等长的
密文,分组密码的特点是加密密钥与解密密钥相同。分组密码的安全性应该主要依赖于密钥,而不依赖于对
加密算法和解密算法的保密。因此,
分组密码的加密和解密算法可以公开。
4、 一般的密码模式:ECB,
CBC, CBC ciphertext stealing (CTS), CFB, OFB, counter mode (CTR) 。
电子密本(ECB), 密码
分组链接(CBC),
输出反馈(OFB)和
密文反馈(CFB)
5、
序列密码:Panama, ARC4, SEAL, WAKE, WAKE-OFB, BlumBlumShub
序列密码可以认为是起源于20世纪20年代的Vernam体系,当Vernam体制中的密钥序列是随机的(0,1)时,他就是“
一次一密“
密码体制。Shannon已经证明了“一次一密“密码体制在理论上是不可破译的。由于随机的密钥序列产生、存储以及分配等方面存在一定的困难,Vernam体制在当时并没有得到广泛的应用。随着微电子技术和数学理论的发展与完善,基于
伪随机序列的
序列密码得到了长足的发展和应用。在序列密码中,加密和解密所用的密钥都是伪随机序列,伪随机序列的产生比较容易并且有比较成熟的数学理论工具,目前,序列密码是 世界各国的军事和外交等领域中使用的主要密码体制之一。
6、
公钥密码:
RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin, Rabin-Williams (RW), LUC, LUCELG, DLIES (variants of DHAES), ESIGN
在
公钥密码体制中加秘密钥和解密密钥是不一样的,加密密钥可以公开传播而不危及
密码体制的安全性。
RSA公钥密码体制的安全性是基于大整数的素分解问题的
难解性,
7、公钥密码系统补丁:PKCS#1 v2.0, OAEP, PSSR, IEEE P1363 EMSA2
8、
密钥协商方案:
Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH
9、椭圆曲线密码:ECDSA, ECNR, ECIES, ECDH, ECMQV
hash函数是一种将一种任意长度的消息(message)压缩为某一固定长度的
消息摘要(message digest)的函数。hash函数可以用于
数字签名和消息的
完整性检测。
MD2,
MD4,
MD5, HAVAL, RIPEMD-160, Tiger,
SHA-2 (SHA-256, SHA-384, and SHA-512), Panama
11、
消息认证码(
MAC):MD5-MAC, HMAC, XOR-MAC, CBC-MAC, DMAC
12、基于密码结构的
Hash函数:Luby-Rackoff,
MDC13、伪随机数发生器(PRNG): ANSI X9.17 appendix C, PGP's RandPool
14、password based key derivation functions:PBKDF1 and PBKDF2 from PKCS #5
15、压缩和解压算法
17、有限范围内的算法包括
GF(p) 和GF(2^n)
等等。