SEED 加密/解密
韩国标准 128 位分组密码(KISA)
算法信息
注意:SEED 使用固定的 128 位密钥(不同于支持 128/192/256 的 AES)
注意:支持 ECB、CBC、CFB 和 OFB 模式
关于 SEED 密码
SEED 是韩国信息安全局(KISA)和电子通信研究院(ETRI)于 1998 年联合开发的 128 位块对称密码。它被采纳为韩国国家标准(KS X 1213,2003 年)和电信技术协会标准(TTAS.KO-12.0004),并通过 RFC 4269(SEED 算法,2006 年 1 月)和 RFC 5469(SEED TLS 密码套件,2009 年 2 月)在国际上标准化。SEED 使用单一 128 位密钥的 16 轮 Feistel 网络,被设计为韩国政府信息系统和金融行业加密的强制密码。
| 算法 | SEED |
| 标准 | KISA / ISO 18033-3 / RFC 4269 |
| 密钥长度 | 128 bits (fixed) |
| 块大小 | 128 bits |
| 轮数 | 16 |
| 模式 | ECB / CBC / CFB / OFB |
| 填充 | PKCS7 / Zero / ISO10126 / ANSI X.923 / None |
| 来源 | Korea (KISA) |
| 年份 | 1998 |
主要特点
- 128 位块,仅 128 位密钥:SEED 在 128 位块上运行(消除了 DES、3DES、Blowfish 等 64 位块密码中存在的 Sweet32 生日界攻击漏洞)。仅支持单一 128 位密钥;不存在 192 位或 256 位 SEED 变体。
- 16 轮 Feistel 与 G 函数及 S 盒:每轮使用具有 G 函数的 F 函数,G 函数由四个 8 位 S 盒替换(S01 和 S02 查找表)和 32 位算术运算组成,提供混淆和扩散。密钥调度从四个 32 位初始密钥字生成 32 个轮密钥字(每轮两个)。
- 韩国国家标准 + RFC 标准化:KS X 1213(2003 年)使 SEED 成为韩国电子政务(G4C)和金融行业合规的强制密码。RFC 4269 记录算法;RFC 5469 定义 IANA TLS 密码套件(0x0096 TLS_RSA_WITH_SEED_CBC_SHA,0x0099 TLS_DHE_RSA_WITH_SEED_CBC_SHA)。
- KCMVP(韩国密码模块验证程序)认证:SEED 是韩国政府采购所需 KCMVP 认证模块的基线密码;与 ARIA(2004 年)一起,两者都是国内市场信息安全产品的强制选项。
- 支持的密码模式:ECB、CBC、CFB、OFB、CTR;对于认证加密,将 SEED-CBC 与 HMAC-SHA-256 结合或使用单独的 MAC 层,因为官方韩国标准中没有定义 SEED 的内置 AEAD 模式。
常见用途
安全注意事项
- 对经典密码分析的抵抗:SEED 被明确设计为抵抗差分密码分析(Biham-Shamir)和线性密码分析(Matsui)。S 盒设计(S01 和 S02)确保高非线性度;F 函数在 128 位块上提供完全雪崩效应。
- 最佳已发布密码分析结果:Hermelin 和 Nyberg 的相关密钥攻击(2010 年)对 SEED 完整轮的复杂度约为 2^125。这比 2^128 蛮力界略有降低,实际上不可利用。截至 2025 年,SEED 对所有已知攻击仍然安全。
- 无 256 位密钥变体:SEED 仅提供 128 位密钥。虽然 2^128 安全边际超过当前经典计算威胁,但后量子安全建议长期机密使用 256 位密钥。对于韩国系统的后量子迁移,ARIA-256(RFC 5794)是指定的继任者。
- CBC 模式和认证加密要求:SEED-CBC 易受填充预言攻击(类似于 TLS 的 POODLE),需要认证。始终将 SEED-CBC 与 HMAC-SHA-256 结合或使用 GCM 等效模式以确保数据完整性。RFC 5469 中的 TLS SEED 套件使用 SHA-1 MAC,自 SHA-1 抗碰撞性被破解(SHAttered,2017 年)以来,这是一种遗留组合。
- ARIA(RFC 5794,2010 年)是现代继任者:由国家安全研究院(NSRI)于 2003 年开发,ARIA 支持 128/192/256 位密钥和类似 AES 的 SPN 结构;RFC 5794 + RFC 6209(TLS ARIA 套件)。对于韩国新系统部署,优先选择 ARIA-256-GCM 而非 SEED-CBC。