一种对目标数据的存储完整性进行验证的方法及系统的制作方法

文档序号:7808699阅读:269来源:国知局
一种对目标数据的存储完整性进行验证的方法及系统的制作方法
【专利摘要】一种对目标数据的存储完整性进行验证的方法,其包括如下步骤:对目标数据进行处理,以生成消息认证码列表,消息认证码列表中包括对所述目标数据进行识别的标记、密钥以及利用所述密钥计算得到的第一消息认证码;基于消息认证码列表生成验证凭据,其用于作为授权依据来向第三方进行授权以对目标数据进行核查;基于验证凭据来利用密钥对处于存储状态的目标数据计算第二消息认证码,其中第二消息认证码的计算方法与第一消息认证码的计算方法相同;以及比对所述第一消息认证码与所述第二消息认证码,以对目标数据的存储完整性进行验证。上述方法能够在第三方进行数据验证时保证目标数据的私密性。本发明还涉及对目标数据的存储完整性进行验证的系统。
【专利说明】一种对目标数据的存储完整性进行验证的方法及系统

【技术领域】
[0001]本发明涉及一种对目标数据的存储完整性进行验证的方法及系统。

【背景技术】
[0002]随着云端存储技术的不断发展与普及,越来越多的用户会将自己的重要数据存放在云服务器中。然而,用户把大量数据存放在云服务器上面临着很多风险,其中一个很重要的风险是数据完整性问题,即,用户无法确知自己存储在云端的数据是否被删除、篡改。
[0003]为了确保云端数据的完整性,云服务器往往需要提供完整性确认功能。但是,对于云端数据量很大的用户而言,执行云端数据完整性确认需要消耗大量的计算资源,这是计算能力有限的用户难以承受的。


【发明内容】

