CN114398375A - 一种水印嵌入方法、装置、设备及存储介质 - Google Patents
一种水印嵌入方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114398375A CN114398375A CN202210060204.9A CN202210060204A CN114398375A CN 114398375 A CN114398375 A CN 114398375A CN 202210060204 A CN202210060204 A CN 202210060204A CN 114398375 A CN114398375 A CN 114398375A
- Authority
- CN
- China
- Prior art keywords
- data
- array
- watermark
- embedding
- data set
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 13
- 238000012795 verification Methods 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004519 manufacturing process Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本申请提供一种水印嵌入方法、装置、设备及存储介质,涉及数据安全技术领域。该方法包括:获取数据库表的数据集,所述数据集包括:文本型数据、数值型数据;对所述数据集的多个主键进行加密,得到多个加密主键;根据所述加密主键以及所述加密主键对应的一行数据对所述数据集进行分组,得到数据集数组;根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印。该方法实现了数据库中数据集的安全保护,并且,适用于多种数据类型的数据库,满足现实生产生活的需求。
Description
技术领域
本申请涉及数据安全技术领域,具体而言,涉及一种水印嵌入方法、装置、设备及存储介质。
背景技术
随着关系型数据库的广泛应用,数据共享和数据交换的需求不断增多,随之出现数据泄露、数据窃取、数据篡改等问题,因此,需对数据采取有效的版权认证保护和安全机制。
现有技术中,可通过添加水印的方式,将水印添加至数据库的数据表中,以对数据库中的数据进行安全保护,但目前使用的添加水印的方法仅适用于单一类型数据库,即单纯的文本型数据库或者单纯的数值型数据库,无法满足现实生产生活的需求。
发明内容
本发明的目的在于,针对上述现有技术的不足,提供一种水印嵌入方法、装置、设备及存储介质,以解决现有技术中水印嵌入仅适用于单一类型数据库的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种水印嵌入方法,该方法包括:
获取数据库表的数据集,所述数据集包括:文本型数据、数值型数据;
对所述数据集的多个主键进行加密,得到多个加密主键;
根据所述加密主键以及所述加密主键对应的一行数据对所述数据集进行分组,得到数据集数组;
根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印。
可选地,所述对所述数据集的多个主键进行加密,得到多个加密主键,包括:
获取密钥和所述数据集中的每个主键;
将所述密钥和所述主键通过哈希散列函数计算得到每个主键对应的哈希离散主键;
将所述哈希离散主键与所述密钥通过哈希计算,获取所述哈希离散主键对应的身份验证值;
根据所述身份验证值与所述主键进行模取,得到每个主键对应的所述加密主键。
可选地,所述数组元素的数据类型为数值型数据;所述根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印,包括:
从数据集数组中获取待嵌入数据,并获取输入的二进制水印信息;
根据所述二进制水印信息以及所述数据集数组中数组元素的下标,计算获得每个数组元素的待嵌入数据应嵌入到二进制水印信息的目标位置;
将所述数组元素的待嵌入数据嵌入到所述二进制水印信息的目标位置,得到嵌入水印后的数据;
将所述嵌入水印后的数据元素替换进所述数据集数组,得到嵌入水印后的数据集数组。
可选地,所述将所述数组元素嵌入到所述二进制水印信息的目标位置,得到嵌入水印后的数据,包括:
将每个待嵌入水印的数组元素转换为二进制数字;
将所述二进制数字中的每个数值加上步长,获取更新的二进制数字,其中,所述更新的二进制数字中每个新数值满足预设条件;
将所述更新的二进制数字嵌入到所述二进制水印信息的目标位置,得到嵌入水印后的数据。
可选地,所述将所述嵌入水印后的数据元素替换进所述数据集数组,得到嵌入水印后的数据集数组之后,还包括:
根据所述二进制水印信息的目标位置处的二进制数值,将所述嵌入水印后的数据集数组中的数据元素划分为两个分组;
根据所述两个分组中的数据元素计算获得解码最优阈值;
其中,所述二进制水印的位置处的二进制数值为0时对应的所述嵌入水印后的数据集数组中的数据元素为其中一个分组,所述二进制水印的位置处的二进制数值为1时对应的所述嵌入水印后的数据集数组中的数据元素为另一个分组。
可选地,所述数组元素的数据类型为文本型数据;所述根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印,包括:
根据空格嵌入算法对所述数据集数组中的数组元素嵌入水印。
可选地,所述数组元素的数据类型为文本型数据;所述根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印,包括:
根据符号修改算法对所述数据集数组中的数组元素嵌入水印。
第二方面,本申请实施例提供一种水印嵌入装置,包括:
获取模块,用于获取数据库表的数据集,所述数据集包括:文本型数据、数值型数据;
加密模块,用于对所述数据集的多个主键进行加密,得到多个加密主键;
分组模块,用于根据所述加密主键以及所述加密主键对应的一行数据对所述数据集进行分组,得到数据集数组;
嵌入模块,用于根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印。
第三方面,本申请实施例提供一种计算机设备,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面的水印嵌入方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现上述第一方面的水印嵌入方法。
相对现有技术而言,本申请具有以下有益效果:
本申请实施例提供的一种水印嵌入方法、装置、设备及存储介质,通过获取数据库表的数据集,数据集包括:文本型数据、数值型数据,对数据集的多个主键进行加密,得到多个加密主键,根据加密主键以及加密主键对应的一行数据对数据集进行分组,得到数据集数组,根据数据集数组中的数组元素的数据类型,采用对应的嵌入算法对数组元素嵌入水印,该方法通过对数组元素的数据类型进行识别,根据数据类型的不同,采用对应的水印嵌入算法对数组元素嵌入水印,不仅通过水印实现了数据库中数据集的安全保护,该方法还适用于多种数据类型的数据库,满足现实生产生活的需求。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种水印嵌入方法的流程示意图;
图2为本申请实施例提供的一种生成加密主键方法的流程示意图;
图3为本申请实施例提供的一种数值型水印嵌入方法的流程示意图;
图4为本申请实施例提供的另一种数值型水印嵌入方法的流程示意图;
图5为本申请实施例提供的另一种数值型水印嵌入方法的流程示意图;
图6为本申请实施例提供的一种水印嵌入装置的示意图;
图7为本申请实施例提供的一种计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
为了解决现有水印嵌入方法仅适用于单一类型数据库的问题,满足现实生产生活的需求,本申请的方案中,提供一种水印嵌入方法、装置、设备及存储介质。如下通过多个示例对本申请实施例提供的水印嵌入方法的实现过程进行具体解释说明。图1为本申请实施例提供的一种水印嵌入方法的流程示意图,如图1所示,该方法包括:
S101,获取数据库表的数据集,所述数据集包括:文本型数据、数值型数据。
对数据集进行水印嵌入前,首先应获取需嵌入水印的数据集,可从数据库表中获取数据集。在本申请实施例中,数据库可为MySQL、Oracle、SQL Server、SQLite、PostgreSQL等,数据库的类型在本申请实施例中不作具体限制。
数据库表是数据库中用来存储数据的对象,可选地,数据库表中的每一列都存储同一类型的数据,数据库表中多个列可存储不同类型的数据,如存在多列存储文本型数据,还存在多列存储数值型数据。对数据库表中的数据集进行水印嵌入时,可根据数据集的类型,采用对应的水印嵌入算法嵌入水印。
S102,对数据集的多个主键进行加密,得到多个加密主键。
主键用于数据库表中记录的唯一标识,每条记录都对应一个主键。其中,每条记录可以对应一行数据。
从数据库表中获取数据集后,对数据集中的多条记录的多个主键分别进行加密,得到多个加密主键。
S103,根据加密主键以及加密主键对应的一行数据对数据集进行分组,得到数据集数组。
主键用于数据库表中记录的唯一标识,对应地,加密主键也可以用于数据库表中记录的唯一标识,即,在数据库表中,每个加密主键都对应表中的唯一一行数据,可以作为这行数据的索引。
将数据库表的数据集存储至一个数据集数组中,其中,数据集数组中的每个数组元素都包含数据库表中的每一条记录,该记录为加密主键与主键对应的一行数据。每条记录都以Map容器存储至数据集数组中,即,每个数组元素都是key-value(键值对)的数据形式。其中,加密主键作为key值,加密主键对应的主键对应的一行数据作为value值。
示例地,若每个数组元素的数据表现形式是将对应的key值和value值通过冒号连接,在数据集中存在一条记录的加密主键为key1,该加密主键对应的主键对应的一行数据为value1,则该记录存储至的数组元素可表示为key1:value1。
将每条记录的加密主键以及主键对应的一行数据都以key-value的数据形式存储至数据集数组中,得到携带该数据库表中数据集的数据集数组。
S104,根据数据集数组中的数组元素的数据类型,采用对应的嵌入算法对数组元素嵌入水印。
判断数据集数组中需进行水印嵌入的数据的数据类型,若数据类型为文本型数据,则采用文本型的水印嵌入算法对数组元素嵌入水印,若数据类型为数值型数据,则采用数值型的水印嵌入算法对数组元素嵌入水印。
综上,本申请实施例提供的一种水印嵌入方法,获取数据库表的数据集,数据集包括:文本型数据、数值型数据,对数据集的多个主键进行加密,得到多个加密主键,根据加密主键以及加密主键对应的一行数据对数据集进行分组,得到数据集数组,根据数据集数组中的数组元素的数据类型,采用对应的嵌入算法对数组元素嵌入水印,该方法通过对数组元素的数据类型进行识别,根据数据类型的不同,采用对应的水印嵌入算法对数组元素嵌入水印,不仅通过水印实现了数据库中数据集的安全保护,该方法还适用于多数据类型的数据库,满足现实生产生活的需求。
在上述图1所述的一种水印嵌入方法的基础上,本申请实施例还提供了生成加密主键的实现方法。如下结合附图对该实施例进行具体解释说明。图2为本申请实施例提供的一种生成加密主键方法的流程示意图。如图2所示,上述S102中,对数据集的多个主键进行加密,得到多个加密主键,包括:
S201,获取密钥和数据集中的每个主键。
密钥可以为数字,也可以为字符以及字符串,在本申请实施例中不作具体限制。
数据库在建立数据表时,每个数据库表都设置对应的主键列,该主键列内存在每条记录对应的每个主键。
S202,将密钥和主键通过哈希散列函数计算得到每个主键对应的哈希离散主键。
将主键和密钥进行拼接,得到拼接后的一串数据,该一串数据可为一串数字,也可为字符串,还可为数字和字符串的混合数据。示例地,若主键为pr,密钥为ks,则拼接后的一串数据为字符串prks。
在本申请实施例中,采用BKDR哈希散列函数计算密钥和主键进行拼接后的数据的哈希离散主键,如计算字符串prks的哈希离散主键。
BKDR哈希散列函数的计算如下述公式(1)所示:
其中,p为密钥和主键进行拼接后的数据,n为密钥和主键进行拼接后的数据的位数减一,SUM(p)为密钥和主键进行拼接后的数据的哈希离散主键。以上述prks为例,则p[0]为字符p的ASCII值,p[1]为字符r的ASCII值,p[2]为字符k的ASCII值,p[3]为字符s的ASCII值,通过求和可得到字符串prks的哈希离散主键。
S203,将哈希离散主键与密钥通过哈希计算,获取哈希离散主键对应的身份验证值。
将密钥与上述S202得到的哈希离散主键进行拼接,得到拼接后的一串数据,采用上述S202中的BKDR哈希散列函数对拼接后的数据进行计算,得到哈希离散主键对应的身份验证值。
哈希离散主键对应的身份验证值如下述公式(2)所示:
mac=H(ks||H(pr||ks)) 公式(2)
其中,H(pr||ks)为主键pr对应的哈希离散主键,mac为身份验证值。
S204,根据身份验证值与主键进行模取,得到每个主键对应的加密主键。
对身份验证值和主键进行模取运算,示例地,身份验证值mac与主键pr进行模取运算,如下述公式(3)所示:
p=mac mod pr 公式(3)
其中,p为加密主键。
本申请实施例提供的生成加密主键的方法,通过哈希散列函数以及秘钥,对主键进行加密,提高了数据库表中的数据集的安全性。
在上述图2所示的一种生成加密主键方法的基础上,本申请实施例还提供了一种数值型水印嵌入方法。如下结合附图对该实施例进行具体解释说明。图3为本申请实施例提供的一种数值型水印嵌入方法的流程示意图。如图3所示,数组元素的数据类型为数值型数据时,上述S104中,根据数据集数组中的数组元素的数据类型,采用对应的嵌入算法对数组元素嵌入水印,包括:
S301,从数据集数组中获取待嵌入数据,并获取输入的二进制水印信息。
待嵌入数据为数据库表中除主键外至少一列数据,即,为数据集数组中每个数组元素中的value值中的部分值。
二进制水印信息为携带0和/或1的一串数值,如000、001、100、110等,其中,在本申请实施例中,二进制水印信息的长度需小于数据集数组的长度。
S302,根据二进制水印信息以及数据集数组中数组元素的下标,计算获得每个数组元素的待嵌入数据应嵌入到二进制水印信息的目标位置。
将数据集数组中的数组元素的下标与二进制水印信息的长度进行模取运算,得到每个数组元素中的待嵌入数据应嵌入到二进制水印信息的目标位置。
示例地,二进制水印信息为100时,二进制水印信息的长度为3。若数据集数组中的数组元素的下标为4时,4对3进行模取运算,运算结果为1,则该下标对应的数组元素中的待嵌入数据嵌入到二进制水印信息100的目标位置为从左到右第二个0处。
S303,将数组元素的待嵌入数据嵌入到二进制水印信息的目标位置,得到嵌入水印后的数据。
对于数据集数组中的多个数据元素,分别计算目标位置后,将多个数组元素的待嵌入数据分别嵌入到二进制水印信息的目标位置,其中,每个数组元素对应的二进制水印信息相同。
S304,将嵌入水印后的数据元素替换进数据集数组,得到嵌入水印后的数据集数组。
将数据集数组中的每个数组元素的待嵌入数据嵌入到二进制水印信息的目标位置,得到多个嵌入水印后的数据,将多个待嵌入水印后的数据替换多个原待嵌入数据,进而得到嵌入水印后的数据集数组。
本申请实施例提供的一种数值型水印嵌入方法,通过获取待嵌入数据以及二进制水印信息,通过计算嵌入的目标位置,将待嵌入数据嵌入水印中,得到嵌入水印后的数据集数组,对原数据集进行水印嵌入,提高了数据库表中的数值型数据集的安全性。
在上述图3所示的一种数值型水印嵌入方法的基础上,本申请实施例还提供了另一种数值型水印嵌入方法。如下结合附图对该实施例进行具体解释说明。图4为本申请实施例提供的另一种数值型水印嵌入方法的流程示意图。如图4所示,数组元素的数据类型为数值型数据时,上述S303中,将数组元素的待嵌入数据嵌入到二进制水印信息的目标位置,得到嵌入水印后的数据,包括:
S401,将每个待嵌入水印的数组元素转换为二进制数字。
针对数值型数据,可以将其转换为二进制数字,示例地,待嵌入水印为8,则对应的二进制数字为1000。
S402,将二进制数字中的每个数值加上步长,获取更新的二进制数字。
提取出二进制数字中的每一位数值,并将每一位数值存储至一个数组中。示例地,二进制数字为1000,对应的数组为{1,0,0,0},该数组可用record[]符号表示,则,数组record[]={1,0,0,0}。
从该数组中循环取出每一个数值,进行更新。
以第一个数值record[0]为例,进行更新时,若循环次数或者搜索步长满足预设循环条件,对record[0]加上搜索步长,得到新数值,判断当前新数值是否满足预设评价条件,若满足预设条件,将当前新数值替换record[0],此时,搜索步长进行缩减,得到新搜索步长,替换当前搜索步长的数值,同时,循环次数加一,继续判断当前循环次数或者新搜索步长是否满足预设循环条件,对新数值加上新搜索步长,继续判断是否满足预设条件。直到循环次数或者搜索步长不满足预设循环条件时,该更新过程中的循环结束,更新结束,获得更新后的第一个数值。进而获得更新后的数组。
其中,预设循环条件可为:循环次数未达到预设循环次数阈值或者搜索步长不为0。
其中,预设条件内存在隐藏函数,该隐藏函数如下述公式(4)所示:
其中,ref为预设常量,sigmoid(x)为隐藏值。
若在一个循环过程中,加上搜索步长之前的数值为OriginData,加上搜索步长之后的数值为NewData,则预设条件为:sigmoid(NewData)>sigmoid(OriginData)且当前二进制数字中该位的数值为1,或者,sigmoid(NewData)<sigmoid(OriginData)且当前二进制数字中该位的数值为0。
从该数组中循环取出每一个数值,进行更新,直到更新的二进制数字中每个新数值均满足预设条件。
S403,将更新的二进制数字嵌入到二进制水印信息的目标位置,得到嵌入水印后的数据。
对二进制数字进行更新后,得到更新的二进制数字。示例地,更新的二进制数字对应的数组为record1[]={12,15,30,49}。
将更新的二进制数字对应的数组中的每一个数据调用上述隐藏函数进行计算并求和,将求和的结果除以该数组的长度,得到该更新的二进制数字对应的优化数据,将该优化数据嵌入到二进制水印信息的目标位置,得到嵌入水印后的数据。
本申请实施例提供的另一种数值型水印嵌入方法,通过对待嵌入数据进行更新,得到更新后的二进制数字,再根据更新后的二进制数字得到优化数据,将优化数据嵌入到二进制水印信息的目标位置,得到嵌入水印后的数据,提高了数据库表中的数值型数据集的安全性。
在上述图3所示的一种数值型水印嵌入方法的基础上,本申请实施例还提供了另一种数值型水印嵌入方法。如下结合附图对该实施例进行具体解释说明。图5为本申请实施例提供的另一种数值型水印嵌入方法的流程示意图。如图5所示,数组元素的数据类型为数值型数据时,上述S304后,将嵌入水印后的数据元素替换进数据集数组,得到嵌入水印后的数据集数组之后,还包括:
S501,根据二进制水印信息的目标位置处的二进制数值,将嵌入水印后的数据集数组中的数据元素划分为两个分组。
待嵌入数据进行水印嵌入的过程中,若对应的二进制水印信息的目标位置处的二进制数值为0,则,该待嵌入数据对应的嵌入水印后的数据集数组中的数据元素存储至一个分组中,示例地,该分组可记为X,若对应的二进制水印信息的目标位置处的二进制数值为1,则,该待嵌入数据对应的嵌入水印后的数据集数组中的数据元素存储至另一个分组中,示例地,该另一个分组可记为Y。
S502,根据两个分组中的数据元素计算获得解码最优阈值。
将X分组中和Y分组中所有数据元素的待嵌入数据对应的水印嵌入数据求平均值,得到X分组的平均值可记为μ0,Y分组的平均值可记为σ0。
对X分组中和Y分组中所有数据元素的待嵌入数据对应的水印嵌入数据求方差,得到X分组的方差可记为μ1,Y分组的方差可记为σ1。
解码最优阈值如下公式(5)(6)(7)所示:
其中,Perr为出错概率,T为解码阈值,解码最优阈值即为出错概率最小时解码阈值的值,P1为水印二进制为1时的解码错误率,P0为水印二进制为0时的解码错误率,并且,P1=1-P0,f(x|be=1)为水印二进制为1时的概率密度,f(x|be=0)为水印二进制为0时的概率密度。
对公式(5)求一次导函数,得到公式(6),再求第二次导数,得到公式(7),根据公式(7)计算可得到最优阈值T*。
可选地,对待嵌入数据进行水印嵌入后,针对水印的提取,可先根据提供的密钥,将待提取数据集进行分组,将最优阈值与数据集数组中的每个数据元素进行比较,通过比较提取与最优阈值最多位接近的数据元素,求出该数据元素嵌入的水印位的值。
本申请实施例提供的另一种数值型水印嵌入方法,通过两个分组中的数据元素计算获得解码最优阈值,以进行后续对水印的提取。
在上述图1所述的一种水印嵌入方法的基础上,本申请实施例还提供了一种文本型水印嵌入的实现方法,数组元素的数据类型为文本型数据时,上述S104中,根据数据集数组中的数组元素的数据类型,采用对应的嵌入算法对数组元素嵌入水印,包括:根据符号修改算法对数据集数组中的数组元素嵌入水印。
从数据集数组中获取每个数组元素的待嵌入数据,并获取输入的二进制水印信息。
判断待嵌入数据的文本结尾是否为符号,并且,计算待嵌入数据的文本符号总数,依次提取二进制水印信息中的每一位数值,若待嵌入数据的文本结尾为符号:若该数值为0并且待嵌入数据的文本符号总数为奇数,或者,若该数值为1并且待嵌入数据的文本符号总数为偶数,删除该待嵌入数据的符号;若待嵌入数据的文本结尾无符号:若该数值为0并且待嵌入数据的文本符号总数为奇数,或者,若该数值为1并且待嵌入数据的文本符号总数为偶数,给该待嵌入数据的符号的末尾加上"."符号。
根据二进制水印信息的每位数值,依次对待嵌入数据进行符号修改,得到符号修改后的数据,将该符号修改后的数据替换原待嵌入数据,进而得到嵌入水印后的数据集数组。
可选地,还可根据空格嵌入算法对数据集数组中的数组元素嵌入水印,依次提取二进制水印信息中的每一位数值,若该数值为0,则对待嵌入数据的前部添加两个空格,后部添加两个空格,若该数值为1,则对待嵌入数据的前部添加四个空格,后部添加一个空格。根据二进制水印信息的每位数值,依次对待嵌入数据进行空格嵌入,得到嵌入空格后的数据,将该嵌入空格后的数据替换原待嵌入数据,进而得到嵌入水印后的数据集数组。
本申请实施例提供的一种文本型水印嵌入方法,通过符号修改或者空格嵌入,得到嵌入水印后的数据集数组,提高了数据库表中的文本型数据集的安全性。
在上述图1所述的一种水印嵌入方法的基础上,本申请实施例还提供了另一种文本型水印嵌入的实现方法,数组元素的数据类型为文本型数据时,上述S104中,根据数据集数组中的数组元素的数据类型,采用对应的嵌入算法对数组元素嵌入水印,包括:根据词性逆序数算法对数据集数组中的数组元素嵌入水印。
从数据集数组中获取每个数组元素的待嵌入数据,并获取输入的二进制水印信息。
对待嵌入数据进行分词和词性标注处理,获得词性序列,确定词性序列中每个分词的逆序数,若逆序数为偶数,标记该分词的水印位为0,若逆序数为奇数,标记该分词的水印位为1,进而获得词性序列的奇偶数对应的二进制信息。
将词性序列的奇偶数对应的二进制信息与二进制水印信息进行逐位比较,若存在某一个分词的二进制信息与二进制水印信息不一致,则在词库中选择与该二进制水印信息对应的分词替换该某一个分词。
将词性序列的奇偶数对应的二进制信息与二进制水印信息进行逐位比较,通过替换,使得词性序列逆序数的奇偶性对应的二进制信息与水印的二进制信息一一对应。
通过词语替换,进而得到嵌入水印后的数据集数组。
可选地,词性逆序数算法对待嵌入数据进行水印嵌入后,对于文本型数据地提取,可先对字符串做分词与词性标记处理,再计算逆序数,根据计算结果的奇偶性与原始水印位的对应关系计算水印信息。
本申请实施例提供的另一种文本型水印嵌入方法,通过词性逆序数使得词性序列逆序数的奇偶性与水印的二进制位一一对应,通过分词替换得到嵌入水印后的数据集数组,提高了数据库表中的文本型数据集的安全性。
下述对用以执行的本申请所提供的一种水印嵌入装置进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图6为本申请实施例提供的一种水印嵌入装置的示意图,如图6所示,该水印嵌入装置包括:
获取模块601,用于获取数据库表的数据集,所述数据集包括:文本型数据、数值型数据。
加密模块602,用于对所述数据集的多个主键进行加密,得到多个加密主键。
分组模块603,用于根据所述加密主键以及所述加密主键对应的一行数据对所述数据集进行分组,得到数据集数组。
嵌入模块604,用于根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印。
可选地,加密模块602,具体用于获取密钥和所述数据集中的每个主键;将密钥和主键通过哈希散列函数计算得到每个主键对应的哈希离散主键;将哈希离散主键与密钥通过哈希计算,获取哈希离散主键对应的身份验证值;根据身份验证值与主键进行模取,得到每个主键对应的加密主键。
可选地,嵌入模块604,具体用于从数据集数组中获取待嵌入数据,并获取输入的二进制水印信息;根据二进制水印信息以及数据集数组中数组元素的下标,计算获得每个数组元素的待嵌入数据应嵌入到二进制水印信息的目标位置;将数组元素的待嵌入数据嵌入到二进制水印信息的目标位置,得到嵌入水印后的数据;将嵌入水印后的数据元素替换进数据集数组,得到嵌入水印后的数据集数组。
可选地,嵌入模块604,具体用于将每个待嵌入水印的数组元素转换为二进制数字;将二进制数字中的每个数值加上步长,获取更新的二进制数字,其中,更新的二进制数字中每个新数值满足预设条件;将更新的二进制数字嵌入到二进制水印信息的目标位置,得到嵌入水印后的数据。
可选地,嵌入模块604,用于根据二进制水印信息的目标位置处的二进制数值,将嵌入水印后的数据集数组中的数据元素划分为两个分组;根据两个分组中的数据元素计算获得解码最优阈值;其中,二进制水印的位置处的二进制数值为0时对应的嵌入水印后的数据集数组中的数据元素为其中一个分组,二进制水印的位置处的二进制数值为1时对应的嵌入水印后的数据集数组中的数据元素为另一个分组。
可选地,嵌入模块604,具体用于根据符号修改算法对数据集数组中的数组元素嵌入水印。
可选地,嵌入模块604,具体用于根据词性逆序数算法对数据集数组中的数组元素嵌入水印。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图7为本申请实施例提供的一种计算机设备的示意图,该计算机设备可以是具备计算处理功能的计算设备或服务器。
该计算机设备包括:处理器701、存储介质702、总线703。处理器701和存储介质702通过总线703连接。
存储介质702用于存储程序,处理器701调用存储介质702存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-On l y Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种水印嵌入方法,其特征在于,包括:
获取数据库表的数据集,所述数据集包括:文本型数据、数值型数据;
对所述数据集的多个主键进行加密,得到多个加密主键;
根据所述加密主键以及所述加密主键对应的一行数据对所述数据集进行分组,得到数据集数组;
根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印。
2.根据权利要求1所述的方法,其特征在于,所述对所述数据集的多个主键进行加密,得到多个加密主键,包括:
获取密钥和所述数据集中的每个主键;
将所述密钥和所述主键通过哈希散列函数计算得到每个主键对应的哈希离散主键;
将所述哈希离散主键与所述密钥通过哈希计算,获取所述哈希离散主键对应的身份验证值;
根据所述身份验证值与所述主键进行模取,得到每个主键对应的所述加密主键。
3.根据权利要求1所述的方法,其特征在于,所述数组元素的数据类型为数值型数据;所述根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印,包括:
从数据集数组中获取待嵌入数据,并获取输入的二进制水印信息;
根据所述二进制水印信息以及所述数据集数组中数组元素的下标,计算获得每个数组元素的待嵌入数据应嵌入到二进制水印信息的目标位置;
将所述数组元素的待嵌入数据嵌入到所述二进制水印信息的目标位置,得到嵌入水印后的数据;
将所述嵌入水印后的数据元素替换进所述数据集数组,得到嵌入水印后的数据集数组。
4.根据权利要求3所述的方法,其特征在于,所述将所述数组元素嵌入到所述二进制水印信息的目标位置,得到嵌入水印后的数据,包括:
将每个待嵌入水印的数组元素转换为二进制数字;
将所述二进制数字中的每个数值加上步长,获取更新的二进制数字,其中,所述更新的二进制数字中每个新数值满足预设条件;
将所述更新的二进制数字嵌入到所述二进制水印信息的目标位置,得到嵌入水印后的数据。
5.根据权利要求3所述的方法,其特征在于,所述将所述嵌入水印后的数据元素替换进所述数据集数组,得到嵌入水印后的数据集数组之后,还包括:
根据所述二进制水印信息的目标位置处的二进制数值,将所述嵌入水印后的数据集数组中的数据元素划分为两个分组;
根据所述两个分组中的数据元素计算获得解码最优阈值;
其中,所述二进制水印的位置处的二进制数值为0时对应的所述嵌入水印后的数据集数组中的数据元素为其中一个分组,所述二进制水印的位置处的二进制数值为1时对应的所述嵌入水印后的数据集数组中的数据元素为另一个分组。
6.根据权利要求1所述的方法,其特征在于,所述数组元素的数据类型为文本型数据;所述根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印,包括:
根据符号修改算法对所述数据集数组中的数组元素嵌入水印。
7.根据权利要求1所述的方法,其特征在于,所述数组元素的数据类型为文本型数据;所述根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印,包括:
根据词性逆序数算法对所述数据集数组中的数组元素嵌入水印。
8.一种水印嵌入装置,其特征在于,包括:
获取模块,用于获取数据库表的数据集,所述数据集包括:文本型数据、数值型数据;
加密模块,用于对所述数据集的多个主键进行加密,得到多个加密主键;
分组模块,用于根据所述加密主键以及所述加密主键对应的一行数据对所述数据集进行分组,得到数据集数组;
嵌入模块,用于根据所述数据集数组中的数组元素的数据类型,采用对应的嵌入算法对所述数组元素嵌入水印。
9.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-7中任一项所述的水印嵌入方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1-7中任一项所述的水印嵌入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210060204.9A CN114398375A (zh) | 2022-01-19 | 2022-01-19 | 一种水印嵌入方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210060204.9A CN114398375A (zh) | 2022-01-19 | 2022-01-19 | 一种水印嵌入方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114398375A true CN114398375A (zh) | 2022-04-26 |
Family
ID=81229970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210060204.9A Pending CN114398375A (zh) | 2022-01-19 | 2022-01-19 | 一种水印嵌入方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398375A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116956168A (zh) * | 2023-09-18 | 2023-10-27 | 云粒智慧科技有限公司 | 文本水印处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-01-19 CN CN202210060204.9A patent/CN114398375A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116956168A (zh) * | 2023-09-18 | 2023-10-27 | 云粒智慧科技有限公司 | 文本水印处理方法、装置、电子设备及存储介质 |
CN116956168B (zh) * | 2023-09-18 | 2024-01-02 | 云粒智慧科技有限公司 | 文本水印处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Searchable encryption over feature-rich data | |
Guo et al. | A fragile watermarking scheme for detecting malicious modifications of database relations | |
Farfoura et al. | A novel blind reversible method for watermarking relational databases | |
Wolf et al. | Genome trees and the tree of life | |
US10237074B2 (en) | Redactable document signatures | |
CN109493875B (zh) | 音频水印的添加、提取方法及终端设备 | |
CN108829899B (zh) | 数据表储存、修改、查询和统计方法 | |
Raikhlin et al. | Is it possible to reduce the sizes of stegomessages in associative steganography? | |
CN110770725B (zh) | 数据处理方法及装置 | |
CN105512523B (zh) | 一种匿名化的数字水印嵌入和提取方法 | |
CN109840401A (zh) | 针对数据文本的水印嵌入方法 | |
CN114356919A (zh) | 一种结构化数据库的水印嵌入方法、溯源方法及装置 | |
CN114817943A (zh) | 一种数据匹配方法、装置、设备及介质 | |
CN114398375A (zh) | 一种水印嵌入方法、装置、设备及存储介质 | |
Hou et al. | A graded reversible watermarking scheme for relational data | |
Iftikhar et al. | A survey on reversible watermarking techniques for relational databases | |
CN117829837A (zh) | 一种用于数字货币的数据处理方法及系统 | |
CN111062456A (zh) | 一种二维码加密算法 | |
Wang et al. | A privacy-preserving cross-media retrieval on encrypted data in cloud computing | |
Tiwari et al. | A novel watermarking scheme for secure relational databases | |
CN116702103A (zh) | 数据库水印处理方法、数据库水印溯源方法及装置 | |
WO2021115589A1 (en) | Devices and methods for applying and extracting a digital watermark to a database | |
CN115828194A (zh) | 一种隐私增强型半盲数字指纹的数据隐私保护方法及检测方法 | |
Li et al. | A recoverable chaos‐based fragile watermarking with high PSNR preservation | |
CN113011543A (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 |