零水印算法(精选九篇)
零水印算法 篇1
关键词:边缘信息,视觉密码,零水印算法
0 引言
网络既为多媒体的传播提供快捷通道,也使得这些数字作品被复制和修改的几率大大提高。因此数字产品的版权保护技术备受关注,并成为当前的研究热点。数字水印是利用信息隐藏的原理将版权标志隐藏在媒体中,从而实现版权保护的目的。这种技术难以平衡水印鲁棒性和媒体质量间的矛盾,即媒体修改较多时,水印的鲁棒性较好,但媒体质量将受到严重影响;反之,水印鲁棒性差,媒体质量影响较小。而零水印的出现很好地解决了这一矛盾。零水印不对媒体作任何修改,而是利用媒体的特征信息构造版权信息。文献[1]以载体图像中的稳定特征点为中心建立相应的特征区域,在此区域中嵌入水印。此算法对几何攻击具有一定的鲁棒性,但水印的嵌入对图像有一定的影响。文献[2]-文献[7]利用视觉密码的原理构造零水印。算法对载体图像做一定变换后,得到图像的特征信息;用视觉密码的编码原理将此信息编码为主图分,最后结合水印信息生成零水印。此算法中图像的特征信息虽具有一定的稳定性,但这种稳定是相对的,当图像受到攻击时其特征信息将受到影响,这种影响通过视觉密码的编码后将成倍放大,从而成倍降低水印提取质量。鉴于此,本文选择对水印图像作视觉密码分解,利用分解得到的影子图像和图像的特征信息生成零水印。
1 相关理论
1.1 图像边缘
在视觉的初级阶段,人类视觉系统首先将图像边缘和纹理分离出来,然后感知图像的细节。图像的边缘点具有较强的灰度突变,且相邻边缘点之间存在一定的有序性和方向性。图像边缘指图像中周围像素灰度有变化的像素的集合,主要表现为局部特征的不连续性。基于搜索的边缘检测方法是先计算图像边缘的强度,其中边缘的强度可用梯度模表示,然后找到局部梯度模的最大值。图像梯度G(x,y)= dx i + dy j(其中,dx(i,j)= I(i+1,j)-I(i,j);dy(i,j)=I(i,j+1)-I(i,j))。本文通过求出图像的梯度后,再对梯度模值进行二值化就可得到图像的边缘信息。Lena图像的边缘信息如图1所示。
1.2 视觉密码
视觉密码理论VCS(Visual Cryptography Scheme)由Naor和Shamir在欧洲密码学会议上提出[7]。一直以来密码都是基于数学难题,视觉密码第一次用图像作为密钥来研究。对于(k,n)的视觉密码而言,其加密过程是对图像p中的每个元素进行扩展,即将p中的一个像素用m个黑白子像素来代替。当p中所有元素均被替换完时,就得到一幅拉宽了m倍(相对于图像p而言)的分享图像。对图像p作n次上述操作,即可得到图像p的n幅影子图像。解密时只需将n幅影子图像中的任意k幅影子图像进行叠加,就可用人眼辨认出秘密信息。与传统的密码学相比,视觉密码具有运算量小、解密简单等优势。因此,视觉密码方案一经提出便备受青睐。
为了说明视觉密码的加解密过程,选取某幅图像p作(2,2)的视觉密码分解,图像P = (Pij)X*Y,即图像p有X行,Y列。在VCS方案中0代表白像素,1代表黑像素,和分别为白像素和黑像素对应的基础变换矩阵。H0和H1是对基础矩阵S0和S1作随机列置换所得的所有矩阵的集合。即
(2,2)的视觉密码加密过程如下:首先从p11开始,若p11为白像素,则从集合H0中随机挑出一个矩阵对其进行加密(等概率挑,即从H0中挑任意一矩阵的概率为0.5);所得矩阵中的第一行(0,1)元素即为像素p11在第一个影子图像中对应的像素块(即像素p11=0被拓展为p11=(0,1)),第二行(0,1)元素为p11在第二个影子图像中对应的像素块。同理,若p11为黑像素,则从集合H1中随机挑出一个矩阵来对该像素加密。重复上述操作,直到图像P中所有像素都被加密为止即可得到图像p对应的2个影子图像。
(2,2)的视觉密码解密过程如下:将2个影子图像重叠,计算重叠后图像中每个像素块的汉明重量(对S中某一列的所有元素做或运算,其值W(v)叫像素块的汉明重量)。并利用式(1)决定该像素的颜色。式中d为门限值(也叫灰度临界值);a为对比度,m为像素扩展度。
2 水印方案
本算法首先对载体图像Z做分块SVD变换,变换后提取每块中的最大奇异值,构成原始图像的缩略图S(见图2),再利用梯度求出缩略图的边缘信息T。之后对水印图像W作(2,2)视觉密码分解,得到2个影子图像P1和P2,将两个影子图像组合成图像P。最后对缩略图的边缘信息和影子图像的组合图做异或操作即可得到提取水印的密钥矩阵K,将K置乱加密后得到注册信息。
2.1 水印嵌入
Step1:将载体图像Z(大小为M*M)分成互不重叠的小块,每块的大小为:4*4,共有个块(其中符号表示向下取整),并对每一块进行SVD变换,得到相应的对角矩阵后取出每块中的最大奇异值得到原图像的缩略图S。
Step2:求出缩略图S的梯度后,计算其梯度模值。以梯度模值的均值为阈值,对梯度模值进行二值化(大于阈值的取为1,反之取为0),即可得图像特征信息T。
Step3:对水印图像W做(2,2)的视觉密码分解,得到2个影子图像P1和P2。将P1和P2组合成图像P。
Step4:对缩略图的边缘信息T和分解得到的影子图像P做异或操作,得到的结果即为提取水印的密钥矩阵K。将K置乱加密后得到注册信息。
2.2 水印检测
Step1:对注册信息进行解密并恢复,得到密钥矩阵K。
Step2:执行嵌入过程中的Step1-Step3,获得载体图像的特征信息T′。
Step3:对密钥矩阵K和图像特征信息T'作异或操作,得到组合图P′。
Step4:将组合图P'分割为P1和P2,对P1和P2进行视觉密码解码。解码后看到的信息即为水印信息W'。
3 仿真实验结果
本文采用256×256×8bit的标准测试图像Lena为载体图像Z,以32×32×2 bit的图像为水印W ;缩略图S和图像特征信息T的大小均为64×64,影子图像P1和P2的大小为32×64。本文使用归一化相似度NC来衡量提取水印的性能,其公式如下:
由于水印信息W作视觉密码分解后,其大小发生了变化(即高度不变,宽度扩大了m倍)。为了判断提取水印的质量,此处用原始水印W作视觉密码编码和解码后得到的水印图像W与提取的水印W'作比较。
3.1 常规图像处理攻击
对图像依次进行JPEG压缩(质量因子为50、40 和30)、椒盐噪声、高斯噪声、中值滤波、均值滤波锐化、模糊等处理后,虽然图像的质量有所下降,但本算法提取的水印效果十分理想。表1是对载体图像做常规图像处理操作后本算法和文献[2]的实验结果对比,具体数据如表1所示。
3.2 剪切攻击
几何攻击对水印破坏最强,因为几何攻击破坏了图像的自相关性,这对水印的提取有很大影响。为了进一步验证本算法对几何攻击的鲁棒性,以常见的几何攻击(剪切、旋转、改变图像大小等)为例,对图像进行剪切、旋转后再逆转操作。表2给出了本文算法与文献[2]的比较结果。
3.3 无水印测试
由于零水印算法未对载体图像做修改,所以在进行水印提取时要做到以下两点,一是能从受攻击的图像中提取水印;二是仅能从原载体图像中提取水印(不能从其它图像中提取出水印信息),即通过无水印测试。为验证本算法能否通过无水印测试,选一组与原载体图像相似的图像为测试对象来验证其唯一性。实验结果如表3所示。
4 结语
本文对载体图像进行分块SVD变换后,提取每块中的最大奇异值,构成原始图像的缩略图,再利用梯度求出缩略图的边缘信息,最后使用视觉密码技术对水印信息进行编码,结合编码后的影子图像与边缘信息生成版权图像。奇异值分解的稳定性使算法对常规图像处理攻击表现出较好的性能,并且影子图像具备天然的数据保护性,对影子图像进行组合后再与图像特征信息进行操作,这使算法具有一定的抗剪切能力。实验结果表明,算法具有良好的安全性和鲁棒性。
参考文献
[1]柏均,张敏瑞,梁文莉.基于特征点的图像水印嵌入方案[J].计算机工程,2011,37(13):139-140,149.
[2]曲长波,杨晓陶,袁铎宁.小波域视觉密码零水印算法[J].中国图象图形学报,2014,19(3):365-372.
[3]曲长波,杨晓陶,袁铎宁.平衡多小波视觉密码零水印算法[J].计算机工程,2014,40(9):178-182.
[4]VERMA J,KHEMCHANDANI V.A visual cryptographic technique to secure image shares[J].International Journal of Engineering Research and Applications,2012,2(1):1121-1125.
[5]TY S H,HSU C S.A joint ownership protection scheme for digital images based on visual cryptography[J].The International Arab Journal of Information Technology,2012,9(3):276-283.
[6]ABUSITTA A H.A visual cryptography based digital image copyright protection[J].Journal of Information Security,2012,3(2):96-104.
零水印算法 篇2
基于双重网格的矢量地图数字水印算法
通过分析数字水印技术和矢量地图的结合方式,提出了一种基于双重网格的数字水印算法,该算法通过双重网格划分,将水印信息分散隐藏到节点坐标的最低有效位上.实验证明,该算法具有良好的.隐蔽性、较强的鲁棒性,可以抵抗常规的节点编辑和地图裁切对水印信息的破坏,适合于矢量地图的版权保护.
作 者:车森 邓术军 CHE Sen DENG Shu-jun 作者单位:解放军信息工程大学,测绘学院,河南,郑州,450052刊 名:海洋测绘 ISTIC英文刊名:HYDROGRAPHIC SURVEYING AND CHARTING年,卷(期):28(1)分类号:P208关键词:数字水印 矢量地图 最低有效位 鲁棒性 版权保护
实时视频水印技术与算法分析 篇3
关键词:实时性;视频水印;相关算法
一、视频水印技术的特点
(一)盲检测性 视频水印的检测原则上不能使用原始视频数据,这是因为对原始视频数据的处理会增大计算负担,使得水印算法无法实现实时性的要求,另外视频文件的数据量一般比较大,保留原始视频数据拷贝很占用存储空间。
(二)随机检测性 可以在视频的任何设置、在短时间内检测出水印。在许多的实际视频水印应用当中,不可能从视频的开始位置按播放顺序一步步地检测出水印,而且嵌入水印的视频也可能遭受时间同步攻击,因此视频水印技术要保证能够在视频的任何一个位置,在一小段视频图像序列中能够检测到水印。
(三)更强的实时性 为了保证观看运动视频图像时的连续性,解码端的帧率必须保持在一定数值之上(通常为25帧每秒),因此视频水印较之静止图像水印在实时性上有更高的要求。因而要求水印的嵌入和提取算法时间复杂度不能太高,必须在短时间内完成,保证编解码的实时性。
(四)视频码率的恒定性 水印嵌入视频数据后原则上不能改变视频流的码率,否则容易造成解码后视频图像与声音不同步。但在实际操作中,嵌入水印一般都会导致压缩视频的码率增加,因此把码率的增加控制在可接受的范围之内是视频水印算法经常要考虑的问题。
(五)与视频编码标准相结合 对于压缩视频,水印算法设计必须与视频编码标准相结合;对于原始域水印嵌入水印也必须考虑视频编码标准,否则水印信息很可能在编解码过程中消失。
二、基于变换域的原始视频水印算法
基于变换域的原始视频水印是指在原始视频的离散傅立叶变换域、离散余弦变换域和离散小波变换域等变换域中进行水印的嵌入和提取。
(一)三维小波变换水印方案
首先将视频序列按场景进行分段,对同一场景的视频帧进行三维小波变换,并且考虑了空间掩蔽效应、频率掩蔽效应和时间特性。水印检测有两种方法:第一种检测方案需要原始视频数据,是一种非盲提取水印方案。将待检测帧减去原始帧,并计算与水印信号W之间的相关值,可以确定视频序列中是否嵌入了水印;第二种检测方案不需要原始视频数据,是盲提取水印方案。将待检测帧减去最低时间轴小波系数帧,然后计算差值与W之间的相关值,来确定是否嵌入了水印。
(二)三维DFT域中嵌入水印的方案
首先将视频序列分成连续的长度固定的帧序列,水印嵌入时,首先将水印信号编码为扩频信号,对帧序列进行三维DFT变换,选择DFT系数的中频嵌入水印信号。这是因为修改系数的低频容易降低图像的质量,系数的高频部分容易被有损压缩移去水印信号。水印检测时,同样对视频序列要先进行三维DFT变换,然后计算扩频水印信号与嵌入水印系数的相关值。由于扩频序列的特性,该水印方案也能抵御滤波、加性噪声、MPEG压缩等处理,同时,由于傅立叶变换的基本性质,该水印方案还有对于空间位移和时间位移具有固有的不变性。
三、实时视频水印技术
实时性是视频水印技术的一大挑战,并认为有两种途径提高实时性:一是降低算法的复杂度,二是将计算重心转移到视频提供端或嵌入端,从而降低客户端或检测端的复杂度。
(一)基于扩频的压缩域视频水印方案
利用擴频技术,将水印信号扩展为与视频帧信号相同大小的二维信号。按照8×8块对水印信号做DCT变换,将变换后的水印系数直接与视频帧的DCT系数相加从而实现水印嵌入。其他的一些边信息则不做处理。其算法实现过程如图1所示。由于视频压缩采用运动估计和运动补偿模式,因此由于嵌入水印信息带来的误差容易累加,因此方案中专门有一部分对漂移误差进行处理。实现方法是在嵌入水印的视频信号上加上一个补偿信号,该补偿信号就是预测帧在编码端和解码端的误差。
(二)自适应实时MPEG视频水印方案
对于MPEG编码的快速视频水印算法。该方案通过一种新的块分类方法来选择信息嵌入位置,通过冗余编码和EQSP嵌入水印信息。首先将8×8的DCT块分为平滑块和纹理块两类,而纹理块又可细分为边缘纹理块和细节纹理块两类。为了对DCT块进行准确的分类,作者设计了5种不同类型的块掩码,分别是:平滑块掩码、水平块掩码、垂直块掩码、对角块掩码、细节块掩码,灰色小块表示对应位置掩码值为1,白色小块掩码值为0。将8×8DCT块系数分别与5种DCT块掩码进行点乘,结果与不同掩码方式对应的5个阈值作比较。若结果大于平滑块阈值,则该DCT块为平滑块;若结果大于细节块阈值,则该DCT块为细节块;若结果大于水平、垂直、对角块阈值之一,则该DCT块为边缘块。文中认为细节DCT块更适合嵌入水印信息。
参考文献:
[1]张江,赵黎,杨士强.视频水印技术综述[J].计算机应用, 2005.
[2]苏育挺,张春田.一种自适应视频水印检测算法[J].通信学报,2003.
零水印算法 篇4
关键词:数字音频水印,人工神经网络,离散余弦变换
0引言
随着计算机网络技术和多媒体信息处理技术的迅猛发展,人们能够更方便地进行数字化作品的无损复制,从而对知识产权和产品保护提出了更高的要求。数字水印技术以其较好的安全性、鲁棒性和不可感知性,为版权保护和信息安全提供了一个潜在的解决方案。数字音频水印技术,就是利用人类听觉系统的某些特性,将秘密信息嵌入音频文件,以达到掩蔽通信和版权保护目的的一种数字水印技术。
现有的数字音频水印技术,根据嵌入水印时对信号的处理方式不同,可分为时域算法和频域算法。前者直接将水印信息嵌入到音频信号的时域选定的采样数据中以隐藏信息,主要有最不重要位算法[1]、相位编码算法[2]、回声隐藏算法[3]等;后者首先对音频信号的采样数据进行适当的变换,然后将水印信息嵌入到变换域选定的系数上,最后通过相应的逆变换恢复出含有水印信息的音频信号,主要有离散傅立叶变换(DFT)法、离散余弦变换(DCT)法、离散小波变换(DWT)法。一般来说,频域算法可嵌入水印数据量大,透明性好,安全性高。但无论是时域算法还是频域算法,都是通过修改原始信号来达到嵌入秘密信息的目的,虽然利用了人类的听觉模型系统,仍不同程度地改变了信号的感知质量。
本文提出利用人工神经网络学习和自适应特征,将音频信号的重要特征作为人工神经网络的输入,通过人工神经网络的学习,建立音频信号与水印信息的对应关系,达到在不修改音频信号情况下把水印“嵌入”到原始音频信号中。该方法不改变原始音频信号感知质量,提高了水印的不可感知性,并且在提取水印的时候不需要原始音频信号。
1人工神经网络反向传播算法(BP算法)
人工神经网络BP算法[4]属于δ算法,是一种监督式的机器学习算法,其主要思想是从后向前(反向)逐层传播输出层的误差,以间接算出隐含层误差。算法分为两个阶段:第一阶段(正向过程)输入信息从输入层经隐含层逐层计算各单元的输出值;第二阶段(反向传播过程)输出误差逐层向前算出隐含层各单元的误差,并用此误差修正前层权值。在反向传播算法中通常采用梯度法修正权值,使网络输出层的误差平方和达到最小。反向传播算法通常采用Sigmoid函数作为输出函数。如图1所示,处于某一层的第j个计算单元,脚标i代表其前层第i个单元,脚标k代表后层第k个单元,Oj代表本层输出,Wij是前层到本层的权值,当输入某个样本时,从前到后对每层各单元作如下计算(正向算法):
netj=
Oj=f(netj) (2)
对于输出层而言,
E=
为使式子简化,定义局部梯度:
考虑权值Wij对误差的影响,可得:
权值修正应使误差最快地减小,修正量为:
(6)
如果节点j是输出单元,则:
(7)
如果节点j不是输出单元,由图1可知,Oj对后层全部节点都有影响,因此,
在实际计算时,为了加快收敛速度,往往在权值修正量中加上前一次的权值修正量,一般称之为惯性项,即△Wij(t)=-ηδjOi+α△Wij(t-1)。对于Sigmoid函数,y=f(x)=
(1) 选定权系数初始值。
(2) 重复下述过程直至收敛(对各样本依次计算):
① 从前向后各层计算各单元Oj:netj=
Oj=1/(1-e-netj);
② 对输出层计算δj:δj=(y-Oj)Oj(1-Oj);
③ 从后向前计算各隐层δj:δj=Oj(1-Oj)
④ 计算并保存各权值修正量:△Wij(t)=α△Wij(t-1)+ηδjOi;
⑤ 修正权值:Wij(t+1)=Wij(t)+△Wij(t)。
2音频水印的嵌入与检测
水印的嵌入应该利用音频信号中最重要的特征,这样可使水印具有良好的鲁棒性。低频是声音信号能量最集中的部分,一般对音频文件的操作都尽量避免对低频信息的损失,否则会对音频质量造成很大的破坏。本算法采用对数字音频信号进行离散余弦变换(DCT),选取低频系数构造音频信号特征,并将该特征作为人工神经网络的输入向量,通过网络训练,建立音频信号重要特征与水印信号的对应关系,达到在不修改音频信号情况下把水印“嵌入”到原始音频信号中。
2.1水印信息的预处理
本算法嵌入的水印信号不是传统的一维伪随机序列,而是将一幅有意义的二值图像作为水印,从而具有更好的实用价值。假设W是M×N的图像,它可以表示为W={w(i,j),0≤i<M,0≤j<N}。其中w(i,j)代表水印图像的第i行、第j列像素的灰度值。式中w(i,j)∈{0,1}。由于水印序列是二维图像,为了能够嵌入到一维的数字音频信号中,必须对水印图像进行降维处理,变为一维序列,即:V={v(r)=w(i,j),0≤i<M,0≤j<N,r=i*M+j}。
为了进一步消除二值水印图像的像素空间相关性,提高数字水印算法的鲁棒性,对上面得到的一维二进制序列V进行置乱变换。另外,为了加强保密性对其进行加密处理,这样即使有人能够从音频信号中提取出水印,但是经过加密后的水印,只有掌握密钥的人才能正确地恢复出水印,达到保密的目的。本算法采用文献[5]中的方法,由密钥K生成由1到M×N的随机排列,然后根据随机排列重新调整V中向量元素的位置,得到由V转换而来的新一维二进制序列X={x(i),0≤i<Nw,Nw=M×N}。
2.2水印嵌入算法
设音频数据被定义为:A={a(i),0≤i<n},嵌入算法描述如下:
(1) 将数字音频信号进行分段,每个音频段含有L个数据,将整个音频信号划分成n/L个音频段,即
A={A(k),0≤k<n/L},A(k)={a(kL+i),0≤i<L};
(2) 将水印信息X也分成n/L段,每段含有q个数据,即
X={X(s),0≤s<Nw/q,Nw=M×N },X(s)={x(sq+i),0≤i<q};
(3) 对每段音频信号进行离散余弦变换,选取变换后的m个低频系数,即
CA={CA(k),0≤k<n/L},CA(k)={ca(kL+i),0≤i<m};
(4) 建立人工神经网络,输入层、隐含层和输出层分别具有m个、p个和q个神经元。将CA(k)作为人工神经网络的输入向量,X(s)作人工神经网络的输出向量,通过人工神经网络权值的调节训练网络,建立CA(k)与X(s)之间的对应关系,即音频信号重要特征与水印信号之间的对应关系。
2.3水印的提取与检测算法
(1) 将数字音频信号进行分段,每个音频段含有L个数据,将整个音频信号划分成n/L个音频段,即
A={A(k),0≤k<n/L},A(k)={a(kL+i),0≤i<L};
(2) 对每段音频信号进行离散余弦变换,选取变换后的m个低频系数,即
CA={CA(k),0≤k<n/L},CA(k)={ca(kL+i),0≤i<m};
(3) 将CA(k)作为训练好的人工神经网络的输入向量,得到人工神经网络输出向量X′(s);
(4) 利用密钥K对水印信息X′进行逆随机置乱,得到原始水印的一维二进制序列V′={v′(r),0≤r<Nw,v′(r)∈{0,1}};
(5) 对所得到的一维二进制序列V′升维,便可恢复出二维水印图像W′={w′(i,j),0≤i<M,0≤j<N}。
利用训练好的人工神经网络提取水印时无需原始音频信号。为了消除观测者的经验、身体条件、实验条件和设备等主、客观因素的影响,需采用归一化相关系数NC(Normalized Cross-Correlation)[6]对抽取的水印和原始水印的相似性进行定量评价,即可判断出音频的版权归属。
3实验结果
在Windows XP平台上用Visual C++6.0实现了本文算法。实验中,原始数字音频信号的采样频率为44.1kHz,分辨率为16比特。水印选用了32×32的二值图像。
对嵌入水印的音频信号进行攻击实验,叠加噪声(在音频信号的时域中加入高斯白噪声),进行低通滤波(低通滤波器长度为6,截止频率为22.05kHz),有损压缩(对音频信号进行压缩比为12:1的压缩,再解压缩),重新采样(采样频率降低为22.05kHz,再还原为原采样频率44.1kHz),重新量化(将音频信号从16比特量化为8比特,再量化为16比特),攻击后提取的水印如图2所示。
4结论
本文提出了一种基于人工神经网络的数字音频水印方法。利用人工神经网络学习和自适应的特征,通过训练网络建立音频信号重要特征与水印信号的对应关系,把机器学习的方法应用于数字水印的检测中。由于加了水印的声音信号也就是原始信号,因此要想发现音频是否被水印保护是很难的,这是零水印方法很大的一个优点。本算法具有计算简单、容易实现、保密性强,同时对滤波、重采样量化、有损压缩等攻击具有很强的稳健性。特别是在水印检测时不需要原始音频信号的参与,这大大地扩展了它的应用范围。
参考文献
[1]Bassia P,Pitas I.Robust Audio Watermarking in the Time-domain[A].Proceedings of EUSIPCO’98,Rhodesk,Greece,1998:25-28.
[2]Bender W,Gruhl D,Morimoto N.Techniques for Data Hiding[J].IBM System Journal,1996,35:313-336.
[3]赵朝阳,刘振华,王挺.数字音频信号的回声数据隐藏技术[J].计算机应用研究,2000,17(7):42-44.
[4]边肇祺,张学工.模式识别[M].北京:清华大学出版社,2003:254-257.
[5]Hsu ChiouTing,Wu JaLing.Hidden digital watermarks in images[J].IEEE Trans.on Image Processing,1999,8(1):58-68.
零水印算法 篇5
数字水印是嵌在宿主数据中具有可鉴别性的数字信号或模式,被嵌入的信息通常是不可见的,但通过一些操作可以被检测或被提取。实现版权保护是数字水印最主要的功能之一[1]。对于一些敏感的图像,由于其细节像素的重要意义,图像任何像素的变化所造成的失真都会影响对原图像的判断。零水印技术作为这类图像版权归属认证的主要方法,以无失真修改宿主图像,算法简单有效而著称。
针对上述问题和数字水印的特点,本文结合矩阵奇异值分解[2]和零水印技术[3,4,5,6]对三维彩码图像进行版权保护。
1 相关技术
1.1 三维彩码概述及核心价值
三维彩码是以四种相关性最大的单一颜色:红、绿、蓝和黑来表述信息的,三维彩码构成的架构是一个6×6的矩阵图,36个矩阵单位各自由上述四色中的单一颜色来填充,矩阵的外框通过黑色线条封闭,并在外框黑边外留白。彩码原图如图1所示。
由于采用了有别于传统二维码的识别技术,三维彩码具有较高的容错能力,并允许图形有一定的畸变,同时在四色取值上也有较大的范围。综合上述特点,彩码整体形态可以表现的十分丰富;即在遵循一定的规则下,彩码可以通过平面创意设计,将企业的行业特质、服务特性及CIS标志融合其中,形成具有视觉意义的移动领域的新LOGO,图2给出了一些具有LOGO标示的三维彩码图像。
为了确保三维彩码的可设计化的个性,三维彩码是以降低信息的携带量为前提,确保在有限的图形空间,能够为图形化设计创造更大的便利;同时该产品采用了高效的纠错冗余算法和高效边界识别手段,能够排除平面设计中其它元素和画面的干扰,准确无误地识别彩码。与传统的二维码技术相比,三维彩码的最大优势是采用了新的信息携带方式和新的识读手段,使得彩码的识别更加高效、更加便捷、更加可靠和更加低廉。三维彩码与3G移动业务的绑定,将会为移动业务的普及和推广,提供强有力的支持和帮助。随着中国3G时代的到来和迅速发展,彩码必将为中国的移动无联网、移动电子商务的发展提供一个全新的通道,同时也将为广告、市场营销等行业带来一个全新的发展机遇。
1.2 奇异值分解
奇异值分解是最有效的分析矩阵的数值分析工具之一,是一种将矩阵对角化的数值分析方法。对于任意一个M×N图像矩阵A∈RM×N都可分解成3个矩阵之积:
其中U∈RM×N,V∈RM×N是2个酉矩阵,即UUT=E,VVT=E,E是单位矩阵。S表示元素为非负的对角阵,其对角线上的元素满足:δ1≥δ2≥…≥δr≥δr+1=…δm=0 2,其中是的秩,它等于非负奇异值的个数。δi(i=1,2,…,m)就叫做矩阵A的奇异值,是AAT特征值的平方根。从图像处理的角度来看,奇异值分解有如下特性[7]:1)奇异值所表现的是图像的内蕴特性而非视觉特性,反映的是图像矩阵元素之间的关系;2)图像奇异值的稳定性好,即当图像被施较小的扰动时,图像的奇异值不会有很大的变化。
1.3 零水印技术
零水印技术利用数字作品自身特征来构造所要嵌入的水印,不必在嵌入水印时改变原数字作品的信息,很好地解决了不可见数字水印的可感知性和鲁棒性之间的矛盾。已有的零水印技术包括基于高阶累积量[4]、离散余弦变换域[5]、离散小波变换域[6]等提取特征水印。在基于图像矩阵奇异值分解构成的水印中,表征图像主要特征的奇异值δ1远大于其它奇异值,而且其稳健性最强。但如果δ1受到微小改变,则图像质量会受很大影响,重构的图像在视觉效果上与原图像会相差很多。因此,可以用表征主要特征的奇异值δ1来构造零水印。
2 算法描述
2.1 水印的预处理
置乱技术是随着信息的安全与保密被重视和发展起来的图像加密技术。本文中选择Arnold变换作为水印图像的预处理方法,该变换可用公式(1)来描述。
在式中(1)中,(x,y)T,(x',y')T分别为原图像和变换后图像的像素位置,N是图像矩阵的阶数。Arnold变换具有周期性,即将一幅图像进行Arnold变换若干次以后,可以得到原图像。数字水印技术正是利用这个特性,先将要嵌入到数字产品中的数字水印图像进行置乱,然后再利用各种算法将其嵌入到数字产品中[8]。当嵌入水印后的数字产品遭到用户的修改或者恶意攻击时,致使水印遭到损坏或丢失。在水印的提取过程中利用Arnold变换可以将遭到损坏的比特分散开来,减少其对人类视觉的影响,提高数字水印的鲁棒性。
2.2 零水印生成算法
1)读取鲁棒二值水印图像W(24×24),对其进行预处理,即用密钥Key进行Arnold置乱得到加密后的水印图像AW;
2)读取原始三维彩码图像I(96×96),从原始图像中提取出蓝色分量。
3)将蓝色分量分块,如果原图像大小为M×M,水印图像大小为N×N,则每个分块的大小为(M/N)*(M/N)。
4)对每个分块做奇异值分解,取各个分块的第一个奇异值,组成矩阵A。
5)将矩阵A归一化处理[3]得到二值矩阵B,其中:
其中,T为矩阵A中元素的均值;
6)最后的零水印W0由AW异或B得到。
2.3 水印检测算法
1)读取可能受到攻击的含水印的载体图像,从图像中提取出蓝色分量,对蓝色分量进行分块,对每块进行奇异值分解。
2)取各个分块的第一奇异值,组成矩阵A1,将矩阵归一化处理,同前面的生成算法一样,组成矩阵B1;
3)将B1与保存好的零水印W0异或得到检测出的水印信息AW'。
4)由密钥Key对AW'进行Arnold逆变换得到水印图像W'。
3 实验结果
为了验证算法的有效性,我们用MATLAB 7.6进行了仿真实验。实验中选择的三维彩码图像,选择24×24的二值图像(苏州大学的拼音缩写SZDX)作为水印图像,如图3和图4所示。图5为置乱后的水印图像(密钥key=10),图6为构造的零水印。图7给出了对载体图像进行一定的攻击后所提取的水印。
采用相关系数(Normalized Correlation,NC)作为提取水印与原始水印相似性的评价标准,定量分析所提取水印的有效性。公式(3)给出了NC的计算公式。
其中,W(i,j)为原始水印的像素值,W'(i,j)为提取水印的像素值。
由实验结果可见,在经过一定的攻击后,仍能较清晰地提取出水印,充分证明了算法的鲁棒性。表1是针对不同的载体在遭受到各种攻击后所提取水印的相似度值,从表中可以看出所提水印的相似度非常高,均在0.9以上,再一次说明了本算法的鲁棒性。
4 结束语
三维彩码作为一种条码技术产品,对识别的准确性有一定的要求,原始图像的改变可能会影响到它的正确识别。而零水印技术正是一种不将水印直接嵌入原始图像,不改变原始图像的水印算法。基于这个考虑,本文提出了一种基于奇异值分解的三维彩码零水印算法,该算法有效地解决了三维彩码中数字水印的不可感知性和鲁棒性之间的矛盾。算法利用了奇异值的不变特性来构造零水印,将每个分块的最大奇异值与置乱后的水印图像异或形成零水印,通过将其存放在权威注册中心,以实现对三维彩码的版权保护。实验结果表明,该算法能够抵抗多种常见攻击,充分体现了算法的鲁棒性。
参考文献
[1]张永,杨永锋,李敬明.基于数字水印的图像版权保护和内容认证方案[J].计算机工程与应用,2007,43(36):223-225.
[2]周波,陈健.一种基于奇异值分解的稳健数字水印算法[J].计算机工程,2004,30(15):120-121.
[3]李学斌,俞登峰,程亮.基于奇异值分解的零水印算法[J].计算机工程,2009,35(11):163-165.
[4]温泉,孙锬锋,王树勋.零水印的概念与应用[J].电子学报,2003,31(2):214-216.
[5]季称利,杨晓元,张崇,等.结合空域不变量的变换域零水印二次检测方案[J].计算机工程,2004,30(14):105-107.
[6]杨树国,李春霞,孙枫,等.小波域内图象零水印技术的研究[J].中国图象图形学报,2003,8(6):664-669.
[7]Liu R,Tan T.An SVD-based watermarking scheme for protecting rightful ownership[J].IEEE Transaction on Multimedia,2002,4(1):121-128.
零水印算法 篇6
关键词:软件水印,模糊聚类,操作码特征,鲁棒性
0 引 言
软件水印[1]是数字水印的一种,通过一定的嵌入算法,将软件的版权、用户的指纹等信息隐藏在软件中,当发生软件版权纠纷时,从软件中提取水印信息,以达到保护软件的目的。
常见的软件水印算法有:基本块重排算法[2],嵌入媒体水印MC算法[3],应用扩频水印算法[4] ,不透明谓词的软件水印算法[5],基于动态图的CT算法[6],基于线程的NT算法[7]等。已有的软件水印算法共约11种,国内外的软件水印算法多围绕这11种算法进行研究改进,总结了文献在Sandmark平台下对现有水印算法在性能和抗攻击方面进行的实验对比,如表1所示。
实验比较发现大多数软件在增加水印后,系统的负载和性能会受到影响。结合前期的对动态图水印算法的研究实践,水印体系结合加密、混淆、防篡改等技术,保证了水印有较强的鲁棒性和隐蔽性,但水印体系的性能上受到较大的影响,因为在嵌入水印的同时,又嵌入了以下代码:mark位置标记代码;水印构造和提取函数;hash函数;检验完整性的校验和函数;加、解密函数。
其他添加信息的水印算法也类似,这肯定会带来两个问题:软件性能的退化和嵌入的水印终有被去除的可能。为了解决这两个问题,目前的研究提出了零水印算法。
1 软件零水印
软件零水印是为了解决上述两个问题而提出来的,即不向软件载体中嵌入信息(或称嵌入的信息为0),而是把提取出的软件特征与待嵌入的水印信息经过运算,生成注册信息保存在第三方。当需要证明软件的版权时,从第三方取回注册信息,与待检测软件一起计算出水印信息。软件特征提取的可信度和鲁棒性直接关系着软件零水印的鲁棒性。
如何提取具有代表性的、关键的软件特征,并和待嵌入的水印信息进行运算,生成注册信息,是构建鲁棒性软件零水印研究的关键。本文在此背景下引入了模糊聚类理论来聚类软件的特征集,对其进行分类,拟找出具有代表性和抗攻击性的关键特征。
2 模糊聚类
聚类是将数据分类到不同的类或者簇的一个过程, 所以同一个簇中的对象有很大的相似性, 而不同簇间的对象有很大的相异性。数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的数据中提取隐含在其中的人们事先不知道的但又是潜在的有用的信息和知识的过程。在数据挖掘中, 常用的聚类算法主要有以下几种:基于划分的聚类、基于层次的聚类、基于密度的聚类、基于网格的聚类、基于模型的聚类。
聚类方法都具有各自的特点。有些以方法简单、执行效率高见长;有些对任意形状、大小的类识别能力强;有些能很好地过滤噪声数据。但这些方法都有各自的局限性。在软件零水印的研究中,结合源码特点、基本块以及面向对象类的调用关系,拟应用划分聚类和层次聚类对特征集进行分类。
3 模糊聚类特征化软件零水印算法
3.1 模糊聚类分析关键特征
聚类用来分析软件碎片,根据相似功能对软件特征进行分类,获得对软件特征群中固有结构的认识,区别哪些是代表软件的关键特征,哪些是非关键特征。聚类算法通常根据相异度造成矩阵进行分析,聚类函数的度量是模糊度量方法,所以特征分析分为两部分:特征值的预处理,即模糊分割属性值;选择合适的聚类算法分类:结合程序源码及面向对象程序类的调用特点,初步选择划分聚类和层次聚类。
3.1.1 模糊分割属性值算法
利用模糊分割属性值算法进行软件特征值的初始划分,并应用目标如何影响聚类特征,算法如下:A1,A2,…,An是X上的n个模糊集,代表n个模式,识别对象A也是X上的模糊集。则设N:F(X)×F(X)→[0,1],若N满足:
(1) N(A,A)=1,N(φ,X)=0;
(2) N(A,B)=N(B,A);
(3) A⊆B⊆C时,N(A,C)≤N(A,B)∧N(B,C)。则计算A,B的贴近度N(A,B),计算如下:
① 若X={x1,x2,…,xn},A,B∈F(X),则
② 若X=[a,b],A,B∈F(X),则
3.1.2 划分聚类方法
算法选择基于K均值划分算法,首先随机地选择K个对象,每个对象代表一个簇的初始均值或中心。对剩余的每个对象,根据其与各个簇的均值距离,将它指派到最相似的簇。然后计算每个簇的新均值。这个过程不断重复,直到准则函数收敛,拟采用的是平方误差准则定义如下:
式中:E是数据集所有对象的平方误差和;p是空间中的点,表示给定对象;mi是簇中心距离的平方,然后求和。算法过程如下:
输入:
K:簇的数目;
D:包含n个对象的数据集;
输出:K个簇的集合。
方法:
(1) 从D中任意选择K个对象作为初始簇中心;
(2) Repeat;
(3) 根据簇中对象的均值,将每个对象(再)指派到最相似的簇;
(4) 更新簇均值,即计算每个簇中对象的均值;
(5) Until不再发生变化。
3.1.3 层次聚类方法
由于面向对象设计中存在类、函数、基本块的层次关系,依照层次方法创建给定数据对象集的层次分解关系。使数据对象组成一棵聚类树,如图1所示,选择自底向上合并方法,合并这些原子簇为最大的簇,直到所有对象都在一个类中,或者某个终止条件被满足。
利用簇间距离进行度量,常用的簇间距离方法如下,其中
(1) 最小距离:
(2) 最大距离:
(3) 均值距离:
(4) 平均距离:
比较两种聚类算法的优缺点和适用环境,并研究方法的选择如何影响聚类特征。
3.2 特征提取算法
提取算法是直接从源码和可执行文件的操作码中提取,假设提取特征者对该程序具有一定的了解,即可以指出哪些代码是待提取特征的关键代码(即关键代码可以代表该程序的主要特性),设关键代码对应的地址所成的集合为Ω (设通过地址可以标定关键代码)。
提取动态操作码碎片特征,拟定算法如下:
(1) 给定程序的一个输入Input,此输入必需为程序P的可接受输入集,跟踪程序P在输入为I时的执行过程,记录程序执行的每条指令,形成一有序序列S={S1,S2,…,Sn}。其中每个S是一个三元组S(指令S[instruction],指令在内存中的地址S[address],指令执行时所属的线程S[thread])组成;
(2) 从Sj开始,j=0,对有序列S进行跟踪;
(3) j=j+1;
(4) 如果指令在内存中的地址不是关键代码对应的地址,即Sj[address]∉Ω,则转到(3);否则跳转到(5);
(5) 如果Sj [ins]不是控制流转移指令,则跳转到(7),否则跳转到(6);
(6) 如果Sj [ins]转移到的目的地址是关键代码对应的地址,则跳转到(3),否则跳转到(7);
(7) 将指令Sj [ins]对应的操作码加入到Sj[thread]对应的有序序列的末尾(不同的线程对应不同的有序序列);
(8) 如果j<k,跳转到(3),否则计算各操作码有序序列的碎片集Gn.gram(S(j),n),j=1,2,…,n,表示有序序列S(j)的n长碎片集(n为碎片长度) 为碎片的长度,S(1),S(2),…,S(m)为生成的m个操作码有序序列(设共有m个线程);
(9) 软件的特征为GPC(P,I,n),则可算出软件的特征为
3.3 嵌入水印算法
设P表示待嵌入水印的程序,Gn.gram表示常用碎片集,W=(w1,w2,…,wn)表示具有N个分量的嵌入信息(水印信息),每个水印分量wi都可以映射为一个二进制的非负整数,因此假设wi(i=1,2,…,n)为非负整数,则嵌入算法如下:
计算P的特征碎片集:
把集合GPC(p,n)分成n个互不相交的子集,G
对于j=1,2,…,n,使用第j个水印分量wj和第j个碎片集G
3.4 提取水印算法
软件被分发后可能遭到恶意的篡改或专门针对该水印的攻击,设被攻击后的程序为P′,则期望仍能从P′中提取出水印信息。本节描述从P′提取水印信息的过程,即提取算法如下:
从IPR中获取注册信息RI(p,n)=(RI(1),RI(2),…,RI(n))。
计算程序P′的操作码碎片集GGC(P′,n),GGC(P′,n)={g1′,g2′,…,gn′}。
对于j=1,2,3,…,n,根据GGC(P′,n)和注册信息RI的第j个分量RI(j)计算出水印估计量的第j个分量wj′。则W′=(w1′,w2′,…,wn′)就是提取出的水印信息。
4 零水印算法评估
主要从有效性,可信赖性和鲁棒性三个方面对水印系统进行评估。
(1) 实验模拟嵌入水印前后参数选择对程序的影响程度来评估有效性,使用Hydan实施保持语义变换(这是一款向软件中嵌入信息的工具),使用嵌入最多量的随机信息以实现程序变换。生成新程序,从使用变换后的新程序中提取出的水印信息,测试其误码率。拟选择的参数碎片长度n=3,4,5,阈值选择0.3~0.6,通过试验分析讨论参数对水印算法的影响。
(2) 用相似性来度量水印的可信赖性实验,相似性度量方法是用Jaccard系数进行计算,公式如下:
应用中可证明的性质,对于某程序集P,若任意程序P1,P2,其常用碎片相似度simC(p1,p2)和特征碎片相似度simF(p1,p2)满足:simC(p1,p2)>simF(p1,p2)则使用聚类前特征Ⅰ与聚类后特征Ⅱ进行比较 。
(3) 通过实验分析特征Ⅰ和特征Ⅱ在鲁棒性方面的性能差异,分别模拟3类攻击变换(即3类特征变换),应用如NativeCode软件的程序变换工具,修改操作码特征碎片集来模拟攻击变换,进行性能测试和比较。
5 结 论
此算法有助于避免软件性能的退化,而且对嵌入有意义的软件水印是一种突破。
参考文献
[1]张立和,杨义先,钮心忻,等.软件水印综述[J].软件学报,2003,14(2):268-277.
[2]COLLBERG Christian,NAGRA Jasvir.Surreptitious soft-ware obfuscation,watermarking,and tamperproofing forsoftware protection[M].[S.l.]:Addison-Wesley,2009.
[3]COLLBERG C,THOMBORSON C,TOWNSEND G.Dy-namic graph-based software watermarking[D].[S.l.]:Uni.of Arizona TR04-08,2004.
[4]罗养霞,马君,张志刚,等.基于门限方案的动态图软件水印算法[J].计算机工程,2009,35(1):153-155,167.
[5]VENKATESAN R,VAZIRANI V,SINHA S.A graphtheoretic approach to software watermarking[J].LectureNotes in Computer Science,2001:157-168.
[6]COHEN B.BitTorrent[EB/OL].[2009-07-16].http://biteonjurer.org/BitTorrent/index.html.
[7]PARLOFF R.Morpheus falling[J].IEEE Spectr.,2003,40(12):18-19.
零水印算法 篇7
信息技术和互联网的发展给人们带来方便的同时也产生了诸多问题,如未授权的复制、伪造所有权等,因为数字文件能被轻易快速的获取和改变,而且只会有较小的质量损失。为了避免这些问题,数字水印技术由此产生了[1]。包含专有信息的水印通过密钥隐藏在数字文件中,文件的所有人只有通过获取密钥和水印提取算法才能提取出水印。
目前主要有两种嵌入水印的方法:一种是在空间域嵌入水印[2],即通过改变载体图像上的一些像素点的灰度值来嵌入水印,由于计算复杂度低,嵌入的信息很容易被检测出来,而且鲁棒性差,难以抵抗JPEG压缩、噪声等攻击;另一种是在频域嵌入水印,即将水印嵌入到载体图像的变换系数如DFT系数、DCT系数、DWT系数中,这些都很难被检测到。在数字水印应该满足的不可见性、鲁棒性、安全性三个基本要求方面,频域的水印算法比空间域的水印算法都表现出更好的性能。文献[3]提出了一种基于小波变换的水印算法,将水印嵌入在载体图像小波变换的中频系数中,实现了水印的不可见性,但文章并未讨论算法抗击几何攻击的鲁棒性。此外,还有主成分分析(PCA)来嵌入水印,PCA将原有的复杂数据降维,提取出有意义、不相关的主要成分,这些成分是图像中能量最大的部分,具有较好的鲁棒性[4]。
水印算法的另一个研究重点是权衡不可见性和鲁棒性之间的矛盾关系。一般图像经过轻微修改,其视觉效果是没有变化的,但是无论在空间域还是频域,随着水印嵌入强度的增大,图像质量势必会受到影响,从而产生一定的失真。温泉等人[5]提出的零水印的方法很好地解决这个问题,不对原图数据进行修改,利用提取的图像特征来构造零水印。文献[6]利用DWT和SVD提取了图像特征作为零水印,该算法对各种攻击具备很强的鲁棒性。后来零水印技术也得到了扩展,将图像特征与有意义的水印相关联,也不改变载体图像信息,又实现了水印的嵌入。文献[7]将图像DCT低频系数符号作为特征,与水印结合,实现了一种鲁棒零水印算法。文献[8]也提出了一种图像特征的提取方法,在DCT低频系数所表示图像信息中提取能代表图像特征的感知哈希值,该算法也具有较好的鲁棒性。
本文提出了一种基于DWT-PCA和感知哈希的鲁棒零水印算法,对图像的小波逼近子图进行主成分分析,提取图像特征,然后量化编码得到图像的感知哈希序列。将图像的感知哈希序列与混沌加密的水印相结合,实现水印的嵌入与提取。实验证明该算法对常规攻击和几何攻击都具有较好的鲁棒性。
2 理论基础
2.1 离散小波变换
S.Mallat于1988年提出小波变换(DWT)[9],其基本思想是以小波函数为基底,对信号f(t)进行分解
式中:小波函数ψa,b(t)是由同一基底函数ψ经平移、伸缩而得到的一组函数。
式中:ψ成为基小波;a为伸缩因子;b为平移因子。
Mallat算法分解公式为
重构公式为
式中:cj,k和dj,k分别对应于f(t)在两个不同空间上的投影系数;gn和hn是一组具有完全重构特性的高通滤波器和低通滤波器。
小波变换是一种多分辨分析,二维图像经过小波变换,被分解成不同空间、不同频率的子图像。图像经过一级小波变换后被分割成包含图像边缘信息的水平子带HL、垂直子带LH、对角子带HH和包含图像基本信息的低频子带LL 4个频带。若进行多级分解,可以对LL子带继续进行二维离散小波变换。
2.2 主成分分析
主成分分析(Principal Component Analysis,PCA)是一种通过特征的线性组合来实现降维的方法[10]。PCA的实质就是找到一个合适的线性变换,使得样本数据从高维空间投影到低维空间,并且不改变数据本身的特征。假设一个训练集含有n个样本(X∈Rn),每个样本的维数为d,可表示为
训练集的协方差矩阵定义为
式中:m为样本均值。
E的特征值表示样本在特征向量上的分布方差,E的特征值如下求解
式中:i=1,2,…,n;λi是E的特征值;ui是对应的特征向量。
选择E的前k大特征值所对应的特征向量组成降维后的空间的基向量U=(u1,u2,…,uk),降维后的特征子空间表示为Y=UΤX,其中Y∈Rk,k<<d。现在的k维空间就代替了原来的d维空间,大大降低了样本空间的维度。
2.3 感知哈希
感知哈希是多媒体数据集到感知摘要集得一类单项映射,即将具有相同感知内容的多媒体数字表示唯一地映射为一段数字摘要,并满足感知鲁棒性和安全性[11]。感知哈希序列的生成分为3个步骤:特征提取,量化和编码。本文中所用到的感知哈希算法如下:
1)通过DWT和PCA得到图像的特征向量;
2)计算特征向量中系数的均值;
3)比较特征向量中各系数与系数均值的大小,大于或等于均值记为1,小于均值记为0,生成二值序列即为感知哈希序列。
3 算法过程
3.1 提取图像的感知哈希序列
步骤1:对原图进行小波变换。
首先对大小为M×N原始图像F(i,j)进行L级小波分解(DWT2),得到大小为m×n的小波逼近子图FL(i,j),其中
步骤2:对原图的L级小波逼近子图进行主成分分析。
将小波逼近子图FL(i,j)分为大小为p×q互不重叠的子块,其中p×q=d。那么大小为m×n的小波逼近子图可以分为k块,即为k个样本,其中k=(m×n)/(p×q)。然后将大小为p×q的子块图像按列存储为一个d维的行向量作为样本矩阵中的一个样本(一行),最终得到一个大小为k×d的样本矩阵X。
设Ζk×d为样本矩阵X中每个样本减去样本均值m后得到的矩阵,则样本的散布矩阵S为(ZΤZ)d×d。设矩阵R=(ZZΤ)k×k,通常k<<d,因此size(R)<<size(S),但是R与S的特征值是相同的。
设k维列向量v是R的特征向量,则有
式两边同时左乘ZΤ,并应用矩阵乘法的结合律得
式(10)说明ZΤv为散布矩阵(ZΤZ)d×d的特征向量,那么可以通过计算小矩阵R=(ZZΤ)n×n的特征向量v,然后左乘ZΤ得到散布矩阵S=(ZΤZ)d×d的特征向量ZΤv。
取最大特征值对应的特征向量作为基向量Q,样本矩阵Z通过如下变换获得第一主成分分量PC1
PC1即为原图的特征向量。
步骤3:感知哈希序列的生成。
1)求取原图特征向量系数的平均值;
2)比较特征向量中每个系数与平均值的大小关系,大于或等于平均值记1,小于平均值记0;
3)将2)中的结果组合在一起,就得到一个二值序列,即为感知哈希序列。
3.2 水印的嵌入与提取
3.2.1 水印的预处理
步骤1:由Logistic映射产生混沌序列。
Logistic映射的定义为
Logistics映射序列{xn}有如下3个特征:1)对初始条件具有敏感依赖性;2)非周期性;3)存在着奇异吸引子。混沌序列中的前两条特性,即对初始值的“敏感依赖性”和“非周期性”正是密码学中密钥和密钥流需要具备的特性[12]。
步骤2:利用混沌序列,对水印进行置乱,得到加密水印。
首先,选取一个有意义的二值图像W(i,j)为水印,然后对一维的混沌序列X(j)从大到小排序,得到排序后的序列L(j)。将原始水印的像素位置按照L(j)中各值排序前后的位置变换进行置乱,最终得到混沌加密后的水印EW(i,j)。
3.2.2 水印的嵌入
由提取的原始图像的感知哈希序列V(i,j)和混沌加密的水印EW(i,j)进行异或运算生成二值逻辑密钥Key(i,j)。只有原始图像的所有者持有密钥,用于提取水印。该算法中的水印没有真正嵌入到图像中,而是同图像的特征向量相关联,是一种零水印技术。其中
3.2.3 水印的提取
步骤1:按照3.1的方法提取待测图像F'(i,j)的感知哈希序列V'(i,j)。下式中,DWT2表示二维离散小波变换,PCA表示主成分分析,提取第一主成分,PHA表示提取感知哈希序列。
步骤2:通过异或运算,提取待测图像中的混沌加密水印EW'(i,j)
步骤3:令初始值x0和μ与原始水印混沌加密时设置的数值相同,从而得到相同的混沌序列X(j)和排序后的序列L(j)。将提取的二值加密矩阵按照L(j)恢复到排序前的位置的方式改变各系数的位置,得到解密后的二值水印W'(i,j)。
4 实验结果
仿真平台是MATLAB2012b,原始图像选取大小为256×256的灰度Lena图像,选择大小为64×64、带有“海南”首字母“HN”字样的二值图像作为水印,如图1b所示,用Logistic映射对水印进行置乱起到加密的作用,如图1c所示,水印图像被置乱,肉眼无法辨识。实验中,Logistic映射的初始值x0为0.2,增长参数为4。小波分解级数L=3,将小波逼近子图分为大小为4×4,互不重叠的64个子块。未受攻击下,对提取的水印解密的结果如图1d所示,与原始水印的NC值为1。测试6幅不同图像(见图1~2)感知哈希序列之间的NC值,结果如表1所示,不同图像与自身的NC值都为1,不同图像之间的NC值都很小。
4.1 常规攻击测试
4.1.1 高斯噪声干扰
用imnoise()函数对原始水印图像加入高斯噪声,当噪声方差为0.01时,水印图像如图3a所示,图像变得模糊,但仍能提取出清晰的水印,如图3b所示。表2的实验数据显示,随着噪声强度的增加,水印图像的质量降低,当噪声方差高达0.3时,提取的水印与原始水印的NC值为0.79,仍能提取出正确的水印,表明本算法有较好的抗噪声攻击的能力。相较而言,文献[6]的算法抗噪声攻击的能力稍弱一些。
4.1.2 JPEG压缩攻击
对原始水印图像进行JPEG压缩,压缩质量越低,图像质量越差。当压缩质量低至4%时,水印图像出现明显的方块效应,如图4a所示,此时提取的水印如图4b所示,与原始水印的NC值为0.94。从表3的实验数据可见,本算法有较强的抗JPEG压缩的能力,而文献[6]的算法不如其他3种算法抗JPEG压缩的能力强。
4.1.3 中值滤波攻击
对原始水印图像进行一次中值滤波,窗口大小为[3×3],提取的水印清晰准确,如图5b所示,与原始水印的NC值为1.00。从表4中的实验数据可以看出,本算法具有较强的抗中值滤波的能力,而文献[6]的算法抗中值滤波的能力略低于其他3种算法。
4.2 几何攻击测试
4.2.1 旋转攻击
当原始水印图像顺时针旋转5°,提取的水印如图6b所示,虽然有噪点,但水印内容可辨别且准确,与原始水印的NC值为0.73。从表5中的实验数据可知,10°以内的旋转攻击,提取的水印与原始水印的NC值都是大于0.5,说明能提取出可辨别的准确水印;而且通过对比发现,本文算法提取的水印与原始水印的NC值明显高于其他3种算法,说明本算法具有较好的抗旋转攻击的能力。
4.2.2 缩放变换
用imresize()函数对原始水印图像按比例先缩小再放大和先放大后缩小,由于是采用插值算法对图像进行缩放,因而该变换会对图像质量产生影响。图7a是原始水印图像先缩小4倍再放大4倍后的图像,出现模糊现象,此时提取的水印如图7b所示,与原始水印的NC值为1。从表6的实验数据可以看出,4种算法抗缩放变换的能力都很强。
4.2.3 剪切攻击
使用沿x轴、y轴和随机剪切3种剪切方式对原始水印图像进行剪切攻击,沿y轴剪切4%的原始水印图像时,提取的水印如图8b所示,与原始水印的NC值为0.71。从表7的实验数据可知,本文算法抗剪切攻击的能力不如另外3种算法。
5 总结
本文结合小波变换、主成分分析以及感知哈希提取出图像的感知哈希序列,能充分代表图像特征;另外还运用零水印的概念,将图像的感知哈希序列与水印相结合,完成水印的嵌入和提取,不改变水印载体的图像信息,符合实际要求,较好地解决了水印不可见性和鲁棒性的矛盾。此外,水印进行了混沌加密,攻击者在没有密钥的情况下很难提取出水印,因此水印的安全性有所提高。经过不同种类、不同程度的攻击实验以及同另外3种算法的对比,本算法显示出较强的抗常规攻击的能力和一定的抗几何攻击的能力,尤其抗旋转攻击的能力都明显强于其他几种算法。
摘要:针对数字图像水印容易受到攻击,提出一种基于DWT-PCA和感知哈希的鲁棒零水印算法。首先对原始图像进行多级小波分解,得到小波逼近子图;然后对小波逼近子图进行主成分分析(PCA),取小波逼近子图的第一主成分;通过比较第一主成分中各系数与系数均值的大小关系生成二值序列,即为原始图像的感知哈希序列。结合零水印的概念,水印并未真正嵌入到图像中,而是与图像的感知哈希序列相关联生成密钥,在水印提取过程中使用。实验结果表明,该算法能抵抗较强的常规攻击和一定的几何攻击。
关键词:离散小波变换,主成分分析,感知哈希,零水印,混沌加密
参考文献
[1]李赵红,黄亮,张文礼.用于二值图像认证的数字水印技术[J].北京邮电大学学报,2010,33(5):66-70.
[2]王超,王伟,王泉,等.一种空间域矢量地图数据盲水印算法[J].武汉大学学报:信息科学版,2009,34(2):163-169.
[3]邓问权,廖述剑.基于小波变换的图像水印技术[J].电视技术,2013,37(9):16-18.
[4]胡裕峰,朱善安.基于PCA和混沌置乱的零水印算法[J].浙江大学学报(工学版),2008,42(4):593-597.
[5]温泉,孙锬锋,王树勋.零水印的概念与应用[J].电子学报,2003,31(2):214-215.
[6]叶天语,马兆丰,钮心忻,等.强鲁棒零水印技术[J].北京邮电大学学报,2010,33(3):126-129.
[7]隋淼,李京兵.一种基于Arnold置乱变换和DCT的医学图像鲁棒水印算法[J].计算机应用研究,2013,30(8):2552-2556.
[8]李雨佳,李京兵.基于DCT和感知哈希的纹理防伪标签鉴别算法[J].计算机应用研究,2014,31(12):3720-3726.
[9]李京兵,黄席樾.一种基于DWT抗几何攻击数字水印鲁棒算法[J].计算机仿真,2007,24(3):303-306.
[10]王鹤,谢刚.基于PCA-SIFT特征的目标识别算法[J].电视技术,2013,37(15):30-32.
[11]牛夏牧,焦玉华.感知哈希综述[J].电子学报,2008,36(7):1405-1411.
基于语音低频分量的语音零水印 篇8
目前在时域、空域或频域上提出的数字水印算法是对原始数字作品进行修改来嵌入水印信息,而这些信息的嵌入都会导致一定程度的失真,造成数字水印不可感知性和鲁棒性之间的矛盾。“零数字”水印作为解决这对矛盾的有效方法得到了研究者的广泛关注。但目前对其研究主要集中在图像领域,且“嵌入”的水印大都是无意义的。无意义的水印只能通过统计的方法来判断水印是否存在,不能直观地给出版权标志信息。
针对以上问题,一些学者利用音频信号低频成分不易受到各种攻击的影响这一统计特征[1,2]“嵌入”有意义零水印,得到了良好的效果。在本文中,我们利用这一统计特征嵌入有意义的零水印。算法不修改原始作品的任何数据,并且能够抵抗幅度缩放、重量化和低通滤波等音频信号攻击。
2 基于语音低频分量的语音零水印算法
基于线性预测系数多级矢量量化的零水印算法由两个阶段构成:水印构造阶段和水印提取阶段。
2.1 水印构造阶段
首先,设音频信号为:
S={s(n)|n=0,…,L-1},水印为一副尺寸是M×N的有意义的二值图像,记为:W={w(p,q)|w(p,q)∈{0,1},p=0,…,M-1;q=0,…,N-1}。
将S分割为M×N个互不重叠的等长的帧,记为:F={fi|i=0,…,M×N-1},
每个数据帧由Lf个采样点组成,即:fi={fi(n)|i=0,…,M×N-1;n=0,…,Lf-1}。
对数据帧fi,i=0,…,M×N-1进行二级小波分解得到小波细节分量,记为:di={di(n)|i=0,M×N-1}
然后取出序列di的前m个元素进行离散余弦变换得到混合域系数,记为:Ci={ci(n)|i=0,…M×N-1;n=0,…,m-1}
再次,根据ci(m-1),i=0,…,M×N-1与的关系产生极性向量,记为:Y={y(i)|i=0,…,M×N-1},
即:
并将保存为密钥k1,即
最后,对极性向量Y={y(i)|i=0,…,M×N-1}和原始水印
w={w(p,q)|w(p,q)∈{0,1};p=0,…,M-1;q=0,…,N-1}
进行异或运算获得水印检测密钥,记为k2={k2(i)|i=0,…,M×N-1},即:
K2(i)=y(i)⊕w(p,q),i=p×N+q
2.2 水印提取阶段
首先,将待测音频信号分割成等长的互不重叠的M×N帧,记为:。
最后,对极性向量:
和检测密钥:k2={k2(i)|i=0,…,M×N-1}
进行异或运算,从而获得提取出的水印,记为:
P=0,…,M-1;q=0,…,N-1,
3 仿真实验
原始语音信号为如图1(a)所示的语音信号,其采样率为8kHz、量化精度为16bits/sample、长度为40.96s;原始水印为如图1(b)所示的64x64的二值图像(水印容量为100bpS)首先利用“Haar”小波基对分帧后每一帧的音频数据进行二级小波分解提取其小波细节分量,并对每帧小波细节分量的前10位进行离散余弦变换得到混合域系数。另外,采用原始语音信号和受到攻击的语音信号之间的信噪比,来估计攻击的严重程度。在没有任何攻击的情况下,从原始语音信号中提取出的水印图像如图1(c)所示。
3.1 不可感知性分析
嵌入水印的不可感知性是水印技术需要满足的主要要求之一。对于零水印技术而言,因为并没有将水印真正嵌入到原始语音载体信号中,因此该要求是自然满足的[4]。事实上,“嵌入水印”后的语音信号与原始语音信号完全一致。
3.2 鲁棒性测试
鲁棒性是对水印技术的一个主要要求。水印算法的鲁棒性是用来衡量算法从受到信号处理操作或恶意攻击的嵌有水印的信号中正确检测水印的能力[5]。幅度缩放语音信号在传输的过程中,其幅度很有可能被放大或缩小。在本实验中,载体语音信号的幅度被放大/缩小3dB,然后重新提取水印。图2显示的是在各种缩放比例下所提取的水印图像。
图2从经幅度缩放操作后的语音信号中提取的水印(a)放大3dB;(b)缩小3dB。
如表1所示,幅度缩放操作虽然会使语音信号的信噪比有大幅度降低,但却不会对水印的提取造成大的影响。
另外当分别采用截止频率为10kHz的低通滤波和将语音信号先向上量化到32bits/Sample,再重新向下量化到16bits/sampl的重量化攻击方法时,所提取出的水印如图3所示。
如表2所示,虽然低通滤波和重量化攻击方式会对语音信号的质量造成较大的影响,但却几乎不影响水印的正确提取。
4 结论
本文提出了一种基于线性预测系数多级矢量量化的语音零水印,运用提取音频信号线性预测系数并进行矢量量化,之后与待测水印进行分帧异或的方法得到检测密钥,那么对音频信号编码索引值的任何改变都会影响水印比特的正确提取。仿真实验表明,文中提出的算法通过提取待测密钥中的水印来保护版权并且实现了算法的鲁棒性和不可感知性。然而该算法的水印提取是基于二级矢量量化并通过算法实现,如果待嵌入水印较大的话,水印提取过程将需要较长时间。
参考文献
[1]李坤,刘加,基于小波变换和线性预测的基音提取[J].计算机工程,2010,36(10):276-281.
[2]Juang B H,Gray H.Multiple stage vector quantization for speech coding[C]//Internat ional Conference on A coustics.New York:Speechand Signal Processing,1982:5972600.
[3]李伟,袁一群,李晓强,等.数字音频水印技术综述,通信学报,2005,26(2):100-111.
[4]Cvejic N,Seppanen T.Increasing the capacity of LSB-based audio steganography.In Proceedings of 2002 IEEE Workshop on Multime-dia Signal Processing,2002:336-338.
[5]Cvejic N,Seppanen T.Increasing robustness of LSB audio steganography using a novel embedding method.In Proceedings of Intemation-al Conference on Information Technology:Coding and Computing,2004(2):533-537.
[6]Cvejic N,Seppanen T.A novel scheme for merging digital audio watermarking and authentication.In Proceedings of IEEE 6th Workshopon Multimedia Signal Processing,2004:151-154.
[7]Yin X,Zhang X M.Covert communication audio watermarking algorithm based on LSB.In Proceedings of lntemational Conference onCommunication Technology,2006:1-4.
基于零水印的关系数据库版权保护 篇9
数据库数字水印技术是实现数据库版权保护的重要方式之一。传统方案[1,2,3]需在一定程度上修改数据库宿主信息, 只适合于对精度要求不高、允许一定误差存在的数据库, 使得其应用面较窄。零水印[4]概念则为解决这一问题提供了一种思路。
到目前为止, 数据库零水印方面的研究成果有文献[5,6,7]。文献[5]通过提取数据库中部分属性值的最高二进制位构造零水印, 作为版权证明注册, 提供了一种数据库零水印方案。文献[6]在文献[5]的基础上引入混沌序列, 改进了其属性值选择算法, 并对生成的零水印进行了混沌置乱, 提升了部分性能。文献[5,6]因零水印构造方法相同, 可以归为一类, 都存在以下不足:构造的零水印由部分属性值的最高二进制位组成, 无法与所有者的名称、商标等标示版权的信息相联系。文献[7]研究了零水印注册算法。
结合数据库的特点提出一种新的数据库零水印方案:拟取出部分能代表数据库重要特征及价值的属性值, 以之为载体, 载入有意义的版权信息, 构造零水印;发生版权纠纷时, 在待检数据库上重构载体, 以之为依据, 从零水印中分离出版权信息, 判决归属。分析并实验说明该方案具有较好的可行性及抗攻击性。
2 相关定义
定义1:R (k, A1, A2, …, An) 是待保护数据库, k为主键, A1, A2, …, An为n个属性列。对于属性值r:r.K表示其所在元组的主键, r.A表示其所在属性列的列名。R′是待检测数据库。
定义2:C (c1, c2, …, cu) 代表有意义的版权信息, 由包含数据库所有者的名称、商标等标示版权信息的文本或图片组成, ci为其u个二进制位中的第i位;检测出的版权信息用C′表示。
定义3:H是一个单向哈希函数[1], 须满足如下要求:设h= H (M) , 则 (1) 给定M, h易于计算; (2) 给定h, 几乎不可能计算出M, 使得h=H (M) ; (3) 给定H (M) , 难以寻找一个M′, 使得H (M′) =H (M) 。
定义4:给定属性值r, 其标记值计算公式为
id=H (key·r.K·r.A) (1)
其中r.K 、r.A可在数据库中唯一定位该属性值;密码key 、函数H可防攻击者根据id值猜测到对应的属性值。
定义5:实数β∈[0, 1], 为调节因子。
3 零水印构造及检测方法
3.1 版权信息的载入及分离方法
当以一个数据为载体时, 版权信息的载入及分离方法, 如图1所示。对于多个数据, 重复使用该过程, 即可载入更多的版权信息位。
根据图1, 若载体相应位受到攻击, 检测版权信息会受到很大影响。因此应尽量选择重要的、对之攻击会降低原有价值的数据作为载体;并选择这些数据的较重要二进制位进行操作;同时多次载入版权信息以提高其抗攻击性。
对于载体数据的选取, 与特定的应用有关。
对于数据的较重要二进制位的选取, 通过调节因子β来控制:以载体数据的前β *100%重要二进制位作为备选空间, 即将相对不重要的二进制位排除在外。降低β值有利于重要二进制位的选取。对于一般应用, 重要二进制位通常是高二进制位。
版权信息的多次载入与载体的容量有关, 增大β值可增加选择范围, 从而增加载体容量。
需要说明的是, 对于数值型数据, 修改其最高二进制位一般会引起数据有效二进制位位数的变化, 使得载入与分离时的选位结果相异, 影响版权信息的正确检测, 所以选位时数值型数据的最高二进制位应排除在备选范围之外。
3.2 零水印模型设计
零水印系统一般包括构造和检测两个相对独立的部分。基于3.1节的原理, 可分别设计如下。
3.2.1 零水印构造模型
零水印构造的任务是根据受保护对象的重要特征构造零水印[4]。
对于数据库, 其中的较重要数据既是数据库的重要特征也是其主要价值所在, 也最值得去保护。因此应以这部分数据为基础选择载体数据, 然后载入有意义的版权信息构造零水印。为了增强两个阶段的联系, 增加方案的抗攻击性, 版权信息载入时以用户密匙、相应标记值的连接作为载入密匙。然而不同的数据库有不同的较重要部分, 所以其较重要数据部分的选取就由数据库所有者来完成。
据此, 零水印构造模型可设计如图2所示, 主要包括两个步骤: (1) 选择载体; (2) 载入版权信息。
当载体的容量较大时, 可实现版权信息的多次载入, 从而更加有效的抵抗攻击。
3.2.2 零水印检测模型
与零水印构造相对应, 零水印检测主要包括两个步骤: (1) 重构载体; (2) 分离版权信息。其设计如图3所示。
因为版权信息分离的结果中包含了多个版本的检测版权信息, 经过多数投票[2]可获得修正的检测版权信息, 提高检测的准确度。
该方案使用的是有意义的版权信息, 因此, 从检测版权信息可直接判定待检数据库的版权归属。
4 零水印构造及检测算法
为了便于描述, 设数据库中的所有数据同等重要;数据二进制位的重要性从最低位到最高位依次增加。
由数据库所有者管理的数据密匙1~3和标记值集合分别记为:key1、key2、key3、ID;注册机构管理的零水印记为:W。length (x) 返回数据x的二进制位数;sizeof (SET) 返回集合SET中的元素数;next (C) 依次循环取得版权信息C的下一二进制位。
4.1 零水印构造算法
筛选m个属性值构造零水印的算法如下所示。
算法1 零水印构造算法
输入:R、C、β、key1、key2、key3、m
输出:ID、W
算法1第17) 行, 集合E可能是由不同类型的数据组成, 因此属于半结构化数据, 不能将之直接作为零水印, 应使用XML语言或者OEM模型等半结构化数据存储技术。
4.2 零水印检测
零水印检测算法如下所示。
算法2 零水印检测算法
输入:R′、W、ID、β、key1、key3
输出:C′
5 仿真实验与分析
为了检验本文算法的可用性及有效性, 使用随机生成的数据库, 在Matlab7.0中进行了仿真实验。
数据库R (key, A1, A2, A3) 由10000条数值型数据组成 ( 0-100之间正态分布 ) ;选取其中3500个属性值作为载体;版权信息C使用图4所示55×33的图片;载入系数β取0.5;
依据数据库R、版权信息C构造出零水印后, 在数据库R未受攻击的情况下, 得到的检测版权信息C′ 如图5所示。可以看出数据库R未受攻击时检测出了完整的版权信息。
5.1 子集删除攻击
攻击者随机删除数据库R中的一部分数据构成待检数据库R′。表1给出了随机删除不同比例数据构成R′ 时分别检测到的版权信息C′。
从表1可以看出:当删除60%数据时依然能够从C′ 上辨别出版权所有者的信息。当删除比例达到70%时版权信息已经难以辨认。这时数据库的价值也受到了极大破坏。
5.2 子集更改攻击
攻击者在一定误差范围内随机更改部分数据的数据值, 表2给出了在不同误差率下的检测结果。
从表2中可以看出:当在较小的误差下攻击时, 即使攻击比例达到100%也能很清晰的辨别出版权信息。当增大误差时, 在较小的攻击比例下也能辨认出版权信息。只有当误差较大, 同时攻击比例很大时攻击才能成功。即只有高强度、大范围的更改攻击才能成功破坏版权信息。这种情况下对数据库价值的破坏也是最大的。
5.3 子集添加攻击
攻击者在原数据库R的基础上, 另外添加了一些数据构成待检数据库R′。表3给出了不同添加比例下的实验结果。
从表3可以看出:检测版权信息基本没有受到影响, 本文方案对该攻击有很强的抗攻击性。因为该攻击没有对数据库R中原来的数据产生影响, 这些数据依然存在于R′ 中, 通过保存的标记值集合, 还可以将载体重构出来。
5.4 元组、属性列重排攻击
本文方案没有建立在数据库R有固定序的基础上, 元组重排, 或者打乱属性列的顺序对检测版权信息不会产生破坏。
6 结束语
在分析已有数据库水印技术的基础上, 提出一种新的数据库零水印方案, 将包含数据库所有者的名称、商标等标示版权信息的数据引入了零水印构造过程。分析并实验说明该方案具有较好的可行性及抗攻击性。
摘要:通过分析已有数据库水印方案, 提出一种新的数据库零水印方案:取出部分能代表数据库重要特征及价值的属性值, 以之为载体, 载入有意义的版权信息, 构造零水印;发生版权纠纷时, 在待检数据库上重构载体, 以之为依据, 从零水印中分离出版权信息, 判决归属。分析并实验说明方案具有较好的可行性及抗攻击性。
关键词:零水印,关系数据库,版权保护
参考文献
[1]Rakesh Agraw, Jerry Kieman.Watermarking RelationalDatabase[C].Proceeding of the 28th VLDB confer-ence.Hong Kong, China, 2002:155-166.
[2]Radu S, Mikhail A, Sunil P.Rights Protection for Rela-tional Data[J].IEEE Transactions on Knowledge andData Engineering, 2004, 16 (2) :1509-1525.
[3]Mohamed S, Elisa B, Arif G.Watermarking Relational Da-tabases Using Optimization-Based Techniques[J].IEEE Transactions on Knowledge and Data Engineering, 2008, 20 (1) :116-129.
[4]温泉, 孙锋, 王树勋.零水印的概念与应用[J].电子学报, 2003 (2) :215-216.
[5]蒙应杰, 吴超, 苏仕平, 等.一种关系数据库零水印方案的探讨[C].中国第二十二届数据库学术会议, 内蒙, 中国, 2005:361-365.
[6]蒙应杰, 是垚, 司蕾, 等.一种基于混沌变换的数据库零水印算法[J].计算机工程与应用, 2008, 44 (29) :168-170.