密码学(1)什么是密码学
密码学是一种通过使用编码算法、哈希和签名来保护信息的实践。
此信息可以处于静态(例如硬盘驱动器上的文件)、传输中(例如两方或多方之间交换的电子通信)或使用中(在对数据进行计算时)。
用途
加密与密钥
密码学的一大用途,就是进行数据的安全存储和安全传输。 这可能涉及使用对称或非对称加密方案加密和解密数据,其中一个或多个密钥用于将数据从明文转换为加密形式或者相反。
数字签名与消息认证
密码学提供了保证消息真实性(authenticity)、完整性(integrity)和不可否认性(non-repudiation)的方法:数字签名算法与消息认证(MAC)算法。
安全随机数
密码学的另一个部分,是熵(entropy,指不可预测的随机性)和随机数的安全生成(例如使用 CSPRNG)。
密钥交换
密码学定义了密钥交换算法(如 Diffie-Hellman 密钥交换和 ECDH)和密钥构建方案,用于在需要安全传输消息的两方之间安全地构建加密密钥。
加密哈希与密码哈希
密码学提供了加密哈希函数(如 SHA-3 和 BLAKE2)将消息转换为消息摘要/数字指纹(固定长度的散列),确保无法逆向出原始消息,并且几乎不可能找到具有相同哈希值的两条不同消息。