一种数据加押方法及装置与流程

文档序号:22256851发布日期:2020-09-18 13:49阅读:230来源:国知局
一种数据加押方法及装置与流程

本发明涉及金融科技(fintech)领域中的数据保全领域,尤其涉及一种数据加押方法及装置。



背景技术:

随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求,线上金融交易的普及带来了越来越多便利性,但也带来一些纠纷隐患。当纠纷发生时,很可能需要提供保全的可靠数据来对纠纷质证,因此,金融交易数据的保全是十分必要的。保全数据的一个重要环节就是要保全数据的完整性,验证数据是否被恶意篡改。

目前一般通过数据的密钥方式来保全完整性,可以通过密钥对数据进行加押,生成数据指纹后在数据库中存储起来。当纠纷发生时,可以通过比较声称数据的数据指纹与实际数据的数据指纹来验证声称的数据是否为原来的实际数据,因此数据指纹是数据的验证凭证。在这个过程中,密钥安全的重要性不言而喻。如果密钥泄露给攻击者,攻击者自行通过密钥给恶意篡改的数据加押,也能生成恶意篡改的数据相应的数据指纹植入数据库,在纠纷时,出示恶意篡改的数据也能通过验证,这无疑是个较大的安全隐患。但是,目前对数据加押时,通常是将密钥完整地加载到数据区,使得密钥完整地常驻数据区,而且在系统的存储的换入换出过程中,有可能会在磁盘留下完整痕迹,在这个过程中,密钥可能会被黑客分析利用。因此,目前加押密钥使用时加押密钥存在较大的泄露隐患,这是一个亟待解决的问题。



技术实现要素:

本发明提供一种数据加押方法及装置,解决了现有技术中加押密钥使用时加押密钥存在较大的泄露隐患的问题。

第一方面,本发明提供一种数据加押方法,包括:数据加押设备获取待加押数据;所述数据加押设备在不相邻的各存储位置中存储了主密钥按照预设切分规则切分后的各分片密钥;所述数据加押设备从所述不相邻的各存储位置中获取所述各分片密钥,将所述各分片密钥按照所述预设切分规则对应的预设拼接规则拼接的密钥作为加押密钥;所述数据加押设备创建临时存储空间,并将所述加押密钥存储至所述临时存储空间;所述数据加押设备至少根据所述临时存储空间中的所述加押密钥和所述待加押数据,获得所述待加押数据的数据指纹,并将所述临时存储空间中的所述加押密钥删除。

上述方式下,所述数据加押设备并不在数据区完整地长期存储主密钥,而是预先在不相邻的各存储位置中存储了主密钥按照预设切分规则切分后的各分片密钥,使得各分片密钥很难被一起分析出来,在数据加押设备获取待加押数据后,所述数据加押设备创建临时存储空间,再临时从所述不相邻的各存储位置中获取所述各分片密钥,并临时组成加押密钥,将所述加押密钥存储至所述临时存储空间,之后,所述数据加押设备至少根据所述临时存储空间中的所述加押密钥和所述待加押数据,获得所述待加押数据的数据指纹,并将所述临时存储空间中的所述加押密钥删除,从而对所述待加押数据加押,所述数据加押设备只在使用加押密钥的过程中才生成加押密钥,从而大幅降低了加押密钥存在的泄露隐患。

可选的,所述数据加押设备获取待加押数据之前,所述数据加押设备按照以下预设切分规则,切分得到所述各分片密钥:所述数据加押设备将所述主密钥中各分片的设定位置的字符组合,作为各分片密钥。

上述方法中,通过设定位置切分各分片密钥的方式在拼接所述各分片密钥时较为简单、高效。

可选的,所述数据加押设备获取待加押数据之前,所述数据加押设备按照以下方式获得所述主密钥:所述数据加押设备获取来自密钥中心的n个子密钥中的t个子密钥及原像;所述n个子密钥中每个子密钥为所述子密钥的原像按照t-1次多项式函数的映射关系得到的函数值;t和n均为大于2的正整数,t小于n;所述数据加押设备根据所述t个子密钥及原像,确定所述t-1次多项式函数的映射关系;所述数据加押设备将预设随机数根据所述t-1次多项式函数的映射关系得到的函数值,作为所述主密钥。