[0004]有鉴于此,提供一种能够解决上述问题的对目标数据的存储完整性进行验证的方法及系统实为必要。
[0005]一种对目标数据的存储完整性进行验证的方法,其包括如下步骤:对目标数据进行处理,以生成消息认证码列表,所述消息认证码列表中包括能够对所述目标数据进行唯一性识别的标记、密钥以及利用所述密钥对所述目标数据计算得到的第一消息认证码;基于所述消息认证码列表生成验证凭据,所述验证凭据用于作为授权依据来向第三方进行授权以对所述目标数据的存储完整性进行核查;基于所述验证凭据来利用所述密钥对当前存储的所述目标数据计算第二消息认证码,其中所述第二消息认证码的计算方法与所述第一消息认证码的计算方法相同;以及比对所述第一消息认证码与所述第二消息认证码,以对所述目标数据的存储完整性进行验证。
[0006]优选的,所述标记是通过对所述目标数据进行命名的方式来形成的。
[0007]优选的,生成所述消息认证码列表的步骤包括如下步骤:选定t个密钥k1; k2,……,kt,其中,t为大于等于I的整数;使用这t个密钥依次对所述目标数据计算第一消息认证码,得到所述第一消息认证码的集合Im1, m2,......, mj ;记录(nameF, G^m1), (k2, m2),…
…,(kt, mt))作为所述目标数据的消息认证码列表,其中,nameF为所述用于对所述目标数据进行唯一性识别的标记,(kt,mt)代表一一对应的密钥及由该密钥计算得来的第一消息认证码。
[0008]优选的,所述验证凭据的生成过程包括如下步骤:在所述消息认证码列表中选取一对密钥及第一消息认证码(ki; Hli);采用非对称加密的方式对选取的所述第一消息认证码进行签名得到所述验证凭据。
[0009]优选的,所述目标数据存储于云端服务器。
[0010]优选的,进一步包括对所述目标数据的消息认证码列表进行更新的步骤。
[0011]一种对目标数据的存储完整性进行验证的系统,其包括:消息认证码列表生成模块,其用于对目标数据进行处理,以生成消息认证码列表,所述消息认证码列表中包括能够对所述目标数据进行唯一性识别的标记、密钥以及利用所述密钥对所述目标数据计算得到的第一消息认证码;验证凭据生成模块,其用于基于所述消息认证码列表生成验证凭据,所述验证凭据用于作为授权依据来向第三方进行授权以对所述目标数据的存储完整性进行核查;数据验证模块,其用于基于所述验证凭据来利用所述密钥对当前存储的所述目标数据计算第二消息认证码,其中所述第二消息认证码的计算方法与所述第一消息认证码的计算方法相同;以及消息认证码比较模块,其用于比对所述第一消息认证码与所述第二消息认证码,以对所述目标数据的存储完整性进行验证。
[0012]优选的,所述标记是通过对所述目标数据进行命名的方式来形成的。
[0013]优选的,所述消息认证码列表的生成过程包括如下步骤:选定t个密钥k1; k2,……,kt,其中,t为大于等于I的整数;使用这t个密钥依次对所述目标数据计算第一消息认证码,得到所述第一消息认证码的集合Im1, m2,......, mj ;记录(nameF, G^m1), (k2, m2),…
…,(kt, mt))作为所述目标数据的消息认证码列表,其中,nameF为所述用于对所述目标数据进行唯一性识别的标记,(kt,mt)代表一一对应的密钥及由该密钥计算得来的第一消息认证码。
[0014]优选的,所述验证凭据的生成过程包括如下步骤:在所述消息认证码列表中选取一对密钥及第一消息认证码(ki; Hli);采用非对称加密的方式对选取的所述第一消息认证码进行签名得到所述验证凭据。
[0015]与现有技术相比,使用本发明实施方式所提供的上述对目标数据的存储完整性进行验证的方法及系统来对存储的数据的完整性进行验证的有益效果在于:
[0016]第一,一般情况下,对存储在云端服务器或者其它存储设备上的数据进行完整性验证的工作会委托给第三方进行,而目标数据的拥有者在很多情况下是不愿意第三方在验证过程中得知目标数据的具体内容的,因此,本实施方式采用“以同样的方式来对存储前及存储后的目标数据计算第一消息认证码以及第二消息认证码,并通过对比所述第一消息认证码及第二消息认证码来对存储状态下的目标数据的完整性进行验证”的方式可以最大限度的保证用户所存储的数据的具体内容不会因为验证而泄露,有效的保证了目标数据的机密性;
[0017]第二,被授权对目标数据进行完整性验证的第三方通常会根据接收到的数据验证请求来启动对目标数据的完整性验证,通常状况下,所述第三方无法正确的判断其所收到的数据验证请求是否是由所述目标数据的拥有者所发出,因而存在一定的信息安全隐患,也就是说,可能存在不良分子假冒所述目标数据拥有者来发出数据验证请求的安全隐患,本实施方式中采用基于消息认证码列表生成验证凭据的方式可以很好的解决上述问题,具体的,在本实施方式所提供的上述步骤中,所述第三方是基于由消息认证码列表生成验证凭据来对目标数据进行核查的,也就是说,在本实施方式中,第三方收到的数据验证请求中包含有所述验证凭据,由于所述验证凭据是数据拥有者以非对称加密的方式来对所述消息认证码列表中的第一消息认证码进行签名得到的,因此,只要数据拥有者所持有的私钥没有泄露,其他方就不可能生成合法的验证凭据来向所述第三方发出数据验证请求。这样,就可以使得只有数据拥有者才能够使所述第三方启动对目标数据的完整性验证。
[0018]第三,在某些情况下,目标数据的存储方可能会收到其他方发出的数据验证指令而对目标数据计算第二消息验证码并输出,在此种情况下,目标数据的存储方也面临着无法判断其所收到的数据验证指令是由经过目标数据拥有者合法授权的第三方所发出的,本实施方式所提供的上述方法同样考虑到了上述安全隐患,其同样利用所述验证凭据来解决上述问题,具体的:第三方在向目标数据的存储方发出数据验证指令时,所述验证凭据会一起发给所述目标数据的存储方,所述目标数据的存储方会利用其所持有的公钥来对所述验证凭据进行解密以对所述验证凭据进行验证,从而来确认所述第三方是否为合法授权的数据核查方。这样,就使得只有经过目标数据拥有者合法授权的第三方才能够使目标数据的存储方启动对目标数据计算所述第二消息验证码并输出的动作。
[0019]综合上述三方面的有益效果,本发明实施方式所提供的上述对目标数据的存储完整性进行验证的方法及系统,不但能够在保证目标数据的具体内容在验证过程中不会被授权验证的第三方知悉,而且还能够通过所述验证凭据来避免各个验证环节所存在的信息泄露隐患,进一步保证了目标数据的私密性。

