Encode-then-Encipher

关注
义项:先编码后加密范式

Encode-then-Encipher(缩写 EtE,可译为先编码后加密)是一种对称加密构造范式:加密时先用与密钥无关的编码函数把消息变换成更长的串,再用以共享密钥为参数的置换(密码)对其作用;解密时顺序相反,先做逆置换,再解码并校验编码是否成立。[1][2] 该范式由 Mihir Bellare 与 Phillip Rogaway 在 2000 年提出,其意义在于当消息本身已带 nonce 或冗余时,不必增加密文长度、也不必附加单独的认证标签,就能同时获得机密性与真实性,并因此成为构造鲁棒认证加密的一条通用路线。[2][3]

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

Encode-then-Encipher 指一类对称加密的构造方式:加密分为编码与置换两步,编码是不依赖密钥的变换,把消息映射为更长的字符串;随后用一个以共享密钥为参数的置换作用在该字符串上,得到密文。[1][2] 解密时顺序相反,先做逆置换,再调用解码函数,并根据解码是否成功判断密文是否合法。[2] 由于完整性依靠编码所含的冗余提供,这类方案不需要另加认证标签。[4]

该范式由 Mihir Bellare 与 Phillip Rogaway 在 2000 年发表于密码学会议 ASIACRYPT,论文收录于《Lecture Notes in Computer Science》第 1976 卷,页码为 317 至 330。[1][5] 论文给出两个核心结论:编码只要以任何方式引入 nonce(如计数器或随机值),所得方案即满足语义安全;编码只要以任何方式引入冗余,且接收方在解码时校验冗余,所得方案即达到消息真实性。[2] 这组结论把“对带冗余的消息做密码变换即可获得真实性”这一长期经验说法形式化,前提是把“加密”理解为“置换”。[1][2]

原理

形式化地看,编码方案由 encode 与 decode 两个函数构成,对任意消息 M 都满足 decode(encode(M))=M;对于不属于任何合法编码的字符串,解码应给出无效判定。[2][4] 于是加密可写为 $C=F_K(\mathrm{encode}(M))$,解密写为 $M=\mathrm{decode}(F_K^{-1}(C))$。其中 F 以密钥 K 为参数,是可作用于任意长度串的长度保持置换,文献通常要求它接近随机长度保持置换,即所谓可变输入长度密码。[2]

加密与解密的基本流程可用下图表示:


flowchart LR

A[消息 M] --> B[编码 encode]

B --> C[编码后消息]

C --> D[密钥置换 F_K]

D --> E[密文 C]

E --> F[逆置换]

F --> G[解码并校验]

安全性有两个来源。编码中若含 nonce,只需保证两条编码结果相同的概率足够小,加密后即达语义安全;编码中若含冗余,则随机字符串中只有极小比例能通过解码校验,伪造成本因此与伪造标签相当,方案获得消息真实性。[2] 证明这一结论时,底层置换必须是强 伪随机置换,仅具普通伪随机置换性质不足以支撑真实性。[2]

现代实现通常把 EtE 建立在 可调分组密码 之上:以可调的宽分组密码作为底层置换,用调柄承载 nonce 与关联数据,并在消息之前或之后附加若干比特的零作为编码,解密时校验这些零位是否完整。[4][3] 这样得到的方案属于 鲁棒认证加密(RAE),可以容忍 nonce 重用,也能在被要求输出未验证明文时维持安全。[3][6]

发展历程

该工作的早期投稿版本可追溯到 1998 年 12 月,正式发表于 2000 年 12 月 3 日的 ASIACRYPT 2000。[2][5] 作者在论文中即指出,这种加密方式在当时并不流行,尽管它相当自然。[2]

此后十余年间,EtE 主要作为理论框架存在;直到 CAESAR 竞赛开展,它才重新获得关注,因为以宽分组密码为基础、通过附加零位来编码的做法,能以较低代价实现具备强鲁棒性的认证加密。 AEZ 是这一路线的代表:它由 Hoang、Krovetz 与 Rogaway 在 2015 年的 EUROCRYPT 上提出,提交至 CAESAR 竞赛并进入第三轮,是首个专门用 EtE 实现鲁棒认证加密的方案。[7]

2018 年,Crowley 与 Biggers 提出面向低端处理器的长度保持加密方案 Adiantum;2021 年,Crowley、Huckleberry 与 Biggers 提出 HCTR2。[8] 两者作为宽分组密码被用于文件级加密,其中 HCTR2 还进入了 Linux 内核。[9][8]

2023 年起,美国国家标准与技术研究院开始就分组密码工作模式(文献中称为 accordion)展开标准化讨论,用 EtE 把宽分组密码转换为鲁棒认证加密成为议题之一,EtE-HCTR2 等具体实例的安全性随之受到分析。[9][3]

应用

