Hmily 发表于 2009-9-16 16:23

128位AES加密算法图解

标 题: 【原创】128位AES加密算法图解
作 者: Yangs
时 间: 2009-06-04,18:16
链 接: http://bbs.pediy.com/showthread.php?t=90722

128位AES加密算法图解



    由于AES算法比较复杂,单凭一个图很难说明细节,大家只能把图作为学习参考吧。
简单解释一下:

AddRoundKey 为 异或
SubBytes 为 查表替换(线性替换)
ShiftRows 为 按字节循环左移
MixColumns 为 矩阵乘法(这个没法讲了,大家翻翻大学的线性代数吧)

另外说一句,这个是AES算法的原型。计算机中使用的算法是优化后的,时间复杂度要小很多。但是空间要求需要4K。就是把4步合成1步,查一个很大的表。

mycc 发表于 2009-9-18 21:57

当初设计出来的人,实在是太强了。。。。。。致敬一下

Hmily 发表于 2009-9-16 16:25

还有一个录像的~


解释:每一格代表一个字节,即:8bit,通过查找s盒,替换表中原来的内容,例如:表格内的数字为‘19’,则通过查S-BOX(认为给定的,经过计算不会被穷举法攻破的。),‘1’为行,‘9’为列,找到相应的值'd4'替换.共四行,规定的,不能变;只能通过列混淆变换扩展。
具体的变换方法:第一行不变,第二行移动一个字节,第三行移动两个字节,第三行移动三个字节,形成新的key。
然后将新的key扩展,具体的扩展方法:保持行数不变,进行列混淆变换扩展,其中列所乘的矩阵是认为定义的。再与给定的数组RCON相乘,并增加列。总共要进行10轮,每轮进行四次变换,且每轮的第四次变换后,将得到的数值向上移一位。循环。
注意:round key 是外部输入的轮key。

hbfp 发表于 2009-9-20 22:02

自己弄不出来,只能用现成的.

shonker 发表于 2009-9-21 10:49

好强大,好复杂的代码

feng19206 发表于 2009-9-21 14:10

学习学习学习。。。

249358562 发表于 2009-9-22 23:13

:)eee收藏备用

lyliucn 发表于 2009-9-24 20:11

标准算法学习。
页: [1]
查看完整版本: 128位AES加密算法图解