999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Easter EGG算法的軟件水印實現(xiàn)

2018-01-06 00:59:47李天科
電腦知識與技術(shù) 2017年35期

李天科

摘要: 隨著軟件產(chǎn)業(yè)的迅速發(fā)展,軟件版權(quán)的保護(hù)已成為亟待解決的問題。分析了軟件版權(quán)保護(hù)的重要性和必要性,給出了軟件水印模型,介紹了DM軟件水印算法和Easter EGG軟件水印算法,借鑒了DM軟件水印算法中水印信息預(yù)處理方法,同時借鑒了Easter EGG軟件水印算法,給出了一種軟件水印實現(xiàn)的方法,并對實現(xiàn)的結(jié)果做了分析。

關(guān)鍵詞: DM算法;Easter EGG算法;軟件水印

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)35-0116-02

隨著計算機(jī)軟件技術(shù)的發(fā)展,計算機(jī)軟件已經(jīng)成為國家的基礎(chǔ)性、戰(zhàn)略性產(chǎn)業(yè)。計算機(jī)軟件在促進(jìn)國民經(jīng)濟(jì)和社會發(fā)展、轉(zhuǎn)變經(jīng)濟(jì)增長方式、提高經(jīng)濟(jì)運(yùn)行效率、推進(jìn)信息化與工業(yè)化融合等方面具有重要的地位和作用。同時,隨著計算機(jī)網(wǎng)絡(luò)的普遍應(yīng)用,計算機(jī)網(wǎng)絡(luò)為軟件產(chǎn)品的傳播帶來了極大的便利,普通用戶可以隨時通過網(wǎng)絡(luò)下載、復(fù)制、分發(fā)軟件。

然而,在網(wǎng)絡(luò)環(huán)境下,軟件產(chǎn)品的非授權(quán)復(fù)制和分發(fā)現(xiàn)象越來越多,軟件的盜版、篡改日趨泛濫。這不僅給軟件產(chǎn)品的開發(fā)企業(yè)、分銷商和服務(wù)商帶來極大的經(jīng)濟(jì)損失,同時,這也不利于軟件產(chǎn)業(yè)的持續(xù)發(fā)展,容易引發(fā)諸多的計算機(jī)安全問題。因此,軟件產(chǎn)品的版權(quán)保護(hù)技術(shù)是軟件產(chǎn)業(yè)界和學(xué)術(shù)界長期研究的主要問題。

軟件水印是20世紀(jì)90年代出現(xiàn)的一種源于數(shù)字水印技術(shù)的軟件版權(quán)保護(hù)技術(shù),受到國內(nèi)外許多學(xué)者的重視,出現(xiàn)了不少研究成果。但是這些研究主要集中在完善軟件水印理論以及構(gòu)造新的或者改進(jìn)原有的軟件水印算法,很少涉及到軟件水印的具體實現(xiàn)。本文基于Davidson-Myhrvold水印算法和Easter EGG水印算法,對軟件水印的具體實現(xiàn)做了簡單的嘗試。

1 軟件水印的概念、模型

1.1 概念

軟件水印是指不被感知地嵌入在軟件中的一段有標(biāo)識意義的信息[1],有標(biāo)識意義的信息既水印信息,可以是用來標(biāo)識作者、發(fā)行者、所有者、使用者身份的信息,也可以是其它能用來標(biāo)識版權(quán)的信息,如數(shù)字、字符串、圖片等;這里的軟件通常是指可執(zhí)行的應(yīng)用程序,

如java應(yīng)用程序經(jīng)過編譯之后生成的class文件、或者是有多個class文件經(jīng)打包后生成的jar文件、或者是Windows系統(tǒng)中可執(zhí)行的PE文件等,它們是軟件水印的載體。將水印信息嵌入到軟件中,需要驗證軟件版權(quán)的時候可以從載體軟件中提取出來,以證明該載體軟件所有者的版權(quán),并且在保持載體軟件的功能和語義不變的情況下難以去除所嵌入的水印消息,以達(dá)到軟件版權(quán)保護(hù)的目的。

1.2 模型

軟件水印的模型如圖1所示,主要包括:軟件水印信息的預(yù)處理、軟件水印信息的嵌入和軟件水印信息的提取。軟件水印信息的預(yù)處理是將代表軟件版權(quán)的水印信息或標(biāo)識有用戶身份的水印信息(w),應(yīng)用某算法進(jìn)行處理,如使用Knuth算法將整數(shù)水印信息轉(zhuǎn)換成長度為t的排列,使用Graph-Theoretic算法將整數(shù)信息編碼成為圖等等,通過這樣的預(yù)處理能提高水印信息的隱蔽性。水印信息的嵌入是應(yīng)用嵌入算法將預(yù)處理后的水印信息(w)嵌入到軟件P中,形成攜帶有特殊水印信息的目標(biāo)軟件(Pw)。水印信息的提取是嵌入部分的逆過程,應(yīng)用相應(yīng)的提取算法從受保護(hù)的軟件(Pw)中提取出水印 信息(w'),再經(jīng)過反預(yù)處理得到解密后的水印信息(w),或者應(yīng)用相應(yīng)的驗證算法驗證水印信息(w)是否存在于受保護(hù)的軟件(Pw)中,這兩種提取方法都可以證明軟件的版權(quán)。

2 軟件水印算法

2.1 DM軟件水印算法

DM軟件水印算法是Davidson和Myhrvold于1996年提出的是最早的軟件水印算法,該算法通過對程序流程圖中的基本塊進(jìn)行重排嵌入水印信息。其基本思想是將水印信息轉(zhuǎn)換成一個唯一的序列,在程序中選取指定個數(shù)的基本塊,選取的基本塊的個數(shù)不小于序列的長度,按照序列的順序?qū)緣K在程序流程中的位置進(jìn)行重排,然后在基本塊中加入分支指令,保持基本塊原始的執(zhí)行順序,從而確保程序的功能不變。

DM算法的缺點是提取水印信息需要提供原始程序,將原始程序的流程圖與嵌入了水印信息程序的流程圖進(jìn)行比較。同時還需要知道水印信息序列的長度或水印信息的值才能正確的提取。

2.2 Easter Egg軟件水印算法

Easter Egg軟件水印算法的基本思想是將水印信息隱藏在源程序中,水印信息可以是一個字符串、一幅圖像、一段動畫或者是一段視頻。驗證軟件版權(quán)的時候,需要運(yùn)行該應(yīng)用程序,并輸入一個特定的序列,激活與水印相關(guān)的代碼,水印信息就會呈現(xiàn)在屏幕上。

Easter EGG水印信息在應(yīng)用程序設(shè)計階段或者實現(xiàn)階段嵌入,水印信息提取的實現(xiàn)代碼也封裝在應(yīng)用程序中,水印信息的提取需要特定的輸入并在程序運(yùn)行過程中實現(xiàn),因此,Easter Egg水印算法屬于動態(tài)軟件水印算法。Easter EGG水印的優(yōu)點是不容易受到扭曲攻擊,缺點是水印容易被定位,一旦特定的輸入序列被發(fā)現(xiàn),采用標(biāo)準(zhǔn)的調(diào)試技術(shù)就可以跟蹤可執(zhí)行代碼中水印的位置,然后可以將其移除或者使其失效。

3 軟件水印實現(xiàn)

3.1 軟件水印實現(xiàn)思想

借鑒DM算法中水印信息的處理方法,選取一個數(shù)字做水印信息,在應(yīng)用程序中將該水印數(shù)字轉(zhuǎn)換成對應(yīng)的序列,保存在數(shù)組中。需要驗證應(yīng)用程序版權(quán)的時候,啟動該應(yīng)用程序啟動,在登錄界面的用戶名欄輸入水印信息,在密碼欄輸入包含有水印序列數(shù)字和其他字符組成的密碼,應(yīng)用程序從輸入的密碼中提取數(shù)字序列,與水印數(shù)字轉(zhuǎn)換成的序列進(jìn)行對比,若相同則輸出驗證成功的提示信息。

3.2 軟件水印實現(xiàn)過程

1) 水印信息的預(yù)處理

利用permute算法將水印信息轉(zhuǎn)換成一個唯一的序列,其實現(xiàn)的核心代碼如下:

private static int[] permute(int i, int array[]) {

// i表示水印信息;array[]存放轉(zhuǎn)換后的序列;t表示水印序列的長度。

int s;

for (int a = 2; a < t; a++) {

s = i % a;

i = i / a;

int j = array[a - 1];

array[a - 1] = array[s];

array[s] = j; }

return array; }

2) 水印信息的嵌入與提取

借鑒Easter EGG算法,將水印信息處理方法、密碼處理方法,提示信息的輸出方法分散在應(yīng)用程序源代碼中的不同位置。需要驗證版權(quán)時,輸入水印信息和密碼,從密碼中采用正則表達(dá)式提取水印數(shù)字序列,然后與調(diào)用permute()方法轉(zhuǎn)換的序列進(jìn)行比較,兩者相同則輸出提示信息。核心代碼如下:

private static String toNumString(String str){

//str輸入的密碼字符串

String a=str;

String regEx="[^0-9]";

Pattern p = Pattern.compile(regEx);

Matcher m = p.matcher(a);

String s = m.replaceAll("").trim();

return s; }//s水印數(shù)字序列字符串

4 結(jié)果分析

1) DM算法中提取水印信息,需要將嵌入了水印的程序與原始程序進(jìn)行比對,找出重排的基本塊,同時還要知道重排的基本塊的個數(shù),因為重排的基本快個數(shù)不同表示的水印信息也不同。DM算法實現(xiàn)困難,無法抵抗扭曲攻擊。本文借鑒了DM算法中水印信息的預(yù)處理方法,實現(xiàn)簡單。由于沒有基本塊的重排,所以能抵抗扭曲攻擊。

2) 借鑒了Easter Egg算法,通過一個特殊的輸入激活水印信息的輸出,如在應(yīng)用程序運(yùn)行的登錄界面用戶名欄輸入數(shù)字7,密碼欄輸入:re3j4cx12k5zZ6p7m。生成的水印序列與密碼中提取的序列相同,屏幕上輸出提示信息。Easter EGG算法實現(xiàn)簡單,但是容易受去除攻擊,本文將水印信息處理方法、密碼處理方法、提示信息輸出方法分布在源程序的不同位置,對抵抗去除攻擊有所改善。

3) 對水印序列與密碼中提取的數(shù)字序列匹配成功后,輸出的提示信息進(jìn)行變換,如輸出一幅特定的圖像或者演示一段動畫,可以用這個特定的圖像或者動畫表示該應(yīng)用程序的版權(quán)信息。

參考文獻(xiàn):

[1] 王建明,王朝坤,余志偉.軟件保護(hù)技術(shù)[M].北京:清華大學(xué)出版社,2013.

[2] 王葉茂,車生兵.軟件水印及其研究現(xiàn)狀概述[J].計算機(jī)應(yīng)用與軟件,2015,32(4):6-10.

[3] 楊建龍,王建民,李德毅.軟件水印技術(shù)及其新進(jìn)展[J]. 計算機(jī)工程,2007,33(17):168-175.

[4] 張立和,楊義先,鈕心忻.軟件水印綜述[J]. 軟件學(xué)報,2003,14(2):268-277.

[5] 羅養(yǎng)霞,房鼎益. 多水印技術(shù)在軟件版權(quán)管理中的應(yīng)用研究[J].計算機(jī)科學(xué),2011, 38 (10):103-109.

主站蜘蛛池模板: 青青青草国产| 免费欧美一级| 午夜欧美在线| 2020久久国产综合精品swag| 国产黑人在线| 67194在线午夜亚洲| 日韩精品高清自在线| 55夜色66夜色国产精品视频| 国产一级毛片在线| 日韩欧美成人高清在线观看| 亚洲精品无码高潮喷水A| 原味小视频在线www国产| 欧美va亚洲va香蕉在线| 理论片一区| 中文字幕永久视频| 毛片最新网址| 欧美激情福利| 中文字幕无码电影| 国产精品9| 国产激情影院| www.亚洲一区| 天堂久久久久久中文字幕| 国产美女叼嘿视频免费看| 国产精品精品视频| 天堂网亚洲系列亚洲系列| 少妇精品网站| 亚洲一区二区视频在线观看| 国产va免费精品观看| 又粗又大又爽又紧免费视频| 国产美女精品一区二区| 91在线中文| 国产69精品久久久久妇女| 在线观看无码av五月花| 免费A级毛片无码免费视频| 亚洲欧洲日韩综合色天使| 天天干天天色综合网| 久久人人妻人人爽人人卡片av| 在线一级毛片| 婷婷六月天激情| 动漫精品啪啪一区二区三区| 成年人国产网站| 欧美成人看片一区二区三区| 亚洲va在线观看| 国产午夜精品一区二区三区软件| 亚洲最大福利视频网| 伊人久久大香线蕉aⅴ色| 国产成人高清亚洲一区久久| 亚洲美女一区| 国产精品永久不卡免费视频| 国产精品不卡片视频免费观看| 美臀人妻中出中文字幕在线| 国产在线无码av完整版在线观看| 在线观看亚洲成人| 九九九九热精品视频| 久久中文字幕2021精品| 五月天在线网站| 青青网在线国产| 最新精品久久精品| 91精品福利自产拍在线观看| 色有码无码视频| 亚洲日本www| 日本a级免费| 国产真实乱人视频| 国产成人在线无码免费视频| 国产乱子伦视频在线播放| 日韩区欧美国产区在线观看| 五月天婷婷网亚洲综合在线| 一级毛片基地| 国产成人精品2021欧美日韩 | 99精品国产电影| 亚洲天堂成人| 丰满人妻久久中文字幕| 91黄色在线观看| 国产一区二区精品高清在线观看| 黄片在线永久| 欧美a在线| 超级碰免费视频91| 欧美国产日产一区二区| 国产第一页免费浮力影院| 日本午夜精品一本在线观看| 欧美视频免费一区二区三区| 国产成人资源|