Slide_Attacks(滑动攻击)(论文翻译)(未完成)

作者

  • Alex Biryukov 
  • David Wagner 

摘要

     大多数的分组密码设计者都认为,只要使用了多轮加密,即使使用了弱密钥也是安全的。本文将展示一种新的已知(选择)明文攻击,我称之为Slide_Attacks,在许多情况下,它与密码的轮数无关。我们通过以下记几种密码算法来对其进行说明:TREYFER, M6, WAKE-ROFB, 包括DES和 Blowfish的变体。

1 介绍

    由于计算机计算速度的快速增长,大多数分组密码使用越来越多的轮数,使得当前我们所知道的密码分析技术都变得无用。这是由于当前主流的工具差分、线性分析都是统计攻击,他们的优势是通过统计找出许多轮的不规则和差异。然而,这一类方法最终都达到了极限,因为每增加一轮都需要攻击者付出指数级的努力。

    这种趋势从向AES竞赛提交的成功来看就可以看出来。即使AES竞赛有严格的速度限制,但是不同种类的候选方案都有巨大的轮数:RC6(20), MARS(32),SERPENT(32), CAST(48).这种趋势反映了一个现象,大家认为更多的轮数意味着更安全。DES也支持这个观点,因为EDS也从16轮衍生了32-48轮。因此,对于密码分析员来说,寻找新的工具变得很自然,这些工具最好与密码的轮数无关。首先迈开这一步的是1978年Grossman and Tuckerman在文献5中提出的,如果通过选择明文攻击攻击一个虚弱的Feistel加密算法(8轮,每轮8个比特的原始密钥,用Lucifer-like交换S盒的S0和S1,一个严格意义上的虚弱密钥),攻击与轮数无关。我们也受到Biham的related-key分析(文献2)和Knudsen(文献10)的启发。

    本文介绍一种叫做Slide_Attacks的新攻击方法,    能够应用于所有的加密方式(主要是迭代类的),即使迭代过程(递归)直到最后(流密码)。只要迭代过程表现出某种程度的自相似性,并且在许多情况下与迭代轮函数和轮数的确切性质无关,就可以应用这种攻击。

    差分和线性分析两种攻击主要关注于加密过程的扩散属性(假设每一轮都产生强壮的子密钥),Slide_Attacks主要关注于密钥的自相似性。依赖于加密算法的设计,Slide_Attacks的攻击范围从攻击弱密钥计划到攻击密钥的结构属性。这类攻击最明显的特征是可以通过破坏迭代过程中的自相似性来进行预防,例如通过增加迭代计数器或修复随机数常量。然而,这种技术更多的复杂变种很难去分析和预防。

   我们现在分析分组加密,每一次迭代都使用Fi序列中一个单独密钥。我们将这叫做同类密钥。这种情况发生在密钥的编排产生了一个回归的子密钥序列,p代表一个周期,对于i横等于(j mod p),有Fi = Fj。一个简单的例子,如果p=1,那么所有的子密钥相同。我们把这种攻击叫做self-related key attacks,这本质上是related-key attacks的一种特殊情况(文献2和文献10)。请注意,这一类攻击只需要一个已知(选择)的明文,所以它比related-key attacks更有效。在一个n比特的块上进行分组加密,Slide_Attacks的复杂度通常接近于O(2n/2)。对于Feistel加密,Fj仅仅修改了区块的一半,这样就有一个选择明文的变量,这样将使得需要的明文数量复杂度下降到O(2n/4)。

    另一个要求是每一轮的S-box应该有滑动漏洞。通常autokey ciphers和datadependent transformations容易受到此类攻击,我们在表1中对其进行了汇总。

   这篇文章的组织结构如下:

第二章:我们描述滑动攻击的细节,我们从一个例子开始:64轮96比特的DES变体,这里我们叫它2K-EDS。

第三章:这里的三节都用于介绍加密分析的具体建议。

第四章:攻破TREYFER,一个在FSD‘97上公布的加密算法;

第五章:攻破M6,一种FireWire标准建议使用的算法。

第六章:分析在FSE’98上发布的基于WAKE的流密码

第七章:介绍了对拥有S-box密码算法的滑动攻击,重点介绍了具有零轮子密钥的Blowfish的一个变体。

 

 2 一类滑动攻击

在图1,我们看到n比特的X0明文加密成为Xr的 过程。这里的Xj表示加密的第j轮的值,于是Xj = Fj(Xj -1, kj)。为了清晰的进行表述,我们通常在写F(X,k)或Fi(X,k)时省略k,写作F(X)或Fi(X)。

 

 

就像我们之前说的那样,我们的攻击是与轮数无关的,我们将密码看作是相同排列的F(x,k),这里k是一个固定密钥(这里F可能包含不止一轮的密码)。而且,它对F的特定结构的依赖性很小。对F的唯一要求是,它很难抵抗带有两个明文-密文对的已知明文攻击。如果给定两个方程F(X1,k)= y和F(X2,k)= y能很容易的推导出k,那么我们就说F是弱置换。这个非正式的定义是因为存在大量很容易找到的密文到密文。我们能看到,3和4轮的DES是一个弱置换,一轮和半轮的IDEA也是。(对于DES的三轮,在两个部分使用中间相遇攻击能找到密钥的16个扩展字节,那完整的56个密钥就能很快找到)

下面我们展示的是如何对这一类密码进行滑动攻击。

修改后的DES示例:2K-DES

很多密码学课程和书都是这么说的。我们建议通过以下方式增加DES的强度。

  • 一是将轮数从16增加到64。
  • 二是将密钥从56比特增加到96比特。

他们通过如下简单的方式实现:

给出两个48比特的密钥K1,K2。K1使用在奇数轮,K2使用在偶数轮来代替原来的子密钥

这个版本很显然对exhaustive search是免疫的。

常规的差分和线性攻击也可能会由于增加回合数而失败。

问题是:“这个加密函数比EDES更安全吗?”

下面将展示两种针对此类密码的攻击, which use the symmetry of the key-scheduling algorithm and are independent of the number of rounds.

一直简单的攻击方式如下:一些已知的明文和密文对(P,C),解密C一轮 猜测K2 共248次得到C‘,对于这248个C‘,求出P’ = EK(C‘)。

相同的解密方式对P来一次。再进一步的求出F-1(P,K2) = P’。

由于K2是已知的,这样就能够检查F(P‘,K2) = P是否成立。(这里的F包括Feistel交换的那一半 )

这个过程只能正确的猜出K2

现在可以通过exhaustive search来找出K1.

这个简单的攻击使用已知的明文对(P,C),248适合的选择明文和249次操作时间。

一个类似的攻击将工作在any \almost"-symmetric key-scheduling.Notice that if the number of rounds r is odd and key-scheduling is symmetric then double encryption with such Feistel-cipher becomes an identitypermutation.The data

4 TREYFER

 

下载地址

https://www.researchgate.net/profile/Alex_Biryukov2/publication/220942532_Slide_Attacks/links/53d13d7e0cf220632f3929e9/Slide-Attacks.pdf?origin=publication_detail

posted on 2021-01-16 23:21  我尽量尽力而为  阅读(624)  评论(0编辑  收藏  举报

导航