数据加密、解密、密钥请求处理的方法和装置及系统与流程

文档序号:12730604阅读:650来源:国知局
数据加密、解密、密钥请求处理的方法和装置及系统与流程

本申请涉及互联网领域,具体而言,涉及一种数据加密、解密、密钥请求处理的方法和装置及系统。



背景技术:

大型平台(如网络交易平台)每天都会产生大量的敏感数据(如订单数据等),这些敏感数据会通过数据开放平台,开放给众多的第三方应用(比如订单处理、客户管理、物流和商家等)。在通过数据开放平台将这些敏感数据开放给第三方应用时,若没有好的加密方式,这些敏感数据将面临巨大的泄漏风险。

现有技术中提供了一些应用于网络、主机、应用维度的安全技术手段以降低数据被非法窃取的风险,但是无法彻底解决问题。如现有技术中的:(1)通道加密方式,该方式使用临时协商的密钥对传输内容做动态加解密(如https连接中使用的加解密方式),当密文到达端口后就被解密,通讯结束后密钥就被丢弃。这类加密只能解决通信过程中的防窃听,无法保护机器中生存期较长(如需保存的数据)的敏感数据。(2)数据库加解密方式,该方案在硬件读写层增加了加解密保护,但是对数据的使用者是透明的。通过该方案可以防止物理存储被盗(如硬盘被盗)引起的信息泄露,但是无法解决云应用环境主机或应用被入侵导致的数据泄漏。另外,现有技术中的加密方式,均将密钥存在加解密终端的本地,一旦终端的信息被盗,密钥也就泄露了。

针对上述采用现有技术中加密方式敏感数据的泄露风险高的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种数据加密、解密、密钥请求处理的方法和装置及系统,以至少解决加密方式敏感数据的泄露风险高的技术问题。

根据本申请实施例的一个方面,提供了一种数据加密的方法,该方法包括:在获取待加密数据之后,终端生成用于请求加密密钥的加密密钥请求,并将加密密钥请求发送至密钥服务器;接收密钥服务器基于加密密钥请求返回的响应信息,其中,响应 信息中至少包括:加密密钥和加密密钥对应的算法类型;利用加密密钥和算法类型对待加密数据加密,得到密文数据。

根据本申请实施例的另一方面,还提供了一种数据解密的方法,该方法包括:终端获取用于解密待解密数据的解密请求,其中,待解密数据为包括密文数据和密钥版本的加密结果;对待解密数据进行解析处理,得到密文数据和密钥版本;生成携带有密钥版本的解密密钥请求,并将解密密钥请求发送至密钥服务器,其中,解密密钥请求用于密钥服务器查找与密钥版本对应的解密密钥和解密密钥的算法类型;接收密钥服务器返回的解密密钥和解密密钥的算法类型;根据密钥服务器返回的解密密钥和解密密钥的算法类型解密密文数据,得到解密结果。

根据本申请实施例的另一方面,还提供了一种密钥请求的处理方法,该方法包括:接收终端发送的用于获取密钥的密钥请求,其中,密钥请求包括加密密钥请求和解密密钥请求;若密钥请求为加密密钥请求,则从数据库中读取最新版本的加密密钥和加密密钥的算法类型,基于加密密钥和加密密钥的算法类型返回至终端;若密钥请求为解密密钥请求,则从解密密钥请求中获取密钥版本,从数据库中读取与密钥版本对应的解密密钥和解密密钥的算法类型,将解密密钥和解密密钥的算法类型返回至终端。

根据本申请实施例的另一方面,还提供了一种数据加解密的系统,该系统包括:第一终端,用于在获取待加密数据之后,生成用于请求加密密钥的加密密钥请求,并将加密密钥请求发送至密钥服务器;密钥服务器,基于加密密钥请求生成响应信息,并将响应信息返回至第一终端,其中,响应信息中至少包括:加密密钥和加密密钥对应的算法类型,其中,第一终端还用于利用加密密钥和算法类型对待加密数据加密,得到密文数据。

根据本申请实施例的另一方面,还提供了一种数据加密的装置,该装置包括:第一生成单元,用于在获取待加密数据之后,终端生成用于请求加密密钥的加密密钥请求,并将加密密钥请求发送至密钥服务器;第一接收单元,用于接收密钥服务器基于加密密钥请求返回的响应信息,其中,响应信息中至少包括:加密密钥和加密密钥对应的算法类型;加密单元,用于利用加密密钥和算法类型对待加密数据加密,得到密文数据。

根据本申请实施例的另一方面,还提供了一种数据解密的装置,该装置包括:获取单元,用于终端获取用于解密待解密数据的解密请求,其中,待解密数据为包括密文数据和密钥版本的加密结果;解析单元,用于对待解密数据进行解析处理,得到密文数据和密钥版本;生成单元,用于生成携带有密钥版本的解密密钥请求,并将解密密钥请求发送至密钥服务器,其中,解密密钥请求用于密钥服务器查找与密钥版本对 应的解密密钥和解密密钥的算法类型;接收单元,用于接收密钥服务器返回的解密密钥和解密密钥的算法类型;解密单元,用于根据密钥服务器返回的解密密钥和解密密钥的算法类型解密密文数据,得到解密结果。

根据本申请实施例的另一方面,还提供了一种密钥请求的处理装置,该装置包括:接收单元,用于接收终端发送的用于获取密钥的密钥请求,其中,密钥请求包括加密密钥请求和解密密钥请求;加密处理单元,用于若密钥请求为加密密钥请求,则从数据库中读取最新版本的加密密钥和加密密钥的算法类型,基于加密密钥和加密密钥的算法类型返回至终端;解密处理单元,用于若密钥请求为解密密钥请求,则从解密密钥请求中获取密钥版本,从数据库中读取与密钥版本对应的解密密钥和解密密钥的算法类型,将解密密钥和解密密钥的算法类型返回至终端。

采用上述实施例,将密钥统一保存在密钥服务器上,由密钥服务器负责密钥的安全存储和分发,在需对数据进行加密时,终端向服务器请求密钥,服务器基于该请求在线向终端配发密钥和密钥算法,该方案中无需各个终端在本地记录密钥,这样即便是终端的本地信息被窃取,密钥也不会被破解;在上述方案中,密钥服务器在线动态配发密钥相关信息,而不是使用固定密钥、固定算法,增加了破解难度;另外,在上述实施例中只要获取到待加密数据即可加密,也即可以在数据传输之前就已经加密,而不是在传输端口才加密,这样即便终端本地被攻击,也可以保证数据的安全。通过上述实施例,解决了现有技术中的加密方式敏感数据的泄露风险高的问题,提高了加密密钥和待加密数据的安全。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据现有技术的一种终端内部结构的示意图;

图2是根据本申请实施例的一种可选的数据加密方法的流程图;

图3是根据本申请实施例的一种可选的加密版本和密钥对应关系的示意图;

图4是根据本申请实施例的一种可选的数据解密方法的流程图;

图5是根据本申请实施例的一种可选的密钥请求的处理方法的流程图;

图6是根据本申请实施例的另一种可选的密钥请求的处理方法的原理框图;

图7是根据本申请实施例的另一种可选的数据加密方法的原理框图;

