基于混合加密算法的数据传输方法及系统与流程

文档序号:19321033发布日期:2019-12-04 00:32阅读:236来源:国知局
基于混合加密算法的数据传输方法及系统与流程

本发明涉及加密传输领域,具体地说是一种基于混合加密算法的数据传输方法及系统。



背景技术:

随着信息社会的到来,人类的生活发生了翻天覆地的变化,特别是随着信息技术的快速发展,计算机网络得到了广泛的应用,计算机网络日益成为工业、农业和国防等领域的重要信息交换手段,并逐渐渗透到社会的各个领域。与此同时,计算机网络的安全问题也变得日益紧迫。计算机网络上的重要、敏感数据一旦被非法窃取、篡改,将会侵害用户甚至国家的利益。

将加密密钥类型作为研究与划分的标准,则可以将数据加密技术划分为对称加密系统和非对称加密系统。对称加密系统在实际应用中,网络数据传输的发送方与接收方使用相同的单一密钥对相关信息加解密,具备加密速度快与算法简单等优势,以des、aes为最典型的对称加密算法,但对称加密算法难以实现数字签名与身份认证等操作,同时在网络传输中密钥的管理成为一大难点;rsa属于非对称加密系统中应用最为广泛的公钥加密算法,具有不需要秘密的通道来传输秘密通信所需要的密钥和高安全性的优点,但其执行加密与解密的速度较慢,效率偏低,难以承担大量数据的加密。

基于上述分析,如何实现加密速度快、加密密钥管理难度低的数据传输,是需要解决的技术问题。



技术实现要素:

本发明的技术任务是针对以上不足,提供一种基于混合加密算法的数据传输方法及系统,来解决如何实现加密速度快、加密密钥管理难度低的数据传输的问题。

第一方面,本发明提供一种基于混合加密算法的数据传输方法,基于对称加密算法aes与非对称加密算法rsa混合得到的混合加密算法,在客户端和服务端进行端到端的数据传输,所述数据传输方法包括如下步骤:

s100、基于服务端自身的数字证书对客户端和服务端进行双向认证,验证服务器合法后,在客户端和服务端建立通信通道;

s200、客户端随机生成rsa密钥对,并通过数字证书将rsa密钥对加密发送至服务端;

s300、客户端和服务端其中一个作为发送端、另一个作为接收端,发送端随机生成aes密钥和随机数明文,通过aes密钥对明文数据和随机数明文进行加密传输,通过rsa密钥对对aes密钥进行加密传输,并以随机数明文作为签名验证加密传输是否成功。

在上述实施方式中,在正式传输加密数据之前,使用数字证书实现了客户端与服务端的双向认证;在进行数据传输时,采用混合加密的方式,充分利用aes算法加密速度快、rsa非对称加密系统安全性高的优点,aes密钥对和rsa密钥可随机生成,密钥管理更加安全。并且通过随机数明文为签名,有效阻断非法攻击者对数据的篡改和窃取。

作为优选,s100包括如下分步骤:

s110、客户端向服务端发送认证请求;

s120、服务端将其数字证书颁发至客户端;

s130、客户端向服务端发送身份校验请求;

s140、服务端通过数字证书中的私钥对明文进行加密,并将明文以及加密后的明文一起发送至客户端;

s150、客户端通过数字证书中的公钥对加密后的明文进行解密,并将明文与解密得到的明文进行对比,明文与解密得到的明文一致、则验证服务器合法。

作为优选,步骤s200包括如下分步骤:

s210、客户端随机生成rsa密钥对,并通过数字证书中的公钥对rsa密钥对加密;

s220、客户端将加密后的rsa密钥对发送至服务端;

s230、服务端通过数字证书中的私钥解密上述加密后的rsa密钥对,得到rsa密钥对。

作为优选,步骤s300包括如下分步骤:

s310、发送端随机生成aes密钥和随机数明文;

发送端通过aes密钥对拼接的明文数据和随机数明文进行加密,生成aes密文;

发送端通过rsa公钥对aes密钥进行加密,生成rsa密文;

发送端计算随机数明文的哈希值;

发送端将上述aes密文、rsa密文和哈希值发送至接收端;

s320、接收端通过rsa私钥对aes密文进行解密,得到aes密钥;

接收端通过aes密钥对aes密文进行解密,得到数据明文和随机数明文;

接收端计算随机数明文的哈希值,并将计算得到的哈希值与接收的哈希值进行比对,计算得到的哈希值与接收的哈希值一致、则加密传输成功。

作为优选,如果加密传输不成功,关闭服务端与客户端之间的通信通道。

第二方面,本发明提供一种基于混合加密算法的数据传输系统,包括客户端和服务端,客户端配置有认证请求模块、rsa密钥发送模块、混合加密模块以及混合解密模块,服务端配置有认证响应模块、rsa密钥接收模块以及混合加密模块以及混合解密模块;

认证请求模块与认证响应模块配合,用于基于服务端自身的数字证书对客户端和服务端进行双向认证,验证服务器合法后,在客户端和服务端建立通信通道;