【专利附图】

【附图说明】
[0020]图1为本发明实施方式所提供的对目标数据的存储完整性进行验证的方法的流程图。

【具体实施方式】
[0021]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
[0022]请参阅图1,本发明实施方式所提供的对目标数据的存储完整性进行验证的方法,其包括如下步骤:
[0023]SI,对目标数据进行处理,以生成消息认证码列表,所述消息认证码列表中包括能够对所述目标数据进行唯一性识别的标记、密钥以及利用所述密钥对所述目标数据计算得到的第一消息认证码;
[0024]通常,不同的用户会将大量的数据存储在云端服务器内,如果要根据某一用户的需求来对特定数据的完整性进行核查验证时,首先就需要在云端服务器所存储的大量数据中找到用户所指定的数据。
[0025]因此,在本步骤中,在对目标数据进行存储的过程中,通过对所述目标数据进行标记,可以在需要对所述目标数据的完整性进行核查验证时,依据所述目标数据存储时生成的所述标记来对所述目标数据进行唯一性识别确定。
[0026]在本步骤中,以F表示所述目标数据,以对所述目标数据F进行命名的方式来对所述目标数据进行唯一性标记,具体的,在本实施方式中,以nameF作为所述标记来用于对所述目标数据F进行唯一性识别。
[0027]可以理解的,对所述目标数据F进行唯一性标记的方式并不限于对其进行命名,在本发明其它实施方式中,还可以采用其它的方式来对所述目标数据F进行唯一性标记,只要生成的所述标记能够对所述目标数据F进行唯一性识别即可。
[0028]消息认证码是根据信息的全部内容通过某种算法产生的一种检验码,它与信息的全部内容密切相关。即使文件中有一比特的改变,都会导致消息认证码的改变。
[0029]因此,在对所述目标数据F进行保存时,对所述目标数据F进行计算来得到消息认证码,之后,在用户需要对所述目标数据F的完整性进行核查验证时,只需要以同样的方式再次计算出所述目标数据F的消息认证码,并与所述目标数据F保存时生成的所述消息认证码进行比较,即可确认所述目标数据F在存储过程中是否被篡改过,从而达到对所述目标数据F的完整性进行核查。
[0030]在本步骤中,大致可细分为如下两个步骤:
[0031]首先,对待存储的所述目标数据F进行计算以生成第一消息认证码;
[0032]具体的,对待存储的所述目标数据F进行计算以生成第一消息认证码的过程大致如下:选定t个密钥k1; k2,……,kt,其中,t为大于等于I的整数;使用这t个密钥依次对F计算第一消息认证码,得到F的第一消息认证码的集合Im1, m2,......,mj ,其中Iiii =
MACki(F),其中 i = 1,2,......,t。
[0033]其次,记录(nameF, G^m1), (k2, m2),......,(kt, mt))作为F的消息认证码列表,其中,nameF为所述用于对所述目标数据F进行唯一性识别的标记,(kt, mt)代表一一对应的密钥及由该密钥计算得来的第一消息认证码,在本步骤中,所述第一消息认证码的个数取决于所述密钥的个数。
[0034]S2,存储所述目标数据及所述消息认证码列表;
[0035]在本实施方式中,所述目标数据F及所述消息认证码列表存储于云端服务器。
[0036]可以理解的,用于对所述目标数据F及所述消息认证码列表进行存储的并不限于云端服务器,还可以是其它的存储空间或者存储设备。
[0037]S3,基于所述消息认证码列表生成验证凭据,所述验证凭据用于作为授权依据来向第三方进行授权以对所述目标数据的存储完整性进行核查;
[0038]具体的,在本步骤中,以δ来表示所述验证凭据,所述验证凭据δ的生成过程大致如下:在所述消息认证码列表中任意选取一对密钥及第一消息认证码(ki; Hli);采用非对称加密的方式对选取的所述第一消息认证码进行签名,具体的,选取一对公私钥对(pk, Sk),其中,私钥Sk由用户持有,公钥Pk分别由所述目标数据F的存储方以及被用户授权进行数据验证的第三方持有,用户利用私钥Sk对(F,ki)进行签名,得到验证凭据δ =Sigsk (nameF, k)。
[0039]在本步骤中,所述验证凭据δ的作用主要包括如下几个方面:第一,用户在生成所述验证凭据δ后,将(namepki,!^ δ )发送给第三方以完成向所述第三方的授权;第二,被用户授权进行数据验证的所第三方在收到对所述目标数据F的完整性进行数据验证的请求时,所述第三方可通过执行Verpk(OiameDki), δ)以利用其所持有的公钥pk来对所述验证凭据δ进行解密以对所述验证凭据δ进行验证,从而来确认所述数据验证请求是否合法,验证通过后,所述第三方则接受此次数据验证请求。
[0040]S4,基于所述验证凭据来利用所述密钥对当前存储的所述目标数据计算第二消息认证码,其中所述第二消息认证码的计算方法与所述第一消息认证码的计算方法相同;
[0041]在本步骤中,所述验证凭据δ的作用主要是用来使所述目标数据的存储方对发出数据验证指令的所述第三方的合法性进行确认,具体的,在所述第三方在接受了用户的审计请求后,其将Oiam^ki, δ)随同数据验证指令一起发送给所述目标数据的存储方,所述目标数据的存储方通过执行Verpk(OiameDki), δ)以利用其所持有的公钥pk来对所述验证凭据5进行解密以对所述验证凭据δ进行验证,从而来确认所述第三方是否为合法授权的数据核查方,在验证通过后,所述目标数据的存储方接受所述数据验证指令。
[0042]在所述目标数据的存储方接受了所述数据验证指令后,首先根据nameF来对所述目标数据进行定位,之后执行m = MACki(F)以利用所述第三方提供的密钥Ici来对其当前所存储的目标数据进行计算来得到对应的第二消息认证码,之后将得到的所述第二消息认证码反馈给所述第三方。
[0043]S5,比对所述第一消息认证码与所述第二消息认证码,以对所述目标数据的存储完整性进行验证。
[0044]在收到所述存储方反馈的所述第二消息认证码后,第三方通过比对所述第一消息认证码与所述第二消息认证码即可对所述存储方所存储的所述目标数据的完整性进行验证,具体的:若所述存储方反馈的所述第二消息认证码与所述第一消息认证码相同,则代表所述存储方所存储的所述目标数据未被删除、篡改,所述目标数据保持完整;若所述存储方反馈的所述第二消息认证码与所述第一消息认证码不同,则代表所述存储方所存储的所述目标数据可能被删除、篡改。
[0045]通过上述方式来对存储的数据的完整性进行验证的有益效果在于:
[0046]第一,一般情况下,对存储在云端服务器或者其它存储设备上的数据进行完整性验证的工作会委托给第三方进行,而目标数据的拥有者在很多情况下是不愿意第三方在验证过程中得知目标数据的具体内容的,因此,本实施方式采用“以同样的方式来对存储前及存储后的目标数据计算第一消息认证码以及第二消息认证码,并通过对比所述第一消息认证码及第二消息认证码来对存储状态下的目标数据的完整性进行验证”的方式可以最大限度的保证用户所存储的数据的具体内容不会因为验证而泄露,有效的保证了目标数据的机密性;
[0047]第二,被授权对目标数据进行完整性验证的第三方通常会根据接收到的数据验证请求来启动对目标数据的完整性验证,通常状况下,所述第三方无法正确的判断其所收到的数据验证请求是否是由所述目标数据的拥有者所发出,因而存在一定的信息安全隐患,也就是说,可能存在不良分子假冒所述目标数据拥有者来发出数据验证请求的安全隐患,本实施方式中采用基于消息认证码列表生成验证凭据的方式可以很好的解决上述问题,具体的,在本实施方式所提供的上述步骤中,所述第三方是基于由消息认证码列表生成验证凭据来对目标数据进行核查的,也就是说,在本实施方式中,第三方收到的数据验证请求中包含有所述验证凭据,由于所述验证凭据是数据拥有者以非对称加密的方式来对所述消息认证码列表中的第一消息认证码进行签名得到的,因此,只要数据拥有者所持有的私钥没有泄露,其他方就不可能生成合法的验证凭据来向所述第三方发出数据验证请求。这样,就可以使得只有数据拥有者才能够使所述第三方启动对目标数据的完整性验证。
[0048]第三,在某些情况下,目标数据的存储方可能会收到其他方发出的数据验证指令而对目标数据计算第二消息验证码并输出,在此种情况下,目标数据的存储方也面临着无法判断其所收到的数据验证指令是由经过目标数据拥有者合法授权的第三方所发出的,本实施方式所提供的上述方法同样考虑到了上述安全隐患,其同样利用所述验证凭据来解决上述问题,具体的:第三方在向目标数据的存储方发出数据验证指令时,所述验证凭据会一起发给所述目标数据的存储方,所述目标数据的存储方会利用其所持有的公钥来对所述验证凭据进行解密以对所述验证凭据进行验证,从而来确认所述第三方是否为合法授权的数据核查方。这样,就使得只有经过目标数据拥有者合法授权的第三方才能够使目标数据的存储方启动对目标数据计算所述第二消息验证码并输出的动作。
[0049]综合上述三方面的有益效果,本发明实施方式所提供的上述对目标数据的存储完整性进行验证的方法,不但能够在保证目标数据的具体内容在验证过程中不会被授权验证的第三方知悉,而且还能够通过所述验证凭据来避免各个验证环节所存在的信息泄露隐患,进一步保证了目标数据的私密性。
[0050]在本发明所提供的上述步骤中,由于每次对目标数据F的验证都要使用所述消息认证码列表中的一对G^mi),为了提高安全系数,这些使用过的不会被重新使用,因此在所述消息认证码列表中的消息认证码使用完后,进一步的,包括对所述目标数据的消息认证码列表进行更新的步骤,具体如下:重新选定t个密钥k1; k2,……,kt,其中,t为大于等于I的整数;使用这t个密钥依次对F计算第一消息认证码,得到F的第一消息认证码的集合 Im1, m2,......,mj ,其中 Hii = MACki (F),其中 i = 1,2,......,t。
[0051 ] 基于上述对目标数据的存储完整性进行验证的方法,本发明实施方式还提供了一种对目标数据的存储完整性进行验证的系统,其包括:
[0052]消息认证码列表生成模块,其用于对目标数据进行处理,以生成消息认证码列表,所述消息认证码列表中包括能够对所述目标数据进行唯一性识别的标记、密钥以及利用所述密钥对所述目标数据计算得到的第一消息认证码;
[0053]验证凭据生成模块,其用于基于所述消息认证码列表生成验证凭据,所述验证凭据用于作为授权依据来向第三方进行授权以对所述目标数据的存储完整性进行核查;
[0054]数据验证模块,其用于基于所述验证凭据来利用所述密钥对当前存储的所述目标数据计算第二消息认证码,其中所述第二消息认证码的计算方法与所述第一消息认证码的计算方法相同;以及
[0055]消息认证码比较模块,其用于比对所述第一消息认证码与所述第二消息认证码,以对所述目标数据的存储完整性进行验证。
[0056]当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种对目标数据的存储完整性进行验证的方法,其包括如下步骤: 对目标数据进行处理,以生成消息认证码列表,所述消息认证码列表中包括能够对所述目标数据进行唯一性识别的标记、密钥以及利用所述密钥对所述目标数据计算得到的第一消息认证码; 基于所述消息认证码列表生成验证凭据,所述验证凭据用于作为授权依据来向第三方进行授权以对所述目标数据的存储完整性进行核查; 基于所述验证凭据来利用所述密钥对处于存储状态的所述目标数据计算第二消息认证码,其中所述第二消息认证码的计算方法与所述第一消息认证码的计算方法相同;以及 比对所述第一消息认证码与所述第二消息认证码,以对所述目标数据的存储完整性进行验证。
2.如权利要求1所述的对目标数据的存储完整性进行验证的方法,其特征在于:所述标记是通过对所述目标数据进行命名的方式来形成的。
3.如权利要求1所述的对目标数据的存储完整性进行验证的方法,其特征在于,生成所述消息认证码列表的步骤包括如下步骤:选定t个密钥k1; k2,……,kt,其中,t为大于等于I的整数;使用这t个密钥依次对所述目标数据计算第一消息认证码,得到所述第一消息认证码的集合 Im1, m2,......, mj ;记录(nameF, G^m1), (k2, m2),......,(kt, mt))作为所述目标数据的消息认证码列表,其中,nameF为所述用于对所述目标数据进行唯一性识别的标记,(kt,mt)代表一一对应的密钥及由该密钥计算得来的第一消息认证码。
4.如权利要求3所述的对目标数据的存储完整性进行验证的方法,其特征在于,所述验证凭据的生成过程包括如下步骤:在所述消息认证码列表中选取一对密钥及第一消息认证码(ki; Hli);采用非对称加密的方式对选取的所述第一消息认证码进行签名得到所述验证凭据。
5.如权利要求1所述的对目标数据的存储完整性进行验证的方法,其特征在于:所述目标数据存储于云端服务器。
6.如权利要求1所述的对目标数据的存储完整性进行验证的方法,其特征在于:进一步包括对所述目标数据的消息认证码列表进行更新的步骤。
7.一种对目标数据的存储完整性进行验证的系统,其包括: 消息认证码列表生成模块,其用于对目标数据进行处理,以生成消息认证码列表,所述消息认证码列表中包括能够对所述目标数据进行唯一性识别的标记、密钥以及利用所述密钥对所述目标数据计算得到的第一消息认证码; 验证凭据生成模块,其用于基于所述消息认证码列表生成验证凭据,所述验证凭据用于作为授权依据来向第三方进行授权以对所述目标数据的存储完整性进行核查; 数据验证模块,其用于基于所述验证凭据来利用所述密钥对处于存储状态的所述目标数据计算第二消息认证码,其中所述第二消息认证码的计算方法与所述第一消息认证码的计算方法相同;以及 消息认证码比较模块,其用于比对所述第一消息认证码与所述第二消息认证码,以对所述目标数据的存储完整性进行验证。
8.如权利要求7所述的对目标数据的存储完整性进行验证的系统,其特征在于:所述标记是通过对所述目标数据进行命名的方式来形成的。
9.如权利要求7所述的对目标数据的存储完整性进行验证的系统,其特征在于,所述消息认证码列表的生成过程包括如下步骤:选定t个密钥k1; k2,……,kt,其中,t为大于等于I的整数;使用这t个密钥依次对所述目标数据计算第一消息认证码,得到所述第一消息认证码的集合 Im1, m2,......, mj ;记录(nameF, G^m1), (k2, m2),......,(kt, mt))作为所述目标数据的消息认证码列表,其中,nameF为所述用于对所述目标数据进行唯一性识别的标记,(kt,mt)代表一一对应的密钥及由该密钥计算得来的第一消息认证码。
10.如权利要求9所述的对目标数据的存储完整性进行验证的系统,其特征在于,所述验证凭据的生成过程包括如下步骤:在所述消息认证码列表中选取一对密钥及第一消息认证码(ki; Hli);采用非对称加密的方式对选取的所述第一消息认证码进行签名得到所述验证凭据。
【文档编号】H04L29/06GK104135470SQ201410330978
【公开日】2014年11月5日 申请日期:2014年7月11日 优先权日:2014年7月11日
【发明者】钟焰涛 申请人:宇龙计算机通信科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1