完整性算法主要用于确保数据在传输过程中未被非法篡改,常见的完整性算法主要包括以下几种类型:
1. 散列函数(Hash Functions):
•MD5 (Message-Digest Algorithm 5)
•SHA家族(Secure Hash Algorithm):
•SHA-1
•SHA-2(包括SHA-224、SHA-256、SHA-384、SHA-512)
•SHA-3,新一代标准,包括SHA3-224、SHA3-256、SHA3-384、SHA3-512等
•SM3(中国商用密码体系中的散列算法)
2. 消息认证码(Message Authentication Code, MAC):
•HMAC(基于散列函数的消息认证码)
•CMAC(Cipher-based Message Authentication Code)
•GMAC(Galois/Counter Mode based authentication)
3. Authenticated Encryption with Associated Data (AEAD) 算法:
•AES-GCM (AES Galois Counter Mode),同时提供数据加密和完整性保护
•ChaCha20-Poly1305,常用于TLS 1.3协议中
•SNOW 3G完整性保护算法,用于3GPP通信标准如LTE网络中NAS层和AS层的完整性保护
4. 序列化 Merkle树:
•在区块链技术中,Merkle树及其衍生的默克尔根(Merkle Root)可用于验证数据块的完整性
5. 数字签名算法:
•RSA签名
•DSA (Digital Signature Algorithm)
•ECDSA (Elliptic Curve Digital Signature Algorithm)