掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法、装置、设备和计算机存储介质

文献发布时间:2023-06-19 12:24:27


一种数据处理方法、装置、设备和计算机存储介质

技术领域

本申请涉及金融科技(Fintech)的数据安全存储技术领域,尤其涉及一种数据处理方法、装置、电子设备和计算机存储介质。

背景技术

随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。

传统银行的保险箱用于保护用户的物理财产,如金银珠宝、流通纸币等,随着数字化进行的推进,用户的数字资料成为越来越重要的资产,如身份证、银行卡等,使得数据保险箱成为当今数字银行不可缺少的对客能力。

相关技术中,在通过数据保险箱对用户的数据资料进行存储的过程中,多使用由服务提供商自身的系统后台生成的单一加密密钥加密用户数据,即,采用由单层系统密钥加密用户数据的方式,然而,这种加密方式安全性不高,一旦加密密钥泄漏后破解用户原数据的难度较低,会增加用户数据的安全风险。

发明内容

本申请提供一种数据处理方法、装置、电子设备和计算机存储介质,可以解决相关技术中在对用户数据进行加密时,安全风险较高的问题。

本申请的技术方案是这样实现的:

本申请实施例提供了一种数据处理方法,所述方法包括:

接收用户的数据存储请求,根据所述数据存储请求生成所述用户的用户密钥随机数和文件密钥随机数;

对所述用户的用户密钥随机数和文件密钥随机数进行拼接,得到第一字符串,加密所述第一字符串,得到第一数据密钥;

根据所述第一数据密钥,对用户数据进行加密,并对加密后的用户数据进行存储;获取用户密码,根据所述用户密码生成目标密码,对所述目标密码与所述用户密钥随机数进行拼接,得到第二字符串;

加密所述第二字符串,得到第二数据密钥;所述第二数据密钥用于在对加密后的用户数据进行操作时确定所述用户的用户密钥随机数。

在一些实施例中,所述方法还包括:

在接收到针对所述加密后的用户数据的操作请求后,根据所述用户密码,对所述第二数据密钥进行解密,得到所述用户的用户密钥随机数;

对所述文件密钥随机数和解密后的用户密钥随机数进行加密,重新生成所述第一数据密钥;

根据重新生成的所述第一数据密钥,对所述加密后的用户数据进行解密,得到所述用户数据;根据所述操作请求,对所述用户数据进行操作。

在一些实施例中,所述方法还包括:

基于区块链数据存证方式,将针对所述用户数据的操作行为进行记录。

在一些实施例中,所述方法还包括:

根据所述用户的身份标识号(Identity document,ID),获取第三方可信机构分配的公钥;

得到加密后的用户密钥随机数,并对所述用户的用户密钥随机数进行销毁;所述加密后的用户密钥随机数是通过第三方可信机构的公钥对所述用户的用户密钥随机数进行加密得到的;

对所述加密后的用户密钥随机数进行加密,得到第三数据密钥;

存储所述第三数据密钥。

在一些实施例中,所述方法还包括:

根据所述用户的ID,获取第三方可信机构分配的私钥;

通过身份认证方式对所述第三数据密钥进行解密,得到所述加密后的用户密钥随机数;

得到所述用户的用户密钥随机数;所述用户的用户密钥随机数是通过所述第三方可信机构的私钥对所述加密后的用户密钥随机数进行解密得到的。

在一些实施例中,所述方法还包括:

在得到所述用户的用户密钥随机数和重置后的用户密码的情况下,基于所述用户的用户密钥随机数和重置后的用户密码,得到更新后的第二数据密钥;所述重置后的用户密码是对所述用户进行身份认证后得到的。

在一些实施例中,所述方法还包括:

在确定所述用户密码发生变更的情况下,根据未变更前的用户密码,对第二数据密钥进行解密,得到所述用户的用户密钥随机数;

基于所述用户的用户密钥随机数和变更后的用户密码,得到更新后的第二数据密钥。

本申请实施例还提出了一种数据处理装置,所述装置包括生成模块、加密模块和存储模块,其中,

生成模块,用于接收用户的数据存储请求,根据所述数据存储请求生成所述用户的用户密钥随机数和文件密钥随机数;