上述方法中,所述数据加押设备通过密钥中心的n个子密钥中的t个子密钥及原像,便可确定所述t-1次多项式函数的映射关系,在n个子密钥泄露不足t个,以及n个子密钥遗失不超过n-t个时,所述数据加押设备均可安全地确定所述t-1次多项式函数的映射关系,进而得到所述主密钥,从而降低了主密钥的泄露风险。

可选的,所述n个子密钥是按照以下方式生成的:将n个随机数作为所述t-1次多项式函数的映射关系的原像,将所述n个随机数按照所述t-1次多项式函数的映射关系得到的函数值,作为所述n个子密钥;其中,所述t-1次多项式函数的映射关系是所述密钥中心将t个不同的随机数,作为所述t-1次多项式函数的各次项系数及常数项从而生成的。

上述方式下,所述t-1次多项式函数的映射关系是所述密钥中心将t个不同的随机数,作为所述t-1次多项式函数的各次项系数及常数项从而生成的,也就是说t-1次多项式是基于t个不同随机数随机生成的,而且n个随机数作为所述t-1次多项式函数的映射关系的原像得到的函数值作为所述n个子密钥,从而增加了所述n个子密钥生成的随机性,难以被伪造、破解出来。

可选的,所述数据加押设备至少根据所述临时存储空间中的所述加押密钥和所述待加押数据,获得所述待加押数据的数据指纹,包括:所述数据加押设备将所述临时存储空间中的所述加押密钥,作为哈希运算消息认证码hmac算法中的密钥,将所述待加押数据和预设时刻拼接后的数据作为hmac算法中的消息,按照hmac算法,生成所述待加押数据的数据指纹。

上述方式下,将所述待加押数据和预设时刻拼接后的数据作为hmac算法中的消息,从而将所述待加押数据和预设时刻与所述待加押数据的数据指纹建立了绑定关系,而且hmac算法能较好地保护原有消息隐私性,难以根据所述待加押数据的数据指纹将加押密钥解析出来。

第二方面,本发明提供一种数据加押方法,包括:数据加押设备获取待验证数据;所述数据加押设备在不相邻的各存储位置中存储了主密钥按照预设切分规则切分后的各分片密钥;所述数据加押设备从所述不相邻的各存储位置中获取所述各分片密钥,将所述各分片密钥按照所述预设切分规则对应的预设拼接规则拼接的密钥作为加押密钥;所述数据加押设备创建临时存储空间,并将所述加押密钥加载至临时存储空间;所述数据加押设备至少根据所述临时存储空间中的所述加押密钥和所述待验证数据,获得所述待验证数据的数据指纹;所述数据加押设备若确定所述待验证数据的数据指纹与所述待验证数据对应的已加押数据的数据指纹一致,则确定所述待验证数据验证通过。

上述方式下,所述数据加押设备并不在数据区完整地长期存储主密钥,而是预先在不相邻的各存储位置中存储了主密钥按照预设切分规则切分后的各分片密钥,使得各分片密钥很难被一起分析出来,在数据加押设备获取待验证数据后,所述数据加押设备创建临时存储空间,再临时从所述不相邻的各存储位置中获取所述各分片密钥,并临时组成加押密钥,将所述加押密钥存储至所述临时存储空间,之后,所述数据加押设备至少根据所述临时存储空间中的所述加押密钥和所述待验证数据,获得所述待验证数据的数据指纹,并对所述待验证数据验证,所述数据加押设备只在使用加押密钥的过程中才生成加押密钥,从而大幅降低了加押密钥存在的泄露隐患。

可选的,所述数据加押设备至少根据所述临时存储空间中的所述加押密钥和所述待验证数据,获得所述待验证数据的数据指纹;包括:所述数据加押设备将所述临时存储空间中的所述加押密钥,作为哈希运算消息认证码hmac算法中的密钥,将所述待验证数据和所述已加押数据对应的预设时刻拼接后的数据作为hmac算法中的消息,按照hmac算法,生成所述待验证数据的数据指纹。

上述方式下,将所述待验证数据和预设时刻拼接后的数据作为hmac算法中的消息,从而将所述待验证数据和预设时刻与所述待验证数据的数据指纹建立了绑定关系,而且hmac算法能较好地保护原有消息隐私性,难以根据所述待验证数据的数据指纹将加押密钥解析出来。