rsa密钥发送模块和rsa密钥接收模块配合,用于通过数字证书将rsa密钥对加密发送至服务端,所述rsa密钥对为客户端随机生成的密钥对;

客户端和服务端中一个作为发送端、一个作为接收端,发送端的混合加密模块与接收端的混合解密模块配合,通过aes密钥对明文数据和随机数明文进行加密传输,通过rsa密钥对对aes密钥进行加密传输,并以随机数明文作为签名验证加密传输是否成功,所述aes密钥和随机数明文均由发送端随机生成;

所述数据传输系统执行如权利要求1-5任一项所述的基于混合加密算法的数据传输方法。

作为优选,所述认证请求模块用于向服务端发起认证请求以及身份校验请求;

所述认证响应模块与认证请求模块对应,用于接收认证请求以及身份校验请求,并根据认证请求向服务端反馈数字证书,根据身份校验请求向服务端发送明文以及通过数字证书中的私钥加密后的明文。

作为优选,所述rsa密钥发送模块用于随机生成rsa密钥对,通过数字证书中的公钥对rsa密钥对加密,并将加密后的rsa密钥对发送至服务端;

所述rsa密钥接收模块用于接收加密后的rsa密钥对,并通过数字证书中的私钥解密所述加密后的rsa密钥对,得到rsa密钥对。

作为优选,所述混合加密模块用于随机生成aes密钥和随机数明文,通过rsa公钥对aes密钥进行加密,生成rsa密文,计算随机数明文的哈希值,并将上述aes密文、rsa密文和哈希值发送至接收端;

所述混合解密模块用于通过rsa私钥对aes密文进行解密、得到aes密钥,通过aes密钥对aes密文进行解密、得到数据明文和随机数明文,计算随机数明文的哈希值,并将计算得到的哈希值与接收的哈希值进行比对,计算得到的哈希值与接收的哈希值一致、则加密传输成功。

作为优选,如果加密传输不成功,混合解密模块用于关闭服务端与客户端之间的通信通道。

本发明的一种基于混合加密算法的数据传输方法及系统具有以下优点:

1、实现了客户端与服务端的双向认证,避免非法客户端随意访问服务端,

2、服务端与客户端之间一旦认证失败,服务端关闭与客户端的连接,其后的操作已将无效,保证了数据传输的安全性;

3、发送端每次生成的随机数是任意的,且掺杂在加密消息中,因此攻击者很难判断具体的密文长度和具体加密消息的位置,无法破解和重用,从而有效地抵御了重放攻击;

4、发送方除了采用rsa公钥加密明文数据,也采用aes密钥加密随机数,并以随机数明文的哈希值作为签名,一旦签名不一致,判断有非法攻击者,进一步保证了传输的安全性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

下面结合附图对本发明进一步说明。

附图1为实施例1基于混合加密算法的数据传输方法的流程框图;

附图2为实施例1基于混合加密算法的数据传输方法中发送端和接收端加密传输的流程框图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。

本发明实施例提供一种基于混合加密算法的数据传输方法及系统,用于解决如何实现加密速度快、加密密钥管理难度低的数据传输的技术问题。

实施例1:

本发明的一种基于混合加密算法的数据传输方法,基于对称加密算法aes与非对称加密算法rsa混合得到的混合加密算法,在客户端和服务端进行端到端的数据传输。

如附图1所示,该数据传输方法包括如下步骤:

s100、基于服务端自身的数字证书对客户端和服务端进行双向认证,验证服务器合法后,在客户端和服务端建立通信通道;

s200、客户端随机生成rsa密钥对,并通过数字证书将rsa密钥对加密发送至服务端;

s300、客户端和服务端其中一个作为发送端、另一个作为接收端,发送端随机生成aes密钥和随机数明文,通过aes密钥对明文数据和随机数明文进行加密传输,通过rsa密钥对对aes密钥进行加密传输,并以随机数明文作为签名验证加密传输是否成功。

其中,通过步骤s100实现客户端与服务端的双向认证,本实施例该步骤具体包括如下分步骤:

s110、客户端向服务端发送认证请求;

s120、服务端将其数字证书颁发至客户端;

s130、客户端向服务端发送身份校验请求;

s140、服务端通过数字证书中的私钥对明文进行加密,并将明文以及加密后的明文一起发送至客户端;

s150、客户端通过数字证书中的公钥对加密后的明文进行解密,并将明文与解密得到的明文进行对比,明文与解密得到的明文一致、则验证服务器合法。

通过步骤s200将客户端产生的aes密钥对加密发送至服务端,本实施例中该步骤具体包括如下分步骤:

s210、客户端随机生成rsa密钥对,并通过数字证书中的公钥对rsa密钥对加密;

s220、客户端将加密后的rsa密钥对发送至服务端;

s230、服务端通过数字证书中的私钥解密上述加密后的rsa密钥对,得到rsa密钥对。

如附图2所示,通过步骤s300实现客户端与服务端之间的加密信息传输,本实施例中该步骤具体包括如下分步骤:

s310、在发送端执行如下操作:

首先,随机生成aes密钥和随机数明文;

