Crypto++(也稱作CryptoPPlibcrypto++libcryptopp)是一套自由开源C++ 密碼學函式庫。在學術界、學生專案、開源專案,甚至是商業用途,Crypto++ 都被廣泛地使用。

Crypto++
開發者最初由戴维英语Wei Dai開發,2015 年後為 Crypto 專案團隊開發
首次发布1995
当前版本
  • 5.6.5 (2018年4月8日)[1]
  • 8.7.0 (2022年8月7日;穩定版本)[2]
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
编程语言C++
操作系统Cross-platform
类型安全性加密函式庫
许可协议Boost授權條款(原為 Crypto++ 授權)/ 獨立檔案為 公有領域 授權
网站www.cryptopp.com

演算法 编辑

除了完整支持常見的演算法,Crypto++ 也包含了較冷門、較少被使用的演算法,例如 CamelliaISO/NESSIE英语NESSIE/IETF 核可的 區塊加密法,與 AES 大致相同;而 Whirlpool英语Whirlpool (cryptography)ISO/NESSIE英语NESSIE/IETF 核可的 密碼雜湊函式,與 SHA 大致相同。這兩套冷門的演算法都包含在 Crypto++ 之中。 [3][4]

另外,Crypto++ 函式庫有時也會提出很先進的演算法、實作供密碼學界研究。例如 VMAC英语VMAC 以雜湊為基礎的通用 訊息認證碼,在將其提交給 IETF 的過程中,就被 Crypto++ 函式庫支持了。另外還有 ECC Brainpool英语ECC Brainpool 曲線,於 2009 年被加入 RFC 5639 草稿中,在同月被加入 Crypto++ 5.6.0 中。 [5] [6]

Crypto++ 演算法及實作
理論或操作 演算法及實作
偽隨機數生成英语Pseudorandom number generator LCG, KDF2, Blum Blum Shub, ANSI X9.17, 梅森旋轉算法, RDRAND, RDSEED
串流加密法 ChaCha8/12/20, ChaCha20 (IETF version), HC-128 and HC-256英语HC-256, Panama英语Panama (cryptography), Rabbit英语Rabbit (cipher), Salsa20, SOSEMANUK英语SOSEMANUK, XSalsa20
AES候選標準 Rijndael (高级加密标准评选过程), RC6, MARS英语MARS (cryptography), Twofish, Serpent, CAST-256英语CAST-256
其他區塊加密法 ARIA英语ARIA_(cipher), 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英语CCM mode, GCM英语Galois/Counter Mode, EAX英语EAX mode, ChaCha20Poly1305
區塊加密法填充模式 PKCS#5, PKCS#7, Zeros, One and zeros, W3C Padding
訊息識別碼 VMAC, HMAC, CMAC, CBC-MAC英语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英语Tiger (hash function), WHIRLPOOL英语Whirlpool (cryptography), 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
金鑰交換協定英语Key-agreement protocol 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
私鑰分享協定英语Secret sharing Shamir's Secret Sharing英语Shamir's Secret Sharing, Rabin's information dispersal algorithm英语information dispersal algorithm (IDA)

參考 编辑

  1. ^ Release 5.6.5. 2018年4月8日 [2018年4月8日]. 
  2. ^ https://cryptopp.com/release870.html.
  3. ^ Japan's First 128-bit Block Cipher 'Camellia' Approved as a New Standard Encryption Algorithm in the Internet. physorg.com. [2010-08-12]. (原始内容存档于2012-01-06). 
  4. ^ Wu, Kehe; Li, Yi; Chen, Long; Wang, Zhuxiao. Research of Integrity and Authentication in OPC UA Communication Using Whirlpool Hash Function. Applied Sciences. 2015-08-21, 5 (3): 446–458. ISSN 2076-3417. doi:10.3390/app5030446. 
  5. ^ Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation. RFC 5639. IETF. 2009 [2010-08-08]. (原始内容存档于2021-05-04). 
  6. ^ Crypto++ 5.6.0 Release Notes. Crypto++ Website. 2009 [2010-08-08]. (原始内容存档于2021-02-24).