聶廷遠(yuǎn),賈 蕭,萬勝偉,周立儉,孫 潔
(青島理工大學(xué) 通信與電子工程學(xué)院,山東 青島266033)
數(shù)字水印利用數(shù)據(jù)隱藏原理使版權(quán)標(biāo)志不可見或不可聽,達(dá)到既不損害原作品,又實(shí)現(xiàn)版權(quán)保護(hù)的目的[1]。具體的生成方法,就是將載體信息經(jīng)過一系列的加密算法,將其生成不可逆的或是難以被破解的特定的標(biāo)識(shí)信息 (即數(shù)字水?。缓髮⒃摌?biāo)識(shí)信息載入到載體信息中。當(dāng)該作品被盜版或出現(xiàn)版權(quán)糾紛時(shí),所有者可利用水印提取方法從盜版作品或水印版作品中獲取水印信號(hào)作為依據(jù),為以法律的手段對(duì)其進(jìn)行制裁提供依據(jù),起到保護(hù)知識(shí)產(chǎn)權(quán)的作用。數(shù)字水印的檢測(cè)就是提取數(shù)字水印進(jìn)行解密,判斷其結(jié)果與原始簽名信息是否相同,依此來判定原載體信息的安全。
李等通過對(duì)圖像特征的處理,提出了一種基于公鑰的可逆數(shù)字水印方法[2],劉等對(duì)圖像的角點(diǎn)檢驗(yàn)與水印同步進(jìn)行分析和討論,在此基礎(chǔ)上提出了一種基于角點(diǎn)特征的幾何同步數(shù)字水印算法[3]。Ling等提出了基于壓縮視頻局部仿射不變特征的數(shù)字水印技術(shù),具有抗幾何失真的特性[4]。肖等將多級(jí)離散小波變換的 “多級(jí)”思想引入到離散余弦變換中,并對(duì)多級(jí)離散余弦變換的特性進(jìn)行了分析,在此基礎(chǔ)上提出了一種基于多級(jí)離散余弦變換的數(shù)字水印算法[5]。王等利用多尺度Harris檢測(cè)算子從載體圖像中提取出特征點(diǎn),并根據(jù)特征尺度自適應(yīng)確定特征區(qū)域,對(duì)其進(jìn)行歸一化處理,結(jié)合預(yù)失真補(bǔ)償理論,采用DFT中頻幅值比較策略,將水印信息重復(fù)嵌入到多個(gè)歸一化特征區(qū)域,提出了一種抗幾何攻擊的數(shù)字水印新算法[6]。呂等為了使水印具有更強(qiáng)的魯棒洼和更廣泛的適應(yīng)性,提出一種基于Haar小波基的離散小波變換 (DwT)的隱形水印算法[7]。唐等針對(duì)多重?cái)?shù)字水印的實(shí)際應(yīng)用,結(jié)合密碼學(xué)中的安全雙方計(jì)算協(xié)議和零知識(shí)證明協(xié)議提出一種動(dòng)態(tài)多重?cái)?shù)字水印設(shè)計(jì)方案[8]。聶等在IP核設(shè)計(jì)的過程中通過對(duì)FPGA設(shè)計(jì)加以約束,然后嵌入水印,達(dá)到保護(hù)芯片知識(shí)產(chǎn)權(quán)的目的[9]。文獻(xiàn) [10-12]對(duì)近期的數(shù)字水印技術(shù)做了較為詳細(xì)的陳述。
盡管各種各樣的數(shù)字水印方法在圖像、視頻等多媒體和IC設(shè)計(jì)保護(hù)中得到了很好的應(yīng)用,但過去的研究大多集中在水印的嵌入與檢測(cè)方面,很少涉及數(shù)字水印的生成方法。數(shù)字水印的生成在數(shù)字水印整體方案中占有至關(guān)重要的地位,如果數(shù)字水印生成安全度不高,則其生成的標(biāo)識(shí)信息 (數(shù)字水印)及其數(shù)字水印的檢測(cè)都失去意義。
本文提出一種多重加密的數(shù)字水印生成方法。先將數(shù)字簽名先經(jīng)過MD5算法,生成的是128bit位的二進(jìn)制數(shù),即Hash文本信息,再將128bit的二進(jìn)制數(shù)分成四組,每組為32bit的二進(jìn)制數(shù),最后將32bit的二進(jìn)制數(shù)經(jīng)過RSA加密后生成seed,將四組seed并聯(lián)生成二進(jìn)制位,同時(shí)保留密鑰,將并聯(lián)的二進(jìn)制的seed經(jīng)過RC4加密生成二進(jìn)制串,即生成的數(shù)字水印。該方法結(jié)合MD5、RSA和RC4等3種算法由數(shù)字簽名輸出隨機(jī)性較高的數(shù)字水印方案,故具有較高的安全性和可行性。
MD5的目的是先把大容量信息 “壓縮”成一種保密的格式,然后再用數(shù)字簽名軟件簽署私人密鑰,把任意數(shù)最后變換成l28位的二進(jìn)制數(shù)[13],達(dá)種變換只與字節(jié)的值有關(guān),與字符集或編碼方式無關(guān)。
從整體來講,MD5處理輸入信息是以512位分組形式來完成的,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過處理后,算法輸出4個(gè)32位分組,最后將這4個(gè)32位分組級(jí)聯(lián),得到我們所需的一個(gè)128位散列值[14]。圖1給出了一個(gè)簡(jiǎn)單MD5算法的流程。
公鑰密碼體制的觀點(diǎn)是由Diffie和Hellma首次提出的。與傳統(tǒng)對(duì)稱密碼體制 (即加、解密密鑰相同)相比,公鑰體制使用兩個(gè)密鑰:加密密鑰可以公開,稱為公鑰;解密密鑰保密,為私鑰。RSA算法是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法,普遍認(rèn)為是目前最優(yōu)秀的公鑰方案之一[15]。
下面給出RSA算法描述:
(1)取兩個(gè)大素?cái)?shù)p和q(保密)。
(2)計(jì)算n=p×q(公開)和φ(n)=(p-1)×(q-1)(保密)。
圖1 MD5算法流程
(3)隨機(jī)選取一個(gè)解密密鑰d,d要滿足0<d<φ(n),而且gcd(d,φ(n))=1(保密)。
(4)計(jì)算加密密鑰e,滿足0<P<φ(n),而且de≡1(modφ(n))(公開)。
利用RSA加密第一步需要將明文數(shù)字化,并取長(zhǎng)度小于log2n位的數(shù)字做明文塊。
(5)加密明文:c=E(m)≡me(modn)。(6)解密密文:m=D(c)≡dd(modn)。
其中,m表示明文,c表示密文,e表示加密密鑰,d表示解密密鑰,E(m)表示加密函數(shù),D(c)表示解密函數(shù)[16]。
RC4算法由Rivest進(jìn)行開發(fā),并得到驗(yàn)證的。它是一個(gè)基于非線性數(shù)組變換的序列密碼。此算法用一個(gè)足夠大的數(shù)組作為基礎(chǔ),對(duì)該數(shù)組進(jìn)行非線性變換,產(chǎn)生非線性的密鑰序列,并將大數(shù)組稱為S盒.為實(shí)現(xiàn)RC4算法,需要兩個(gè)處理過程:①密鑰調(diào)度算法:其作用為設(shè)置S盒的初始排列;②偽隨機(jī)生成算法:其作用為選取隨機(jī)元素,并且修改S盒的原始排列順序。
RC4算法如下:
其中:n表示此算法中使用的一個(gè)字節(jié)的長(zhǎng)度;N表示一個(gè)長(zhǎng)度為n的字節(jié)能顯示值的總量,即N=2n;it,jt表示兩個(gè)參數(shù);K表示種子密鑰,l為密鑰長(zhǎng)度,故l=K的比特?cái)?shù)/n;Zt表示t時(shí)刻的輸出值.進(jìn)行加密時(shí),使Zt與明文異或;進(jìn)行解密時(shí),使Zt與密文異或[17]。
基于以上3種算法的分析,結(jié)合每種算法的特點(diǎn),提出一種多重加密的數(shù)字水印的生成方法,如圖2所示。數(shù)字簽名和密鑰首先經(jīng)過加密器,生成水印,將生成的數(shù)字水印嵌入數(shù)字媒體,生成有水印的數(shù)字媒體。水印提取器把數(shù)字水印從水印化的數(shù)字媒體中提取出來,通過解密后加以驗(yàn)證。
圖2 數(shù)字水印的嵌入和提取
本文中提出數(shù)字水印方案的測(cè)試在 Windows XP系統(tǒng)平臺(tái)下的惠普HP Compaq dx2255MT個(gè)人電腦,處理器為AMD Athlon64X2 4400+,2300MHz,內(nèi)存容量為1GB。我們利用C語言編寫程序,隨機(jī)生成不同長(zhǎng)度的字符串作為數(shù)字簽名,并進(jìn)行了數(shù)字水印生成的測(cè)試實(shí)驗(yàn)。
表1給出了長(zhǎng)度為3、6、10位的字符串生成數(shù)字水印的具體結(jié)果。我們可以看出,對(duì)于不同的隨機(jī)數(shù)字簽名,得到的RSA輸出基本相同,在123~124之間,RC4輸出長(zhǎng)度在865位左右。數(shù)字水印的平均漢明距離在500左右,具有較高的隨機(jī)性,從而增強(qiáng)了數(shù)字水印的抗統(tǒng)計(jì)分析攻擊能力。
表1 數(shù)字水印生成匯總結(jié)果
圖3-圖5分別直觀地顯示了不同長(zhǎng)度字符串輸入、加密生成數(shù)字水印結(jié)果的位數(shù)、漢明距離三者之間的關(guān)系。
輸入不同的字符串時(shí),RSA加密后的位數(shù)集中在123附近。因?yàn)镸D5是將輸入的信息字符串進(jìn)行分組加密,Hash之后的結(jié)果都為128bit的二進(jìn)制數(shù),經(jīng)由RSA加密時(shí),由于y=x^e mod n,n=p×q,而p,q都是30位的大素?cái)?shù),對(duì)n取余后的二進(jìn)制位數(shù)徘徊在固定長(zhǎng)度123左右。信息經(jīng)RC4處理后在870左右。因?yàn)榻?jīng)過RSA加密后的二進(jìn)制位在123左右后,進(jìn)行RC4加密,RC4里的數(shù)組盒子box長(zhǎng)度為256,其內(nèi)容為1到256的數(shù)字,然后將其順序打亂,將盒子box里的隨機(jī)數(shù)字與RSA生成的二進(jìn)制位進(jìn)行異或運(yùn)算,由于256為2^8,因此異或后的數(shù)字重組后位數(shù)理論上為984位,實(shí)際上徘徊在870左右。另外,由于RSA中的30位數(shù)的生成是隨機(jī)的,并且經(jīng)過檢測(cè)30次是否為素?cái)?shù)后,進(jìn)行重新判定,因此其加密時(shí)間具有不確定性。整體來看,字符串越長(zhǎng),加密時(shí)間越長(zhǎng)。
我們對(duì)上述算法生成的數(shù)字水印進(jìn)行了FPGA Benchmark的嵌入測(cè)試,嵌入水印前后的布局布線情況如圖6和圖7所示,F(xiàn)PGA設(shè)計(jì)在經(jīng)過數(shù)字水印保護(hù)后性能無明顯變化。
針對(duì)數(shù)字水印技術(shù)中數(shù)字水印生成方法研究的現(xiàn)狀,本文結(jié)合MD5、RSA和RC4這3種算法提出一種安全性較高的數(shù)字水印生成方法。實(shí)驗(yàn)結(jié)果表明,加密后的字符串形成870位左右的二進(jìn)制數(shù),漢明距離平均在500左右,具有較強(qiáng)的抗攻擊能力,在一定程度上提高了系統(tǒng)的安全性。該方法生成的數(shù)字水印通過對(duì)Benchmark的嵌入進(jìn)行了測(cè)試,具有一定的魯棒性。
[1]YUAN Zheng.Provably secure digital watermarking scheme[J].Journal on Communications,2008,22 (9):91-96 (in Chinese).[袁征.可證安全的數(shù)字水印方案 [J].通信學(xué)報(bào),2008,22 (9):91-96.]
[2]LI Lizong,GU Qiaolun,GAO Tiegang.Public key-based reversible watermarking [J].Journal of Computer Applications,2012,32 (4):971-975 (in Chinese).[李立宗,顧巧論,高鐵杠.基于公鑰的可逆數(shù)字水印 [J].計(jì)算機(jī)應(yīng)用,2012,32(4):971-975.]
[3]LIU Quan,ZHANG Le,ZHANG Yonggang,et al.The corner feature-based geometric synchronous digital watermarking algorithm [J].Journal on Communications,2011,32 (4):25-31 (in Chinese).[劉全,張樂,張永剛,等.基于角點(diǎn)特征的幾何同步數(shù)字水印算法 [J].通信學(xué)報(bào),2011,32(4):25-31.]
[4]LING H,WANG L,ZOU F,et al.Robust video watermarking based on affine invariant regions in the compressed domain[J].Signal Processing (Elsevier Academic Press),2011,91(8):1863-1875.
[5]XIAO Jun,WANG Ying.A robust digital watermarking algorithm based on multiple-level discrete cosine transform [J].Chinese Journal of Computers,2009,32 (5):1055-1061(in Chinese).[肖俊,王穎.基于多級(jí)離散余弦變換的魯棒數(shù)字 水 印 算 法 [J]. 計(jì) 算 機(jī) 學(xué) 報(bào),2009,32 (5):1055-1061.]
[6]WANG Xiangyang,HOU Limin,WU Jun.Feature-based digital image watermarking scheme robust to geometric attacks[J].ACTA Automatica Sinica,2008,34 (1):1-6 (in Chinese).[王向陽,侯麗敏,鄔俊.基于圖像特征點(diǎn)的強(qiáng)魯棒數(shù)字水印嵌入方案 [J].自動(dòng)化學(xué)報(bào),2008,34 (1):1-6.]
[7]LV Haicui,F(xiàn)U Li, WANG Dan. Watermarking lowest approximation of wavelet transformation of images [J].Computer Engineering and Applications,2009,45 (11):99-101(in Chinese).[呂海翠,傅鸝,王丹.小波變換的低頻數(shù)字水印 [J].計(jì)算機(jī)工程與應(yīng)用,2009,45 (11):99-101.]
[8]TANG Ming,WANG Lina,ZHANG Huanguo.The dynamic multiple digital watermark design [J].Application Research of Computers,2006,23 (3):28-30 (in Chinese). [唐明,王麗娜,張煥國.動(dòng)態(tài)多重?cái)?shù)字水印設(shè)計(jì)方案 [J].計(jì)算機(jī)應(yīng)用研究,2006,23 (3):28-30.]
[9]NIE Tingyuan,LIU Haitao,ZHOU Lijian,et al.FPGA IP core digital watermark protection and detection technology [J].Semiconductor Technology,2012 (8):585-589 (in Chinese).[聶廷遠(yuǎn),劉海濤,周立儉,等.FPGA IP核數(shù)字水印保護(hù)與檢測(cè)技術(shù) [J].半導(dǎo)體技術(shù),2012 (8):585-589.]
[10]WANG Kun,YANG Feng.Digital watermarking technology overview [J].Network & Computer Security,2010 (3):59-61 (in Chinese).[王坤,楊峰.數(shù)字水印技術(shù)綜述 [J].計(jì)算機(jī)安全,2010 (3):59-61.]
[11]JIANG Jianguo,XUAN Man,QI Meibin.The status and progress of the digital watermarking technology [J].Journal of Computer Applications,2006,26 (s6):60-63 (in Chinese).[蔣建國,宣曼,齊美彬.數(shù)字水印技術(shù)的研究現(xiàn)狀及進(jìn)展 [J].計(jì)算機(jī)應(yīng)用,2006,26 (s6):60-63.]
[12]ZHAO Xiang,HAO Lin.Digital watermarking overview[J].Computer Engineering & Oesign,2006,27 (11):1946-1950 (in Chinese). [趙翔,郝林.數(shù)字水印綜述 [J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27 (11):1946-1950.]
[13]MAO Yi,CHEN Na.Research and improvement of the MD5 algorithm [J].Computer Engineering,2012,38 (24):111-114 (in Chinese). [毛熠,陳娜.MD5算法的研究與改進(jìn) [J].計(jì)算機(jī)工程,2012,38 (24):111-114.]
[14]ZHANG Yizhi,ZHAO Yi,TANG Xiaowu.MD5algorithm research [J].Computer Science,2008,35 (7):295-297(in Chinses).[張裔智,趙毅,湯小武.MD5算法研究 [J].計(jì)算機(jī)科學(xué),2008,35 (7):295-297.]
[15]LI Yunfei,LIU Qing,HAO Lin,et al.An effective RSA algorithm improvement program [J].Journal of Computer Applications,2010,30 (9):2393-2397 (in Chinese). [李云飛,柳青,郝林,等.一種有效的RSA算法改進(jìn)方案[J].計(jì)算機(jī)應(yīng)用,2010,30 (9):2393-2397.]
[16]CHEN Chuanbo,ZHU Zhongtao.RSA algorithm is applied and the implementation details [J].Computer Engineering and Science,2006,28 (9):13-14 (in Chinese). [陳傳波,祝中濤.RSA算法應(yīng)用及實(shí)現(xiàn)細(xì)節(jié) [J].計(jì)算機(jī)工程與科學(xué),2006,28 (9):13-14.]
[17]HU Liang,CHI Ling,YUAN Wei,et al.Cryptanalysis and improvements of RC4algorithm [J].Journal of Jilin University,2012,50 (3):511-516 (in Chinese). [胡亮,遲令,袁巍,等.RC4算法的密碼分析與改進(jìn) [J].吉林大學(xué)學(xué)報(bào),2012,50 (3):511-516.]