ISO 29904 基于身份的加密:算法、协议与实现

ISO 29904 IBE 算法技术指南,包括 Boneh-Franklin、Sakai-Kasahara、混合加密与部署实践

ISO 29904 基于身份的加密——算法与协议概述

ISO 29904 建立在 ISO 29903-1 定义的数学基础设施之上,为基于身份的加密系统规定了具体、可实现的算法。第一部分建立了双线性配对和代数结构的理论基础,而第二部分定义了使可互操作 IBE 实现成为可能的特定加密协议、编码方案和消息格式。该标准对于构建启用 IBE 的应用程序的加密工程师、安全架构师和软件开发人员来说至关重要。

该标准规定了四种主要的 IBE 方案:用于选择明文安全性的基础 Boneh-Franklin 方案、用于选择密文安全性的完整 Boneh-Franklin 方案、基于不同数学构造的 Sakai-Kasahara 方案以及无需随机预言机即可提供安全性的 Boneh-Boyen 方案。每种方案都有完整的算法细节,包括系统参数生成、密钥提取、加密和解密过程。标准还定义了将 IBE 与对称密钥密码学相结合的混合加密变体,用于高效加密任意长度的消息。

对于大多数实际应用,混合加密模式下的完整 Boneh-Franklin 方案是推荐选择。它提供最强的安全保证,同时保持合理的计算效率。Sakai-Kasahara 方案提供更快的加密速度,但需要仔细实现以避免填充预言机漏洞。

Boneh-Franklin IBE:基础方案

Boneh-Franklin IBE 方案于 2001 年首次发表,至今仍是部署最广泛、分析最全面的 IBE 构造。ISO 29904 规定了 BasicIdent 和 FullIdent 两种变体。BasicIdent 使用单个将身份映射到群元素的哈希函数 H1 和另一个用于消息编码的哈希函数 H2,提供针对选择明文攻击的语义安全性。加密过程接收身份字符串 ID 和消息 M,计算 gID = e(H1(ID), Ppub)(其中 Ppub 是公共主密钥),并生成密文 C = (U, V),其中 U = rP 且 V = M XOR H2(gID^r)。

FullIdent 变体通过 Fujisaki-Okamoto 转换将 BasicIdent 扩展为提供针对自适应选择密文攻击的安全性。该转换添加了一个检测密文篡改的验证步骤,防止攻击者通过解密查询提取信息。标准规定了所有密文组件的精确字节级编码格式,确保不同实现之间的互操作性。为多个安全级别定义了密钥大小,128 位安全级别使用 256 位 BN 曲线,生成的密文约为 70 字节加上对称加密的消息负载。

方案 安全级别 安全模型 密文开销 解密成本
BasicIdent IND-ID-CPA 随机预言机 约 64 字节 1 配对 + 1 指数运算
FullIdent (BF) IND-ID-CCA 随机预言机 约 70 字节 1 配对 + 2 指数运算
Sakai-Kasahara IND-ID-CCA 随机预言机 约 60 字节 1 指数运算(无配对)
Boneh-Boyen IND-ID-CCA 标准模型 约 100 字节 3 配对 + 2 指数运算
BasicIdent 方案绝不应在生产系统中使用。它容易受到选择密文攻击,攻击者可以通过进行解密查询来解密任意密文。对于处理敏感数据的任何部署,始终使用 FullIdent 变体或应用 Fujisaki-Okamoto 转换。

编码、序列化与密钥格式

ISO 29904 规定了所有 IBE 加密对象的详细编码和序列化格式,包括系统参数、公钥、私钥和密文。标准使用可区分编码规则进行参数序列化,提供与现有加密基础设施的兼容性。系统参数编码为包含曲线标识符、生成点、公共主密钥点和哈希函数标识符的 SEQUENCE。私钥编码为带有访问控制元数据的 ASN.1 结构。

该标准还定义了 IBE 的综合密钥派生框架,支持分层身份的加密密钥派生。分层 IBE 扩展允许父身份为子身份生成私钥,支持组织结构。ISO 29904 规定了分层身份字符串的正斜杠分隔符编码,并定义了密钥派生协议,实现在不暴露父级主密钥的情况下的授权。

分层 IBE 是 ISO 29904 最强大的功能之一,为大型组织实现了高效的密钥管理。通过 HIBE,部门级 PKG 可以为其成员生成密钥而无需访问组织级主密钥,显著降低了主密钥泄露的风险。标准支持实际部署中最多 8 个层级。

实际部署与实现指导

ISO 29904 提供了全面的实现指导,涵盖性能优化、侧信道抵抗和与现有安全基础设施的集成。对于性能关键型应用,标准推荐配对值的预计算技术、多个同时解密操作的批处理以及使用可信执行环境的硬件加速。标准还规定了针对定时攻击、功耗分析攻击和故障注入攻击的对策,这对于在移动设备和云服务器等对抗性环境中运行至关重要。

该标准非常重视互操作性测试和认证。ISO 29904 为每种方案变体定义了一组测试向量,使开发人员能够验证其实现的正确性。这些测试向量涵盖 IBE 协议的所有阶段:系统参数生成、密钥提取、加密和解密。标准还规定了支持 IBE 的安全电子邮件协议。对于物联网应用,标准定义了轻量级 IBE 变体,以减少资源受限设备的计算和通信开销。

实现加密算法需要极其注意细节。由于配对计算、指数运算时序和内存访问模式中的细微问题,许多 IBE 实现中都发现了侧信道漏洞。始终对所有加密操作使用恒定时间实现,并在可用时考虑使用经过形式化验证的加密库。

常见问题解答

问:ISO 29904 中 IBE 系统的密钥撤销如何工作?

答:ISO 29904 规定了多种密钥撤销方法。最实用的方法使用时间限制身份,其中 PKG 颁发仅在指定到期日期之前有效的私钥。对于即时撤销,标准支持基于黑名单的撤销和基于中介的撤销。

问:部署 IBE 技术的专利方面有哪些考虑?

答:基础的 Boneh-Franklin IBE 专利已过期,使基本 IBE 方案可免费用于商业用途。但是,某些扩展和优化可能仍受有效专利的保护。组织在商业产品中部署 IBE 之前应进行自己的专利布局分析。

问:ISO 29904 能否用于物联网设备间的通信加密?

答:可以,标准包括针对物联网部署的特定规定。轻量级 IBE 变体通过离线预计算减少配对计算。在典型的 ARM Cortex-M4 处理器上,IBE 加密操作大约需要 30-50 毫秒,使其适用于许多物联网应用。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注