数据加解密方法、装置、计算设备及存储介质与流程

文档序号:23664118发布日期:2021-01-15 14:02阅读:91来源:国知局
数据加解密方法、装置、计算设备及存储介质与流程

本发明涉及数据处理技术领域,具体涉及一种数据加解密方法、装置、计算设备及存储介质。



背景技术:

在现有技术中,当用户之间需要存储或传输数据时,为了防止数据被他人恶意获取,通常会采用密码对待存储或传输的数据进行加密,例如为待存储或传输的数据设置密码,然后通过口头告知或者聊天工具、邮件等其他通信方式将所设置的密码提供给数据接收方,以供数据接收方能够根据该密码对接收到的数据进行解密,从而查看到数据本身。然而,无论是通过口头告知还是其他通信方式向数据接收方提供密码,密码都很容易被他人获取到,存在数据安全隐患。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据加解密方法、装置、计算设备及存储介质。

根据本发明的一个方面,提供了一种数据加解密方法,该方法包括:

接收第一用户提交的针对待处理的原始数据的数据加密存储请求和/或数据加密传输请求;

响应于数据加密存储请求和/或数据加密传输请求,随机生成数据密钥,并利用数据密钥对原始数据进行加密,得到第一加密数据;

查询第二用户的目标公钥,利用目标公钥对数据密钥进行加密,得到第二用户对应的密钥密文;

将密钥密文与第一加密数据进行组合,生成第二加密数据,并存储第二加密数据和/或将第二加密数据传输至第二用户。

根据本发明的另一方面,提供了一种数据加解密装置,该装置包括:

接收模块,用于接收第一用户提交的针对待处理的原始数据的数据加密存储请求和/或数据加密传输请求;

加密模块,用于响应于数据加密存储请求和/或数据加密传输请求,随机生成数据密钥,并利用数据密钥对原始数据进行加密,得到第一加密数据;查询第二用户的目标公钥,利用目标公钥对数据密钥进行加密,得到第二用户对应的密钥密文;将密钥密文与第一加密数据进行组合,生成第二加密数据;

处理模块,用于存储第二加密数据和/或将第二加密数据传输至第二用户;

其中,接收模块进一步用于:接收第二用户提交的针对第二加密数据的数据解密请求;

该装置还包括:解密模块;解密模块用于:

响应于数据解密请求,从第二加密数据中提取密钥密文和第一加密数据;

获取第二用户的目标公钥对应的私钥,并利用私钥对密钥密文进行解密,得到数据密钥;或者,将密钥密文提交给外部硬件设备,由外部硬件设备利用存储的第二用户的目标公钥对应的私钥对密钥密文进行解密,得到数据密钥;

利用数据密钥对第一加密数据进行解密,得到原始数据。

根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;

存储器用于存放至少一可执行指令,可执行指令使处理器执行上述数据加解密方法对应的操作。

根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述数据加解密方法对应的操作。

根据本发明提供的技术方案,利用第二用户的目标公钥对用于加密原始数据的数据密钥进行加密而后与加密后的原始数据进行组合,得到最终的用于存储或传输至第二用户的加密数据,使得第二用户能够方便地利用自身目标公钥对应的私钥一步步地完成对加密数据的解密而获得对应的原始数据,从而不仅便捷地通过加密存储或加密传输方式保证了数据安全,第二用户也能够方便地对加密数据进行解密,而且并未存储和/或传输数据密钥的明文,增加了数据密钥被他人获取的难度,以防原始数据轻易地被他人恶意获取,有效地提高了数据安全性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明实施例一的数据加解密方法的流程示意图;

图2示出了根据本发明实施例二的数据加解密方法的流程示意图;

图3示出了根据本发明实施例三的数据加解密方法中的密钥派生方法的流程示意图;

图4示出了根据本发明实施例四的数据加解密装置的结构框图;

图5示出了根据本发明实施例五的一种计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明实施例一的数据加解密方法的流程示意图,如图1所示,该方法包括如下步骤:

步骤s101,加解密模块接收第一用户提交的针对待处理的原始数据的数据加密存储请求和/或数据加密传输请求。

