crypto是什么?

内容纲要

Crypto++ 库是一个用c++ 编写的密码类库,是一个自由软件。

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、素数的产生和验证

等等。

来源:https://baike.baidu.com/item/crypto/4587561?fr=aladdin