可选的,所述数据加押设备按照以下恢复公式恢复出t-1次多项式函数:其中,xi是在中随机选取的随机数,f(x)为所述t-1次多项式函数,t为f(x)的各次项系数及常数项的总个数,p为大于2的整数,指小于或等于p的正整数集合,mod表示取模运算;所述数据加押设备将预设随机数代入所述t-1次多项式函数得到的函数值,作为所述主密钥。

上述方式下,所述t-1次多项式函数是通过恢复公式和t个不同的随机数及函数值恢复出来的,而si是根据原f(x)得到的函数值,是更原始的数据,因此通过恢复公式得到的所述t-1次多项式函数更加可靠,从而直接得到更可靠的所述主密钥。

第三方面,本发明提供一种数据加押装置,包括:获取模块,用于获取待加押数据;在不相邻的各存储位置中存储了主密钥按照预设切分规则切分后的各分片密钥;从所述不相邻的各存储位置中获取所述各分片密钥,将所述各分片密钥按照所述预设切分规则对应的预设拼接规则拼接的密钥作为加押密钥;加押模块,用于创建临时存储空间,并将所述加押密钥存储至所述临时存储空间;用于至少根据所述临时存储空间中的所述加押密钥和所述待加押数据,获得所述待加押数据的数据指纹,并将所述临时存储空间中的所述加押密钥删除。

可选的,所述获取待加押数据之前,所述获取模块还用于:按照以下预设切分规则,切分得到所述各分片密钥:将所述主密钥中各分片的设定位置的字符组合,作为各分片密钥。

可选的,所述获取待加押数据之前,所述获取模块还用于:按照以下方式获得所述主密钥:所述数据加押设备获取来自密钥中心的n个子密钥中的t个子密钥及原像;所述n个子密钥中每个子密钥为所述子密钥的原像按照t-1次多项式函数的映射关系得到的函数值;t和n均为大于2的正整数,t小于n;所述数据加押设备根据所述t个子密钥及原像,确定所述t-1次多项式函数的映射关系;将预设随机数根据所述t-1次多项式函数的映射关系得到的函数值,作为所述主密钥。

可选的,所述n个子密钥是按照以下方式生成的:将n个随机数作为所述t-1次多项式函数的映射关系的原像,将所述n个随机数按照所述t-1次多项式函数的映射关系得到的函数值,作为所述n个子密钥;其中,所述t-1次多项式函数的映射关系是所述密钥中心将t个不同的随机数,作为所述t-1次多项式函数的各次项系数及常数项从而生成的。

可选的,所述加押模块具体用于:将所述临时存储空间中的所述加押密钥,作为哈希运算消息认证码hmac算法中的密钥,将所述待加押数据和预设时刻拼接后的数据作为hmac算法中的消息,按照hmac算法,生成所述待加押数据的数据指纹。

上述第三方面及第三方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。

第四方面,本发明提供一种数据加押装置,包括:获取模块,用于获取待验证数据;在不相邻的各存储位置中存储了主密钥按照预设切分规则切分后的各分片密钥;从所述不相邻的各存储位置中获取所述各分片密钥,将所述各分片密钥按照所述预设切分规则对应的预设拼接规则拼接的密钥作为加押密钥;验证模块,用于创建临时存储空间,并将所述加押密钥加载至临时存储空间;至少根据所述临时存储空间中的所述加押密钥和所述待验证数据,获得所述待验证数据的数据指纹;若确定所述待验证数据的数据指纹与所述待验证数据对应的已加押数据的数据指纹一致,则确定所述待验证数据验证通过。

可选的,所述验证模块具体用于:将所述临时存储空间中的所述加押密钥,作为哈希运算消息认证码hmac算法中的密钥,将所述待验证数据和所述已加押数据对应的预设时刻拼接后的数据作为hmac算法中的消息,按照hmac算法,生成所述待验证数据的数据指纹。

可选的,所述获取模块具体用于:按照以下恢复公式恢复出t-1次多项式函数:其中,xi是在中随机选取的随机数,f(x)为所述t-1次多项式函数,t为f(x)的各次项系数及常数项的总个数,p为大于2的整数,指小于或等于p的正整数集合,mod表示取模运算;将预设随机数代入所述t-1次多项式函数得到的函数值,作为所述主密钥。

上述第四方面及第四方面各个可选装置的有益效果,可以参考上述第二方面及第二方面各个可选方法的有益效果,这里不再赘述。