其次,通过aes密钥对拼接的明文数据和随机数明文进行加密,生成aes密文;

通过rsa公钥对aes密钥进行加密,生成rsa密文;

计算随机数明文的哈希值;

然后,将上述aes密文、rsa密文和哈希值发送至接收端;

s320、在接收端执行如下操作:

通过rsa私钥对aes密文进行解密,得到aes密钥;

通过aes密钥对aes密文进行解密,得到数据明文和随机数明文;

计算随机数明文的哈希值,并将计算得到的哈希值与接收的哈希值进行比对,计算得到的哈希值与接收的哈希值一致、则加密传输成功。

上述操作中,如果加密传输不成功,关闭服务端与客户端之间的通信通道。

本申请的使用数字证书实现了客户端与服务端的双向认证;在进行数据传输时,充分利用aes算法加密速度快、rsa非对称加密系统安全性高的优点,aes密钥对和rsa密钥可随机生成,密钥管理更加安全。并且通过随机数明文的哈希值为签名,有效阻断非法攻击者对数据的篡改和窃取。

实施例2:

本发明的一种基于混合加密算法的数据传输系统,包括客户端和服务端,客户端配置有认证请求模块、rsa密钥发送模块、混合加密模块以及混合解密模块,服务端配置有认证响应模块、rsa密钥接收模块以及混合加密模块以及混合解密模块。

其中,认证请求模块与认证响应模块配合,用于基于服务端自身的数字证书对客户端和服务端进行双向认证,验证服务器合法后,在客户端和服务端建立通信通道。

本实施例中,认证请求模块用于向服务端发起认证请求以及身份校验请求;相应的,认证响应模块与认证请求模块对应,用于接收认证请求以及身份校验请求,并根据认证请求向服务端反馈数字证书,根据身份校验请求向服务端发送明文以及通过数字证书中的私钥加密后的明文。认证请求模块与认证响应模块的工作流程为:

(1)、客户端向服务端发送认证请求;

(2)、服务端将其数字证书颁发至客户端;

(3)、客户端向服务端发送身份校验请求;

(4)、服务端通过数字证书中的私钥对明文进行加密,并将明文以及加密后的明文一起发送至客户端;

(5)、客户端通过数字证书中的公钥对加密后的明文进行解密,并将明文与解密得到的明文进行对比,明文与解密得到的明文一致、则验证服务器合法。

rsa密钥发送模块和rsa密钥接收模块配合,用于通过数字证书将rsa密钥对加密发送至服务端,所述rsa密钥对为客户端随机生成的密钥对。

本实施例中,rsa密钥发送模块用于随机生成rsa密钥对,通过数字证书中的公钥对rsa密钥对加密,并将加密后的rsa密钥对发送至服务端;rsa密钥接收模块用于接收加密后的rsa密钥对,并通过数字证书中的私钥解密所述加密后的rsa密钥对,得到rsa密钥对。rsa密钥发送模块和rsa密钥接收模块的工作流程为:

(1)、客户端随机生成rsa密钥对,并通过数字证书中的公钥对rsa密钥对加密;

(2)、客户端将加密后的rsa密钥对发送至服务端;

(3)、服务端通过数字证书中的私钥解密上述加密后的rsa密钥对,得到rsa密钥对。

客户端和服务端中一个作为发送端、一个作为接收端,发送端的混合加密模块与接收端的混合解密模块配合,通过aes密钥对明文数据和随机数明文进行加密传输,通过rsa密钥对对aes密钥进行加密传输,并以随机数明文作为签名验证加密传输是否成功,所述aes密钥和随机数明文均由发送端随机生成。

本实施例中,混合加密模块用于随机生成aes密钥和随机数明文,通过rsa公钥对aes密钥进行加密,生成rsa密文,计算随机数明文的哈希值,并将上述aes密文、rsa密文和哈希值发送至接收端;混合解密模块用于通过rsa私钥对aes密文进行解密、得到aes密钥,通过aes密钥对aes密文进行解密、得到数据明文和随机数明文,计算随机数明文的哈希值,并将计算得到的哈希值与接收的哈希值进行比对,计算得到的哈希值与接收的哈希值一致、则加密传输成功。混合加密模块和混合解密模块的工作流程为:

(1)、在发送端执行如下操作:

首先,随机生成aes密钥和随机数明文;

其次,通过aes密钥对拼接的明文数据和随机数明文进行加密,生成aes密文;

通过rsa公钥对aes密钥进行加密,生成rsa密文;

计算随机数明文的哈希值;

然后,将上述aes密文、rsa密文和哈希值发送至接收端;

(2)、在接收端执行如下操作:

通过rsa私钥对aes密文进行解密,得到aes密钥;

通过aes密钥对aes密文进行解密,得到数据明文和随机数明文;

计算随机数明文的哈希值,并将计算得到的哈希值与接收的哈希值进行比对,计算得到的哈希值与接收的哈希值一致、则加密传输成功。

上述操作中,如果加密传输不成功,关闭服务端与客户端之间的通信通道。

本发明的数据传输系统可执行如实施例1公开的基于混合加密算法的数据传输方法。

以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1