如您所知,密钥管理是密码学中最困难的任务之一。 就在前一天,文档“对称密钥的重新密钥编制机制”已发布为
RFC 8645 。 它是CFRG研究小组经过两年半的工作的结果,该研究小组决定了IETF中加密技术的开发和使用,它基于多年的研究和俄罗斯专家的经验。 接下来,我们简要解释该RFC的实质是什么,以及为什么原来如此。
有点害怕...
2016年,来自Inria研究所的两名法国研究人员发表了有关
Sweet32攻击的描述。 他们使用的想法非常简单,并且基于所谓的
“生日问题” :如果我们计算随机映射的值
f:Vn rightarrowVn 然后在
2n/2 测试结果序列中至少有两个值重合。 从密码学的角度来看,这意味着具有块长度的块密码
n 位不能再用一个密钥加密
2n/2 纯文本块。

在
Habré上已经详细考虑了这种攻击;在这里我们仅注意到作者利用了以下事实:某些广泛使用的密码库未及时更改会话密钥。 如果连接使用块长度为64位的块密码,则这可以使我们积累大量数据并仅使用指定的概率属性。 在迫切需要拒绝这种密码的情况下,这立即在近密码环境中引起了严重的歇斯底里。

但是块的长度是多少?
确实,仅仅因为密码块长度短就值得将密码排斥掉:如果您定期更改密钥怎么办? 这可以使用所谓的密钥派生函数(
KDF )来完成。 此类函数使您可以在保留旧密钥的随机性的同时,基于旧密钥获得新密钥(例如,参见
本文 )。 例如,此类功能由俄罗斯标准化建议
P 1323565.1.022-2018和
P 50.1.113-2016确定 。 但是,有一个“但是”:这些都是非常复杂的,并且不是基于散列函数构建的非常快速的转换,这将大大降低加密速度。
是否可以更快地执行某些操作?
这种尝试是在2006年的
RFC 4357中进行的 ,其中提出了CryptoPro密钥划分机制,该机制通过在简单替换模式下使用分组密码对固定常数进行加密来生成派生密钥。

这是一种非常快速的算法,几乎对加密速度没有影响,并且可以防止Sweet32中使用的这种可笑情况,并且还可以防止对旁通道的攻击。 但是,在2015年Ruscrypto会议上,
证明了这种转换会降低密钥集的功能,即 每次更改新键时,其可能的键选择选项的数量都会减少。 作者指出,这对安全性没有任何重大影响,但是,是否可以做得更好却变得很有趣。

事实并非如此简单
不幸的是,奇迹并不存在,不可能提供与传统KDF相当的快速机制,但是,我们可以
证明几种修改方案
的安全性,例如针对每个特定加密模式的指定密钥网格划分。 正是针对广泛使用的CTR伽马模式(CTR-ACPKM,密钥材料的高级加密延长)以及从国内标准GOST R 34.13-2015开发OMAC模拟插入物(OMAC-ACPKM)提出并
证明了这些机制。
使用所谓的设备获得这些模式的安全等级
“可证明的耐久性 。
”在俄罗斯采用了这些模式作为
R 1323565.1.017-2018标准化的建议。
这种使用密钥的方式允许实现俄罗斯TLS 1.2加密集(在
标准化建议R 1323565.1.020-2018中定义)的加密工具满足俄罗斯对高级加密保护的要求。
在IETF工作
所开发的机制非常适合作为本文开头提到的有关是否应该使用短块长度密码的讨论的答案。
CFRG主席肯尼·帕特森(Kenny Paterson)和阿列克谢·梅尔尼科夫(Alexei Melnikov)委托由Stanislav Smyshlyaev领导的国际专家小组委托,开发了相应的文档,后来成为RFC 8645。 Evgeny Alekseev,Ekaterina Smyshlyaeva和Lilia Akhmetzyanova(CryptoPro),Shay Gueron(海法大学),Daniel Fox Franke(Akamai Technologies)以及IETF前负责人Russ House(Vigil Security)为最终文件的开发做出了贡献。 在各个阶段,诸如Mihir Bellare(加利福尼亚大学),Scott Flurer(思科),Yoav Nir(检查点),Dmitry Belyavsky(Cryptocom)和Paul Hoffman(ICANN)等主要专家都参加了工作。
与俄罗斯的建议相比,此CRFC,CFB和GCM等模式的ACPKM机制已添加到此RFC中,您可能已经了解到,它们需要单独的
证据。总结
如前所述,尽管所提出的方法在某些方面不是通用的,并且需要针对每种单独模式的单独安全理由,但我们奖励高速,安全性(来自Sweet32等攻击)以及(尤其是来自)侧通道。