图8是根据本申请实施例的另一种可选的数据解密方法的原理框图;

图9是根据本申请实施例的数据加解密的系统的示意图;

图10是根据本申请实施例的一种可选地数据加解密的系统的示意图;

图11是根据本申请实施例的数据加密装置的示意图;

图12是根据本申请实施例的数据解密装置的示意图;

图13是根据本申请实施例的一种可选的网络环境示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本申请实施例,还提供了一种数据加密的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本申请实施例的一种数据加密的方法的计算机终端的硬件结构框图。

如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据加密的方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本申请提供了如图2所示的数据加密的方法。图2是根据本申请实施例的数据加密的方法的流程图。

如图2所示该方法包括如下步骤:

步骤S202:在获取待加密数据之后,终端生成用于请求加密密钥的加密密钥请求,并将加密密钥请求发送至密钥服务器。

该密钥服务器的安全等级比较高,如可通过专门的杀毒、防火墙策略对该密钥服务器进行防护,以使得该密钥服务器的安全等级较高。将密钥保存在安全等级较高的服务器的安全中心上(而不是保存在服务器的硬盘上),可以使得密钥更安全。

步骤S204:接收密钥服务器基于加密密钥请求返回的响应信息,其中,响应信息中至少包括:加密密钥和加密密钥对应的算法类型。

步骤S206:利用加密密钥和算法类型对待加密数据加密,得到密文数据。

采用上述实施例,将密钥统一保存在密钥服务器上,由密钥服务器负责密钥的安全存储和分发,在需对数据进行加密时,终端向服务器请求密钥,服务器基于该请求在线向终端配发密钥和密钥算法,该方案中无需各个终端在本地记录密钥,这样即便是终端的本地信息被窃取,密钥也不会被破解;在上述方案中,密钥服务器在线动态配发密钥相关信息,而不是使用固定密钥、固定算法,增加了破解难度;另外,在上述实施例中只要获取到待加密数据即可加密,也即可以在数据传输之前就已经加密,而不是在传输端口才加密,这样即便终端本地被攻击,也可以保证数据的安全。通过上述实施例,解决了现有技术中的加密方式敏感数据的泄露风险高的问题,提高了加密密钥和待加密数据的安全。

可选地,响应信息中还可以包括加密密钥的密钥版本。

如图2所示,在得到密文数据之后,该实施例可以包括步骤S208和步骤S210。

具体地,步骤S208:将密文数据和加密密钥的密钥版本作为待加密数据的加密结果;

步骤S210:输出待加密数据的加密结果。

上述实施例中的密钥服务器上保存有所有版本的密钥和密钥对应的算法类型;其中的待加密数据可以是:任意需加密的数据,如网络交易平台上的订单数据、已经存储在数据库或磁盘中的数据以及各种第三方应用程序保留和/或生成的数据等。

需要说明的是,本申请上述实施例可以作为一个独立的应用程序,也可以作为一个加密插件安装在终端的应用程序上,如安装在第三方应用程序上;并且,上述实施例可以因应用场景的不同而确定待加密数据中的敏感数据,对该待加密数据全部或部分进行加密,如仅加密待加密数据中的敏感数据。

其中,敏感数据为:记录有若不当使用或未经授权被人接触或修改会不利于国家利益或联邦政府计划的实行或不利于个人依法享有的个人隐私权的所有信息的数据。

如,对于订单数据来说,可以确定加密订单数据中的交易对象的姓名、身份证号、家庭地址等信息为敏感信息,在对该订单加密时仅加密这些加密信息,可以将整个订单信息都加密;对于公司机密文件来说,可能该机密文件全部都被确定为敏感信息。

本申请对待加密数据的形式和上述实施例的应用场景也不做限定,如数据形式可以为数据流和数据库等。

可选地,若上述实施例应用在从源头订阅和传输加密数据的场景中,信息发放平台(如网络交易平台)在获取到信息订阅请求(如下载信息的请求)之后,确定该被 订阅的信息为待加密数据,信息发放平台从密钥服务器(如加密中心)获得密钥,加密被订阅信息中的敏感数据,然后传输给信息处理端(如发出订阅请求的终端),信息处理端在需要时对敏感数据解密。

可选地,若上述实施例应用在自行加解密在已经在数据库/磁盘上的数据的应用场景中,数据库/磁盘所运行的终端从密钥服务器获得密钥后,可以对需要保存在数据库和磁盘上的数据加解密。

下面以网络交易平台上的订单数据为例详述本申请上述实施例:

若交易对象A为提供虚拟服务或虚拟货物的交易对象(如商家),在一段时间内(如一天)通过网络交易平台上可以产生多个交易对象B(如买家)与交易对象A的订单,则交易对象A可以通过第三方应用程序归类整理这些订单,如,结算应用。交易对象A可以通过该结算应用调用网络交易平台上的订单信息,网络加密平台在接收到该调用订单信息得到请求之后,确定该订单信息为待加密数据,并确定待加密的订单中敏感信息(数据)为订单的买家身份信息。网络交易平台生成加密密钥请求,密钥服务器接收到该加密密钥请求之后获取加密密钥、加密密钥的算法类型以及加密密钥的密钥版本,基于该三个信息生成响应信息,将该响应信息返回至网络交易平台,网络交易平台接收到响应信息之后,基于加密密钥和算法类型对待加密数据中的敏感信息进行加密,得到密文数据,该加密插件可以将该密文数据和密钥版本进行信息拼接,得到加密结果,并输出该订单的加密结果,网络交易平台在得到加密结果之后,将该订单的加密结果发送至交易对象A的安装有第三方应用(如结算应用)的终端。

根据本申请的上述实施例,在需对加密结果进行解密时,方法还可以包括:对加密结果进行解析处理,得到密文数据和密钥版本;生成携带有密钥版本的解密密钥请求,并将解密密钥请求发送至密钥服务器,其中,解密密钥请求用于密钥服务器查找与密钥版本对应的解密密钥和解密密钥的算法类型;根据密钥服务器返回的解密密钥和解密密钥的算法类型解密密文数据,得到解密结果。

在上述实施例中,在需要对加密结果(即待解密数据)进行解密时,需要解密的终端对该加密结果进行解析,解析出两个部分:密文数据和密钥版本。该需要解密的终端基于该密钥版本生成解密密钥请求,即,生成携带有密钥版本的解密密钥请求,将该解密密钥请求发送至密钥服务器,密钥服务器接收到该解密密钥请求之后,从数据库中查找与该密钥版本对应的解密密钥和该解密密钥的算法类型,并将该解密密钥和解密密钥的算法类型携带在解密密钥请求的响应信息中,该发送解密密钥氢气肚饿终端接收到该响应信息之后,利用解密密钥和解密密钥的算法类型解密密文数据,得到明文数据(即解密结果),解密成功。

通过上述实施例,由于在加密时,在加密结果中携带了密文版本,并且将密钥都存储在密钥服务器上,因此,在解密时,通过密钥版本可以从密钥服务器上述获取版本正确的解密密钥。在该实施例中,即便是“加密结果”(即待解密数据)的加密密钥的版本很低,也可以直接从密钥服务器上读到正确的解密密钥,而如果将密钥存在终端本地由于版本过低,可能已经丢弃从而无法解密;而上述方案,则不存在现有技术中的问题,本申请的方案可以兼容多种版本的密钥。

在上述实施例中,为了使过去的密文仍然有能够被解密的能力,我们在加密结果中带上了若干字节的“版本标记”(即上文的密钥版本),而密钥管理中心(即上述的密钥服务器)会保存所有版本的密钥,当请求方需要解密的旧版本密文时,可以向密钥管理中心请求对应旧密钥,这样就解决了密钥变换的时候,新旧版本密文的使用衔接问题。

在一个可选的实施例中,在将密文数据和加密密钥的密钥版本作为待加密数据的加密结果之后,对加密结果进行编码处理,以将加密结果编码为可读的信息;并将编码后的加密结果作为待加密数据的加密结果。

其中,上述实施例中对待加密数据进行加密得到的密文数据为二进制密文,该密文数据中可能会有乱码或者其他无法识别的信息,将该加密结果进行编码后,编码后的加密结果都是可读、可打印的,用户也可以通过肉眼识别这些信息。

在上述实施例中,在终端需解密加密结果(实质上该加密结果为编码后的加密结果)时,先对其进行解码得到解码后的加密结果,然后对解码后的加密结果进行解码。

在本申请的上述实施例中,在接收密钥服务器基于加密密钥请求返回的响应信息之前,方法还可以包括:密钥服务器从数据库中读取最新版本的加密密钥,基于加密密钥、加密密钥的算法类型以及加密密钥的密钥版本生成响应信息。

具体地,在读取加密密钥时,读取的是最新版本的加密密钥,由于在本申请的方案中,密钥由密钥服务器统一管理,该密钥服务器在每间隔一段时间,更新一次密钥,如图3所示,密钥N对应密文版本N,密钥N+1对应密文版本N+1;密钥N-1对应密文版本N-1,相对来说该图中的密钥N-1、密钥N以及密钥N+1的密钥泄露风险依次变小。在上述实施例中,密钥生成的时间越早,安全性越低,通过及时变更密钥,保证密钥的安全性;并且在加密时,读取最新版本的加密密钥(安全性相对较高的加密密钥),可以进一步保证加密的安全性。

需要进一步说明的是,加密密钥请求中还携带有生成该加密密钥请求的应用程序的身份信息(如身份标识、或验证码等),密钥服务器在接收到该加密密钥请求之后, 先对其进行身份验证,若该加密密钥请求验证成功,则密钥服务器从数据库中读取最新版本的加密密钥,并读取加密密钥的算法类型以及密钥版本,将这三个信息返回给服务器。

可选地,在接收密钥服务器基于加密密钥请求返回的响应信息之后,方法还包括:将加密密钥、加密密钥的算法类型以及加密密钥的密钥版本在终端的内存中缓存预设时间段。

在上述实施例中,终端在获取加密密钥、加密密钥的算法类型以及加密密钥的密钥版本之后将其缓存在终端的内存中,而不是将其缓存在缓存区,缓存在内存中,可以加大密钥被破解的难度。

具体地,获取加密密钥、加密密钥的算法类型以及加密密钥的密钥版本之后将其缓存在终端的内存中一段时间(可以为两个小时),该存储时间段可以小于密钥服务器上加密密钥的更新时间段,这样可以保证终端上保存的加密密钥都是最新的密钥。

为了保证获取到最新版本的加密密钥的信息,并且减少终端和服务器的处理事件数量,终端生成用于请求加密密钥的加密密钥请求可以包括:获取终端的内存中最后一次缓存加密密钥的缓存时间;计算缓存时间与终端的当前系统时间的时间差;若时间差超过预设时间阈值,则生成加密密钥请求;若时间差未超过预设时间阈值,则读取缓存的加密密钥、加密密钥的算法类型以及加密密钥的密钥版本。

进一步地,终端生成用于请求加密密钥的加密密钥请求可以包括:判断终端的内存中是否缓存有加密密钥;若终端的内存中缓存有加密密钥,则读取缓存的加密密钥、加密密钥的算法类型以及加密密钥的密钥版本;若终端的内存中未缓存加密密钥,则生成加密密钥请求。

在上述实施例中,由于终端的内存中缓存有最新版本的加密密钥,而加密密钥的版本更新也需要时间,也即,终端无需在每次需加密数据时均向加密服务器请求加密密钥,如果终端的内存中缓存有加密密钥则直接读取缓存的加密信息,如果终端的内存中没有缓存加密密钥,则生成加密密钥请求。通过该实施例,终端无需每次加密时,都生成加密请求向服务器请求密钥,不但减小了终端的计算量,也减小了服务器的负担。

可选地,若终端的内存中缓存有加密密钥,则读取缓存的加密密钥、加密密钥的算法类型以及加密密钥的密钥版本可以包括:获取终端的内存中最后一次缓存加密密钥的缓存时间;计算缓存时间与终端的当前系统时间的时间差;若时间差超过预设时间阈值,则生成加密密钥请求;若时间差未超过预设时间阈值,则读取缓存的加密密 钥、加密密钥的算法类型以及加密密钥的密钥版本。

由于缓存在终端的内存中的加密密钥的信息,每隔一段时间更新一次,若更新失败,则可以通过上述的缓存时间的判断机制,识别出更新失败的情况,即若缓存时间与终端的当前系统时间的时间差超过预设时间阈值,则认为,当前缓存的加密密钥的信息不是最新的加密密钥,则生成加密密钥请求。

通过上述实施例,可以识别终端的内存中的加密密钥是否更新失败,并在更新失败的情况下,向密钥服务器请求加密密钥,从而可以保证加密时使用最新的加密密钥。

进一步地,利用加密密钥和算法类型对待加密数据加密,得到密文数据可以包括:调取算法类型所指向的加密算法;利用加密密钥,根据加密算法计算待加密数据的二进制密文,将二进制密文作为密文数据。

具体地,服务器不仅可以返回加密密钥的算法类型,终端接收到该加密密钥的算法类型之后调用该算法类型对应的加密算法,使用该利用加密密钥,根据加密算法计算待加密数据的二进制密文,得到待加密数据的密文数据。

在本申请的上述实施例中,将加密密钥的值、加密密钥的算法类型以及加密密钥的密钥版本作为加密密钥的属性,通过密钥服务器同一管理该密钥的属性信息,并且通过标准开发工具包SDK(即Software Development Kit)封装实现上述实施例的代码,用户在加密时,只需调用该SKD即可实现对待加密数据的加密,并且该SDK工具包中预存了各种加密算法,在接收到服务器的算法类型之后,从该工具包中直接调用对应的加密算法即可对待加密数据加密。

进一步地,通过标准开发工具包SDK实现本申请上述实施例,可以兼容多个数据发放平台,从网络交易平台流出的数据可以直接调用密钥管理中心(如密钥服务器)的密钥,从而从传输源头就加密;另一方面,如果第三方应用程序还接入了别的平台的数据,也可以直接调用SDK来请求密钥和加解密,使得多个平台的数据都可以互相兼容,并且各个平台兼容的成本很小,仅需调用SDK即可实现。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

实施例2

在上述图1所示的运行环境下,本申请还提供了如图4所示的数据解密的方法。图4是根据本申请实施例的数据解密的方法的流程图。

