CN117574337A - 一种基于不可见水印的数据防篡改存储方法及校验方法 - Google Patents

一种基于不可见水印的数据防篡改存储方法及校验方法 Download PDF

Info

Publication number
CN117574337A
CN117574337A CN202311709947.5A CN202311709947A CN117574337A CN 117574337 A CN117574337 A CN 117574337A CN 202311709947 A CN202311709947 A CN 202311709947A CN 117574337 A CN117574337 A CN 117574337A
Authority
CN
China
Prior art keywords
data
invisible
watermark
tamper
character
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311709947.5A
Other languages
English (en)
Inventor
冯其
周玉廷
范佳
付强
翟栋
胡章一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Cric Technology Co ltd
Original Assignee
Sichuan Cric Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Cric Technology Co ltd filed Critical Sichuan Cric Technology Co ltd
Priority to CN202311709947.5A priority Critical patent/CN117574337A/zh
Publication of CN117574337A publication Critical patent/CN117574337A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

本发明涉及数据安全领域,其公开了一种基于不可见水印的数据防篡改存储方法及校验方法,解决现有技术中数据防篡改技术导致的存储效率低、存储成本高的问题,并具备恢复被篡改数据的能力。本发明中的基于不可见水印的数据防篡改存储方法,包括以下步骤:S1、为每条待存储的数据生成唯一的数据标识,同时将数据元信息与标识绑定;S2、基于零宽字符,将数据对应的唯一的数据标识制作成不可见水印;S3、将不可见水印嵌入至待存储的数据中;S4、存储含有不可见水印的待存储数据。本发明适用于各种数据存储场景。

Description

