一种信息存储方法、检验方法及存储、检验系统
技术领域
本发明涉及电子信息存储技术领域,特别涉及一种信息存储方法、检验方法及存储、检验系统。
背景技术
目前,基于办公、物流运输、以及时间等多方面考虑,各行各业都采用无纸化办公,即电子信息文件代替纸类文件,但是网络上的信息的存储、查看、修改、传输都是通过同一个存储平台实现,用户隐私与信息的安全完全依赖于存储平台的信任度;其电子信息的存储及用户的隐私存在用户不知情的情况下泄漏及篡改的风险。
发明内容
本发明目的之一在于提供了一种信息存储方法和一种检验方法,结合区块链,以区块链的公信力防止用户的信息被篡改,以在用户信息中设置嵌设信息,防止用户的信息的泄漏。
本发明实施例提供的一种信息存储方法,包括:
步骤S1:获取待存储的第一信息;
步骤S2:获取初始信息掩码;
步骤S3:基于初始信息掩码和预设的第一掩码生成第一嵌设信息,步骤S4:将第一嵌设信息基于预设的第一预设规则嵌设到第一信息中,形成第二信息;
步骤S5:计算第二信息的第一哈希值;
步骤S6:将第一哈希值存储到区块链;
步骤S7:将第二信息和初始信息掩码发送给第一用户。
优选的,初始信息掩码包括:根据用户的公钥生成的数字水印。
优选的,预设的第一掩码包括:至少一个根据第一信息的存储时间变化的第一变量,和/或,至少一个根据第一信息的读取时间变化的第二变量。
优选的,步骤S3:基于用户的初始信息掩码和预设的第一掩码生成第一嵌设信息,包括:
在初始掩码中嵌设预设的第一掩码。
优选的,第一预设规则包括:在第一信息的至少一个第一预设位置嵌设进第一嵌设信息,
和/或,
在第一信息的至少一个第二预设位置将第一嵌设信息中的字节与第一信息的字节交错存储。
优选的,在步骤S1和步骤S2之间还包括:
步骤S1.1:计算第一信息的第二哈希值;
步骤S1.2:将第二哈希值发送给第二用户或存储到区块链。
优选的,在步骤S3和步骤S4之间还包括:
步骤S3.1:计算第一嵌设信息的第三哈希值;
步骤S3.2:将第三哈希值发送给第三用户或存储到区块链,
本发明还提供一种信息检验方法,包括:
步骤S11:获取第二信息作为待检验信息;
步骤S12:计算待检验信息的第四哈希值;
步骤S13:将第四哈希值与存储在区块链的第一哈希值进行比对;
步骤S14:当第四哈希值与第一哈希值相同时,返回未被篡改和查看的信息。
优选的,信息检验方法还包括:
步骤S15:根据第二预设规则将待检验信息拆分为第二嵌设信息和第三信息;
步骤S16:计算第二嵌设信息的第五哈希值,将第五哈希值与第三哈希值进行比对,当第五哈希值与第三哈希值相同时,返回未被查看的信息;
步骤S17:当待第五哈希值与第三验证哈希值不同时,返回已被查看的信息,并根据初始掩码提取第二掩码,基于第二掩码获取存储及读取时间列表;
和/或,
步骤18:计算第三信息的第六哈希值;
步骤19:将第六哈希值与第二哈希值进行比对,当第六哈希值与第二证哈希值不同时,返回已被篡改的信息;
步骤S20:当第六哈希值与第二哈希值相同时,返回未被篡改的信息。
本发明还提供一种信息存储、检验系统,包括存储系统和检验系统;其中存储系统包括:
第一信息获取模块,用于获取待存储的第一信息;
初始信息掩码获取模块,用于获取初始信息掩码;
第一嵌设信息获取模块,用于基于初始信息掩码和预设的第一掩码生成第一嵌设信息,
第二信息处理模块,用于将第一嵌设信息基于预设的第一预设规则嵌设到第一信息中,形成第二信息;
第一哈希值计算模块,用于计算第二信息的第一哈希值;
第一哈希值存储模块,用于将第一哈希值存储到区块链;
第二信息发送模块,用于将第二信息和初始信息掩码发送给第一用户;
检验系统包括:
检验信息获取模块,用于获取第二信息作为待检验信息;
第四哈希值计算模块,用于计算待检验信息的第四哈希值;
比对模块,用于将第四哈希值与存储在区块链的第一哈希值进行比对,
当第四哈希值与第一哈希值相同时,返回未被篡改和查看的信息。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种信息存储方法的示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明实施例提供了一种信息存储方法,如图1所示,包括:
步骤S1:获取待存储的第一信息;
步骤S2:获取初始信息掩码;
步骤S3:基于初始信息掩码和预设的第一掩码生成第一嵌设信息;
步骤S4:将第一嵌设信息基于预设的第一预设规则嵌设到第一信息中,形成第二信息;
步骤S5:计算第二信息的第一哈希值;
步骤S6:将第一哈希值存储到区块链;
步骤S7:将第二信息和初始信息掩码发送给第一用户。
上述技术方案的工作原理及有益效果为:
区块链技术是一个去中心化存储技术,由于在区块链的结构体里,篡改数据时需要至少51%的节点同意,这在现有的技术中是不可能完成的。因此,区块链可以有效地防止数据被篡改。直接将第一信息存储在区块链中虽然能有效防止篡改,但是其占用的资源较多,本发明只将第二信息的第一哈希值存储在区块链上,节约了区块链资源的占用,基于区块链的特性保证了第一哈希值不被篡改;用不能被篡改的第一哈希值对第二信息是否被篡改进行验证,能使用户及时发现第二信息是否被篡改及查看。将第一嵌设信息基于第一预设规则嵌设进用户的信息中,使别人并不能从第二信息直接得到第一信息,从而防止用户的信息的泄漏。
在一个实施例中,第一预设规则为多个,存储在网络服务器上,即对每个第一预设规则进行编号,将编号与第一信息的首字符或预设位置的字符对应存储。根据第一信息的首字进行调用,实现第一预设规则的存储及调用,节约用户的存储资源。
在一个实施例中,初始信息掩码包括:根据用户的公钥生成的数字水印。
一个公钥对应一个私钥,使用公钥加密的数据就需要该公钥对应的私钥进行解密。现有技术已经有很多成熟的公钥数字水印技术,本申请就不作详细说明。
在一个实施例中,预设的第一掩码包括:至少一个根据第一信息的存储时间变化的第一变量,和/或,至少一个根据第一信息的读取时间变化的第二变量。
上述技术方案的工作原理及有益效果为:
第一变量的值根据第一信息的存储时间变化,但不根据第二信息的存储时间变化;第一变量对应的时间取点具体为:将第一嵌设信息基于预设的第一预设规则嵌设到第一信息中形成第二信息的时间点,此时间点表示第一信息存储时间;例如:第一变量可以是表示为与第一信息存储时间的正比或反比函数。第二变量的值根据第一信息的读取时间变化,但不根据第二信息的读取时间变化;第二变量对应的时间取点具体为:根据第二预设规则将待检验信息拆分为第二嵌设信息和第三信息的时间点,此时间点表示第一信息读取时间;例如:第二变量可以是表示为与第一信息读取时间的正比或反比函数。同理,还可以设置与第二信息复制时间相关的第三变量。通过预设的第一掩码实现对用户信息的监控,实现了用户可以及时发现信息的泄漏。
在一个实施例中,步骤S3:基于用户的初始信息掩码和预设的第一掩码生成第一嵌设信息,包括:
在初始掩码中嵌设预设的第一掩码。
上述技术方案的工作原理及有益效果为:
当初始信息掩码为图片时,预设的第一掩码可以嵌设在图片中预设位置;形成一个整体即第一嵌设信息。通过各种嵌设方式,将第一掩码和初始掩码结合为一个整体。
在一个实施例中,第一预设规则包括:在第一信息的至少一个第一预设位置嵌设进第一嵌设信息,
和/或,
在第一信息的至少一个第二预设位置将第一嵌设信息中的字节与第一信息的字节交错存储。
在一个实施例中,在步骤S1和步骤S2之间还包括:
步骤S1.1:计算第一信息的第二哈希值;
步骤S1.2:将第二哈希值发送给第二用户或存储到区块链。
上述技术方案的工作原理及有益效果为
通过计算第二哈希值,并将第二哈希值存储到区块链或由第二人用户保管,将第二哈希值存储在区块链可以保证第二哈希值不被篡改;由非本人的第二人保管降低第二哈希值被篡改的可能性。在校验时以第二哈希值为基准,可以对第一信息是否被篡改进行确定,从而有效保证用户的信息的安全。
在一个实施例中,在步骤S3和步骤S4之间还包括:
步骤S3.1:计算第一嵌设信息的第三哈希值;
步骤S3.2:将第三哈希值发送给第三用户或存储到区块链。
上述技术方案的工作原理及有益效果为
通过计算第三哈希值,并将第三哈希值存储到区块链或由第二人用户保管,将第三哈希值存储在区块链可以保证第三哈希值不被篡改;由非本人的第二人保管降低第三哈希值被篡改的可能性。在校验时以第三哈希值为基准,可以对第一信息是否被查看进行确定,从而有效保证用户的信息的安全。
本发明还提供一种信息检验方法,包括:
步骤S11:获取第二信息作为待检验信息;
步骤S12:计算待检验信息的第四哈希值;
步骤S13:将第四哈希值与存储在区块链的第一哈希值进行比对;
步骤S14:当第四哈希值与第一哈希值相同时,返回未被篡改和查看的信息。
上述技术方案的工作原理及有益效果为:
区块链技术是一个去中心化存储技术,由于在区块链的结构体里,篡改数据时需要至少51%的节点同意,这在现有的技术中是不可能完成的。因此,区块链可以有效地防止数据被篡改。将检验时的第二信息的哈希值【第四哈希值】与第一哈希值进行比对,当比对相同时确定第二信息是否被篡改,能使用户及时发现第二信息是否被篡改。此外,当第四哈希值和第一哈希值比对相同还可以确定第二信息中包含的第一信息未被查看。
在一个实施例中,信息检验方法还包括:
步骤S15:根据第二预设规则将待检验信息拆分为第二嵌设信息和第三信息;
步骤S16:计算第二嵌设信息的第五哈希值,将第五哈希值与第三哈希值进行比对,当第五哈希值与第三哈希值相同时,返回未被查看的信息;
步骤S17:当待第五哈希值与第三验证哈希值不同时,返回已被查看的信息,并根据初始掩码提取第二掩码,基于第二掩码获取存储及读取时间列表;
和/或,
步骤18:计算第三信息的第六哈希值;
步骤19:将第六哈希值与第二哈希值进行比对,当第六哈希值与第二证哈希值不同时,返回已被篡改的信息;
步骤S20:当第六哈希值与第二哈希值相同时,返回未被篡改的信息。
上述技术方案的工作原理及有益效果为:
本实施例可以应用在当第四哈希值和第一哈希值不相同时。第一信息未发生查看和篡改时,第一嵌设信息和第二嵌设信息是一致的。在校验时将第二嵌设信息从待校验信息【存储方法中的第二信息】拆分出并计算哈希值【第五哈希值】,将计算出的哈希值与存储到区块链或由第二人用户保管的第三哈希值进行比对,当比对相同时,确定第一信息未被查看;当比对不相同时,确定第一信息已被查看。
第三信息对应着存储方法中的第一信息,基于第六哈希值与第二哈希值的比对可以确定第三信息是否被篡改。
例如:当通过第四哈希值与第一哈希值的比对确定了第二信息发生篡改,其中还存在下面这种情况:第一掩码中变量发生改变,即第二信息曾经被转换为第一信息,但第一信息本身未被篡改,只是发生了外泄。因此,通过第五哈希值与第三哈希值对于第二嵌设信息进行验证,通过第二嵌设信息确定第一信息是否被查看,通过第六哈希值与第二哈希值对于第一信息进行验证,确定第一信息是否被篡改。在对第二信息进行一次验证的基础上,对第二嵌设信息和/或第一信息进行二次验证,进一步掌握信息的安全。
本发明还提供一种信息存储、检验系统,包括存储系统和检验系统;其中存储系统包括:
第一信息获取模块,用于获取待存储的第一信息;
初始信息掩码获取模块,用于获取初始信息掩码;
第一嵌设信息获取模块,用于基于初始信息掩码和预设的第一掩码生成第一嵌设信息,
第二信息处理模块,用于将第一嵌设信息基于预设的第一预设规则嵌设到第一信息中,形成第二信息;
第一哈希值计算模块,用于计算第二信息的第一哈希值;
第一哈希值存储模块,用于将第一哈希值存储到区块链;
第二信息发送模块,用于将第二信息和初始信息掩码发送给第一用户;
检验系统包括:
检验信息获取模块,用于获取第二信息作为待检验信息;
第四哈希值计算模块,用于计算待检验信息的第四哈希值;
比对模块,用于将第四哈希值与存储在区块链的第一哈希值进行比对;当第四哈希值与第一哈希值相同时,返回未被篡改和查看的信息。
上述技术方案的工作原理及有益效果为:
区块链技术是一个去中心化存储技术,由于在区块链的结构体里,篡改数据时需要至少51%的节点同意,这在现有的技术中是不可能完成的。因此,区块链可以有效地防止数据被篡改。直接将第一信息存储在区块链中虽然能有效防止篡改,但是其占用的资源较多,本发明只将第二信息的第一哈希值存储在区块链上,节约了区块链资源的占用,基于区块链的特性保证了第一哈希值不被篡改;用不能被篡改的第一哈希值对第二信息是否被篡改进行验证,能使用户及时发现第二信息是否被篡改及查看。将第一嵌设信息基于第一预设规则嵌设进用户的信息中,使别人并不能从第二信息直接得到第一信息,从而防止用户的信息的泄漏。
在校验时,将检验时的第二信息的哈希值【第四哈希值】与第一哈希值进行比对,当比对相同时确定第二信息是否被篡改,能使用户及时发现第二信息是否被篡改。此外,当第四哈希值和第一哈希值比对相同还可以确定第二信息中包含的第一信息未被查看。
在一个实施例中,第一预设规则为多个,存储在网络服务器上,即对每个第一预设规则进行编号,将编号与第一信息的首字符或预设位置的字符对应存储。根据第一信息的首字进行调用,实现第一预设规则的存储及调用,节约用户的存储资源。
在一个实施例中,初始信息掩码包括:根据用户的公钥生成的数字水印。
一个公钥对应一个私钥,使用公钥加密的数据就需要该公钥对应的私钥进行解密。现有技术已经有很多成熟的公钥数字水印技术,本申请就不作详细说明。
在一个实施例中,预设的第一掩码包括:至少一个根据第一信息的存储时间变化的第一变量,和/或,至少一个根据第一信息的读取时间变化的第二变量。
上述技术方案的工作原理及有益效果为:
第一变量的值根据第一信息的存储时间变化,但不根据第二信息的存储时间变化;第一变量对应的时间取点具体为:将第一嵌设信息基于预设的第一预设规则嵌设到第一信息中形成第二信息的时间点,此时间点表示第一信息存储时间;例如:第一变量可以是表示为与第一信息存储时间的正比或反比函数。第二变量的值根据第一信息的读取时间变化,但不根据第二信息的读取时间变化;第二变量对应的时间取点具体为:根据第二预设规则将待检验信息拆分为第二嵌设信息和第三信息的时间点,此时间点表示第一信息读取时间;例如:第二变量可以是表示为与第一信息读取时间的正比或反比函数。同理,还可以设置与第二信息复制时间相关的第三变量。通过预设的第一掩码实现对用户信息的监控,实现了用户可以及时发现信息的泄漏。
在一个实施例中,存储系统还包括:
第二哈希值计算模块,用于计算第一信息的第二哈希值;
第二哈希值存储模块,用于将第二哈希值发送给第二用户或存储到区块链。
上述技术方案的工作原理及有益效果为
通过计算第二哈希值,并将第二哈希值存储到区块链或由第二人用户保管,将第二哈希值存储在区块链可以保证第二哈希值不被篡改;由非本人的第二人保管降低第二哈希值被篡改的可能性。在校验时以第二哈希值为基准,可以对第一信息是否被篡改进行确定,从而有效保证用户的信息的安全。
在一个实施例中,存储系统还包括:
第三哈希值计算模块,用于计算第一嵌设信息的第三哈希值;
第三哈希值存储模块,用于将第三哈希值发送给第三用户或存储到区块链。
上述技术方案的工作原理及有益效果为
通过计算第三哈希值,并将第三哈希值存储到区块链或由第二人用户保管,将第三哈希值存储在区块链可以保证第三哈希值不被篡改;由非本人的第二人保管降低第三哈希值被篡改的可能性。在校验时以第三哈希值为基准,可以对第一信息是否被查看进行确定,从而有效保证用户的信息的安全。
在一个实施例中,检验系统还包括:
拆分模块,用于根据第二预设规则将待检验信息拆分为第二嵌设信息和第三信息;
第五哈希值计算模块,用于计算第二嵌设信息的第五哈希值,
比对模块,还用于将第五哈希值与第三哈希值进行比对,当第五哈希值与第三哈希值相同时,返回未被查看的信息;
当待第五哈希值与第三验证哈希值不同时,返回已被查看的信息,
日志输出模块,用于根据初始掩码提取第二掩码,基于第二掩码获取存储及读取时间列表;
和/或,
第六哈希值计算模块,用于计算第三信息的第六哈希值;
比对模块,还拥有将第六哈希值与第二哈希值进行比对,当第六哈希值与第二证哈希值不同时,返回已被篡改的信息;
当第六哈希值与第二哈希值相同时,返回未被篡改的信息。
上述技术方案的工作原理及有益效果为:
本实施例可以应用在当第四哈希值和第一哈希值不相同时。第一信息未发生查看和篡改时,第一嵌设信息和第二嵌设信息是一致的。在校验时将第二嵌设信息从待校验信息【存储方法中的第二信息】拆分出并计算哈希值【第五哈希值】,将计算出的哈希值与存储到区块链或由第二人用户保管的第三哈希值进行比对,当比对相同时,确定第一信息未被查看;当比对不相同时,确定第一信息已被查看。
第三信息对应着存储方法中的第一信息,基于第六哈希值与第二哈希值的比对可以确定第三信息是否被篡改。
例如:当通过第四哈希值与第一哈希值的比对确定了第二信息发生篡改,其中还存在下面这种情况:第一掩码中变量发生改变,即第二信息曾经被转换为第一信息,但第一信息本身未被篡改,只是发生了外泄。因此,通过第五哈希值与第三哈希值对于第二嵌设信息进行验证,通过第二嵌设信息确定第一信息是否被查看,通过第六哈希值与第二哈希值对于第一信息进行验证,确定第一信息是否被篡改。在对第二信息进行一次验证的基础上,对第二嵌设信息和/或第一信息进行二次验证,进一步掌握信息的安全。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。