如图4所示该方法包括如下步骤:

步骤S402:终端获取用于解密待解密数据的解密请求,其中,待解密数据为包括密文数据和密钥版本的加密结果。

步骤S404:对待解密数据进行解析处理,得到密文数据和密钥版本。

步骤S406:生成携带有密钥版本的解密密钥请求,并将解密密钥请求发送至密钥服务器,其中,解密密钥请求用于密钥服务器查找与密钥版本对应的解密密钥和解密密钥的算法类型。

步骤S408:接收密钥服务器返回的解密密钥和解密密钥的算法类型。

步骤S410:根据密钥服务器返回的解密密钥和解密密钥的算法类型解密密文数据,得到解密结果。

采用上述实施例,将密钥统一保存在密钥服务器上,由密钥服务器负责密钥的安全存储和分发,在需对数据进行解密时,终端基于密钥版本向服务器请求密钥,服务器基于该请求在线向终端配发密钥和密钥算法,该方案中无需各个终端在本地记录密钥,这样即便是终端的本地信息被窃取,密钥也不会被破解;在上述方案中,密钥服务器在线动态配发密钥相关信息,而不是使用固定密钥、固定算法,增加了破解难度;另外,在上述实施例中在需要解密时才解密,也即可以在数据传输之后仍保持加密的状态,而不是在传输端口就解密,这样即便终端本地被攻击,也可以保证数据的安全。通过上述实施例,解决了现有技术中的解密方式敏感数据的泄露风险高的问题,提高了解密密钥和待解密数据的安全。

本申请实施例对解密的场景不做限定,如:数据流解密、数据库解密、在本地保留和管理的经上述实施例一的方案加密得到的加密结果的解密。

在上述实施例中,在需要对加密结果(即待解密数据)进行解密时,需要解密的终端对该加密结果进行解析,解析出两个部分:密文数据和密钥版本。该需要解密的终端基于该密钥版本生成解密密钥请求,即,生成携带有密钥版本的解密密钥请求,将该解密密钥请求发送至密钥服务器,密钥服务器接收到该解密密钥请求之后,从数据库中查找与该密钥版本对应的解密密钥和该解密密钥的算法类型,并将该解密密钥和解密密钥的算法类型携带在解密密钥请求的响应信息中,该发送解密密钥氢气肚饿 终端接收到该响应信息之后,利用解密密钥和解密密钥的算法类型解密密文数据,得到明文数据(即解密结果),解密成功。

通过上述实施例,由于在加密时,在加密结果中携带了密文版本,并且将密钥都存储在密钥服务器上,因此,在解密时,通过密钥版本可以从密钥服务器上述获取版本正确的解密密钥。在该实施例中,即便是“加密结果”(即待解密数据)的加密密钥的版本很低,也可以直接从密钥服务器上读到正确的解密密钥,而如果将密钥存在终端本地由于版本过低,可能已经丢弃从而无法解密;而上述方案,则不存在现有技术中的问题,本申请的方案可以兼容多种版本的密钥。

在上述实施例中,为了使过去的密文仍然有能够被解密的能力,我们在加密结果中带上了若干字节的“版本标记”(即上文的密钥版本),而密钥管理中心(即上述的密钥服务器)会保存所有版本的密钥,当请求方需要解密的旧版本密文时,可以向密钥管理中心请求对应旧密钥,这样就解决了密钥变换的时候,新旧版本密文的使用衔接问题。

在一个可选的实施例中,在将密文数据和加密密钥的密钥版本作为待加密数据的加密结果之后,对加密结果进行编码处理,以将加密结果编码为可读的信息;并将编码后的加密结果作为待加密数据的加密结果。

其中,上述实施例中对待加密数据进行加密得到的密文数据为二进制密文,该密文数据中可能会有乱码或者其他无法识别的信息,将该加密结果进行编码后,编码后的加密结果都是可读、可打印的,用户也可以通过肉眼识别这些信息。

在上述实施例中,在终端需解密加密结果(实质上该加密结果为编码后的加密结果)时,先对其进行解码得到解码后的加密结果,然后对解码后的加密结果进行解码。

可选地,在接收密钥服务器返回的解密密钥和解密密钥的算法类型之后,方法还可以包括:将解密密钥、解密密钥的算法类型以及密钥版本在终端的内存中缓存预设时间段。

上述实施例中,将解密密钥、解密密钥的算法类型以及密钥版本在终端的内存中缓存预设时间段(如2h),可以在需重复使用该版本的密钥时,无需向服务器请求,直接可以从内存中直接读取,节省了处理时间和降低了处理复杂度。

具体地,终端获取用于解密待解密数据的解密请求可以包括:判断终端的内存中是否缓存有与密钥版本对应的解密密钥;若终端的内存中缓存有与密钥版本对应的解密密钥,则读取缓存的解密密钥、解密密钥的算法类型以及解密密钥的密钥版本;若终端的内存中未缓存与密钥版本对应的解密密钥,则生成解密密钥请求。

通过上述实施例,可以在生成解密密钥请求之前,检测终端的内存中是否存在该版本的解密密钥,若有,则无需向服务器请求,直接读取,节省了处理时间和降低了处理复杂度。

在上述实施例中根据密钥服务器返回的解密密钥和解密密钥的算法类型解密密文数据,得到解密结果可以包括:调取算法类型所指向的解密算法;利用解密密钥,根据解密算法解密密文数据,得到解密结果。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

实施例3

在上述图1所示的运行环境下,本申请还提供了如图5所示的密钥请求的处理方法。图5是根据本申请实施例的密钥请求的处理方法的流程图。

如图5所示,该实施例包括如下步骤:

步骤S502:接收终端发送的用于获取密钥的密钥请求,其中,密钥请求包括加密密钥请求和解密密钥请求。

步骤S504:若密钥请求为加密密钥请求,则从数据库中读取最新版本的加密密钥和加密密钥的算法类型,基于加密密钥和加密密钥的算法类型返回至终端。

步骤S506:若密钥请求为解密密钥请求,则从解密密钥请求中获取密钥版本,从数据库中读取与密钥版本对应的解密密钥和解密密钥的算法类型,将解密密钥和解密密钥的算法类型返回至终端。

采用上述实施例,将密钥统一保存在密钥服务器上,由密钥服务器负责密钥的安全存储和分发,在需对数据进行加解密时,终端向服务器请求密钥,服务器基于该请求在线向终端配发密钥和密钥算法,该方案中无需各个终端在本地记录密钥,这样即便是终端的本地信息被窃取,密钥也不会被破解;在上述方案中,密钥服务器在线动态配发密钥相关信息,而不是使用固定密钥、固定算法,增加了破解难度。通过上述实施例,解决了现有技术中的加密方式敏感数据的泄露风险高的问题,提高了加密密钥和待加密数据的安全。

上述实施例中,可以在从数据库中读取最新版本的加密密钥和加密密钥的算法类 型的同时,读取该加密密钥的密钥版本;以及在基于加密密钥和加密密钥的算法类型返回至终端的同时,将加密密钥的密钥版本返回至该终端,以供第一终端生成密文数据后,将加密密钥和密文数据作为待加密数据的加密结果。

