Camellia 是什么
Camellia 是由日本 NTT 与三菱电机联合设计的分组密码,标准见 RFC 3713 与 ISO/IEC 18033-3:分组长度 128 位,密钥 128 / 192 / 256 位分别对应 18 轮与 24 轮的 Feistel 结构。它的设计目标与安全强度同 AES 一个量级,在部分密码产品、TLS 与国别合规场景中作为可选算法出现,在通用互联网部署中并不常见。
基本信息
| 标准 | RFC 3713 / ISO/IEC 18033-3 |
|---|---|
| 分组长度 | 128 位 |
| 密钥长度 | 128 / 192 / 256 位 |
| 轮数 | 18 轮(128 位密钥)/ 24 轮(192、256 位) |
| TLS 套件 | TLS 1.2 中的 CAMELLIA 套件由 RFC 5932 与 RFC 6367 定义 |
典型使用场景
- 与要求使用非 AES 算法的合规或采购条款对接
- 分析抓包或服务端配置时识别 CAMELLIA 套件的含义
- 密码库能力核对:确认构建时是否启用了该算法
- 与日本市场伙伴的系统互操作评估
- 理解 Feistel 结构家族(与 DES、Blowfish 同类)的共性特征
示例与套件查询
示例与套件查询
openssl enc -camellia-256-cbc -pbkdf2 -salt -in plain.txt -out cam.enc # 文件加密
openssl ciphers -v 'CAMELLIA' # 查看可用套件
openssl list -cipher-algorithms | grep -i camellia # 确认库中是否提供该算法
openssl enc -d -camellia-256-cbc -pbkdf2 -in cam.enc -out plain.out # 解密回路基本信息对照
| 项目 | 取值 | 说明 |
|---|---|---|
| 分组长度 | 128 位 | 与 AES 相同 |
| 密钥长度 | 128 / 192 / 256 位 | 标准均支持 |
| 轮数 | 18 或 24 轮 | 192 与 256 位密钥同为 24 轮 |
| 结构 | Feistel 网络 | 加解密可共用轮函数 |
| 部署情况 | 可选算法 | 通用互联网部署较少 |
实际部署较少,排障时若发现套件不可用,先确认密码库编译时是否启用了该算法,再看服务端套件白名单是否包含它。使用非 AES 算法通常出于合规或互操作要求,而不是性能考虑。
与 AES 的关系:两者都是 128 位分组密码,设计目标相近但结构不同;Camellia 缺少通用指令集加速,实际吞吐更依赖实现质量,选型时若无明确条款要求一般仍以 AES 为主。跨系统互通前,先确认双方库对密钥长度与工作模式的支持范围,并做一次加解密回路测试,避免在联调阶段才发现参数不一致。
运维提示:在服务端套件白名单里保留 CAMELLIA 通常只在合规场景下才有必要。如果目的只是「兼容更广」,先统计真实客户端的协商结果,多数情况下放宽白名单带来的收益,远小于长期维护与审计成本。