该方法可由运行在用户网络终端上的加解密模块执行。其中,该方法可适用于对用户之间传输的数据进行加解密处理,数据传输可通过微信、qq、微博、论坛等社交平台、邮件等方式实现,本领域技术人员还可选择其他传输方式来传输数据,此处不做具体限定。在本发明中,将提供数据的用户称为第一用户,将获得数据的用户称为第二用户,其中,第二用户和第一用户可为不同用户,第二用户和第一用户也可为同一用户。具体地,在第一用户将数据提供给其他用户的场景下,第二用户为与第一用户不同的用户,而在第一用户自己存储数据的场景下,例如第一用户想要通过加密方式保存自己的数据或者通过微信、邮件等方式向自己传输数据时,第二用户与第一用户为同一用户,即第二用户也为第一用户。

当第一用户想要通过加密传输方式传输数据时,可通过用户网络终端向加解密模块提交针对待处理的原始数据的数据加密传输请求;当第一用户想要加密存储自己的数据时,可通过用户网络终端向加解密模块提交针对待处理的原始数据的数据加密存储请求。那么在步骤s101中,加解密模块接收第一用户提交的数据加密存储请求和/或数据加密传输请求。其中,用户网络终端是指用户的手机、笔记本电脑、个人计算机(personalcomputer,pc)、个人数字助理(personaldigitalassistant,pda)、智能手表、智能手环等具有数据存储、数据传输功能的设备。数据加密存储请求和数据加密传输请求中可包含有待处理的原始数据、第一用户标识、提交时间等数据。具体地,第一用户标识具体为用于唯一标识第一用户身份的数据,例如第一用户id、第一用户的手机号、应用账号等;待处理的原始数据可以包括文件数据,也可包括图片数据、用户之间的聊天信息、邮件正文等。

步骤s102,加解密模块响应于数据加密存储请求和/或数据加密传输请求,随机生成数据密钥,并利用数据密钥对原始数据进行加密,得到第一加密数据。

加解密模块在接收到数据加密存储请求和/或数据加密传输请求之后,响应于上述请求,可利用随机生成算法、当前时间等进行处理,随机生成数据密钥,数据密钥为用于加密原始数据的密钥。本领域技术人员可根据实际需要对数据密钥的具体内容进行设置,此处不做限定。在生成了数据密钥之后,即可利用数据密钥加密原始数据,从而得到加密后的原始数据,在本发明中,将利用数据密钥加密后的原始数据称为第一加密数据。具体地,可利用数据密钥,按照对称加密算法对原始数据进行加密,得到第一加密数据。其中,对称加密算法可为des算法、3des算法、sm4算法、tdea算法、blowfish算法、rc5算法以及idea算法等算法,本领域技术人员可根据实际需要进行算法选择。

步骤s103,加解密模块查询第二用户的目标公钥,利用目标公钥对数据密钥进行加密,得到第二用户对应的密钥密文。

考虑到若直接通过口头告知或者其他通信方式将数据密钥提供给第二用户,不仅不方便,而且还存在数据安全隐患,数据密钥容易被他人获取,进而能够轻易地解密第一加密数据,为了解决该问题,本发明对数据密钥进行了加密处理。具体地,需要第二用户预先生成自身的目标公钥以及目标公钥对应的私钥,目标公钥用于对数据密钥进行加密,目标公钥对应的私钥用于对加密后的数据密钥(即下文中的密钥密文)进行解密。其中,目标公钥以及目标公钥对应的私钥可利用软件或者外部硬件设备进行生成,外部硬件设备包括:终端加密卡、终端安全设备和终端密码装置等具有密钥生成功能的装置。利用外部硬件设备来生成目标公钥以及目标公钥对应的私钥,能够有效地提高私钥保管的安全性,以防私钥轻易地被他人恶意获取。

