一、密码学概述
密码学已经从第一代广泛应用的密码学算法(比如已经退役的 MD5 跟 DES),发展到现代密码学算法(如 SHA-3, Argon2 以及 ChaCha20)。
让我们首先跟一些基本的密码学概念混个脸熟:
- 哈希函数,如 SHA-256, SHA3, RIPEMD 等
- 散列消息认证码 HMAC
- 密钥派生函数 KDF,如 Scrypt
- 密钥交换算法,如 Diffie-Hellman 密钥交换协议
- 对称密钥加密方案,如 AES-256-CTR-HMAC-SHA-256
- 使用公私钥的非对称密钥加密方案,如 RSA 和 ECC, secp256k1 曲线跟 Ed25519 密码系统
- 数字签名算法,如 ECDSA
- 熵(entropy)与安全随机数生成
- 量子安全密码学
上述这些概念涉及到技术被广泛应用在 IT 领域,如果你有过一些开发经验,可能会很熟悉其中部分名词。 如果不熟也没任何关系,本书的目的就是帮你搞清楚这些概念。
这个系列的文章会按上面给出的顺序,依次介绍这些密码学概念以及如何在日常开发中使用它们。
不过在开始学习之前,我们先来了解一下什么是密码学,以及密码学的几大用途。
1、什么是密码学密码