密码学
一、概述
1、核心目标
核心目标:所有技术都是为了实现这四大安全目标。

核心安全目标:
- 机密性 (Confidentiality): 数据不被未授权方访问。→ 加密算法
- 完整性 (Integrity): 数据在传输中未被篡改。→ 哈希函数、MAC
- 身份认证 (Authentication): 确认通信双方的身份。→ 数字签名、证书
- 不可否认性 (Non-repudiation): 发送方无法否认已发送的信息。→ 数字签名
2、解决问题
1)如何安全地存储密码?
- 解决方案: 慢哈希函数 + 盐
- 技术:
Argon2
(冠军),Bcrypt
,PBKDF2
。 - 绝对禁止: 使用明文、MD5、SHA家族快速哈希存储密码。
2)如何保证数据传输的机密性?
- 解决方案: 加密
- 技术:
AES-256-GCM
(大量数据),RSA/OAEP
orECC
(加密上述AES的密钥)。
3)如何验证数据未被篡改?
解决方案A (共享密钥场景): 消息认证码 (MAC)
技术:
HMAC-SHA256
解决方案B (公钥场景): 数字签名
技术:
SHA256withECDSA
4)如何确认对方身份?
- 解决方案: 公钥基础设施 (PKI)
- 技术: 数字证书(X.509), CA。
5)如何安全地交换密钥?
- 解决方案: 非对称密钥交换
- 技术:
ECDHE
(提供前向安全性)。
3、编码&加密
1)编码 (Encoding):
- 目的: 数据转换,便于存储或传输(无安全目的)。
- 特点: 公开、无密钥、可逆。
- 例子:
Base64
(将二进制数据编码为ASCII文本,用于在文本协议,如HTTP、邮件中安全传输二进制数据),Hex
(十六进制编码,便于人类阅读和调试),URL Encoding
。
2)加密 (Encryption):
- 目的: 保护数据机密性(有安全目的)。
- 特点: 依赖密钥、设计目的是抵抗破解。
- 例子:
AES
、RSA
。
3)关系:
加密后的二进制密文经常通过 Base64 编码转换为文本,以便在JSON、XML、URL等文本协议中安全传输。

二、古典密码学
1、替换密码 (Substitution Ciphers)
- 凯撒密码 (Caesar Cipher)
- 单表替换密码 (Monoalphabetic Cipher)
- 多表替换密码 (Polyalphabetic Cipher),如维吉尼亚密码 (Vigenère Cipher)
2、换位密码 (Transposition Ciphers)
- 栅栏密码 (Rail Fence Cipher)
- 列置换密码 (Columnar Transposition Cipher)
3、机械密码
- 恩尼格玛机 (Enigma Machine)
4、核心弱点
均无法抵抗频率分析等统计攻击。
三、现代密码学
1、哈希/散列函数 (Cryptographic Hash Functions)
1)核心概念
密码学哈希函数是一种将任意长度输入(明文)映射为固定长度输出(哈希值、散列值、摘要)的算法。其设计目标决定了它的安全性。具有确定性、抗碰撞性、抗原像性、雪崩效应等核心特点
特性 | 描述 | 攻击含义 |
---|---|---|
确定性 | 相同输入总是产生相同输出。 | 基础要求,非安全特性。 |
高效性 | 计算哈希值的过程是快速的。 | 基础要求,非安全特性。 |
抗原像性 | 给定哈希值 h ,难以找到任何一个明文 m 使得 H(m) = h |
防止从摘要恢复明文。 |
抗第二原像性 | 给定明文 m1 ,难以找到另一个明文 m2 (m2 ≠ m1 ) 使得 H(m1) = H(m2) |
防止对特定明文的篡改。 |
抗碰撞性 | 难以找到任意两个不同的明文 m1 和 m2 (m1 ≠ m2 ) 使得 H(m1) = H(m2) |
这是最高要求,意味着攻击者无法伪造任何一对明文的哈希。 |
雪崩效应 | 输入明文的任何微小改变(1个比特),都会导致输出哈希值发生巨大且不可预测的变化(约50%的比特改变)。 | 确保哈希值看似随机,隐藏明文信息。 |
重要提示: 哈希是单向函数,不可逆。它用于生成“指纹”,而非用于“加密”数据。
2)常见算法