第五方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面或第二方面及各个可选的方法。

第六方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面或第二方面及各个可选的方法。

附图说明

图1为本申请实施例提供的一种数据加押方法可应用的架构示意图;

图2为本申请实施例提供的一种数据加押方法的步骤流程示意图;

图3为本申请实施例提供的一种数据加押装置的结构示意图;

图4为本申请实施例提供的一种数据加押装置的结构示意图。

具体实施方式

为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。

下面首先列出本申请实施例中出现的名词及释义。

密钥共享方案:将一个密钥分成多个子密钥,然后让多个成员中的每个成员保存一个子密钥。当需要恢复密钥时,多个成员中大于一定数量的成员拿出他们分别持有的子密钥后,就可以按既定的恢复算法恢复出所需的密钥,密钥共享使得密钥持有者可以安全且有效地共享多个密钥。

数据加押:按照密码算法,通过密钥对数据加密,产生数据特定的数据指纹,从而与数据建立绑定关系,验证数据是否被恶意篡改。

数据保全:对数据进行存储保全。在发生纠纷时,可提供保全的数据供裁决使用。裁决使用过程中,常对比经密钥数据加押的数据指纹和临时生成的数据指纹是否一致。

在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,线上金融交易的普及带来了越来越多便利性,但也带来一些纠纷隐患。当纠纷发生时,很可能需要提供可靠保全的数据,因此,金融交易数据的保全是十分必要的。

目前一般通过数据的密钥方式来保全完整性,可以通过密钥对数据进行加押,生成数据指纹后在数据库中存储起来。但是,目前对数据加押时,通常是将密钥加载到全局数据区,使得密钥常驻全局数据区域,而且在系统的存储的换入换出过程中,有可能会在磁盘留下完整痕迹,在这个过程中,密钥可能会被黑客分析利用。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的安全运转。为此,本申请提供一种数据加押方法。如图1所示,为本申请提供的一种数据加押方法可应用的架构示意图。图1示出的架构图中包括3个主体。

密钥中心:密钥中心是密钥的生成者及管理者,提供用于加押数据的密钥。密钥中心的载体可以为密钥设备。

数据加押系统:数据加押系统是执行数据加押的系统,数据加押系统获得了密钥后,在需要对数据加押时(如接收到用户的保全请求)。通过安全方式调用密钥,根据密钥对待加押数据加押,生成待加押数据唯一映射的数据指纹。待加押数据的数据指纹生成后,若后续发生待加押数据的相关纠纷,除非提供待加押数据一致的数据,再次经过密钥加押得到的数据指纹才能与原来待加押数据得到的数据指纹一致,从而可以质证纠纷时提供的数据是不是待加押数据。数据加押系统的载体可以为数据加押设备。

用户:数据保全或纠纷时做数据验证的需求者。用户的载体可以为用户设备。

下面通过具体的阶段详细描述本申请提供的一种数据加押方法。分为3个阶段:初始化阶段、数据加押阶段和数据验证阶段。初始化阶段指密钥中心生成密钥。且数据加押系统获得密钥的阶段。数据加押阶段指数据加押系统根据密钥对待加押数据进行数据加押的阶段。数据验证阶段指数据加押系统验证用户的待验证数据是否为待加押数据的阶段。下面分别具体介绍每个阶段。

初始化阶段:

密钥中心生成密钥。具体生成方式可以有多种,如生成一个随机数作为密钥,再如生成多个随机数,在根据生成的多个随机数生成密钥等。一种可选实施方式(以下称为随机数生成密钥的可选实施方式)如下:

所述密钥中心根据将t个不同的随机数,作为t-1次多项式函数的各次项系数及常数项,从而生成t-1次多项式函数的映射关系;密钥中心预设随机数按照所述t-1次多项式函数的映射关系生成的函数值,作为主密钥;将n个随机数作为所述t-1次多项式函数的映射关系的原像,将所述n个随机数按照所述t-1次多项式函数的映射关系得到的函数值,作为n个子密钥;t和n均为大于2的正整数,t小于n。

举例来说,随机数生成密钥的可选实施方式更具体地的过程可以如下:

步骤(1-1):密钥中心在预定随机数范围内选择t个不同的随机数ai(i=0,…,t-1)。

