基于杂凑算法的数据验证方法、装置及电子设备与流程

未命名 09-10 阅读:53 评论:0


1.本技术涉及信息安全领域,具体而言,涉及一种基于杂凑算法的数据验证方法、装置及电子设备。


背景技术:

2.目前,传统的杂凑算法一般通过单个杂凑算法对待验证的数据进行处理,以验证待验证的数据是否被篡改或被删除。但由于单个杂凑算法对待验证的数据进行处理的过程较为简单,以及随着计算能力的增强,恶意攻击者可以通过穷举法发动碰撞攻击、生日攻击等方式找到与相同输出内容的数据,从而伪造身份信息或篡改数据,导致用户或企业遭受损失,降低了杂凑算法的安全性。
3.针对相关技术中使用传统杂凑算法确定待验证的数据是否被篡改时,由于密码分析技术的发展以及多种计算设备计算能力的增强,使得攻击者可以篡改数据或伪造身份认证,导致无法准确地验证风险数据,降低了企业运行的安全性的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本技术的主要目的在于提供一种基于杂凑算法的数据验证方法、装置及电子设备,以解决相关技术中使用传统杂凑算法确定待验证的数据是否被篡改时,由于密码分析技术的发展以及多种计算设备计算能力的增强,使得攻击者可以篡改数据或伪造身份认证,导致无法准确地验证风险数据,降低了企业运行的安全性的问题。
5.为了实现上述目的,根据本技术的一个方面,提供了一种基于杂凑算法的数据验证方法,该方法包括:在对待验证的数据进行验证之前,获取消息明文,其中,所述消息明文用于验证待验证的数据的数据完整性;从算法库中随机确定n个杂凑算法以及所述n个杂凑算法的参数,其中,n是大于1的整数;采用所述n个杂凑算法以及所述n个杂凑算法的参数分别对所述消息明文进行处理,得到n个第一摘要值;依据所述n个第一摘要值对所述待验证的数据进行验证,得到验证结果。
6.进一步地,从算法库中随机确定n个杂凑算法以及所述n个杂凑算法的参数包括:依据对所述消息明文进行验证的安全需求,确定数值集合,其中,所述数值集合中包括m个正整数,m是正整数;在所述数值集合的m个正整数中随机确定一个数值作为所述n的值;在所述算法库中随机确定所述n个杂凑算法以及所述n个杂凑算法的参数。
7.进一步地,在所述算法库中随机确定所述n个杂凑算法以及所述n个杂凑算法的参数包括:依据预设分组规则对所述算法库中的杂凑算法进行分组,得到l组杂凑算法,其中,l是大于1的整数;在所述l组杂凑算法中分别进行随机选择,得到所述n个杂凑算法;依据所述n个杂凑算法确定所述n个杂凑算法的参数。
8.进一步地,依据所述n个杂凑算法确定所述n个杂凑算法的参数包括:若所述n个杂凑算法中存在支持密钥的第一杂凑算法,则确定所述第一杂凑算法所支持的密钥长度;在
所述第一杂凑算法所支持的密钥长度中随机选择一个密钥长度,得到所述第一杂凑算法对应的密钥长度;依据所述第一杂凑算法对应的密钥长度确定所述n个杂凑算法的参数。
9.进一步地,依据所述第一杂凑算法对应的密钥长度确定所述n个杂凑算法的参数包括:若所述第一杂凑算法中存在支持至少一个分组加密算法的第二杂凑算法,则在所述至少一个分组加密算法中,随机选择一个分组加密算法实例化所述第二杂凑算法,得到实例化的第二杂凑算法;依据所述实例化的第二杂凑算法对应的密钥长度和第三杂凑算法对应的密钥长度确定所述n个杂凑算法的参数,其中,所述第三杂凑算法表示所述第一杂凑算法中不支持分组加密算法的杂凑算法。
10.进一步地,采用所述n个杂凑算法以及所述n个杂凑算法的参数分别对所述消息明文进行处理,得到n个第一摘要值包括:依据所述实例化的第二杂凑算法对应的密钥长度随机生成第一密钥,并采用所述实例化的第二杂凑算法和所述第一密钥对所述消息明文进行处理,得到g个摘要值,其中,g是整数;依据所述第三杂凑算法对应的密钥长度随机生成第二密钥,采用所述第三杂凑算法和所述第二密钥对所述消息明文进行处理,得到h个摘要值,其中,h是整数;采用第四杂凑算法对所述消息明文进行处理,得到j个摘要值,其中,所述第四杂凑算法表示所述n个杂凑算法中不支持密钥的杂凑算法,其中,j是整数;依据所述g个摘要值、所述h个摘要值和所述j个摘要值确定所述n个第一摘要值,其中,g、h和j之和等于n。
11.进一步地,依据所述n个第一摘要值对所述待验证的数据进行验证,得到验证结果包括:确定所述n个杂凑算法中每个杂凑算法对所述消息明文进行处理时所使用的密钥和杂凑算法,得到n个目标杂凑算法和p个目标密钥,其中,p是不大于n的整数;依据所述n个目标杂凑算法和p个目标密钥对所述待验证的数据进行处理,得到n个第二摘要值;判断所述n个第一摘要值与所述n个第二摘要值是否相同;若所述n个第一摘要值与所述n个第二摘要值相同,则确定所述待验证的数据没有被篡改;若所述n个第一摘要值与所述n个第二摘要值不相同,则确定所述待验证的数据被篡改。
12.进一步地,在从算法库中随机确定n个杂凑算法以及所述n个杂凑算法的参数之前,所述方法还包括:确定所述算法库中包含的杂凑算法的目标数量;依据所述目标数量确定所述算法库中包含的杂凑算法;确定所述算法库中每个杂凑算法对应的算法信息,其中,所述算法信息至少包括以下信息:算法是否支持密钥的使用。
13.为了实现上述目的,根据本技术的另一方面,提供了一种基于杂凑算法的数据验证装置,该装置包括:获取单元,用于在对待验证的数据进行验证之前,获取消息明文,其中,所述消息明文用于验证待验证的数据的数据完整性;第一确定单元,用于从算法库中随机确定n个杂凑算法以及所述n个杂凑算法的参数,其中,n是大于1的整数;处理单元,用于采用所述n个杂凑算法以及所述n个杂凑算法的参数分别对所述消息明文进行处理,得到n个第一摘要值;验证单元,用于依据所述n个第一摘要值对所述待验证的数据进行验证,得到验证结果。
14.进一步地,所述第一确定单元包括:第一确定子单元,用于依据对所述消息明文进行验证的安全需求,确定数值集合,其中,所述数值集合中包括m个正整数,m是正整数;第二确定子单元,用于在所述数值集合的m个正整数中随机确定一个数值作为所述n的值;第三确定子单元,用于在所述算法库中随机确定所述n个杂凑算法以及所述n个杂凑算法的参
数。
15.进一步地,所述第三确定子单元包括:分组模块,用于依据预设分组规则对所述算法库中的杂凑算法进行分组,得到l组杂凑算法,其中,l是大于1的整数;获取模块,用于在所述l组杂凑算法中分别进行随机选择,得到所述n个杂凑算法;确定模块,用于依据所述n个杂凑算法确定所述n个杂凑算法的参数。
16.进一步地,所述第一确定模块包括:第一确定子模块,用于若所述n个杂凑算法中存在支持密钥的第一杂凑算法,则确定所述第一杂凑算法所支持的密钥长度;获取子模块,用于在所述第一杂凑算法所支持的密钥长度中随机选择一个密钥长度,得到所述第一杂凑算法对应的密钥长度;第二确定子模块,用于依据所述第一杂凑算法对应的密钥长度确定所述n个杂凑算法的参数。
17.进一步地,所述第二确定子模块包括:获取次子模块,用于若所述第一杂凑算法中存在支持至少一个分组加密算法的第二杂凑算法,则在所述至少一个分组加密算法中,随机选择一个分组加密算法实例化所述第二杂凑算法,得到实例化的第二杂凑算法;确定次子模块,用于依据所述实例化的第二杂凑算法对应的密钥长度和第三杂凑算法对应的密钥长度确定所述n个杂凑算法的参数,其中,所述第三杂凑算法表示所述第一杂凑算法中不支持分组加密算法的杂凑算法。
18.进一步地,所述处理单元包括:第一处理子单元,用于依据所述实例化的第二杂凑算法对应的密钥长度随机生成第一密钥,并采用所述实例化的第二杂凑算法和所述第一密钥对所述消息明文进行处理,得到g个摘要值,其中,g是整数;第二处理子单元,用于依据所述第三杂凑算法对应的密钥长度随机生成第二密钥,采用所述第三杂凑算法和所述第二密钥对所述消息明文进行处理,得到h个摘要值,其中,h是整数;第三处理子单元,用于采用第四杂凑算法对所述消息明文进行处理,得到j个摘要值,其中,所述第四杂凑算法表示所述n个杂凑算法中不支持密钥的杂凑算法,其中,j是整数;第四确定子单元,用于依据所述g个摘要值、所述h个摘要值和所述j个摘要值确定所述n个第一摘要值,其中,g、h和j之和等于n。
19.进一步地,所述验证单元包括:第五确定子单元,用于确定所述n个杂凑算法中每个杂凑算法对所述消息明文进行处理时所使用的密钥和杂凑算法,得到n个目标杂凑算法和p个目标密钥,其中,p是不大于n的整数;第四处理子单元,用于依据所述n个目标杂凑算法和p个目标密钥对所述待验证的数据进行处理,得到n个第二摘要值;判断子单元,用于判断所述n个第一摘要值与所述n个第二摘要值是否相同;第六确定子单元,用于若所述n个第一摘要值与所述n个第二摘要值相同,则确定所述待验证的数据没有被篡改;第七确定子单元,用于若所述n个第一摘要值与所述n个第二摘要值不相同,则确定所述待验证的数据被篡改。
20.进一步地,所述装置还包括:第二确定单元,用于在从算法库中随机确定n个杂凑算法以及所述n个杂凑算法的参数之前,确定所述算法库中包含的杂凑算法的目标数量;第三确定单元,用于依据所述目标数量确定所述算法库中包含的杂凑算法;第四确定单元,用于确定所述算法库中每个杂凑算法对应的算法信息,其中,所述算法信息至少包括以下信息:算法是否支持密钥的使用。
21.为了实现上述目的,根据本技术的一个方面,提供了一种电子设备,包括一个或多
个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项所述基于杂凑算法的数据验证方法。
22.通过本技术,采用以下步骤:在对待验证的数据进行验证之前,获取消息明文,其中,所述消息明文用于验证待验证的数据的数据完整性;从算法库中随机确定n个杂凑算法以及所述n个杂凑算法的参数,其中,n是大于1的整数;采用所述n个杂凑算法以及所述n个杂凑算法的参数分别对所述消息明文进行处理,得到n个第一摘要值;依据所述n个第一摘要值对所述待验证的数据进行验证,得到验证结果,解决了相关技术中使用传统杂凑算法确定待验证的数据是否被篡改时,由于密码分析技术的发展以及多种计算设备计算能力的增强,使得攻击者可以篡改数据或伪造身份认证,导致无法准确地验证风险数据,降低了企业运行的安全性的问题。通过在算法库中随机确定多个杂凑算法和相应的参数,以及并行使用多个杂凑算法对待验证的数据进行验证,增强了杂凑过程的复杂程度,降低了杂凑过程被恶意攻击者破解的可能性,达到了保证数据的数据完整性的效果,进一步达到了提高数据的安全性的效果。
附图说明
23.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
24.图1是根据本技术实施例一提供的基于杂凑算法的数据验证方法的流程图;
25.图2是根据本技术实施例一提供的可选的基于杂凑算法的数据验证方法的示意图一;
26.图3是根据本技术实施例一提供的可选的基于杂凑算法的数据验证方法的示意图二;
27.图4是根据本技术实施例二提供的基于杂凑算法的数据验证装置的示意图;
28.图5是根据本技术实施例五提供的基于杂凑算法的数据验证电子设备的示意图。
具体实施方式
29.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
30.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息、用户输入的信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据、验证的数据、处理的数据、输入的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
31.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
32.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
33.实施例一
34.下面结合优选的实施步骤对本发明进行说明,图1是根据本技术实施例一提供的基于杂凑算法的数据验证方法的流程图,如图1所示,该方法包括如下步骤:
35.步骤s101,在对待验证的数据进行验证之前,获取消息明文,其中,消息明文用于验证待验证的数据的数据完整性。
36.在本实施例一中,数据完整性是指数据被正确保存、传输和处理,没有被篡改、删除或损坏。消息明文表示完整的数据,被用于验证待验证的数据是否完整或是否被篡改。消息明文是一个比特串,例如,字符串、文件等。
37.具体地,在分布式系统中传输文件时,为了验证接收方接收到的文件是否被篡改,接收方可以对文件内容计算sha-256哈希值,并将该哈希值与发送方预先保存好的哈希值进行比较,以确保接收方接收到的文件未被篡改或丢失。
38.类似地,用户在进行账户注册时,服务器会将用户设置的明文密码通过md5算法生成哈希值存储在数据库中。当用户进行登录验证时,服务器会对用户输入的密码进行md5算法处理生成哈希值,并将该哈希值与数据库中存储的哈希值比较,从而实现用户登录的验证。
39.步骤s102,从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数,其中,n是大于1的整数。
40.在本实施例一中,杂凑算法通过散列函数将数据转化成固定长度且相似度极低、不能逆推回原始数据的一段信息字符串,以鉴别数据的完整性或验证身份。杂凑算法主要应用于数据完整性检测、数字签名等领域。为了增强数据的安全性,以及避免较简单的哈希算法受到碰撞攻击造成损失,可以在算法库中随机确定n个杂凑算法以及n个杂凑算法对应的参数,增强杂凑过程的复杂性,使得恶意攻击者难以破解杂凑过程。
41.步骤s103,采用n个杂凑算法以及n个杂凑算法的参数分别对消息明文进行处理,得到n个第一摘要值。
42.在本实施例一中,为了对待验证的数据进行验证,采用多个不同的杂凑算法并行对消息明文进行杂凑处理,得到消息明文对应的摘要值,使用摘要值对待验证的数据进行验证。多个不同的杂凑算法同时被破解的概率很低,可以显著增强杂凑过程的安全性。具体地,采用sm3(md结构)和sha3-384(sponge结构)两个杂凑算法并行进行杂凑处理时,sm3算法和sha3-384算法同时遭破解的概率比单个算法遭破解的概率低,即使sm3算法和sha3-384算法中的单个算法被破解,仍然可以通过另一种杂凑算法来验证数据的完整性。
43.步骤s104,依据n个第一摘要值对待验证的数据进行验证,得到验证结果。
44.在本实施例一中,为了对待验证的数据进行验证,采用对消息明文进行的处理杂凑算法对待验证的数据进行相同的处理,得到待验证的数据对应的摘要值,并将消息明文
对应的摘要值和待验证的数据对应的摘要值进行对比,得到待验证的数据的验证结果。具体地,采用sm3、sha1、sha256三种杂凑算法对接收方接收到的文件进行处理得到三个第二摘要值,并将发送方预先准备好的三个第一摘要值与三个第二摘要值相应地进行对比,得到待验证的数据的验证结果。
45.综上所述,本技术实施例一提供的基于杂凑算法的数据验证方法,通过在对待验证的数据进行验证之前,获取消息明文,其中,消息明文用于验证待验证的数据的数据完整性;从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数,其中,n是大于1的整数;采用n个杂凑算法以及n个杂凑算法的参数分别对消息明文进行处理,得到n个第一摘要值;依据n个第一摘要值对待验证的数据进行验证,得到验证结果,解决了相关技术中使用传统杂凑算法确定待验证的数据是否被篡改时,由于密码分析技术的发展以及多种计算设备计算能力的增强,使得攻击者可以篡改数据或伪造身份认证,导致无法准确地验证风险数据,降低了企业运行的安全性的问题。通过在算法库中随机确定多个杂凑算法和相应的参数,以及并行使用多个杂凑算法对待验证的数据进行验证,增强了杂凑过程的复杂程度,降低了杂凑过程被恶意攻击者破解的可能性,达到了保证数据的数据完整性的效果,进一步达到了提高数据的安全性的效果。
46.可选地,在本技术实施例一提供的基于杂凑算法的数据验证方法中,从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数包括:依据对消息明文进行验证的安全需求,确定数值集合,其中,数值集合中包括m个正整数,m是正整数;在数值集合的m个正整数中随机确定一个数值作为n的值;在算法库中随机确定n个杂凑算法以及n个杂凑算法的参数。
47.在本实施例一中,安全需求是根据业务实际情况对杂凑过程的安全程度的需求。为了增强杂凑过程的安全性,可以依据安全需求确定数值集合,依据该数值集合中的控制并行执行的杂凑算法的数量,进而灵活地控制杂凑过程的复杂程度。具体地,若数值集合是{2,3,3,5},从数值集合中随机选择一个整数作为n的值,则n=2的概率是0.25,n=3的概率是0.5,n=5的概率是0.25。
48.另外,当n在数值集合中进行随机选择时,可以计算n的期望值为en。一般地,当en越大杂凑过程越复杂,杂凑过程的安全性越高,但是杂凑过程运行的效率越低;相反地,当en越小杂凑过程越简单,杂凑过程的安全性越低,但是杂凑过程运行的效率越高。所以在实际生产中,可以从杂凑过程的安全性和杂凑过程的执行效率两方面进行综合考虑,从而确定数值集合中的数值。
49.通过依据实际生产情况确定数值集合,并依据数值集合中的数值确定并行执行的杂凑算法的数量,实现了平衡杂凑过程的安全性和杂凑过程的执行效率的效果,达到了依据实际生产情况灵活地控制杂凑过程的安全程度的效果。
50.可选地,在本技术实施例一提供的基于杂凑算法的数据验证方法中,在算法库中随机确定n个杂凑算法以及n个杂凑算法的参数包括:依据预设分组规则对算法库中的杂凑算法进行分组,得到l组杂凑算法,其中,l是大于1的整数;在l组杂凑算法中分别进行随机选择,得到n个杂凑算法;依据n个杂凑算法确定n个杂凑算法的参数。
51.在本实施例一中,预设分组规则可以是杂凑算法的算法属性,例如,杂凑算法的摘要长度、杂凑算法的算法内部结构、杂凑算法的密钥长度等属性。为了增强杂凑过程的复杂
程度,可以将算法库中的杂凑算法进行分组,得到不同分组的杂凑算法,再从不同分组的杂凑算法中确定n个杂凑算法。
52.具体地,在对算法库中的杂凑算法进行分组时,可以依据杂凑算法的摘要长度进行分组,得到128bits组、256bits组等;可以依据杂凑算法的算法内部结构进行分组,得到md结构组、sponge结构组等;可以依据杂凑算法的密钥长度进行分组,得到128bits组、192bits组、256bits组等;可以依据杂凑算法的算法来源进行分组,得到国家标准组、国际标准组等。
53.另外,在l组杂凑算法中选择n个杂凑算法时,若l大于n,则可以在l组杂凑算法中随机选择n组杂凑算法,再从每组杂凑算法中分别选择一个杂凑算法,得到n个杂凑算法;若l等于n,则可以从每组杂凑算法中分别选择一个杂凑算法,得到n个杂凑算法;若l小于n,则可以从每组杂凑算法中分别选择一个杂凑算法,得到l个杂凑算法,再从算法库中随机选择n-l个杂凑算法,依据l个杂凑算法和n-l个杂凑算法确定n个杂凑算法。
54.通过对算法库中的杂凑算法进行分组,并从不同分组的杂凑算法中随机确定n个杂凑算法,降低了n个杂凑算法之间的耦合性,增加了恶意攻击者破解相关程度较低的n个杂凑算法的难度,增强了杂凑过程的安全性,避免了单个杂凑被破解导致数据被篡改的情况发生,达到了增强数据的安全性的效果。
55.可选地,在本技术实施例一提供的基于杂凑算法的数据验证方法中,依据n个杂凑算法确定n个杂凑算法的参数包括:若n个杂凑算法中存在支持密钥的第一杂凑算法,则确定第一杂凑算法所支持的密钥长度;在第一杂凑算法所支持的密钥长度中随机选择一个密钥长度,得到第一杂凑算法对应的密钥长度;依据第一杂凑算法对应的密钥长度确定n个杂凑算法的参数。
56.在本实施例一中,为了增强杂凑过程的复杂程度,可以并行执行带密钥的杂凑算法以及不带密钥的杂凑算法,以增大密钥空间。其中,对于不同的带密钥的杂凑算法,还可以随机生成密钥,以避免相关密钥的攻击。对于支持多种密钥长度的杂凑算法,还可以随机选择杂凑算法的密钥长度,以增大恶意攻击者的分析复杂度。
57.具体地,若3个杂凑算法包括支持密钥的杂凑算法a、支持密钥的杂凑算法b和不支持密钥的杂凑算法c,则首先确定杂凑算法a支持的密钥长度为128bits、192bits和256bits,以及确定杂凑算法b支持的密钥长度为192bits和256bits;接着,通过随机选择确定杂凑算法a对应的密钥长度为128bits,以及杂凑算法b对应的密钥长度为192bits;最后,依据杂凑算法a对应的密钥长度为128bits,以及杂凑算法b对应的密钥长度为192bits确定n个杂凑算法的参数。不支持密钥的杂凑算法没有相应的算法参数。
58.通过采用支持密钥的杂凑算法和不支持密钥的杂凑算法进行杂凑处理,能够增强杂凑过程的鲁棒性和安全性,并且通过随机确定杂凑算法对应的密钥长度,能够增大杂凑过程的密钥空间,增大恶意攻击者的分析复杂度,达到了增强杂凑过程的安全性的效果。
59.可选地,在本技术实施例一提供的基于杂凑算法的数据验证方法中,依据第一杂凑算法对应的密钥长度确定n个杂凑算法的参数包括:若第一杂凑算法中存在支持至少一个分组加密算法的第二杂凑算法,则在至少一个分组加密算法中,随机选择一个分组加密算法实例化第二杂凑算法,得到实例化的第二杂凑算法;依据实例化的第二杂凑算法对应的密钥长度和第三杂凑算法对应的密钥长度确定n个杂凑算法的参数,其中,第三杂凑算法
表示第一杂凑算法中不支持分组加密算法的杂凑算法。
60.在本实施例一中,为了增强杂凑过程的安全性,可以在支持密钥的第一杂凑算法中确定支持分组加密算法的第二杂凑算法,并随机确定一个分组加密算法实例化第二杂凑算法,依据实例化的第二杂凑算法和实例化的第二杂凑算法对应的密钥长度确定n个杂凑算法的参数。
61.具体地,3个杂凑算法包括杂凑算法a、杂凑算法b和杂凑算法c,杂凑算法a对应的密钥长度为128bits,杂凑算法a支持分组加密算法d、分组加密算法e和分组加密算法f的使用,杂凑算法b对应的密钥长度为192bits,杂凑算法c不支持使用密钥。为了确定杂凑算法a的参数,首先,需要在分组加密算法d、分组加密算法e和分组加密算法f中随机确定一个分组加密算法,得到分组加密算法f;接着,使用分组加密算法f实例化杂凑算法a;最后,依据分组加密算法f实例化杂凑算法a、杂凑算法a对应的密钥长度128bits确定杂凑算法a的参数。此外,依据杂凑算法b对应的密钥长度192bits确定杂凑算法b的参数。杂凑算法c没有额外的参数。
62.通过随机确定的分组加密算法并实例化支持密钥的杂凑算法,能够增强杂凑过程的复杂程度,增大了杂凑过程的密钥空间,以及增大恶意攻击者的分析复杂度,达到了增强杂凑过程的安全性的效果。
63.可选地,在本技术实施例一提供的基于杂凑算法的数据验证方法中,采用n个杂凑算法以及n个杂凑算法的参数分别对消息明文进行处理,得到n个第一摘要值包括:依据实例化的第二杂凑算法对应的密钥长度随机生成第一密钥,并采用实例化的第二杂凑算法和第一密钥对消息明文进行处理,得到g个摘要值,其中,g是整数;依据第三杂凑算法对应的密钥长度随机生成第二密钥,采用第三杂凑算法和第二密钥对消息明文进行处理,得到h个摘要值,其中,h是整数;采用第四杂凑算法对消息明文进行处理,得到j个摘要值,其中,第四杂凑算法表示n个杂凑算法中不支持密钥的杂凑算法,其中,j是整数;依据g个摘要值、h个摘要值和j个摘要值确定n个第一摘要值,其中,g、h和j之和等于n。
64.在本实施例一中,为了验证待验证的数据的数据完整性,需要依据确定的n个杂凑算法以及n个杂凑算法的参数,分别对消息明文进行处理,得到n个摘要值(即第一摘要值)。
65.具体地,杂凑算法3个杂凑算法包括杂凑算法a、杂凑算法b和杂凑算法c,杂凑算法a对应的密钥长度为128bits,并且使用分组加密算法f实例化杂凑算法a,杂凑算法b对应的密钥长度为192bits,杂凑算法c不支持使用密钥。为了采用3个杂凑算法并行对消息明文进行处理,得到3个摘要值,需要进行以下步骤:首先,对于支持密钥和分组加密算法的杂凑算法a,随机生成128bits的密钥a1,再采用分组加密算法f实例化后的杂凑算法a和密钥a1对消息明文进行处理,得到摘要值h1;接着,对于仅支持密钥的杂凑算法b,随机生成192bits的密钥b1,再采用杂凑算法b和密钥b1对消息明文进行处理,得到摘要值h2;最后,对于不支持密钥的杂凑算法c,直接采用杂凑算法c对消息明文进行处理,得到摘要值h3。
66.通过多个杂凑算法并行对消息明文进行处理,能够增大杂凑过程的算法空间,增加了恶意攻击者破解消息明文的难度,达到了提高杂凑过程的安全性的效果,同时通过并行执行多个杂凑处理的过程,在增加杂凑过程的安全性的前提下提高了杂凑过程的运行效率。
67.可选地,在本技术实施例一提供的基于杂凑算法的数据验证方法中,依据n个第一
摘要值对待验证的数据进行验证,得到验证结果包括:确定n个杂凑算法中每个杂凑算法对消息明文进行处理时所使用的密钥和杂凑算法,得到n个目标杂凑算法和p个目标密钥,其中,p是不大于n的整数;依据n个目标杂凑算法和p个目标密钥对待验证的数据进行处理,得到n个第二摘要值;判断n个第一摘要值与n个第二摘要值是否相同;若n个第一摘要值与n个第二摘要值相同,则确定待验证的数据没有被篡改;若n个第一摘要值与n个第二摘要值不相同,则确定待验证的数据被篡改。
68.在本实施例一中,为了验证待验证的数据的数据完整性,需要依据确定的n个杂凑算法以及n个杂凑算法的参数,分别对待验证的数据进行处理,得到n个摘要值(即第二摘要值),并使用n个摘要值(即第二摘要值)与对消息明文进行杂凑处理生成的n个摘要值(即第一摘要值)进行比较,得到比较结果。若n个第一摘要值与n个第二摘要值对应相同,则确定待验证的数据是完整的数据,没有被篡改;若存在第一摘要值与该第一摘要值对应第二摘要值不相同,则确定待验证的数据不是完整的数据,可能丢失或已经被篡改。
69.具体地,首先,采用3个杂凑算法对消息明文m进行杂凑处理,得到3个摘要值包括:采用分组加密算法f实例化的杂凑算法a和密钥a1对消息明文m进行杂凑处理,得到摘要值h1;采用杂凑算法b和密钥b1对消息明文m进行杂凑处理,得到摘要值h2;采用杂凑算法c对消息明文m进行杂凑处理,得到摘要值h3。接着,采用3个杂凑算法对待验证的数据k进行杂凑处理,得到3个摘要值包括:采用分组加密算法f实例化的杂凑算法a和密钥a1对待验证的数据k进行杂凑处理,得到摘要值k1。采用杂凑算法b和密钥b1对待验证的数据k进行杂凑处理,得到摘要值k2。采用杂凑算法c对待验证的数据k进行杂凑处理,得到摘要值k3。最后,将对消息明文m进行处理得到的3个摘要值和对待验证的数据k进行处理得到的3个摘要值进行对比,得到验证结果包括:若摘要值h1与k1相同,并且摘要值h2与k2相同,并且摘要值h3与k3相同,则认为待验证的数据k是完整的数据,没有被篡改;若摘要值h1与k1不相同,或者摘要值h2与k2不相同,或者摘要值h3与k3不相同,则认为待验证的数据k不是完整的数据,可能被篡改。
70.另外,还可以按照杂凑算法的预设排序顺序,将n个第一摘要值拼接为第三摘要值,将n个第二摘要值拼接为第四摘要值。通过比较第三摘要值和第四摘要值是否完全相同,得到待验证的数据的验证结果。
71.通过将对消息明文进行处理得到的第一摘要值与对待验证的数据进行处理得到的第二摘要值进行对比,得到验证结果,增加了对待验证的数据进行验证的复杂程度,增加了恶意攻击者破解消息明文的难度,达到了提高杂凑过程的安全性的效果。
72.可选地,在本技术实施例一提供的基于杂凑算法的数据验证方法中,在从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数之前,上述的方法还包括:确定算法库中包含的杂凑算法的目标数量;依据目标数量确定算法库中包含的杂凑算法;确定算法库中每个杂凑算法对应的算法信息,其中,算法信息至少包括以下信息:算法是否支持密钥的使用。
73.在本实施例一中,为了对增加杂凑算法的安全性,可以在确定n个杂凑算法之前,确定算法库中包含的杂凑算法,并且确定算法库中杂凑算法对应的算法信息。具体地,首先,确定算法库中杂凑算法的目标数量。目标数量会间接地影响杂凑过程的安全性,即目标数量越大杂凑过程越安全。接着,确定目标数量的杂凑算法。在选择杂凑算法时,需要选择
没有重大安全缺陷的杂凑算法,以及尽可能多地选择多种类型的杂凑算法。最后,确定算法库中每个杂凑算法的算法信息。算法信息可以是杂凑算法是否支持使用密钥,还可以包括杂凑算法是否支持分组加密算法的使用、杂凑算法支持的密钥长度等信息。
74.通过确定算法库中的杂凑算法,以及算法库中每个杂凑算法的算法信息,能够得到包含多种类型的杂凑算法,增加了杂凑过程的复杂程度,以及能够灵活地控制杂凑过程中使用的杂凑算法,达到了提高杂凑过程的安全性的效果。
75.可选地,在本实施例一中,本方案对消息明文进行杂凑的流程可以如图2所示。首先,确定n个杂凑算法以及n个杂凑算法的参数。接着,采用n个杂凑算法以及n个杂凑算法的参数分别对消息明文进行处理,得到n个第一摘要值。
76.可选地,在本实施例一中,本方案对待验证的数据进行杂凑的流程可以如图3所示。首先,依据对消息明文进行n次杂凑的过程,确定n个杂凑算法以及n个杂凑算法的参数。接着,采用n个杂凑算法以及n个杂凑算法的参数分别对待验证的数据进行处理,得到n个第二摘要值。
77.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
78.实施例二
79.本技术实施例二还提供了一种基于杂凑算法的数据验证装置,需要说明的是,本技术实施例二的基于杂凑算法的数据验证装置可以用于执行本技术实施例一所提供的用于基于杂凑算法的数据验证方法。以下对本技术实施例二提供的基于杂凑算法的数据验证装置进行介绍。
80.图4是根据本技术实施例二的基于杂凑算法的数据验证装置的示意图。如图4所示,该装置包括:获取单元401、第一确定单元402、处理单元403和验证单元404。
81.具体地,获取单元401,用于在对待验证的数据进行验证之前,获取消息明文,其中,消息明文用于验证待验证的数据的数据完整性。
82.第一确定单元402,用于从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数,其中,n是大于1的整数。
83.处理单元403,用于采用n个杂凑算法以及n个杂凑算法的参数分别对消息明文进行处理,得到n个第一摘要值。
84.验证单元404,用于依据n个第一摘要值对待验证的数据进行验证,得到验证结果。
85.本技术实施例二提供的基于杂凑算法的数据验证装置,通过获取单元401在对待验证的数据进行验证之前,获取消息明文,其中,消息明文用于验证待验证的数据的数据完整性;第一确定单元402从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数,其中,n是大于1的整数;处理单元403采用n个杂凑算法以及n个杂凑算法的参数分别对消息明文进行处理,得到n个第一摘要值;验证单元404依据n个第一摘要值对待验证的数据进行验证,得到验证结果,解决了相关技术中使用传统杂凑算法确定待验证的数据是否被篡改时,由于密码分析技术的发展以及多种计算设备计算能力的增强,使得攻击者可以篡改数据或伪造身份认证,导致无法准确地验证风险数据,降低了企业运行的安全性的问题。通过在算法库中随机确定多个杂凑算法和相应的参数,以及并行使用多个杂凑算法对待验证的数据进
行验证,增强了杂凑过程的复杂程度,降低了杂凑过程被恶意攻击者破解的可能性,达到了保证数据的数据完整性的效果,进一步达到了提高数据的安全性的效果。
86.可选地,在本技术实施例二提供的基于杂凑算法的数据验证装置中,上述的第一确定单元402包括:第一确定子单元,用于依据对消息明文进行验证的安全需求,确定数值集合,其中,数值集合中包括m个正整数,m是正整数;第二确定子单元,用于在数值集合的m个正整数中随机确定一个数值作为n的值;第三确定子单元,用于在算法库中随机确定n个杂凑算法以及n个杂凑算法的参数。
87.可选地,在本技术实施例二提供的基于杂凑算法的数据验证装置中,上述的第三确定子单元包括:分组模块,用于依据预设分组规则对算法库中的杂凑算法进行分组,得到l组杂凑算法,其中,l是大于1的整数;获取模块,用于在l组杂凑算法中分别进行随机选择,得到n个杂凑算法;确定模块,用于依据n个杂凑算法确定n个杂凑算法的参数。
88.可选地,在本技术实施例二提供的基于杂凑算法的数据验证装置中,上述的第一确定模块包括:第一确定子模块,用于若n个杂凑算法中存在支持密钥的第一杂凑算法,则确定第一杂凑算法所支持的密钥长度;获取子模块,用于在第一杂凑算法所支持的密钥长度中随机选择一个密钥长度,得到第一杂凑算法对应的密钥长度;第二确定子模块,用于依据第一杂凑算法对应的密钥长度确定n个杂凑算法的参数。
89.可选地,在本技术实施例二提供的基于杂凑算法的数据验证装置中,上述的第二确定子模块包括:获取次子模块,用于若第一杂凑算法中存在支持至少一个分组加密算法的第二杂凑算法,则在至少一个分组加密算法中,随机选择一个分组加密算法实例化第二杂凑算法,得到实例化的第二杂凑算法;确定次子模块,用于依据实例化的第二杂凑算法对应的密钥长度和第三杂凑算法对应的密钥长度确定n个杂凑算法的参数,其中,第三杂凑算法表示第一杂凑算法中不支持分组加密算法的杂凑算法。
90.可选地,在本技术实施例二提供的基于杂凑算法的数据验证装置中,上述的处理单元403包括:第一处理子单元,用于依据实例化的第二杂凑算法对应的密钥长度随机生成第一密钥,并采用实例化的第二杂凑算法和第一密钥对消息明文进行处理,得到g个摘要值,其中,g是整数;第二处理子单元,用于依据第三杂凑算法对应的密钥长度随机生成第二密钥,采用第三杂凑算法和第二密钥对消息明文进行处理,得到h个摘要值,其中,h是整数;第三处理子单元,用于采用第四杂凑算法对消息明文进行处理,得到j个摘要值,其中,第四杂凑算法表示n个杂凑算法中不支持密钥的杂凑算法,其中,j是整数;第四确定子单元,用于依据g个摘要值、h个摘要值和j个摘要值确定n个第一摘要值,其中,g、h和j之和等于n。
91.可选地,在本技术实施例二提供的基于杂凑算法的数据验证装置中,上述的验证单元404包括:第五确定子单元,用于确定n个杂凑算法中每个杂凑算法对消息明文进行处理时所使用的密钥和杂凑算法,得到n个目标杂凑算法和p个目标密钥,其中,p是不大于n的整数;第四处理子单元,用于依据n个目标杂凑算法和p个目标密钥对待验证的数据进行处理,得到n个第二摘要值;判断子单元,用于判断n个第一摘要值与n个第二摘要值是否相同;第六确定子单元,用于若n个第一摘要值与n个第二摘要值相同,则确定待验证的数据没有被篡改;第七确定子单元,用于若n个第一摘要值与n个第二摘要值不相同,则确定待验证的数据被篡改。
92.可选地,在本技术实施例二提供的基于杂凑算法的数据验证装置中,上述的装置
还包括:第二确定单元,用于在从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数之前,确定算法库中包含的杂凑算法的目标数量;第三确定单元,用于依据目标数量确定算法库中包含的杂凑算法;第四确定单元,用于确定算法库中每个杂凑算法对应的算法信息,其中,算法信息至少包括以下信息:算法是否支持密钥的使用。
93.所述基于杂凑算法的数据验证装置包括处理器和存储器,上述的获取单元401、第一确定单元402、处理单元403和验证单元404等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
94.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高杂凑过程的安全性。
95.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
96.本发明实施例三提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现基于杂凑算法的数据验证方法。
97.本发明实施例四提供了一种处理器,处理器用于运行程序,其中,程序运行时执行基于杂凑算法的数据验证方法。
98.如图5所示,本发明实施例五提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:通过在对待验证的数据进行验证之前,获取消息明文,其中,消息明文用于验证待验证的数据的数据完整性;从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数,其中,n是大于1的整数;采用n个杂凑算法以及n个杂凑算法的参数分别对消息明文进行处理,得到n个第一摘要值;依据n个第一摘要值对待验证的数据进行验证,得到验证结果。
99.处理器执行程序时还实现以下步骤:从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数包括:依据对消息明文进行验证的安全需求,确定数值集合,其中,数值集合中包括m个正整数,m是正整数;在数值集合的m个正整数中随机确定一个数值作为n的值;在算法库中随机确定n个杂凑算法以及n个杂凑算法的参数。
100.处理器执行程序时还实现以下步骤:在算法库中随机确定n个杂凑算法以及n个杂凑算法的参数包括:依据预设分组规则对算法库中的杂凑算法进行分组,得到l组杂凑算法,其中,l是大于1的整数;在l组杂凑算法中分别进行随机选择,得到n个杂凑算法;依据n个杂凑算法确定n个杂凑算法的参数。
101.处理器执行程序时还实现以下步骤:依据n个杂凑算法确定n个杂凑算法的参数包括:若n个杂凑算法中存在支持密钥的第一杂凑算法,则确定第一杂凑算法所支持的密钥长度;在第一杂凑算法所支持的密钥长度中随机选择一个密钥长度,得到第一杂凑算法对应的密钥长度;依据第一杂凑算法对应的密钥长度确定n个杂凑算法的参数。
102.处理器执行程序时还实现以下步骤:依据第一杂凑算法对应的密钥长度确定n个杂凑算法的参数包括:若第一杂凑算法中存在支持至少一个分组加密算法的第二杂凑算法,则在至少一个分组加密算法中,随机选择一个分组加密算法实例化第二杂凑算法,得到实例化的第二杂凑算法;依据实例化的第二杂凑算法对应的密钥长度和第三杂凑算法对应的密钥长度确定n个杂凑算法的参数,其中,第三杂凑算法表示第一杂凑算法中不支持分组
加密算法的杂凑算法。
103.处理器执行程序时还实现以下步骤:采用n个杂凑算法以及n个杂凑算法的参数分别对消息明文进行处理,得到n个第一摘要值包括:依据实例化的第二杂凑算法对应的密钥长度随机生成第一密钥,并采用实例化的第二杂凑算法和第一密钥对消息明文进行处理,得到g个摘要值,其中,g是整数;依据第三杂凑算法对应的密钥长度随机生成第二密钥,采用第三杂凑算法和第二密钥对消息明文进行处理,得到h个摘要值,其中,h是整数;采用第四杂凑算法对消息明文进行处理,得到j个摘要值,其中,第四杂凑算法表示n个杂凑算法中不支持密钥的杂凑算法,其中,j是整数;依据g个摘要值、h个摘要值和j个摘要值确定n个第一摘要值,其中,g、h和j之和等于n。
104.处理器执行程序时还实现以下步骤:依据n个第一摘要值对待验证的数据进行验证,得到验证结果包括:确定n个杂凑算法中每个杂凑算法对消息明文进行处理时所使用的密钥和杂凑算法,得到n个目标杂凑算法和p个目标密钥,其中,p是不大于n的整数;依据n个目标杂凑算法和p个目标密钥对待验证的数据进行处理,得到n个第二摘要值;判断n个第一摘要值与n个第二摘要值是否相同;若n个第一摘要值与n个第二摘要值相同,则确定待验证的数据没有被篡改;若n个第一摘要值与n个第二摘要值不相同,则确定待验证的数据被篡改。
105.处理器执行程序时还实现以下步骤:在从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数之前,上述的方法还包括:确定算法库中包含的杂凑算法的目标数量;依据目标数量确定算法库中包含的杂凑算法;确定算法库中每个杂凑算法对应的算法信息,其中,算法信息至少包括以下信息:算法是否支持密钥的使用。
106.本文中的设备可以是服务器、pc、pad、手机等。
107.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:通过在对待验证的数据进行验证之前,获取消息明文,其中,消息明文用于验证待验证的数据的数据完整性;从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数,其中,n是大于1的整数;采用n个杂凑算法以及n个杂凑算法的参数分别对消息明文进行处理,得到n个第一摘要值;依据n个第一摘要值对待验证的数据进行验证,得到验证结果。
108.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数包括:依据对消息明文进行验证的安全需求,确定数值集合,其中,数值集合中包括m个正整数,m是正整数;在数值集合的m个正整数中随机确定一个数值作为n的值;在算法库中随机确定n个杂凑算法以及n个杂凑算法的参数。
109.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在算法库中随机确定n个杂凑算法以及n个杂凑算法的参数包括:依据预设分组规则对算法库中的杂凑算法进行分组,得到l组杂凑算法,其中,l是大于1的整数;在l组杂凑算法中分别进行随机选择,得到n个杂凑算法;依据n个杂凑算法确定n个杂凑算法的参数。
110.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据n个杂凑算法确定n个杂凑算法的参数包括:若n个杂凑算法中存在支持密钥的第一杂凑算法,则确定第一杂凑算法所支持的密钥长度;在第一杂凑算法所支持的密钥长度中随机选择一
个密钥长度,得到第一杂凑算法对应的密钥长度;依据第一杂凑算法对应的密钥长度确定n个杂凑算法的参数。
111.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据第一杂凑算法对应的密钥长度确定n个杂凑算法的参数包括:若第一杂凑算法中存在支持至少一个分组加密算法的第二杂凑算法,则在至少一个分组加密算法中,随机选择一个分组加密算法实例化第二杂凑算法,得到实例化的第二杂凑算法;依据实例化的第二杂凑算法对应的密钥长度和第三杂凑算法对应的密钥长度确定n个杂凑算法的参数,其中,第三杂凑算法表示第一杂凑算法中不支持分组加密算法的杂凑算法。
112.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:采用n个杂凑算法以及n个杂凑算法的参数分别对消息明文进行处理,得到n个第一摘要值包括:依据实例化的第二杂凑算法对应的密钥长度随机生成第一密钥,并采用实例化的第二杂凑算法和第一密钥对消息明文进行处理,得到g个摘要值,其中,g是整数;依据第三杂凑算法对应的密钥长度随机生成第二密钥,采用第三杂凑算法和第二密钥对消息明文进行处理,得到h个摘要值,其中,h是整数;采用第四杂凑算法对消息明文进行处理,得到j个摘要值,其中,第四杂凑算法表示n个杂凑算法中不支持密钥的杂凑算法,其中,j是整数;依据g个摘要值、h个摘要值和j个摘要值确定n个第一摘要值,其中,g、h和j之和等于n。
113.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:依据n个第一摘要值对待验证的数据进行验证,得到验证结果包括:确定n个杂凑算法中每个杂凑算法对消息明文进行处理时所使用的密钥和杂凑算法,得到n个目标杂凑算法和p个目标密钥,其中,p是不大于n的整数;依据n个目标杂凑算法和p个目标密钥对待验证的数据进行处理,得到n个第二摘要值;判断n个第一摘要值与n个第二摘要值是否相同;若n个第一摘要值与n个第二摘要值相同,则确定待验证的数据没有被篡改;若n个第一摘要值与n个第二摘要值不相同,则确定待验证的数据被篡改。
114.当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在从算法库中随机确定n个杂凑算法以及n个杂凑算法的参数之前,上述的方法还包括:确定算法库中包含的杂凑算法的目标数量;依据目标数量确定算法库中包含的杂凑算法;确定算法库中每个杂凑算法对应的算法信息,其中,算法信息至少包括以下信息:算法是否支持密钥的使用。
115.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
116.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
117.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
118.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
119.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
120.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
121.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
122.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
123.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
124.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。