- MD5 (Message-Digest Algorithm 5):输出长度128位,已彻底破解,完全不安全。曾广泛应用,但王小云教授等人于2004年发表了高效的碰撞攻击方法,可在数小时内找到碰撞。绝对禁止用于任何安全场景。用于非安全场景的文件完整性校验(例如校验下载的大文件是否损坏,但无法防止恶意篡改)
- SHA-1 (Secure Hash Algorithm 1):输出长度160 位。已彻底破解,完全不安全。曾是SSL证书、Git版本控制系统的核心。Google的SHAttered攻击(2017)实现了实际的文件碰撞。老旧系统兼容。所有新系统必须弃用
- SHA-2 (Secure Hash Algorithm 2):输出长度提供了多种输出长度:SHA-256, SHA-384, SHA-512等。当前全球绝对主流和标准,未被破解。SSL/TLS证书、区块链(比特币)、软件包签名、几乎所有的安全协议。SHA-256是默认首选
- SHA-3 (Secure Hash Algorithm 3):可变长度(SHA3-256, SHA3-512等)。安全,是未来的标准。采用与SHA-2完全不同的“海绵结构”,作为SHA-2的后备和替代选择。目前应用逐渐增多。
- SM3 (ShangMi 3):输出长度256 位,设计与SHA-256类似,但结构不同。中国国家标准密码算法,安全性得到广泛认可。主要用于中国的商用密码体系,如政府、金融等领域,与SM2、SM4算法构成体系。
算法 | 输出长度 | 安全性状态 | 主要应用 |
---|---|---|---|
MD5 | 128-bit | 已破解,完全弃用 | 文件完整性校验(非安全) |
SHA-1 | 160-bit | 已破解,完全弃用 | 同上 |
SHA-2 | 256/512-bit | 安全 (当前主流) | 完整性校验,数字签名,区块链 |
SHA-3 | 可变 | 安全 (新标准) | 同上 |
SM3 | 256-bit | 安全 (国标) | 中国商用算法体系 |
Bcrypt | 自适应 | 安全 | 密码哈希 |
Argon2 | 自适应 | 安全 (竞赛冠军) | 密码哈希 |
3)关键应用与技术
消息认证码 - HMAC(相当于“加盐”的MD5)
- 原理: 使用一个共享密钥与消息混合后进行哈希计算,公式可简化为
HMAC(K, m) = H( (K ⊕ opad) || H( (K ⊕ ipad) || m ) )
。 - 目的: 验证消息的完整性和真实性。接收方只有拥有相同的密钥,才能计算出相同的HMAC值。
- 标准做法:
HMAC-SHA256
。
- 原理: 使用一个共享密钥与消息混合后进行哈希计算,公式可简化为
密钥派生函数 - KDF
- 原理: 从主密钥、密码或其他弱熵源中派生出一个或多个密码学强度的密钥。
- 例子:
PBKDF2
,bcrypt
,scrypt
。它们都故意设计得很慢,以抵御暴力破解。 - 核心: 加盐,以防止彩虹表攻击。
4)最佳实践
算法选择:
- 无脑首选: SHA-256。
- 追求前沿: SHA3-256 或 SHA-512。
- 国内商用环境: SM30
- 密码存储: 必须使用慢哈希函数(如 Argon2id, bcrypt),绝不能直接用SHA系列快速哈希。
彻底弃用:
- 绝对禁止将 MD5 或 SHA-1 用于任何安全目的(证书、签名、密码存储等)。
完整性验证:
- 验证文件或数据下载是否完整且未被篡改时,应提供 SHA-256 或更高级别的校验和,而非MD5。
使用HMAC进行认证:
- 当需要验证数据来源和完整性时(如API请求),使用
HMAC-SHA256
并确保密钥安全管理。
- 当需要验证数据来源和完整性时(如API请求),使用
2、对称加密 (Symmetric Cryptography)
1)核心概念
加/解密使用同一把密钥,计算速度非常快,适合加密大量数据。核心挑战是密钥分发,如何在通信双方之间安全地共享密钥,是对称加密的首要问题
主要分类:
- 分组密码:将明文分成固定长度的组,以组为单位进行加密(如 AES, DES, SM4)。这是主流。
- 流密码:将明文作为连续的比特流处理,逐比特或逐字节地与密钥流进行加密(如 RC4, ChaCha20)
2)常见算法

