基于差分进化算法的可逆关系数据库水印嵌入和提取方法与流程

文档序号:18741345发布日期:2019-09-21 01:48阅读:285来源:国知局
基于差分进化算法的可逆关系数据库水印嵌入和提取方法与流程

本发明用于数据库版权的保护,具体是一种基于差分进化算法的可逆关系数据库水印嵌入和提取方法。



背景技术:

近年来,随着计算机互联网与通信事业的发展,多媒体信息的传输交流变得非常容易,由此而产生的安全问题也备受关注。数据库作为一种数据集合,储存着很多敏感信息,也是信息安全领域其中一个主要分支。这些数据随着时间的积累,往往蕴含着巨大的社会价值和经济价值。然而,随着数据库应用领域的不断扩展,也引发了数据安全,隐私保护以及版权保护等问题,主要是数据库的窃取,篡改问题。

数据库水印技术是许多的前辈们在传统的数字水印、图像水印、多媒体水印的原理上结合关系型数据自身的特点提出的,国内在数据库水印方面均有一定成果。其中具有代表性的有2002年R.Agrawal等人提出的关系数据库中数值型属性值进行LSB位置进行嵌入,按照一定规则将比特位设为1和0。Francocontreras J等人在2017年提出了基于圆直方图调制的关系数据库鲁棒无损水印它可用于数据库身份验证以及在修改数据库源后识别数据库源时的跟踪。Donghui H等人[7]在2018年提出了一种新的带有失真控制的鲁棒可逆数据库水印算法目前成功开发的数据库水印系统有WMDB和Watermill。

王静,崔新春等人[26]2016年提出了一种基于差分进化的数字图像水印优化算法,采用差分进化算法经变异、交叉、选择三步操作后分别获得适应各个频带子图的最优嵌入强度.之后,将混沌加密后的水印信息嵌入到宿主图像对应的奇异值中,完成水印嵌入。

差分进化算法是1995年提出的一种高效的全局优化算法,也是一种基于种群体的启发式搜索算法,种群每个个体代表一个解向量,其包括变异、交叉、选择操作,由于其控制参数较少、结构简单、收敛迅速、鲁棒性强被应用于多个领域。



技术实现要素:

本发明的内容在于:针对一些在数据精度要求高的领域,如军事,医学,金融等方面,提出一种基于差分进化算法的可逆数据库水印方法,能够有效提高数据库水印不可见性和鲁棒性。

本发明的思路:将数据库分块处理,通过差分进化算法计算最优嵌入位置,将版权图像通过边缘检测算法变换后指导水印嵌入。

具体步骤为:

步骤1:版权图像初始化;

对版权图像采用Roberts边缘检测算子进行预处理,可生成只包含边缘特征点的二值图像,并将二值图像转换成只有0,1的二维矩阵,其中白色代表二进制的1,黑色代表二进制的0,最后将二值图像转换为一维水印序列。

步骤2:数据库预处理;

针对该数据库,对其进行分块处理,首先用数据库中元组的个数除以提取到的像素点个数得到分块个数。随机选取一列数值型数学,并统计该列的众数,设置合适的阈值,当众数个数大于该阈值则分为一个块,阈值的设置决定分块大小。

步骤3:种群初始化;

首先确定缩放因子F和交叉概率CR,然后借助均匀分布随机函数从数据库分块中产生N个个体,Xi0表示第0代的第i个个体,每个个体由D个坐标点的数值组成,即为D维:Xi0={xi10,xi20,xi30,…,xiD0};i=1,2,3,…,N。

步骤4:适应度函数计算;

适应度函数的设计分为两部分:

对两部分函数添加权重来控制两部分所占比例输入参数为种群个体和水印参数: Fit(xi,wi)=ωa*fit1+ωb*fit2(ωa+ωb=1)

其中avga:水印嵌入前数据块平均值;avgb:水印嵌入后数据块平均值;σa2:水印嵌入前数据块方差;σb2:水印嵌入后数据块方差;N为种群个数,D为种群个体维度。|after(i,j)-before(i,j)|表示嵌入水印后数据改变量,横坐标i为 id值,纵坐标j代表属性列。

通过计算适应度函数对初始种群个体排序此时适应度较好的个体获得了较小的序列值,然后将排序后的个体赋予一个序列号Ri。接下来通过序列号和种群数量计算出每个个体的选择概率pi。

步骤5:变异操作;