具体地,从数据库中读取加密密钥或解密密钥可以包括:对终端进行身份验证,若终端的身份验证通过,则从数据库中读取加密密钥或解密密钥;若终端的身份验证未通过、或密钥服务器的数据库中不存在与终端对应的加密密钥或解密密钥,则生成错误提示信息,并将错误提示信息返回至终端。

需要进一步说明的是,密钥请求中还携带有生成该密钥请求的应用程序的身份信息(如身份标识、或验证码等),密钥服务器在接收到该密钥请求之后,先对其进行身份验证,若该密钥请求验证成功,则密钥服务器从数据库中读取对应的密钥,并读取密钥的算法类型以及密钥版本,将这三个信息返回给服务器。

下面结合附图6至图8以及上述实施例一和实施例二详述本申请实施例:

由于本申请中,将密钥在密钥服务器上统一管理,使用密钥服务器在线配发密钥,无需终端自己记录历史密钥,也无需对旧密文做迁移。

具体地,密钥服务器可以维护:密钥拥有者的信息、密钥版本以及密钥信息(包括密钥算法和密钥内容),其中的密钥拥有者的信息即为有权限访问密钥服务器的访问者的信息,密钥内容可以为密钥的值。

如图6所示,在终端需加密或解密时,均需生成密钥请求向服务器请求密钥,如图6所示的请求包中可以包括:终端的身份信息和/或密钥版本,其中,加密密钥请求的请求包中没有密钥版本。密钥服务器接收到密钥请求之后,检索密钥:若密钥请求为加密密钥请求,则检索最新版本的密钥;若密钥请求为解密密钥请求,则检索与密钥版本对应的密钥,并就将密钥、密钥算法类型及密钥的版本等信息返回至终端。

若在上述的过程中,终端身份验证未通过、密钥服务器未检索到对应的密钥或者密钥请求的格式有误,密钥服务器生成错误提示信息,将该错误提示信息返回给终端,终端接收到该信息之后,可以在终端的屏幕上显示该错误提示信息。

下面结合图7详述本申请上述实施例一中的加密过程:

第一终端的第三方应用程序在获取到待加密数据(即明文数据)之后,调用SDK生成加密密钥请求,自动向密钥服务器发送该加密密钥请求以请求最新版本的密钥,密钥服务器返回密钥的值(即加密密钥)、密钥对应的算法类型以及密钥的版本。SDK根据加密密钥以及算法类型加密明文数据,得到二进制密文,并将二进制密文和密钥 的版本共同组成加密结果最终输出。

下面结合图8详述本申请上述实施例二中的解密过程:

第二终端上安装的第三方应用程序对密文(如上述的加密结果)进行解密时,调用SDK首先把加密结果解析成二进制密文部分和密钥版本部分。然后向密钥服务器请求对应版本的密钥,密钥服务器会返回密钥的值,以及密钥对应的算法类型。SDK根据密钥以及算法类型对二进制密文进行解密,得到最终的解密结果。

通过上述实施例,使用安全中心(即密钥服务器)在线配发密钥,就可以避免以上这些方案的缺点,无需自己记录历史密钥,也无须对过去的旧密文做迁移;带版本密文,用来标识对应密钥版本,可以解密任意版本的密文;并且各个版本密钥以及密钥算法由安全密钥管理中心管理,保证密钥安全。

本申请的上述实施例,可以解决因系统或应用被攻击导致的敏感信息泄漏问题,具体地可以实现:

(1)同时支持两种使用方式:从源头订阅和传输加密数据;信息发放平台从加密中心获得密钥,加密订单中的敏感数据,然后传输给信息处理端。信息处理段在需要时对敏感数据解密;仅使用加解密服务,自行加解密在已经在数据库/磁盘上的数据。信息处理中心获得密钥后,可以对需要保存在数据库和磁盘上的数据加解密。

(2)加解密密钥的安全存储、管理和分发。由于加密本身是为了防止本地信息被窃取,因此密钥储存在本地就是不合适的。在本申请方案中,密钥不会保存在服务器硬盘上,而将由安全等级比较高的安全中心管理所有密钥,并提供“密钥获取”接口,而服务器通过身份验证来动态获得密钥,保证了密钥的安全和及时更新。

(3)版本策略。为了使过去的密文仍然有能够被解密的能力,我们在密文中带上了若干字节的“版本标记”(即密钥版本),而密钥管理中心会保存所有版本的密钥。当请求方需要解密的旧版本密文时,可以向密钥管理中心请求对应旧密钥,密钥可以兼容多版本的密文。

(4)密钥和加解密算法管理作为密钥的“属性”,通过安全中心的管理,以及SDK的包装,使得这些实现细节不需要密钥的使用方关心,用户操作简单便捷安全。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块 并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

实施例4

根据本申请实施例,还提供了一种数据加解密的系统,如图9所示,该系统包括:第一终端91和密钥服务器93。

其中,第一终端,用于在获取待加密数据之后,生成用于请求加密密钥的加密密钥请求,并将加密密钥请求发送至密钥服务器,还用于利用加密密钥和算法类型对待加密数据加密,得到密文数据。可选地,第一终端还可以将密文数据和加密密钥的密钥版本作为待加密数据的加密结果,输出该待加密数据的加密结果。

密钥服务器,基于加密密钥请求生成响应信息,并将响应信息返回至第一终端,其中,响应信息中至少包括:加密密钥和加密密钥对应的算法类型。可选地,响应信息中还可以包括加密密钥的密钥版本。

采用上述实施例,将密钥统一保存在密钥服务器上,由密钥服务器负责密钥的安全存储和分发,在需对数据进行加密时,终端向服务器请求密钥,服务器基于该请求在线向终端配发密钥和密钥算法,该方案中无需各个终端在本地记录密钥,这样即便是终端的本地信息被窃取,密钥也不会被破解;在上述方案中,密钥服务器在线动态配发密钥相关信息,而不是使用固定密钥、固定算法,增加了破解难度;另外,在上述实施例中只要获取到待加密数据即可加密,也即可以在数据传输之前就已经加密,而不是在传输端口才加密,这样即便终端本地被攻击,也可以保证数据的安全。通过上述实施例,解决了现有技术中的加密方式敏感数据的泄露风险高的问题,提高了加密密钥和待加密数据的安全。

上述实施例中的密钥服务器上保存有所有版本的密钥和密钥对应的算法类型;其中的待加密数据可以是:任意需加密的数据,如网络交易平台上的订单数据、已经存储在数据库或磁盘中的数据以及各种第三方应用程序保留和/或生成的数据等。

需要说明的是,本申请上述实施例可以作为一个独立的应用程序,也可以作为一 个加密插件安装在终端的应用程序上,如安装在第三方应用程序上;并且,上述实施例可以因应用场景的不同而确定待加密数据中的敏感数据,对该待加密数据全部或部分进行加密,如仅加密待加密数据中的敏感数据。

其中,敏感数据为:记录有若不当使用或未经授权被人接触或修改会不利于国家利益或联邦政府计划的实行或不利于个人依法享有的个人隐私权的所有信息的数据。

如,对于订单数据来说,可以确定加密订单数据中的交易对象的姓名、身份证号、家庭地址等信息为敏感信息,在对该订单加密时仅加密这些加密信息,可以将整个订单信息都加密;对于公司机密文件来说,可能该机密文件全部都被确定为敏感信息。

