在说AES和RSA的各自优缺点,我们需要先连接这两个加密技术的原理和定义。
RSA是什么?
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
RSA密码体制是目前比较成熟的公钥密码体制。它广泛应用于各种安全和认证领域。RSA密码体制的核心算法是模幂算法,模幂算法由一系列的模乘构成。 在对RSA密码体制仔细研究的前提下,对其予以FPGA实现。具体设计采用改进的蒙哥马利模乘算法,并只设计一个蒙哥马利模乘器对R-L模式模幂算法予以串行实现。为消除蒙哥马利模乘所引入的参数对模幂结果的影响,在模幂的初始化阶段进行蒙哥马利剩余域的转换,用于该转换的常量由SRT除法计算。 根据所选的算法,分析RSA加密算法的数据处理流程,设计RSA加密芯片的数据通路和控制器。数据通路包括存储输入和运算中间结果的移位寄存器以及进行数据路由选择的多路选择器,其核心部件是蒙哥马利模乘器和SRT除法器。控制器的设计与RSA数据处理流程和数据通路紧密相关。整个流程大致是线性的,局部有并发的进程。根据这种特点,控制器采用多重有限状态机模型,主状态机控制整个处理流程,次级状态机控制局部并发的进程。 最后对1024位的RSA加密芯片进行功能仿真,在软件上进行综合的结果显示芯片的最高主频为13.5MHz,加密速率平均8次/秒。
RSA的加密图解
AES是什么?
AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与。由于外部输入的加密密钥K长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥K扩展成更长的比特串,以生成各轮的加密和解密密钥。
AES和RSA公钥有何优缺点呢?
AES的优点是比较快,缺点就是密钥的保密很关键,在管理上也是一个问题,因为太多的密钥也不太好保密和管理;而RSA则相对要慢一点,非对称下面的RSA公钥和密钥也要安全一些。对使用者来说,只要能方便的处理就可以了,最终的使用者并不一定关心它们的算法实现过程,所以对使用者来说,AES只需要让用户设置一个password,然后就可以得到加密密文和进行解密,RSA则只需要掌握一个密钥和公钥,不需要掌握太多的东西,否则就事倍功半,得不偿失。
一般情况下,加密和解密不会只采用单独的一种加密算法,为保证安全,很多时候都是将多个不同的加密算法进行交叉组合,增加破解的难度,如先进行BASE64转换,然后用DES或AES来进行加密,再进行RSA加密,这样即使你破解了其中的一种,但是你还得花精力将其它的加密过程全部破解才能得到明文,从概率统计上来看,能同时破解几种算法的可能性是比较小的,从而保证了加密的安全性。所以说,AES和RSA是可以同时存在,并且更能保证安全性。