首先从种群Xi0={xi10,xi20,xi30,…,xiD0};i=1,2,3,…,N中随机选出一个不同于xi的个体然后从0~1之间产生一个随机数a,随机选取个体和若所选个体的概率值都大于a且互不相同则选择成功,否则重新选取,通过变异公式:

对其进行变异操作,产生一个中间个体Vig+1={vi1g+1,vi2g+1,…,,viDg+1};i= 1,2,3,…,N;其中g为进化代数。

步骤6:交叉操作;

为提高种群的多样性对父代个体xig和经过变异后生成的vig+1按照如下公式进行个体内部的交叉操作,得到新种群个体 Uig+1={ui1g+1,ui2g+1,…,uiDg+1};i=1,2,3,…,N,其中randj∈(0,1), sn为{1,2,…,D}中的随机数:

步骤7:选择操作;

根据变异交叉操作后生成的新种群个体uig+1与xig进行比较,若候选个体 uig+1适应度函数优于xig时,则选择uig+1作为子代,否则选择xig作为子代,生成最终种群Xig+1={xi1g+1,xi2g+1,xi3g+1,…,xiDg+1};i=1,2,3,…,N;选择公式如下所示:

步骤8:水印嵌入过程;

为每一个数据块分配一个随机的8位二进制水印序列,遍历图像产生的一维数组,像素点为0时,不做操作,当像素点为1时,进行如下操作:

(1)按照上述方法对算法参数进行初始化。

(2)按照算法的执行过程搜索出数据块最优水印嵌入位置。

(3)遍历为数据块分配的随机水印序列,当水印参数为0时,遍历待嵌位置,并在该位置的数值型数据的最低有效位做减法操作。

(4)当水印参数为1时,遍历待嵌位置,并在该位置的数据最低有效位做加法操作。

(5)判断所有数据块是否全部遍历,若没有遍历完全,需返回(1)。

步骤9:水印提取;

数据库水印的提取即为水印嵌入的逆过程,首先需要通过保存的中间数据将数据库分块还原,并找出嵌入水印位置以及为其分配的水印序列,将最终数据依次与中间数据相减,若为正数则记录1,若为负数则记录0,直到提取8位二进制数与保存的水印序列相比较若相同则该数据块嵌入水印并记录为1,否则记录 0,直到所有数据块遍历完毕。

步骤10:边缘二值图像还原;

将步骤9生成的一维数组还原为二维数组,遍历该二维数组,确定图像的宽高,若数组值为1时,代表当前位置像素为白色,即RGB值为255,反之亦然,得到版权图像的二值图。

步骤11:水印不可见性分析;

通过水印嵌入前后平均值,方差的改变比例来判断,改变比例越低,证明不可见性越好。

步骤12:水鲁棒性检测;

通过对嵌入水印的数据库进行不同强度的添加,修改,删除攻击后水印提取率来验证实验的鲁棒性。

附图说明

图1为本发明提供的一种基于差分进化算法的可逆关系数据库水印嵌入和提取方法的算法框架图。

图2为本发明使用到的差分进化算法的详细算法流程图。

图3为图像由边缘检测算子处理前后(a为处理前,b为处理后)。

具体实施方式

本方案采用股票交易数据作为实验数据,对数据库测试链接,预处理,生成水印,水印嵌入,水印提取,模拟攻击等一系列操作,给出本发明的一个实施例,本发水印序列采用8位随机二进制序列,种群维度选择数据块大小的40%。

具体步骤为:

步骤1:对版权图像采用Roberts边缘检测算子进行预处理,该算法的原理是基于一对相互垂直方向上的差分来计算梯度,对角线像素之差表示为:

Δxf=f(i,j)-f(i+1,j+1)

Δyf=f(i,j+1)-f(i+1,j)

其中f(i,j),f(i+1,j),f(i,j+1),f(i+1,j+1)表示图像中一个像素的像素值,对f(i,j)这个像素点求Roberts梯度为:

用差分近似为:

若梯度值R(i,j)大于选取的阈值T,即判断为边缘点。实验效果图如图3所示:

将得到的二值图像转换成0,1的二维矩阵,其中白色代表二进制的1,黑色代表二进制的0,最后将二值图像转换为一维水印序列。

步骤2:对股票交易数据库分块预处理,连接数据库,统计该数据库的属性名称a,b,c,d,e,f,g,随机选取一列属性,并统计该列的众数,将众数个数与设定的阈值相比较,当众数个数大于该阈值时,统计该众数所在元组的所有id作为一个分块存入表中,并为每个分块设置一个索引方便遍历。