- DES (Data Encryption Standard):密钥长度: 56位(密钥本身64位,其中8位用于奇偶校验),已彻底破解,完全不安全。是现代密码学普及化的开端,但其设计已被证明不足以抵抗现代计算能力。绝对禁止在任何新系统中使用
- 3DES (Triple DES):为延长DES寿命而设计,对每个数据块执行三次DES操作:加密-解密-加密(EDE)。支持2-key(112位有效安全强度)和3-key(168位有效安全强度)模式。 已被弃用,不推荐用于新系统。速度慢(是DES的三倍),且分组长度仍只有64位,易受到“碰撞攻击”等威胁。
- AES: 2001年由NIST遴选取代DES,获胜算法为Rijndael。分组密码,固定块大小128位。密钥长度128位(足够安全)、192位、256位。AES-256-GCM 是黄金标准,同时提供加密和认证。AES-128 在可预见的未来仍然是安全的。
- SM4: 中国商用密码体系的核心算法,安全性得到广泛认可,旨在替代AES在国内重要领域的应用。密钥和分组长度均为128位。与SM2(非对称)、SM3(哈希)共同构成中国商用密码体系,用于政府、金融、物联网等领域
算法 | 密钥长度 | 分组长度 | 特点 |
---|---|---|---|
DES | 56-bit | 64-bit | 已破解,完全弃用 |
3DES | 112/168-bit | 64-bit | 慢,仅用于遗留系统 |
AES | 128/192/256-bit | 128-bit | 当前全球标准,快,安全 |
SM4 | 128-bit | 128-bit | 国标,安全性等同AES |
ChaCha20 | 256-bit | 流密码 | 快,常用于移动和TLS |
3)工作模式
后文会详细展开
- ECB:不推荐,不安全。
- CBC:常用,需要随机IV。需要随机且不可预测的IV。可能受到填充预言攻击。
- CTR:将分组密码变为流密码,可并行。
- GCM:认证加密模式 (AEAD),推荐首选。同时提供机密性、完整性和认证。认证加密模式 (AEAD)。推荐首选。同时提供机密性、完整性和认证。无需单独填充。
4)最佳实践
算法选择:
- 国际标准/通用场景: 无脑选择 AES-256-GCM 或 AES-128-GCM。
- 国内商用/合规需求: 使用 SM4(通常结合CBC或GCM模式)。
- 高性能移动端/Web端: 可考虑 ChaCha20-Poly1305(另一种AEAD流密码)。
彻底弃用:
- 绝对禁止在新项目中使用 DES 或 3DES。对于遗留系统,应制定计划迁移至AES。
密钥管理:
- 密钥必须通过密码学安全的随机数生成器生成。
- 严禁硬编码密钥在代码或配置文件中。
- 使用专业的密钥管理服务,如 AWS KMS、HashiCorp Vault、Azure Key Vault。
- 建立密钥轮换策略。
初始向量管理:
- 对于 CBC等模式,IV必须是随机且不可预测的。
- 对于 GCM模式,Nonce必须保证唯一性。
- IV/Nonce无需保密,通常与密文一起存储或传输。
3、非对称加密 (Asymmetric Cryptography)
1)核心概念
定义:
使用一对数学上相关的公钥和私钥进行加密和解密的算法。公钥可公开分享,私钥必须严格保密。
核心价值:
- 解决密钥分发问题: 无需预先共享密钥,通信双方只需交换公钥即可建立安全通信。
- 实现数字签名: 用于验证消息来源和完整性,并提供不可否认性。
性能特点:
基于复杂的数学难题(如大数分解、离散对数),计算速度比对称加密慢多个数量级。因此,绝不用于直接加密大量数据。
主要功能:
- 加密/解密: 发送方用接收方的公钥加密。只有拥有对应私钥的接收方能解密。
- 数字签名: 发送方用自己的私钥对消息的哈希值进行签名。任何人可用其公钥验证签名。
2)常见算法

