对称加密算法(Symmetric-key_algorithm)是指在加密和解密时使用同一密钥的方式,如AES。
非对称加密算法(Public-key cryptography),也称公钥加密算法,是指在加密和解密时使用不同密钥的方式,如RSA(https://en.wikipedia.org/wiki/RSA_(cryptosystem%29)。
单向散列函数(one-way hash function)可以用于完整性(integrity)验证。使用单向散列函数,可以检测出数据是否被篡改过。如MD5、SHA-1。
消息认证码(message authentication code),不但能够确认消息是否被篡改,而且能够确认消息是否来自所期待的通信对象(完整性+认证)。比较常用的消息认证码算法是HMAC 。这种情况下可以简单的认为,消息认证码=单向散列函数+对称加密。
数字签名(digital signature),像现实生活中的签名一样,用来确保消息一定是对方给出的。可以简单地理解,数字签名=单向散列函数+非对称加密。
密码算法的安全性很依赖一个不可预测的随机数生成器(Pseudo Random Number Generator, PRNG)。
密码学工具箱.png