呂嫄
摘要:數(shù)字水印技術(shù)在現(xiàn)在的信息安全領(lǐng)域,成為了主要的研究熱點(diǎn)方向,其成為了當(dāng)前的主要的信息隱藏技術(shù)。隨著信息化技術(shù)不斷發(fā)展,數(shù)字水印技術(shù)被廣泛應(yīng)用,該文主要介紹在C#開發(fā)平臺(tái)下進(jìn)行數(shù)字水印系統(tǒng)的編碼實(shí)現(xiàn),對(duì)應(yīng)用數(shù)字水印處理相關(guān)原理進(jìn)行介紹。下面本文主要針對(duì)數(shù)字水印的基本研究現(xiàn)狀、C#相關(guān)問題進(jìn)行介紹,并在C#平臺(tái)開發(fā)上實(shí)現(xiàn)了數(shù)字水印系統(tǒng)編碼。
關(guān)鍵詞:C#;數(shù)字水??;數(shù)字水印系統(tǒng)
中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)36-8624-02
近年來,隨著計(jì)算機(jī)網(wǎng)絡(luò)、通信技術(shù)快速發(fā)展,對(duì)于人們的信息隱私保護(hù)問題成為了當(dāng)前研究的重點(diǎn)。信息技術(shù)雖然快速發(fā)展,但是其安全性保護(hù)問題卻一直是人們擔(dān)憂的問題,目前主要的信息安全保護(hù)均是以數(shù)學(xué)理論和密碼學(xué)作為基礎(chǔ),這兩種技術(shù)都屬于從數(shù)據(jù)加密和訪問權(quán)限控制來實(shí)現(xiàn)保護(hù)。但是這種方法卻不能夠完全解決信息安全問題所帶來的其他問題,密碼技術(shù)在經(jīng)過破譯之后也能夠?qū)π畔⑦M(jìn)行泄密,其具有局限性[1]。另外現(xiàn)代多媒體技術(shù)快速發(fā)展,對(duì)于一些重要信息需要進(jìn)行數(shù)據(jù)加密、權(quán)限認(rèn)證和數(shù)字版權(quán)保護(hù)僅僅使用密碼措施,難以滿足當(dāng)前的要求。因此傳統(tǒng)的加密處理難以滿足當(dāng)前信息時(shí)代發(fā)展的需求,于是人們發(fā)現(xiàn)了數(shù)字水印技術(shù)可以更加有效的對(duì)信息進(jìn)行保護(hù)。其在數(shù)字認(rèn)證、版權(quán)保護(hù)具有獨(dú)特優(yōu)勢(shì),面對(duì)快速發(fā)展的信息科技,數(shù)字水印技術(shù)解決了加密處理過程中的一些常規(guī)性問題。
1 數(shù)字水印研究現(xiàn)狀
國(guó)外數(shù)字水印技術(shù)的起步時(shí)間比我國(guó)早,發(fā)展的時(shí)間較長(zhǎng),而在我國(guó),隨著信息隱藏技術(shù)的不斷發(fā)展,使得很多的人越來越關(guān)注信息隱藏技術(shù)與數(shù)字水印技術(shù),研究的力度也進(jìn)一步加大,經(jīng)過多年的發(fā)展,信息隱藏技術(shù)方面的領(lǐng)域與一些密碼學(xué)、信息安全、信號(hào)處理等取得了很好的成果。如今數(shù)字水印技術(shù)作為一種隱藏通信與知識(shí)產(chǎn)權(quán)保護(hù)等方面具有極其重要作用的技術(shù),正在被社會(huì)各界廣泛的運(yùn)用[2]。
隨著數(shù)字水印理論和實(shí)踐得到較大的突破時(shí),目前數(shù)字水印在信息技術(shù)、信息標(biāo)識(shí)隱藏、數(shù)字出版版權(quán)保護(hù)、非對(duì)稱握手認(rèn)證等方面的應(yīng)用最為廣泛。對(duì)于數(shù)字水印版權(quán)保護(hù)應(yīng)用方面,主要集中在電子商務(wù)認(rèn)證、傳媒行業(yè)大規(guī)模廣播服務(wù)、個(gè)人多媒體制品分享等方面,此外,數(shù)字水印還為工程制圖、醫(yī)學(xué)顯像、監(jiān)控、物理成像、多媒體檢索等做出了巨大的貢獻(xiàn)。在認(rèn)證上,數(shù)字水印采用了信用卡、ID卡、票據(jù)等作為防偽和檢測(cè)的重要手段,由于數(shù)字水印和隱藏通信能夠很好的結(jié)合,使得數(shù)字水印在國(guó)防中不可通信中也得到了廣泛的運(yùn)用,數(shù)字水印能夠?yàn)橛脩籼峁┮粋€(gè)秘密的、公共的信息傳輸平臺(tái)[3]。
目前對(duì)于證件的防偽面臨著較大的困難,從造假到販假到最后的用假,偽造證件已經(jīng)成為了社會(huì)上的一種常見現(xiàn)象,也行成了一個(gè)巨大的產(chǎn)業(yè)鏈。偽造證件的使用無論在人才就業(yè)上、升學(xué)上、甄選上還是晉職調(diào)選上都產(chǎn)生了一股歪風(fēng)邪氣,給各企業(yè)帶來嚴(yán)重的損失,嚴(yán)重的打擊了人才甄選時(shí)的公信力和公平性。鑒于此,數(shù)字水印技術(shù)就偽造問題進(jìn)行了深入的研究,將辨別真?zhèn)巫鳛榱藨?yīng)用中的重點(diǎn),避免出現(xiàn)復(fù)制、仿造、假冒的現(xiàn)象,通過以往實(shí)踐的經(jīng)驗(yàn)來看,引入數(shù)字水印技術(shù)后,極大的降低了復(fù)制、仿造、假冒的現(xiàn)象。
數(shù)字水印利用數(shù)據(jù)隱藏的原理可以將版權(quán)設(shè)置為不可見或者不可聽,從而在不損壞原有作品的基礎(chǔ)上對(duì)其版權(quán)進(jìn)行有力的保護(hù)。目前,我國(guó)的數(shù)字水印技術(shù)對(duì)版權(quán)的保護(hù)已經(jīng)處于實(shí)用化階段,如采用了IBM公司的數(shù)字圖書館軟件中的數(shù)字水印功能和ADOBE工期的Photoshop軟件中的數(shù)字水印插件等。雖然數(shù)字水印技術(shù)目前還有待提高,很容易遭到第三方的破解或破壞,但是數(shù)字水印技術(shù)為我們提供了一個(gè)開闊的發(fā)展前景。
2 C#相關(guān)介紹
C#作為一種面向?qū)ο蟮拈_發(fā)語言,并在NET Fremework框架環(huán)境中運(yùn)行,其和C與C++相比,C#的很多功能得到了進(jìn)一步的加強(qiáng),并對(duì)一些語言規(guī)則進(jìn)行了規(guī)范,如C#中僅允許了單繼承,可以一個(gè)類實(shí)現(xiàn)多個(gè)接口。此外,C#比C和C++更注重語言的安全性,安全轉(zhuǎn)換是唯一的且默認(rèn)的,例如需要從派生類的基類中換算或者取整計(jì)算,布爾類型是不允許非空指針進(jìn)行隱式轉(zhuǎn)換成整數(shù),該點(diǎn)和C++中的復(fù)制構(gòu)造函數(shù)有很大的區(qū)別。至于C#的模板,可以采取仿制調(diào)用的方式,C#還支持了以前C++中不支出的對(duì)象以及方法,并在C#2.0版本中還增添了新功能[4]。
利用C#源代碼對(duì)應(yīng)用程序進(jìn)行開發(fā),無法直接將編譯的源代碼在操作系統(tǒng)中轉(zhuǎn)換為可以直接執(zhí)行的二進(jìn)制代碼,該特點(diǎn)和java語言類似,它會(huì)先生成一個(gè)中間代碼,然后再通過NET Fremework虛擬機(jī)對(duì)中間代碼進(jìn)行執(zhí)行,所以雖然在表面上看起來可執(zhí)行的文件都是后綴為exe文件,和傳統(tǒng)并無太大區(qū)別,但是如果執(zhí)行的計(jì)算機(jī)上并沒有安裝NET Fremework框架,那么這些程序是無法被執(zhí)行的。NET Fremework將中間代碼翻譯成機(jī)器可以執(zhí)行的二進(jìn)制代碼,才能夠使程序執(zhí)行,如果執(zhí)行的代碼是相同的,NET Fremework則會(huì)調(diào)用曾經(jīng)存儲(chǔ)在緩存中的代碼,就可以不需要進(jìn)行二次編制就可以執(zhí)行,這樣的設(shè)計(jì)能夠更快的提高執(zhí)行的速度和效率。
上述提到NET Fremework對(duì)C#語言的執(zhí)行的重要性,那么NET Fremework又為何物?NET Fremework被稱為NET框架,是一種能夠快速應(yīng)用化、便捷化、網(wǎng)絡(luò)化、獨(dú)立化的開發(fā)平臺(tái),其能夠支持多種編程語言,如C++、C#、VB等,其作為一種開發(fā)環(huán)境架構(gòu),提供了大部分語言必要的開發(fā)工具和功能,正由于這些特性使得其能夠被廣泛的運(yùn)用。
3 基于C#平臺(tái)開發(fā)數(shù)字水印系統(tǒng)
3.1 數(shù)字水印圖像處理方式
1) Bitmap類圖像處理
Bitmap類圖像處理其主要是在Bitmap類中封裝了一個(gè)位圖,由圖像和屬性像素信息數(shù)據(jù)等組成,主要包含了設(shè)定像素顏色、獲得像素顏色、返回像素格式、獲得顏色調(diào)色板、返回高度和寬度,鎖定內(nèi)層的位圖像素、鎖定內(nèi)層里的位圖像素,這些都是對(duì)圖像的基本形狀和像素進(jìn)行處理。當(dāng)然在處理過程中既有設(shè)定顏色和像素,也有調(diào)色板進(jìn)行顏色調(diào)色,使得位圖的像素處理滿足設(shè)計(jì)者的需求,從而更加滿足設(shè)計(jì)者的要求[5]。endprint
2) BitmapData類圖像處理
BitmapData類在描述圖像的時(shí)候,主要是描述被鎖定位圖的主要屬性,包含了返回高度、返回寬度、像素格式、返回被鎖定位圖的首字節(jié)位置以及掃描寬度等。
3) Graphics類圖像處理
Graphics類圖像處理是C#圖像類處理的GDI核心,其定義了繪制和填充圖形的方法屬性,程序在進(jìn)行圖像繪畫的時(shí)候,必須調(diào)用Graphics類進(jìn)行圖像處理。
此三種圖像處理方法在數(shù)字水印中占據(jù)著非常重要的作用,在整個(gè)系統(tǒng)中都需要使用各類圖像處理方法。
3.2 水印信息加解擾碼算法
在加擾編碼過程中,水印變換設(shè)計(jì)中可以起到對(duì)圖像能量擴(kuò)散的效果,使得原來的圖像能量集中在水印信息中,并且擴(kuò)散為一串偽隨機(jī)的m序列,而且具備了一定水印信息的防篡改能力[6]。選取多項(xiàng)式(20 3 0)的m序列作為加擾多項(xiàng)式,將水印圖像像素信息轉(zhuǎn)變?yōu)锽yte型數(shù)組,然后依次將Byte型數(shù)組輸入(20 3 0)移位寄存器進(jìn)行加擾。其具體算法為:
private void scramble(byte[] watermark)//自同步加擾
{ int i,j;//中間循環(huán)變量
//開辟一個(gè)21長(zhǎng)度的byte型數(shù)組來儲(chǔ)存移位寄存器的狀態(tài),
byte[] poly = new byte[21];
//初始狀態(tài)
for (i = 0;i < poly.Length; i++)
{ poly[i] = watermark[i]; }
//申請(qǐng)移位寄存器的輸出值
byte temp;
//開始進(jìn)行加擾
for (i = 0; i < watermark.Length; i++ )
{ if (i < watermark.Length - 20)
{ //移位寄存器的輸出
//(20 3 0)的移位寄存器的計(jì)算輸出值
temp = poly[i] ^ poly[i + 17] ^ poly[i + 20];
//輸出與原序列進(jìn)行模運(yùn)算,用來加擾
watermark[i] = watermark[i] ^ temp;
//對(duì)移位寄存器狀態(tài)進(jìn)行左移置位
for (j = 20;j < 1;j—)
{ poly[j] = poly[j-1];//所有數(shù)據(jù)左移一位}
poly[0] = temp; //將上一次移位寄存器的輸出作為新的狀態(tài)里的第一位
}
else
{ //移位寄存器的輸出
temp = poly[i] ^ poly[i + 17] ^ poly[i + 20];
//輸出與原序列進(jìn)行加擾
watermark[i] = watermark[i] ^ temp;
//對(duì)移位寄存器狀態(tài)左移置位
for (j = 20; j < 1; j—)
{ poly[j] = poly[j - 1];}//所有數(shù)據(jù)左移一位
poly[0] = 0x00;//將0x00作為新的狀態(tài)里的第一位
} } }
本次主要針對(duì)水印技術(shù)在具體的現(xiàn)實(shí)實(shí)現(xiàn)和應(yīng)用進(jìn)行分析,首先是基于C#平臺(tái)的安全性和代碼編碼安全性基礎(chǔ),選取了數(shù)字圖像處理算法,最終將內(nèi)存法作為開發(fā)的基本算法。隨后從詳細(xì)算法中實(shí)現(xiàn)、算法流程多個(gè)角度進(jìn)行水印變換算法,將經(jīng)典的算法進(jìn)行改良。
4 結(jié)束語
近年來,數(shù)字水印技術(shù)的在圖像處理技術(shù)在通信領(lǐng)域獲得了極其重要的進(jìn)展,該文主要針對(duì)其基本的理論知識(shí)以及相應(yīng)的發(fā)展?fàn)顩r進(jìn)行綜述。另外針對(duì)C#平臺(tái)上得數(shù)字水印技術(shù)系統(tǒng)的開發(fā)設(shè)計(jì)等進(jìn)行詳細(xì)研究,介紹了在數(shù)字水印技術(shù)中的三種圖像處理技術(shù)以及水印信息加解擾碼算法的具體編碼應(yīng)用。
參考文獻(xiàn):
[1] 劉竹松,陳平華,劉怡俊.混沌數(shù)字水印技術(shù)研究進(jìn)展[J].計(jì)算機(jī)應(yīng)用研究,2011(01):1-5,9.
[2] 吳金海,林福宗.基于數(shù)字水印的圖像認(rèn)證技術(shù)[J].計(jì)算機(jī)學(xué)報(bào),2004(09):1153-1161.
[3] 吳亞坤,邸春紅.數(shù)字水印技術(shù)綜述[J]. 遼寧大學(xué)學(xué)報(bào),2010(03):202-206.
[4] 馬秀瑩,林家駿.數(shù)字水印系統(tǒng)性能評(píng)價(jià)研究的現(xiàn)狀與展望[J].計(jì)算機(jī)工程與設(shè)計(jì),2009(22):5233-5238.
[5] 李雷達(dá).數(shù)字水印抗幾何攻擊理論及應(yīng)用研究[D].西安電子科技大學(xué),2009.
[6] 駱婷.魯棒圖像數(shù)字水印算法和數(shù)字水印協(xié)議研究[D].華中科技大學(xué),2010.endprint