本申请对待加密数据的形式和上述实施例的应用场景也不做限定,如数据形式可以为数据流和数据库等。

可选地,若上述实施例应用在从源头订阅和传输加密数据的场景中,信息发放平台(如网络交易平台)在获取到信息订阅请求(如下载信息的请求)之后,确定该被订阅的信息为待加密数据,信息发放平台从密钥服务器(如加密中心)获得密钥,加密被订阅信息中的敏感数据,然后传输给信息处理端(如发出订阅请求的终端),信息处理端在需要时对敏感数据解密。

可选地,若上述实施例应用在自行加解密在已经在数据库/磁盘上的数据的应用场景中,数据库/磁盘所运行的终端从密钥服务器获得密钥后,可以对需要保存在数据库和磁盘上的数据加解密。

具体地,系统还可以包括:如图9所示的第二终端95,用于在需对加密结果进行解密时,对加密结果进行解析处理,得到密文数据和密钥版本,生成携带有密钥版本的解密密钥请求,并将解密密钥请求发送至密钥服务器;密钥服务器,用于查找与密钥版本对应的解密密钥和解密密钥的算法类型,并将解密密钥和解密密钥的算法类型返回至第二终端,其中,第二终端还用于根据解密密钥和解密密钥的算法类型解密密文数据,得到解密结果。

在上述实施例中,在需要对加密结果(即待解密数据)进行解密时,需要解密的终端对该加密结果进行解析,解析出两个部分:密文数据和密钥版本。该需要解密的终端基于该密钥版本生成解密密钥请求,即,生成携带有密钥版本的解密密钥请求,将该解密密钥请求发送至密钥服务器,密钥服务器接收到该解密密钥请求之后,从数据库中查找与该密钥版本对应的解密密钥和该解密密钥的算法类型,并将该解密密钥和解密密钥的算法类型携带在解密密钥请求的响应信息中,该发送解密密钥氢气肚饿终端接收到该响应信息之后,利用解密密钥和解密密钥的算法类型解密密文数据,得 到明文数据(即解密结果),解密成功。

通过上述实施例,由于在加密时,在加密结果中携带了密文版本,并且将密钥都存储在密钥服务器上,因此,在解密时,通过密钥版本可以从密钥服务器上述获取版本正确的解密密钥。在该实施例中,即便是“加密结果”(即待解密数据)的加密密钥的版本很低,也可以直接从密钥服务器上读到正确的解密密钥,而如果将密钥存在终端本地由于版本过低,可能已经丢弃从而无法解密;而上述方案,则不存在现有技术中的问题,本申请的方案可以兼容多种版本的密钥。

在上述实施例中,为了使过去的密文仍然有能够被解密的能力,我们在加密结果中带上了若干字节的“版本标记”(即上文的密钥版本),而密钥管理中心(即上述的密钥服务器)会保存所有版本的密钥,当请求方需要解密的旧版本密文时,可以向密钥管理中心请求对应旧密钥,这样就解决了密钥变换的时候,新旧版本密文的使用衔接问题。

在一个可选的实施例中,在将密文数据和加密密钥的密钥版本作为待加密数据的加密结果之后,对加密结果进行编码处理,以将加密结果编码为可读的信息;并将编码后的加密结果作为待加密数据的加密结果。

其中,上述实施例中对待加密数据进行加密得到的密文数据为二进制密文,该密文数据中可能会有乱码或者其他无法识别的信息,将该加密结果进行编码后,编码后的加密结果都是可读、可打印的,用户也可以通过肉眼识别这些信息。

在上述实施例中,在终端需解密加密结果(实质上该加密结果为编码后的加密结果)时,先对其进行解码得到解码后的加密结果,然后对解码后的加密结果进行解码。

如图10所示,密钥服务器93上的密钥管理中心的安全能力较强,数据处理端97(包括上述的第一终端和第二终端),安全能力较弱,可能发生密钥泄露,需要定期更换密钥,通过上述实施例中的方案,通过密钥服务器更新密钥,数据处理端无需更新密钥,只需在有需求的时候想服务器请求密钥,从系统角度考虑,无需多个数据处理端更新密钥的事件,提高了整个系统事件的处理性能。

该实施例中的具体加密和解密的实现方法与上述实施例中的实现方法一致,在此不再赘述。

实施例5

根据本申请的上述实施例,本申请提供了如图11所示的数据加密的装置。图11是根据本申请实施例的数据加密的装置的示意图。

如图11所示该装置包括:第一生成单元110、第一接收单元111以及加密单元112。

其中,第一生成单元,用于在获取待加密数据之后,终端生成用于请求加密密钥的加密密钥请求,并将加密密钥请求发送至密钥服务器;

第一接收单元,用于接收密钥服务器基于加密密钥请求返回的响应信息,其中,响应信息中至少包括:加密密钥和加密密钥对应的算法类型;

加密单元,用于利用加密密钥和算法类型对待加密数据加密,得到密文数据。

采用上述实施例,将密钥统一保存在密钥服务器上,由密钥服务器负责密钥的安全存储和分发,在需对数据进行加密时,终端向服务器请求密钥,服务器基于该请求在线向终端配发密钥和密钥算法,该方案中无需各个终端在本地记录密钥,这样即便是终端的本地信息被窃取,密钥也不会被破解;在上述方案中,密钥服务器在线动态配发密钥相关信息,而不是使用固定密钥、固定算法,增加了破解难度;另外,在上述实施例中只要获取到待加密数据即可加密,也即可以在数据传输之前就已经加密,而不是在传输端口才加密,这样即便终端本地被攻击,也可以保证数据的安全。通过上述实施例,解决了现有技术中的加密方式敏感数据的泄露风险高的问题,提高了加密密钥和待加密数据的安全。

可选地,上述响应信息中还包括:加密密钥的密钥版本,该装置还包括如图11所示的:确定单元113,用于在得到密文数据之后,将密文数据和加密密钥的密钥版本作为待加密数据的加密结果;输出单元114,用于输出待加密数据的加密结果。

上述实施例中的密钥服务器上保存有所有版本的密钥和密钥对应的算法类型;其中的待加密数据可以是:任意需加密的数据,如网络交易平台上的订单数据、已经存储在数据库或磁盘中的数据以及各种第三方应用程序保留和/或生成的数据等。

需要说明的是,本申请上述实施例可以作为一个独立的应用程序,也可以作为一个加密插件安装在终端的应用程序上,如安装在第三方应用程序上;并且,上述实施例可以因应用场景的不同而确定待加密数据中的敏感数据,对该待加密数据全部或部分进行加密,如仅加密待加密数据中的敏感数据。

可选地,装置还可以包括:如图11所示的解析单元115,用于在需对加密结果进行解密时,对加密结果进行解析处理,得到密文数据和密钥版本;第二生成单元116,用于生成携带有密钥版本的解密密钥请求,并将解密密钥请求发送至密钥服务器,其中,解密密钥请求用于密钥服务器查找与密钥版本对应的解密密钥和解密密钥的算法类型;解密单元117,用于根据密钥服务器返回的解密密钥和解密密钥的算法类型解密密文数据,得到解密结果。