在生成了第二用户的目标公钥以及目标公钥对应的私钥之后,第二用户可通过用户网络终端将目标公钥提供给服务器进行存储,服务器可将所获取的第二用户的目标公钥作为用户信息的一组成部分添加至第二用户的用户信息中,可向各个用户公开展示目标公钥,也可仅存储在服务器中而不向用户公开展示。对于目标公钥对应的私钥,可由第二用户自行保管,例如将目标公钥对应的私钥存储至用户网络终端或者外部硬件设备中,或者也可不直接对该私钥进行存储,而是将用于生成目标公钥以及目标公钥对应的私钥的相关的派生因子存储至用户网络终端或者外部硬件设备中。通过上述处理方式,能够有助于确保目标公钥对应的私钥的安全性,增加被他人恶意获取的难度。

在步骤s103中,加解密模块可从服务器所记录的第二用户的用户信息中查询第二用户的目标公钥,而后利用查询到的目标公钥对数据密钥进行加密,从而得到第二用户对应的密钥密文。具体地,可利用目标公钥,按照非对称加密算法对数据密钥进行加密,得到第二用户对应的密钥密文。其中,非对称加密算法可为rsa算法、sm2算法、elgamal算法、背包算法、rabin算法、d-h算法以及ecc(椭圆曲线加密)算法等算法,本领域技术人员可根据实际需要进行算法选择。

步骤s104,加解密模块将密钥密文与第一加密数据进行组合,生成第二加密数据,并存储第二加密数据和/或将第二加密数据传输至第二用户。

在得到了密钥密文与第一加密数据之后,可采用预设数据组合策略,将密钥密文与第一加密数据进行组合,从而生成第二加密数据。

对于数据加密存储请求,在生成了第二加密数据之后,可直接存储第二加密数据,或者也将第二加密数据返回给第一用户,由第一用户自行进行数据存储。在此场景下,第二用户与第一用户为同一用户,也就是说第一用户获得了通过对自身的原始数据进行一系列加密处理后而生成的第二加密处理,实现了对自身数据的加密保存,第一用户可对第二加密数据进行保存,例如将第二加密数据保存至具有数据存储功能的手机、电脑、nas设备等计算机设备中。

对于数据加密传输请求,在生成了第二加密数据之后,可直接将第二加密数据传输至第二用户,或者也可将第二加密数据返回给第一用户,再由第一用户自行传输至第二用户。在此场景下,第二用户与第一用户可为不同用户,也就是说将通过对第一用户的原始数据进行一系列加密处理后而生成的第二加密数据传输至第二用户,实现了用户之间的数据加密传输,具体地,可通过微信、qq、微博、论坛等社交平台、邮件等方式将第二加密数据传输至第二用户。

其中,预设数据组合策略可包括添加策略和打包策略等,本领域技术人员还可设置预设数据组合策略包括其他组合策略,此处不做具体限定。例如,添加策略可规定:通过将密钥密文添加至第一加密数据的预设位置处来生成第二加密数据;打包策略可规定:通过将记录有密钥密文的文件与第一加密数据进行打包来生成第二加密数据。

若采用添加策略来生成第二加密数据,那么在步骤s104中加解密模块将密钥密文添加至第一加密数据的预设位置处生成第二加密数据,本领域技术人员可根据实际需要设置预设位置,例如预设位置可为第一加密数据的开始位置、第一加密数据的结尾位置或者第一加密数据的预设行位置等,如第75行至第175行所在的行位置。

若采用打包策略来生成第二加密数据,那么在步骤s104中加解密模块构造记录有密钥密文的文件,将记录有密钥密文的文件与第一加密数据进行打包,将打包后的数据作为第二加密数据。

考虑到当原始数据为图片数据时,通过对原始数据进行一系列加密处理后而生成的第二加密数据无法提供图片预览功能,不便于第二用户确定第二加密数据对应的图片数据的大致内容。为了方便第二用户进行预览,该方法还可包括:若原始数据为图片数据,则对图片数据进行处理,生成图片缩略图,例如可利用预设图片处理算法,对图片数据进行模糊处理或者对图片数据中的关键部分进行遮挡处理等,生成图片数据对应的图片缩略图。以原始数据为甲乙双方签订的合同的图片数据为例,可将图片数据中的甲乙双方名称、合同金额等部分作为关键部分,利用预设图片处理算法对图片数据中的关键部分进行遮挡处理,生成图片缩略图。那么步骤s104可进一步为:将密钥密文、图片缩略图与第一加密数据进行组合,生成第二加密数据,而后存储第二加密数据和/或将第二加密数据传输至第二用户。其中,对于将密钥密文、图片缩略图与第一加密数据进行组合的处理方式可参照将密钥密文与第一加密数据进行组合的处理方式,此处不再赘述。

