# 1. AES-GCM 与 ChaCha20-Poly1305 的工程选型 A AES-GCM 依赖 AES-NI 硬件加速性能更优,ChaCha20-Poly1305 软件实现稳健,按平台选择 ✓ 正确答案 B ChaCha20-Poly1305 在 AES-NI 平台上总是更快 C 两者都不提供完整性 D AES-GCM 无需 nonce
# 2. ChaCha20 的"四分之一轮"(quarter-round)的算术结构 A 它依赖 S-box 查表 B 它只有 1 轮 C 它依赖 AES-NI D 它用加、旋转、异或(ARX)运算,软件实现快且常量时间、抗侧信道 ✓ 正确答案
# 3. HKDF 的"盐"(salt)与"上下文"(info)的工程应用 A salt 提升密钥质量,info 用于域分离区分不同用途的派生密钥 ✓ 正确答案 B 两者都无安全作用 C info 用于随机化 salt D HKDF 无 Extract 步骤
# 4. Argon2 vs bcrypt 在内存安全的演进 A bcrypt 内存硬性更强 B 两者完全相同 C Argon2 是内存硬函数,借内存占用提升抗 GPU/ASIC 暴力破解能力,优于 bcrypt ✓ 正确答案 D Argon2 不抗 GPU
# 5. AES-CBC + HMAC 的 encrypt-then-MAC 边界 A 先加密后认证,先验证 MAC 再解密,可防止 padding oracle 攻击 ✓ 正确答案 B 先解密再认证更安全 C 顺序与安全无关 D 应先 MAC 后加密
# 6. AES-GCM 的 nonce(96 bit)的唯一性与并发风险 A nonce 可随意复用 B 同一密钥下 nonce 复用会导致密文泄露与标签伪造,必须保证唯一 ✓ 正确答案 C nonce 只影响性能 D 96 位 nonce 永远不会碰撞
# 7. AES-GCM-SIV(Synthetic IV)的 nonce 复用安全 A 它用合成 IV 使 nonce 复用不泄露明文,是抗误用的变体 ✓ 正确答案 B 它与 GCM 完全相同 C 它不提供认证 D 它无法处理关联数据
# 8. ChaCha20-Poly1305 的软件实现优势(无 AES-NI) A 它用 ARX 运算、无需 AES-NI,在无硬件加速平台软件实现快且抗侧信道 ✓ 正确答案 B 它依赖 AES-NI C 它只用于 x86 服务器 D 它无法抵抗时序攻击
# 9. Secure Enclave Processor(SEP)作为独立 A-series chip 的安全边界? A SEP 与主 CPU 共享内存 B SEP 密钥可由主 CPU 读取 C SEP 只做通用计算 D SEP 是独立安全芯片,物理隔离,主 CPU 被攻破也不影响 SEP 内密钥 ✓ 正确答案
# 10. ChaCha20-Poly1305(RFC 8439)在 ARM mobile、TLS 1.3 的工程价值? A 它在 ARM 上性能差 B 它在无 AES-NI 的 ARM 移动端软件性能出色,是 TLS 1.3 推荐 AEAD ✓ 正确答案 C 它不被 TLS 1.3 支持 D 它只用于服务器
# 11. AES-GCM(96-bit nonce + 128-bit tag + 128-bit block)在 TLS、AES-NI 加速的工程价值? A 它在无 AES-NI 平台也最快 B 它不提供认证 C 它在 AES-NI 硬件加速下吞吐极高,是 TLS 服务器端主流 AEAD ✓ 正确答案 D 它只有 64 位标签
# 12. X25519(RFC 7748)在 TLS 1.3 默认 KEM 的工程价值? A 它依赖复杂查表 B 它不支持 DH C 它是哈希算法 D 它实现简单、常量时间、抗侧信道,是 TLS 1.3 默认密钥交换 ✓ 正确答案
# 13. scrypt 的 N(CPU/memory cost)/r(block size)/p(parallelization)参数调优? A N 与内存无关 B N/r/p 决定内存与时间成本,需在抗暴力破解与性能间平衡 ✓ 正确答案 C p 越大内存越小 D 参数不影响安全性
# 14. Plonk universal trusted setup(一次 setup 多 circuit 共享)的工程价值? A 每个电路都需单独设置 B 它无需任何设置 C 一次设置可服务多个电路,降低部署成本、支持电路升级 ✓ 正确答案 D 它只支持固定电路
# 15. StrongBox(SE/TEE 安全元素)相对 TEE(Trusty、Titan-M)密钥保护的工程价值? A 两者安全等级相同 B StrongBox 与主 CPU 共享内存 C StrongBox 是独立安全元素,隔离优于共享主 CPU 的 TEE,密钥保护更强 ✓ 正确答案 D TEE 抗物理攻击更强
# 16. TPM 2.0 session(TPM2_StartAuthSession)的 salted HMAC 鉴权工程价值? A 它不提供鉴权 B 它用盐化 HMAC 验证命令授权并防重放,是 TPM 安全操作的基础 ✓ 正确答案 C 它只用于数据加密 D 它无需密钥
# 17. Ed25519(RFC 8032)在 SSH、PGP、Token 签名的工程价值? A 它使用随机 nonce,有泄露风险 B 它签名较大 C 它确定性 nonce、常量时间、签名小,是 SSH、Token 等广泛采用的安全签名 ✓ 正确答案 D 它基于 RSA
# 18. Halo2(Electric Coin)通过 Plookup 与 custom gates 在 Zcash Orchard 的工程价值? A 它用 Plookup 与自定义门优化电路,使 Zcash 隐私交易证明更小更快 ✓ 正确答案 B 它用 Groth16 的每电路设置 C 它无需电路 D 它只做签名
# 19. TPM 2.0 NV(Non-Volatile)storage 在 storage key 与 sealed data 的工程价值? A sealed data 与平台状态无关 B storage key 不保护密钥 C NV 存储易失 D NV 存储持久化密钥,sealed data 绑定平台状态,只有状态匹配才可解开,支撑硬件信任根 ✓ 正确答案
# 20. Secure Enclave KeyBag 与 Keychain 在用户 unlock 后的 key release 工程价值? A 密钥在锁定状态也释放 B KeyBag 与密钥无关 C 用户解锁后 Secure Enclave 释放对应 KeyBag 密钥,使数据仅在被授权时可用 ✓ 正确答案 D 解锁后所有数据永久可读
# 21. Linux getrandom(2) 系统调用相对 /dev/urandom 的工程价值? A getrandom 在池未初始化时也可能返回可预测数据 B 两者完全相同 C getrandom 在熵池未初始化时会阻塞,避免早启动阶段生成可预测随机数 ✓ 正确答案 D getrandom 需要打开文件
# 22. getentropy(3) 用户态库函数在 OpenBSD、glibc、macOS 的工程价值? A 它总是返回可预测随机数 B 它不封装系统随机源 C 它只支持一个平台 D 它在多个平台提供统一的安全随机接口,失败时明确报错,提升可移植性 ✓ 正确答案
# 23. AES-GCM 在重用 nonce 的 catastrophic failure 防御? A nonce 复用无影响 B 无法防御 C nonce 复用只影响性能 D 用计数器、并发协调、碰撞检测与密钥轮换确保 nonce 唯一,或改用 SIV 变体 ✓ 正确答案
# 24. Ed25519 vs ECDSA-P256 在签名延迟与确定性 nonce 的工程边界? A ECDSA 默认确定性 nonce B Ed25519 依赖随机 nonce C 两者完全相同 D Ed25519 用确定性 nonce 消除 RNG 故障风险、性能好,ECDSA-P256 靠生态兼容仍广泛使用 ✓ 正确答案
# 25. TPM 2.0 PCR 0-23 的标准分配与 measured boot 的工程语义? A PCR 无标准分配 B PCR 0-23 按标准记录启动各阶段度量,measured boot 形成信任链供远程证明与 sealed data ✓ 正确答案 C measured boot 不度量内核 D PCR 只用于加密
# 26. Android Keystore 的 KeyMaster attestation 在 attestation challenge 的工程价值? A challenge 与证明无关 B attestation 证明密钥在硬件生成,challenge 绑定防重放,服务端可验证密钥真实性 ✓ 正确答案 C attestation 只用于加密 D 证明无法防重放
# 27. SEP 的 HSM 类 ECID 与 UID 在 anti-counterfeit 的工程价值? A ECID 可任意篡改 B ECID 与密钥无关 C 唯一不可篡改的芯片标识配合硬件密钥,可做设备认证与防伪 ✓ 正确答案 D UID 用于加密数据
# 28. StrongBox 在 Pixel 3+ Titan M 的工程应用? A Titan M 作为 StrongBox 硬件后端,独立保护高敏感密钥并支持证明 ✓ 正确答案 B Titan M 与主 CPU 共享密钥 C StrongBox 无需硬件 D Titan M 只做通用计算
# 29. AES-GCM(Galois/Counter Mode)的 AEAD 工程语义,加密 + 完整性校验如何结合 A 它只加密不认证 B 它同时提供加密与完整性校验,并支持关联数据认证 ✓ 正确答案 C 它需额外 HMAC D 它不验证标签
# 30. AES-NI(Intel AES New Instructions)的硬件加速性能 A 它减速 AES B 它用专用指令大幅提升 AES 与 GHASH 吞吐,是服务器端 AES-GCM 高效的关键 ✓ 正确答案 C 它只加速哈希 D 它不影响 GCM
# 31. AES(Advanced Encryption Standard)的 128、192、256 bit 密钥长度 A 密钥越长分组越长 B 分组随密钥变化 C 密钥长度不影响轮数 D 128/192/256 位对应 10/12/14 轮,越长越安全,AES-256 抗量子更优 ✓ 正确答案
# 32. 分组密码模式中 ECB、CBC、CTR、GCM、SIV 的差异 A ECB 安全且推荐 B 所有模式都提供认证 C ECB 泄露模式不安全,CBC/CTR 无认证,GCM 提供 AEAD,SIV 抗 nonce 复用 ✓ 正确答案 D CTR 需要填充
# 33. AES-GCM 的 GHASH 性能与并行化 A GHASH 完全无法并行 B GHASH 无性能影响 C GHASH 与 AES 无关 D GHASH 串行但可通过块合并与 PCLMULQDQ 指令并行化,配合 AES-NI 提升吞吐 ✓ 正确答案
# 34. nonce 重用的密码学后果,GCM 的 catastrophic failure 如何发生 A 同密钥下 nonce 重用导致密钥流复用,可泄露明文并可伪造标签,是灾难性失败 ✓ 正确答案 B nonce 重用最多泄露盐 C nonce 重用可提升性能 D nonce 重用无密码学后果
# 35. AES-GCM 的"短标签"(truncated tag)的工程取舍 A 截断标签不降低安全性 B 截断标签降低伪造难度,带宽受限场景可牺牲部分标签位,但推荐不低于 96 位 ✓ 正确答案 C 标签只用于加密不用于认证 D 标签越短越安全
# 36. Argon2id 在密码哈希的工程应用 A 它是无内存的快速哈希 B 它是 PHC 获胜算法,通过内存/时间/并行参数抵抗 GPU 暴力破解,是口令哈希首选 ✓ 正确答案 C 它不需要盐 D 它只用于加密
# 37. HKDF(HMAC-based Key Derivation Function)的 Extract + Expand 两步 A Expand 负责提取熵,Extract 负责派生密钥 B HKDF 不依赖 HMAC C HKDF 只有一步 D Extract 用 HMAC+盐压缩输入为 PRK,Expand 用 PRK+info 派生多段密钥 ✓ 正确答案
# 38. Argon2(id、d、i 参数)的内存-时间-并行调优 A Argon2i 数据相关,Argon2d 数据无关 B 三种变体完全相同 C Argon2id 混合两者,内存 m 抗 ASIC、时间 t 控成本、并行度 p 匹配多核,是默认推荐 ✓ 正确答案 D 参数与安全性无关
# 39. PBKDF2(Password-Based Key Derivation Function 2)的迭代次数(≥ 600000) A 迭代次数越高单次猜测越慢,SHA-256 推荐 ≥600000,但 PBKDF2 非内存硬、易被 GPU 并行 ✓ 正确答案 B 迭代次数越低越安全 C 迭代次数只影响加密不影响哈希 D 迭代次数与暴力破解无关
# 40. scrypt 的内存硬(memory-hard)特性 A 它是纯计算密集,易被 GPU 加速 B 它只用于签名 C 它不需要内存 D 它通过大内存开销抵抗 GPU/ASIC 并行,参数 N/r/p 控制内存与计算成本 ✓ 正确答案
# 41. HKDF 在 TLS 1.3、Noise Protocol 的核心作用 A 它只用于密码哈希 B 它只在 TLS 1.2 使用 C 它不参与密钥派生 D 它用 Extract/Expand 从共享秘密派生各阶段密钥,实现密钥分离与前向安全 ✓ 正确答案
# 42. HKDF vs SP800-108(Counter Mode KDF)的合规差异 A 两者完全相同 B SP 800-108 含 Extract C HKDF 含 Extract 步骤适合熵不确定输入,SP 800-108 是 Counter 模式扩展,适合已提取密钥的合规派生 ✓ 正确答案 D HKDF 是 NIST 标准,SP 800-108 是 RFC
# 43. HMAC 用内外两层填充 H((k⊕opad)‖H((k⊕ipad)‖m)),为什么它比裸的 H(k‖m) 更安全、能抵抗长度扩展? A 内外双向异或包裹密钥,使底层压缩函数为 PRF 时 HMAC 是安全 MAC,并抵抗长度扩展攻击 ✓ 正确答案 B 它只是多加了一次哈希,无实质区别 C 它把密钥放在消息末尾 D 它不保护消息完整性
# 44. SHA-1 的碰撞攻击(SHAttered)与 chosen-prefix 碰撞对 Git 内容寻址和 TLS 证书分别造成什么实际影响? A SHA-1 碰撞只影响性能 B SHA-1 碰撞不存在 C SHAttered 与 chosen-prefix 碰撞可造成 Git 内容寻址混淆与 TLS 证书伪造,需迁移到 SHA-256 ✓ 正确答案 D 碰撞只影响加密不影响签名
# 45. SHA-3 的 Keccak 采用 sponge(海绵)结构,它相对 Merkle–Damgård 在抗长度扩展与结构灵活性上有何优势? A 它更容易受长度扩展攻击 B 它抗长度扩展且天然支持可变长输出,衍生出 cSHAKE/KMAC 等 ✓ 正确答案 C 它只能输出固定长度 D 它与 Merkle-Damgård 完全相同
# 46. 哈希的抗原像、抗第二原像、抗碰撞三种性质如何定义?碰撞攻击为何只需约 2^(n/2) 次(生日界)? A 抗碰撞最难,只需 2^(n/2) 次(生日界),抗第二原像/原像需 2^n 次,碰撞安全强度为 n/2 ✓ 正确答案 B 三者强度相同 C 碰撞攻击需 2^n 次 D 生日界与碰撞无关
# 47. SHA-256 采用 Merkle–Damgård 结构逐块压缩,为什么这种结构会遭受长度扩展攻击? A MD 结构输出暴露内部状态,攻击者可从 H(k‖m) 计算 H(k‖m‖padding‖x),无需知道 k ✓ 正确答案 B SHA-256 抗长度扩展 C 长度扩展只影响加密 D 攻击需知道密钥才能进行
# 48. 为什么消息认证要用 HMAC 而不是直接对密钥拼接消息做哈希?密钥放消息前与放消息后各有什么风险? A 密钥前缀受长度扩展攻击、密钥后缀受碰撞/前缀攻击,HMAC 的双层结构规避两者并可有证明的安全 ✓ 正确答案 B 拼接哈希完全安全 C HMAC 与拼接哈希相同 D 拼接哈希更安全
# 49. 为什么 HMAC 可在底层压缩函数是伪随机函数的前提下被证明是安全的 MAC? A HMAC 安全与底层哈希无关 B HMAC 不依赖哈希 C HMAC 无法证明安全 D 在底层压缩函数为 PRF 的假设下,HMAC 可归约为 PRF,从而可证明是安全 MAC ✓ 正确答案
# 50. SHA-1 因碰撞攻击被弃用,但 HMAC-SHA1 目前仍被认为可用,原因是什么? A SHA-1 的碰撞不影响 HMAC 的 PRF 性质 ✓ 正确答案 B HMAC-SHA1 依赖抗碰撞,已不安全 C SHA-1 碰撞可恢复 HMAC 密钥 D HMAC-SHA1 与 SHA-1 签名同样不安全
# 51. SHA-256 与 SHA-512 的字长与轮数差异是什么?在 64 位平台上为何 SHA-512 有时反而更快? A 两者字长与轮数完全相同 B SHA-512 字长更短 C SHA-256 用 32 位字 64 轮,SHA-512 用 64 位字 80 轮,SHA-512 在 64 位平台处理长消息时可能更快 ✓ 正确答案 D SHA-512 每块只有 32 字节
# 52. SHA-2 的 Merkle–Damgård 结构为何天然存在长度扩展攻击,SHA-3(Keccak)的 sponge 结构如何从根本上规避? A SHA-3 仍受长度扩展攻击 B SHA-3 输出不可逆地暴露内部状态,padding 与挤压设计使其天然抗长度扩展 ✓ 正确答案 C SHA-3 与 SHA-2 构造相同 D SHA-3 输出即状态
# 53. Merkle 哈希树如何在 O(log n) 内完成单条数据的完整性证明,证书透明(CT)日志为何依赖它实现可审计性? A Merkle 证明需 O(n) 个哈希 B CT 不依赖 Merkle 树 C Merkle 树不做完整性 D Merkle 树用认证路径在 O(log n) 内证明叶子归属,CT 日志借此实现公开可审计的证书日志 ✓ 正确答案
# 54. 口令存储中加盐(salt)与慢哈希(bcrypt/scrypt/Argon2)分别抵御彩虹表与暴力破解的哪个环节? A 盐抵御暴力破解,慢哈希抵御彩虹表 B 只需加盐即可 C 两者都抵御彩虹表 D 盐抵御彩虹表与跨用户攻击,慢哈希提高逐个猜测成本,抵御暴力破解 ✓ 正确答案
# 55. KMAC、cSHAKE 与 TupleHash 等 NIST SP 800-185 派生函数如何基于 Keccak 提供域分离与可变长输出? A cSHAKE 不支持域分离 B cSHAKE 用函数名与自定义串实现域分离,KMAC/TupleHash 基于它提供可变长输出与 MAC ✓ 正确答案 C KMAC 是签名算法 D 它们不基于 Keccak
# 56. 抗碰撞、第二原像、原像三种安全性之间是什么蕴含关系,生日界为何让 128 位输出成为碰撞安全的下限? A 抗碰撞最弱 B 抗碰撞蕴含抗第二原像,生日界使碰撞安全强度为 n/2,128 位输出碰撞安全仅 64 位不达标 ✓ 正确答案 C 生日界与输出长度无关 D 128 位输出碰撞安全为 128 位
# 57. HMAC、KMAC 与 AEAD 的认证子密钥在“消息认证”这一目标上的分工与适用边界如何区分? A 三者完全相同 B HMAC 内嵌加密 C AEAD 只认证不加密 D HMAC/KMAC 是独立 MAC 用于纯认证,AEAD 认证与加密绑定,用于加密传输的完整性 ✓ 正确答案
# 58. RDP(Rényi Differential Privacy)accountant 在 PRIME、TensorFlow Privacy 的工程价值? A 它无法累计隐私预算 B 它用 Rényi 散度提供更紧的复合界,在 DP-SGD 中累计 ε 预算,支撑可审计的差分隐私 ✓ 正确答案 C 它与 DP 无关 D 它只用于加密
# 59. CSPRNG(ChaCha20-based)的 seed 在 RDRAND/RDSEED 与 fork 后的 re-seed 工程价值? A RDRAND/RDSEED 提供硬件熵种子,fork 后必须重播种以避免父子进程生成相同随机序列 ✓ 正确答案 B fork 后无需重播种 C 种子越多越不安全 D CSPRNG 不需要种子
# 60. AEAD 标签 vs Encrypt-then-MAC 的工程差异? A 两者完全相同 B AEAD 把加密与认证原子绑定,EtM 分离两者,AEAD 更简单且避免未认证解密漏洞 ✓ 正确答案 C EtM 更原子 D AEAD 不认证
# 61. bcrypt cost factor(log rounds)在 password storage 的工程价值? A cost 是固定值,不可调 B cost 越高哈希越快 C cost 是 2 的指数,控制哈希轮数,越高越慢越抗暴力破解,需按硬件与安全目标调优 ✓ 正确答案 D cost 与安全性无关
# 62. Argon2id vs scrypt 在 side-channel 与 GPU-friendly 的工程取舍? A scrypt 抗侧信道更强 B 两者都无内存硬 C Argon2id 混合数据无关访问抗侧信道且内存硬抗 GPU,是更现代稳妥的选择,scrypt 生态成熟但数据相关 ✓ 正确答案 D Argon2id 易被 GPU 加速
# 63. HPKE 的四种 mode(base、psk、auth、psk-auth)的工程语义? A HPKE 只有一种模式 B auth 模式不用密钥 C psk 模式不认证 D base 匿名、psk 用预共享密钥、auth 用客户端认证、psk-auth 两者兼有,按威胁模型选择 ✓ 正确答案
# 64. HPKE 在 Messaging Layer Security(MLS,RFC 9420)的工程应用? A MLS 用 HPKE 的 KEM 实现树状组密钥协商,支持成员变更时的前向安全密钥更新 ✓ 正确答案 B MLS 不用 HPKE C HPKE 只用于单方加密 D MLS 用对称加密
# 65. 在区块链与版本控制中,哈希作为内容寻址标识一旦算法被攻破,迁移成本来自哪些持久化引用? A 只需替换算法即可 B 迁移成本来自所有历史对象/区块的持久化哈希引用、链上不可变数据与外部系统依赖,需全面迁移 ✓ 正确答案 C 迁移无成本 D 哈希引用不持久
# 66. 为何对口令做哈希时应避免自研加盐拼接,而选用经过审计的 PHC 获胜算法实现? A 自研易用弱哈希、错误拼接、未经审计,PHC 获胜算法(Argon2)实现经过审计、提供盐与慢哈希 ✓ 正确答案 B 自研拼接更安全 C 自研哈希经过审计 D 第三方实现不可信
# 67. BLAKE2/BLAKE3 相对 SHA-256 在软件实现上为何更快,BLAKE3 的树形并行结构带来了什么额外能力? A 它们比 SHA-256 慢 B 它们不支持并行 C 它们用 ARX 与向量指令更快,BLAKE3 的树形并行支持多线程极高吞吐与流式输出 ✓ 正确答案 D 它们与 SHA-256 结构相同