此翻译是使用机器学习生成的,可能不是100%准确。 查看英文版本

新的加密提案模板

Proposal 142
Meta
Author zzz
Created 2018-01-11
Last Updated 2018-01-20

概述

本文档描述了在提议替换或增加我们现有的 ElGamal 非对称加密算法时需要考虑的重要问题。

这是一份信息性文档。

动机

ElGamal 陈旧且缓慢,已有更好的替代方案。
然而,在我们能够添加或切换到任何新算法之前,必须解决若干问题。
本文档重点说明这些尚未解决的问题。

背景研究

任何提议新加密算法的人都必须首先熟悉以下文档:

非对称加密的用途

回顾一下,我们在以下场景中使用 ElGamal:

  1. 用于隧道构建消息(密钥位于 RouterIdentity 中)

  2. 用于路由器之间对 netdb 及其他 I2NP 消息的加密(密钥位于 RouterIdentity 中)

  3. 用于客户端端到端的 ElGamal+AES/SessionTag(密钥位于 LeaseSet 中,Destination 密钥未使用)

  4. 用于 NTCP 和 SSU 的临时 DH 密钥交换

设计

任何提议用其他算法替换 ElGamal 的方案,必须提供以下详细信息。

规范

任何关于新非对称加密的提案必须完整说明以下内容。

1. 通用要求

在你的提案中回答以下问题。请注意,这可能需要与下面第 2) 点中的具体细节分开成独立提案,因为它可能与现有提案 111、123、136、137 或其他提案冲突。

  • 你提议将新加密算法用于上述哪几种情况(1-4)?
  • 如果用于 1) 或 2)(路由器),公钥应存放于何处?是在 RouterIdentity 还是 RouterInfo 的属性中?你是否打算在密钥证书中使用加密类型?必须完全明确说明,并为你的决定提供合理依据。
  • 如果用于 3)(客户端),你是否打算将公钥存储在 Destination 中并在密钥证书中使用加密类型(如 ECIES 提案所述),还是将其存储在 LS2 中(如提案 123 所述),或其他方式?必须完全明确说明,并为你的决定提供合理依据。
  • 对于所有用途,如何通告对该算法的支持?如果用于 3),是放在 LS2 中还是其他位置?如果用于 1) 和 2),是否类似于提案 136 和/或 137 的方式?必须完全明确说明,并为你的决定提供合理依据。这部分很可能需要一个独立的提案。
  • 完整说明该方案为何以及如何实现向后兼容,并详细说明迁移计划。
  • 你的提案依赖哪些尚未实现的提案作为前提?

2. 具体加密类型

在你的提案中回答以下问题:

  • 提供通用加密信息,具体曲线/参数,并充分论证你的选择。提供规范和其他信息的链接。
  • 提供与 ElGamal 及其他可选方案相比的速度测试结果(如适用)。包括加密、解密和密钥生成性能。
  • C++ 和 Java(包括 OpenJDK、BouncyCastle 和第三方库)中的库支持情况。
    对于第三方或非 Java 实现,请提供链接和许可证信息。
  • 建议的加密类型编号(是否使用实验性范围)

注释