aes算法之理论与编程结合篇

上传人:xzh****18 文档编号:46677312 上传时间:2018-06-27 格式:PDF 页数:18 大小:764.48KB
返回 下载 相关 举报
aes算法之理论与编程结合篇_第1页
第1页 / 共18页
aes算法之理论与编程结合篇_第2页
第2页 / 共18页
aes算法之理论与编程结合篇_第3页
第3页 / 共18页
aes算法之理论与编程结合篇_第4页
第4页 / 共18页
aes算法之理论与编程结合篇_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《aes算法之理论与编程结合篇》由会员分享,可在线阅读,更多相关《aes算法之理论与编程结合篇(18页珍藏版)》请在金锄头文库上搜索。

1、1AES 算法之理论与编程结合篇算法之理论与编程结合篇作者:hecl看雪 ID:chence时间:05/29/2014目录目录1 前言.1 2AES 的数学理论基础.1 3AES 算法.3 3.1AES 和 Rijndeal.3 3.1AES 的加解密流程图:.4 3.2AES 状态、种子密钥和轮数.5 3.3AES 的轮函数.5 3.3.1 阶段一:字节代换(S 盒变换).5 3.3.2 阶段二:行移位变换.7 3.3.3 阶段三: 列混淆变换:.8 3.3.4 阶段四:轮密钥变换加.9 3.4 密钥扩展:.9 4AES 的实现.10 5AES 的加密模式.14 6AES 算法的安全性.16

2、 参考资料.161 前言前言AES 是现在使用最多的对称密钥分组密码算法,在逆向的过程中经常碰到,这几天处于离职期,有点时间,于是乎想细细的来研究一下它的原理,也算是离职的一个纪念吧。网上的文章都是理论加概况性的,不好理解。这篇文章就带领大家在理论的指导下,结合编程来理解 AES 算法。由于在密码学中,我也处于会使用接口型的,就没有自己写代码了,那就选择站在巨人的肩膀上了,哈哈。代码借用了 Tu Yongce 的 AES0.2 版的代码,并在文章中多次贴出了部分代码用来理解相关的理论。代码涉及两个工程:工程 AesArrays 用来产生最终的 AES 算法所需要的各种变换数组, 也实现了算法的

3、标准流程中的各阶段算法; 工程 AesCipher 实现最终的 AES 算法,它使用了 AesArays 中生成的数组数据。对于想彻底搞清楚 AES 算法是很不错的资料,在此表示感谢!学习 AES 算法,逆向分析也是有用的,如果使用一些算法识别插件,就算识别出来了是 AES,你还是会觉得很茫然,心中不会有一种很爽朗的感觉,因为你不理解这个算法。这也是我想深入学习 AES 算法的原因。文章中有错误的地方恳请大家批准指出,我会进行相应的完善,谢谢2 AES 的数学理论基础的数学理论基础域:域 F, 有时记为,F,是有两个二元运算的集合,这两个二元运算分别称为加法和乘法,且对于 F 中的任意元素 a

4、、b、c,满足以下公理:2图 2.1 从图中可以看出,域要满足 5 个加法条件和 7 个乘法条件。有限域:有限域许多密码编码学算法中扮演着重要的角色,有限域的元素个数必须是一个素数的幂np ,n 为正整数。元素个数为np 的有限域一般记为)(npGF。在乘法逆元:对于有限域)(npGF,任意的0),(wpGFwn存在)(npGFz,使得pzwmod1,则 z 为 w 在该有限域上的乘法逆元。如果定义了合适的运算,那么每一个这样的集合 S 都是一个有限域。定义由如下几条组成: 1. 该运算遵循基本代数规则中的普通多项式运算规则;2. 系数运算以 p 为模,即遵循有限域pZ 上的运算规则;3. 如

5、果乘法运算结果是次数大于 n-1 的多项式,那么必须将其除以某个次数为 n 的既约多项式 m(x)并取余式。AES 使用有限域 GF(28)上的运算,为了构造有限域 GF(28),必须定义一个既约多项式,在 AES 中,这个既约多项式为1)(348xxxxxm。下面来讲讲 AES 里的乘法逆元的求法,由于公式太多,输入不便,故截图之:3图 2.2当我在看这里的时候也花了蛮久才看明白,主要是划红线的式子不知道是怎么变来的。其实作者省略了变化的过程,具体的变化过程如下:7b =1 时,)(mod).()(06 57 68xmxbxbxbxxfx=)(mod).()(mod)(06 57 68xmxbxbxbxmxxfx=) 1()(mod).()(34 06 57 6xxxxmxbxbxbxfx=) 1().()(34 06 57 6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号