基于SVD、DCT和RSA加密数字水印算法研究孙媛媛1,王春才2(1.长春理工大学计算机科学技术学院,长春130022;2.长春市万易科技有限公司工程研究中心,长春130003)摘要:本文提出了一种基于SVD、DCT、RSA加密数字水印算法,该方法是将载体文档图像做8*8块的DCT变换,水印图像进行了Arnold处理,将水印图像嵌入到变换的SVD正定矩阵中,修改中频域频谱系数,同时对文档使用RSA算法进行加密,含有水印的图像经IDCT变换存成嵌入水印的图像。通过提取变换域的SVD,提取数字水印,经过RSA算法加密后解密该文档,在经过猫脸逆变换处理得到数字水印图像,水印图像的提取IDCT实验结果表明,本文算法具有安全性高、鲁棒性强以及嵌入水印较好的视觉隐蔽特性、算法处理速度快等特点。关键词:奇异值分解离散余弦变换RSA加密算法RSA解密算法猫脸变换猫脸逆变换中图分类号:TP317.4文献标识码:A文章编号:ResearchonWatermarkingAlgorithmofImageUsingSVD、DCTandRSAEncryptionSunYuanyuan1,WangChuncai2(1.DepartmentofScienceandTechnology,ChangchunUniversityofScienceandTechnology,Changchun130022;2.EngineeringResearchDepartment,ChangchunWHY-EScienceandTechnologyCo.,Ltd,Changchun130003)Abstract:ThispaperpresentsawatermarkingalgorithmofdocimageusingSVD、DCTandRSAEncryption.Inthisalgorithm,coveredimageistransformedinto8*8blockusinginDCT,thewatermarkingimageistransformedinArnoldtransformation,inthesecondstagethecoveredimageisusedtomodifythematrixofSVD,andmodifymiddlefrequencycoefficientandthesametimethedocumentisencryptedusingRSAalgorithm.ThecoveredimagewithwatermarkistransformedintoembeddedimageinIDCT.ThewatermarkimageisextractedintransformationofSVD,theencryptiondocisdecryptedandwatermarkimageistransformedinInverseArnoldtransformation.TheExperimentresultsofwatermarkextractionshowthatimagetransformationhasbettersafety,robustness,andhashighbettervisionmasking,andhasmorefastinprocessalgorithm.Keywords:SingularValueDecomposition(SVD)DiscreteCosineTransformation(DCT)RSAEncryptionRSADecryptionArnoldTransformationInverseArnoldTransformation随着网络通讯的普及,许多传统多媒体开始向数字化转变,用户对于多种多媒体产品包括视频、音频、图像的访问、复制、以及交易等操作变得越来越容易,它给媒体制造商造成了巨大损失,人们开始对数字媒体和印刷媒体的知识产权保护变得更加重视。数字水印作为一项很有潜力的解决手段,是进行数字版权保护的有效手段之一,它将水印嵌入到数字媒体中,然后通过对水印的检测来确定媒体的版权所有,并可以事后追踪数字媒体的泄露源等。图像置乱变换是一种常见的加密算法,主要是采用图像的空间域对图像的各像素位置重新进行排列,灰度不变,直方图统计不变。文献[1][2]采用参数化的二维混沌映射的图像加密算法。文献[3]采用了幻方图像置乱变换。文献[4]采用了两种非线性变换即高维的Arnold(猫脸变换)和Fibonacci-Q变换,本文主要采用了二维的猫脸变换,这两种变换在达到一定的周期后,图像的位置和灰度又重新回到了起始位置。目前水印算法按嵌入方式分为两类:空域和频域。空域方法直接将水印信息叠加到图像的像素空间上,主要LSB文献[5],通过修改像素的最低位的灰度值来嵌入水印信息;频域方法将图像做各种变换(如FFT、DCT、DWT),然后将水印信息叠加到变换后的频域中频或者低频,最后通过相应的反变换得到嵌入水印信息的图像文献[6][7][8][9][10][11]。目前国际上公认的加密算法有RSA、CRC32、RC4、DES,其中RSA加密算法是采用非对称加密技术,具有更大的使用价值,它是目前公认的最有影响力的公钥加密算法,能够抵抗到目前为止的所有密码攻击,使用公钥加密,采用私钥解密技术受到广大使用者的青睐。1离散余弦变换DCT(离散余弦变换)是数字图像处理以及信号处理常用的一种正交变换,具有压缩比高、误码率小、信息集中能力和计算复杂性综合效果较好等优点,是图像编码的核心技术之一。二维离散DCT变换及IDCT反变换公式如下:)2)12(*cos()2)12(*cos(),()()(),(1010NvjNuijifvCuCvuFNiNj(1)IDCT(离散余弦逆)变换)2)12(*cos()2)12(*cos(),()()(),(1010NvjNuivuFvCuCjifNuNv(2)其中)1,...2,1,(2)0,(1)(),(NvuNvuNvCuC(3)图像二维DCT变换(N取8或16)有许多优点:图像信号过变换后,变换系数几乎不相关,经过反变换重构图像,信号误差和量化误差将像随机噪声一样分散到块中的各个像素去,不会造成误差累积;并且变换能将数据块中的能量压缩到为数不多的部分低频系数中去(即DCT矩阵的左上角)。Fl为图像频域的低频区、Fm为图像频域的中频区、Fh为图像区域的高频区。图像二维DCT变换域频谱系数位置FlFlFlFm(嵌入位置)FmFmFmFhFlFlFm(嵌入位置)FmFmFmFhFhFlFmFmFmFmFhFhFhFmFmFmFmFhFhFhFhFmFmFmFhFhFhFhFhFmFmFhFhFhFhFhFhFmFhFhFhFhFhFhFhFhFhFhFhFhFhFhFh本文主要采用先把图像分成8×8的不同小块,再分别对每一块进行DCT变换,进而在SVD(SingularValueDecomposition)的正定矩阵中频区嵌入水印。2一种基于SVD、DCT、RSA加密数字水印算法嵌入和提取数字水印流程图开始水印图像置乱输入图像(I)8*8分块,每块DCT变换(ID)DCT变换中频区修改频谱系数使用每次随机生成序列号RSA加密文档具有水印信息SVD分解(W,Uu,V)修改W为W’(正定对角阵)嵌入水印Uu*W’*V转置得到新图像(ID’)ID’每块IDCT逆变换(即包含水印图像的输入图像I’)结束开始输入图像带有嵌入水印图像(I’)8*8分块,每块DCT变换(ID’)DCT变换中频区频谱系数提取数字水印随机序列号RSA解密文档具有水印信息SVD分解(W,Uu,V)从W(正定对角阵)提取水印结束水印图像逆置乱恢复水印置乱信息图1一种基于RSA加密的文档图像加密算法嵌入和提取水印流程图Fig1.FlowchartofdocimagebasingonencryptionAlgorithmofRSAwithembeddedandextractedwatermark表1DCT频谱系数Tab.1coefficientofDCTfrequencyspectrumFig.9Watermarkimage档序列号3一种基于RSA加密的文档图像加密算法嵌入和提取数字水印具体步骤3.1加密和水印嵌入(1)水印图像(猫脸变换)置乱;thy_old)%wid*2+(x_old=y_newthy_old)%wid+(x_old=x_newy_old)s(x_old,y_new)s(n_new,(4)(2)对原始彩色图像(512×512)取红色通道(人眼对红色通道比较敏感)分量按照8×8的大小进行分块,然后对每一块进行离散余弦变换,取每一块经过变换得到的系数组成的矩阵)641,641)(,(nmnmF的第一个值Fm,n(1,1)(1≤m≤64,1≤n≤64)组成一个新矩阵A(64×64)。(3)采用RSA加密算法对文档图像产生随即序列号使用公钥加密,对A中频区域参照表格1找到中频区域修改频谱系数及当水印置乱信息为1时A[像素横坐标中频位置0][像素纵坐标中频位置0][像素横坐标中频位置1][像素纵坐标中频位置1]否则当水印置乱信息为0时,使A[像素横坐标中频位置0][像素纵坐标中频位置0]A[像素横坐标中频位置1][像素纵坐标中频位置1]参照表1像素横坐标位置0可以取0,像素纵坐标位置0可以取4;像素横坐标位置1可以取2,像素纵坐标位置1可以取3;如此64*64块循环,水印嵌入到了中频系数中,也可以选择其他的表1的红色Fm中嵌入,结果影响不大。(4)对A式进行奇异值分解WVUAu,得到uU、W和V。(5)通过修改正定对角阵W的系数为'W,按照一定的步长在中频区域修改对角阵系数完成鲁棒水印的嵌入。(6)TuVWUA''TV是V的转置图像。(7)对变化后的矩阵'A进行离散余弦逆变换后就得到嵌入水印后的灰度图像'I(512×512)。3.2解密和水印提取(1)对嵌入水印图像I’(512×512)按照8×8的大小进行分块,然后对每一块进行离散余弦变换,取每一块经过变换得到的系数组成的矩阵)641,641)(,('nmnmF的第一个值(1,1))m,('nF(1≤m≤64,1≤n≤64)组成一个新矩阵'A(64×64)。(2)采用RSA解密算法对文档图像使用私钥解密,如果解密出的序列号和加密前的序列号不符,水印提取失败。每次嵌入水印时随机生成一个序列号,这个序列号保护文档的安全性,一对公钥私钥才能解密文档,如果被恶意篡改,解密文档图像失败。对A中频区域参照表格1找到中频区域如果A[像素横坐标中频位置0][像素纵坐标中频位置0][像素横坐标中频位置1][像素纵坐标中频位置1],水印置乱系数为1;如果A[像素横坐标中频位置0][像素纵坐标中频位置0]A[像素横坐标中频位置1][像素纵坐标中频位置1],水印置系数为0.参照表1像素横坐标嵌入位置取0嵌入位置0,提取位置0;像素纵坐标嵌入位置0嵌入位置取4,提取位置取4;像素横坐标位置1嵌入位置取2,提取位置取2;像素纵坐标位置1嵌入位置取3,提取位置取3;如此64*64块循环,水印提取在中频系数中,也可以选择其他的表1的红色mF中提取,嵌入哪个位置,提取在哪个位置。(3)对A式进行奇异值分解WVUAu',得到uU、W和V。(4)通过正定对角阵W,按照一定的步长在中频区域判定对角阵系数按照嵌入中频位置,完成鲁棒水印的提取。(5)对置乱水印图像进行逆的置乱变换,即猫脸逆变换,提取出数字水印图像。thwidth)%wid+y_old+(-x_old=y_newthwidth)%wid+y_old-x_old*(2=x_newy_old)s(x_old,y_new)s(n_new,(5)4实验结果与讨论4.1实验结果采用本文方法,本文采用文档(512*512)图像作为载体图像,将数字水印图