AES和RSA混合加密技术在网络数据传输中的应用
徐畅
摘要:文章通过分析和比较AES加密算法和RsA加密算法的实现过程和各自的特点,提出了一种可以将这2种经典加密算法相混合的、新的数据信息加密技术。这种混合加密技术,可以充分发挥AES算法加密运算速度快,RSA算法密匙容易分发和保管的特点,更加有利于网络传输数据的加密。
关键词:信息安全;数据加密;AES算法;RSA算法
随着互联网技术的迅速发展,许多数据、文件的传递,都是通过开放的Internet网来实现的。许多网络攻击软件可以很容易地监听到这些机密信息。重要、敏感数据有可能在传输过程中被非法窃取,造成泄密。因此,如何对重要数据信息进行加密,就变成了现在急待解决的问题。
1 数据加密算法简介
目前数据加密技术根据加密密钥类型,可以分为单钥密码体制和公钥密码体制,也称为对称加密技术和非对称加密技术。
对称加密技术是指在加密、解密的过程中使用相同的密匙。常用的对称加密技术有DES,3DES和AES。但是由于DES密钥长度较短,只有56位,加密强度较低,已经开始被一种基于Rijndael算法的对称高级数据加密标准AES取代。
而非对称加密技术,它的加密与解密的密匙是不相同的,一个是公匙,一个是私匙。目前常用的非对称加密技术主要有RSA和ECC,其中1024位的RSA是目前使用最为广泛的非对称加密技术。
1.1 AES加密算法
AES是美国标准与技术研究院针对数据的加密所制定的一种新的加密标准。AES是一个迭代、对称的分组密码,它的密匙长度分为3种:128位,192位和256位,可以对128位的数据块进行加密和解密。
利用AES算法对数据进行加密的具体实现过程,首先是由发送方创建一个AES密钥,并用此密钥加密明文得到密文;然后将密文和AES密钥一起通过Internet网发送到接收方;接收方接收后,利用AES密钥将收到的密文解密成明文。具体流程如图1所示。
1.2 RSA加密算法
RSA算法是由Ronald等3人于1978年提出的一种由数论构造的加密算法。一经推出,就得到了广泛认可和使用,它是目前世界上最为完善和成熟的公钥密码体制。
利用RSA算法对数据进行加密的具体实现过程,首先是由接收方创建一对RSA密匙,即一个RSA公钥和一个RSA私钥;通过Internet网,接收方只将其中的RSA公钥传递给发送方,而RSA私钥继续保留在接收方;发送方收到接收方传递过来的RSA公钥后,利用这个公钥对明文信息进行数据加密,从而得到密文;接着把加密后的密文通过Internet网传送给接收方.当接收方收到发送方传递过来的密文以后,便用事先创建的RSA私钥对密文信息进行解密,最后得到明文。具体流程如图2所示。
1.3 仿真实验及结果分析
事先制作两个实验测试文本,大小分别为1923K和21840K。根据AES加密算法和RsA加密算法实现的具体流程,利用基于QT的C++开发平台分别编写代码,来测试这两种算法在加密和解密两个实验测试文本时所耗费的时间。实验结果,如表1所示。
实验结果分析:(1)在相同条件下,AES加密速度比解密速度快,RSA解密比加密慢很多;而无论加密还是解密,RSA都比AES慢很多,由于RSA进行的是大数计算,无论是软件还是硬件实现,速度一直是一个较明显的缺陷。(2)AES加密算法的优点:能够直接用硬件去实现,加密的程度较高,速度较快,对于加密大量数据非常的适用。缺点:加、解密过程使用同一个密匙进行,对于密匙的管理和保护较难。(3)RSA加密算法的优点:具有公钥和私钥两个不同的密钥,公钥用于加密数据,私钥用于解密数据,难于破解;并且不需要通过网络传送保密的密钥。缺点:加密的速度比较慢。
2 AES和RSA混合加密技术
2.1 AES和RSA两种加密算法的比较
通过算法分析和前面的实验,接下来从密钥管理、运算速度、签名认证和安全性能等方面比较AES和RSA两种加密算法:
(1)密钥管理:RSA算法是非对称加密技术,利用公钥进行加密,即使是和不同的对象之间进行通信,关键还是要保管好自己的解密私钥,所以在使用该算法时,加密密钥更换是很容易实现的;而AES算法是对称加密技术,在和不同的对象进行通信的时候,AES需要产生和保管不同的密钥,所以密钥的更换较难实现。(2)运算速度:AES算法的运算速度要比RSA算法的运算速度快。这是因为AES算法的密钥长度最大也就256位,利用硬件或软件都能够实现;而RSA算法,至少需要1024位才能确保安全,而在加、解密过程中会需要很多的运算,因此RSA算法的运算速度肯定要比AES算法要慢。(3)签名认证:RSA属于非对称密码体制,利用RSA算法可以进行数字签名和身份认证操作;AES不能实现数字签名和身份认证,这是由7:AES属于对称密码体制。(4)安全性能:目前还没有能够完全破译AES和RSA的良好方法,所以两者的安全性都很好。
从以上4个方面的比较可以知道,对于大量的数据文件,由于RSA算法加密速度较慢,所以并不合适;而AES算法虽然加密速度很快,但是如何在开放的网络传输环境中保管好AES密钥,成为使用AES加密首先要考虑的问题。因此,可以在传递数据的时候,使用AES算法加密传输数据,同时使用RSA算法加密传送AES密钥,结合两种加密算法各自的特点,发挥优点,避免缺点,从而得到了一种新的混合数据加密技术。
2.2 AES和RsA混合加密算法的设计与实现
AES和RSA混合加密算法加解密过程,如图3所示。
接收方:(1)生成1024位的RSA密匙对。(2)向发送方传递RSA公匙。
发送方:(1)接收接收方发过来的RSA公匙密码;(2)随机生成AES密匙;(3)用AES密匙加密数据,用RSA公匙加密AES密匙;(4)将加密后的AES密匙写入数据文件的头部,加密后的数据写入数据文件的尾部;(5)将数据文件发送给接收方。
接收方:(1)接收发送方发过来的数据文件,并利用自己的RSA私钥解密AES密匙。(2)利用解密后的AES密匙解密数据文件。
JAVA语言的安全性非常高,通过“SunJCF”提供了对各种加密技术的支持,包括DES,3DES,AES,RSA等数据加密技术。JAVA当中的常用数据加密类有:KeyGenerator类用于获得各类对称加密技术的密匙;KeVPairGenerator类用于获得非对称加密技术的密匙;Cipher类是JAVA加密的主要类,用于按一定的算法对数据进行加密、解密、包装和返包装。而AES和RSA混合加密算法利用JAVA语言可以较容易实现。
3 结语
文章首先介绍了经典的对称加密技术AES加密算法和非对称加密技术RSA加密算法的实现过程;并通过算法分析和仿真实验,从密钥管理、运算速度、签名认证和安全性能等方面比较了两种加密算法各自的特点,提出了将AES算法和RSA算法相结合,从而得到了一种新的数据加密技术。这种新的混合加密技术使得数据的加密速度得到了提高,并且降低了加密密钥的管理难度,更加适合互联网数据的加密和传输。