密码系统的结果称作密码算法,进行加密或解密操作所需的关键参数称作密钥。事实上,在日常社会活动领域中使用的密码算法基本上都是公开的,现代密码学的安全性主要取决于密钥的设计和使用。
根据技术特征,现代密码学算法大致分为三类:
1-单向加密算法(摘要算法)
摘要算法:它是将任意长度的输入消息数据转化成固定长度的输出数据的一种密码算法。又称散列函数、哈希函数、杂凑函数或单向函数等。
它是数据完整性验证的常用算法。摘要算法所产生的固定长度的输出数据称作摘要值、散列值或哈希值。摘要算法没有密钥。
常见的摘要算法包括MD5、SHA1、SHA256、SHA512、SM3等。
2-对称加密算法
对称算法:是一种加密密钥和解密密钥相同的密码算法,又称密码密钥算法或单密钥算法。
它是数据存储加密的常用算法。该类算法分为流密码算法和分组密码算法。
流密码算法又称为序列密码算法,每次加密或解密一位或一字节的明文或密文。
分组密码算法将明文(密文)成固定长度的数据库(比特块或字节块),用同一密钥和算法对每一明文(密文)块加密(解密)后得到等长的密文(明文)块,然后将密文(明文)块按顺序组合起来最终得到密文(明文)。
常见的流密码算法包括RC4;
常见的分组密码算法包括DES、IDEA、R非对称算法:是一种加密密钥和解密密钥不相同的密码算法,从一个密钥很难推导出另一个密钥,又称为公开密钥算法或公钥算法。
它是数据传输加密的常用算法,其处理过程简单来说就是先使用公钥对输入明文加密,获得加密密文;然后,再通过私钥对加密密文进行解密,最终得到明文数据。
该算法使用一个密钥进行加密,用另一个密钥进行解密,其中加密密钥可以公开,又称之为公开密钥或公钥;解密秘钥必须保护,又称之为私有密钥或私钥。
常见的非对称算法包括RSA、DH、DSA、ECDSA、ECC、SM2等
4-注意
对称加密算法也可以用做数据传输加密,但非对称加密算法在密钥管理方面更有优势。
相对而言,非对称加密算法在安全级别上等级更高,但时间效率上却不如对称加密算法。