具体实施方式
为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,提供了一种对数据信息进行加密以及解密的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现对数据信息进行加密以及解密的方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的对数据信息进行加密以及解密的方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的对数据信息进行加密以及解密的方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
图2是根据本实施例所述的对数据信息进行加密和解密的应用场景的示意图。参照图2所示,应用场景中一般性地包括:数据存储平台200、密钥管理平台300以及多个终端设备,例如:第一终端设备101、第二终端设备201、第三终端设备301,并且第一终端设备101、第二终端设备201、第三终端设备301的数量也可以为多个。其中,数据存储平台200可以由多个服务器搭建,为用户提供数据信息的存储以及资源下载的服务。例如:第一用户11可以利用第一终端设备101与该数据存储平台200进行交互,然后可以将数据信息(例如:word文档)上传至该数据存储平台200;第二用户21可以利用第二终端设备201与该数据存储平台200进行交互,然后可以从该数据存储平台200下载数据信息(例如:第一用户11上传的word文档)。并且,终端设备之间也可以进行数据交换,例如:第二用户21通过第二终端设备201将下载的word文档分享给第三用户31的第三终端设备301。此外,数据存储平台200可以与密钥管理平台300(例如:KMS平台)进行交互,然后从KMS平台申请密钥对,进一步地利用密钥对的加密密钥对用户(例如:第一用户11)上传的数据信息在平台侧进行加密,从而第二用户21的第二终端设备201下载的数据信息是经过加密的数据信息。并且其中,第一终端设备101、第二终端设备201以及第三终端设备301与数据存储平台200之间的交互以及数据传输可以通过设置于第一终端设备101、第二终端设备201以及第三终端设备301中的客户端程序实现,后文中不再赘述。需要说明的是,系统中的数据存储平台200、密钥管理平台300、第一终端设备101、第二终端设备201以及第三终端设备301均可适用上面所述的硬件结构。
在上述运行环境下,根据本实施例的第一个方面,提供了一种对数据信息进行加密的方法,该方法由图2中所示的数据存储平台200实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
S302:利用从密钥管理平台获取的加密密钥对第一用户的第一终端设备所发送的数据信息进行加密,生成加密文件;
S304:生成与加密密钥对应的字符串;
S306:将第一密钥映射信息发送至密钥管理平台,其中第一密钥映射信息用于描述加密密钥与字符串之间的映射关系;以及
S308:将字符串与加密文件发送至第二用户的第二终端设备。
正如背景技术中所述的,互联网个人用户及企业用户,存储在互联网平台上的资料,很难有非常好的安全存储及管理发放办法,一般互联网平台只是将资料数据存储在平台的存储空间中,仅做了下载时的用户权限,在平台侧没有做加密存储,且一旦存储的原始文件被传播后,将失去控制。
针对背景技术中存在的技术问题,当第一用户11将数据信息上传至数据存储平台200准备进行共享时,在步骤S302中,本实施例技术方案的数据存储平台200首先利用从密钥管理平台300获取的加密密钥对第一用户11的第一终端设备101所发送的数据信息进行加密,生成加密文件。在实际应用中,参考图6a所示,第一用户11可以利用第一终端设备101与数据存储平台200进行交互,进而向该数据存储平台200上传数据信息(对应于图6a的步骤1),其中数据信息例如但不限于是文档、软件、视频等资源。
在数据存储平台200接收到第一终端设备101上传的数据信息(例如:一份word文档)的情况下,数据存储平台200可以与密钥管理平台300进行交互,向密钥管理平台300发送申请密钥对的密钥获取请求(对应于图6a的步骤2),然后密钥管理平台300生成密钥对(对应于图6a的步骤3),并将密钥对中的加密密钥发送至数据存储平台200(对应于图6a中的步骤4)。在一个优选实例中该密钥管理平台300例如但不限于是KMS平台。在获取到密钥之后,数据存储平台200可以利用加密密钥对该word文档(即:数据信息)进行加密,生成加密文件(图6a步骤5)。其中需要说明的是,本方案中针对不同的数据信息从KMS平台申请不同的密钥进行加密。
然后,在步骤S304中,数据存储平台200生成与加密密钥对应的字符串(图6a步骤6)。其中,加密密钥与字符串之间是对应的,该字符串例如可以是随机生成的,并且字符串的形式可以是一串数字、一串字母或者其结合,并且生成的字符串的数量也可以是多个,此处关于字符串的形式以及数量不做具体限定。
同时数据存储平台200还生成用于描述加密密钥与字符串之间的映射关系的密钥映射信息(即第一映射密钥信息)。在一个具体实例中,数据存储平台200可以在加密密钥与字符串之间建立映射关系,并且在生成的字符串为多个的情况下,可以在加密密钥与多个字符串之间建立一对多的映射关系。然后数据存储平台200在将加密密钥与字符串建立映射关系之后生成描述该映射关系的密钥映射信息。进一步地,在步骤S306中,数据存储平台200将密钥映射信息发送至密钥管理平台300(图6a步骤7)。由于加密密钥与字符串之间存在映射关系,因此数据存储平台200可以通过字符串从密钥管理平台300获取相应的解密密钥。
最终,在第二用户21需要从数据存储平台下载第一用户11共享的word文档的情况下,在步骤S308中,数据存储平台200可以将字符串与加密文件(即:word加密文件)发送至第二用户21的第二终端设备201(图6a步骤10)。
从而,即便是第二用户21的第二终端设备201下载数据信息后,也仍然需要对加密文件进行解密时,第二用户21需要将与加密文件对应的字符串发送至数据存储平台200。数据存储平台200利用字符串从密钥管理平台300获取解密密钥并将解密密钥发送至第二终端设备201,从而第二终端设备201可以利用解密密钥对加密文件进行解密,得到最终的word文件。
通过这种方式,本方案的数据存储平台首先利用从密钥管理平台获取的加密密钥对第一用户上传的数据信息进行加密,然后生成与加密密钥对应的字符串,进一步地将密钥映射信息发送至密钥管理平台,最终将字符串与加密文件发送至第二用户的第二终端设备。因此与现有技术相比,本方案的数据存储平台可以从密钥管理平台申请密钥,然后利用密钥在平台侧对用户上传的数据信息进行加密。因此可以防止数据信息的泄露。由于第二用户下载的数据信息为加密后的加密文件,因此即便是第二用户将该加密文件泄露给其他用户,其他用户也仍然无法获得该数据信息的内容,从而可以控制数据信息的传播。此外,本方案还可以建立字符串与密钥之间的映射关系,用户在获取到加密文件之后无法直接获取解密密钥进行解密,还需要通过数据存储平台利用字符串从密钥管理平台获取解密密钥。从而第一用户以及数据存储平台可通过控制从密钥管理平台获取解密密钥的过程(例如通过授权等方式来控制获取解密密钥的权限),来控制数据信息的发放管理。从而,本实施例的方法达到了防止平台存储的数据信息泄露的技术效果,并且有利于控制数据信息的发放管理,解决了现有的数据存储和管理方法所存在的不利于对数据信息的传播进行管理和控制的技术问题。
尽管本实施例以文件的共享为例说明了本发明的加密方法,但是本方法也可以适用于其他的场景。例如利用数据存储平台200进行第一用户11与第二用户21之间的文件传输的过程中,也可以通过本实施例所述的方法对传输的文件进行加密并生成相应的加密文件和字符串。并且将密钥映射信息发送至密钥管理平台300的同时,将加密文件和字符串发送至第二用户21的终端设备201。
可选地,生成字符串的操作,包括:生成与加密密钥对应的字符串,并将字符串与加密文件进行封装,生成相应的封装文件,并且将字符串与加密文件发送至第二终端设备的操作,包括:将封装文件发送至第二终端设备。
具体地,在生成字符串的操作中,数据存储平台200首先生成字符串,然后将字符串与加密文件进行封装,得到封装文件(参见图6a步骤8),其中封装的方式不做具体限定。并且,在将字符串与加密文件发送至第二终端设备201的操作中,数据存储平台200可以将封装文件发送至第二终端设备201(图6a步骤10)。从而与直接将字符串和加密文件进行发送相比,本方案可以将加密文件和字符串进行封装,因此在发送的过程中不会直接暴露加密文件和字符串,即便是封装文件泄露或者是在传输过程中被拦截,也不会造成加密文件以及字符串的泄露,因此可以进一步地防止数据信息泄露。并且第一用户11和数据存储平台200通过对封装文件的解封装过程进行管理和控制,也有利于进一步管理和控制数据信息的传播。
可选地,将字符串与加密文件进行封装,生成封装文件的操作,包括:根据预设的压缩格式,将加密文件进行压缩,生成与加密文件对应的压缩文件;以及将字符串中的字符插入到压缩文件的指定位置,生成封装文件。
具体地,本方案在将字符串与加密文件进行封装,生成封装文件的操作中,数据存储平台200可以利用预设的文件压缩程序,将加密文件进行压缩得到压缩文件(即,压缩包),其中压缩格式例如但不限于是RAR压缩格式、zip压缩格式等,此处对于压缩格式不做具体限定。进一步地,数据存储平台200将字符串中的字符插入到压缩文件中,生成封装文件(图6a步骤10)。具体地例如数据存储平台200可以将字符串中的字符拆解开分别插入到压缩文件的不同位置处。由于该压缩文件中混入了字符串,因此正常的解压程序无法解压该封装文件,只能通过终端设备上设置的客户端程序从封装文件中抽取出字符串中的字符并解压得到加密文件和字符串。从而,进一步地保障了数据的安全性。
可选地,方法还包括:接收第一终端设备发送的将数据信息共享给第二用户的共享请求;以及响应于共享请求,向第二终端设备发送用于下载封装文件的的共享信息。并且,生成字符串,并将字符串与加密文件进行封装,生成封装文件的操作,包括:响应于共享请求,生成与加密密钥对应的字符串,并将字符串与加密文件进行封装,生成封装文件。
具体地,参见图6b示出了作为本实施例所述方法的另一个实例的流程图。参考图6b所示,第一用户11还可以对上传的数据信息进行共享。在实际操作中,第一用户11可以利用第一终端设备101向数据存储平台200发送对数据信息进行共享的共享请求(例如:向第二用户21共享上传的word文档)。在这种情况下,数据存储平台200接收第一终端设备101发送的共享数据信息的共享请求(图6b步骤6)。然后响应于共享请求,数据存储平台200向第二用户21的第二终端设备201发送共享数据信息的共享信息,从而第二用户21可以根据该共享信息下载该数据信息。
在这种情况下,参考图6b所示,数据存储平台200例如可以在接收到共享请求之后生成字符串,并且将字符串与加密文件进行封装生成封装文件(图6b步骤7~9)。从而在这种情况下,由于数据存储平台200是在接收到共享请求之后生成封装,因此发给第二终端设备201的共享信息可以用于直接下载封装文件。
可选地,该共享信息例如可以是用于下载该封装文件的共享链接,从而第二用户21只需要在第二终端设备201点击该共享链接,即可获取到封装文件,从而优化了共享信息的共享途径。
可选地,生成字符串,并将字符串与加密文件进行封装,生成封装文件的操作,包括:响应于第二终端设备发送的下载数据信息的下载请求,生成与第二用户对应的字符串,并将字符串与加密文件进行封装,生成封装文件。
具体地,参见图6c示出了作为本实施例所述方法的另一个实例的流程图。与图6a所述的流程不同的是,在该实例中,数据存储平台200在接收到第二终端设备201发送的下载数据信息的下载请求的时候(图6c步骤6),响应于该下载请求,生成与该用户对应的字符串并将字符串与加密文件进行封装,生成封装文件(参见图6c步骤7至步骤9)。因此,在图6c中所示的流程图适用于面向多个用户共享文件的情况,尤其是面向不确定的用户共享文件的情况。在这种情况下,数据存储平台200可以根据不同用户的下载请求生成与该用户对应的字符串以及封装文件。从而可以通过字符串与用户之间的对应关系,确定字符串是否被泄露。例如,当用户的终端设备发送至数据存储平台200的字符串与该用户的身份信息不能对应时,就有可能意味着该用户是非法用户,加密文件已经被转移至非法用户手中。第一用户11或者数据存储平台200可以不将解密密钥发送至该用户的终端设备。因此通过这种方式,能够有效地控制数据信息的泄露以及传播。此外,也可以通过控制字符串,从而控制不同用户对该数据信息的解密权限。
可选地,方法还包括:从第一终端设备接收对字符串设置的授权规则,其中授权规则包括以下至少一项:授权次数、授权有效期、授权有效性;以及根据授权规则,对加密密钥与字符串之间的映射关系进行设置。
具体地,第一用户11还可以对数据存储平台200生成的字符串的授权规则进行设置。在实际操作中,数据存储平台200可以从第一终端设备101接收对字符串设置的授权规则,其中授权规则包括以下至少一项:授权次数,即每个字符串可以获取数据信息的次数,例如:授权次数为3次,则只能通过该字符串获取三次数据信息;授权有效期,即:字符串的有效时间,例如:授权有效期为一个月,则在一个月之内可以使用该字符串获取数据信息;授权有效性,即字符串是否有效,只有在授权有效性有效的情况下,才可以利用字符串获取数据信息。进一步地,数据存储平台200根据授权规则,对加密密钥与字符串之间的映射关系进行设置。从而通过这种方式,上传数据的用户可以通过简单的方式控制数据信息的传播情况。
可选地,利用从密钥管理平台获取的加密密钥对第一用户的第一终端设备所发送的数据信息进行加密,还包括:从第一终端设备接收第一用户的生物特征信息;以及利用生物特征信息对数据信息进行加密。
具体地,对于机密性较高只能由第一用户11下载的数据信息,数据存储平台200在对该数据信息进行加密的过程中,除了利用从密钥管理平台300获取的加密密钥进行加密外,数据存储平台200还可以从第一终端设备101接收第一用户11的生物特征信息,例如:人脸信息、虹膜信息等。进一步地,利用生物特征信息对数据信息进行加密。从而,使得平台存储的信息更加安全,不易泄露。
可选地,该方法还包括:从第二终端设备接收从封装文件中获取加密文件的解封装请求;响应于解封装请求,向第一终端设备发送与解封装请求对应的提示信息;从第一终端设备接收解封装授权指令,解封装授权指令用于指示同意第二终端设备进行解封装操作;以及响应于解封装授权指令,向第二终端设备发送解封装确认信息。
具体地,图7示出了第二用户21在获取数据信息(即封装文件)后解密数据信息的流程示意图。参考图7所示,数据存储平台200向第二终端设备201发送封装文件之后(对应图7步骤1),在第二终端设备201对封装文件进行解封装的情况下,会向该数据存储平台200发送解封装请求(图7步骤2)。在这种情况下,数据存储平台200从第二终端设备接201收从封装文件中获取加密文件的解封装请求。然后,数据存储平台200响应于解封装请求,向第一终端设备101发送与解封装请求对应的提示信息(图7步骤3),例如:通过短信或者邮件的方式向第一终端设备101发送提示信息,从而第一用户11可以随时了解封装文件的解封情况。在第一用户11接收到该提示信息之后,可以判断是否对解封装操作进行授权。在确定授权的情况下,第一用户11可以利用第一终端设备101向数据存储平台200发送解封装授权指令(图7步骤4)。从而数据存储平台200可以从第一终端设备101接收解封装授权指令,然后响应于解封装授权指令,向第二终端设备发送解封装确认信息(图7步骤5)。进而,第二终端设备201可以对封装文件进行解封装。从而通过这种方式,在解封装之前,需要第一用户进行授权,因此可以进一步地保障数据信息的安全,并且控制数据信息的传播。
可选地,该方法还包括:从第二终端设备接收对加密文件进行解密的第一解密请求和字符串;响应于第一解密请求,向第一终端设备发送与第一解密请求对应的提示信息;从第一终端设备接收解密授权指令,解密授权指令用于指示同意第二终端设备进行解密操作;以及响应于解密授权指令,根据字符串从密钥管理平台获取解密密钥并将解密密钥发送至第二终端设备。
具体地,参考图7所示,在第二终端设备201对加密文件进行解密的时候,可以向数据存储平台200发送对加密文件进行解密的第一解密请求和字符串(图7步骤7)。在这种情况下,数据存储平台200可以从第二终端设备201接收对加密文件进行解密的第一解密请求和字符串。然后,数据存储平台200响应于第一解密请求,向第一终端设备101发送与第一解密请求对应的提示信息(图7步骤8),例如:通过短信或者邮件的方式向第一终端设备101发送提示信息,从而第一用户11可以随时了解加密文件的解密情况。在第一用户11接收到该提示信息之后,可以判断是否对解密操作进行授权。在确定授权的情况下,第一用户11可以利用第一终端设备101向数据存储平台200发送解密授权指令(图7步骤9)。因此,数据存储平台200可以从第一终端设备101接收该解密授权指令,然后响应于解密授权指令,根据字符串从密钥管理平台300获取解密密钥并将解密密钥发送至第二终端设备201。在实际操作中,数据存储平台200可以将字符串发送至密钥管理平台300(图7步骤10),然后密钥管理平台300可以根据密钥映射信息确定与字符串对应的解密密钥(图7步骤11),并将解密密钥发送至数据存储平台200(图7步骤12)。最终,数据存储平台200将解密密钥发送至第二终端设备201(图7步骤13)。从而通过这种方式,在解密之前,需要第一用户进行授权,因此可以进一步地保障数据信息不会被泄露,并且控制数据信息的传播。
可选地,该方法还包括:从第三终端设备接收对加密文件进行解密的第二解密请求和字符串;响应于第二解密请求,向第一终端设备发送与第二解密请求对应的提示信息;从第一终端设备接收字符串撤销指令,字符串撤销指令用于指示撤销字符串;响应于字符串撤销指令,撤销字符串与加密密钥之间的映射关系;以及将第二密钥映射信息发送至密钥管理平台,其中第二密钥映射信息用于指示撤销加密密钥与字符串之间的映射关系。
具体地,参考图2所示,有时候在用户之间也会进行数据信息的传播,例如:第二用户21可以将加密文件和字符串发送(或者泄露)给第三用户31。第三用户31需要对加密文件进行解密,因此第三用户31可以利用第三终端设备301向数据存储平台200发送解密请求(对应于第二解密请求)和字符串。在这种情况下,数据存储平台200可以从第三终端设备301接收对加密文件进行解密的第二解密请求和字符串。然后,数据存储平台200响应于第二解密请求,向第一终端设备101发送与第二解密请求对应的提示信息,例如:通过短信或者邮件的方式向第一终端设备101发送提示信息,从而第一用户11可以随时了解加密文件的解密情况。在第一用户11接收到该提示信息之后,可以判断是否对解密操作进行授权。由于该加密文件是第二用户21泄露给第三用户31的,因此第一用户11需要防止第三用户31对加密文件进行解密,其中第一用户11可以通过撤销该字符串的方式防止第三用户31进行解密。在这种情况下,第一用户11可以利用第一终端设备101向数据存储平台200发送字符串撤销指令。从而,数据存储平台200可以从第一终端设备101接收字符串撤销指令,然后响应于字符串撤销指令,撤销该字符串与加密密钥之间的映射关系。例如,可以删除该字符串,或者删除字符串与加密密钥之间的映射关系。并且在此基础上数据存储平台200更新密钥映射信息,并将更新后的密钥映射信息(即第二密钥映射信息),从而更新后的密钥映射信息用于指示该该字符串与加密密钥之间的映射关系已经撤销。然后数据存储平台200将该密钥映射信息发送至密钥管理平台300进行更新。从而通过这种方式,即便是在字符串泄露的情况下,第一用户也可以废除(或者回收)字符串。因此,未经授权的用户即使获取到该字符串也无法获取到数据信息。
此外,根据本实施例的第二个方面,提供了一种对数据信息进行解密的方法,该方法由图2中所示的数据存储平台200实现。图4示出了该方法的流程示意图,参考图4所示,该方法包括:
S402:将加密文件以及相应的字符串发送至第二用户的第二终端设备,其中加密文件是通过利用从密钥管理平台获取的加密密钥对数据信息进行加密而生成的,并且字符串与加密密钥对应;
S404:接收第二终端设备发送的对加密文件进行解密的解密请求和字符串;以及
S406:响应于解密请求,根据字符串从密钥管理平台获取与加密密钥对应的解密密钥;以及
S408:将解密密钥发送至第二终端设备。
具体地,参考图7所示,数据存储平台200首先将加密文件以及相应的字符串发送至第二用户的第二终端设备201(即图7步骤1),其中加密文件是通过利用从密钥管理平台300获取的加密密钥对数据信息进行加密而生成的,并且字符串与加密密钥对应。进一步地,数据存储平台200接收第二终端设备201发送的对加密文件进行解密的解密请求和字符串(即图7步骤7)。然后,数据存储平台200响应于解密请求,根据字符串从密钥管理平台300获取与加密密钥对应的解密密钥(即图7步骤8~12)。最终,数据存储平台200将解密密钥发送至第二终端设备(即图7步骤13)。
此外,关于本实施例的第二个方面所述的方法的更多内容,参考本实施例的第一个方面中结合图7所述的内容,此处不再赘述。
此外,根据本实施例的第三个方面,提供了一种数据信息获取的方法,该方法由图2中所示的第二终端设备201实现。图5示出了该方法的流程示意图,参考图5所示,该方法包括:
S502:从数据存储平台获取加密文件以及相应的字符串,其中加密文件是数据存储平台利用从密钥管理平台获取的加密密钥对数据信息进行加密而生成的,并且字符串与加密密钥对应;
S504:向数据存储平台发送对加密文件进行解密的解密请求和字符串;
S506:从数据存储平台获取与加密密钥对应的解密密钥;以及
S508:利用解密密钥对加密文件进行解密。
具体地,参考图7所示,在第一用户11通过第一终端设备101将数据信息在数据存储平台200进行共享之后,第二终端设备201可以从数据存储平台200获取加密文件和字符串(图7步骤1)。然后第二用户21可以通过第二终端设备201向数据存储平台200发送发送解密请求和字符串(图7步骤7)。在这种情况下,数据存储平台200可以根据该字符串从密钥管理平台200获取对应的解密密钥(图7步骤8~12)并发送至第二终端设备201。从而,第二终端设备201可以从数据存储平台200接收解密密钥(图7步骤13),并利用解密密钥对加密文件进行解密,获得最终的数据信息。
因此与现有技术相比,在本方案中由于第二用户下载的数据信息为加密后的加密文件,因此即便是第二用户将该加密文件泄露给其他用户,其他用户也仍然无法获得该数据信息的内容,从而可以控制数据信息的传播。此外,本方案还可以建立字符串与密钥之间的映射关系,用户在获取到加密文件之后无法直接获取解密密钥进行解密,还需要通过数据存储平台利用字符串从密钥管理平台获取解密密钥。从而上传数据信息的第一用户以及数据存储平台可通过控制从密钥管理平台获取解密密钥的过程(例如通过授权等方式来控制获取解密密钥的权限),来控制数据信息的发放管理。从而,本实施例的方法达到了防止平台存储的数据信息泄露的技术效果,并且有利于控制数据信息的发放管理,解决了现有的数据存储和管理方法所存在的不利于对数据信息的传播进行管理和控制的技术问题。
可选地,从数据存储平台获取加密文件以及相应的字符串的操作,包括从数据存储平台获取封装文件,其中封装文件是通过对加密文件和字符串进行封装而生成的,并且方法还包括:向数据存储平台发送从封装文件中获取加密文件的解封装请求;从数据存储平台接收与解封装请求对应的解封装确认信息;以及响应于解封装确认信息,对封装文件进行解封装操作,获取加密文件和字符串。
具体地,参考图7所示,在本实施例所述的技术方案中,第二终端设备201在是以获取封装文件的形式获取加密文件以及相应字符串的(图7步骤1)。因此第二用户21在打开数据信息前,需要先对封装文件进行解封装。具体参考图7步骤2~4所示,用户21可以通过第二终端设备21向数据存储平台发送解封装请求以便从封装文件中获取加密文件。然后数据存储平台200在获得第一用户11通过第一终端设备101的确认之后,向第二用户21的第二终端设备201发送解封装确认信息(图7步骤5)。然后第二终端设备201在从数据存储平台200接收到解封装确认信息后,对封装文件进行解封装,获取加密文件以及字符串(图7步骤6)。
从而,本方案可以将加密文件和字符串进行封装,因此在发送的过程中不会直接暴露加密文件和字符串,即便是封装文件泄露或者是在传输过程中被拦截,也不会造成加密文件以及字符串的泄露,因此可以进一步地防止数据信息泄露。并且第一用户11和数据存储平台200通过对封装文件的解封装过程进行管理和控制,也有利于进一步管理和控制数据信息的传播。
可选地,对封装文件进行解封装操作,获取加密文件和字符串的操作,包括:抽取封装文件中的指定位置的字符,并形成字符串;以及根据预定的压缩格式,对抽取指定位置的字符之后的封装文件进行解压缩,获取加密文件。
如上所述,在生成封装文件的操作中,数据存储平台200可以利用预设的文件压缩程序,将加密文件进行压缩得到压缩文件(即,压缩包),然后数据存储平台200将字符串中的字符插入到压缩文件中,生成封装文件。因此正常的解压程序无法解压该封装文件,只能通过终端设备上设置的客户端程序从封装文件中抽取出字符串中的字符并解压得到加密文件和字符串。从而,进一步地保障了数据的安全性。
此外,参考图1所示,根据本实施例的第四个方面,提供了一种存储介质。所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
从而根据本实施例,本方案的数据存储平台首先利用从密钥管理平台获取的加密密钥对第一用户上传的数据信息进行加密,然后生成与加密密钥对应的字符串,进一步地将密钥映射信息发送至密钥管理平台,最终将字符串与加密文件发送至第二用户的第二终端设备。因此与现有技术相比,本方案的数据存储平台可以从密钥管理平台申请密钥,然后利用密钥在平台侧对用户上传的数据信息进行加密。因此可以防止数据信息的泄露。由于第二用户下载的数据信息为加密后的加密文件,因此即便是第二用户将该加密文件泄露给其他用户,其他用户也仍然无法获得该数据信息的内容,从而可以控制数据信息的传播。此外,本方案还可以建立字符串与密钥之间的映射关系,用户在获取到加密文件之后无法直接获取解密密钥进行解密,还需要通过数据存储平台利用字符串从密钥管理平台获取解密密钥。从而第一用户以及数据存储平台可通过控制从密钥管理平台获取解密密钥的过程(例如通过授权等方式来控制获取解密密钥的权限),来控制数据信息的发放管理。
此外,本实施例通过对加密文件和字符串进行封装生成封装文件,在第二用户下载数据信息时,将封装文件发送至第二用户。从而,第一用户和数据存储平台通过控制对封装文件解封装的过程,防止数据信息的泄露并加强了对数据信息传播的控制和管理。
从而,本实施例的方法达到了防止平台存储的数据信息泄露的技术效果,并且有利于控制数据信息的发放管理,解决了现有的数据存储和管理方法所存在的不利于对数据信息的传播进行管理和控制的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图8示出了根据本实施例的第一个方面所述的对数据信息进行加密的装置800,该装置800与根据实施例1的第一个方面所述的方法相对应。参考图8所示,该装置800包括:加密模块810,用于利用从密钥管理平台获取的加密密钥对第一用户的第一终端设备所发送的数据信息进行加密,生成加密文件字符串生成模块820,用于生成与加密密钥对应的字符串;密钥映射模块830,用于将第一密钥映射信息发送至密钥管理平台,其中第一密钥映射信息用于描述加密密钥与字符串之间的映射关系;以及加密文件发送模块840,用于将字符串与加密文件发送至第二用户的第二终端设备。
可选地,字符串生成模块820,包括:文件封装子模块,用于生成与加密密钥对应的字符串,并将字符串与加密文件进行封装,生成相应的封装文件,并且加密文件发送模块840,包括:封装文件发送子模块,用于将封装文件发送至第二终端设备。
可选地,文件封装子模块,包括:文件压缩单元,用于根据预定的压缩格式,将加密文件进行压缩,生成与加密文件对应的压缩文件;以及封装单元,用于将字符串中的字符插入到压缩文件的指定位置,生成封装文件。
可选地,装置800还包括:共享请求接收模块,用于接收第一终端设备发送的将数据信息共享给第二用户的共享请求;以及共享信息发送模块,用于响应于共享请求,向第二终端设备发送用于下载封装文件的的共享信息,并且文件封装子模块,包括:共享响应封装单元,用于响应于共享请求,生成与加密密钥对应的字符串,并将字符串与加密文件进行封装,生成封装文件。
可选地,文件封装子模块,包括:下载响应封装单元,用于响应于第二终端设备发送的下载数据信息的下载请求,生成与第二用户对应的字符串,并将字符串与加密文件进行封装,生成封装文件。
可选地,装置800还包括:授权规则接收模块,用于从第一终端设备接收对字符串设置的授权规则,其中授权规则包括以下至少一项:授权次数、授权有效期、授权有效性;以及映射关系设置模块,用于根据授权规则,对加密密钥与字符串之间的映射关系进行设置。
可选地,加密模块810,包括:生物信息接收子模块,用于从第一终端设备接收第一用户的生物特征信息;以及加密子模块,用于利用生物特征信息对数据信息进行加密。
可选地,装置800还包括:解封装请求接收模块,用于从第二终端设备接收从封装文件中获取加密文件的解封装请求;解封装请求响应模块,用于响应于解封装请求,向第一终端设备发送与解封装请求对应的提示信息;解封装授权指令接收模块,用于从第一终端设备接收解封装授权指令,解封装授权指令用于指示同意第二终端设备进行解封装操作;以及解封装确认信息发送模块,用于响应于解封装授权指令,向第二终端设备发送解封装确认信息。
可选地,装置800还包括:第一解密请求接收模块,用于从第二终端设备接收对加密文件进行解密的第一解密请求和字符串;密钥获取模块,用于响应于第一解密请求,根据字符串从密钥管理平台获取与加密密钥对应的解密密钥;以及解密密钥发送模块,用于将解密密钥发送至第二终端设备。
可选地,密钥获取模块,包括:第一解密请求提示子模块,用于向第一终端设备发送与第一解密请求对应的提示信息;解密授权指令接收子模块,用于从第一终端设备接收解密授权指令,解密授权指令用于指示同意第二终端设备进行解密操作;以及密钥获取子模块,用于响应于解密授权指令,根据字符串从密钥管理平台获取解密密钥。
可选地,装置800还包括:第二解密请求接收子模块,用于从第三终端设备接收对加密文件进行解密的第二解密请求和字符串;第二解密请求响应子模块,用于响应于第二解密请求,向第一终端设备发送与第二解密请求对应的提示信息;撤销指令接收模块,用于从第一终端设备接收字符串撤销指令,字符串撤销指令用于指示撤销字符串;撤销指令响应模块,用于响应于字符串撤销指令,撤销字符串与加密密钥之间的映射关系;以及密钥映射信息发送子模块,用于将第二密钥映射信息发送至密钥管理平台,其中第二密钥映射信息用于指示撤销加密密钥与字符串之间的映射关系。
此外,图9示出了根据本实施例的第二个方面所述的对数据信息进行解密的装置900,该装置900与根据实施例1的第二个方面所述的方法相对应。参考图9所示,该装置900包括:数据发送模块910,用于将加密文件以及相应的字符串发送至第二用户的第二终端设备,其中加密文件是通过利用从密钥管理平台获取的加密密钥对数据信息进行加密而生成的,并且字符串与加密密钥对应;解密请求接收模块920,用于接收第二终端设备发送的对加密文件进行解密的解密请求和字符串;解密密钥获取模块930,用于响应于解密请求,根据字符串从密钥管理平台获取与加密密钥对应的解密密钥;以及解密密钥发送模块940,用于将解密密钥发送至第二终端设备。
此外,图10示出了根据本实施例的第三个方面所述的数据信息获取的装置1000,该装置1000与根据实施例1的第三个方面所述的方法相对应。参考图9所示,该装置1000包括:加密文件获取模块1010,用于从数据存储平台获取加密文件以及相应的字符串,其中加密文件是数据存储平台利用从密钥管理平台获取的加密密钥对数据信息进行加密而生成的,并且字符串与加密密钥对应;解密请求发送模块1020,用于向数据存储平台发送对加密文件进行解密的解密请求和字符串;密钥接收模块1030,用于从数据存储平台获取与加密密钥对应的解密密钥;以及解密模块1040,用于利用解密密钥对加密文件进行解密。
可选地,加密文件获取模块1010,包括:封装文件获取子模块,用于从数据存储平台获取封装文件,其中封装文件是通过对加密文件和字符串进行封装而生成的,并且装置1000还包括:解封装请求发送子模块,用于向数据存储平台发送从封装文件中获取加密文件的解封装请求;解封装确认信息接收子模块,用于从数据存储平台接收与解封装请求对应的解封装确认信息;以及解封装子模块,用于响应于解封装确认信息,对封装文件进行解封装操作,获取加密文件和字符串。
可选地,解封装子模块,包括:字符串抽取单元,用于抽取封装文件中的指定位置的字符,并形成字符串;以及解压缩单元,用于根据预定的压缩格式,对抽取指定位置的字符之后的封装文件进行解压缩,获取加密文件。
从而根据本实施例,首先利用从密钥管理平台获取的加密密钥对第一用户上传的数据信息进行加密,然后生成与加密密钥对应的字符串,进一步地将密钥映射信息发送至密钥管理平台,最终将字符串与加密文件发送至第二用户的第二终端设备。因此与现有技术相比,本方案的数据存储平台可以从密钥管理平台申请密钥,然后利用密钥在平台侧对用户上传的数据信息进行加密。因此可以防止数据信息的泄露。由于第二用户下载的数据信息为加密后的加密文件,因此即便是第二用户将该加密文件泄露给其他用户,其他用户也仍然无法获得该数据信息的内容,从而可以控制数据信息的传播。此外,本方案还可以建立字符串与密钥之间的映射关系,用户在获取到加密文件之后无法直接获取解密密钥进行解密,还需要通过数据存储平台利用字符串从密钥管理平台获取解密密钥。从而第一用户以及数据存储平台可通过控制从密钥管理平台获取解密密钥的过程(例如通过授权等方式来控制获取解密密钥的权限),来控制数据信息的发放管理。从而,本实施例的方法达到了防止平台存储的数据信息泄露的技术效果,并且有利于控制数据信息的发放管理,解决了现有的数据存储和管理方法所存在的不利于对数据信息的传播进行管理和控制的技术问题。
实施例3
图11示出了根据本实施例的第一个方面所述的对数据信息进行加密的装置1100,该装置1100与根据实施例1的第一个方面所述的方法相对应。参考图11所示,该装置1100包括:第一处理器1110;以及第一存储器1120,与第一处理器1110连接,用于为第一处理器1110提供处理以下处理步骤的指令:利用从密钥管理平台获取的加密密钥对第一用户的第一终端设备所发送的数据信息进行加密,生成加密文件;生成与加密密钥对应的字符串;将第一密钥映射信息发送至密钥管理平台,其中第一密钥映射信息用于描述加密密钥与字符串之间的映射关系;以及将字符串与加密文件发送至第二用户的第二终端设备。
可选地,生成字符串的操作,包括:生成与加密密钥对应的字符串,并将字符串与加密文件进行封装,生成相应的封装文件,并且将字符串与加密文件发送至第二终端设备的操作,包括:将封装文件发送至第二终端设备。
可选地,将字符串与加密文件进行封装,生成封装文件的操作,包括:根据预定的压缩格式,将加密文件进行压缩,生成与加密文件对应的压缩文件;以及将字符串中的字符插入到压缩文件的指定位置,生成封装文件。
可选地,第一存储器1120还用于为第一处理器1110提供处理以下处理步骤的指令:接收第一终端设备发送的将数据信息共享给第二用户的共享请求;以及响应于共享请求,向第二终端设备发送用于下载封装文件的的共享信息,并且生成字符串,并将字符串与加密文件进行封装,生成封装文件的操作,包括:响应于共享请求,生成与加密密钥对应的字符串,并将字符串与加密文件进行封装,生成封装文件。
可选地,生成字符串,并将字符串与加密文件进行封装,生成封装文件的操作,包括:响应于第二终端设备发送的下载数据信息的下载请求,生成与第二用户对应的字符串,并将字符串与加密文件进行封装,生成封装文件。
可选地,第一存储器1120还用于为第一处理器1110提供处理以下处理步骤的指令:从第一终端设备接收对字符串设置的授权规则,其中授权规则包括以下至少一项:授权次数、授权有效期、授权有效性;以及根据授权规则,对加密密钥与字符串之间的映射关系进行设置。
可选地,利用从密钥管理平台获取的加密密钥对第一用户的第一终端设备所发送的数据信息进行加密,还包括:从第一终端设备接收第一用户的生物特征信息;以及利用生物特征信息对数据信息进行加密。
可选地,第一存储器1120还用于为第一处理器1110提供处理以下处理步骤的指令:从第二终端设备接收从封装文件中获取加密文件的解封装请求;响应于解封装请求,向第一终端设备发送与解封装请求对应的提示信息;从第一终端设备接收解封装授权指令,解封装授权指令用于指示同意第二终端设备进行解封装操作;以及响应于解封装授权指令,向第二终端设备发送解封装确认信息。
可选地,第一存储器1120还用于为第一处理器1110提供处理以下处理步骤的指令:从第二终端设备接收对加密文件进行解密的第一解密请求和字符串;响应于第一解密请求,根据字符串从密钥管理平台获取与加密密钥对应的解密密钥;以及将解密密钥发送至第二终端设备。
可选地,根据字符串从密钥管理平台获取与加密密钥对应的解密密钥的操作,包括:向第一终端设备发送与第一解密请求对应的提示信息;从第一终端设备接收解密授权指令,解密授权指令用于指示同意第二终端设备进行解密操作;以及响应于解密授权指令,根据字符串从密钥管理平台获取解密密钥。
可选地,第一存储器1120还用于为第一处理器1110提供处理以下处理步骤的指令:从第三终端设备接收对加密文件进行解密的第二解密请求和字符串;响应于第二解密请求,向第一终端设备发送与第二解密请求对应的提示信息;从第一终端设备接收字符串撤销指令,字符串撤销指令用于指示撤销字符串;响应于字符串撤销指令,撤销字符串与加密密钥之间的映射关系;以及将第二密钥映射信息发送至密钥管理平台,其中第二密钥映射信息用于指示撤销加密密钥与字符串之间的映射关系。
此外,图12示出了根据本实施例的第二个方面所述的对数据信息进行解密的装置1200,该装置1200与根据实施例1的第二个方面所述的方法相对应。参考图12所示,该装置1200包括:第二处理器1210;以及第二存储器1220,与第二处理器1210连接,用于为第二处理器1210提供处理以下处理步骤的指令:将加密文件以及相应的字符串发送至第二用户的第二终端设备,其中加密文件是通过利用从密钥管理平台获取的加密密钥对数据信息进行加密而生成的,并且字符串与加密密钥对应;接收第二终端设备发送的对加密文件进行解密的解密请求和字符串;响应于解密请求,根据字符串从密钥管理平台获取与加密密钥对应的解密密钥;以及将解密密钥发送至第二终端设备。
此外,图13示出了根据本实施例的第三个方面所述的数据信息获取的装置1300,该装置1300与根据实施例1的第三个方面所述的方法相对应。参考图13所示,该装置1200包括:第三处理器1310;以及第三存储器1320,与第三处理器1310连接,用于为第三处理器1310提供处理以下处理步骤的指令:从数据存储平台获取加密文件以及相应的字符串,其中加密文件是数据存储平台利用从密钥管理平台获取的加密密钥对数据信息进行加密而生成的,并且字符串与加密密钥对应;向数据存储平台发送对加密文件进行解密的解密请求和字符串;从数据存储平台获取与加密密钥对应的解密密钥;以及利用解密密钥对加密文件进行解密。
可选地,从数据存储平台获取加密文件以及相应的字符串的操作,包括:从数据存储平台获取封装文件,其中封装文件是通过对加密文件和字符串进行封装而生成的,并且方法还包括:向数据存储平台发送从封装文件中获取加密文件的解封装请求;从数据存储平台接收与解封装请求对应的解封装确认信息;以及响应于解封装确认信息,对封装文件进行解封装操作,获取加密文件和字符串。
可选地,对封装文件进行解封装操作,获取加密文件和字符串的操作,包括:抽取封装文件中的指定位置的字符,并形成字符串;以及根据预定的压缩格式,对抽取指定位置的字符之后的封装文件进行解压缩,获取加密文件。
从而根据本实施例,首先利用从密钥管理平台获取的加密密钥对第一用户上传的数据信息进行加密,然后生成与加密密钥对应的字符串,进一步地将密钥映射信息发送至密钥管理平台,最终将字符串与加密文件发送至第二用户的第二终端设备。因此与现有技术相比,本方案的数据存储平台可以从密钥管理平台申请密钥,然后利用密钥在平台侧对用户上传的数据信息进行加密。因此可以防止数据信息的泄露。由于第二用户下载的数据信息为加密后的加密文件,因此即便是第二用户将该加密文件泄露给其他用户,其他用户也仍然无法获得该数据信息的内容,从而可以控制数据信息的传播。此外,本方案还可以建立字符串与密钥之间的映射关系,用户在获取到加密文件之后无法直接获取解密密钥进行解密,还需要通过数据存储平台利用字符串从密钥管理平台获取解密密钥。从而第一用户以及数据存储平台可通过控制从密钥管理平台获取解密密钥的过程(例如通过授权等方式来控制获取解密密钥的权限),来控制数据信息的发放管理。从而,本实施例的方法达到了防止平台存储的数据信息泄露的技术效果,并且有利于控制数据信息的发放管理,解决了现有的数据存储和管理方法所存在的不利于对数据信息的传播进行管理和控制的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。