磁盘与文件加密是相关方案最主要的落地场景。Adiantum 被广泛用于移动设备的磁盘扇区加密与文件系统级加密,HCTR2 同样用于文件级加密并在 Linux 内核中提供实现;这些方案的共同目标是在缺少 AES 硬件指令的低端处理器上也能高效运行。[7][9]

在认证加密方面,把 宽分组密码 按 EtE 组合即可得到鲁棒认证加密方案,实例包括 AEZ、EtE-Adiantum 与 EtE-HCTR2;其中 AEZ 已被 Tor 等开源项目采用,并有多种语言的实现。[3][7]

另一类应用是既有协议的安全加固。当报文格式本身已包含序号或冗余、却没有为初始向量或认证标签预留字段时,直接对整条报文做编码与置换,可以在不改变报文长度和解析方式的前提下加入机密性与真实性,加密模块也不需要知道序号与冗余的所在位置。[2] 这种特性被认为能为遗留协议的升级提供较平滑的迁移路径。[2]

局限

EtE 要求底层提供长度保持的宽分组密码,也就是作用在任意长度串上的置换,这类原语本身不易构造。[2] 其真实性结论还要求底层是强伪随机置换,仅具普通伪随机置换性质并不成立。[2]

当底层 分组密码 的分组长度为 128 比特时,Adiantum 与 HCTR 一类结构的安全强度受生日界限制,上限约为 64 比特;同时它们需要调用分组密码的逆运算,在多数实现中会带来额外开销。[10]

承诺安全是这类方案的另一个弱点。分析表明,EtE 方案的密钥承诺强度被限制在底层分组密码分组长度的一半,使用 128 比特分组密码时最多达到 64 比特,低于文献建议的 80 比特下限;在更强的 CMT-4 定义下,AEZ、EtE-Adiantum 与 EtE-HCTR2 都能在常数时间内被攻破。[6][3] 针对 AEZ 完整规范的密钥承诺攻击复杂度为 $2^{27}$;对 EtE-HCTR2,把零附加在消息之前或之后的两种编码都低于生日界,只有在特定填充位置下才能获得紧致的安全界。[7][9]

效率方面,EtE 在加密前必须扩展消息,本身存在额外开销;有研究为在标签可截断等场景中兼顾私密性与真实性,提出推广形式 gEtE,但代价仍然是效率。[11] 因此在实际系统中,是否采用 EtE 往往需要在鲁棒性与开销之间权衡。[11]

参见

  • 宽分组密码 —— EtE 常以其作为底层原语,把仅有保密性的宽分组密码转化为带完整性的认证加密。

  • 可调分组密码 —— 在 EtE 中承担调柄输入,用于承载 nonce 与关联数据。

  • AEAD —— EtE 是构造带关联数据认证加密、特别是鲁棒认证加密的一条通用路线。

  • AEZ —— 首个专门采用 EtE 实现鲁棒认证加密的方案。

  • Adiantum —— 广泛用于移动端磁盘加密的宽分组密码,可与 EtE 组合成认证加密方案。

  • HCTR2 —— 同样可与 EtE 组合的宽分组密码,已部署于 Linux 内核。

参考资料

  1. encode . ucdavis.edu [引用日期2026-09-29]
  2. ucsd.edu 上的 PDF 文件 . ucsd.edu [引用日期2026-09-29]
  3. sess-8-naito-acm-workshop-2024(PDF) . nist.gov [引用日期2026-09-29]
  4. where \(\mathcal{DV}\) is a verified decryption function . iacr.org [引用日期2026-09-29]
  5. acm.org 上的网页 . acm.org [引用日期2026-09-29]
  6. iacr.org 上的 PDF 文件 . iacr.org [引用日期2026-09-29]
  7. Key Committing Security of AEZ and More . iacr.org [引用日期2026-09-29]
  8. HCTR2 . nist.rip [引用日期2026-09-29]
  9. Key Committing Security of HCTR2, Revisited . iacr.org [引用日期2026-09-29]
  10. Deck-Based Wide Block Cipher Modes . nist.gov [引用日期2026-09-29]
  11. iacr.org 上的文件 . iacr.org [引用日期2026-09-29]
词条评价
词条统计

浏览次数:0 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-09-29T12:52:48Z

历史版本

完成率 = 阅读完成量 ÷ 阅读量,分母是阅读量不是浏览次数 —— 关了 JS 的、秒退的都在浏览次数里、不在阅读量里。 详细口径在后台的「数据统计」页。

本条目引用的词条
Mihir Bellare Phillip Rogaway nonce 伪随机置换 可调分组密码 鲁棒认证加密 AEZ Adiantum HCTR2 宽分组密码 Tor 分组密码 宽分组密码 可调分组密码 AEAD AEZ Adiantum HCTR2
红色的还不存在。红链不是错误——它标出"这个概念被引用了但还没人写"。