加密模块,用于对所述用户的用户密钥随机数和文件密钥随机数进行拼接,得到第一字符串,加密所述第一字符串,得到第一数据密钥,根据所述第一数据密钥,对用户数据进行加密;获取用户密码,根据所述用户密码生成目标密码,对所述目标密码与所述用户密钥随机数进行拼接,得到第二字符串,加密所述第二字符串,得到第二数据密钥;所述第二数据密钥用于在对加密后的用户数据进行操作时确定所述用户的用户密钥随机数;

存储模块,用于对加密后的用户数据进行存储。

本申请实施例提供一种电子设备,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述一个或多个技术方案提供的数据处理方法。

本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后能够实现前述一个或多个技术方案提供的数据处理方法。

本申请实施例提出了一种数据处理方法、装置、电子设备和计算机存储介质,所述方法应用于服务端系统,所述方法包括:接收用户的数据存储请求,根据所述数据存储请求生成所述用户的用户密钥随机数和文件密钥随机数;对所述用户的用户密钥随机数和文件密钥随机数进行拼接,得到第一字符串,加密所述第一字符串,得到第一数据密钥;根据所述第一数据密钥,对用户数据进行加密,并对加密后的用户数据进行存储。

可以看出,本申请实施例中,首先基于服务端系统生成的用户密钥随机数和文件密钥随机数,进行第一层加密,得到第一数据密钥;再通过第一数据密钥对用户数据进行第二层加密;即,在对用户数据存储的过程中,采用上述两层加密方式实现加密,相比于现有技术中仅采用单层加密用户数据的方式,该加密方式的安全性较高,能够有效提高用户存储数据时的安全性,降低安全风险。

附图说明

图1a是本申请实施例中的一种数据处理方法的流程示意图;

图1b是本申请实施例中的采用SM4算法加密第一字符串的流程示意图;

图1c是本申请实施例中的对用户数据进行加密的流程示意图;

图1d是本申请实施例中的根据用户操作请求对用户数据进行操作的流程示意图;

图1e是本申请实施例中的用户变更或重置密码的流程示意图;

图2为本申请实施例的一种数据加密方法的流程示意图;

图3是本申请实施例的数据处理装置的组成结构示意图;

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

具体实施方式

以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本申请,并不用于限定本申请。另外,以下所提供的实施例是用于实施本申请的部分实施例,而非提供实施本申请的全部实施例,在不冲突的情况下,本申请实施例记载的技术方案可以任意组合的方式实施。

需要说明的是,在本申请实施例中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其它要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分电路、部分处理器、部分程序或软件等等)。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,I和/或J,可以表示:单独存在I,同时存在I和J,单独存在J这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括I、J、R中的至少一种,可以表示包括从I、J和R构成的集合中选择的任意一个或多个元素。

例如,本申请实施例提供的数据处理方法包含了一系列的步骤,但是本申请实施例提供的数据处理方法不限于所记载的步骤,同样地,本申请实施例提供的数据处理装置包括了一系列模块,但是本申请实施例提供的数据处理装置不限于包括所明确记载的模块,还可以包括为获取相关任务数据、或基于任务数据进行处理时所需要设置的模块。

本申请实施例可以应用于用户端和服务端组成的计算机系统中,并可以与众多其它通用或专用计算系统环境或配置一起操作。这里,用户端可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统,等等,服务端可以是小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

用户端、服务端等电子设备可以通过程序模块的执行实现相应的功能。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务端可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

相关技术中,对于实体世界和数字世界中的用户资产,两者的存储方式存在区别;这里,通过表1示出了上述两种用户资产的存储方式在资产要素、存储方法和存储要求这三个方面的区别。

表1

相关技术中,用户数据存储服务提供商如云盘、微云等,在存储客户通讯录、照片、视频等数据资料时,它们所提供的存储服务多使用系统后台生成单一加密密钥,即,由单层系统密钥加密用户数据;然而,这种加密方式安全性不高,一旦加密密钥泄漏后破解用户原数据的难度较低,会增加用户数据的安全风险。

针对上述技术问题,提出以下各实施例。

在本申请的一些实施例中,数据处理方法可以利用数据处理装置中的处理器实现,上述处理器可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(DigitalSignal Processing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)、中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。

图1a是本申请实施例中的一种数据处理方法的流程示意图,该方法如图1a所示,该方法包括如下步骤:

步骤100:接收用户的数据存储请求,根据数据存储请求生成用户的用户密钥随机数和文件密钥随机数。

本申请实施例中,用户通过用户端向服务端发送数据存储请求,服务端接收该用户的数据存储请求;示例性地,服务端可以是云存储服务器;这里,对云存储服务器的来源不作限制,例如,可以是云存储服务提供商提供的,也可以是通过其它方式获取的。

示例性地,数据存储请求中的数据表示用户的数据资产,例如,可以是身份证、银行卡、通讯录等。

示例性地,在服务端接收到每个用户的数据存储请求后,系统后台对每个用户独立生成一对密钥随机数,分别是用户密钥随机数和文件密钥随机数;本申请实施例以一个用户为例进行说明。

这里,文件密钥随机数表示服务端系统生成的用于加密用户数据的随机数种子,留存于服务端数据库中保管。用户密钥随机数表示服务端系统生成的用于加密用户数据的随机数种子,用于第三方可信机构加密托管,及用户密码的哈希值加密存储,全程不落地留痕。即,在生成用户密钥随机数的同时,会直接基于第三方可信机构进行密钥托管;第三方可信机构表示第三方具有权威性的、被公众认可的、具有相关技术能力的可信赖的机构。

示例性地,第三方可信机构可以是中国金融认证中心(China FinancialCertification Authority,CFCA),也可以是其它第三方可信机构。

这里,通过将用户密钥随机数托管于第三方可信机构,保证服务提供方和可信机构任意单方都无法解密用户数据,密钥分开保管,保证了数据存储的安全性。

步骤101:对用户的用户密钥随机数和文件密钥随机数进行拼接,得到第一字符串,加密第一字符串,得到第一数据密钥。

示例性地,在根据步骤100得到用户的用户密钥随机数和文件密钥随机数后,对该用户的用户密钥随机数和文件密钥随机数进行拼接,得到第一字符串。这里,对于两者的拼接顺序可以根据实际情况进行设置,本申请实施例对此不作限定。

在一种实施方式中,假设用户密钥随机数对应的字符串为“abc”,文件密钥随机数对应的字符串为“def”,则进行拼接后得到的第一字符串可以为“abcdef”,也可以为“defabc”。

本申请实施例中,在得到第一字符串后,使用第一加密算法对该第一字符串进行加密;这里,对第一加密算法的类型不作限制,例如,可以是分组对称加密算法SM4,也可以是其它标准加密算法;下面以分组对称加密算法SM4(简称SM4算法)为例进行说明。

SM4算法是一种分组对称密码算法,用于实现数据的加密/解密运算,以保证数据和信息的机密性。该算法的分组长度为128比特,密钥长度为128比特。(十六进制表示则为32位,明文和密钥等长)加密算法与密钥扩展算法都采用32轮非线性迭代结构。

示例性地,在采用SM4算法加密第一字符串的过程中,若第一字符串不足128位则采用0补齐位数;图1b是本申请实施例中的采用SM4算法加密第一字符串的流程示意图;这里,若用Xi(i=0,1,2,…,31)表示加密过程中列的状态,初始状态X0,X1,X2,X3,经过32轮迭代,将得到32列扩展状态X0,X1,…X31。加密时轮密钥表示为(rk0,rk1,…,rk31),轮密钥由加密密钥生成;最后,可以得到128位的密文,即,第一数据密钥。

步骤102:根据第一数据密钥,对用户数据进行加密,并对加密后的用户数据进行存储。

示例性地,在根据步骤101得到第一数据密钥后,使用第一数据密钥对用户数据进行加密,再次使用第一加密算法加密被第一数据密钥加密的用户数据,得到加密后的用户数据,将加密后的用户数据存储于服务端数据库中;同时,销毁第一数据密钥。

本申请实施例中,根据用户密钥随机数和文件密钥随机数得到的第一数据密钥进行数据加密,不直接通过用户密码加密数据;由于用户密钥随机数依赖用户密码进行解密还原,使得用户可通过自己的密码访问和导出自己的数据,无独立密码的鉴权,后台无法解密用户数据,有效确保用户数据的安全性。

步骤103:获取用户密码,根据用户密码生成目标密码,对目标密码与用户密钥随机数进行拼接,得到第二字符串,加密第二字符串,得到第二数据密钥;第二数据密钥用于在对加密后的用户数据进行操作时确定用户的用户密钥随机数。

示例性地,在服务端接收到用户的上述数据存储请求后,首先对该用户进行身份认证;在确定通过身份认证后,用户会通过用户端的前端页面设置自己的密码,即,用户密码,此时,服务端可以获取用户密码,进而,根据用户密码,生成目标密码。

这里,对身份认证方式的类型不作限制,例如,可以是基于生物学特征的身份认证,如指纹、虹膜等,也可以是其它方式的身份认证。

示例性地,目标密码可以是用户密码,也可以是根据第二加密算法对用户密码加密后的数据;这里,第二加密算法可以是SM3算法,也可以是其它标准加密算法;其中,SM3算法是一种哈希算法,在密码体系中,主要用于数字签名及验证、消息认证码生成及验证、随机数生成等。对于用户需要加密的数据,即用户密码,在加密后会生成一个固定长度(32字节)的哈希值。

示例性地,在根据用户密码,得到目标密码后,将目标密码与用户密钥随机数进行拼接,并使用第一加密算法对拼接得到的第二字符串进行加密,得到第二数据密钥;若得到第二数据密钥,则对用户密钥随机数进行销毁。这里,目标密码与用户密钥随机数的拼接过程与上述用户密钥随机数和文件密钥随机数的拼接过程相同,第二字符串的加密过程与上述第一字符串的加密过程相同,此处不再赘述。

本申请实施例中,由于在生成第二数据密钥后,便对用户密钥随机数进行销毁,这样,若用户后续想要对加密后的用户数据进行操作,则通过第二数据密钥便可确定用户密钥随机数,而用户密钥随机数是基于用户密码进行加密的,因而,通过第二数据密钥可以确保用户数据仅在有用户密钥鉴权的情况下才能还原,提高用户操作数据的安全性。

图1c是本申请实施例中的对用户数据进行加密的流程示意图,如图1c所示,在服务端接收到用户端发送的数据存储请求后,会对该用户进行身份认证;在确定通过身份认证后,用户设置密码;然后,服务端获取该用户密码,并通过SM3算法加密该用户密码,得到用户密码哈希值;在服务端接收上述数据存储请求的同时,服务端后台会生成用户密钥随机数和文件密钥随机数;通过SM4算法加密用户密钥随机数和文件密钥随机数拼接后的字符串,可以得到第一数据密钥;该第一数据密钥用于对用户数据进行加密,再次使用SM4算法加密第一数据密钥,得到加密后的用户数据,销毁第一数据密钥。将上述用户密码哈希值与用户密钥随机数进行拼接,通过SM4算法加密拼接后的字符串,得到第二数据密钥,对用户密钥随机数进行销毁;这样,用户数据仅在有用户密钥鉴权的情况下才能还原。

在一些实施例中,上述方法还可以包括:在接收到针对加密后的用户数据的操作请求后,根据用户密码,对第二数据密钥进行解密,得到用户的用户密钥随机数;对文件密钥随机数和解密后的用户密钥随机数进行加密,重新生成第一数据密钥;根据重新生成的第一数据密钥,对加密后的用户数据进行解密,得到用户数据;根据操作请求,对用户数据进行操作。

这里,对于用户的操作请求的类型,本申请实施例对此不作限制,例如,可以是用户上传数据的操作请求、查询数据的操作请求或修改数据的操作请求等各类操作请求。

图1d是本申请实施例中的根据用户操作请求对用户数据进行操作的流程示意图,如图1d所示,在服务端接收到用户端发送的操作请求后,会进行密码认证;在确定通过密码认证后,根据用户密码,使用SM4算法对第二数据密钥进行解密,得到解密后的用户密钥随机数;然后,使用SM4算法对文件密钥随机数和解密后的用户密钥随机数进行加密,重新生成第一数据密钥;使用SM4算法解密被第一数据密钥加密的用户数据,得到用户数据。进而,根据操作请求的类型,对用户数据进行对应操作;例如,查看或导出数据。

在一些实施例中,上述方法还可以包括:基于区块链数据存证方式,将针对用户数据的操作行为进行记录。

本申请实施例中,通过将针对用户数据的操作行为,例如,用户数据的上传、查询、修改等各类操作行为区块链数据存证,可以保证用户操作行为不可纂改,保证事后追溯,便于用户数据的管理。

示例性地,用户数据的各类操作行为经过专业全面的法律合规评估,与用户及数据使用方签订完整全面的法律条款授权协议。明确不篡改、明确授权内容、明确授权范围及授权期限。

在一些实施例中,上述方法还可以包括:根据用户的ID,获取第三方可信机构分配的公钥和私钥;得到加密后的用户密钥随机数,并对用户的用户密钥随机数进行销毁;加密后的用户密钥随机数是通过第三方可信机构的公钥对用户的用户密钥随机数进行加密得到的;对加密后的用户密钥随机数进行加密,得到第三数据密钥;存储第三数据密钥。

本申请实施例中,服务端获取用户的ID,并通过用户的ID向第三方可信机构申请证书,第三方可信机构为每个用户独立分配一对公私钥证书,即,每个用户对应分配一对公钥和私钥;这里,用户的ID由用户注册时服务端系统唯一分配。

通过第三方可信机构的公钥对用户的用户密钥随机数进行加密得到加密后的用户密钥随机数,再使用第一加密算法,例如,SM4算法对加密后的用户密钥随机数进行加密,得到第三数据密钥;将第三数据密钥存储于服务器数据库中。

在一些实施例中,上述方法还可以包括:服务端通过身份认证方式对第三数据密钥进行解密,得到加密后的用户密钥随机数;得到用户的用户密钥随机数;用户的用户密钥随机数是通过第三方可信机构的私钥对加密后的用户密钥随机数进行解密得到的。

示例性地,在用户忘记设置密码,即,服务端获取不到正确的用户密码的情况下,可以通过身份认证方式对上述得到的第三数据密钥进行解密,得到加密后的用户密钥随机数,再通过第三方可信机构分配给用户的私钥对加密后的用户密钥随机数进行解密,得到用户密钥随机数;然后,对文件密钥随机数和得到的用户密钥随机数进行加密,重新生成第一数据密钥;根据重新生成的第一数据密钥,对用户数据进行解密,进而,得到用户数据。

可以看出,本申请实施例支持用户忘记密码的情况下,通过线上生物认证、或一次性密码(One Time Password,OTP)短信验证等身份认证方式鉴权找回用户数据,用户密钥随机数明文全程不落地留痕。

在一些实施例中,上述方法还可以包括:在得到用户的用户密钥随机数和重置后的用户密码的情况下,基于用户的用户密钥随机数和重置后的用户密码,得到更新后的第二数据密钥;重置后的用户密码是对用户进行身份认证后得到的。

示例性地,在用户忘记设置密码时,用户需要重置密码;在服务端确定该用户通过身份认证后,用户重置密码,服务端将用户重置后的密码发送给第三方可信机构,第三方可信机构对该密码作进一步验证,在确定验证通过后,服务端获取重置后的用户密码;在得到用户密钥随机数和重置后的用户密码的情况下,可以根据用户密码,得到更新后的目标密码,再将更新后的目标密码与用户密钥随机数进行拼接,得到更新后的第二字符串,使用第一加密算法对更新后的第二字符串进行加密,得到更新后的第二数据密钥。

在一些实施例中,上述方法还可以包括:在确定用户密码发生变更的情况下,根据未变更前的用户密码,对第二数据密钥进行解密,得到用户的用户密钥随机数;基于用户的用户密钥随机数和变更后的用户密码,得到更新后的第二数据密钥。

示例性,当用户变更密码时,用户需要变更密码;若确定用户密码发生变更后,根据未变更前的用户密码,对第二数据密钥进行解密,得到用户的用户密钥随机数;再将变更后的用户密码与用户密钥随机数进行拼接,得到更新后的第二字符串,使用第一加密算法对更新后的第二字符串进行加密,得到更新后的第二数据密钥。

本申请实施例中,当用户变更密码时,不需要使用未变更前的用户密码先解密数据,再用变更后的用户密码加密数据实现保存。而是通过解密第二数据密钥得到用户密钥随机数后,再通过对变更后的用户密码和用户密钥随机数进行加密,得到更新后的第二数据密钥。可以看出,本申请实施例不会涉及到用户数据的重新加解密,这样的设计使后台处理更加轻量,提升了系统性能,并减少了因密码改动引起的数据存储错误概率。

