Crypto++
Crypto++(也称作CryptoPP、libcrypto++或libcryptopp)是一套自由开源的 C++ 密码学函数库。在学术界、学生项目、开源项目,甚至是商业用途,Crypto++ 都被广泛地使用。
![]() | |
开发者 | 最初由戴维开发,2015 年后为 Crypto 项目团队开发 |
---|---|
首次发布 | 1995 |
当前版本 | |
源代码库 | |
编程语言 | C++ |
操作系统 | Cross-platform |
类型 | 安全性加密函数库 |
许可协议 | Boost授权条款(原为 Crypto++ 授权)/ 独立文件为 公有领域 授权 |
网站 | www |
算法
除了完整支持常见的算法,Crypto++ 也包含了较冷门、较少被使用的算法,例如 Camellia 是 ISO/NESSIE/IETF 核可的 区块加密法,与 AES 大致相同;而 Whirlpool 是 ISO/NESSIE/IETF 核可的 密码哈希函数,与 SHA 大致相同。这两套冷门的算法都包含在 Crypto++ 之中。 [3][4]
另外,Crypto++ 函数库有时也会提出很先进的算法、实作供密码学界研究。例如 VMAC 以哈希为基础的通用 消息认证码,在将其提交给 IETF 的过程中,就被 Crypto++ 函数库支持了。另外还有 ECC Brainpool 曲线,于 2009 年被加入 RFC 5639 草稿中,在同月被加入 Crypto++ 5.6.0 中。 [5] [6]
理论或操作 | 算法及实作 |
---|---|
伪随机数生成 | LCG, KDF2, Blum Blum Shub, ANSI X9.17, 梅森旋转算法, RDRAND, RDSEED |
串流加密法 | ChaCha8/12/20, ChaCha20 (IETF version), HC-128 and HC-256, Panama, Rabbit, Salsa20, SOSEMANUK, XSalsa20 |
AES 及候选标准 | Rijndael (高级加密标准评选过程), RC6, MARS, Twofish, Serpent, CAST-256 |
其他区块加密法 | ARIA, Blowfish, Camellia, CHAM, HIGHT, IDEA, Kalyna (128/256/512), LEA, RC5, 3DES (2- and 3-key), SEED, SHACAL-2, Simon (64/128), Speck (64/128), SIMECK, Skipjack, SM4, TEA, Threefish (256/512/1024), XTEA |
区块加密法工作模式 | ECB, CBC, CTS, CFB, OFB, CTR, XTS |
认证加密模式 | CCM, GCM, EAX, ChaCha20Poly1305 |
区块加密法填充模式 | PKCS#5, PKCS#7, Zeros, One and zeros, W3C Padding |
消息识别码 | VMAC, HMAC, CMAC, CBC-MAC, DMAC, Two-Track-MAC |
密码哈希函数 | BLAKE2 (BLAKE2b and BLAKE2s), Keccak, SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, and SHA-512), SHA3, Tiger, WHIRLPOOL, RIPEMD (RIPEMD-128, RIPEMD-160, RIPEMD-256, and RIPEMD-320) |
密钥衍生函数 | PBKDF1 and PBKDF2 from PKCS #5, PBKDF from PKCS #12 appendix B, Krawczyk and Eronen's HKDF |
公开密钥加密 | RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin-Williams (RW), LUC, LUCELG, DLIES (DHAES 的变体), ESIGN, curve25519 |
公钥密码学填充模式 | PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363 EMSA2 and EMSA5 |
密钥交换协定 | Diffie–Hellman (DH), Unified Diffie–Hellman (DH2), Menezes–Qu–Vanstone (MQV), Hashed MQV (HMQV), Fully Hashed MQV (FHMQV), LUCDIF, XTR-DH, x25519 |
椭圆曲线密码学 | ECDSA, ECNR, ECIES, ECDH, ECMQV, Ed25519 |
私钥分享协定 | Shamir's Secret Sharing, Rabin's information dispersal algorithm (IDA) |
参考
- . 2018年4月8日 [2018年4月8日].
- https://cryptopp.com/release870.html.
- . physorg.com. [2010-08-12]. (原始内容存档于2012-01-06).
- Wu, Kehe; Li, Yi; Chen, Long; Wang, Zhuxiao. . Applied Sciences. 2015-08-21, 5 (3): 446–458. ISSN 2076-3417. doi:10.3390/app5030446.
- . RFC 5639. IETF. 2009 [2010-08-08]. (原始内容存档于2021-05-04).
- . Crypto++ Website. 2009 [2010-08-08]. (原始内容存档于2021-02-24).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.