2合1:具有安全保护功能的加密

密码方法解决的经典任务是确保机密性,并确保存储和传输的数据的真实性/不可伪造性。较早(直到2000年代中期),使用加密(机密性)和生成插入/验证码的功能(抗仿制性)来解决此类问题。同时,加密和生成插入的功能是通过单独的加密机制实现的,这引起了很多问题。首先,这与密钥信息的管理有关:使用一个密钥进行加密和安全性保护时,许多方案(例如AES-CBC + AES-CBC-MAC)完全不稳定。为了使这种结构安全,有必要使用例如派生密钥生成功能(KDF)生成附加密钥。反过来,这导致使用类似方案的密码协议显着复杂。此外,就性能而言,两种机制的一致使用并不总是最快的解决方案。

从二十一世纪初开始,人们开始尝试创建具有模仿保护功能的加密机制(有时可以从英语“身份验证的加密”中找到“认证的加密”一词),这将立即解决这两个任务。

可以将此类机制开发的下一阶段视为具有安全性和关联数据的加密机制(来自英语AEAD-关联数据的身份验证加密)。 AEAD机制的一个特点是,它们可以同时处理两种类型的数据:必须确保机密性和安全性的数据(例如IP数据包数据)和仅需要提供安全性而没有隐私的数据-它们也称为“额外保护的数据”(“关联数据”,“额外验证的数据”-这可能是IP数据包头)。 AEAD机制最流行的应用之一是各种密码数据保护协议,例如,最近采用的IETF TLS 1.3 RFC 8446关于哈布雷的著作。因此,此RFC 8446考虑了该协议中使用的经过身份验证的加密算法(您可以在此处阅读有关TLS 1.3协议的基本原理)。

AEAD机制可以基于各种设计来构建:流和分组密码,压缩映射(哈希函数),现在流行的“海绵”类型构造(来自英语“海绵”)。可以看到多种选择,尤其是在CAESAR竞赛网站上以及有关该竞赛的各种评论中,例如,请参见此处此处。。顺便说一句,竞赛本身是在2013年组织的,只是为了确定最佳的AEAD机制,而不是广泛使用的AES-GCM(NIST在2007年对GCM模式进行了标准化),当时提出了针对这种攻击的建议(这里那里)。同时,还向CAESAR参赛者提出了其他功能要求,例如“在线”工作能力,并行化能力,不受反转影响,防止错误使用初始化和一次性矢量,存在预计算,数据增加,中间模拟,固定关联的重用数据。我们会详细解释。

“在线”工作:通常为了确保机密性/抗模仿性,首先必须完全形成将要处理的整个数据包,然后才开始处理过程。允许“在线”操作的机制不需要这样做,它们可以处理传入的实时数据流,“即时”处理它。通过并行化AEAD机制,我们意味着可以在多个处理器之间分布计算。不受反向限制意味着在AEAD机制中仅使用加密功能或仅使用解密功能。从实现的角度来看,此特性很重要:对于某些密码(例如Grasshopper,AES),分别使用不同的转换来实现加密和解密,不受反转的限制意味着硬件实现中的芯片面积较小,软件中的软件较少。使用预计算,一切都很简单-在选择密钥之后,这是一次进行大量初步计算的机会,这些计算将进一步加快输入数据的处理速度。

从某种意义上说,数据的增加和固定关联数据的重用也可以归因于预先计算。增量表示在我们将一些其他数据添加到已处理的数据中而无需重新处理所有数据的情况下,能够快速重新计算插入的能力。使用固定的关联数据是对经常遇到的数据执行预计算的能力,这样,每次出现它们时,就不会再次对其进行处理。从某种意义上说,最后一个属性(中间的模仿插入内容)也可以“即时”运行,即具有在处理过程中在接收方验证数据正确性的能力,而无需等待传输结束。因此,如果中间模拟插入的验证失败,所有后续数据流都不需要进行处理,从而节省了时间和资源。

事实证明,创建同时满足如此广泛要求的AEAD机制非常困难。这导致CAESAR竞赛一再被延长,由于评审团无法选择获胜者而推迟了截止日期-所有参赛者都有不同的属性-竞争直到2019年春季才结束,选择了几位具有不同属性的参与者。

首次引入了家用AEAD模式的原型,后来称为MGM(多线性伽罗瓦模式)在2017年,MGM是一种分组密码操作模式。该模式包括两个部分,每个部分都基于其自己的计数器。第一个计数器用于生成序列,然后将其用于加密。其工作原理类似于CTR模式的计数器(请参阅GOST R 34.13-2015或ISO / IEC 10116),但有很大的不同:计数器的初始值是使用加密从唯一的初始化向量中获得的(即刻)。第二个计数器用于构建多线性函数,在此函数的基础上生成仿制插入。第一个和第二个计数器的工作方式不同,第一个计数器使该块的右半边递增,第二个计数器向左递增。操作模式如图所示。



这里Ek具有块长度的任意块密码nA1,...,Ah是相关数据的块,P1,...,Pq是明文块,nonce唯一长度初始化向量n1按位加法运算,现场乘法运算GF(2128)MSBS截短一个长度的块S是相关数据和密文的位长,len(A)||len(C)增量函数。报告文章中,您可以找到有关构建MGM模式的原理的详细说明。简而言之,在开发过程中解决了以下问题:为不会受到已知攻击(特别是成功应用于GCM模式的攻击)的分组密码创建一种功能良好且并行度高的操作模式。报告中显示了该模式的以下功能:incr,incl



  • ,
  • ,
  • ,
  • (.. , MGM ),
  • ,
  • ( ()),
  • .

与许多当前使用的模式不同,MGM设法在所谓的可证明安全性模型中获得了持久性的形式化证明,可以用两个定理的形式进行总结,以评估可使用该模式处理的明文块的安全数量没有密钥更改的MGM。我们感到遗憾的是,读者在这里只提供他们的措辞,那些希望看到完整证据并彻底熔化头脑的人可以参考原始出版物。第一个定理说的是确保信息的机密性。

定理
, q, σ, :

AdvMGMPerm({0,1}n)Priv3(σ+4q)22n



第二个是关于数据认证的安全性(它的模仿阻力)。

定理
, q, σ, l, :

AdvMGMPerm({0,1}n)Auth3(σ+3q+l+2)22n+12s1



请注意,在使用“可证明的持久性”方法时,总是会出现所获得估计的准确性(即,它们实际上与现实相对应并足以实施)的问题。因此,在这种情况下,他们证明是准确的,这证实了一项工作的结果,如果材料的体积不满足上述定理,则表明对MGM模式进行了理论上的攻击。

下表根据上述特征比较了已发展的制度与CAESAR竞赛的决赛入围者。



在该表中,BC-分组密码,SC-流密码,Dedic-原始设计(不使用密码),Sponge-使用海绵,被表示为使用的原语。

如您所见,有可能开发一种满足足够大的操作要求的机制,并且极为重要的是为其耐久性获得正式证明。

去年9月,Rosstandart在标准R 1323565.1.026–2019“信息技术。加密信息安全。实现身份验证加密的分组密码模式此外,在今年年初,IANA 分配了标识符,Rosstandart通过了R 1323565.1.030-2020“信息技术”标准化建议。加密信息安全。在传输层安全协议(TLS 1.3)中使用加密算法” 在TLS 1.3协议中使用俄罗斯密码算法,并且仅使用MGM模式。

All Articles