图1e是本申请实施例中的用户变更或重置密码的流程示意图,如图1e所示,在服务端接收到用户端发送的操作请求后,会对该用户进行身份认证;在确定通过身份认证后,用户重置密码;服务端将重置后的用户密码发送给第三方可信机构,第三方可信机构在接收到重置后的用户密码后,采用OTP短信验证方式向用户端发送验证码,用户在用户端回填该验证码,服务端在确定验证码通过后,对第三数据密钥进行解密,得到加密后的用户密钥随机数,上送加密后的用户密钥随机数至第三方可信机构;第三方可信机构通过分配给用户的私钥对加密后的用户密钥随机数进行解密回传,使得服务端得到用户密钥随机数;然后,服务端基于重置后的用户密码的哈希值与得到的用户密钥随机数,得到更新后的第二数据密钥,最后销毁更新前的第二数据密钥。

本申请实施例提出了一种数据处理方法、装置、电子设备和计算机存储介质,该方法应用于服务端系统,该方法包括:接收用户的数据存储请求,根据数据存储请求生成用户的用户密钥随机数和文件密钥随机数;对用户的用户密钥随机数和文件密钥随机数进行拼接,得到第一字符串,加密第一字符串,得到第一数据密钥;根据第一数据密钥,对用户数据进行加密,并对加密后的用户数据进行存储。可以看出,本申请实施例中,首先基于服务端系统生成的用户密钥随机数和文件密钥随机数,进行第一层加密,得到第一数据密钥;再通过第一数据密钥对用户数据进行第二层加密;即,在对用户数据存储的过程中,采用上述两层加密方式实现加密,相比于现有技术中仅采用单层加密用户数据的方式,该加密方式的安全性较高,能够有效提高用户存储数据时的安全性,降低安全风险。

为了能够更加体现本申请的目的,在本申请上述实施例的基础上,进行进一步的说明。

图2为本申请实施例的一种数据加密方法的流程示意图,如图2所示,该流程可以包括:

步骤A1:将用户密钥随机数和文件密钥随机数进行拼接,通过SM4算法加密拼接后的字符串,得到第一数据密钥;该第一数据密钥用于对用户数据进行加密,再次使用SM4算法加密第一数据密钥,得到加密后的用户数据,销毁第一数据密钥。

步骤A2:用户密码哈希值和用户密钥随机数进行拼接,通过SM4算法加密拼接后的字符串,得到第二数据密钥,将第二数据密钥进行存储。

步骤A3:将托管于第三方可信机构的用户密钥随机数进行加密,通过SM4算法对加密后的用户密钥随机数再次加密,得到第三数据密钥。

示例性地,上述三个步骤可以同时执行。

可以看出,本申请实施例中仅用户自己能查看和导出数据,服务提供商无法独立破解用户数据,数据存储的安全性得到了保障;如有用户忘记设置密码的特殊情况,也支持第三方可信机构在身份认证后找回密钥,解密用户数据。

示例性地,本申请实施例支持两种数据解密方法:一种是正常情况下用户通过密码鉴权解密数据;另一种是用户忘记密码的情况下,通过第三方可信机构找回密钥,解密数据;解密过程和加密过程中使用的算法是完全相同的,唯一不同点在于解密算法的解密密钥是由它的加密密钥进行逆序变换后得到的;例如,SM4算法解密时轮密钥的使用顺序为:(rk31,rk30,…,rk0)。

本申请实施例中,将部分密钥托管于第三方可信机构,使得服务提供方和可信机构均无法单独破解用户数据,用户存储的数据更加安全可靠;此外,还依赖于用户鉴权,用户设置独立的用户密码,用户密钥加密用户密钥存储,无用户鉴权服务提供方无法破解用户数据,有效确保用户对个人数据的掌控能力;当用户忘记密码时,还可通过线上身份认证后从第三方可信机构找回密钥;用户全程操作行为区块链存证,保证了数据存储和使用的不可篡改性及事后可追溯;有效提高了数据在加密存储及使用中的安全性,相比较于现有的云存储服务商,在安全性和个人数据隐私保护上,有明显的优化提升。