步骤s105,加解密模块接收第二用户提交的针对第二加密数据的数据解密请求。

第二用户在获得第二加密数据之后,当第二用户想要查看第二加密数据对应的原始数据时,可通过运行在第二用户的用户网络终端上的加解密模块对第二加密数据或者第二加密数据对应的相关控件(例如数据解密控件、图片浏览器等)等进行点击、长按等方式进行触发,以向加解密模块提交针对第二加密数据的数据解密请求。那么在步骤s105中,加解密模块接收第二用户提交的针对第二加密数据的数据解密请求,数据解密请求中包含有第二加密数据的数据标识、第二用户标识、提交时间等数据。具体地,第二加密数据的数据标识具体为用于唯一标识第二加密数据的数据,例如第二加密数据id、第二加密数据的名称等。

步骤s106,加解密模块响应于数据解密请求,从第二加密数据中提取密钥密文和第一加密数据。

加解密模块响应于数据解密请求,对数据解密请求所针对的第二加密数据进行解析,依据第二加密数据所采用的预设数据组合策略确定具体的提取方式,按照所确定的提取方式,从第二加密数据中提取密钥密文和第一加密数据。若第二加密数据是采用添加策略生成的,那么确定从第二加密数据的预设位置处提取密钥密文,将提取密钥密文后第二加密数据中剩余的数据部分作为第一加密数据,从而完成对密钥密文和第一加密数据的提取工作;若第二加密数据是采用打包策略生成的,那么确定对第二加密数据进行解包处理,得到记录有密钥密文的文件和第一加密数据,然后从记录有密钥密文的文件中获取密钥密文,从而完成对密钥密文和第一加密数据的提取工作。

步骤s107,加解密模块获取第二用户的目标公钥对应的私钥,并利用私钥对密钥密文进行解密,得到数据密钥。

由于密钥密文是利用第二用户的目标公钥,按照非对称加密算法对数据密钥进行加密得到的,那么可利用第二用户的目标公钥对应的私钥对密钥密文进行解密,从而得到数据密钥。具体地,若该私钥存储于用户网络终端或者加解密模块中,那么加解密模块直接按预设的方法获取到本地存储的私钥;若该私钥存储于外部硬件设备,那么运行在用户网络终端上的加解密模块可将密钥密文提交给外部硬件设备,由外部硬件设备直接利用所存储的第二用户的目标公钥对应的私钥对密钥密文进行解密,得到数据密钥,并将数据密钥返回给加解密模块;若第二用户公开的目标公钥为派生公钥,同时还公开该公钥对应的派生因子,该因子与第二用户标识一样保存在第二加密数据中,加解密模块可以利用根密钥,按预设的算法由派生因子生成目标公钥及其对应的私钥;若外部硬件设备只保存有根密钥,并未存储该私钥,那么外部硬件设备可利用从第二加密数据中提取到的派生因子生成目标公钥对应的私钥,而后将所生成的私钥提交给加解密模块,或利用所生成的私钥对密钥密文进行解密,得到数据密钥,并将数据密钥返回给加解密模块。

步骤s108,加解密模块利用数据密钥对第一加密数据进行解密,得到原始数据。

由于第一加密数据是利用数据密钥,按照对称加密算法对原始数据进行加密得到的,那么可利用步骤s107解密得到的数据密钥,按照对称加密算法的逆算法对第一加密数据进行解密,从而便捷地得到原始数据。

根据本实施例提供的数据加解密方法,利用第二用户的目标公钥对用于加密原始数据的数据密钥进行加密而后与加密后的原始数据进行组合,得到最终的用于存储或传输至第二用户的加密数据,使得第二用户能够方便地利用自身目标公钥对应的私钥一步步地完成对加密数据的解密而获得对应的原始数据,从而不仅便捷地通过加密存储或加密传输方式保证了数据安全,第二用户也能够方便地对加密数据进行解密,而且并未存储和/或传输数据密钥的明文,增加了数据密钥被他人获取的难度,以防原始数据轻易地被他人恶意获取,有效地提高了数据安全性。

本发明提供的数据加解密方法还能够便捷地应用于数据群发场景中,通过加密传输方式向包含有多个第二用户的用户群组传输数据,对于在数据群发场景中的具体方法处理流程可通过下述的图2对应的实施例二进行详细介绍。

图2示出了根据本发明实施例二的数据加解密方法的流程示意图,该方法可由运行在用户网络终端上的加解密模块执行。如图2所示,该方法包括如下步骤:

步骤s201,加解密模块接收第一用户提交的针对待处理的原始数据的数据加密传输请求。

步骤s202,加解密模块响应于数据加密传输请求,随机生成数据密钥,并利用数据密钥对原始数据进行加密,得到第一加密数据。

对于步骤s201和步骤s202的介绍可参照图1对应的实施例一中步骤s101和步骤s102的介绍,在此不再赘述。

步骤s203,加解密模块查询多个第二用户的目标公钥,针对每个第二用户,利用该第二用户的目标公钥对数据密钥进行加密,得到该第二用户对应的密钥密文。

在数据群发场景中,通过加密传输方式向用户群组传输数据,用户群组中包含有多个第二用户,即第二用户的数量为多个,在此场景下,需要每个第二用户预先生成自身的目标公钥以及目标公钥对应的私钥,目标公钥用于对数据密钥进行加密,目标公钥对应的私钥用于对密钥密文进行解密。其中,目标公钥以及目标公钥对应的私钥可利用软件或者外部硬件设备进行生成。针对每个第二用户,该第二用户可通过其对应的用户网络终端将目标公钥提供给服务器进行存储,服务器可将所获取的该第二用户的目标公钥作为用户信息的一组成部分添加至该第二用户的用户信息中。

在步骤s203中,运行在第一用户的用户网络终端上的加解密模块可从服务器所记录的多个第二用户的用户信息中查询到多个第二用户的目标公钥,而后针对每个第二用户,利用该第二用户的目标公钥,分别按照非对称加密算法对数据密钥进行加密,得到该第二用户对应的密钥密文,从而得到多个第二用户对应的多个密钥密文。由于密钥密文是利用第二用户的目标公钥对数据密钥进行加密而得到的,因此密钥密文、目标公钥以及第二用户之间具有对应关系。

步骤s204,加解密模块将多个密钥密文、多个密钥密文对应的第二用户标识与第一加密数据进行组合,生成第二加密数据,并将第二加密数据传输至包含有多个第二用户的用户群组中。

在得到了多个第二用户对应的密钥密文之后,需要记录各个密钥密文对应的第二用户的第二用户标识,第二用户标识具体为用于唯一标识第二用户身份的数据,例如第二用户id、第二用户的手机号、应用账号等。在步骤s204中加解密模块将多个密钥密文、多个密钥密文对应的第二用户标识与第一加密数据进行组合,生成第二加密数据。具体地,可采用预设数据组合策略,将多个密钥密文、多个密钥密文对应的第二用户标识与第一加密数据进行组合,从而生成第二加密数据,而后将第二加密数据传输至包含有多个第二用户的用户群组中。其中,用户群组可为聊天用户群组、邮件联系人用户群组等,本领域技术人员可根据实际需要设置用户群组,此处不做具体限定。

可选地,若原始数据为图片数据,为了方便各个第二用户进行预览,还可对图片数据进行处理,生成图片缩略图,例如可利用预设图片处理算法,对图片数据进行模糊处理或者对图片数据中的关键部分进行遮挡处理等,生成图片数据对应的图片缩略图。那么步骤s204可进一步为:加解密模块将多个密钥密文、多个密钥密文对应的第二用户标识、图片缩略图与第一加密数据进行组合,生成第二加密数据。其中,对于将多个密钥密文、多个密钥密文对应的第二用户标识与第一加密数据进行组合的处理方式、将多个密钥密文、多个密钥密文对应的第二用户标识、图片缩略图与第一加密数据进行组合的处理方式可参照图1对应的实施例一中步骤s104的介绍,在此不再赘述。

步骤s205,加解密模块接收用户群组中任一第二用户提交的针对第二加密数据的数据解密请求。

在用户群组中的各个第二用户获得第二加密数据之后,当任一第二用户想要查看第二加密数据对应的原始数据时,该第二用户可通过对第二加密数据或者第二加密数据对应的相关控件(例如图片浏览器)等进行点击、长按等方式进行触发,以向运行在第二用户的用户网络终端上的加解密模块提交针对第二加密数据的数据解密请求。那么在步骤s205中,运行在第二用户的用户网络终端上的加解密模块可以接收该第二用户提交的针对第二加密数据的数据解密请求。

步骤s206,加解密模块响应于数据解密请求,从第二加密数据中提取多个密钥密文、多个密钥密文对应的第二用户标识以及第一加密数据。

运行在第二用户的用户网络终端上的加解密模块响应于数据解密请求,对数据解密请求所针对的第二加密数据进行解析,依据第二加密数据所采用的预设数据组合策略确定具体的提取方式,按照所确定的提取方式,从第二加密数据中提取多个密钥密文、多个密钥密文对应的第二用户标识以及第一加密数据。

步骤s207,加解密模块依据多个密钥密文对应的第二用户标识,确定该第二用户对应的密钥密文。

加解密模块将发送数据解密请求的第二用户的第二用户标识与多个密钥密文对应的第二用户标识进行匹配,将相匹配的第二用户标识对应的密钥密文确定为该第二用户对应的密钥密文。

步骤s208,加解密模块获取该第二用户的目标公钥对应的私钥,并利用私钥对密钥密文进行解密,得到数据密钥。

由于该第二用户对应的密钥密文是利用该第二用户的目标公钥,按照非对称加密算法对数据密钥进行加密得到的,那么可利用该第二用户的目标公钥对应的私钥对该第二用户对应的密钥密文进行解密,从而得到数据密钥。具体地,若该私钥存储于用户网络终端或者加解密模块中,那么加解密模块直接按预设的方法获取到本地存储的私钥;若该私钥存储于外部硬件设备,那么运行在用户网络终端上的加解密模块可将密钥密文提交给外部硬件设备,由外部硬件设备直接利用所存储的该第二用户的目标公钥对应的私钥对密钥密文进行解密,得到数据密钥,并将数据密钥返回给加解密模块;若第二用户公开的目标公钥为派生公钥,同时还公开该公钥对应的派生因子,该因子与第二用户标识一样保存在第二加密数据中,加解密模块可以利用根密钥,按预设的算法由派生因子生成目标公钥及其对应的私钥;若外部硬件设备只保存有根密钥,并未存储该私钥,那么外部硬件设备可利用从第二加密数据中提取到的派生因子生成目标公钥对应的私钥,而后将所生成的私钥提交给加解密模块,或利用所生成的私钥对密钥密文进行解密,得到数据密钥,并将数据密钥返回给加解密模块。

步骤s209,加解密模块利用数据密钥对第一加密数据进行解密,得到原始数据。

根据本实施例提供的数据加解密方法,利用用户群组中多个第二用户的目标公钥分别对用于加密原始数据的数据密钥进行加密得到多个第二用户对应的密钥密文,而后将多个密钥密文、多个密钥密文对应的第二用户标识与加密后的原始数据进行组合,得到最终的用于传输至用户群组的加密数据,使得用户群组中的任一第二用户能够方便地从中确定自身对应的密钥密文,并利用自身目标公钥对应的私钥一步步地完成对加密数据的解密而获得对应的原始数据,从而不仅便捷地通过加密传输方式完成了数据群发,用户群组中的任一第二用户也能够方便地对加密数据进行解密,而且并未存储和/或传输数据密钥的明文,增加了数据密钥被他人获取的难度,以防原始数据轻易地被他人恶意获取,有效地提高了数据安全性。

在本发明中,对于第二用户的目标公钥以及目标公钥对应的私钥的生成,可利用软件或者外部硬件设备来完成,下面通过实施例三对利用软件来生成目标公钥及其对应的私钥的一种具体密钥派生方法进行详细介绍,但本领域技术人员应该理解的是,实施例三的密钥派生方法可由加解密模块或者外部硬件设备进行执行,以完成对目标公钥及其对应的私钥的生成处理。