举例来说,步骤(1-1)中,密钥中心随机选择一个大素数p(如2的128次方以上的素数),随机取t个小于p的素数表示小于p的正整数集。

步骤(1-2):密钥中心根据预定随机数范围内t个不同的随机数ai,确定一个t-1次多项式函数。

举例来说,t-1次多项式函数具体如下:

f(x)=(a0+a1x1+a2x2+…+at-1xt-1)modp,其中,mod表示取模运算。

步骤(1-3):密钥中心将预设随机数,按照上述t-1次多项式函数生成的函数值,作为主密钥;t为正整数。

举例来说,预设随机数为0,主密钥为s=f(0)=a0,即将a0作为主密钥s,再如将f(1)=a0+a1+…+at-1,将f(1)作为主密钥s。

步骤(1-4):所述密钥中心根据预定随机数范围内的n个随机数,将所述n个随机数中每个随机数按照t-1次多项式函数生成的函数值,作为所述主密钥的一个子密钥。

对n个用户,分别选取n个随机数计算n个随机数的函数值si=f(xi)其中(i=1,2,..,n)。将si作为子密钥,分给密钥中心的n个管理员秘密保存,为了安全性,分发后可以随即销毁多项式系数ai。

需要说明的是,根据线性方程组解的结论,t个未知数需要t个线性无关的方程组来解,因此后续可以通过密钥中心的t个管理员提供的t个子密钥恢复出s。具体来说,可以通过以下公式(下面称为恢复公式)恢复出f(x):

显然,再将预设随机数代入f(x)便可以得到最终的主密钥。

密钥中心可以将xi(i=1,2,..,n)分发给数据加押系统,作为数据加押系统的参数保存在数据加押系统。需要说明的是,数据加押系统启动是需要一定条件的,数据加押系统具备密钥s才能进行数据加押。

数据加押系统启动的过程一种可选实施方式如下:

所述数据加押设备获取来自密钥中心的n个子密钥中的t个子密钥及原像;所述n个子密钥中每个子密钥为所述子密钥的原像按照t-1次多项式函数的映射关系得到的函数值;t和n均为大于2的正整数,t小于n;所述数据加押设备根据所述t个子密钥及原像,确定所述t-1次多项式函数的映射关系;所述数据加押设备将预设随机数根据所述t-1次多项式函数的映射关系得到的函数值,作为所述主密钥。

具体来说,数据加押系统启动需要密钥中心的n个管理员中的至少t个管理员参与,可以预先存储xi(i=1,2,..,n),接收t个管理员对应的子密钥si,其中(i=1,2,…,t),或者也可以直接地接收(xi,si)。

数据加押系统收集到接收的信息后,通过恢复公式可以恢复出f(x),并计算主密钥s。在初始化的时候计算主密钥,可以减少后续生成数据指纹的计算开销。

上述方式采用门限方案,提高了数据加押系统的容错性,允许少量子密钥的泄露、丢失,主密钥采用(t,n)门限方案生产,满足t个就可以恢复主密钥,完成数据保全、验证,允许一定数量的密钥丢失、泄露,有很强的容错性。

数据加押系统计算出主密钥s后,需要存储s,具体存储方式可以有多种,如直接存储主密钥,或分片存储主密钥;从存储顺序层面,可以先将s存储在栈上的临时变量中,待s持久化存储后,再销毁存储s的栈上临时变量。

分片主密钥存储的一种可选实施方式如下:

所述数据加押设备将所述主密钥中各分片的设定位置的字符组合,作为各分片密钥。需要说明的是,各分片的设定位置为所述主密钥中一个或多个位的组合。举例来说,所述主密钥包括1~100位,第1位、第11位…第91位的组合便是一个分片设定位置。

具体来说,分片主密钥存储可以为:数据加押系统接收到各密钥管理员的子密钥后,通过生成函数的恢复公式,在栈上生成临时变量,用来存储主密钥,数据加押系统将主密钥切分为各分片密钥,将s切分为d份(k1,…kd),d为大于2的正整数,存储各不相邻的存储位置的结构变量中,结构变量指持久化存储空间的变量,随后销毁释放各不相邻的存储位置的变量,完成系统初始化。

预设切分规则可以有多种实现方式:

举例来说,主密钥为r位的字符(r为正整数),将主密钥的各位数模固定值结果相同的各位字符的组合作为各分片密钥。如当r为100时,固定值为10,第1位、第11位…第91位的位数模10均得1,则将第1位、第11位…第91位的结果相同的各位字符的组合作为第1个分片密钥,相应地,也将第2位、第12位…第92位的结果相同的各位字符的组合作为第2个分片密钥,…,其余可以此类推。

再如,将主密钥相邻位数的字符作为一个分片密钥。如当r为100位时,将第1位字符作为第1个分片密钥,第2~3位字符作为第2个分片密钥,第4~6位作为第3个分片密钥,…,第79位~第91位作为第13个分片密钥,第92位~第100位作为第14个分片密钥。还可以对主密钥的位数补足,并记录截取的位数,如将第92位~第100位,再加入5个补足字符,一同作为第14个分片密钥。更特殊地,直接将主密钥相邻固定位数的字符作为一个分片密钥,如当r为100位时,相邻固定位数为5,则将第1~5位字符作为第1个分片密钥,第6~10位字符作为第2个分片密钥,第11~15位作为第3个分片密钥,…,第96位~第100位作为第20个分片密钥。

显然预设切分规则中每种实现方式都有相应预设拼接规则的实现方式,预设拼接规则指各分片密钥如何拼接成主密钥的规则,如将主密钥的各位数模固定值结果相同的各位字符的组合作为各分片密钥的实现方式,当r为100时,固定值为10,第1位、第11位…第91位的位数模10均得1,将第1个分片密钥的第1位、第2个分片密钥的第1位,直至第10个分片密钥的第1位依次拼接在一起,得到主密钥的第1~10位,相应地,也第1个分片密钥的第2位、第2个分片密钥的第2位,直至第10个分片密钥的第2位依次拼接在一起,得到主密钥的第11~20位,其余相应的实现方式可依次类推,在此不再赘述。

数据加押系统采用分片存储的形式,只在临时存储,按需加载,大幅减少了主密钥的暴露风险,增强了主密钥的使用安全性,基于密钥分片数据加押的保全方法,保证了数据的完整性,防止恶意篡改的数据也可以加押,

经过初始化阶段,数据加押系统获得密钥后,便可以执行数据加押,具体过程在数据加押阶段详述。

数据加押阶段:

图2示出了数据加押阶段本申请提供的一种数据加押方法。

步骤201:数据加押设备获取待加押数据。

所述数据加押设备在不相邻的各存储位置中存储了主密钥按照预设切分规则切分后的各分片密钥。

步骤202:所述数据加押设备从所述不相邻的各存储位置中获取所述各分片密钥,将所述各分片密钥按照所述预设切分规则对应的预设拼接规则拼接的密钥作为加押密钥。

步骤203:所述数据加押设备创建临时存储空间,并将所述加押密钥存储至所述临时存储空间。

步骤204:所述数据加押设备至少根据所述临时存储空间中的所述加押密钥和所述待加押数据,获得所述待加押数据的数据指纹,并将所述临时存储空间中的所述加押密钥删除。

步骤201~步骤204可以通过用户按照以下方式触发:

用户设备执行交易后,生成交易数据,作为待加押数据。所述用户设备向数据加押设备发送数据加押请求,从而通过所述数据加押设备对所述待加押数据加押。

其中,数据加押请求包括待加押数据。所述数据加押请求指示所述数据加押设备对所述待加押数据加押。

步骤202中,具体来说,随后在栈上创建临时存储空间,所述数据加押设备将在不同存储位置存储的(k1,…kd)拼接恢复主密钥s,放入栈上的临时存储空间,具体拼接过程可参照初始化阶段中预设拼接规则的实现方式,在此不再赘述。

步骤203的一种可选实施方式如下:

所述数据加押设备将所述临时存储空间中的所述加押密钥,作为哈希运算消息认证码hmac算法中的密钥,将所述待加押数据和预设时刻拼接后的数据作为hmac算法中的消息,按照hmac算法,生成所述待加押数据的数据指纹。

举例来说,所述数据加押设备收到所述待加押数据m后,将当前时刻作为预设时刻l、m、s作为hmac算法的输入参数,计算待加押数据的数据指纹sig=hmac(s,m||l)(将m和l拼接后,通过主密钥s来计算待加押数据的数据指纹),生成对应待加押数据的数据指纹sig,随即销毁主密钥的临时存储空间。需要说明的是,数据加押过程采用hmac算法,计算开销较小且可以有效的保证数据完整性。

