AES攻击方法 :差分密码分析 boomerang attack飞去来器攻击

AES具有128比特的分组长度,三种可选的密钥长度(128,192,256)

AES是一个迭代型密码,轮数依赖于密钥长度。如果密钥长度为128比特,则轮数为10;如果密钥长度为192比特,则轮数为12;如果密钥长度为256比特,则轮数为14;

混淆(Confusion)

混淆是为了让密钥与密文的统计信息之间的关系变得复杂,从而增加通过统计方法进行攻击的难度。混淆可以通过各种代换算法实现,如S盒、乘法(加)与异或等运算组合,为非线性部件。

扩散(Diffusion)

扩散是为了让明文的单个比特影像到密文中的多个比特,从而使明文的统计特征在密文中消失。扩散常用置换、移位、循环移位等操作实现。

迭代结构(Feistel SPN)

Feistel结构

加解密一致是Feistel结构的优点,实现时往往可以节约资源。但是Feistel结构密码扩散较慢,因此迭代轮数一般多一些。

SPN结构(AES所采用)

s指Substitution即替换,S变换层起混淆作用。

p指permutation即置换或更广泛意义的线性变换,P变换层起扩散作用

与Feistel结构相比,SPN结构可以得到更快速地扩散,所以一般迭代轮数较Feistel结构密码少一些。但是SPN结构密码的加解密通常不具有一致性,故需要对子模块做适当限制,实现时需要更多资源。

AES攻击方法 :差分密码分析 boomerang attack飞去来器攻击_第1张图片

衡量攻击方法优劣的最主要的指标是数据复杂度、存储复杂度和时间复杂度,分别指攻击者进行攻击所需要的数据量、存储空间和时间。

对任意一个分组密码,都存在4种通用的攻击方法:穷尽密钥搜索、字典攻击、查表攻击和时间存储折中攻击。

如果一个攻击的数据复杂度、存储复杂度和时间复杂度分别低于(2^{n},2^{k},2^{k}),就被认为是从理论上破解了该分组密码(n为分组密码的分组长度、k为分组密码的密钥长度)

目前密码分析中,破解全轮分组密码算法十分困难,一般是对约减论算法进行分析以估计其安全冗余度,并进而指导分组密码的设计。

差分密码分析

是分析分组密码最有效的方法之一,基本思想是利用明文对的特定输入差分对密文对的输出差分的影响,将分组密码与随机置换区分开并进行密钥恢复,属于选择明文攻击

基于差分密码分析方法,又出现了很多变种的攻击方法,如截断差分密码分析、不可能差分密码分析、Boomerang攻击等。

Boomerang攻击

回轮攻击,属于自适应选择明密文攻击(攻击者可以随意选择明密文并获得相对应的密明文,然后对所获得的密(明)文进行某些运算得到一些新的密(明)文,并能得到这些新的密(明)文所对应的明(密)文)。如果在自适应选择密文攻击下是安全的,在其他攻击下也一定是安全的。

该攻击方法将分组密码分解成两个子密钥,对每一个子密钥都使用高概率差分路线,然后将这两条短的差分路线通过特殊技术手段连接成一条长的差分路线,这使得对一些分组密码的分析可进行到更多轮。

线性密码分析

中间相遇攻击

你可能感兴趣的:(密码学,AES,SPN)