Crypto++

维基百科,自由的百科全书
跳转到导航 跳转到搜索
Crypto++
File:Crypto++-logo.png
开发者最初由戴维英语Wei Dai开发,2015年后为Crypto项目团队开发
首次发布1995
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    源代码库
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    编程语言C++
    引擎
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      操作系统Cross-platform
      类型安全性加密函数库
      许可协议Boost授权条款(原为 Crypto++ 授权)/ 独立文件为 公有领域 授权
      网站www.cryptopp.com

      Crypto++(也称作CryptoPPlibcrypto++libcryptopp)是一套自由开源C++密码学函数库。在学术界、学生项目、开源项目,甚至是商业用途,Crypto++都被广泛地使用。

      算法[编辑]

      除了完整支持常见的算法,Crypto++也包含了较冷门、较少被使用的算法,例如CamelliaISO/NESSIE英语NESSIE/IETF核可的分组密码,与AES 大致相同;而Whirlpool英语Whirlpool (cryptography)ISO/NESSIE英语NESSIE/IETF 核可的 密码散列函数,与SHA大致相同。这两套冷门的算法都包含在Crypto++之中。 [1][2]

      另外,Crypto++函数库有时也会提出很先进的算法、实现供密码学界研究。例如VMAC英语VMAC以散列为基础的通用消息认证码,在将其提交给IETF的过程中,就被Crypto++函数库支持了。另外还有ECC Brainpool英语ECC Brainpool曲线,于2009年被加入RFC 5639草稿中,在同月被加入Crypto++ 5.6.0中。 [3] [4]

      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, 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. ^ 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). 
      2. ^ 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. 
      3. ^ Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation. RFC 5639. IETF. 2009 [2010-08-08]. (原始内容存档于2021-05-04). 
      4. ^ Crypto++ 5.6.0 Release Notes. Crypto++ Website. 2009 [2010-08-08]. (原始内容存档于2021-02-24).