我已经阅读了很多关于分组密码的摘要,特别是关于NIST竞赛的摘要,其中指出减少轮次分组密码是-例如-容易受到差分密码分析的影响。

我一般认为应用差分密码分析的目的是查看输入之间的差异;维基百科对此相当清楚。但是,对于任何给定的分组密码,我都可以采用任意两个输入,并且我可以肯定我会盯着随机差异。


我知道这是写好的分组密码的想法;但是,假设密码破损或脆弱(随时提供简单的示例),我该如何选择差异进行尝试?
算法设计中是否有任何线索可以决定选择哪个值?
容易受到差异密码分析的影响如何影响野外密码?
如果我所拥有的只是已知的纯文本和已知密钥(作为我的分析)与捕获的密文(作为我的数据)之间的区别,那么我实际上可以推断出什么?


#1 楼

基本上,它是通过找到输入数据和输出数据之间的差异之间的关系来分析密码的。
理想情况下,输入数据(明文)中的最小差异,即使只有一点,也应该产生一个完全不同的密码文本。但是,如果密码设计不当,则可能会观察到两个结果密文之间的相关性。反过来,也可以利用这种相关性来找出密钥。
这显然需要选择明文攻击。这意味着攻击者应该可以访问加密机制,从而可以使用该机制对他或她选择的任何数量的明文进行加密。因此,这种攻击通常是针对可以使用但无法获得密钥本身的防潮硬件。

根据AES,请参见维基百科有关差分密码分析的文章摘录:


例如,如果1的差异=> 1(表示输入的
LSB的差异导致LSB的输出差异),则发生
4/256的概率(例如,对于AES密码中的非线性函数可能),那么只有4个输入值(或2对)是可能的差分。假设我们有一个非线性函数
,其中的键在求值之前进行了异或运算,并且允许差分的值为{2,3}和{4,5}。如果攻击者发送{6,7}的
值并观察到正确的输出差异,则意味着
密钥为6 xor K = 2或6 xor K = 4,这意味着密钥为
K = {2,4}。
本质上,对于n位非线性函数,理想情况下,人们将尽可能地搜索
接近2-(n-1)以实现微分均匀性。当发生这种情况时,差异攻击需要花费大量的工作来确定密钥,就像蛮力强制密钥一样。


这里有一些预热链接:


简化的AES算法及其线性和差分密码分析
Mini-AES的不可能差分密码分析
低复杂度差分密码分析和AES故障分析

这里有几篇更好的文章有关主题的信息:


线性和差分密码分析教程
差分侧通道密码分析的随机模型

不是高质量的链接,尤其是不像您所希望的那样以实践为导向,但是我认为后两个可以使您对这个主题有所把握。

评论


$ \ begingroup $
谢谢你;我有机会查看这些链接,它们绝对有帮助!
$ \ endgroup $
–user46
2011年7月14日在22:37

#2 楼

可以在Stinson的书中找到有关差分密码分析的很好的教程,在该书中,他对简化轮DES进行了差分攻击。他提供了有关攻击4轮DES(相对容易)和6轮DES(要困难得多)的详细信息,这足以使我们理解为什么将攻击扩展到完整的DES(16轮)需要这样做。许多PT / CT对以及如此多的计算工作(最好只进行详尽的密钥搜索)。

Biham和Shamir的原始差分密码分析原始著作作为一本书出版;他们打破了几种众所周知的密码(在本书写作时众所周知)。但是,上次我看他们的书已经绝版了,只能花很大的钱。

评论


$ \ begingroup $
这些是书吗?密码学理论与实践(Douglas Stinson),数据加密标准的差分密码分析(Eli Biham + Adi Shamir)。 (如果是这样,只需将链接编辑到您的答案中即可。)
$ \ endgroup $
–PaŭloEbermann
2011年10月15日,0:08