【转】Rijndael AES 介绍

Rijndael AES 介绍

最近做MCU 程序加解密,应用到了Rijndael AES,期间碰到一些疑问,通过网络找资料及一些网络高人的指点,终究全部解决了。
在此,记录一些自己的理解,希望对其他有需要用AES 的人有些帮助。
最开始要做MCU 加解密,就在GOOGLE 中找了些,平时也经常上www.ouravr.com/bbs 看看,早就看到DES,AES, RC5 什么的加解密算法,
但原先没有需求,就没有去了解,就记住了这几个名字而已,而这次因为方案需要,且程序空间有的是,所以就选用了AES.
动手做了,开始GOOGLE 上找关于AES 的资料,找到如下WEB, 最权威的,但都是E 文,啃不下去,只是用来做参考
http://csrc.nist.gov/groups/ST/toolkit/BCM/current_modes.html#05
http://externalsearch.nist.gov/search?q=aes&btnG=GO&site=itl_csrc_collection&output=xml_no_dtd&client=default_frontend&sort=date%3AD%3AL%3Ad1&proxystylesheet=default_frontend&oe=UTF-8
http://csrc.nist.gov/CryptoToolkit/tkencryption.html

然后找到ATMEL AVR231, SILABS AN324 两个AES 范例,很完整。而我采用的是SILABS AN324 ,开始是不加修改的使用,也正确执行,
但期间一直有疑问,同样的密文加密出来确定的密文,不可能是宣称现在最安全的加解密算法的本事。所以就测试了ATMEL AVR231,
同时也找到了 邵老师 的开源工具,其中就有使用ATMEL AVR231 修改过来的AES 算法,
http://blog.ednchina.com/shaoziyang/
http://blog.ednchina.com/shaoziyang/142613/message.aspx#
而自己测试MCU 下位机软件的加解密情况和SILABS AN324 状况一样,而PC 上位机软件AVRUB.EXE 软件上可以出现:
同样的密文加密出来不确定的密文,
虽然 邵老师 把PC 上位机软件AVRUB.EXE 源码给出来了,我也搭了Delphi 平台,想看看为何会有这种情况,但因为自己对PC 软件及
Delphi 不懂,不能编译,想想如果要去排Delphi 的错可能要很久,就没有去管了。

继续GOOGLE ,找到
分组对称加密模式:ECB/CBC/CFB/OFB缺CTR- -
http://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html
http://blog.chinaunix.net/u/25096/showart_506284.html
http://hi.baidu.com/msingle/blog/item/8e47eeee44b4552a2df534a6.html

并继续在图书馆借了关于加解密的书,终于发现SILABS AN324 使用的是ECB 方式,而ATMEL AVR231 使用的CBC 方式,
虽然后面3 种模式也有一样的效果,但因为功能各有侧重点,导致实现起来更复杂些,
所以就使用了CBC 模式,在ECB 模式的基础上简单修改一下就成了CBC 模式了。

秀一下两个很不错的图书馆,
深圳图书馆
www.szlib.gov.cn/

深圳龙岗图书馆
www.szlglib.com.cn/pbp/main/index.do

. AES对称加密:

点击看大图
                                                      AES加密



                         分组



 

 

. 分组密码的填充

点击看大图
                                                   分组密码的填充

 

e.g.:
点击看大图
                                                         PKCS#5填充方式

 

 


 

. 流密码:

点击看大图

 

 

. 分组密码加密中的四种模式:

3.1 ECB模式

点击看大图

优点:

1.简单;

2.有利于并行计算;

3.误差不会被传送;

缺点:

1.不能隐藏明文的模式;

2.可能对明文进行主动攻击;

点击看大图

 


3.2 CBC
模式

点击看大图

优点:

1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,SSLIPSec的标准。

缺点:

1.不利于并行计算;

2.误差传递;

3.需要初始化向量IV

 

3.3 CFB模式:

点击看大图
 优点:

1.隐藏了明文模式;

2.分组密码转化为流模式;

3.可以及时加密传送小于分组的数据;

缺点:

1.不利于并行计算;

2.误差传送:一个明文单元损坏影响多个单元;

3.唯一的IV;

 

3.4 OFB模式:

点击看大图
 优点
:

1.隐藏了明文模式;

2.分组密码转化为流模式;

3.可以及时加密传送小于分组的数据;

缺点:

1.不利于并行计算;

2.对明文的主动攻击是可能的;

3.误差传送:一个明文单元损坏影响多个单元;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值