步骤3:种群初始化;

首先确定缩放因子F和交叉概率CR,这里F取0.5,CR取0.3。然后借助均匀分布随机函数从数据库分块中产生N个个体,Xi0表示第0代的第i个个体,每个个体由D个坐标点的数值组成,即为D维:

Xi0={xi10,xi20,xi30,…,xiD0};i=1,2,3,…,N。

步骤4:适应度函数计算;

将两部分公式添加权重组成适应度函数:

Fit(xi,wi)=ωa*fit1+ωb*fit2;此处取ωa=0.4,ωb=0.6;

其中avga:水印嵌入前数据块平均值;avgb:水印嵌入后数据块平均值;σa2:水印嵌入前数据块方差;σb2:水印嵌入后数据块方差;N为种群个数,D为种群个体维度。|after(i,j)-before(i,j)|表示嵌入水印后数据改变量,横坐标i为 id值,纵坐标j代表属性列。

通过将初始种群嵌入数据库计算嵌入前后适应度函数对初始种群个体排序,此时适应度较好的个体获得了较小的序列值,然后利用如下公式将排序后的个体赋予一个序列号Ri。

Ri=N-i;i=1,2,…,N

接下来通过序列号和种群数量计算出每个个体的选择概率pi。

步骤5:变异操作;

首先从种群Xi0={xi10,xi20,xi30,…,xiD0};i=1,2,3,…,N中随机选出一个不同于xi的个体然后从0~1之间产生一个随机数a,随机选取个体和若所选个体的概率值都大于a且互不相同则选择成功,否则重新选取,通过变异公式:

对其进行变异操作,产生一个中间个体Vig+1={vi1g+1,vi2g+1,…,,viDg+1};i= 1,2,3,…,N;其中g为进化代数。

步骤6:交叉操作;

为提高种群的多样性对父代个体xig和经过变异后生成的vig+1按照如下公式进行个体内部的交叉操作,得到新种群个体 Uig+1={ui1g+1,ui2g+1,…,uiDg+1};i=1,2,3,…,N,其中randj∈(0,1), sn为{1,2,…,D}中的随机数:

步骤7:选择操作;

根据变异交叉操作后生成的新种群个体uig+1与xig进行比较,若候选个体 uig+1适应度函数优于xig时,则选择uig+1作为子代,否则选择xig作为子代,生成最终种群Xig+1={xi1g+1,xi2g+1,xi3g+1,…,xiDg+1};i=1,2,3,…,N;选择公式如下所示:

步骤8:水印嵌入过程;

为每一个数据块分配一个随机的8位二进制水印序列,遍历图像产生的一维数组,像素点为0时,不做操作,当像素点为1时,进行如下操作:

(1)按照上述方法对算法参数进行初始化。

(2)按照算法的执行过程搜索出数据块最优水印嵌入位置。

(3)遍历为数据块分配的随机水印序列,当水印参数为0时,遍历待嵌位置,并在该位置的数值型数据的最低有效位做减法操作。

(4)当水印参数为1时,遍历待嵌位置,并在该位置的数值型数据最低有效位做加法操作。

(5)判断所有数据块是否全部遍历,若没有遍历完全,需返回(1)

步骤9:水印提取;

首先通过保存的中间数据将数据库分块还原,并找出嵌入水印位置以及为其分配的水印序列,将最终数据依次与中间数据相减,若为正数则记录1,若为负数则记录0,直到提取8位二进制数与保存的水印序列相比较若相同则该数据块嵌入水印并记录为1,否则记录0,直到所有数据块遍历完毕。

步骤10:边缘二值图像还原;

将步骤9生成的一维数组还原为二维数组,遍历该二维数组,确定图像的宽高,若数组值为1时,代表当前位置像素为白色,即RGB值为255,反之亦然,得到版权图像的二值图。

步骤11:水印不可见性分析;

通过水印嵌入前后每个属性平均值,方差的改变比例做相应计算,改变比例越低,证明不可见性越好。

步骤12:水鲁棒性检测;

通过对嵌入水印的数据库进行不同强度的添加,修改,删除攻击后计算实验前后白色点变化率来表示水印提取率M,n代表提取后白色点的个数,sum代表原始个数,则:

该实验方法既能保证数据库的还原,降低了数据库的失真,并有效提高数据库水印的不可见性和鲁棒性,能够在较强攻击下识别数据库版权。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1