随着密码分析技术的提升,新的数据加密标准AES取代了过期的DES。文章在阐述AES/RSA加密算法的基础上,分别给出了利用AES/RSA实现客户端/服务器端网络数据传输的加密流程。最后在比较AES算法和RSA算法基础上,将AES与RSA相结合提出一种新的数据加密方案。
算法
随着Internet网的普遍应用,信息安全问题日益突出,以数据加密技术为核心的信息安全技术也获得了极大的发展。目前的数据加密技术根据加密密钥类型可分私钥加密(对称加密)系统和公钥加密(非对称加密)系统[1]。对称加密算法是较传统的加密体制,通讯双方在加/解密过程当中使用他们共享的单一密钥,鉴于其算法简单和加密速度快的优势,目前仍然是主流的密码体制之一。最经常使用的对称密码算法是数据加密标准(DES)算法,可是因为DES密钥长度较短,已经不适合当今分布式开放网络对数据加密安全性的要求。最后,一种新的基于Rijndael算法对称高级数据加密标准AES取代了数据加密标准DES。非对称加密因为加/解密钥不一样(公钥加密,私钥解密),密钥管理简单,也获得普遍应用。RSA是非对称加密系统最著名的公钥密码算法。安全
用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所示)。在轮函数的每一轮迭代中,包括四步变换,分别是字节代换运算(ByteSub())、行变换(ShiftRows())、列混合(MixColumns())以及轮密钥的添加变换AddRoundKey()[3],其做用就是经过重复简单的非线形变换、混合函数变换,将字节代换运算产生的非线性扩散,达到充分的混合,在每轮迭代中引入不一样的密钥,从而实现加密的有效性。
表1 是三种不一样类型的AES加密密钥分组大小与相应的加密轮数的对照表。加密开始时,输入分组的各字节按表2 的方式装入矩阵state中。如输入ABCDEFGHIJKLMNOP,则输入块影射到如表2的状态矩阵中。服务器
表1:网络
表2:分布式
对于发送方,它首先建立一个AES私钥,并用口令对这个私钥进行加密。而后把用口令加密后的AES密钥经过Internet发送到接收方。发送方解密这个私钥,并用此私钥加密明文获得密文,密文和加密后的AES密钥一块儿经过Internet发送到接收方。接收方收到后再用口令对加密密钥进行解密获得AES密钥,最后用解密后的密钥把收到的密文解密成明文。图1中是这个过程的实现流程。函数
图1:性能
RSA是在1977年发明RSA密码系统的三我的的名字的首字母的缩写,他们是:Ron Rivest、Adi Shamir和Leonard Adleman。它是第一个公钥加密算法,在不少密码协议中都有应用,如SSL和S/MIME。RSA算法是基于大质数的因数分解的公匙体系。简单的讲,就是两个很大的质数,一个做为公钥,另外一个做为私钥,如用其中一个加密,则用另外一个解密。密钥长度从40到2048位可变,密钥越长,加密效果越好,但加密解密的开销也大。RSA算法可简单描述以下:加密
首先,接收方建立RSA密匙对,即一个公钥和一个私钥,公钥被发送到发送方,私钥则被保存在接收方。发送方在接收到这个公钥后,用该公钥对明文进行加密获得密文,而后把密文经过网络传输给接收方。接收方在收到它们后,用RSA私钥对收到的密文进行解密,最后获得明文。图2是整个过程的实现流程。blog
图2:内存
RSA算法是公开密钥系统的表明,其安全性创建在具备大素数因子的合数,其因子分解困难这一法则之上的。Rijndael算法做为新一代的高级加密标准,运行时不须要计算机有很是高的处理能力和大的内存,操做能够很容易的抵御时间和空间的攻击,在不一样的运行环境下始终能保持良好的性能。这使AES将安全,高效,性能,方便,灵活性集于一体,理应成为网络数据加密的首选。相比较,由于AES密钥的长度最长只有256比特,能够利用软件和硬件实现高速处理,而RSA算法须要进行大整数的乘幂和求模等多倍字长处理,处理速度明显慢于AES[5];因此AES算法加解密处理效率明显高于RSA算法。在密钥管理方面,由于AES算法要求在通讯前对密钥进行秘密分配,解密的私钥必须经过网络传送至加密数据接收方,而RSA采用公钥加密,私钥解密(或私钥加密,公钥解密),加解密过程当中没必要网络传输保密的密钥;因此RSA算法密钥管理要明显优于AES算法。
从上面比较得知,因为RSA加解密速度慢,不适合大量数据文件加密,所以在网络中彻底用公开密码体制传输机密信息是没有必要,也是不太现实的。AES加密速度很快,可是在网络传输过程当中如何安全管理AES密钥是保证AES加密安全的重要环节。这样在传送机密信息的双方,若是使用AES对称密码体制对传输数据加密,同时使用RSA不对称密码体制来传送AES的密钥,就能够综合发挥AES和RSA的优势同时避免它们缺点来实现一种新的数据加密方案。加解密实现流程如图(3)。
图3:
具体过程是先由接收方建立RSA密钥对,接收方经过Internet发送RSA公钥到发送方,同时保存RSA私钥。而发送方建立AES密钥,并用该AES密钥加密待传送的明文数据,同时用接受的RSA公钥加密AES密钥,最后把用RSA公钥加密后的AES密钥同密文一块儿经过Internet传输发送到接收方。当接收方收到这个被加密的AES密钥和密文后,首先调用接收方保存的RSA私钥,并用该私钥解密加密的AES密钥,获得AES密钥。最后用该AES密钥解密密文获得明文。
转
http://wubaoguo.com/2015/08/21/%E5%BC%80%E6%94%BE%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%AE%89%E5%85%A8%E9%AA%8C%E8%AF%81%E6%96%B9%E6%A1%88(AES+RSA)/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io