技术特征:
1.一种基于杂凑算法的数据验证方法,其特征在于,包括:在对待验证的数据进行验证之前,获取消息明文,其中,所述消息明文用于验证待验证的数据的数据完整性;从算法库中随机确定n个杂凑算法以及所述n个杂凑算法的参数,其中,n是大于1的整数;采用所述n个杂凑算法以及所述n个杂凑算法的参数分别对所述消息明文进行处理,得到n个第一摘要值;依据所述n个第一摘要值对所述待验证的数据进行验证,得到验证结果。2.根据权利要求1所述的方法,其特征在于,从算法库中随机确定n个杂凑算法以及所述n个杂凑算法的参数包括:依据对所述消息明文进行验证的安全需求,确定数值集合,其中,所述数值集合中包括m个正整数,m是正整数;在所述数值集合的m个正整数中随机确定一个数值作为所述n的值;在所述算法库中随机确定所述n个杂凑算法以及所述n个杂凑算法的参数。3.根据权利要求2所述的方法,其特征在于,在所述算法库中随机确定所述n个杂凑算法以及所述n个杂凑算法的参数包括:依据预设分组规则对所述算法库中的杂凑算法进行分组,得到l组杂凑算法,其中,l是大于1的整数;在所述l组杂凑算法中分别进行随机选择,得到所述n个杂凑算法;依据所述n个杂凑算法确定所述n个杂凑算法的参数。4.根据权利要求3所述的方法,其特征在于,依据所述n个杂凑算法确定所述n个杂凑算法的参数包括:若所述n个杂凑算法中存在支持密钥的第一杂凑算法,则确定所述第一杂凑算法所支持的密钥长度;在所述第一杂凑算法所支持的密钥长度中随机选择一个密钥长度,得到所述第一杂凑算法对应的密钥长度;依据所述第一杂凑算法对应的密钥长度确定所述n个杂凑算法的参数。5.根据权利要求4所述的方法,其特征在于,依据所述第一杂凑算法对应的密钥长度确定所述n个杂凑算法的参数包括:若所述第一杂凑算法中存在支持至少一个分组加密算法的第二杂凑算法,则在所述至少一个分组加密算法中,随机选择一个分组加密算法实例化所述第二杂凑算法,得到实例化的第二杂凑算法;依据所述实例化的第二杂凑算法对应的密钥长度和第三杂凑算法对应的密钥长度确定所述n个杂凑算法的参数,其中,所述第三杂凑算法表示所述第一杂凑算法中不支持分组加密算法的杂凑算法。6.根据权利要求5所述的方法,其特征在于,采用所述n个杂凑算法以及所述n个杂凑算法的参数分别对所述消息明文进行处理,得到n个第一摘要值包括:依据所述实例化的第二杂凑算法对应的密钥长度随机生成第一密钥,并采用所述实例化的第二杂凑算法和所述第一密钥对所述消息明文进行处理,得到g个摘要值,其中,g是整
数;依据所述第三杂凑算法对应的密钥长度随机生成第二密钥,采用所述第三杂凑算法和所述第二密钥对所述消息明文进行处理,得到h个摘要值,其中,h是整数;采用第四杂凑算法对所述消息明文进行处理,得到j个摘要值,其中,所述第四杂凑算法表示所述n个杂凑算法中不支持密钥的杂凑算法,其中,j是整数;依据所述g个摘要值、所述h个摘要值和所述j个摘要值确定所述n个第一摘要值,其中,g、h和j之和等于n。7.根据权利要求1所述的方法,其特征在于,依据所述n个第一摘要值对所述待验证的数据进行验证,得到验证结果包括:确定所述n个杂凑算法中每个杂凑算法对所述消息明文进行处理时所使用的密钥和杂凑算法,得到n个目标杂凑算法和p个目标密钥,其中,p是不大于n的整数;依据所述n个目标杂凑算法和p个目标密钥对所述待验证的数据进行处理,得到n个第二摘要值;判断所述n个第一摘要值与所述n个第二摘要值是否相同;若所述n个第一摘要值与所述n个第二摘要值相同,则确定所述待验证的数据没有被篡改;若所述n个第一摘要值与所述n个第二摘要值不相同,则确定所述待验证的数据被篡改。8.根据权利要求1所述的方法,其特征在于,在从算法库中随机确定n个杂凑算法以及所述n个杂凑算法的参数之前,所述方法还包括:确定所述算法库中包含的杂凑算法的目标数量;依据所述目标数量确定所述算法库中包含的杂凑算法;确定所述算法库中每个杂凑算法对应的算法信息,其中,所述算法信息至少包括以下信息:算法是否支持密钥的使用。9.一种基于杂凑算法的数据验证装置,其特征在于,包括:获取单元,用于在对待验证的数据进行验证之前,获取消息明文,其中,所述消息明文用于验证待验证的数据的数据完整性;第一确定单元,用于从算法库中随机确定n个杂凑算法以及所述n个杂凑算法的参数,其中,n是大于1的整数;处理单元,用于采用所述n个杂凑算法以及所述n个杂凑算法的参数分别对所述消息明文进行处理,得到n个第一摘要值;验证单元,用于依据所述n个第一摘要值对所述待验证的数据进行验证,得到验证结果。10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任意一项所述的基于杂凑算法的数据验证方法。

技术总结
本申请公开了一种基于杂凑算法的数据验证方法、装置及电子设备,该方法应用于信息安全领域,该方法包括:在对待验证的数据进行验证之前,获取消息明文;从算法库中随机确定N个杂凑算法以及N个杂凑算法的参数;采用N个杂凑算法以及N个杂凑算法的参数分别对消息明文进行处理,得到N个第一摘要值;依据N个第一摘要值对待验证的数据进行验证,得到验证结果。通过本申请,解决了相关技术中使用传统杂凑算法确定待验证的数据是否被篡改时,由于密码分析技术的发展以及多种计算设备计算能力的增强,使得攻击者可以篡改数据或伪造身份认证,导致无法准确地验证风险数据,降低了企业运行的安全性的问题。全性的问题。全性的问题。


技术研发人员:武利娟 沈蓓瑾 丁瑾 李志松
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.06.16
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