RSA
基于难题: 大整数分解难题。将两个大质数相乘很容易,但将一个大的合数分解回其质因数极其困难。
密钥生成: 生成两个大质数
p
和q
,计算n = p * q
。n
作为公钥的一部分;p
和q
是私钥的核心。关键参数:
密钥长度: 2048位是当前最低安全要求。对更高安全需求(长期保密),推荐3072位或4096位。1024位及以下已被破解。
填充方案: 至关重要,直接决定安全性。
- 加密: 使用 RSA-OAEP。这是一种概率性加密方案,引入了随机数,能有效抵御选择密文攻击。绝对避免使用旧的PKCS#1 v1.5填充。
- 签名: 使用 RSASSA-PSS。同样引入了随机性,比旧的PKCS#1 v15签名方案更安全
ECC (Elliptic Curve Cryptography)
基于难题: 椭圆曲线上的离散对数难题。
优势:
- 密钥短: 256位的ECC密钥安全性相当于3072位的RSA密钥。
- 计算快: 所需计算量更小,能耗更低,特别适合移动设备、物联网等计算资源受限的环境。
常见曲线:
secp256r1
(NIST P-256),secp384r1
,curve25519
(用于ECDH)。主要应用:
- ECDH: 基于椭圆曲线的迪菲-赫尔曼密钥交换。是前向安全的TLS握手协议的核心。
- ECDSA: 基于椭圆曲线的数字签名算法。被比特币、现代SSL证书等广泛采用。
SM2
基于难题: 基于椭圆曲线密码的中国国家标准。
特点:
- 同样具备ECC的所有优势(密钥短、效率高)。
- 算法设计为一个整体方案,集成了加密、签名和密钥交换功能。
- 主要用于中国的商用密码体系,以满足合规性要求。
Diffie-Hellman (DH / DHE)
- 功能: 纯密钥交换协议,本身不用于加密或签名。
- 原理: 双方在不安全的信道上,通过交换一些公开信息,可以独立计算出一个相同的共享秘密,作为后续对称加密的会话密钥。
- 前向安全: 使用临时迪菲-赫尔曼 DHE 或 ECDHE 时,每次会话使用临时密钥对。即使服务器私钥未来泄露,也无法解密过往的通信记录。这是现代TLS的强制要求。
算法 | 基于数学难题 | 特点 |
---|---|---|
RSA | 大整数分解 | 最著名,但密钥长(2048-bit+),计算慢 |
ECDH/ECDHE | 椭圆曲线离散对数 | 当前主流,密钥短(256-bit),效率高 |
SM2 | 椭圆曲线 | 国标,集成了加密、签名和密钥交换 |
DH/DHE | 离散对数 | 用于密钥交换,不用于加密/签名 |
3)混合加密

非对称加密和对称加密不是替代关系,而是互补关系。它们的协同工作流程是现代安全通信的基石,其过程完美结合了双方的优势,如下图所示:
总结:
- 对称加密负责主体数据的加密,因为它快
- 非对称加密负责加密那把对称密钥,解决密钥分发的难题。
4) 最佳实践
算法与密钥选择:
- 优先选择 ECC: 新系统应优先选择 ECDHE 用于密钥交换,ECDSA 用于签名。性能更好,证书更小。
- RSA密钥长度: 如果使用RSA,密钥长度至少为2048位,推荐3072位。检查并淘汰1024位密钥。
- 国密合规: 面向国内市场的系统,需支持 SM2 算法体系。
填充方案:
- 加密: 强制使用 RSA-OAEP。
- 签名: 优先使用 RSASSA-PSS。
前向安全性:
- 在TLS/SSL配置中,强制使用支持前向安全的密码套件,即使用 DHE 或 ECDHE 作为密钥交换机制,而非静态的RSA密钥交换。
证书管理:
- 使用来自可信CA的证书,并实施严格的证书生命周期管理(自动续期、监控、吊销)。
4、工作模式和填充模式
1)核心特点
工作模式:
- 定义如何利用分组密码算法(如 AES,DES,SM4)来加密长于一个分组的消息。
- 解决了分组密码如何重复使用以处理任意长度明文的问题。
- 核心目标:不仅扩展功能,更重要的是增强安全性(如引入随机性、提供认证)。
填充模式:
- 当明文长度不是分组大小的整数倍时,需要将最后一个分组填充至完整长度。
- 核心目标:解决数据块长度对齐的问题。
2)归属关系
工作模式与填充模式是对称加密(特别是分组密码)的“专属特性”。
因为它们解决的是“如何用固定大小的分组处理任意长度数据”的问题。流密码(如 ChaCha20)和非对称加密算法本身就不存在这个问题。
非对称加密算法(如 RSA,ECC)没有“工作模式”的概念。
因为它们本质上是数学函数,一次处理一个输入(一个数字),输入大小受密钥长度限制(如 RSA-2048 最多只能加密 245 字节左右的数据),无法也不应该用于直接加密大量数据。它们的主要用途是加密小数据(如一个对称密钥) 或 数字签名。
3)工作模式(以 AES 为例)
工作模式的发展史,就是密码学家不断应对新威胁、满足新需求的历史。其演进历程如下图所示,从最初的基础加密发展到如今的认证加密:

电子密码本 - ECB
- 机制: 最简单的模式。每个明文块独立地用同一密钥加密。
- 安全性缺陷:
- 无法隐藏数据模式: 相同明文块 => 相同密文块。对加密图片、数据库等包含重复结构的数据是灾难性的。
- 容易遭受重放攻击和块重组攻击。
- 结论: 理论上不安全,绝对禁止用于任何加密协议。仅适用于加密单个数据块(如加密一个密钥)。
密码分组链接 - CBC
机制: 每个明文块在加密前,先与前一个密文块进行异或操作。第一个块使用初始向量(IV)。
核心要求: IV 必须是随机且不可预测的(通常来自CSPRNG)。IV无需保密,但必须随密文传输。
安全性:
- 解决了ECB的模式隐藏问题。
- 存在填充预言攻击的风险。若攻击者能向服务器发送密文并观察其解密成功(填充正确)或失败(填充错误)的反应,就可能逐步恢复出明文。
特性:
- 加密过程是串行的,无法并行化。
- 解密过程可以并行(先解密,再与前一个密文块异或)。
- 错误传播: 密文中的一个比特错误会影响当前块和下一块的正确解密。
计数器模式 - CTR
机制: 将分组密码转换为流密码。它加密一个计数器序列(
Nonce + Counter
),然后将加密后的密钥流与明文流进行异或。核心要求: 绝对确保 (
Nonce
,Counter
) 的组合永不重复。否则密钥流复用会导致灾难性破坏。安全性: 安全性取决于底层分组密码的强度。
特性:
- 无需填充。
- 加密和解密均可完全并行化(因为可以预先计算任何位置的密钥流块)。
- 仅需实现加密算法,即可同时完成加密和解密。
- 错误传播: 无扩散。密文中的一个比特错误只会影响明文对应位置的比特。
伽罗瓦/计数器模式 - GCM
机制: 一种 AEAD 模式。它是 CTR 模式(用于机密性) 和 GMAC(用于认证) 的结合。
工作原理:
- 使用CTR模式加密明文,产生密文。
- 同时,利用一个在伽罗瓦域上的乘法哈希函数,计算密文和任何附加认证数据(AAD) 的认证标签(Tag)。AAD是需要认证但不需加密的信息(如数据包头部)。
安全性: 同时提供机密性、完整性和认证。
特性:
- 高效并行化,性能极高。
- 无需填充。
- 是TLS 1.2和TLS 1.3的标准套件,是现代应用的黄金标准。
其他模式
- CFB & OFB: 也将分组密码转为流密码。与CTR类似,但串行生成密钥流,效率较低,现已较少使用。
- CCM: 另一种AEAD模式(CBC-MAC + CTR模式)。相比GCM,它是串行的,性能较低。
模式 | 主要目标 | 是否需要填充? | 并行性 | 推荐度 | 关键要求 |
---|---|---|---|---|---|
ECB | 机密性(差) | 是 | 是 | 禁止使用 | 无 |
CBC | 机密性 | 是 | 加密否,解密是 | 遗留系统可用 | 随机且不可预测的IV |
CTR | 机密性 | 否 | 是 | 高性能场景 | 永不重复的(Nonce, Counter) |
GCM | AEAD | 否 | 是 | 首选推荐 | 永不重复的Nonce |
4)工作模式-最佳实践
首选 AEAD 模式: 新系统设计无脑选择 AES-GCM 或 ChaCha20-Poly1305。它们简化了操作(无需单独考虑完整性和填充问题),且性能优异。
正确管理初始值:
- 对于 CBC: IV 必须是密码学安全的随机数。
- 对于 CTR/GCM: Nonce 必须绝对唯一。通常通过计数器或随机数保证。
如果被迫使用 CBC:
- 必须结合 HMAC 进行完整性保护,且遵循 Encrypt-then-MAC 的顺序。
- 使用诸如 PKCS#7 的填充方案,并在解密时检查填充有效性,但要注意抵御填充预言攻击(如使用恒时间比较函数)。
使用高级库: 优先使用 Google Tink 或 Libsodium 等库。它们提供了安全的默认配置,避免了开发者自己实现这些复杂且易错的概念。
5)填充模式
对称加密的填充
目的:纯技术需求,解决数据块长度对齐问题。
常见方案:PKCS#7/PKCS#5。规则是缺
N
个字节就填充N
个值为N
的字节。例如:块大小 16 字节,最后一块差 5 字节 → 填充
05 05 05 05 05
。重要提示:AEAD 模式(如 GCM)和流密码模式(如 CTR)不需要填充。
非对称加密的“填充”
目的:核心是安全需求,而非简单的长度对齐。裸的 RSA 数学运算(即不加填充直接加密)是极其脆弱的,会受到多种攻击。
常见方案:
- PKCS#1 v1.5:旧标准,目前已知存在漏洞(如 Bleichenbacher 攻击),应避免使用。
- OAEP:用于加密的现代标准。它引入随机数和哈希函数,将明文处理成一个随机化的、具有抗冲突特性的格式,再交给 RSA 函数计算。
- PSS:用于数字签名的现代标准。同样引入随机性,使得对同一消息的两次签名会产生不同的签名结果,更安全。
6)填充模式-最佳实践:
- 加密时使用:
RSA/ECB/OAEPWithSHA-256AndMGF1Padding
- 签名时使用:
RSASSA-PSS
7)核心关联
工作模式(对称加密)和填充(非对称加密)虽然属于不同领域,但它们在一个最关键的现代安全协议中产生了交集和关联:混合加密系统。
这套系统完美结合了对称加密的高效和非对称加密的密钥分发优势,其工作流程如下:

总结:
- 对称加密(如 AES-GCM)负责主体数据的加密,因为它快。这里会用到工作模式。
- 非对称加密(如 RSA-OAEP)负责加密第1步中使用的对称密钥,解决密钥分发的难题。这里会用到填充(OAEP)。
- 两者在混合加密系统中分工协作,共同构建了现代安全通信的基石(如 TLS/SSL 协议)。
5、数字签名与证书体系 (Digital Signature & PKI)
1)数字签名 (Digital Signatures)流程:
- 发送方对消息计算哈希值。
- 发送方用私钥加密该哈希值,这个加密后的哈希就是签名。
- 发送方将消息和签名一起发出。
- 接收方用发送方的公钥解密签名,得到原始哈希值H1。
- 接收方对消息重新计算哈希值H2。
- 对比H1和H2,若相同,则验证成功(证明消息完整且来自发送方)。

2)常见签名组合
- RSA-based:
SHA256withRSA
(推荐),SHA1withRSA
(弃用) - ECC-based:
ECDSA
- 国密:
SM2withSM3
3)公钥基础设施 (PKI) & 数字证书
核心问题:
如何信任一个公钥属于其声称的主人?
解决方案

4)数字证书与CA
证书: 将实体身份(域名、公司名)与其公钥绑定,并由CA用私钥签名后的文件。
信任链: 操作系统/浏览器内置根证书 -> 信任根CA -> 根CA签名中间CA -> 中间CA签名终端证书。
企业实践:
- 使用 Let’s Encrypt 等服务自动化申请和管理免费SSL证书。
- 内部系统使用私有CA签发证书,并将根证书部署到所有客户端信任库中。
- 监控证书有效期,实现自动续期,避免服务中断。
四、综合应用
1、算法选择:
- 哈希:SHA-256 or SHA-3。
- 对称加密:AES-256-GCM。
- 密钥交换:ECDHE。
- 签名:ECDSA or RSA(2048+)。
2、密钥管理
严禁硬编码密钥,使用专业的密钥管理服务(KMS),如 AWS KMS, Azure Key Vault, HashiCorp Vault。密钥的生命周期管理(生成、存储、轮换、销毁)比算法本身更重要
3、数据加密:
- 静态数据(数据库): 应用层或数据库透明加密。
- 传输中数据: 全站HTTPS。
- 选择经过审计的库: 如 Libsodium, Tink,避免自己实现密码学逻辑。
4、SSL/TLS协议:
密码学应用的集大成者。
握手流程:密钥交换 (ECDHE) -> 身份认证 (证书) -> 对称加密通信 (AES-GCM)。