一种基于不可见水印的数据防篡改存储方法及校验方法
技术领域
本发明涉及数据安全领域,具体涉及一种基于不可见水印的数据防篡改存储方法及校验方法。
背景技术
随着信息技术的迅速发展,数据的重要性日益凸显,已经成为了企业和个人不可或缺的重要资源。因此,数据安全也受到了前所未有的关注。数据防篡改是保障数据安全的关键环节,它能够确保数据的真实性和完整性,从而提高数据的质量,增强数据的可信度。
目前,数据存储阶段的防篡改方法主要有区块链技术和哈希算法等。
区块链,是一种去中心化、分布式的数据库技术,通过密码学和共识算法确保数据的不可篡改性。但是,区块链需要分布式存储和处理大量数据,存储效率较低。同时,区块链需要消耗大量的存储和计算资源,存储成本较高。
哈希算法,将任意长度的数据转换为固定长度的哈希值,这个过程是单向的,即无法通过哈希值逆向推导出原始数据。通过将数据进行哈希运算,可以生成唯一的哈希值,并将哈希值与数据一起存储。任何对数据的篡改都会导致哈希值变化,通过对比从而可以发现数据被篡改。但是,哈希算法只能验证数据的完整性和真实性,当数据被篡改后,无法根据哈希值还原出原始数据。
发明内容
本发明所要解决的技术问题是:提出一种基于不可见水印的数据防篡改存储方法及校验方法,解决现有技术中数据防篡改技术导致的存储效率低、存储成本高的问题,并具备恢复被篡改数据的能力。
本发明解决上述技术问题采用的技术方案是:
一方面,本发明提供了一种基于不可见水印的数据防篡改存储方法,包括以下步骤:
S1、为每条待存储的数据生成唯一的数据标识,同时将数据元信息与标识绑定;
S2、基于零宽字符,将数据对应的唯一的数据标识制作成不可见水印;
S3、将不可见水印嵌入至待存储的数据中;
S4、存储含有不可见水印的待存储数据。
进一步的,步骤S1中,所述数据元信息包括:待存储数据的hash值和原始数据经过对称加密后的定长密文。
进一步的,步骤S2中,所述基于零宽字符,将数据对应的唯一的数据标识制作成不可见水印,包括:
遍历所述数据对应的唯一的数据标识,将每一个字符转换为ASCII码,并在相邻字符的ASCII码之间引入特定符号进行分割;
将数据标识的ASCII码转换为二进制;
设置二进制的数据元素和特定符号对应的零宽字符,获得加密字典;
基于加密字典将数据标识对应的二进制数据中的数据元素和特定符号替换为零宽字符,获得不可见水印。
进一步的,所述特定符号为空格。
进一步的,步骤S3中,所述将不可见水印嵌入至待存储的数据中,包括:
将不可见水印拼接到待存储的数据的末尾。
另一方面,本发明还提供了一种基于不可见水印的数据防篡改校验方法,包括以下步骤:
S1、从含有不可见水印的待校验数据中提取出不可见水印;
S2、对提取出的不可见水印进行解析,获得待校验数据的唯一数据标识;
S3、基于待校验数据的唯一数据标识查询对应的元数据,对待校验数据计算hash值,并与元数据中的hash值进行比较,判断待校验数据是否被篡改。
进一步的,步骤S1中,所述从含有不可见水印的待校验数据中提取出不可见水印,包括:
遍历待校验数据,直到查询到第一个零宽字符,从该位置开始,截取剩余字符串,获得不可见水印。
进一步的,步骤S2中,所述对提取出的不可见水印进行解析,包括:
构建与加密字典使用相同零宽字符的解密字典;
解密时,将不可见水印中的零宽字符按照解密字典的映射关系,替换为对应的明文字符,获得按特定符号分割的二进制字符串;
将获得的所述二进制字符串按所述特定符号分割为列表,列表的每一项对应一个字符的ASCII码的二进制数;
将每一项二进制数转为十进制整数后可以得到字符的ASCII码,再将ASCII码转为字符后,拼接为字符串,即为明文水印标识。
进一步的,步骤S3中,所述对待校验数据计算hash值,并与元数据中的hash值进行比较,判断待校验数据是否被篡改,包括:
若对待校验数据计算的hash值与元数据中的hash值一致,则说明数据未被篡改,否则,判定数据被篡改。
进一步的,该方法还包括步骤:
S4、若判定待校验数据被篡改,则将元数据中的密文进行解密,来恢复数据。
本发明的有益效果是:
本发明使用零宽字符,根据数据唯一标识制作不可见水印,嵌入数据中,并将唯一标识与数据元信息同时存储。当需要检验数据的真实性和完整性时,从数据中提取水印,解析出唯一标识,根据唯一标识查询数据元信息。通过对比数据哈希值与元信息中的哈希值是否相同,从而可以判断数据是否被篡改,同时,若数据被篡改,还能根据数据元信息恢复被篡改的数据。
由于零宽字符占用存储资源少,但是制作的水印肉眼不可见却真实存在,不会被人为察觉,从而在不影响数据使用、存储的前提下,使数据具备更好的防篡改能力,从而更有效的确保数据的真实性和完整性。
附图说明
图1为本发明中的不可见水印制作流程图;
图2为本发明中的不可见水印解析流程图;
图3为本发明实施例中的基于不可见水印的数据防篡改存储及校验流程图。
具体实施方式
本发明旨在提出一种基于不可见水印的数据防篡改存储方法及校验方法,解决现有技术中数据防篡改技术导致的存储效率低、存储成本高的问题,并具备恢复被篡改数据的能力。本发明首先需要为每条数据生成唯一标识,然后基于零宽字符,将该标识制作为不可见水印。该标识使用零宽字符制作,不会被肉眼察觉,但可以检测和提取。将不可见水印嵌入数据中,即可实现防篡改功能。
具体实现上,本发明提供的基于不可见水印的数据防篡改存储方法,包括如下步骤:
S1、数据标识:
本步骤中,为每条待存储的数据生成唯一的数据标识,同时将数据元信息与标识绑定,数据元信息包括:数据hash值、原始数据经过对称加密后的定长密文。因为hash值和密文都是固定长度,所以后续保存元信息时额外引入的存储空间很少,存储成本可控。
S2、水印制作:
本步骤中,基于零宽字符,将数据的唯一标识制作成不可见水印。零宽字符,是一种字节宽度为0的,不可打印的特殊字符。在一般编辑器中,零宽字符不可见,但它真实存在。常见的零宽字符有以下几类:
零宽空格(ZWSP):用于可能需要换行处。在unicode中,表示为:U+200B。
零宽不连字(ZWNJ):放在电子文本的两个字符之间,抑制本来会发生的连字,而是以这两个字符原本的字形来绘制。在unicode中,表示为:U+200C。
零宽连字(ZWJ):是一个控制字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生连字效果。在unicode中,表示为:U+200D。
左至右符号(LRM):是一种控制字符,用于计算机的双向文稿排版。在unicode中,表示为:U+200E。
右至左符号(RLM):是一种控制字符,用于计算机的双向文稿排版。在unicode中,表示为:U+200F。
字节顺序标记(BOM):常被用来标示文件是以UTF-8、UTF-16或UTF-32编码的标记。在unicode中,表示为:U+FEFF。
不管是中文还是英文,所有的字符串都可以转为二进制的表现形式。首先,需要遍历字符串的每个字符,得到每个字符的ASCII码,ASCII码是一个整数,可以转为二进制。例如字符串“abc”转为二进制后的二进制串为:
110000111000101100011
这样转换后的所有字符的二进制数连在一起,需要还原数据时,我们无法知道每个字符对应的二进制数是多少位,所以需要引入一个符号来分割每个字符的二进制数。
假如,引入一个空格来分割字符的二进制数,那么字符串“abc”转为二进制后,表现形式为:
110000111000101100011
转变后的数据形式中只包含0、1、空格,三种符号,因此,制作不可见水印时,我们首先需要选取三种零宽字符,分别表示0、1、空格。
假设,我们选取200B、200C、200D分别表示0、1、空格,即加密字典为:(\u表示unicode编码)
{
'0':'\u200b',
'1':'\u200c',
”:'\u200d',
}
那么字符串“abc”转为二进制形式后,基于加密字典加密后,生成的不可见水印为:
\u200c\u200c\u200b\u200b\u200b\u200b\u200c\u200d\u200c\u200c\u200b\u200b\u200b\u200c\u200b\u200d\u200c\u200c\u200b\u200b\u200b\u200c\u200c
打印不可见水印,肉眼无法察觉,但它却真实存在。如上所述的水印的整个制作过程参见图1。
S3、水印嵌入:
本步骤中,将不可见水印嵌入到待存储的数据中。水印本身是一个字符串,将水印字符串拼接到待存储的数据最后面,即可完成水印嵌入。水印拼接在待存储数据最后面,可以减少水印对数据条件查询的影响。
S4、数据存储:
本步骤中,将带有不可见水印的数据存储起来。水印只会额外增加一定的数据长度,不会改变数据结构,因此不会影响数据存储。
基于上述,本发明实现了基于不可见水印的数据防篡改存储。
在采用上述方案进行防篡改存储的基础上,本发明提供的基于不可见水印的数据防篡改校验方法,包括以下步骤:
S1、水印提取:
本步骤中,在需要验证数据完整性和真实性时,提取出数据中的不可见水印。提取水印时,无法知道原始数据长度,需要遍历原始数据,直到查询到第一个零宽字符,从该位置开始截取剩余字符串,即为不可见水印。
S2、水印解析:
本步骤中,即要对提取出的水印进行解析,获取数据的唯一标识。
首先需要构建解密字典,解密字典需要与加密字典对应,即:加密、解密使用相同的零宽字符。在本方案中,与加密字典对应的解密字典为:
{
'\u200b':'0',
'\u200c':'1',
'\u200d':”,
}
解密时,将水印中的零宽字符按照解密字典映射关系,替换为对应的明文字符即可得到唯一标识按照空格分隔字符后的二进制形式。例如,不可见水印如下:
\u200c\u200c\u200b\u200b\u200b\u200b\u200c\u200d\u200c\u200c\u200b\u200b\u200b\u200c\u200b\u200d\u200c\u200c\u200b\u200b\u200b\u200c\u200c
按照解密字典解密后,可以得到按字符分隔的二进制串,如下:
110000111000101100011
然后,将以上二进制形式的字符串按空格分割为列表,列表的每一项对应一个字符的ascii码的二进制数,将每一项二进制数转为十进制整数后可以得到字符的ascii码,再将ascii码转为字符后,拼接为字符串,即为明文水印标识。如上所述的水印的整个解析过程参见图2。
S3、数据校验:
本步骤中,可以通过标识查询到对应的元信息,通过对比当前数据的哈希值和元信息中的哈希值,可以判断数据是否被篡改。如果哈希值不一致,则说明数据被篡改,只需要将元信息中的密文解密,即可恢复原始数据。
基于上述,本发明实现了基于不可见水印的数据防篡改校验。
实施例:
假设,有待存储数据D=“test data”,本方案基于零宽字符制作不可见水印,实现数据防篡改存储和校验,其流程参见图3,包括以下实施步骤:
S1、为数据D生成唯一标识t,假设t=“abc”。
S2、将唯一标识与数据元信息绑定。数据元信息包括:数据D的哈希值,使用hash(D)表示;数据D经过对称加密后的定长密文,使用enc(D)表示。
S3、选择零宽字符,生成加密字典、解密字典。加密字典使用ED表示,解密字典使用DD表示。假设,ED、DD分别如下:
//加密字典
ED={
'0':'\u200b',
'1':'\u200c',
”:'\u200d',
}
//解密字典
DD={
'\u200b':'0',
'\u200c':'1',
'\u200d':”,
}
S4、以字符为最小单位,遍历数据D的唯一标识t(t=abc),将t的每一个字符转换为ASCII码,并使用空格连接,然后将ASCII码转为二进制。转换后,t的二进制串表现形式如下:
110000111000101100011
S5、遍历上一步转换后t的二进制串,根据加密字典ED,将t的二进制串转换为零宽字符表示形式,得到标识t的不可见水印,使用t_mask表示,如下:
\u200c\u200c\u200b\u200b\u200b\u200b\u200c\u200d\u200c\u200c\u200b\u200b\u200b\u200c\u200b\u200d\u200c\u200c\u200b\u200b\u200b\u200c\u200c
S6、将t_mask拼接到数据D之后,得到带有不可见水印的数据D`,如下:
data\u200c\u200c\u200b\u200b\u200b\u200b\u200c\u200d\u200c\u200c\u200b\u200b\u200b\u200c\u200b\u200d\u200c\u200c\u200b\u200b\u200b\u200c\u200c
S7、将D`、t、hash(D)、enc(D)存入数据库。使用D`代替原始数据D;t、hash(D)、enc(D)一同存入单独的表中,假设存入map表中。在map表中,可以根据唯一标识t,查询对应的hash(D)、enc(D)。
S8、在需要验证数据完整性和真实性时,需要基于D`提取不可见水印。遍历D`,直到查询到第一个零宽字符,从该位置开始截取D`后半段,即为水印t_mask。前半段数据为待校验数据,使用D``表示。如果水印提取失败,则表示数据已被篡改。
S9、基于解密字典DD,解密水印t_mask。首先,遍历t_mask,将对应零宽字符替换为解密字典中对应的明文字符,得到水印的二进制串形式,如下:
110000111000101100011
S10、按空格分割上一步得到的二进制串,得到唯一标识t每一个字符的二进制形式列表,如下:
[1100001,1100010,1100011]
S11、遍历上一步得到的列表,将每一项转换为十进制形式,得到唯一标识t每一个字符对应的ASCII码列表,如下:
[97,98,99]
S12、遍历上一步得到的列表,将ASCII码转为字符,按列表顺序拼接为字符串,即为唯一标识t,此时t=abc。
S13、使用上一步解析出的唯一标识t,去map表中查询元信息。得到hash(D)、enc(D)。
S14、计算D``的哈希值,得到hash(D``)。
S15、如果hash(D``)与hash(D)相等,表示数据未被篡改。
S16、如果hash(D``)与hash(D)不相等,表示数据被篡改。
S17、如果需要恢复数据,则可以解密enc(D),得到原始数据D。
最后应当说明的是,上述实施例仅是优选实施方式,并不用以限制本发明。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可以做出若干修改,等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于不可见水印的数据防篡改存储方法,其特征在于,包括以下步骤:
S1、为每条待存储的数据生成唯一的数据标识,同时将数据元信息与标识绑定;
S2、基于零宽字符,将数据对应的唯一的数据标识制作成不可见水印;
S3、将不可见水印嵌入至待存储的数据中;
S4、存储含有不可见水印的待存储数据。
2.如权利要求1所述的一种基于不可见水印的数据防篡改存储方法,其特征在于,
步骤S1中,所述数据元信息包括:待存储数据的hash值和原始数据经过对称加密后的定长密文。
3.如权利要求1所述的一种基于不可见水印的数据防篡改存储方法,其特征在于,
步骤S2中,所述基于零宽字符,将数据对应的唯一的数据标识制作成不可见水印,包括:
遍历所述数据对应的唯一的数据标识,将每一个字符转换为ASCII码,并在相邻字符的ASCII码之间引入特定符号进行分割;
将数据标识的ASCII码转换为二进制;
设置二进制的数据元素和特定符号对应的零宽字符,获得加密字典;
基于加密字典将数据标识对应的二进制数据中的数据元素和特定符号替换为零宽字符,获得不可见水印。
4.如权利要求3所述的一种基于不可见水印的数据防篡改存储方法,其特征在于,
所述特定符号为空格。
5.如权利要求1-4任意一项所述的一种基于不可见水印的数据防篡改存储方法,其特征在于,步骤S3中,所述将不可见水印嵌入至待存储的数据中,包括:
将不可见水印拼接到待存储的数据的末尾。
6.一种基于不可见水印的数据防篡改校验方法,用于对采用如权利要求1-5任意一项所述基于不可见水印的数据防篡改存储方法存储的数据进行校验,其特征在于,包括以下步骤:
S1、从含有不可见水印的待校验数据中提取出不可见水印;
S2、对提取出的不可见水印进行解析,获得待校验数据的唯一数据标识;
S3、基于待校验数据的唯一数据标识查询对应的元数据,对待校验数据计算hash值,并与元数据中的hash值进行比较,判断待校验数据是否被篡改。
7.如权利要求6所述的一种基于不可见水印的数据防篡改校验方法,其特征在于,
步骤S1中,所述从含有不可见水印的待校验数据中提取出不可见水印,包括:
遍历待校验数据,直到查询到第一个零宽字符,从该位置开始,截取剩余字符串,获得不可见水印。
8.如权利要求6所述的一种基于不可见水印的数据防篡改校验方法,其特征在于,步骤S2中,所述对提取出的不可见水印进行解析,包括:
构建与加密字典使用相同零宽字符的解密字典;
解密时,将不可见水印中的零宽字符按照解密字典的映射关系,替换为对应的明文字符,获得按特定符号分割的二进制字符串;
将获得的所述二进制字符串按所述特定符号分割为列表,列表的每一项对应一个字符的ASCII码的二进制数;
将每一项二进制数转为十进制整数后可以得到字符的ASCII码,再将ASCII码转为字符后,拼接为字符串,即为明文水印标识。
9.如权利要求6所述的一种基于不可见水印的数据防篡改校验方法,其特征在于,步骤S3中,所述对待校验数据计算hash值,并与元数据中的hash值进行比较,判断待校验数据是否被篡改,包括:
若对待校验数据计算的hash值与元数据中的hash值一致,则说明数据未被篡改,否则,判定数据被篡改。
10.如权利要求6-9任意一项所述的一种基于不可见水印的数据防篡改校验方法,其特征在于,该方法还包括步骤:
S4、若判定待校验数据被篡改,则将元数据中的密文进行解密,来恢复数据。
CN202311709947.5A 2023-12-12 2023-12-12 一种基于不可见水印的数据防篡改存储方法及校验方法 Pending CN117574337A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311709947.5A CN117574337A (zh) 2023-12-12 2023-12-12 一种基于不可见水印的数据防篡改存储方法及校验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311709947.5A CN117574337A (zh) 2023-12-12 2023-12-12 一种基于不可见水印的数据防篡改存储方法及校验方法

