一种基于数据库的水印处理方法及装置与流程

未命名 10-18 阅读:91 评论:0


1.本发明涉及计算机信息处理技术领域,特别是指一种基于数据库的水印处理方法及装置。


背景技术:

2.随着云计算、物联网、人工智能等信息技术的快速发展,大数据信息呈爆发式增长,大多以数据库方式在全世界范围内进行共享和交易,但是由于数据库极易被非法截获和恶意篡改,在使用过程中通常会面临着数据盗窃、非法复制和侵犯版权等问题,进而影响到数字数据本身的真实性和完整性,为此,数据库水印技术应运而生,即利用隐秘的手段将有意义的版权说明、用户身份等水印信息嵌入到数据库中,以保证必要时能够对非法复制、盗用或篡改的数据库进行鉴别,进而有效达到数据库版权保护、篡改检测、泄密溯源以及完整性认证等目的。
3.数据库水印技术大多在嵌入水印时会造成原宿主载体数据永久失真,二对于特定领域的数据库文件而言,这种数据失真是不可接受的,因此,可逆数据库水印技术不仅具有传统水印技术的特点,且能无损地恢复原始载体数据,成为解决问题的一个有效途径,在大多数场景下,由于水印嵌入后的永久数据失真会对实际应用带来一定的影响,可逆数据库水印方法成为研究热点,其中基于直方图平移方法的失真相对较小,逐渐成为主流的研究方向,在常规的基于直方图平移的可逆图像水印算法中,首先会根据特定规则选择特定的直方图频次进行可扩展来嵌入水印信息,其余的直方图则进行移位以实现可逆性,但是所有的扩展直方图频次的位置需要记录下来,并作为辅助信息保存至图像的其他区域,由于数据库水印算法的嵌入容量较少,无法保存额外的辅助信息,因此该类方法基本都不是盲提取,即需要额外传输必要的参数信息,因此,现有的基于直方图平移的可逆数据库水印方法嵌入容量相对较低,且都不是盲水印,这给实际应用带来了很大影响。


技术实现要素:

4.本发明提供一种基于数据库的水印处理方法及装置,能够解决现有技术在数据库中嵌入水印时造成原宿主载体数据永久性失真,以及不是盲提取,即需要额外传输必要的参数信息,才能够实现数据库的水印嵌入的问题。
5.为解决上述技术问题,本发明的技术方案如下:
6.一种基于数据库的水印处理方法,所述方法包括:
7.获取数据库元组的元组分组;所述元组分组包括两层元组;
8.构建所述数据库元组的预测误差直方图;
9.根据所述预测误差直方图的分布特征,确定目标元组分组;
10.分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件;
11.其中,分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信
息,得到水印数据库文件,包括:
12.对目标元组分组中的第一层元组中自适应嵌入水印信息;
13.对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件;
14.其中,对目标元组分组中的第一层元组中自适应嵌入水印信息,包括:
15.在预测误差直方图中确定参考频次;
16.将所述参考频次左侧的第一个频次作为左侧水印嵌入载体频次,将所述参考频次右侧的第一个频次作为右侧水印嵌入载体频次;
17.计算所述参考频次和所述左侧水印嵌入载体频次之间的第一距离,并确定所述第一距离的奇偶性;
18.计算所述参考频次和所述右侧水印嵌入载体频次之间的第二距离,并确定所述第二距离的奇偶性;
19.确定所述左侧水印嵌入载体频次左侧的左侧移动边界频次;
20.确定所述右侧水印嵌入载体频次右侧的右侧移动边界频次;
21.根据待嵌入的水印信息位串,对所述左侧水印嵌入载体频次和右侧水印嵌入载体频次进行扩展,确定移动频次对象;
22.根据所述第一距离和所述第二距离的奇偶性,对所述移动频次对象中的频次进行平移,在第一层元组中自适应嵌入水印信息;
23.其中,对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件,包括:
24.将方形区域内的第二层元组的属性值构建属性值对;
25.在所述属性值对中嵌入预设比特的辅助信息,得到水印数据库文件。
26.可选的,获取数据库元组的元组分组,包括:
27.为数据库元组添加唯一主键,确定数据库元组的主键值;
28.提取数据库元组中属性值为整数型的所有属性列,作为目标属性列;
29.根据所述目标属性列的属性名称,对所述目标属性列进行升序排列;
30.根据所述主键值,对数据库元组进行分组处理,得到所述元组分组。
31.可选的,根据所述主键值,对数据库元组进行分组处理,得到所述元组分组,包括:
32.根据,对数据库元组进行分组处理,得到所述元组分组;
33.其中,为数据库的分组编号,,为数据库的总分组数;为加密散列函数;为密钥;为数据库元组的主键值;%为取模运算;为连接符,用于将两个字符串合并为一个完整的字符串。
34.可选的,构建所述数据库元组的预测误差直方图,包括:
35.根据目标属性列中所有的属性值,构建偶数矩阵;
36.将所述偶数矩阵中的属性值划分为多个方形区域;
37.根据所述方形区域中第二层元组的属性值,确定第一层元组的属性预测值;
38.根据所述第一层元组的属性值和所述属性预测值,确定所述第一层元组的预测误差值;
39.根据第一层元组的预测误差值,构建预测误差直方图。
40.可选的,根据所述预测误差直方图的分布特征,确定目标元组分组,包括:
41.按照预设顺序提取所述方形区域中第二层元组的属性值的数据序列;
42.根据所述数据序列中的属性值构建分组选择预测误差直方图;
43.计算所述分组选择预测误差直方图的离散系数;
44.根据所述离散系数,确定目标元组分组。
45.可选的,对所述目标元组分组的第一层元组自适应嵌入水印信息,得到水印数据库文件,包括:
46.在每个元组分组的预测误差直方图中选择一个固定的参考频次,所述参考频次在水印嵌入前后保持不变,以所述参考频次为基准,选择所述左侧水印嵌入载体频次,或者选择所述右侧水印嵌入载体频次,作为扩展对象,并计算所述左侧水印嵌入载体频次和所述右侧水印嵌入载体频次之间的距离,并通过所述距离的奇偶性表示水印信息位0或1,得到水印数据库文件。
47.其中,对所述目标元组分组的第一层元组自适应嵌入水印信息,得到水印数据库文件,还包括:
48.对频次大于或者等于2的水印嵌入载体频次按照主键值进行分组,每个分组代表不同的水印信息位串,将每个频次对应的属性值分为两组,每组嵌入1比特的信息,在每个频次中,通过对元组主键进行升序排序处理,将主键小于预设值的属性值分为第一组,其余的属性值分为第二组;两组属性值分别根据承载的水印比特位信息进行独立扩展,得到水印数据库文件。
49.本发明还提供一种基于数据库的水印处理方法,所述方法包括:
50.获取水印数据库文件;
51.在所述水印数据库文件中,提取目标元组分组的第一层元组和第二层元组中不同的水印信息;
52.根据所述水印信息对数据库中的载体数据进行恢复处理,得到原始的数据库文件。
53.本发明还提供一种基于数据库的水印处理装置,所述装置包括:
54.获取模块,用于获取数据库元组的元组分组;所述元组分组包括两层元组;
55.处理模块,用于构建所述数据库元组的预测误差直方图;
56.根据所述预测误差直方图的分布特征,确定目标元组分组;
57.分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件;
58.其中,分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件,包括:
59.对目标元组分组中的第一层元组中自适应嵌入水印信息;
60.对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件;
61.其中,对目标元组分组中的第一层元组中自适应嵌入水印信息,包括:
62.在预测误差直方图中确定参考频次;
63.将所述参考频次左侧的第一个频次作为左侧水印嵌入载体频次,将所述参考频次
右侧的第一个频次作为右侧水印嵌入载体频次;
64.计算所述参考频次和所述左侧水印嵌入载体频次之间的第一距离,并确定所述第一距离的奇偶性;
65.计算所述参考频次和所述右侧水印嵌入载体频次之间的第二距离,并确定所述第二距离的奇偶性;
66.确定所述左侧水印嵌入载体频次左侧的左侧移动边界频次;
67.确定所述右侧水印嵌入载体频次右侧的右侧移动边界频次;
68.根据待嵌入的水印信息位串,对所述左侧水印嵌入载体频次和右侧水印嵌入载体频次进行扩展,确定移动频次对象;
69.根据所述第一距离和所述第二距离的奇偶性,对所述移动频次对象中的频次进行平移,在第一层元组中自适应嵌入水印信息;
70.其中,对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件,包括:
71.将方形区域内的第二层元组的属性值构建属性值对;
72.在所述属性值对中嵌入预设比特的辅助信息,得到水印数据库文件。
73.本发明还提供一种基于数据库的水印处理装置,所述装置包括:
74.获取模块,用于获取水印数据库文件;
75.处理模块,用于在所述水印数据库文件中,提取目标元组分组的第一层元组和第二层元组中不同的水印信息;
76.根据所述水印信息对数据库中的载体数据进行恢复处理,得到原始的数据库文件。
77.本发明的上述方案至少包括以下有益效果:
78.本发明的上述方案,通过获取数据库元组的元组分组;所述元组分组包括两层元组;构建所述数据库元组的预测误差直方图;根据所述预测误差直方图的分布特征,确定目标元组分组;分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件。能够通过对原宿主载体数据进行恢复,避免在数据库中嵌入水印时对原宿主载体数据造成失真,同时能够实现对数据库水印信息的盲提取,简单方便。
附图说明
79.图1是本发明实施例提供的基于数据库的水印处理方法的流程示意图;
80.图2是本发明实施例的多个方形区域的示意图;
81.图3是本发明实施例的构建预测误差直方图的示意图;
82.图4是本发明实施例的单频次双比特嵌入过程的第一示意图;
83.图5是本发明实施例的单频次双比特嵌入过程的第二示意图;
84.图6是本发明实施例的单频次双比特嵌入过程的第三示意图;
85.图7是本发明实施例的单频次双比特嵌入过程的第四示意图;
86.图8是本发明实施例的单频次双比特嵌入过程的第五示意图;
87.图9是本发明实施例的在第二层元组中嵌入辅助信息的第一示意图;
88.图10是本发明实施例的在第二层元组中嵌入辅助信息的第二示意图;
89.图11是本发明实施例的在第二层元组中嵌入辅助信息的第三示意图;
90.图12是本发明实施例的基于数据库的水印处理方法提取水印的流程示意图;
91.图13是本发明实施例的基于数据库的水印处理装置的模块框示意图。
具体实施方式
92.下面将参照附图更详细地描述本技术的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
93.如图1所示,本发明的实施例提供一种基于数据库的水印处理方法,所述方法包括:
94.步骤11,获取数据库元组的元组分组;所述元组分组包括两层元组;
95.步骤12,构建所述数据库元组的预测误差直方图;
96.步骤13,根据所述预测误差直方图的分布特征,确定目标元组分组;
97.步骤14,分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件。
98.本发明的该实施例中,通过所述基于数据库的水印处理方法,能够通过对原宿主载体数据进行恢复,避免在数据库中嵌入水印时对原宿主载体数据造成失真,同时能够实现对数据库水印信息的盲提取,简单方便。
99.需要说明的是,所述元组分组的数量并不限于两层,所述元组分组的数量可以根据嵌入的水印信息的比特数进行确定,如果嵌入的水印信息的比特数较大,两层元组不足以提供嵌入,则需要设定更多层数的元组分组。
100.需要注意的是,所述两层元组可以如图2所示的菱形交错的方式分为第一层元组和第二层元组。
101.本发明一可选的实施例中,步骤11,可以包括:
102.步骤111,为数据库元组添加唯一主键,确定数据库元组的主键值;
103.步骤112,提取数据库元组中属性值为整数型的所有属性列,作为目标属性列;
104.步骤113,根据所述目标属性列的属性名称,对所述目标属性列进行升序排列;
105.步骤114,根据所述主键值,对数据库元组进行分组处理,得到所述元组分组。
106.本实施例中,在嵌入水印信息之前,通过对数据库元组进行分组处理,能够使得水印的嵌入和提取独立于数据库中元组数据的存储。对数据库元组进行分组处理可以包括但不限于:添加主键、选择整数型属性、属性列排序和创建一系列不重叠的分组等操作。
107.本发明一可选的具体实施例中,获取数据库元组的元组分组的具体实现过程,可以包括:
108.为数据库每行元组数据添加唯一的主键,所述主键即关系表中记录的唯一标识;选择数据库中属性值为整数型的所有属性列;根据属性名称对所选择的属性列进行升序排列;根据如下计算式对数据库元组进行分组:
109.110.其中,为数据库的分组编号,,为数据库的总分组数;为加密散列函数;为密钥;为数据库元组的主键值;%为取模运算;为连接符,用于将两个字符串合并为一个完整的字符串。
111.本发明又一可选的实施例中,步骤12,可以包括:
112.步骤121,根据目标属性列中所有的属性值,构建偶数矩阵;
113.步骤122,将所述偶数矩阵中的属性值划分为多个方形区域;
114.步骤123,根据所述方形区域中第二层元组的属性值,确定第一层元组的属性预测值;
115.步骤124,根据所述第一层元组的属性值和所述属性预测值,确定所述第一层元组的预测误差值;
116.步骤125,根据第一层元组的预测误差值,构建预测误差直方图。
117.本实施例中,通过构建预测误差直方图,能够便于对数据进行处理,从而实现避免在数据库中嵌入水印时对原宿主载体数据造成失真,同时能够实现对数据库水印信息的盲提取,简单方便。
118.如图2所示,本发明又一可选的具体实施例中,构建数据库元组的预测误差直方图的具体过程,可以包括:
119.将目标属性列中所有的属性值构建为长宽大致相等且均为偶数的矩阵,即偶数矩阵,将所述偶数矩阵按照菱形交错的顺序分为两层,如图2所示,斜线填充的部分为第一层元组,空白的部分为第二层元组;
120.将所述偶数矩阵中的元素进一步多个方形区域,所述方形区域如图2所示的实线方框;
121.通过副对角线上的第二层元组的属性值,预测主对角线上的第一层元组的属性值,这样能够通过属性值之间的类似图像局部相似性原理来提高预测值的准确性;
122.具体以第一层元组的属性值和为例,利用同一方形区域的第二层元组的属性值和来生成所述第一层元组的属性预测值。第一层元组的属性值和的属性预测值,的计算公式如下:
[0123][0124]
其中,和为第一层元组的属性预测值,和为第一层元组的属性值;
[0125]
基于第一层元组的属性值和属性预测值,得到第一层元组的预测误差值;所述第一层元组的预测误差值的计算式如下:
[0126][0127]
最后,通过每个分组第一层元组的属性值的预测误差值,构建直方图。
[0128]
本发明又一可选的实施例中,步骤13,可以包括:
[0129]
步骤131,按照预设顺序提取所述方形区域中第二层元组的属性值的数据序列;
[0130]
步骤132,根据所述数据序列中的属性值构建分组选择预测误差直方图;
[0131]
步骤133,计算所述分组选择预测误差直方图的离散系数;
[0132]
步骤134,根据所述离散系数,确定目标元组分组。
[0133]
本实施例中,所述目标元组分组可以为元组分组中的最优分组,即预测误差直方图的分布相对更加集中,通过确定目标元组分组,能够提高水印信息的嵌入效率。
[0134]
需要说明的是,水印信息嵌入前后的分组选择结果保持一致,这样能够实现水印信息的盲提取,因此,可以通过第二层元组的预测误差直方图进行目标分组的确定。
[0135]
本发明又一可选的具体实施例中,根据预测误差直方图的分布特征,确定目标元组分组的具体过程,可以包括:
[0136]
按顺序提取每个元组分组中第二层元组的所有属性值数据序列,所述数据序列如图2中空白部分所示;
[0137]
通过所述数据序列中的属性值构建分组选择预测误差直方图,所述分组选择预测误差直方图仅用于嵌入直方图分组选择;
[0138]
具体地,对于所述数据序列中的每个属性值,其预测值为其前后两个属性值的平均值;例如,的预测值计算如下:
[0139][0140]
分别计算每个分组选择预测误差直方图的离散系数,所述离散系数为统计量,用于衡量数据离散程度,所述离散系数的计算式如下:
[0141][0142]
其中,为标准差,为均值。
[0143]
通过比较所有分组选择预测误差直方图对应的元组分组的离散系数的大小,判断不同预测误差直方图分布的离散程度后,选择预设数量的具有最小离散程度的预测误差直方图对应的属性列作为最优属性列,从而确定目标分组。
[0144]
本发明又一可选的实施例中,步骤14,可以包括:
[0145]
步骤141,对目标元组分组中的第一层元组中自适应嵌入水印信息;
[0146]
步骤142,对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件。
[0147]
具体实现时,步骤141,可以包括:
[0148]
步骤1411,在预测误差直方图中确定参考频次;
[0149]
步骤1412,将所述参考频次左侧的第一个频次作为左侧水印嵌入载体频次,将所述参考频次右侧的第一个频次作为右侧水印嵌入载体频次;
[0150]
步骤1413,计算所述参考频次和所述左侧水印嵌入载体频次之间的第一距离,并确定所述第一距离的奇偶性;
[0151]
步骤1414,计算所述参考频次和所述右侧水印嵌入载体频次之间的第二距离,并确定所述第二距离的奇偶性;
[0152]
步骤1415,确定所述左侧水印嵌入载体频次左侧的左侧移动边界频次;
[0153]
步骤1416,确定所述右侧水印嵌入载体频次右侧的右侧移动边界频次;
[0154]
步骤1417,根据待嵌入的水印信息位串,对所述左侧水印嵌入载体频次和右侧水印嵌入载体频次进行扩展,确定移动频次对象;
[0155]
步骤1418,根据所述第一距离和所述第二距离的奇偶性,对所述移动频次对象中的频次进行平移,在第一层元组中自适应嵌入水印信息。
[0156]
具体的,步骤142,可以包括:
[0157]
步骤1421,将方形区域内的第二层元组的属性值构建属性值对;
[0158]
步骤1422,在所述属性值对中嵌入预设比特的辅助信息,得到水印数据库文件。
[0159]
本实施例中,通过在第一层元组中构建预测误差直方图,根据第一层元组对应的预测误差直方图,在第一层元组中嵌入水印信息;在第二层元组中嵌入辅助信息,所述辅助信息用于辅助原宿主载体数据的无损恢复,从而实现数据库的双重水印嵌入。
[0160]
本发明又一可选的具体实施例中,对目标元组分组中的第一层元组中自适应嵌入水印信息,对第二层元组中嵌入辅助信息,得到水印数据库文件的具体实现过程,可以包括:
[0161]
如图3所示,在每个元组分组的预测误差直方图中选择一个固定的参考频次,所述参考频次在水印嵌入前后保持不变,以所述参考频次为基准,选择所述参考频次左侧的直方图频次,即左侧水印嵌入载体频次,或者选择所述参考频次右侧的直方图频次,即右侧水印嵌入载体频次,作为扩展对象,并计算所述左侧水印嵌入载体频次和所述右侧水印嵌入载体频次之间的距离,并通过所述距离的奇偶性表示水印信息位“0”或“1”。可以采用“偶0奇1”或者“偶1奇0”的水印表示策略,本实施例中优选“偶0奇1”的水印表示策略进行说明,即:若所述距离为偶数,表示所嵌入的水印信息为“0”;若所述距离为奇数,则表示水印信息为“1”,记:
[0162][0163]
其中,为嵌入的水印信息,具体为0或1,为左侧水印嵌入载体频次和右侧水印嵌入载体频次之间的距离,为除以2余。
[0164]
具体的,对频次大于或者等于2的水印嵌入载体频次按照主键值进行分组,每个分组代表不同的水印信息位串,从而实现多比特信息的嵌入;将每个频次对应的属性值分为两组,每组嵌入1比特的信息,这样单频次可以嵌入2比特信息;在每个频次中,通过对元组主键进行升序排序处理,将主键较小的属性值分为第一组,其余主键较大的属性值分为第二组;两组属性值分别根据自己承载的水印比特位信息进行独立扩展;如图4所示,斜线填充对应的频次为参考频次,网格填充部分对应的频次为第一层元组,竖线填充部分对应的频次为第二层元组,该第一层元组和第二层元组为扩展对象,其预测误差值pe=1;由于参考频次和扩展对象之间的,按照“偶0奇1”规则代表水印位串“0”;扩展对象的频次为3,表示该位置存在3个属性值,其对应的元组主键分别为1381、891、552;按照主键值升序排列规则,第一组元组主键值包括552和891,第二组元组主键值为1381;如图5所示,当待嵌入的水印信息位串时,第一组和第二组的所有元组都保持不动;如图6所示;
当时,第一组元组保持不动,第二组元组需要右移1,以使得第二组元组的频次跟参考频次之间的距离变为奇数;如图7所示;当时,第二组元组保持不动,第一组元组需要右移1;如图8所示;当时,第一组元组和第二组元组均需要右移1。
[0165]
进一步的,在每个目标元组分组的属性列的预测误差直方图中,选择峰值频次作为参考频次,并在水印嵌入前后保持不动;如图4所示,若存在多个相同的峰值频次,则选择预测误差直方图中最右侧的峰值频次,即预测误差值最大的频次;
[0166]
确定参考频次,选择所述参考频次左侧的第一个频次作为左侧水印嵌入载体频次,选择所述参考频次右侧的第一个频次作为右侧水印嵌入载体频次;
[0167]
计算所述参考频次与左侧水印嵌入载体频次之间的距离,并标记所距离的奇偶性;
[0168][0169]
计算所述参考频次与右侧水印嵌入载体频次之间的距离,并标记距离的奇偶性;
[0170][0171]
搜索所述左侧水印嵌入载体频次左侧的移动边界频次,以及右侧水印嵌入载体频次右侧的移动边界频次和;
[0172]
具体地,对于左侧水印嵌入载体频次左侧的所有频次,分别计算所有相邻频次之间的间距,,并依次计算前后距离的比值,并选择前后频次距离比值大于设定阈值时,该频次可视为移动频次对象组的左侧移动边界频次;通过同样的方法可以搜索到移动对象组的右侧移动边界频次;当选择合适的阈值时,水印嵌入前后的移动频次对象组的定位是一致的,从而可以保证水印信息是盲提取;当时,图3中搜索到的左侧移动边界频次为,右侧移动边界频次为;
[0173]
根据待嵌入的水印信息位串对左侧水印嵌入载体频次和右侧水印嵌入载体频次进行扩展,并对移动频次对象中的频次进行平移,形成冗余空间以保证可逆性;
[0174]
根据距离奇偶性规则,当待嵌入的水印比特位与参考频次和左侧水印嵌入载体频次之间的第一距离,和参考频次和所述右侧水印嵌入载体频次之间的第二距
离的奇偶性一致时,频次和不需要移动,在一定程度上减少了数据失真;否则,需要移动频次或的位置以正确标识待嵌入的水印位,移动频次对象中的频次也需要进行相应的移位操作;具体的平移规则如下:
[0175][0176]
其中,为对应的新预测误差值;
[0177]
第一层元组的属性值对应的新的属性值计算如下:
[0178][0179]
需要说明的是,根据待嵌入的水印信息位分别与当前距离的奇偶性和距离的奇偶性的奇偶性判断,以决定左侧水印嵌入载体频次和右侧水印嵌入载体频次是否需要移动;因此,为了能够保证可逆性,需要额外存储2比特辅助信息,以辅助载体数据的无损恢复,其表示如下:
[0180][0181]
其中,表示左侧水印嵌入载体频次没有进行平移操作,则表示左侧水印嵌入载体频次进行了平移操作,同理;由于本实施例中采用了单频次多比特嵌入的方式,额外嵌入的2比特信息可以辅助多于2比特信息的嵌入,而不会引起多余的数据失真,所以水印嵌入效率相对较高。
[0182]
在每个元组分组内的第二层元组的属性值中嵌入辅助信息,当选择的参考频次为预测误差直方图中的第一个或者最后一个频次时,表明在参考频次左侧或右侧不存在其他水印嵌入载体频次,此时第二层元组的属性值中仅嵌入1比特的辅助信息,即或者;具体的实现过程如下:
[0183]
将每个元组分组中方形区域内的第二层属性值构成一个属性值对,其中嵌入1比
特辅助信息;
[0184]
对于每个属性对,若待嵌入的辅助信息且,或者且,则交换相应的两个元组属性值(不包含主键)和的顺序,否则两个元组属性值保持不动;
[0185]
按照相同方法,以菱形交错的顺序在所有属性对中循环嵌入辅助信息和;
[0186]
如图9至11所示的辅助信息嵌入示例,元组属性值和中分别嵌入了和1的辅助信息,其中属性列2是选择嵌入辅助信息的属性列,即属性对;在第二层元组中使用基于属性值大小排序的嵌入辅助信息时,元组属性值不会发生改变,而仅仅交换了位置顺序,因此不会影响到第一层元组属性值的预测值计算。
[0187]
在水印嵌入阶段,需要先在分组中利用预测误差直方图平移的方式嵌入水印信息,然后再在第二层元组中嵌入辅助信息;相反地,在水印提取时,先从第二层元组中提取辅助信息,再在第一层元组中提取水印信息,并通过第二层提取的辅助信息进行数据库原始元组数据的恢复。
[0188]
本发明的上述实施例中,所述水印处理方法,能够在嵌入失真总体可控的前提下,平均嵌入容量可以达到现有方法容量的3倍以上,并且可以实现水印盲提取;
[0189]
所述水印处理方法通过直方图平移方法和无失真水印方法相结合,实现直方图频次的自适应选择、水印信息盲提取和载体数据无损恢复。该方法通过对数据库元组进行预处理分组后,在每个分组内利用方形预测中的单层元组构建预测误差直方图,并通过自适应选择和扩展直方图频次嵌入水印信息,而在另一层元组中则使用无失真水印方法辅助原始载体数据恢复;
[0190]
通过在每个数据库元组分组内再次进行方形分组,并利用第二层元组属性值的预测误差直方图分布来预测第一层直方图,可以保证水印嵌入前后能够自适应地选择相同的元组分组结果;提出了新的直方图频次平移规则,通过参考频次与水印嵌入载体频次之间的距离值的奇偶性来标识待嵌入的水印信息位串,避免了水印嵌入时额外记录大量的直方图频次位置信息;另外,选择的直方图频次分布相对比较集中,提高了水印嵌入载体的频次,并采用单频次2比特嵌入方法,进而增加了水印嵌入容量;通过寻找直方图平移频次的移动边界,减少了直方图频次移动数量,进一步降低了水印嵌入过程中的数据失真;利用无失真水印方法嵌入水印载体频次是否移动的标识信息,在不引起新的数据失真的前提下,辅助实现了数据库元组数据的无损恢复,进而可以实现水印信息盲提取。
[0191]
如图12所示,本发明的实施例还提供一种基于数据库的水印处理方法,所述方法包括:
[0192]
步骤121,获取水印数据库文件;
[0193]
步骤122,在所述水印数据库文件中,提取目标元组分组的第一层元组和第二层元组中不同的水印信息;
[0194]
步骤123,根据所述水印信息对数据库中的载体数据进行恢复处理,得到原始的数据库文件。
[0195]
本实施例中,通过所述基于数据库的水印处理方法,通过对水印数据库文件中水印信息的提取处理,能够实现在全盲的条件下,成功地提取出嵌入在数据中的水印信息,并在载体数据恢复阶段将所有元组属性值恢复成原始状态;能够保证数据库文件的数据安全性,实现对数据的防泄密,在发生数据泄密时,实现对泄密源头的追溯。
[0196]
本发明又一可选的具体实施例中,所述基于数据库的水印处理方法提取水印时的具体处理过程,可以包括:
[0197]
通过对嵌入水印的数据库元组数据,即水印数据库文件进行与嵌入水印时相同的预处理操作,具体包括:选整数型属性列选择、属性列排序、数据库分组等,并针对每个数据库元组属性值分组,采用与水印嵌入阶段相同的预测误差直方图分布特征分析的方式,获取最优分组的元组属性列;
[0198]
具体的,将数据库的元组分组中每个方形区域的第二层元组的属性值构成一个属性值对;
[0199]
对于每个属性值对,若,则提取的辅助信息,若,则提取的辅助信息;
[0200]
按照菱形交错的顺序依次循环从所有属性值对中提取辅助信息,并根据投票原则确定最终的辅助信息和;
[0201]
对于每个元组分组,计算第一层元组的属性值的属性预测值,通过预测误差值构建预测误差直方图,预测误差值的计算方法如下:
[0202][0203]
进行第一层元组的属性值的水印信息提取;具体地,选择预测误差直方图中最右侧峰值频次作为参考频次,将参考频次左右两侧的第一个频次的预测误差值记为和,由于和一定是水印嵌入载体,分别记和与的间距为和,判断与水印嵌入载体频次之间的间距值的奇偶性,并通过以下规则提取水印信息:
[0204][0205]
对于的左侧频次和的右侧频次,则分别考虑如下情况:
[0206]
(1)若()的频次值等于0,则不存在水印嵌入载体;
[0207]
(2)若()的频次值不等于0,且(
),则表明()本身是移动后的水印载体频次,()是移动后的非水印载体频次;
[0208]
(3)若()的频次值不等于0,且(),则表明()本身没有发生移动,()是扩展平移后的水印载体频次,计算和()之间的距离值(),并提取水印信息()如下:
[0209][0210]
需要注意的是,本实施例说明单频次2比特嵌入过程,则需要按照主键排序方式分成两组分别进行提取,先提取主键值较小的分组,再提取主键值较大的分组,在每个分组内按照先左后右的顺序依次提取水印信息;例如和所在元组的主键均小于和所在元组的主键时,该分组中提取的水印信息为;类似地,对于单频次比特嵌入方法,可以制定相应的分组方法依次进行扩展嵌入;当值越大,按主键值进行分组数目就越多,相应的水印嵌入容量就越大。
[0211]
通过左侧的移动边界频次和右侧的移动边界频次,参考频次、水印嵌入载体频次以及提取的辅助信息,根据以下方法来计算恢复后的属性值:
[0212]
(1)恢复两侧的水印载体频次和,对于左侧的,则为:
[0213][0214]
对于右侧的水印嵌入载体频次,则为:
[0215][0216]
分别恢复左侧的频次和右侧的频次如下:
[0217][0218][0219]
恢复其他非水印嵌入载体频次,其移动规则如下:
[0220][0221]
需要说明的是,该方法是与上述水印处理方法对应的方法,上述水印处理方法实施例中的所有实现方式均适用于该方法的实施例中,也能达到相同的技术效果。
[0222]
如图13所示,本发明的实施例还提供一种基于数据库的水印处理装置130,所述装置130包括:
[0223]
获取模块131,用于获取数据库元组的元组分组;所述元组分组包括两层元组;
[0224]
处理模块132,用于构建所述数据库元组的预测误差直方图;
[0225]
根据所述预测误差直方图的分布特征,确定目标元组分组;
[0226]
分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件。
[0227]
可选的,获取数据库元组的元组分组,包括:
[0228]
为数据库元组添加唯一主键,确定数据库元组的主键值;
[0229]
提取数据库元组中属性值为整数型的所有属性列,作为目标属性列;
[0230]
根据所述目标属性列的属性名称,对所述目标属性列进行升序排列;
[0231]
根据所述主键值,对数据库元组进行分组处理,得到所述元组分组。
[0232]
可选的,构建所述数据库元组的预测误差直方图,包括:
[0233]
根据目标属性列中所有的属性值,构建偶数矩阵;
[0234]
将所述偶数矩阵中的属性值划分为多个方形区域;
[0235]
根据所述方形区域中第二层元组的属性值,确定第一层元组的属性预测值;
[0236]
根据所述第一层元组的属性值和所述属性预测值,确定所述第一层元组的预测误差值;
[0237]
根据第一层元组的预测误差值,构建预测误差直方图。
[0238]
可选的,根据所述预测误差直方图的分布特征,确定目标元组分组,包括:
[0239]
按照预设顺序提取所述方形区域中第二层元组的属性值的数据序列;
[0240]
根据所述数据序列中的属性值构建分组选择预测误差直方图;
[0241]
计算所述分组选择预测误差直方图的离散系数;
[0242]
根据所述离散系数,确定目标元组分组。
[0243]
可选的,分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件,包括:
[0244]
对目标元组分组中的第一层元组中自适应嵌入水印信息;
[0245]
对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件。
[0246]
可选的,对目标元组分组中的第一层元组中自适应嵌入水印信息,包括:
[0247]
在预测误差直方图中确定参考频次;
[0248]
将所述参考频次左侧的第一个频次作为左侧水印嵌入载体频次,将所述参考频次右侧的第一个频次作为右侧水印嵌入载体频次;
[0249]
计算所述参考频次和所述左侧水印嵌入载体频次之间的第一距离,并确定所述第一距离的奇偶性;
[0250]
计算所述参考频次和所述右侧水印嵌入载体频次之间的第二距离,并确定所述第二距离的奇偶性;
[0251]
确定所述左侧水印嵌入载体频次左侧的左侧移动边界频次;
[0252]
确定所述右侧水印嵌入载体频次右侧的右侧移动边界频次;
[0253]
根据待嵌入的水印信息位串,对所述左侧水印嵌入载体频次和右侧水印嵌入载体频次进行扩展,确定移动频次对象;
[0254]
根据所述第一距离和所述第二距离的奇偶性,对所述移动频次对象中的频次进行平移,在第一层元组中自适应嵌入水印信息。
[0255]
可选的,对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件,包括:
[0256]
将方形区域内的第二层元组的属性值构建属性值对;
[0257]
在所述属性值对中嵌入预设比特的辅助信息,得到水印数据库文件。
[0258]
需要说明的是,该装置是与上述水印处理方法对应的装置,上述水印处理方法实施例中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
[0259]
本发明的实施例还提供一种基于数据库的水印处理装置,所述装置包括:
[0260]
获取模块,用于获取水印数据库文件;
[0261]
处理模块,用于在所述水印数据库文件中,提取目标元组分组的第一层元组和第二层元组中不同的水印信息;
[0262]
根据所述水印信息对数据库中的载体数据进行恢复处理,得到原始的数据库文件。
[0263]
需要说明的是,该装置是与上述水印处理方法对应的装置,上述水印处理方法实施例中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
[0264]
本发明的实施例还提供一种计算设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如上所述的方法。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。
[0265]
本发明的实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如上所述的方法。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。
[0266]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0267]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0268]
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0269]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0270]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0271]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0272]
此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
[0273]
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组
合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
[0274]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术特征:
1.一种基于数据库的水印处理方法,其特征在于,所述方法包括:获取数据库元组的元组分组;所述元组分组包括两层元组;构建所述数据库元组的预测误差直方图;根据所述预测误差直方图的分布特征,确定目标元组分组;分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件;其中,分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件,包括:对目标元组分组中的第一层元组中自适应嵌入水印信息;对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件;其中,对目标元组分组中的第一层元组中自适应嵌入水印信息,包括:在预测误差直方图中确定参考频次;将所述参考频次左侧的第一个频次作为左侧水印嵌入载体频次,将所述参考频次右侧的第一个频次作为右侧水印嵌入载体频次;计算所述参考频次和所述左侧水印嵌入载体频次之间的第一距离,并确定所述第一距离的奇偶性;计算所述参考频次和所述右侧水印嵌入载体频次之间的第二距离,并确定所述第二距离的奇偶性;确定所述左侧水印嵌入载体频次左侧的左侧移动边界频次;确定所述右侧水印嵌入载体频次右侧的右侧移动边界频次;根据待嵌入的水印信息位串,对所述左侧水印嵌入载体频次和右侧水印嵌入载体频次进行扩展,确定移动频次对象;根据所述第一距离和所述第二距离的奇偶性,对所述移动频次对象中的频次进行平移,在第一层元组中自适应嵌入水印信息;其中,对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件,包括:将方形区域内的第二层元组的属性值构建属性值对;在所述属性值对中嵌入预设比特的辅助信息,得到水印数据库文件。2.根据权利要求1所述的基于数据库的水印处理方法,其特征在于,获取数据库元组的元组分组,包括:为数据库元组添加唯一主键,确定数据库元组的主键值;提取数据库元组中属性值为整数型的所有属性列,作为目标属性列;根据所述目标属性列的属性名称,对所述目标属性列进行升序排列;根据所述主键值,对数据库元组进行分组处理,得到所述元组分组。3.根据权利要求2所述的基于数据库的水印处理方法,其特征在于,根据所述主键值,对数据库元组进行分组处理,得到所述元组分组,包括:根据,对数据库元组进行分组处理,得到所述元组分组;其中,为数据库的分组编号,,为数据库的总分组数;
为加密散列函数;为密钥;为数据库元组的主键值;%为取模运算;为连接符,用于将两个字符串合并为一个完整的字符串。4.根据权利要求1所述的基于数据库的水印处理方法,其特征在于,构建所述数据库元组的预测误差直方图,包括:根据目标属性列中所有的属性值,构建偶数矩阵;将所述偶数矩阵中的属性值划分为多个方形区域;根据所述方形区域中第二层元组的属性值,确定第一层元组的属性预测值;根据所述第一层元组的属性值和所述属性预测值,确定所述第一层元组的预测误差值;根据第一层元组的预测误差值,构建预测误差直方图。5.根据权利要求1所述的基于数据库的水印处理方法,其特征在于,根据所述预测误差直方图的分布特征,确定目标元组分组,包括:按照预设顺序提取所述方形区域中第二层元组的属性值的数据序列;根据所述数据序列中的属性值构建分组选择预测误差直方图;计算所述分组选择预测误差直方图的离散系数;根据所述离散系数,确定目标元组分组。6.根据权利要求1所述的基于数据库的水印处理方法,其特征在于,对所述目标元组分组的第一层元组自适应嵌入水印信息,得到水印数据库文件,包括:在每个元组分组的预测误差直方图中选择一个固定的参考频次,所述参考频次在水印嵌入前后保持不变,以所述参考频次为基准,选择所述左侧水印嵌入载体频次,或者选择所述右侧水印嵌入载体频次,作为扩展对象,并计算所述左侧水印嵌入载体频次和所述右侧水印嵌入载体频次之间的距离,并通过所述距离的奇偶性表示水印信息位0或1,得到水印数据库文件。7.根据权利要求5所述的基于数据库的水印处理方法,其特征在于,对所述目标元组分组的第一层元组自适应嵌入水印信息,得到水印数据库文件,还包括:对频次大于或者等于2的水印嵌入载体频次按照主键值进行分组,每个分组代表不同的水印信息位串,将每个频次对应的属性值分为两组,每组嵌入1比特的信息,在每个频次中,通过对元组主键进行升序排序处理,将主键小于预设值的属性值分为第一组,其余的属性值分为第二组;两组属性值分别根据承载的水印比特位信息进行独立扩展,得到水印数据库文件。8.一种基于数据库的水印处理方法,其特征在于,所述方法包括:获取水印数据库文件;在所述水印数据库文件中,提取目标元组分组的第一层元组和第二层元组中不同的水印信息;根据所述水印信息对数据库中的载体数据进行恢复处理,得到原始的数据库文件。9.一种基于数据库的水印处理装置,其特征在于,所述装置包括:获取模块,用于获取数据库元组的元组分组;所述元组分组包括两层元组;处理模块,用于构建所述数据库元组的预测误差直方图;根据所述预测误差直方图的分布特征,确定目标元组分组;
分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件;其中,分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件,包括:对目标元组分组中的第一层元组中自适应嵌入水印信息;对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件;其中,对目标元组分组中的第一层元组中自适应嵌入水印信息,包括:在预测误差直方图中确定参考频次;将所述参考频次左侧的第一个频次作为左侧水印嵌入载体频次,将所述参考频次右侧的第一个频次作为右侧水印嵌入载体频次;计算所述参考频次和所述左侧水印嵌入载体频次之间的第一距离,并确定所述第一距离的奇偶性;计算所述参考频次和所述右侧水印嵌入载体频次之间的第二距离,并确定所述第二距离的奇偶性;确定所述左侧水印嵌入载体频次左侧的左侧移动边界频次;确定所述右侧水印嵌入载体频次右侧的右侧移动边界频次;根据待嵌入的水印信息位串,对所述左侧水印嵌入载体频次和右侧水印嵌入载体频次进行扩展,确定移动频次对象;根据所述第一距离和所述第二距离的奇偶性,对所述移动频次对象中的频次进行平移,在第一层元组中自适应嵌入水印信息;其中,对目标元组分组中的第二层元组中嵌入辅助信息,得到水印数据库文件,包括:将方形区域内的第二层元组的属性值构建属性值对;在所述属性值对中嵌入预设比特的辅助信息,得到水印数据库文件。10.一种基于数据库的水印处理装置,其特征在于,所述装置包括:获取模块,用于获取水印数据库文件;处理模块,用于在所述水印数据库文件中,提取目标元组分组的第一层元组和第二层元组中不同的水印信息;根据所述水印信息对数据库中的载体数据进行恢复处理,得到原始的数据库文件。

技术总结
本发明提供一种基于数据库的水印处理方法及装置。涉及计算机信息处理技术领域。其中,所述基于数据库的水印处理方法,包括:获取数据库元组的元组分组;所述元组分组包括两层元组;构建所述数据库元组的预测误差直方图;根据所述预测误差直方图的分布特征,确定目标元组分组;分别对所述目标元组分组的第一层元组和第二层元组嵌入不同的水印信息,得到水印数据库文件。本发明的方案能够通过对原宿主载体数据进行恢复,避免在数据库中嵌入水印时对原宿主载体数据造成失真,同时能够实现对数据库水印信息的盲提取,简单方便。简单方便。简单方便。


技术研发人员:侯家林
受保护的技术使用者:信智慧通科技(北京)有限公司
技术研发日:2023.09.04
技术公布日:2023/10/11
版权声明

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

飞行汽车 https://www.autovtol.com/

分享:

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

相关推荐