现代密码学的分类
根据技术特征,现代密码学可分为三类。
1.对称算法
对称算法是指加密密钥和解密密钥相同的密码算法,又称密码窑钥算法或单密钥算法。该类算法又分为流密码算法和分组密码算法。
流密码算法又称序列密码算法,每次加密或解密一位或一字节的明文或密文。
分组密码算法将明文(密文)分成固定长度的数据块(比特块或字节块),用同一密钥和算法对每一明文(密文)块加密(解密)后得到等长的密文(明文)块,然后将密文(明文)块按照顺序组合起来最终得到密文(明文)。
常见的流密码算法包括RC4;常见的分组密码算法包括DES、IDEA、RC2、AES、SM4等。
2.非对称算法
非对称算法是指加密密钥和解密密钥不相同的密码算法,从一个密钥很难推导出另一个密钥,又称公开密钥算法或公钥算法。该算法使用一个密钥进行加密,用另一个密钥进行解密,其中加密密钥可以公开,又称公开密钥或公钥;解密密钥必须保密,又称私有密钥或私钥。
常见的非对称算法包括RSA、DH、DSA、ECDSA、ECC、SM2等。
3.摘要算法
摘要算法是指把任意长的输入消息数据转化成固定长度的输出数据的一种密码算法,又称散列函数、哈希函数或杂凑函数、单向函数等。摘要算法所产生的固定长度的输出数据称作摘要值、散列值或哈希值。摘要算法没有密钥。常见的摘要算法包括MD5、SHA1、SM3等。