AES和RSA混合加密技术在网络数据传输中的应用

时间:2021-09-01 11:28:54

原文:http://www.fx361.com/page/2017/0110/519967.shtml

AES和RSA混合加密技术在网络数据传输中的应用    AES和RSA混合加密技术在网络数据传输中的应用    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算法相结合,从而得到了一种新的数据加密技术。这种新的混合加密技术使得数据的加密速度得到了提高,并且降低了加密密钥的管理难度,更加适合互联网数据的加密和传输。

AES和RSA混合加密技术在网络数据传输中的应用的更多相关文章

  1. 前后端API交互数据加密——AES与RSA混合加密完整实例

    前言 前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门:https://blog.csdn.net/ityouknow/article/details/80603617),文中讲到利用R ...

  2. WebSocket数据加密——AES与RSA混合加密

    前言 之前在写“一套简单的web即时通讯”,写到第三版的时候没什么思路,正好微信公众号看到一篇讲API交互加密,于是就自己搞了一套AES与RSA混合加密,无意中产生应用在WebSocket想法,好在思 ...

  3. iOS开发之 AES+Base64数据混合加密与解密

    2016-04-08 09:03 编辑: liubinqww 分类:iOS开发 来源:liubinqww 投稿 4 889     "APP的数据安全已经牵动着我们开发者的心,简单的MD5/ ...

  4. AES和RSA的加密过程通过面向对象的方式写成一个类,封装起来

    # 面向对象的方式 实现加密方法 from Crypto.Cipher import AES from Crypto import Random from binascii import b2a_he ...

  5. Java加密技术

    相关链接: Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC Java加密技术(二)——对称加密DES&AES Java加密技术(三)——PBE算法  ...

  6. Java加密技术(八)——数字证书

    原文:http://snowolf.iteye.com/blog/391931 请大家在阅读本篇内容时先阅读 Java加密技术(四),预先了解RSA加密算法. 在构建Java代码实现前,我们需要完成证 ...

  7. 【云安全与同态加密_调研分析(8)】同态加密技术及其应用分析——By Me

    ◆同态加密技术(Homomorphic Encryption, HE)及其应用◆ ◆加密方案◆ ◆应用领域◆ ◆厂商◆ ◆同态加密现有产品形态和工程实现◆ ◆参考链接◆ ◆备注(其他参考信息)◆ 同态 ...

  8. 学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密

      学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密 技术标签: RSA  AES  RSA AES  混合加密  整合   前言:   为了提高安全性采用了RS ...

  9. Android接口安全 - RSA+AES混合加密方案

    转载请注明出处: http://blog.csdn.net/aa464971/article/details/51034462 本文以Androidclient加密提交数据到Java服务端后进行解密为 ...

随机推荐

  1. wpf TreeView

    <Window x:Class="WpfTutorialSamples.TreeView_control.TreeViewDataBindingSample"        ...

  2. &lbrack;C&num;&rsqb; 逆袭——自制日刷千题的AC自动机攻克HDU OJ

    前言 做过杭电.浙大或是北大等ACM题库的人一定对“刷题”不陌生,以杭电OJ为例:首先打开首页(http://acm.hdu.edu.cn/),然后登陆,接着找到“Online Exercise”下的 ...

  3. VS&amp&semi;SQL StartUp Crash - CLR20R3

    VS2013和SQL Management Studio 在启动时直接崩溃,错误提示CLR20R3,问题签名4是windowsbase, 这说明是操作系统的问题导致启动崩溃,在网上找到一些解决方案: ...

  4. POJ 3083

    ---恢复内容开始--- http://poj.org/problem?id=3083 题目大意就是给你要你从S走到E,且只有.代表的地方才是可以走的,有三种方式的走法. 一.是向左优先转,从S到E的 ...

  5. MySQL脚本

    一. move.sql use items set @endTime=(select DATE_SUB(now(),INTERVAL 3 MONTH)); REPLACE INTO new_items ...

  6. windows下VC界面 DIY系列1----写给想要写界面的C&plus;&plus;程序猿的话

    非常早就想写关于C++ UI开发的一系列博文,博客专栏刚审核通过,就立即開始刷博文,不能辜负自己的一番热血,我并非写界面的高手,仅仅想通过写博文提高我自己的技术积累,也顺便帮助大家解决界面开发的瓶颈. ...

  7. JavaSE学习总结(十七)—— IO流

    一.IO流概要 1.1.概念 开发中经常要进行输入输出操作,掌握Java中的IO流显得非常必要. 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流, ...

  8. &lbrack;洛谷P3250&rsqb;&lbrack;HNOI2016&rsqb;网络

    题目大意:给定一棵树.有三种操作: $0\;u\;v\;t:$在$u$到$v$的链上进行重要度为$t$的数据传输. $1\;x:$结束第$x$个数据传输. $2\;x:$询问不经过点$x$的数据传输中 ...

  9. POJ1018 Communication System

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 26738   Accepted: 9546 Description We ...

  10. 一个例子说明Jsp三大重要内置对象的生命周期

    此处Jsp的三大内置对象指:request,session以及application.他们共有的方法:setAttribute,getAttribute,方法名和方法作用都是相同的,但是作用范围不一样 ...