图3示出了根据本发明实施例三的数据加解密方法中的密钥派生方法的流程示意图,如图3所示,该方法包括如下步骤:

步骤s301,加解密模块或者外部硬件设备接收第二用户提交的密钥生成请求,响应于密钥生成请求,生成第二用户的主密钥对。

其中,当第二用户首次启动加解密模块或者外部硬件设备时,需要由加解密模块或者外部硬件设备随机生成一个随机数,该随机数当做第二用户的主私钥,再根据预设的算法,计算得到主私钥对应的主公钥,从而完成主密钥对的生成。在步骤s301中,加解密模块或者外部硬件设备接收第二用户提交的密钥生成请求,响应于密钥生成请求,生成第二用户的主密钥对。具体地,随机生成一个随机数作为第二用户的主私钥,再根据预设的算法,计算得到主私钥对应的主公钥。

步骤s302,利用主密钥对和第一派生因子,生成二级密钥对。

本领域技术人员可根据实际需要对第一派生因子和后续使用的第二派生因子的具体内容进行设置,例如,可将第一派生因子设置为应用有本发明提供的数据加解密方法的应用程序的应用名称等,将第二派生因子设置为当前日期等。具体地,在步骤s302中,可利用主密钥对中的主私钥对第一派生因子进行加密,得到对应的密文,然后利用预设的算法对该密文进行处理,得到二级密钥对中的私钥,利用二级密钥对中的私钥根据预设的算法可运算出二级密钥对中的公钥,从而完成对二级密钥对的生成处理。

步骤s303,利用二级密钥对中的私钥和第二派生因子,生成三级密钥对。

具体地,可利用二级密钥对中的私钥对第二派生因子进行加密,得到对应的密文,然后利用预设的算法对该密文进行处理,得到三级密钥对中的私钥,利用三级密钥对中的私钥根据预设的算法可运算出三级密钥对中的公钥,从而完成对三级密钥对的生成处理。

步骤s304,将三级密钥对中的公钥确定为第二用户的目标公钥,将三级密钥对中的私钥确定为第二用户的目标公钥对应的私钥。

在完成了三级密钥对的生成之后,可将三级密钥对中的公钥确定为第二用户的目标公钥,将三级密钥对中的私钥确定为第二用户的目标公钥对应的私钥。

根据本实施例提供的密钥派生方法,采用三级密钥对中的公钥和私钥分别作为第二用户的目标公钥和目标公钥对应的私钥,有效地增加了目标公钥对应的私钥的生成复杂度,增加了目标公钥对应的私钥被他人反编译的难度,以防第二加密数据轻易地被他人破解,增加了原始数据被他人恶意获取的难度,有效地提高了数据安全性。

图4示出了根据本发明实施例四的数据加解密装置的结构框图,该装置可设置于运行在用户网络终端上的加解密模块中。如图4所示,该装置包括:接收模块410、加密模块420和处理模块430。

接收模块410,用于接收第一用户提交的针对待处理的原始数据的数据加密存储请求和/或数据加密传输请求。

加密模块420,用于响应于数据加密存储请求和/或数据加密传输请求,随机生成数据密钥,并利用数据密钥对原始数据进行加密,得到第一加密数据;查询第二用户的目标公钥,利用目标公钥对数据密钥进行加密,得到第二用户对应的密钥密文;将密钥密文与第一加密数据进行组合,生成第二加密数据。

处理模块430,用于存储第二加密数据和/或将第二加密数据传输至第二用户。

可选地,接收模块410进一步用于:接收第二用户提交的针对第二加密数据的数据解密请求。该装置还包括解密模块440。解密模块440用于:响应于数据解密请求,从第二加密数据中提取密钥密文和第一加密数据;获取第二用户的目标公钥对应的私钥,并利用私钥对密钥密文进行解密,得到数据密钥;利用数据密钥对第一加密数据进行解密,得到原始数据。若该私钥存储于外部硬件设备,那么解密模块440进一步用于:将密钥密文提交给外部硬件设备,由外部硬件设备利用存储的第二用户的目标公钥对应的私钥对密钥密文进行解密,得到数据密钥。外部硬件设备在得到了数据密钥之后,将数据密钥返回给解密模块440,由解密模块440利用数据密钥对第一加密数据进行解密,得到原始数据。

