密码系统的结果称作密码算法,进行加密或解密操作所需的关键参数称作密钥。事实上,在日常社会活动领域中使用的密码算法基本上都是公开的,现代密码学的安全性主要取决于密钥的设计和使用。
根据技术特征,现代密码学算法大致分为三类:
1-单向加密算法(摘要算法)
摘要算法:它是将任意长度的输入消息数据转化成固定长度的输出数据的一种密码算法。又称散列函数、哈希函数、杂凑函数或单向函数等。
它是数据完整性验证的常用算法。摘要算法所产生的固定长度的输出数据称作摘要值、散列值或哈希值。摘要算法没有密钥。
常见的摘要算法包括MD5、SHA1、SHA256、SHA512、SM3等。
2-对称加密算法
对称算法:是一种加密密钥和解密密钥相同的密码算法,又称密码密钥算法或单密钥算法。
它是数据存储加密的常用算法。该类算法分为流密码算法和分组密码算法。
- 流密码算法又称为序列密码算法,每次加密或解密一位或一字节的明文或密文。
- 分组密码算法将明文(密文)成固定长度的数据库(比特块或字节块),用同一密钥和算法对每一明文(密文)块加密(解密)后得到等长的密文(明文)块,然后将密文(明文)块按顺序组合起来最终得到密文(明文)。
常见的流密码算法包括RC4;
常见的分组密码算法包括DES、IDEA、RC2、AES、SM4等。