数据加密标准(DES)
数据加密标准是使用最广泛的加密体制,它于1977年被美国国家标准和技术研究所(NIST)采纳为联邦信息处理标准FIPS PUB 46。
DES | 3DES | AES | |
明文分组长度(位) | 64 | 64 | 128 |
密文分组长度(位) | 64 | 64 | 128 |
密钥长度(位) | 56 | 112或68 | 128、192或256 |
三重DES
三重DES(3DES)的使用延长了DES算法的寿命,它重复基本的DES算法三次,采用两个或三个不同的密钥,密钥长度为112位或168位。
高级加密标准(AES)
AES是一种更高效的代替DES的加密标准,它的分组长度为128位的对称分组密码,并能支持长度为128位、192位和256位的密钥。
流密码
分组密码
分组密码 - block cipher 能一次处理输入的一组元素,每个输入分组产生一个输出分组。
流密码
流密码 - stream cipher 则持续地处理输入元素,每次产生一个元素的输出,持续进行下去。
消息认证码
消息认证码(MAC)是一种认证技术,它利用秘密密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后。
这项技术假设通信双方,比如A和B,使用共同的秘密密钥,在A向B发送消息时,则A计算消息验证码,它是一个关于消息和密钥的复杂函数:。
因为消息可能时任意长度的,而消息认证码的长度很短很固定,所以理论上大量的消息中一定会产生相同的MAC。但是,因为抗碰撞性,实际中很难找到具有相同MAC的消息对。
哈希函数的抗碰撞性可以看我这篇博客
密码学学习笔记(六):Hash Functions - 哈希函数2_kingofyb的博客-CSDN博客
消息和认证码一起被发送给接收方。接收方对收到的消息用相同的秘密密钥进行相同的的计算得出新的消息验证码,并将收到的认证码和计算出的认证码进行比较。
公钥加密
- 明文(plaintext):算法的输入,是可读信息或数据。
- 加密算法(encryption algorithm):加密算法对明文进行各种交换。
- 公钥和私钥(public and private key):这是选出的一对密钥,这对密钥中一个用于加密,另一个用于解密。加密算法执行的变换依赖于公钥和私钥。
- 密文(ciphertext):算法的输出,其依赖于明文和密钥。对于给定的消息,不同的密钥产生的密文不同。
- 解密算法(decryption algorithm):该算法接收密文和相应的密钥,并产生原始明文。
数字签名
- 数字签名算法(DSA):NIST最初批准的算法,基于离散对数的复杂性。
- RSA数字签名算法:基于RSA公钥加密算法。
- 椭圆曲线数字签名算法(ECDSA):基于椭圆曲线密码