可选地,当第二用户的数量为多个时,加密模块420进一步用于:针对每个第二用户,利用该第二用户的目标公钥对数据密钥进行加密,得到该第二用户对应的密钥密文;将多个密钥密文、多个密钥密文对应的第二用户标识与第一加密数据进行组合,生成第二加密数据。那么处理模块430进一步用于:将第二加密数据传输至包含有多个第二用户的用户群组中。

可选地,接收模块410进一步用于:接收用户群组中任一第二用户提交的针对第二加密数据的数据解密请求。解密模块440进一步用于:响应于数据解密请求,从第二加密数据中提取多个密钥密文、多个密钥密文对应的第二用户标识以及第一加密数据;依据多个密钥密文对应的第二用户标识,确定该第二用户对应的密钥密文;获取该第二用户的目标公钥对应的私钥,并利用私钥对密钥密文进行解密,得到数据密钥;利用数据密钥对第一加密数据进行解密,得到原始数据。若该私钥存储于外部硬件设备,那么解密模块440进一步用于:将密钥密文提交给外部硬件设备,由外部硬件设备利用存储的该第二用户的目标公钥对应的私钥对密钥密文进行解密,得到数据密钥。外部硬件设备在得到了数据密钥之后,将数据密钥返回给解密模块440,由解密模块440利用数据密钥对第一加密数据进行解密,得到原始数据。

可选地,接收模块410进一步用于:接收第二用户提交的密钥生成请求。该装置还可包括密钥派生模块450。密钥派生模块450用于:响应于密钥生成请求,生成第二用户的主密钥对;利用主密钥对和第一派生因子,生成二级密钥对;利用二级密钥对中的私钥和第二派生因子,生成三级密钥对;将三级密钥对中的公钥确定为第二用户的目标公钥,将三级密钥对中的私钥确定为第二用户的目标公钥对应的私钥。

可选地,目标公钥以及目标公钥对应的私钥是利用软件或者外部硬件设备生成的,其中,外部硬件设备包括:终端加密卡、终端安全设备和终端密码装置。

可选地,加密模块420进一步用于:利用数据密钥,按照对称加密算法对原始数据进行加密,得到第一加密数据。

可选地,加密模块420进一步用于:利用目标公钥,按照非对称加密算法对数据密钥进行加密,得到第二用户对应的密钥密文。

可选地,加密模块420进一步用于:若原始数据为图片数据,则对图片数据进行处理,生成图片缩略图;将密钥密文、图片缩略图与第一加密数据进行组合,生成第二加密数据。

根据本实施例提供的数据加解密装置,利用第二用户的目标公钥对用于加密原始数据的数据密钥进行加密而后与加密后的原始数据进行组合,得到最终的用于存储或传输至第二用户的加密数据,使得第二用户能够方便地利用自身目标公钥对应的私钥一步步地完成对加密数据的解密而获得对应的原始数据,从而不仅便捷地通过加密存储或加密传输方式保证了数据安全,第二用户也能够方便地对加密数据进行解密,而且并未存储和/或传输数据密钥的明文,增加了数据密钥被他人获取的难度,以防原始数据轻易地被他人恶意获取,有效地提高了数据安全性。

本发明还提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,可执行指令可执行上述任意方法实施例中的数据加解密方法。

图5示出了根据本发明实施例五的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图5所示,该计算设备可以包括:处理器(processor)502、通信接口(communicationsinterface)504、存储器(memory)506、以及通信总线508。

其中:

处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。

通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器502,用于执行程序510,具体可以执行上述数据加解密方法实施例中的相关步骤。

具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。

处理器502可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

存储器506,用于存放程序510。存储器506可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

程序510具体可以用于使得处理器502执行上述任意方法实施例中的数据加解密方法。程序510中各步骤的具体实现可以参见上述数据加解密实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

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