簡介
Crypto++庫的開發者是Wei Dai,非常好,標準的C++模板,不論是學習還是從套用的角度,都是難得的教材。算是提供一個給大家多學習和交流的機會
特徵
Crypto++™ Library 5.1於2003年3月22日發布,目前的最高的版本是Crypto++ Library 5.6.2,該版本加入了除了作者Wei Dai以外的另外一些作者的代碼重新包裝成類,類庫里主要包含下列的內容:
1、 用抽象類定義API類的繼承層次
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
10、 單向hash函式:
hash函式是一種將一種任意長度的訊息(message)壓縮為某一固定長度的訊息摘要(message digest)的函式。hash函式可以用於數字簽名和訊息的完整性檢測。
SHA-1,:
安全hash算法SHA
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, MDC
13、偽隨機數發生器(PRNG): ANSI X9.17 appendix C, PGP's RandPool
14、password based key derivation functions:PBKDF1 and PBKDF2 from PKCS #5
15、壓縮和解壓算法
16、大整數和多項式快速精確算法
17、有限範圍內的算法包括GF(p) 和GF(2^n)
18、素數的產生和驗證
等等。