进一步地,本申请实施例中涉及的加密存储技术,也应用于数据保险箱产品上,该产品是自主研发为用户打造的金融级安全加密存储数据的产品,支持用户保管各种证照文件,如身份证件、银行卡、驾驶证、学历证明、不动产权证书、营业执照、财务报表等,便于用户对其拥有的数据资产进行管理及使用。能够基于多重加密技术及用户鉴权实现安全存储,并采用区块链存证、生物验证等技术,确保用户在存储和使用其数据资产过程中的安全。

图3是本申请实施例的数据处理装置的组成结构示意图,如图3所示,该装置包括生成模块300、加密模块301和存储模块302,其中,

生成模块300,用于接收用户的数据存储请求,根据数据存储请求生成用户的用户密钥随机数和文件密钥随机数;

加密模块301,用于对用户的用户密钥随机数和文件密钥随机数进行拼接,得到第一字符串,加密第一字符串,得到第一数据密钥,根据第一数据密钥,对用户数据进行加密;获取用户密码,根据用户密码生成目标密码,对目标密码与用户密钥随机数进行拼接,得到第二字符串,加密第二字符串,得到第二数据密钥;第二数据密钥用于在对加密后的用户数据进行操作时确定用户的用户密钥随机数;

存储模块302,用于对加密后的用户数据进行存储。

在一些实施例中,上述装置还包括解密模块,解密模块,用于:

在接收到针对加密后的用户数据的操作请求后,根据用户密码,对第二数据密钥进行解密,得到用户的用户密钥随机数;

对文件密钥随机数和解密后的用户密钥随机数进行加密,重新生成第一数据密钥;

根据重新生成的第一数据密钥,对加密后的用户数据进行解密,得到用户数据;根据操作请求,对用户数据进行操作。

在一些实施例中,存储模块302,还用于:

基于区块链数据存证方式,将针对用户数据的操作行为进行记录。

在一些实施例中,加密模块301,还用于:

根据用户的ID,获取第三方可信机构分配的公钥;

得到加密后的用户密钥随机数,并对用户的用户密钥随机数进行销毁;加密后的用户密钥随机数是通过第三方可信机构的公钥对用户的用户密钥随机数进行加密得到的;

对加密后的用户密钥随机数进行加密,得到第三数据密钥。

存储模块302,还用于:存储第三数据密钥。

在一些实施例中,解密模块,还用于:

根据用户的ID,获取第三方可信机构分配的私钥;

通过身份认证方式对第三数据密钥进行解密,得到加密后的用户密钥随机数;

得到用户的用户密钥随机数;用户的用户密钥随机数是通过第三方可信机构的私钥对加密后的用户密钥随机数进行解密得到的。

在一些实施例中,加密模块301,还用于:

在得到用户的用户密钥随机数和重置后的用户密码的情况下,基于用户的用户密钥随机数和重置后的用户密码,得到更新后的第二数据密钥;重置后的用户密码是对用户进行身份认证后得到的。

在一些实施例中,加密模块301,还用于:

在确定用户密码发生变更的情况下,根据未变更前的用户密码,对第二数据密钥进行解密,得到用户的用户密钥随机数;

基于用户的用户密钥随机数和变更后的用户密码,得到更新后的第二数据密钥。

在实际应用中,上述生成模块300、加密模块301、存储模块302和解密模块均可以由位于电子设备中的处理器实现,该处理器可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。

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

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

具体来讲,本实施例中的一种数据处理方法对应的计算机程序指令可以被存储在光盘、硬盘、U盘等存储介质上,当存储介质中的与一种数据处理方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种数据处理方法。

基于前述实施例相同的技术构思,参见图4,其示出了本申请实施例提供的电子设备400,可以包括:存储器401和处理器402;其中,

存储器401,用于存储计算机程序和数据;

处理器402,用于执行存储器中存储的计算机程序,以实现前述实施例的任意一种数据处理方法。

在实际应用中,上述存储器401可以是易失性存储器(volatile memory),例如RAM;或者非易失性存储器(non-volatile memory),例如ROM、快闪存储器(flash memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器402提供指令和数据。

上述处理器402可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的审计管理平台,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。

在一些实施例中,本申请实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。

上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。

本申请所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本申请所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。

相关技术
  • 一种数据处理方法、装置、计算机设备和计算机可读存储介质
  • 一种数据处理方法、装置、计算机设备和计算机可读存储介质
技术分类

06120113283868