CN112559985B - 一种水印嵌入及提取方法 - Google Patents
一种水印嵌入及提取方法 Download PDFInfo
- Publication number
- CN112559985B CN112559985B CN202011526626.8A CN202011526626A CN112559985B CN 112559985 B CN112559985 B CN 112559985B CN 202011526626 A CN202011526626 A CN 202011526626A CN 112559985 B CN112559985 B CN 112559985B
- Authority
- CN
- China
- Prior art keywords
- tuple
- value
- watermark
- embedded
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004422 calculation algorithm Methods 0.000 claims description 37
- 238000000605 extraction Methods 0.000 claims description 34
- 229910002056 binary alloy Inorganic materials 0.000 claims description 5
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本发明实施例涉及数据库安全技术领域,特别涉及一种水印嵌入及提取方法。本发明提供一种水印嵌入及提取方法,水印嵌入方法包括:获取待嵌入对象的数据库以及二进制水印信息,确定水印信息的位数和数据库的分组数;根据元组主键、用户密钥和分组数对每个元组进行分组,得到每个元组的分组值;根据元组主键和待嵌入对象的进制,得到每个元组的嵌入数值;根据每个元组对应的水印子信息结合预设处理规则处理嵌入数值,得到处理后的嵌入数值;将每个元组的待嵌入数值型属性的最低位数值修改为处理后的嵌入数值,完成水印嵌入。使用该水印嵌入的方法嵌入水印,在还原水印信息时,无需与原始数据库数据进行对比就能还原水印信息。
Description
技术领域
本发明实施例涉及数据库安全技术领域,特别涉及一种水印嵌入及提取方法。
背景技术
目前,对于基于数值的数据库水印嵌入的现有方法中,通常是对数据库数据的元组进行分组,确定每行数据的分组信息,将生成的水印信息转化为二进制位进行嵌入操作,根据嵌入位对原始数据进行加减操作生成水印数据,然而这种嵌入水印的方式在还原水印时,需要将水印数据库数据与原始数据库数据进行对比才能还原水印信息。
发明内容
针对现有技术的上述缺陷,本发明实施例主要解决的技术问题是提供一种水印嵌入及提取方法,使用该水印嵌入的方法嵌入水印,在还原水印信息时,无需与原始数据库数据进行对比就能还原水印信息。
为解决上述技术问题,第一方面,本发明实施方式采用的一个技术方案是:提供一种水印嵌入方法,所述水印嵌入方法包括:获取待嵌入对象的数据库,所述数据库包括多个元组,其中,每个元组包含一个元组主键和多个可嵌入水印的数值型属性;获取含有数据库版权信息的二进制水印信息,确定所述二进制水印信息的位数以及所述数据库的分组数,所述位数和所述分组数一致,所述二进制水印信息的每一个数位上对应一个所述二进制水印信息的水印子信息,所述每一个数位对应一个分组的分组值;根据所述元组主键、用户密钥和所述分组数对所述数据库的每个元组进行分组,得到所述每个元组的分组值;根据所述元组主键和所述待嵌入对象的进制,得到所述每个元组的嵌入数值;根据所述每个元组的分组值对应的水印子信息结合预设处理规则,处理所述嵌入数值,得到所述每个元组处理后的嵌入数值;确定所述每个元组中的待嵌入数值型属性,将所述待嵌入数值型属性的最低位数值修改为所述每个元组处理后的嵌入数值,完成水印嵌入。
在一些实施例中,所述根据所述元组主键、用户密钥和所述分组数对所述数据库的每个元组进行分组,得到所述每个元组的分组值,包括:采用哈希算法结合所述用户密钥对所述元组主键进行哈希处理得到第一哈希值,根据所述分组数对所述第一哈希值进行取余,得到所述每个元组的分组值。
在一些实施例中,所述根据所述元组主键和所述待嵌入对象的进制,得到所述每个元组的嵌入数值,包括:采用所述哈希算法对所述元组主键进行哈希处理得到第二哈希值,根据所述待嵌入对象的进制对所述第二哈希值进行取余,得到所述每个元组的嵌入数值。
在一些实施例中,所述哈希算法为安全哈希算法、MD4算法或者MD5算法。
在一些实施例中,所述根据所述每个元组的分组值对应的水印子信息结合预设处理规则,处理所述嵌入数值,得到所述每个元组处理后的嵌入数值,包括:如果所述分组值对应的水印子信息为零,则将所述嵌入数值减一得到所述每个元组处理后的嵌入数值;如果所述分组值对应的水印子信息为一,则将所述嵌入数值加一得到所述每个元组处理后的嵌入数值。
第二方面,本发明实施例提供一种水印提取方法,所述水印提取方法包括:获取待提取水印的数据库,所述数据库包括多个元组,其中,每个元组包含一个元组主键和多个可提取水印的数值型属性;确定所述待提取水印的二进制水印信息的位数、以及所述数据库的分组数,所述位数和所述分组数一致,所述二进制水印信息的每一个数位对应所述二进制水印信息中的一个待提取的水印子信息,所述每一个数位对应一个分组的分组值;根据所述元组主键、用户密钥和所述分组数对所述数据库的每个元组进行分组,得到所述每个元组的分组值;根据所述元组主键和所述已嵌入对象的进制,得到所述每个元组的应嵌入数值;确定所述每个元组中的已嵌入数值型属性,提取所述已嵌入数值型属性的最低位数值,得到所述每个元组的嵌入数值;根据所述每个元组的嵌入数值和所述每个元组的应嵌入数值并结合预设规则,得到所述每个元组的嵌入水印子信息;根据所述每个元组的分组值以及所述每个元组的嵌入水印子信息,得到所述每个分组值对应的水印子信息;根据所述水印子信息得到二进制水印信息,完成水印提取。
在一些实施例中,所述根据所述元组主键、用户密钥和所述分组数对所述数据库的每个元组进行分组,得到所述每个元组的分组值,包括:采用哈希算法结合所述用户密钥对所述元组主键进行哈希处理得到第三哈希值,根据所述分组数对所述第三哈希值进行取余,得到所述每个元组对应的分组值。
在一些实施例中,所述根据所述元组主键和所述已嵌入对象的进制,得到所述每个元组的应嵌入数值,包括:采用所述哈希算法对所述元组主键进行哈希处理得到第四哈希值,根据所述已嵌入对象的进制对所述第四哈希值进行取余,得到所述每个元组的应嵌入数值。
在一些实施例中,所述根据所述每个元组的嵌入数值和所述每个元组的应嵌入数值并结合预设规则,得到所述每个元组的嵌入水印子信息,包括:将所述每个元组的嵌入数值与所述每个元组的应嵌入数值做差得到所述每个元组的嵌入数值差;如果所述每个元组的嵌入数值差为一,则所述每个元组的水印子信息为一;如果所述每个元组的嵌入数值差为负一,则所述元组的水印子信息为零。
在一些实施例中,所述根据所述每个元组的分组值以及所述每个元组的嵌入水印子信息,得到所述每个分组值对应的水印子信息,包括:对于同一个分组中提取出的所述每个元组的嵌入水印子信息,统计所述嵌入水印子信息为一的个数以及所述嵌入水印子信息为零的个数,通过多数选举得到每个分组值对应的水印子信息。
为解决上述技术问题,第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面任一项所述的水印嵌入方法、和/或如第二方面任一项所述的水印提取方法。
为解决上述技术问题,第四方面,本发明实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被电子设备执行时,使所述电子设备执行如第一方面任一项所述的水印嵌入方法、和/或如第二方面任一项所述的水印提取方法。
为解决上述技术问题,第五方面,本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行如第一方面任一项所述的水印嵌入方法、和/或如第二方面任一项所述的水印提取方法。
本发明实施方式的有益效果是:区别于现有技术的情况,本发明提供一种水印嵌入及提取方法,水印嵌入方法包括:获取待嵌入对象的数据库以及二进制水印信息,确定水印信息的位数和数据库的分组数;根据元组主键、用户密钥和分组数对每个元组进行分组,得到每个元组的分组值;根据元组主键和待嵌入对象的进制,得到每个元组的嵌入数值;根据每个元组对应的水印子信息结合预设处理规则处理嵌入数值,得到处理后的嵌入数值;将每个元组的待嵌入数值型属性的最低位数值修改为处理后的嵌入数值,完成水印嵌入。使用该水印嵌入的方法嵌入水印,在还原水印信息时,无需与原始数据库数据进行对比就能还原水印信息。
附图说明
一个或多个实施例中通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件/模块和步骤表示为类似的元件/模块和步骤,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种水印嵌入方法的流程示意图;
图2是本发明实施例提供的一种水印提取方法的流程示意图;
图3是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
为了便于理解本申请,下面结合附图和具体实施例,对本申请进行更详细的说明。除非另有定义,本说明书所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本申请。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,但是在某些情况下,可以以不同于装置中的模块划分。此外,本文所采用的“第一”、“第二”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
目前,随着数值型数据库的广泛使用,人们越来越关注数据库的版权保护,特别是提供信息服务的公司,例如气象服务、人才市场信息、股票交易信息等,其主要资产就是存储于数据库里的大量数据,通过在数值型数据库中嵌入代表所有权的水印信息,可以标识数据库的版权信息,有效地防止有价值的数据被非法盗用,实现数据库的版权保护。
通过在数值型数据库中嵌入水印信息来确定数值型数据库的所有权,或者检验数字内容的原始性,当出现版权纠纷时,通过提取实现在数值型数据库中嵌入的水印信息就可以确定产品的版权甚至可以追溯数据泄露的源头。
请参阅图1,本发明实施例提供的水印嵌入方法包括:
步骤S1:获取待嵌入对象的数据库,所述数据库包括多个元组,其中,每个元组包含一个元组主键和多个可嵌入水印的数值型属性;
其中,待嵌入水印信息的数据库为数值型数据库,数据库包括多个元组,每个元组的模式均为P(Pk,C1,C2,…,Cn),其中,Pk代表元组主键,C1,C2,…,Cn代表该元组中n个可嵌入水印的数值型属性。
步骤S2:获取含有数据库版权信息的二进制水印信息,确定所述二进制水印信息的位数以及所述数据库的分组数,所述位数和所述分组数一致,所述二进制水印信息的每一个数位上对应一个所述二进制水印信息的水印子信息,所述每一个数位对应一个分组的分组值;
其中,可先建立数据库版权信息与二进制数的对应关系表,找到需要嵌入的数据库版权信息对应的二进制水印信息,或者,通过相关算法将数据库版权信息转为二进制水印信息。并且,所述二进制水印信息上的每一个数位对应一个水印子信息,即二进制水印信息的每一个位置上的数字为一个水印子信息。
步骤S3:根据所述元组主键、用户密钥和所述分组数对所述数据库的每个元组进行分组,得到所述每个元组的分组值;
由于数据库的元组存在无序性,为了合理地将二进制水印信息嵌入到数据库中的每个元组中,有必要对数据库的元组进行分组,并且在分组过程中,需要保证数据库元组的分组数与二进制水印信息的位数一致。在得到每个元组的分组值后,将同一个分组值的元组划分到一个分组里,由于水印子信息与分组值一一对应,那么对于同一个分组值的元组嵌入的水印子信息是一致的。
具体地,采用哈希算法结合所述用户密钥对所述元组主键进行哈希处理得到第一哈希值,根据所述分组数对所述第一哈希值进行取余,得到所述每个元组的分组值为hash(Pk,key)mod divs,其中,hash表示哈希算法,Pk为元组主键,divs为所述分组数,mod表示取余,key为用户密钥,为二进制密钥信息,且用户密钥的位数与二进制水印信息的位数一致。
例如,在步骤S2中,如果含有数据库版权信息的二进制水印信息是16位信息,则该二进制水印信息每一位上有一个水印子信息,即该二进制水印信息包含16个水印子信息;接着经过计算,数据库中的每个元组都得到了一个分组值,那么对于同一个分组值的元组就被划分到一个分组里,因而数据库中的元组就被分成了16组;由于一个分组值就对应一个水印子信息,那么对于同一条水印信息,同一个分组值的元组嵌入的水印子信息是一致的。需要注意的是,二进制水印信息也可以为8二进制水印信息,也可以为32位二进制水印信息,在实际应用中,二进制水印信息的位数可以自由设置,在此不需拘泥于本发明实施例中的限定。
在其中一些实施例中,所述哈希算法为安全哈希算法、MD4算法或者MD5算法。在实际应用中,哈希算法可以选用其它一切合适的基于字符串的哈希算法,在此不需拘泥于本发明实施例中的限定。
步骤S4:根据所述元组主键和所述待嵌入对象的进制,得到所述每个元组的嵌入数值;
具体地,采用所述哈希算法对所述元组主键进行哈希处理得到第二哈希值,根据所述待嵌入对象的进制对所述第二哈希值进行取余,得到所述每个元组的嵌入数值为hash(Pk)mod x,其中,hash表示哈希算法,Pk为元组主键,x为待嵌入对象的进制,mod表示取余。在此需要注意此处采用的哈希算法应与步骤S3里采用的哈希算法一致。例如,待嵌入对象的进制为十进制,则x为10,在实际应用中,x的值根据实际需要进行设置,在此不需拘泥于本发明实施例中的限定。
步骤S5:根据所述每个元组的分组值对应的水印子信息结合预设处理规则,处理所述嵌入数值,得到所述每个元组处理后的嵌入数值;
具体地,如果所述分组值对应的水印子信息为零,则将所述嵌入数值减一得到所述每个元组处理后的嵌入数值为(hash(Pk)mod x)-1;如果所述分组值对应的水印子信息为一,则将所述嵌入数值加一得到所述每个元组处理后的嵌入数值(hash(Pk)mod x)+1。
步骤S6:确定所述每个元组中的待嵌入数值型属性,将所述待嵌入数值型属性的最低位数值修改为所述每个元组处理后的嵌入数值,完成水印嵌入。
在水印嵌入的过程中,对于一个元组,在计算出处理后的嵌入数值后,可以选定一个或多个待嵌入数值型属性作为嵌入对象,并将所述待嵌入数值型属性的最低位数值修改为所述处理后的嵌入数值,即可完成水印嵌入。若需要嵌入的水印信息为多条,则重新执行步骤S1-步骤S6即可完成不同水印信息的嵌入。
本发明实施例提供的水印嵌入方法,通过对数值型数据库中的元组进行分组,并根据水印子信息对元组的嵌入数值进行处理,将水印信息记录至每个元组中的数值型属性的最低位数值,能够保护数据库的版权;而且能在不需要原始数据的情况下,能利用对应的水印提取方法将水印信息有效地提取出来;同时该水印嵌入方法通过对同一分组的元组嵌入二进制水印信息上同一个位置的水印子信息,能够将水印信息均匀地分布到数据库中,能更有效地保护数据库的版权信息。
第二方面,请参阅图2,本发明实施例提供一种水印提取方法,所述水印提取方法包括:
步骤S7:获取待提取水印的数据库,所述数据库包括多个元组,其中,每个元组包含一个元组主键和多个可提取水印的数值型属性;
其中,待提取水印信息的数据库为数值型数据库,数据库包括多个元组,每个元组的模式均为P(Ph,D1,D2,…,Dn),其中,Ph代表元组主键,D1,D2,…,Dn代表该元组中n个可嵌入水印的数值型属性。
步骤S8:确定所述待提取水印的二进制水印信息的位数、以及所述数据库的分组数,所述位数和所述分组数一致,所述二进制水印信息的每一个数位对应所述二进制水印信息中的一个待提取的水印子信息,所述每一个数位对应一个分组的分组值;
步骤S9:根据所述元组主键、用户密钥和所述分组数对所述数据库的每个元组进行分组,得到所述每个元组的分组值;
与水印嵌入方法中类似,为了合理地提取数据库中的每个元组的嵌入子信息,有必要对数据库的元组进行分组,并且在分组过程中,需要保证数据库元组的分组数与待提取的二进制水印信息的位数一致。在得到每个元组的分组值后,将同一个分组值的元组划分到一个分组里,以便后续对每个元组的嵌入子信息进行提取。
具体地,采用哈希算法结合所述用户密钥对所述元组主键进行哈希处理得到第三哈希值,根据所述分组数对所述第三哈希值进行取余,得到所述每个元组对应的分组值为hash(Ph,key)mod divs,其中,hash表示哈希算法,Ph为元组主键,divs为所述分组数,mod表示取余,key为用户密钥,且该用户密钥与在水印嵌入时所用的用户密钥应一致,否则后续无法提取出正确的水印信息。为了保证能准确提取水印信息,在水印提取时采用的哈希算法应该与在水印嵌入时采用的哈希算法一致。
步骤S10:根据所述元组主键和所述已嵌入对象的进制,得到所述每个元组的应嵌入数值;
具体地,采用所述哈希算法对所述元组主键进行哈希处理得到第四哈希值,根据所述已嵌入对象的进制对所述第四哈希值进行取余,得到所述每个元组的应嵌入数值为hash(Ph)mod x,其中,hash表示哈希算法,Pk为元组主键,x为待嵌入对象的进制,mod表示取余。在此需要注意此处采用的哈希算法应与步骤S9里采用的哈希算法一致。例如,待嵌入对象的进制为十进制,则x为10,在实际应用中,x的值根据实际需要进行设置,在此不需拘泥于本发明实施例中的限定。
步骤S11:确定所述每个元组中的已嵌入数值型属性,提取所述已嵌入数值型属性的最低位数值,得到所述每个元组的嵌入数值;
步骤S12:根据所述每个元组的嵌入数值和所述每个元组的应嵌入数值并结合预设规则,得到所述每个元组的嵌入水印子信息;
具体地,将所述每个元组的嵌入数值与所述每个元组的应嵌入数值做差得到所述每个元组的嵌入数值差;如果所述每个元组的嵌入数值差为一,则所述每个元组的水印子信息为一;如果所述每个元组的嵌入数值差为负一,则所述元组的水印子信息为零;如果是其他情况,则表示嵌入数值被修改,或者表示该元组没有添加水印,或者表示提取的水印子信息无效。
步骤S13:根据所述每个元组的分组值以及所述每个元组的嵌入水印子信息,得到所述每个分组值对应的水印子信息;
理想情况下,对于同一个分组值里的每个元组提取的嵌入水印子信息应该是一致的,然而在实际中存在数据修改或者是数据丢失的原因,为了准确地得到每个分组值对应的水印子信息,在其中一些实施例中,对于同一个分组中提取出的所述每个元组的嵌入水印子信息,统计所述嵌入水印子信息为一的个数以及所述嵌入水印子信息为零的个数,通过多数选举得到每个分组值对应的水印子信息。
具体地,若所述嵌入水印子信息为一的个数大于或等于所述嵌入水印子信息为零的个数,则该分组值对应的水印子信息为一,若所述嵌入水印子信息为一的个数小于所述嵌入水印子信息为零的个数,则该分组值对应的水印子信息为零。在实际应用中,多数选举的规则可根据实际需要进行设置,在此不需拘泥于本发明实施例中的限定。
步骤S14:根据所述水印子信息得到二进制水印信息,完成水印提取。
在得到每个分组值对应的水印子信息后,根据在水印提取时建立的水印子信息与二进制水印信息的数位的对应关系,得到完整的二进制水印信息,完成水印提取。若需要提取的水印信息为多条,则重新执行步骤S7-步骤S13即可完成不同水印信息的提取。
本发明实施例提供的水印提取方法,能够在不需要原始数据的情况下,有效地将水印信息提取出来,从而后续可基于已嵌入水印信息的数据库来还原原始的未嵌入水印信息的数据库。
本发明实施例还提供了一种电子设备,请参见图3,其示出了能够执行图1所述的水印嵌入方法和/或图2所述水印提取方法的电子设备的硬件结构。所述电子设备100包括:至少一个处理器101;以及,与所述至少一个处理器101通信连接的存储器102,图3中以一个处理器101为例。所述存储器102存储有可被所述至少一个处理器101执行的指令,所述指令被所述至少一个处理器101执行,以使所述至少一个处理器101能够执行上述图1所述的水印嵌入方法和/或图2所述水印提取方法。所述处理器101和所述存储器102可以通过总线或者其他方式连接,图3中以通过总线连接为例。
存储器102作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的水印嵌入方法和/或水印提取方法对应的程序指令/模块。处理器101通过运行存储在存储器102中的非易失性软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例中的水印嵌入方法和/或水印提取方法。
存储器102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器102可选包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器102中,当被所述一个或者多个处理器101执行时,执行上述任意方法实施例中的水印嵌入方法和/或水印提取方法,例如,执行以上描述的图1至图2的方法步骤,实现电子设备的功能。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本发明实施例还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被一个或多个处理器执行,例如图3中的一个处理器101,可使得上述一个或多个处理器可执行上述任意方法实施例中的水印嵌入方法和/或水印提取方法,例如,执行以上描述的图1中的方法步骤S1至步骤S6,图2中的方法步骤S7至步骤S14,实现水印嵌入方法和/或水印提取方法的功能。
本发明实施例还提供了一种计算机程序产品,包括存储在非易失性计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时时,使所述计算机执行上述任意方法实施例中的水印嵌入方法和/或水印提取方法,执行以上描述的图1中的方法步骤S1至步骤S6,图2中的方法步骤S7至步骤S14,实现水印嵌入方法和/或水印提取方法的功能。
本发明提供一种水印嵌入及提取方法,水印嵌入方法包括:获取待嵌入对象的数据库以及二进制水印信息,确定水印信息的位数和数据库的分组数;根据元组主键、用户密钥和分组数对每个元组进行分组,得到每个元组的分组值;根据元组主键和待嵌入对象的进制,得到每个元组的嵌入数值;根据每个元组对应的水印子信息结合预设处理规则处理嵌入数值,得到处理后的嵌入数值;将每个元组的待嵌入数值型属性的最低位数值修改为处理后的嵌入数值,完成水印嵌入。使用该水印嵌入的方法嵌入水印,在还原水印信息时,无需与原始数据库数据进行对比就能还原水印信息。
需要说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种水印嵌入方法,其特征在于,所述水印嵌入方法包括:
获取待嵌入对象的数据库,所述数据库包括多个元组,其中,每个元组包含一个元组主键和多个可嵌入水印的数值型属性;
获取含有数据库版权信息的二进制水印信息,确定所述二进制水印信息的位数以及所述数据库的分组数,所述位数和所述分组数一致,所述二进制水印信息的每一个数位上对应一个所述二进制水印信息的水印子信息,所述每一个数位对应一个分组的分组值;
根据所述元组主键、用户密钥和所述分组数对所述数据库的每个元组进行分组,得到所述每个元组的分组值;
根据所述元组主键和所述待嵌入对象的进制,得到所述每个元组的嵌入数值;
根据所述每个元组的分组值对应的水印子信息结合预设处理规则,处理所述嵌入数值,得到所述每个元组处理后的嵌入数值;
确定所述每个元组中的待嵌入数值型属性,将所述待嵌入数值型属性的最低位数值修改为所述每个元组处理后的嵌入数值,完成水印嵌入。
2.根据权利要求1所述的水印嵌入方法,其特征在于,所述根据所述元组主键、用户密钥和所述分组数对所述数据库的每个元组进行分组,得到所述每个元组的分组值,包括:
采用哈希算法结合所述用户密钥对所述元组主键进行哈希处理得到第一哈希值,根据所述分组数对所述第一哈希值进行取余,得到所述每个元组的分组值。
3.根据权利要求2所述的水印嵌入方法,其特征在于,所述根据所述元组主键和所述待嵌入对象的进制,得到所述每个元组的嵌入数值,包括:
采用所述哈希算法对所述元组主键进行哈希处理得到第二哈希值,根据所述待嵌入对象的进制对所述第二哈希值进行取余,得到所述每个元组的嵌入数值。
4.根据权利要求2或3所述的水印嵌入方法,其特征在于,所述哈希算法为安全哈希算法、MD4算法或者MD5算法。
5.根据权利要求1所述的水印嵌入方法,其特征在于,所述根据所述每个元组的分组值对应的水印子信息结合预设处理规则,处理所述嵌入数值,得到所述每个元组处理后的嵌入数值,包括:
如果所述分组值对应的水印子信息为零,则将所述嵌入数值减一得到所述每个元组处理后的嵌入数值;
如果所述分组值对应的水印子信息为一,则将所述嵌入数值加一得到所述每个元组处理后的嵌入数值。
6.一种水印提取方法,其特征在于,所述水印提取方法包括:
获取待提取水印的数据库,所述数据库包括多个元组,其中,每个元组包含一个元组主键和多个可提取水印的数值型属性;
确定所述待提取水印的二进制水印信息的位数、以及所述数据库的分组数,所述位数和所述分组数一致,所述二进制水印信息的每一个数位对应所述二进制水印信息中的一个待提取的水印子信息,所述每一个数位对应一个分组的分组值;
根据所述元组主键、用户密钥和所述分组数对所述数据库的每个元组进行分组,得到所述每个元组的分组值;
根据所述元组主键和已嵌入对象的进制,得到所述每个元组的应嵌入数值;
确定所述每个元组中的已嵌入数值型属性,提取所述已嵌入数值型属性的最低位数值,得到所述每个元组的嵌入数值;
根据所述每个元组的嵌入数值和所述每个元组的应嵌入数值并结合预设规则,得到所述每个元组的嵌入水印子信息;
根据所述每个元组的分组值以及所述每个元组的嵌入水印子信息,得到所述每个分组值对应的水印子信息;
根据所述水印子信息得到二进制水印信息,完成水印提取。
7.根据权利要求6所述的水印提取方法,其特征在于,所述根据所述元组主键、用户密钥和所述分组数对所述数据库的每个元组进行分组,得到所述每个元组的分组值,包括:
采用哈希算法结合所述用户密钥对所述元组主键进行哈希处理得到第三哈希值,根据所述分组数对所述第三哈希值进行取余,得到所述每个元组对应的分组值。
8.根据权利要求7所述的水印提取方法,其特征在于,所述根据所述元组主键和所述已嵌入对象的进制,得到所述每个元组的应嵌入数值,包括:
采用所述哈希算法对所述元组主键进行哈希处理得到第四哈希值,根据所述已嵌入对象的进制对所述第四哈希值进行取余,得到所述每个元组的应嵌入数值。
9.根据权利要求6所述的水印提取方法,其特征在于,所述根据所述每个元组的嵌入数值和所述每个元组的应嵌入数值并结合预设规则,得到所述每个元组的嵌入水印子信息,包括:
将所述每个元组的嵌入数值与所述每个元组的应嵌入数值做差得到所述每个元组的嵌入数值差;
如果所述每个元组的嵌入数值差为一,则所述每个元组的水印子信息为一;
如果所述每个元组的嵌入数值差为负一,则所述元组的水印子信息为零。
10.根据权利要求6所述的水印提取方法,其特征在于,所述根据所述每个元组的分组值以及所述每个元组的嵌入水印子信息,得到所述每个分组值对应的水印子信息,包括:
对于同一个分组中提取出的所述每个元组的嵌入水印子信息,统计所述嵌入水印子信息为一的个数以及所述嵌入水印子信息为零的个数,通过多数选举得到每个分组值对应的水印子信息。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-5任一项所述的水印嵌入方法、和/或权利要求6-10任一项所述的水印提取方法。
12.一种非易失性计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被电子设备执行时,使所述电子设备执行如权利要求1-5任一项所述的水印嵌入方法、和/或权利要求6-10任一项所述的水印提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011526626.8A CN112559985B (zh) | 2020-12-22 | 2020-12-22 | 一种水印嵌入及提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011526626.8A CN112559985B (zh) | 2020-12-22 | 2020-12-22 | 一种水印嵌入及提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559985A CN112559985A (zh) | 2021-03-26 |
CN112559985B true CN112559985B (zh) | 2024-02-20 |
Family
ID=75030713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011526626.8A Active CN112559985B (zh) | 2020-12-22 | 2020-12-22 | 一种水印嵌入及提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559985B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115600162A (zh) * | 2021-07-09 | 2023-01-13 | 华为云计算技术有限公司(Cn) | 在数据中添加水印的方法、装置及相关设备 |
CN113688601B (zh) * | 2021-10-26 | 2022-02-22 | 北京凯睿数加科技有限公司 | 基于表单的水印生成方法、装置、电子设备和计算机介质 |
CN115455383B (zh) * | 2022-11-14 | 2023-03-24 | 北京奕之宣科技有限公司 | 一种数据库的水印信息处理方法、装置及设备 |
CN116541808A (zh) * | 2023-07-06 | 2023-08-04 | 杭州美创科技股份有限公司 | 数据水印溯源方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512523A (zh) * | 2015-11-30 | 2016-04-20 | 迅鳐成都科技有限公司 | 一种匿名化的数字水印嵌入和提取方法 |
CN110533572A (zh) * | 2019-08-29 | 2019-12-03 | 哈尔滨工业大学(深圳) | 一种水印嵌入方法、系统及相关装置 |
WO2020000486A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 数据处理方法及装置 |
CN111125750A (zh) * | 2019-11-25 | 2020-05-08 | 中国科学院信息工程研究所 | 一种基于双层椭圆模型的数据库水印嵌入、检测方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007032753A1 (en) * | 2005-09-09 | 2007-03-22 | Thomson Licensing | Coefficient selection for video watermarking |
-
2020
- 2020-12-22 CN CN202011526626.8A patent/CN112559985B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512523A (zh) * | 2015-11-30 | 2016-04-20 | 迅鳐成都科技有限公司 | 一种匿名化的数字水印嵌入和提取方法 |
WO2020000486A1 (zh) * | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 数据处理方法及装置 |
CN110770725A (zh) * | 2018-06-30 | 2020-02-07 | 华为技术有限公司 | 数据处理方法及装置 |
CN110533572A (zh) * | 2019-08-29 | 2019-12-03 | 哈尔滨工业大学(深圳) | 一种水印嵌入方法、系统及相关装置 |
CN111125750A (zh) * | 2019-11-25 | 2020-05-08 | 中国科学院信息工程研究所 | 一种基于双层椭圆模型的数据库水印嵌入、检测方法及系统 |
Non-Patent Citations (7)
Title |
---|
A Robust and Reversible Watermarking Technique for Relational Dataset Based on Clustering;Heyan Chai等;《2019 18th IEEE International Conference On Trust, Security And Privacy In Computing And Communications/13th IEEE International Conference On Big Data Science And Engineering (TrustCom/BigDataSE)》;第411-418页 * |
一种新的关系数据库水印算法;范萌萌等;《计算机应用与软件》;32(06);第249-251+303页 * |
基于分存分组的关系数据库数字水印算法;王振等;《通信技术》;第42卷(第04期);第132-134+138页 * |
基于后关系型数据库审计的安全解决方案;韩向非等;《中国数字医学》;第11卷(第11期);第71-73+110页 * |
基于密钥分存的关系数据库数字水印技术;胡斌等;《计算机应用研究》;第24卷(第08期);第144-145+148页 * |
基于差分扩展和LBP特征提取的数据库水印算法研究;高浩洋;《中国优秀硕士学位论文全文数据库》;信息科技辑 I138-36 * |
王具龙等.基于(t,n)门限的数据库水印算法研究.《计算机科学》.2014,第41卷(第05期),第182-185页. * |
Also Published As
Publication number | Publication date |
---|---|
CN112559985A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559985B (zh) | 一种水印嵌入及提取方法 | |
CN110688675B (zh) | 基于隐私保护的数据泄露溯源装置、方法及可读存储介质 | |
CN105512523B (zh) | 一种匿名化的数字水印嵌入和提取方法 | |
EP3709568A1 (en) | Deleting user data from a blockchain | |
CN110543516A (zh) | 智能合约处理方法、装置、计算机设备及存储介质 | |
CN110770725B (zh) | 数据处理方法及装置 | |
CN114356919A (zh) | 一种结构化数据库的水印嵌入方法、溯源方法及装置 | |
CN112015806A (zh) | 区块链存储数据的方法及装置 | |
CN112948895A (zh) | 数据的水印嵌入方法、水印溯源方法及装置 | |
Sonnleitner | A robust watermarking approach for large databases | |
CN116702103A (zh) | 数据库水印处理方法、数据库水印溯源方法及装置 | |
CN109064379B (zh) | 一种数字水印的标注方法及检验方法和装置 | |
Iqbal et al. | Self-constructing fragile watermark algorithm for. relational database integrity proof | |
CN114298882A (zh) | Cad数据的水印的嵌入方法、追溯方法以及电子设备 | |
Mohanpurkar et al. | Applying watermarking for copyright protection, traitor identification and joint ownership: A review | |
CN114398375A (zh) | 一种水印嵌入方法、装置、设备及存储介质 | |
CN117272333B (zh) | 关系型数据库水印嵌入、溯源方法 | |
US11372999B2 (en) | Method for inserting data on-the-fly into a watermarked database and associated device | |
CN117909943B (zh) | 一种基于多节点的水印溯源处理方法和系统 | |
CN113837765B (zh) | 支付校验方法、装置、设备及存储介质 | |
CN117459650B (zh) | 一种针对版权保护的数字视频水印方法及系统 | |
CN114021085B (zh) | 一种基于人工智能的大数据安全的数字水印系统 | |
CN115085906B (zh) | 一种工程造价数据的储存方法 | |
CN117668786A (zh) | 一种数据库水印嵌入方法、装置、计算机设备及介质 | |
CN117807571A (zh) | 一种结构化数据水印嵌入方法及提取方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |