一种数据传输方法及装置与流程

文档序号:16582190发布日期:2019-01-14 18:04阅读:121来源:国知局
一种数据传输方法及装置与流程

本申请涉及信息安全技术领域,尤其是涉及一种数据传输方法及装置。



背景技术:

随着大数据时代的到来,人与人之间的数据交换越来越频繁,且交换的数据内容越来越复杂,这就对数据加密的要求越来越高。

传统的方案中实现数据加密主要是应用非对称加密算法,该算法通过产生一对非对称密钥即公钥和私钥,通过公钥对数据进行加密,通过公钥所对应的私钥对加密后的数据进行解密,从而完成数据加密解密过程,保障数据传输过程中的安全。

电子商务(certifyingauthority,ca)认证是上述非对称加密算法执行过程中必不可少的步骤,公钥的设置和传递都需通过ca认证中心来实现,这就要求用户必须是经过ca认证中心授权的用户,且必须经常和ca认证中心进行交互,以保证公钥和私钥的更新和重新生成,这就使得在用户在更换设备、更换账号等可能的场景中造成用户密钥的丢失,且增加了数据传输的成本。



技术实现要素:

有鉴于此,本申请的目的在于提供一种数据传输方法及装置,可以避免传统加密过程中每次进行加密时都需要从认证中心获取公钥的步骤,提高数据加密解密过程的处理效率。

第一方面,本申请实施例提供了一种数据传输方法,该方法包括:

获取上述第一用户终端的第一公钥、以及第二用户终端的第二公钥,上述第一公钥为根据第一用户的标识信息计算所得,第二公钥为根据第二用户的标识信息计算所得;

生成第一密钥,并根据第二公钥对生成的第一密钥进行加密;

将加密后的第一密钥发送给第二用户终端,上述加密后的第一密钥在经上述第二用户终端利用上述第二用户终端的第二私钥解密后,在上述第二用户终端在向第一用户终端发送第一数据时使用,其中,第二私钥为根据上述第二用户的标识信息计算所得;

在接收到第二用户终端发送的利用上述第一密钥加密的第一数据后,利用上述第一密钥对接收的第一数据进行解密。

结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,上述方法还包括:

获取第一用户终端的第一私钥,其中,上述第一私钥为根据上述第一用户的标识信息计算所得;

接收来自上述第二用户终端利用第一公钥加密后的第二密钥,上述第二密钥由上述第二用户终端生成;

利用上述第一用户终端的第一私钥对上述加密后的第二密钥进行解密;

利用上述解密后的第二密钥对第二数据进行加密,并将加密后的第二数据发送给上述第二用户终端。

结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第二种可能的实施方式,其中,上述获取第一用户终端的第一私钥,具体包括:

生成公共密钥;

根据上述公共密钥及第一用户的标识信息,为上述第一用户终端配置第一私钥。

结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第三种可能的实施方式,其中,上述第一密钥是上述第一用户终端生成的随机数,上述第二密钥是上述第二用户终端生成的随机数,其中,第一密钥与第二密钥互不相同。

结合第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第四种可能的实施方式,上述方法还包括:

生成系统参数;

上述根据第二公钥对生成的第一密钥进行加密,包括:

根据上述第二公钥以及上述生成的系统参数对上述第一密钥进行加密;

上述利用上述第一用户终端的第一私钥对上述加密后的第二密钥进行解密,包括:

利用上述第一私钥以及上述生成的系统参数对上述加密后的第二密钥进行解密。

第二方面,本申请实施例还提供一种数据传输装置,包括:

获取模块,用于获取上述装置的第一公钥、以及第二用户终端的第二公钥,上述第一公钥为根据第一用户的标识信息计算所得,第二公钥为根据第二用户的标识信息计算所得;

加密模块,用于生成第一密钥,并根据第二公钥对生成的第一密钥进行加密;

传输模块,用于将加密后的第一密钥发送给第二用户终端,上述加密后的第一密钥在经上述第二用户终端利用上述第二用户终端的第二私钥解密后,在上述第二用户终端在向上述装置发送第二数据时使用,其中,第二私钥为根据第二用户的标识信息计算所得;

解密模块,用于在接收到第二用户终端发送的利用上述第一密钥加密的第二数据后,利用上述第一密钥对接收的第二数据进行解密。

结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,获取模块,还用于获取上述装置的第一私钥,其中,上述第一私钥为根据第一用户的标识信息计算所得;

传输模块,还用于接收来自上述第二用户终端利用第一公钥加密后的第二密钥,上述第二密钥由上述第二用户终端生成;

解密模块,还用于利用上述装置的第一私钥对上述加密后的第二密钥进行解密;

加密模块,还用于利用上述解密后的第二密钥对第一数据进行加密;

传输模块,还用于将上述加密后的第一数据发送给第二用户终端。

结合第二方面的第一种可能的实施方式,本申请实施例提供了第二方面的第二种可能的实施方式,其中,上述获取模块在获取上述装置的第一私钥时,具体用于:

生成公共密钥;

根据上述公共密钥及第一用户的标识信息,为上述装置配置第一私钥。

结合第二方面,本申请实施例提供了第二方面的第三种可能的实施方式,其中,上述第一密钥是上述装置生成的随机数,上述第二密钥是上述第二用户终端生成的随机数,其中,第一密钥与第二密钥互不相同。

结合第二方面的第一种可能的实施方式,本申请实施例提供了第二方面的第四种可能的实施方式,其中,加密模块还用于生成系统参数;

上述加密模块在根据第二公钥对生成的第一密钥进行加密时,具体用于:

根据上述第二公钥以及上述生成的系统参数对上述第一密钥进行加密;

上述加密模块在利用上述装置的第一私钥对上述加密后的第二密钥进行解密时,具体用于:

利用上述第一私钥以及上述生成的系统参数对上述加密后的第二密钥进行解密。

第三方面,本申请实施例还提供了一种电子设备,该设备包括:处理器、存储器和总线,存储器存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储器之间通过总线通信,机器可读指令被处理器执行时执行上述第一方面及第一方面任意可能的实施方式中上述的数据传输方法的步骤。

第四方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面以及第一方面任意可能的实施方式中上述的数据传输方法的步骤。

本申请实施例提供的数据传输方法及装置,通过获取第一用户终端的第一公钥、以及第二用户终端的第二公钥,第一公钥为根据第一用户的标识信息计算所得,第二公钥为根据第二用户的标识信息计算所得,然后生成第一密钥,并根据第二公钥对生成的第一密钥进行加密,进一步地,将加密后的第一密钥发送给第二用户终端,加密后的第一密钥在经第二用户终端利用第二用户终端的第二私钥解密后,在第二用户终端在向第一用户终端发送第一数据时使用,最后在接收到第二用户终端发送的利用第一密钥加密的第一数据后,利用第一密钥对接收的第一数据进行解密。通过上述方式,一方面避免了传统加密过程中第一用户终端每次进行加密时都需要从认证中心获取第二用户终端的第二公钥的步骤,可通过得到第二用户终端的标识信息、以及生成的第一密钥来代替从认证中心获取公钥的步骤;另一方面第一用户终端与第二用户终端进行交互时,第一用户终端利用第一密钥对第二用户终端发送的利用第一密钥加密的第一数据进行解密,相比较非对称加密而言,提高了加密和解密的处理效率。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例所提供的一种数据传输方法及装置的流程示意图;

图2示出了本申请实施例所提供的密钥生成器的工作流程图;

图3示出了本申请实施例所提供的数据传输装置300的架构示意图;

图4示出了本申请实施例所提供的电子设备400的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前数据传输过程中若要对传输数据进行加密,用户必须经常和ca认证中心进行交互,以保证公钥和私钥的更新和重新生成,这不仅增加了数据传输的成本,也使得在用户在更换设备、更换账号等可能的场景中造成用户密钥的丢失。针对上述提出的问题,本申请提供了一种数据传输方法及装置,来减少用户与ca认证的交互,提高数据加密和解密过程中的处理效率。

为便于对本实施例进行理解,首先对本申请实施例所公开的一种数据传输方法进行详细介绍。

实施例一

参见图1所示,为本申请实施例提供的一种数据传输方法及装置的流程示意图,包括以下步骤:

s101、第一用户终端获取第一用户终端的第一公钥以及第二用户终端的第二公钥。

其中,在本步骤中上述第一公钥为根据第一用户的标识信息计算所得,第二公钥为根据第二用户的标识信息计算所得。上述标识信息是唯一能表示用户身份的信息,例如标识信息可以为身份证号、手机号或邮箱等。在一种可能的实施方式中,第一用户与第二用户之间的标识信息双方可以预先交换获得。

其中,每一用户的标识信息是唯一的,这样可以避免用户因为更换设备等原因造成用户公钥丢失的问题。例如,传统的加密传输方式中,需要借助于第三方工具,如登录网上银行时需要借助u盾等工具来保证信息传输的安全性,但如果u盾丢失,则会造成用户公钥丢失的问题,从而导致用户无法登陆网上银行。而在本申请中,用户若需要更换设备,可根据用户表示信息重新获取用户私钥,无需借助第三方工具

s102、第一用户终端生成第一密钥,并根据第二公钥对生成的第一密钥进行加密。

其中,上述第一密钥为第一用户终端产生的随机数,考虑到一些密钥为有规律产生的数,其密钥产生规律可能会被攻破,从而导致恶意入侵,因此本申请中该随机数的产生方法无规律可寻,以此来增加数据传输过程中的安全性。

在第一用户终端获取到第二用户终端的第二公钥之后,当第一用户终端向第二用户发送第一密钥时,仅仅只需要获得第二用户终端的第二公钥即第二用户的标识信息,即可对第一密钥进行加密,而无需向认证机构如ca认证中心申请获取第二用户的第二公钥。

另外,在第一用户终端生成第一密钥,并根据第二公钥对生成的第一密钥进行加密之前,第一用户终端还可以先从密钥生成器获取系统参数、公共密钥以及第一私钥,其中,所述密钥生成器配置于用户终端模块上的具有安全保障的生成密码的软件工具。

例如,在通过密钥生成器获取系统参数、公共密钥时,可以执行setup函数,输出系统参数和公共密钥,所述公共密钥用于计算生成用户私钥,具体系统参数、公共密钥以及用户私钥的获取方法将在实施例二中进行详细说明。实际应用中,同一版本密钥生成器所生成的上述系统参数可以是唯一的,例如当前密钥生成器版本为5.0,则所有在版本5.0申请的系统参数为同一系统参数,若密钥生成器版本更新为6.0,则系统参数会发生变化,用户需重新申请系统参数,更新用户公钥和用户私钥。

s103、第一用户终端将加密后的第一密钥发送给第二用户终端。

s104、第二用户终端利用第二私钥对加密后的第一密钥进行解密,并利用第一密钥对第一数据进行加密。

在本步骤中,同理,第二用户终端也可以安装上述密钥生成器,通过密钥生成器获取系统参数、公共密钥以及第二私钥,从而利用第二私钥对加密后的第一密钥进行解密,详细过程不再赘述。

若步骤s102中,第一用户终端利用系统参数和第二用户终端第二公钥对第一密钥进行加密,则第二用户终端可凭借第二私钥和系统参数对加密后的第一密钥进行解密,其中,加密过程和解密过程中所使用的系统参数为从上述密钥生成器获取的相同的系统参数;若s102中,第一用户终端对第一密钥进行加密时仅利用第二公钥进行加密,则第二用户终端对加密后的第一密钥进行解密时仅需利用私钥进行解密即可。

步骤s101~步骤s104为第一用户终端用第二公钥将第一密钥进行加密并传送给第二用户终端,第二用户终端利用第二私钥进行解密获得第一密钥的过程。

s105、第二用户终端将加密后的第一数据发送给第一用户终端。

s106、第一用户终端利用第一密钥对加密后的第一数据进行解密。

在本申请实施例中,利用第一密钥进行加密解密的过程属于对称加密,即加密时所使用的密钥和解密时使用的密钥为同一密钥。

此外,如果用户需要更换设备时,因为用户的标识信息是唯一的,所以可以凭借用户的标识信息重新获取用户私钥。例如,若用户的标识信息为用户的身份证号,则用户在更换设备时,可以在新设备上安装密钥生成器,输入用户身份证号,根据用户身份证号重新计算生成用户私钥,避免因更换设备等原因导致原有公钥私钥丢失的问题。

采用上述方式,通过获取第一用户终端的第一公钥、以及第二用户终端的第二公钥,第一公钥为根据第一用户的标识信息计算所得,第二公钥为根据第二用户的标识信息计算所得,然后生成第一密钥,并根据第二公钥对生成的第一密钥进行加密,进一步地,将加密后的第一密钥发送给第二用户终端,加密后的第一密钥在经第二用户终端利用第二用户终端的第二私钥解密后,在第二用户终端在向第一用户终端发送第一数据时使用,最后在接收到第二用户终端发送的利用第一密钥加密的第一数据后,利用第一密钥对接收的第一数据进行解密。通过上述方式,避免了传统加密过程中第一用户终端每次进行加密时都需要从认证中心获取第二用户终端的第二公钥的步骤,可利用第二用户终端的标识信息以及第一密钥来代替;第一用户终端与第二用户终端进行交互时,第一用户终端利用第一密钥对第二用户终端发送的利用第一密钥加密的第一数据进行解密,相比较非对称加密而言,提高了加密和解密的处理效率,

另外,任一用户终端的用户公钥是唯一的,私钥是通过密钥生成器计算所得,避免了因更换设备或设备丢失而造成的密钥丢失的问题。并且,因为避免了数字证书等的应用,所以满足了移动用户对于数据加密传输的需求。

实施例二

对于实施例一中,所述用户终端通过内部安装的密钥生成器生成用户私钥、系统参数以及公共密钥的过程,具体详细参照图2所示的密钥生成器的工作流程图:

步骤1、用户终端将用户标识信息传输给密钥生成器。

上述用户标识信息例如可以为用户身份证号、用户手机号或用户邮箱等。其中,密钥生成器可提前公开主密钥,用户终端通过主密钥对用户标识信息进行加密,然后发送给密钥生成器。

步骤2、密钥生成器执行setup函数,生成系统参数和公共密钥。

其中setup函数的执行方法包含以下方面:随机选定位数超过1024比特的素数p,素数p满足p对3取余恒等于2,根据素数p计算素数q,p和q之间满足p=6q-1,设fp为素数p的域,zq为素数q的域;然后设椭圆曲线e的曲线方程为y2+ay=x3+bx2+cy+d,任意选择q阶点p(p∈e且p∈fp),随机选择s满足s∈zq且s不恒为0,根据p和s计算公共密钥ppublic;然后设定哈希函数h1、h2、h3、h4,根据四个哈希函数以及p,p以及计算出的公共密钥确定系统参数。

步骤3、密钥生成器执行extract函数得到用户私钥。

其中,extract函数的执行方法包含以下方面:

将用户标识信息转换成二进制形式,将转换以后的用户标识信息映射到上述q域得到参数q,根据参数q和上述公共密钥计算得到用户私钥。

本申请实施例中,第一用户终端在基于图2所示的流程得到系统参数和第一用户私钥后,在根据第二公钥对生成的第一密钥进行加密时,还可以将系统参数和第二公钥即第二用户的标识信息输入encrypt函数中,之后可以输出得到加密后的第一密钥,具体encrypt函数的执行步骤如下:

设需要加密的第一密钥为明文m,明文m格式为n维二进制数,将第二用户标识信息即第二公钥转换成二进制形式,将转换以后的用户标识信息映射到上述q域得到参数q。然后产生随机串δ,根据δ以及明文m,利用上述设定的哈希函数h3计算r,根据r,p,δ,q,ppublic以及哈希函数h2、h4组合产生密文即加密后的第一密钥,其中,r,p,δ,q,ppublic以及哈希函数h2、h4即为系统参数的部分参数。

相应地,第二用户终端根据第二私钥对加密后的第一密钥进行解密时,可以将系统参数和第二私钥输入decrypt函数中,之后可以输出得到解密后的第一密钥,具体decrypt函数的执行步骤如下:

根据接收到的加密后的第一密钥、系统参数和用户私钥反向计算随机串δ’,判断计算的δ’与加密时所用的δ是否一致,若一致则可进一步计算得到解密后的明文,即第一密钥,若不一致则解密失败。

实施例三

本申请实施例提供了一种数据传输装置,参照图3所示,为本申请实施例提供的数据传输装置300的架构示意图,该装置300包括:获取模块301、加密模块302、传输模块303以及解密模块304。

具体的,获取模块301,用于获取所述装置的第一公钥、以及第二用户终端的第二公钥,所述第一公钥为根据第一用户的标识信息计算所得,第二公钥为根据第二用户的标识信息计算所得;

加密模块302,用于生成第一密钥,并根据第二公钥对生成的第一密钥进行加密;

传输模块303,用于将加密后的第一密钥发送给第二用户终端,所述加密后的第一密钥在经所述第二用户终端利用所述第二用户终端的第二私钥解密后,在所述第二用户终端在向所述装置发送第二数据时使用,其中,第二私钥为根据第二用户的标识信息计算所得;

解密模块304,用于在接收到第二用户终端发送的利用所述第一密钥加密的第二数据后,利用所述第一密钥对接收的第二数据进行解密。

在一种可能的实施方式中,获取模块,还用于获取所述装置的第一私钥,其中,所述第一私钥为根据第一用户的标识信息计算所得;

传输模块303,还用于接收来自所述第二用户终端利用第一公钥加密后的第二密钥,所述第二密钥由所述第二用户终端生成;

解密模块304,还用于利用所述装置的第一私钥对所述加密后的第二密钥进行解密;

加密模块302,还用于利用所述解密后的第二密钥对第一数据进行加密;

传输模块303,还用于将所述加密后的第一数据发送给第二用户终端。

另外,在一种可能的实施方式中,所述获取模块301在获取所述装置的第一私钥时,具体用于:

生成公共密钥;

根据所述公共密钥及第一用户的标识信息,为所述第一用户终端配置第一私钥。

进一步地,在一种可能的实施方式中,所述第一密钥是所述装置生成的随机数,所述第二密钥是所述第二用户终端生成的随机数,其中,第一密钥与第二密钥互不相同。

另外,在一种可能的实施方式中,所述加密模块302还用于:生成系统参数;

所述加密模块302在根据第二公钥对生成的第一密钥进行加密时,具体用于:

根据所述第二公钥以及所述生成的系统参数对所述第一密钥进行加密;

所述加密模块302在利用所述装置的第一私钥对所述加密后的第二密钥进行解密时,具体用于:

利用所述第一私钥以及所述生成的系统参数对所述加密后的第二密钥进行解密。

实施例四

如图4所示,本申请实施例四所提供的一种电子设备400的结构示意图,包括:处理器401、存储器402和总线403;

上述存储器402存储有上述处理器401可执行的机器可读指令(比如,包括图3中的获取模块301、加密模块302、传输模块303以及解密模块304对应的执行指令等),当电子设备400运行时,上述处理器401与上述存储器402之间通过总线403通信,上述机器可读指令被上述处理器401执行时执行如下处理:

取所述第一用户终端的第一公钥、以及第二用户终端的第二公钥,所述第一公钥为根据第一用户的标识信息计算所得,第二公钥为根据第二用户的标识信息计算所得;

生成第一密钥,并根据第二公钥对生成的第一密钥进行加密;

将加密后的第一密钥发送给第二用户终端,所述加密后的第一密钥在经所述第二用户终端利用所述第二用户终端的第二私钥解密后,在所述第二用户终端在向第一用户终端发送第一数据时使用,其中,第二私钥为根据所述第二用户的标识信息计算所得;

在接收到第二用户终端发送的利用所述第一密钥加密的第一数据后,利用所述第一密钥对接收的第一数据进行解密。

另外,上述处理器401在执行的处理中,还包括:

获取第一用户终端的第一私钥,其中,所述第一私钥为根据所述第一用户的标识信息计算所得;

接收来自所述第二用户终端利用第一公钥加密后的第二密钥,所述第二密钥由所述第二用户终端生成;

利用所述第一用户终端的第一私钥对所述加密后的第二密钥进行解密;

利用所述解密后的第二密钥对第二数据进行加密,并将加密后的第二数据发送给所述第二用户终端。

另外,上述处理器401执行的处理中,所述获取第一用户终端的第一私钥,具体包括:

生成公共密钥;

根据所述公共密钥及第一用户的标识信息,为所述第一用户终端配置第一私钥。

另外,上述处理器401执行的处理中,所述第一密钥是所述第一用户终端生成的随机数,所述第二密钥是所述第二用户终端生成的随机数,其中,第一密钥与第二密钥互不相同。

进一步地,上述处理器401执行的处理中,还包括:

生成系统参数;

所述根据第二公钥对生成的第一密钥进行加密,包括:

根据所述第二公钥以及所述生成的系统参数对所述第一密钥进行加密;

所述利用所述第一用户终端的第一私钥对所述加密后的第二密钥进行解密,包括:

利用所述第一私钥以及所述生成的系统参数对所述加密后的第二密钥进行解密。

实施例四

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一实施例中所述的数据传输方法的步骤。

具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述数据传输方法的步骤,从而可以减少用户与ca认证中心的交互次数,节约了技术成本。

本申请实施例所提供的进行数据传输方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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