四大目标
Cryptography provides confidentiality, integrity, authentication, and nonrepudiation.
密码学提供机密性、完整性、认证和不可否认性。
加密不是只把内容藏起来,还能证明没被改、确认身份、让发送者不能抵赖。
题目问 crypto goals,优先想这四个:confidentiality、integrity、authentication、nonrepudiation。
左侧按“英文原文摘录 / 中文直译 / 小白解释 / 考点提醒”拆解,右侧是对应画报。每张画报已内嵌在单 HTML 中,手机端可直接点击放大。
密码学用于在数据静态、传输中和使用中保护信息,并支持机密性、完整性、认证和不可否认性。
Cryptography provides confidentiality, integrity, authentication, and nonrepudiation.
密码学提供机密性、完整性、认证和不可否认性。
加密不是只把内容藏起来,还能证明没被改、确认身份、让发送者不能抵赖。
题目问 crypto goals,优先想这四个:confidentiality、integrity、authentication、nonrepudiation。
While it is stored, traveling, and existing in memory.
当信息被存储、传输以及存在于内存中时。
静态、传输中、使用中,都可能用到密码学,但手段不完全一样。
看到 at rest、in transit、in use,要先判断数据状态再选控制。
Confidentiality ensures that data remains private.
机密性确保数据保持私密。
未授权的人看不到明文。常见手段是加密和密钥控制。
防窃听、防设备被盗后读数据,通常对应机密性。
Integrity ensures that data is not altered without authorization.
完整性确保数据未经授权不会被更改。
接收方能知道消息和发送时一致,没有被偷偷篡改。
完整性常和哈希、消息摘要、数字签名一起出现。
Authentication verifies the claimed identity.
认证用于验证声称的身份。
挑战响应是一种典型例子:你不用直接说秘密,也能证明你知道秘密。
challenge-response 关键词常对应 authentication。
Nonrepudiation prevents the sender from claiming they never sent it.
不可否认性防止发送方声称自己从未发送消息。
收件人有证据证明消息来自某发送方。
对称密钥双方都能生成同样密文,通常不能单独提供不可否认性;数字签名更常见。
学习密码学先把术语立住:明文、密文、算法、密钥、密钥空间,以及算法公开但密钥保密的思想。
Plaintext is encrypted to produce ciphertext.
明文被加密后产生密文。
P 经过算法和密钥变成 C,接收方再解密恢复 P。
不要把编码、加密、哈希混为一谈;加密应可逆,哈希不可逆。
All cryptographic algorithms rely on keys.
所有密码算法都依赖密钥。
算法像锁的结构,密钥像具体钥匙。安全主要靠钥匙不泄露。
secret key 和 private key 必须保密;public key 可以公开。
A key space is defined by its bit size.
密钥空间由其位长度定义。
位数越长,可选密钥数量指数级增长,暴力破解更难。
key space = 0 到 2^n 范围,n 是密钥位数。
The security should depend only on the key.
安全性应只依赖密钥,而不是算法保密。
好算法不怕公开审查,不能靠“别人不知道算法”来安全。
考试常问为什么不依赖 security through obscurity,答案就是 Kerckhoffs 原则。
FIPS 140-3 defines security requirements for cryptographic modules.
FIPS 140-3 定义密码模块的安全要求。
这是密码模块安全要求,不是某个具体加密算法。
看到 cryptographic module validation,常联想到 FIPS 140-3。
Security rests on keeping keys confidential.
安全性取决于保持密钥机密。
算法再强,密钥泄露也等于门钥匙丢了。
密钥生命周期管理是密码系统安全的核心。
这一节把布尔逻辑、XOR、取模、单向函数、Nonce、IV、零知识证明和分割知识作为密码系统的基础材料。
Logical functions include AND, OR, NOT, and XOR.
逻辑函数包括 AND、OR、NOT 和 XOR。
它们处理 0 和 1,是很多算法底层的开关积木。
XOR 在密码学里尤其常见,两个输入不同为真,相同为假。
XOR is commonly used in cryptographic applications.
XOR 常用于密码学应用。
一次性密码本可以理解为明文和随机密钥做 XOR。
C = P XOR K,P = C XOR K 是高频记忆点。
The modulo function returns the remainder.
取模函数返回除法后的余数。
像钟表绕圈,走到末尾再从头开始。
古典密码字母位移常用 mod 26。
One-way functions are easy one way, hard in reverse.
单向函数正向容易,反向困难。
做出来容易,倒推回去很难,是哈希和公钥思想的重要基础。
one-way 不等于绝对不可能,而是计算上不可行。
A nonce is a random number used once.
Nonce 是只使用一次的随机数。
IV 是初始化向量,用来让同样密钥加密也产生不同结果。
Nonce/IV 重复使用会破坏很多方案的安全性。
Demonstrate knowledge without disclosing the fact.
在不披露事实的情况下证明自己知道该事实。
像证明自己知道门密码,但不把密码告诉对方。
关键词 without disclosing secret,选 zero-knowledge proof。
No single person has sufficient privileges.
没有任何单个人拥有足够权限。
把敏感操作拆给多人共同完成,降低单点滥用风险。
M of N control 是分割知识和双人控制的典型考点。
经典密码帮助理解现代密码的两个基本手法:换位置、换字符,以及混淆、扩散、分组密码和流密码。
Codes and ciphers are different concepts.
代码和密码是不同概念。
Code 常替换词或短语,Cipher 更常按字符或比特规则变换。
考试如果问 code vs cipher,不要只答“都是加密”。
Transposition ciphers reorder plaintext.
换位密码重新排列明文。
字母没有变,只是位置换了。
看到 rearrange、permutation、columns,常是 transposition。
Substitution ciphers replace each character.
替换密码替换每个字符。
字符位置可能不变,但每个字符被换成别的字符。
Caesar/ROT3 是单表替换的经典例子。
Attackers use frequency analysis.
攻击者会使用频率分析。
自然语言里字母出现频率有规律,简单替换会露出痕迹。
ETAOIN SHRDLU 常作为英文频率记忆点。
The Vigenere system uses multiple alphabets.
维吉尼亚系统使用多个字母表。
比凯撒更复杂,因为不同位置可使用不同替换表。
Vigenere 是 polyalphabetic substitution。
One-time pads must be random and used once.
一次性密码本必须随机且只使用一次。
密钥要真正随机、与消息等长、只用一次,才接近理论安全。
重复使用 one-time pad 会暴露模式,是严重错误。
Block ciphers and stream ciphers process data differently.
分组密码和流密码以不同方式处理数据。
分组按固定块处理,流密码像连续密钥流一样逐位或逐字节处理。
AES 是分组密码;RC4 是流密码且已不安全。
对称密码速度快但密钥分发困难,非对称密码可扩展但速度慢。真实系统常混合使用二者。
Symmetric cryptosystems use a shared secret key.
对称密码系统使用共享秘密密钥。
加密和解密用同一把钥匙,适合大量数据加密。
关键词 shared secret key,选 symmetric。
Asymmetric systems use public and private keys.
非对称系统使用公钥和私钥。
公钥可以公开,私钥必须保密。更适合密钥交换和签名。
不可否认性通常依赖非对称和数字签名。
Symmetric is fast; asymmetric is slow.
对称速度快,非对称速度慢。
所以 TLS 这类协议常用非对称协商密钥,再用对称加密大量数据。
大量数据加密通常选 symmetric;交换会话密钥常用 asymmetric。
Symmetric systems require many shared keys.
对称系统需要许多共享密钥。
人越多,两两共享密钥数量膨胀得很快。
n 人对称密钥常见公式:n(n-1)/2。
Asymmetric systems are more scalable.
非对称系统更可扩展。
每人一对公私钥,就能和很多人通信。
n 人非对称密钥常见数量:2n。
Hashing algorithms provide integrity support.
哈希算法支持完整性。
哈希不是加密,不能解密回原文;常用于摘要和完整性校验。
哈希和签名在第 7 章展开,第 6 章先记住它服务完整性。
分组密码算法需要工作模式来处理长消息。ECB、CBC、CFB、OFB、CTR、GCM、CCM 的差异是考试常考点。
ECB mode is the least secure.
ECB 模式安全性最低。
相同明文块会产生相同密文块,图案和规律可能泄露。
ECB 只适合极短消息;看到 pattern leakage 选 ECB 问题。
CBC uses an initialization vector.
CBC 使用初始化向量。
每个明文块先和前一个密文块 XOR,再加密。
CBC 有错误传播,IV 应唯一且不可预测。
CFB is the stream cipher version of CBC.
CFB 是 CBC 的流密码版本。
适合实时生成小块数据流的场景。
CFB、OFB、CTR 常和 stream-like operation 关联。
OFB errors do not propagate.
OFB 中错误不会传播。
它生成密钥流再和明文组合,传输错误影响有限。
问错误传播时,OFB/CTR 通常不会像 CBC 那样传播。
CTR mode is suitable for parallel computing.
CTR 模式适合并行计算。
用递增计数器生成密钥流,块之间相对独立。
看到 parallelizable、counter,选 CTR。
GCM adds data authenticity to CTR.
GCM 在 CTR 基础上增加数据真实性。
它不只保密,还能帮助确认数据没有被伪造或篡改。
现代推荐场景常见 AES-GCM。
CCM combines CTR with CBC-MAC.
CCM 将 CTR 与 CBC-MAC 结合。
保密用 CTR,认证用 CBC-MAC。
看到 CTR + CBC-MAC,选 CCM。
对称算法要会区分 DES、3DES、AES 等历史与现状,更要理解密钥生成、分发、存储、托管、恢复、轮换和销毁。
DES uses a 56-bit key.
DES 使用 56 位密钥。
历史上重要,但现在不安全,不应作为现代保护选择。
DES 重点记:64 位分组、56 位有效密钥、已过时。
3DES uses multiple DES iterations.
3DES 使用多次 DES 迭代。
比 DES 强,但也老旧且效率低,现代应避免。
3DES 可用两个或三个独立密钥,常见有效安全强度 112 或 168 位。
AES uses 128, 192, and 256-bit keys.
AES 使用 128、192 和 256 位密钥。
AES 是现代主流对称加密标准,固定 128 位分组。
看到 U.S. government standard、sensitive unclassified data,常选 AES。
RC4 is no longer secure.
RC4 现在已不再安全。
它曾用于 WEP、WPA、SSL/TLS,但现代协议已淘汰。
WEP、WPA、SSL、RC4 多数是过时或不安全信号。
Key distribution is a challenge.
密钥分发是一个挑战。
对称密钥必须让双方安全拿到同一密钥,这一步很难。
对称密码最大痛点之一是 key distribution。
HSMs manage organizational keys.
HSM 用于管理组织密钥。
硬件安全模块像专门保管和使用密钥的保险箱。
高价值密钥存储和运算常考虑 HSM。
M of N control may be used for recovery.
可使用 M of N 控制进行恢复。
恢复密钥时需要多人批准,避免一个人单独拿走钥匙。
Key escrow/recovery 和 split knowledge、M of N 常一起考。
Cryptographic life cycle includes keys and algorithm selection.
密码生命周期包括密钥和算法选择。
密钥要生成、分发、存储、使用、轮换、备份、恢复和销毁。
算法老化、密钥泄露、密钥过期,都属于 crypto lifecycle 管理问题。