需要说明的是,预设时刻可以是所述数据加押设备为所述待加押数据临时分配的,当用户按照数据加押请求方式触发数据加押时,预设时刻也可以在数据加押请求中包括。

步骤203按上述实施方式执行之后,所述数据加押设备可以将所述待加押数据的标识、所述待加押数据的数据指纹一同存储。更具体地,所述数据加押设备可以将所述待加押数据的标识、预设时刻和所述待加押数据的数据指纹一同存储,从而建立三者的绑定关系。通过上述三者的固化存储,可以为后续纠纷产生时查询校验提供依据,数据加押流程结束。

数据验证阶段:

出现纠纷时,用户会提供待验证数据给待,根据数据加押流程中生成的所述待加押数据的数据指纹进行完整性校验。一种可选实施方式如下:

步骤(3-1):数据加押设备获取待验证数据。

所述数据加押设备在不相邻的各存储位置中存储了主密钥按照预设切分规则切分后的各分片密钥。

步骤(3-2):所述数据加押设备从所述不相邻的各存储位置中获取所述各分片密钥,将所述各分片密钥按照所述预设切分规则对应的预设拼接规则拼接的密钥作为加押密钥。

步骤(3-3):所述数据加押设备创建临时存储空间,并将所述加押密钥加载至临时存储空间。

步骤(3-4):所述数据加押设备至少根据所述临时存储空间中的所述加押密钥和所述待验证数据,获得所述待验证数据的数据指纹。

步骤(3-5):所述数据加押设备若确定所述待验证数据的数据指纹与所述待验证数据对应的已加押数据的数据指纹一致,则确定所述待验证数据验证通过。

上述步骤(3-1)~步骤(3-5)所描述的可选实施方式可以通过用户按照以下方式触发:

用户设备向数据加押设备发送数据验证请求,从而通过所述数据加押设备对所述待验证数据验证。其中,数据验证请求包括待验证数据。所述数据验证请求指示所述数据加押设备对所述待验证数据验证。

需要说明的是,如果所述数据加押设备未存储各分片密钥,针对需要重新生成主密钥的情况,可以参照初始化过程中数据加押系统启动时生成主密钥的过程,在此不再赘述。

需要说明的是,步骤(3-1)中提到的主密钥还可以通过恢复公式恢复出f(x)后,再通过代入预设随机数得到,其中,恢复公式为:

其中,xi是在中随机选取的随机数,t为f(x)的各次项系数及常数项的总个数。举例来说,f(x)为三次函数,f(x)为的各次项系数的个数为3,常数项为1,则t为4。即p为大于2的整数,特殊地,p为大素数(如大于2^1024的素数),为小于p的整数集合,更特殊地,可以为小于p的素数集合。si=f(xi)为选取的xi按照关系f得到的函数值。

上述方式下,所述t-1次多项式函数是通过恢复公式和t个不同的随机数及函数值恢复出来的,而si是根据原f(x)得到的函数值,是更原始的数据,因此通过恢复公式得到的所述t-1次多项式函数更加可靠,从而直接得到更可靠的所述主密钥。

需要说明的是,在最初选取时,可以对n个用户,分别选取n个随机数此时(i=1,2,..,n),计算n个随机数的函数值si=f(xi)。将si作为子密钥,分给密钥中心的n个管理员秘密保存,为了安全性,分发后可以随即销毁多项式系数ai。

根据线性方程组解的结论,t个未知数需要t个线性无关的方程组来解,因此后续可以通过密钥中心的t个管理员提供的t个子密钥(即原n个子密钥中的t个子密钥)恢复出s。

需要说明的是,步骤(3-5)中所述待验证数据对应的已加押数据的确定方式可以通过所述待验证数据的标识来实现,举例来说,数据加押设备中存储了已加押数据的标识、已加押数据的数据指纹,所述待验证数据对应的已加押数据为与所述待验证数据的标识相同的标识所对应的已加押数据。

需要说明的是,在用户提供了预设时刻或者所述数据加押设备确定出待验证数据对应预设时刻的情况下,步骤(3-4)的一种可选实施方式如下:

所述数据加押设备将所述临时存储空间中的所述加押密钥,作为哈希运算消息认证码hmac算法中的密钥,将所述待验证数据和所述已加押数据对应的预设时刻拼接后的数据作为hmac算法中的消息,按照hmac算法,生成所述待验证数据的数据指纹。

举例来说,所述数据加押设备收到所述待验证数据m’后,将用户提供的预设时刻l’、m’、加押密钥s作为hmac算法的输入参数,计算待验证数据的数据指纹sig’=hmac(s,m′||l′)(将m’和l’拼接后,通过主密钥s来计算待验证数据的数据指纹),生成对应待验证数据的数据指纹sig’,对比sig和sig’是否一致,如果一致就表明待验证数据是未被篡改的数据。

如图3所示,本发明提供一种数据加押装置,包括:获取模块301,用于获取待加押数据;在不相邻的各存储位置中存储了主密钥按照预设切分规则切分后的各分片密钥;从所述不相邻的各存储位置中获取所述各分片密钥,将所述各分片密钥按照所述预设切分规则对应的预设拼接规则拼接的密钥作为加押密钥;加押模块302,用于创建临时存储空间,并将所述加押密钥存储至所述临时存储空间;用于至少根据所述临时存储空间中的所述加押密钥和所述待加押数据,获得所述待加押数据的数据指纹,并将所述临时存储空间中的所述加押密钥删除。

可选的,所述获取待加押数据之前,所述获取模块301还用于:按照以下预设切分规则,切分得到所述各分片密钥:将所述主密钥中各分片的设定位置的字符组合,作为各分片密钥。

可选的,所述获取待加押数据之前,所述获取模块301还用于:按照以下方式获得所述主密钥:所述数据加押设备获取来自密钥中心的n个子密钥中的t个子密钥及原像;所述n个子密钥中每个子密钥为所述子密钥的原像按照t-1次多项式函数的映射关系得到的函数值;t和n均为大于2的正整数,t小于n;所述数据加押设备根据所述t个子密钥及原像,确定所述t-1次多项式函数的映射关系;将预设随机数根据所述t-1次多项式函数的映射关系得到的函数值,作为所述主密钥。

可选的,所述n个子密钥是按照以下方式生成的:将n个随机数作为所述t-1次多项式函数的映射关系的原像,将所述n个随机数按照所述t-1次多项式函数的映射关系得到的函数值,作为所述n个子密钥;其中,所述t-1次多项式函数的映射关系是所述密钥中心将t个不同的随机数,作为所述t-1次多项式函数的各次项系数及常数项从而生成的。

可选的,所述加押模块302具体用于:将所述临时存储空间中的所述加押密钥,作为哈希运算消息认证码hmac算法中的密钥,将所述待加押数据和预设时刻拼接后的数据作为hmac算法中的消息,按照hmac算法,生成所述待加押数据的数据指纹。

如图4所示,本发明提供一种数据加押装置,包括:获取模块401,用于获取待验证数据;在不相邻的各存储位置中存储了主密钥按照预设切分规则切分后的各分片密钥;从所述不相邻的各存储位置中获取所述各分片密钥,将所述各分片密钥按照所述预设切分规则对应的预设拼接规则拼接的密钥作为加押密钥;验证模块402,用于创建临时存储空间,并将所述加押密钥加载至临时存储空间;至少根据所述临时存储空间中的所述加押密钥和所述待验证数据,获得所述待验证数据的数据指纹;若确定所述待验证数据的数据指纹与所述待验证数据对应的已加押数据的数据指纹一致,则确定所述待验证数据验证通过。

可选的,所述验证模块402具体用于:将所述临时存储空间中的所述加押密钥,作为哈希运算消息认证码hmac算法中的密钥,将所述待验证数据和所述已加押数据对应的预设时刻拼接后的数据作为hmac算法中的消息,按照hmac算法,生成所述待验证数据的数据指纹。

可选的,所述获取模块401具体用于:按照以下恢复公式恢复出t-1次多项式函数:其中,xi是在中随机选取的随机数,f(x)为所述t-1次多项式函数,t为f(x)的各次项系数及常数项的总个数,p为大于2的整数,指小于或等于p的正整数集合,mod表示取模运算;将预设随机数代入所述t-1次多项式函数得到的函数值,作为所述主密钥。

本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种数据加押方法及任一可选方法。

本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种数据加押方法及任一可选方法。

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

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

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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