在上述实施例中,在需要对加密结果(即待解密数据)进行解密时,需要解密的终端对该加密结果进行解析,解析出两个部分:密文数据和密钥版本。该需要解密的终端基于该密钥版本生成解密密钥请求,即,生成携带有密钥版本的解密密钥请求,将该解密密钥请求发送至密钥服务器,密钥服务器接收到该解密密钥请求之后,从数据库中查找与该密钥版本对应的解密密钥和该解密密钥的算法类型,并将该解密密钥和解密密钥的算法类型携带在解密密钥请求的响应信息中,该发送解密密钥氢气肚饿终端接收到该响应信息之后,利用解密密钥和解密密钥的算法类型解密密文数据,得到明文数据(即解密结果),解密成功。

通过上述实施例,由于在加密时,在加密结果中携带了密文版本,并且将密钥都存储在密钥服务器上,因此,在解密时,通过密钥版本可以从密钥服务器上述获取版本正确的解密密钥。在该实施例中,即便是“加密结果”(即待解密数据)的加密密钥的版本很低,也可以直接从密钥服务器上读到正确的解密密钥,而如果将密钥存在终端本地由于版本过低,可能已经丢弃从而无法解密;而上述方案,则不存在现有技术中的问题,本申请的方案可以兼容多种版本的密钥。

可选地,装置还可以包括:读取单元,用于在接收密钥服务器基于加密密钥请求返回的响应信息之前,密钥服务器从数据库中读取最新版本的加密密钥;第三生成单元,用于基于加密密钥、加密密钥的算法类型以及加密密钥的密钥版本生成响应信息;缓存单元,用于在接收密钥服务器基于加密密钥请求返回的响应信息之后,将加密密钥、加密密钥的算法类型以及加密密钥的密钥版本在终端的内存中缓存预设时间段。

可选地,第一生成单元求包括:获取模块,用于获取终端的内存中最后一次缓存加密密钥的缓存时间;计算模块,用于计算缓存时间与终端的当前系统时间的时间差;生成模块,用于若时间差超过预设时间阈值,则生成加密密钥请求;读取模块,用于若时间差未超过预设时间阈值,则读取缓存的加密密钥、加密密钥的算法类型以及加密密钥的密钥版本。

可选地,加密单元包括:调取模块,用于调取算法类型所指向的加密算法;密文计算单元,用于利用加密密钥,根据加密算法计算待加密数据的二进制密文,将二进制密文作为密文数据。

本申请的上述实施例,可以解决因系统或应用被攻击导致的敏感信息泄漏问题,具体地可以实现:

(1)同时支持两种使用方式:从源头订阅和传输加密数据;信息发放平台从加密中心获得密钥,加密订单中的敏感数据,然后传输给信息处理端。信息处理段在需要 时对敏感数据解密;仅使用加解密服务,自行加解密在已经在数据库/磁盘上的数据。信息处理中心获得密钥后,可以对需要保存在数据库和磁盘上的数据加解密。

(2)加解密密钥的安全存储、管理和分发。由于加密本身是为了防止本地信息被窃取,因此密钥储存在本地就是不合适的。在本申请方案中,密钥不会保存在服务器硬盘上,而将由安全等级比较高的安全中心管理所有密钥,并提供“密钥获取”接口,而服务器通过身份验证来动态获得密钥,保证了密钥的安全和及时更新。

(3)版本策略。为了使过去的密文仍然有能够被解密的能力,我们在密文中带上了若干字节的“版本标记”(即密钥版本),而密钥管理中心会保存所有版本的密钥。当请求方需要解密的旧版本密文时,可以向密钥管理中心请求对应旧密钥,密钥可以兼容多版本的密文。

(4)密钥和加解密算法管理作为密钥的“属性”,通过安全中心的管理,以及SDK的包装,使得这些实现细节不需要密钥的使用方关心,用户操作简单便捷安全。

本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。

实施例6

根据本申请的上述实施例,本申请提供了如图12所示的数据解密的装置。图12是根据本申请实施例的数据解密的装置的示意图。

如图12所示该装置包括:获取单元121、解析单元123、生成单元125、接收单元127以及解密单元129。

其中,获取单元,用于终端获取用于解密待解密数据的解密请求,其中,待解密数据为包括密文数据和密钥版本的加密结果;

解析单元,用于对待解密数据进行解析处理,得到密文数据和密钥版本;

生成单元,用于生成携带有密钥版本的解密密钥请求,并将解密密钥请求发送至密钥服务器,其中,解密密钥请求用于密钥服务器查找与密钥版本对应的解密密钥和解密密钥的算法类型;

接收单元,用于接收密钥服务器返回的解密密钥和解密密钥的算法类型;

解密单元,用于根据密钥服务器返回的解密密钥和解密密钥的算法类型解密密文 数据,得到解密结果。

采用上述实施例,将密钥统一保存在密钥服务器上,由密钥服务器负责密钥的安全存储和分发,在需对数据进行解密时,终端基于密钥版本向服务器请求密钥,服务器基于该请求在线向终端配发密钥和密钥算法,该方案中无需各个终端在本地记录密钥,这样即便是终端的本地信息被窃取,密钥也不会被破解;在上述方案中,密钥服务器在线动态配发密钥相关信息,而不是使用固定密钥、固定算法,增加了破解难度;另外,在上述实施例中在需要解密时才解密,也即可以在数据传输之后仍保持加密的状态,而不是在传输端口就解密,这样即便终端本地被攻击,也可以保证数据的安全。通过上述实施例,解决了现有技术中的解密方式敏感数据的泄露风险高的问题,提高了解密密钥和待解密数据的安全。

本申请实施例对解密的场景不做限定,如:数据流解密、数据库解密、在本地保留和管理的经上述实施例的方案加密得到的加密结果的解密。

在上述实施例中,在需要对加密结果(即待解密数据)进行解密时,需要解密的终端对该加密结果进行解析,解析出两个部分:密文数据和密钥版本。该需要解密的终端基于该密钥版本生成解密密钥请求,即,生成携带有密钥版本的解密密钥请求,将该解密密钥请求发送至密钥服务器,密钥服务器接收到该解密密钥请求之后,从数据库中查找与该密钥版本对应的解密密钥和该解密密钥的算法类型,并将该解密密钥和解密密钥的算法类型携带在解密密钥请求的响应信息中,该发送解密密钥氢气肚饿终端接收到该响应信息之后,利用解密密钥和解密密钥的算法类型解密密文数据,得到明文数据(即解密结果),解密成功。

通过上述实施例,由于在加密时,在加密结果中携带了密文版本,并且将密钥都存储在密钥服务器上,因此,在解密时,通过密钥版本可以从密钥服务器上述获取版本正确的解密密钥。在该实施例中,即便是“加密结果”(即待解密数据)的加密密钥的版本很低,也可以直接从密钥服务器上读到正确的解密密钥,而如果将密钥存在终端本地由于版本过低,可能已经丢弃从而无法解密;而上述方案,则不存在现有技术中的问题,本申请的方案可以兼容多种版本的密钥。

