AES是现在使用最多的对称密钥分组密码算法,在逆向的过程中经常碰到,这几天处于离职期,有点时间,于是乎想细细的来研究一下它的原理,也算是离职的一个纪念吧。 网上的文章都是理论加概况性的,不好理解。 这篇文章就带领大家在理论的指导下,结合编程来理解AES算法。由于在密码学中,我也处于会使用接口型的,就没有自己写代码了,那就选择站在巨人的肩膀上了,哈哈。代码借用了Tu Yongce的AES0.2版的代码,并在文章中多次贴出了部分代码用来理解相关的理论。代码涉及两个工程:工程AesArrays用来产生最终的AES算法所需要的各种变换数组,也实现了算法的标准流程中的各阶段算法;工程AesCipher实现最终的AES算法,它使用了AesArays中生成的数组数据。对于想彻底搞清楚AES算法是很不错的资料,在此表示感谢! 学习AES算法,逆向分析也是有用的,如果使用一些算法识别插件,就算识别出来了是AES,你还是会觉得很茫然,心中不会有一种很爽朗的感觉,因为你不理解这个算法。 这也是我想深入学习AES算法的原因。 文章中有错误的地方恳请大家批准指出,我会进行相应的完善,谢谢~ 文章中使用的示例代码链接:http://bbs.chinaunix.net/thread-971809-1-1.html 附件中也包含了源码
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!