对称加密算法(AES、DES、SM4)
对称加密是密码工程师面试的核心考点,尤其关注算法原理对比、工作模式选择与国密合规。国内企业普遍要求掌握 SM4 替代 AES 的落地能力。面试时需遵循 「算法 → 模式 → 应用场景」 的三段式回答框架,先定性算法特性,再结合安全约束选择模式,最后关联业务场景体现工程思维。
📖 面试问答卡片(3 题)
Q1:请对比 AES、DES、SM4 的算法原理和安全性
🎯 考察点:是否掌握对称加密的核心参数(分组大小、密钥长度、轮数),能否从密码分析角度判断安全性。
🧭 回答框架:先定算法类型 → 分组与密钥长度 → 轮数/结构(Feistel/SPN)→ 安全性对比 → 国密优势。
✏️ 示例回答:AES 分组 128 位,密钥 128/192/256,SPN 结构 10/12/14 轮;DES 分组 64 位,密钥 56 位,已不安全;SM4 分组 128 位,密钥 128 位,32 轮 Feistel 结构,安全性等效 AES-128。国内合规要求优先选 SM4。
❓ 可能追问:SM4 的 S 盒如何构造?与 AES 的 S 盒区别?
⚠️ 避坑提醒:不要只说“DES 已淘汰”,需说明 3DES 在当前场景仍可接受但性能差;避免混淆分组大小与密钥长度。
Q2:对称加密有哪些工作模式?如何选择?
🎯 考察点:是否理解 ECB/CBC/CTR/GCM 等模式的安全缺陷与适用场景,是否了解 AEAD。
🧭 回答框架:列出常见模式 → 分类(电子代码本/分组/流/认证加密)→ 缺点(ECB 明文模式)→ 推荐选择逻辑(传输用 GCM,存储用 CBC+HMAC)。
✏️ 示例回答:ECB 不安全,相同明文输出相同密文;CBC 需随机 IV 且不支持并行;CTR 可并行但无认证;GCM 提供加密+认证,推荐用于网络传输。存储场景可选 CBC+HMAC。国密推荐 SM4-GCM。
❓ 可能追问:GCM 的 nonce 大小为何是 12 字节?IV 重用有什么后果?
⚠️ 避坑提醒:不能为了简单选 ECB;注意区分“工作模式”与“填充模式”(PKCS7/ISO10126)。
Q3:在项目中如何选择对称加密算法?国内企业应关注什么?
🎯 考察点:工程决策能力、国密合规意识、性能与安全权衡。
🧭 回答框架:需求分析(合规/性能/兼容性)→ 算法候选(AES/SM4)→ 模式选择 → 密钥管理方案 → 性能测试验证。
✏️ 示例回答:国内金融项目首选 SM4-GCM,满足 GM/T 标准;海外业务可用 AES-256-GCM。需评估软硬件加速,SM4 在 ARMv8 有指令集优化。密钥管理用 KMS 或 HSM 存储,避免硬编码。
❓ 可能追问:SM4 的加解密性能与 AES 差距?如何迁移存量 AES 加密数据?
⚠️ 避坑提醒:不能只考虑算法忽略密钥生命周期;注意国密算法需要商密认证,避免自行实现。
🏗️ 项目案例模板:国密合规数据加密平台
| 项目名称 | 国密合规数据加密平台(SM4-GCM 数据保护) |
| 业务背景 | 某银行核心交易系统需满足 GM/T 0054 等商密标准,将原有 AES-256 加密全面替换为 SM4,同时保证零停机迁移。 |
| 规模指标 | 每日加密记录 200 万+,平均响应 <50ms,支持 10 个业务域并发接入。 |
| 技术栈 | SM4-GCM(国密标准)、Java 11、Spring Boot、Redis 缓存、HSM (三未信安)、KMS(自研)。 |
| 核心难点 | ① 存量 AES 数据在线迁移时需解密后重加密,双写一致性保证;② SM4 软实现性能瓶颈,利用 Intel IPP 或 ARM NEON 优化;③ 密钥轮转策略不能影响业务连续性。 |
| 面试高频追问 | 为什么选 GCM 而不选 CBC?SM4 的 S 盒与 AES 有何不同?如何保证加密字段的可搜索性(保留格式加密/密文索引)? |
| 可迁移回答话术 | “在国密合规项目中,我主导了 SM4-GCM 的算法选型,通过 HSM 实现密钥安全存储,并设计了双缓冲迁移机制,将停机窗口控制在 2 小时内。核心思路是优先满足合规,再通过硬件加速和缓存优化性能。” |