在上述实施例中,为了使过去的密文仍然有能够被解密的能力,我们在加密结果中带上了若干字节的“版本标记”(即上文的密钥版本),而密钥管理中心(即上述的密钥服务器)会保存所有版本的密钥,当请求方需要解密的旧版本密文时,可以向密钥管理中心请求对应旧密钥,这样就解决了密钥变换的时候,新旧版本密文的使用衔接问题。

可选地,装置还包括:缓存单元,用于在接收密钥服务器返回的解密密钥和解密密钥的算法类型之后,将解密密钥、解密密钥的算法类型以及密钥版本在终端的内存中缓存预设时间段。

可选地,生成单元包括:判断模块,用于判断终端的内存中是否缓存有与密钥版本对应的解密密钥;读取模块,用于若终端的内存中缓存有与密钥版本对应的解密密钥,则读取缓存的解密密钥、解密密钥的算法类型以及解密密钥的密钥版本;生成模块,用于若终端的内存中未缓存与密钥版本对应的解密密钥,则生成解密密钥请求。

可选地,解密单元包括:调取模块,用于调取算法类型所指向的解密算法;解密模块,用于利用解密密钥,根据解密算法解密密文数据,得到解密结果。

本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。

实施例7

本申请还提供了一种密钥请求的处理装置,该装置包括:

接收单元,用于接收终端发送的用于获取密钥的密钥请求,其中,密钥请求包括加密密钥请求和解密密钥请求;

加密处理单元,用于若密钥请求为加密密钥请求,则从数据库中读取最新版本的加密密钥和加密密钥的算法类型,基于加密密钥和加密密钥的算法类型返回至终端;

解密处理单元,用于若密钥请求为解密密钥请求,则从解密密钥请求中获取密钥版本,从数据库中读取与密钥版本对应的解密密钥和解密密钥的算法类型,将解密密钥和解密密钥的算法类型返回至终端。

采用上述实施例,将密钥统一保存在密钥服务器上,由密钥服务器负责密钥的安全存储和分发,在需对数据进行加解密时,终端向服务器请求密钥,服务器基于该请求在线向终端配发密钥和密钥算法,该方案中无需各个终端在本地记录密钥,这样即便是终端的本地信息被窃取,密钥也不会被破解;在上述方案中,密钥服务器在线动态配发密钥相关信息,而不是使用固定密钥、固定算法,增加了破解难度。通过上述实施例,解决了现有技术中的加密方式敏感数据的泄露风险高的问题,提高了加密密钥和待加密数据的安全。

上述实施例中,可以在从数据库中读取最新版本的加密密钥和加密密钥的算法类 型的同时,读取该加密密钥的密钥版本;以及在基于加密密钥和加密密钥的算法类型返回至终端的同时,将加密密钥的密钥版本返回至该终端,以供第一终端生成密文数据后,将加密密钥和密文数据作为待加密数据的加密结果。

本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。

实施例8

本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备,如图13所示的网络环境图中的终端97(即上述的信息处理端)与密钥服务器93通过网络连接。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行数据加密方法中以下步骤:

在获取待加密数据之后,终端生成用于请求加密密钥的加密密钥请求,并将加密密钥请求发送至密钥服务器;接收密钥服务器基于加密密钥请求返回的响应信息,其中,响应信息中至少包括:加密密钥和加密密钥对应的算法类型;利用加密密钥和算法类型对待加密数据加密,得到密文数据。

在本实施例中,上述计算机终端可以执行数据解密方法中以下步骤:

终端获取用于解密待解密数据的解密请求,其中,待解密数据为包括密文数据和密钥版本的加密结果;对待解密数据进行解析处理,得到密文数据和密钥版本;生成携带有密钥版本的解密密钥请求,并将解密密钥请求发送至密钥服务器,其中,解密密钥请求用于密钥服务器查找与密钥版本对应的解密密钥和解密密钥的算法类型;接收密钥服务器返回的解密密钥和解密密钥的算法类型;根据密钥服务器返回的解密密钥和解密密钥的算法类型解密密文数据,得到解密结果。

在本实施例中,上述计算机终端可以执行数据解密方法中以下步骤:

接收终端发送的用于获取密钥的密钥请求,其中,密钥请求包括加密密钥请求和解密密钥请求;若密钥请求为加密密钥请求,则从数据库中读取最新版本的加密密钥和加密密钥的算法类型,基于加密密钥和加密密钥的算法类型返回至终端;若密钥请 求为解密密钥请求,则从解密密钥请求中获取密钥版本,从数据库中读取与密钥版本对应的解密密钥和解密密钥的算法类型,将解密密钥和解密密钥的算法类型返回至终端。

采用上述实施例,将密钥统一保存在密钥服务器上,由密钥服务器负责密钥的安全存储和分发,在需对数据进行加解密时,终端向服务器请求密钥,服务器基于该请求在线向终端配发密钥和密钥算法,该方案中无需各个终端在本地记录密钥,这样即便是终端的本地信息被窃取,密钥也不会被破解;在上述方案中,密钥服务器在线动态配发密钥相关信息,而不是使用固定密钥、固定算法,增加了破解难度。通过上述实施例,解决了现有技术中的加密方式敏感数据的泄露风险高的问题,提高了加密密钥和待加密数据的安全。

本领域普通技术人员可以理解,上述图13所示的网络结构仅为示意。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

实施例9

本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

在获取待加密数据之后,终端生成用于请求加密密钥的加密密钥请求,并将加密密钥请求发送至密钥服务器;接收密钥服务器基于加密密钥请求返回的响应信息,其中,响应信息中至少包括:加密密钥和加密密钥对应的算法类型;利用加密密钥和算法类型对待加密数据加密,得到密文数据。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

终端获取用于解密待解密数据的解密请求,其中,待解密数据为包括密文数据和密钥版本的加密结果;对待解密数据进行解析处理,得到密文数据和密钥版本;生成携带有密钥版本的解密密钥请求,并将解密密钥请求发送至密钥服务器,其中,解密密钥请求用于密钥服务器查找与密钥版本对应的解密密钥和解密密钥的算法类型;接 收密钥服务器返回的解密密钥和解密密钥的算法类型;根据密钥服务器返回的解密密钥和解密密钥的算法类型解密密文数据,得到解密结果。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

接收终端发送的用于获取密钥的密钥请求,其中,密钥请求包括加密密钥请求和解密密钥请求;若密钥请求为加密密钥请求,则从数据库中读取最新版本的加密密钥和加密密钥的算法类型,基于加密密钥和加密密钥的算法类型返回至终端;若密钥请求为解密密钥请求,则从解密密钥请求中获取密钥版本,从数据库中读取与密钥版本对应的解密密钥和解密密钥的算法类型,将解密密钥和解密密钥的算法类型返回至终端。

采用上述实施例,将密钥统一保存在密钥服务器上,由密钥服务器负责密钥的安全存储和分发,在需对数据进行加解密时,终端向服务器请求密钥,服务器基于该请求在线向终端配发密钥和密钥算法,该方案中无需各个终端在本地记录密钥,这样即便是终端的本地信息被窃取,密钥也不会被破解;在上述方案中,密钥服务器在线动态配发密钥相关信息,而不是使用固定密钥、固定算法,增加了破解难度。通过上述实施例,解决了现有技术中的加密方式敏感数据的泄露风险高的问题,提高了加密密钥和待加密数据的安全。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成 的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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