Publications (1)

Publication Number Publication Date
CN117574337A true CN117574337A (zh) 2024-02-20

Family

ID=89893883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311709947.5A Pending CN117574337A (zh) 2023-12-12 2023-12-12 一种基于不可见水印的数据防篡改存储方法及校验方法

Country Status (1)

Country Link
CN (1) CN117574337A (zh)

Similar Documents

Publication Publication Date Title
JP3989433B2 (ja) ソフト・コピー・テキスト文書の中に見えないようにデータを埋め込み隠すための方法
CN1182698C (zh) 元信息的不可见的编码
Al-Nofaie et al. Utilizing pseudo-spaces to improve Arabic text steganography for multimedia data communications
Shirali-Shahreza et al. Arabic/Persian text steganography utilizing similar letters with different codes
CN100550653C (zh) 一种可变长度结构化信息的编码和解码方法
CN1924925A (zh) 一种文档数字水印嵌入方法
Taleby Ahvanooey et al. An innovative technique for web text watermarking (AITW)
Singh et al. A survey on text based steganography
Melkundi et al. A robust technique for relational database watermarking and verification
Kingslin et al. Evaluative approach towards text steganographic techniques
Khairullah A novel text steganography system using font color of the invisible characters in microsoft word documents
Zhang et al. A novel robust text watermarking for word document
Obeidat Arabic Text Steganography Using Unicode of Non-Joined to Right Side Letters.
Khairullah et al. Steganography in bengali unicode text
Lee et al. Secret communication through web pages using special space codes in HTML files
CN116362953B (zh) 基于不可见字符的高精地图水印方法
CN109800547B (zh) 一种用于word文档保护和分发跟踪的信息快速嵌入和提取的方法
Jaiswal et al. Implementation of a new technique for web document protection using unicode
CN117574337A (zh) 一种基于不可见水印的数据防篡改存储方法及校验方法
Chao et al. Information hiding in text using typesetting tools with stego-encoding
CN114298006B (zh) 一种电子票据生成方法、系统和存储设备
Saber et al. Steganography in MS excel document using unicode system characteristics
CN101673334A (zh) 以一类pdf文本作为掩体的信息嵌入和提取方法
AL-Mozani et al. A new text steganography method by using non-printing unicode characters and unicode system characteristics in English/Arabic documents
Guo et al. Information hiding in ooxml format data based on the splitting of text elements

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination