專利名稱:一種圖像數(shù)字水印的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)安全技術(shù)領(lǐng)域,尤其涉及一種圖像數(shù)字水印的實(shí)現(xiàn)方法。
背景技術(shù):
數(shù)字水印技術(shù)的概念來源玉密碼加密技術(shù)的基本概念,對(duì)于密碼,簡(jiǎn)單地說它就是一組含有參數(shù)k的變換E。設(shè)已知信息m,通過變換Ek得密文c,即c = Ek (m)這個(gè)過程稱為加密,參數(shù)k稱之為密鑰。加密算法E確定之后,由于密鑰k不同, 密文C也不同。當(dāng)然不是所有含參數(shù)k的變換都可以作為密碼,它要求計(jì)算Ek(Hl)不困難, 而且若第三者不掌握密鑰k,即使截獲了密文C,他也無法從C恢復(fù)信息m,也就是反過來從 c求m極為困難。以后稱m為明文。因此,傳統(tǒng)的保密通信機(jī)理如圖1所示,通信雙方一為發(fā)信方,或簡(jiǎn)稱為發(fā)方,另 一方為收信方或簡(jiǎn)稱為收方。從密文c恢復(fù)明文m的過程稱之為解密。解密算法D是加密 算法E的逆運(yùn)算,解密算法也是含參數(shù)k的變換。傳統(tǒng)密碼加密用的密鑰k與解密用的密 鑰k是相同的,所以有時(shí)也叫對(duì)稱密碼。通信雙方用的密鑰k是通過秘密方式由雙方私下 約定產(chǎn)生的,只能由通信雙方秘密掌握。例如,設(shè)已知明文m為during the last twenty years there has been an explosion of public academicresearch in cryptography明文的意思是“近20年對(duì)密碼學(xué)的公開研究已急劇增加?!毕葘⒚魑姆殖?個(gè)字符一組得durin gthel asttw entyy earst hereh asbee nanex plosi onofp ublic acade micresearc hincr yptog raphy再將每組按相反順序?qū)懴?,例如durin,倒過來寫成nirud,于是得密文c如下nirudlehtgwttsayytnetsraehereheebsaxenanisolppfonociIbuedacaercimcrae srcnihgotpyyhpar保密通信進(jìn)入計(jì)算機(jī)網(wǎng)絡(luò),傳統(tǒng)密碼便暴露出它的嚴(yán)重弱點(diǎn)。傳統(tǒng)密碼要求通信 雙方用的密鑰是通過秘密信道私下商定的。網(wǎng)上若有η個(gè)用戶,如η = 1000時(shí),C(1000,2) =1000*(1000-1)/2 = 499500。這么多的密鑰的管理和必須的更換都將是十分繁重的工 程。更有甚者,每個(gè)用戶必須記下與其他n-1個(gè)用戶通信所用的密鑰,數(shù)量如此之大,只能 記錄在本上或儲(chǔ)存在計(jì)算機(jī)內(nèi)存或外存上,這本身就是極不安全的??梢?,傳統(tǒng)安全認(rèn)證密鑰體制中,嵌入的認(rèn)證信息采用諸如RSA之類的傳統(tǒng)公鑰 體制,嵌入在圖像信息中的公鑰部分為簡(jiǎn)單的0,Ibit數(shù)據(jù)流,沒有任何語言意義,從而導(dǎo) 致公鑰本身是否對(duì)應(yīng)于簽名人這個(gè)問題也需要認(rèn)證,這樣就增加了安全認(rèn)證系統(tǒng)的開銷和 管理風(fēng)險(xiǎn)。
發(fā)明內(nèi)容
本發(fā)明的目的是公開一種圖像數(shù)字水印加密技術(shù)方案,用于對(duì)于圖像的數(shù)字簽名的加密和認(rèn)證。本發(fā)明的技術(shù)方案是這樣的,即一種數(shù)字水印的實(shí)現(xiàn)方法,用于對(duì)于圖像的數(shù)字 簽名的加密和認(rèn)證,所述圖像包括頭信息A、數(shù)據(jù)區(qū)B、公鑰信息C和簽名結(jié)果D,所述公鑰信 息C和簽名結(jié)果D被均勻的嵌入圖像的數(shù)據(jù)區(qū)B中,包括以下步驟第1步,用戶獲得有一個(gè)公鑰和一個(gè)私鑰,公鑰用來給其他任何得到該圖片的人 進(jìn)行簽名驗(yàn)證,私鑰是用來對(duì)所述圖像進(jìn)行簽名蓋章;第2步,利用所述私鑰對(duì)所述圖像包含的信息簽名得到簽名信息D,使用所述私鑰 對(duì)所述圖像的數(shù)據(jù)區(qū)B的hash值和公鑰信息C的結(jié)合體進(jìn)行簽名,得到簽名結(jié)果D,最后將 公鑰信息C和簽名結(jié)果D同時(shí)遷入所述圖像中;第3步,通過基本水印算法提取嵌入在所述圖像數(shù)據(jù)區(qū)B中的公鑰信息C和簽名 結(jié)果D,并對(duì)所述公鑰C和簽名結(jié)果D進(jìn)行驗(yàn)證。本發(fā)明采用了 ID-based公鑰加密算法的基于身份的簽名體制,公開秘鑰可以為 任意字符串,即公鑰信息可以具有語言意義,使得公鑰替換攻擊實(shí)效,公鑰的發(fā)布問題也相 應(yīng)得到了很好的解決。
圖1是現(xiàn)有技術(shù)中傳統(tǒng)保密通信機(jī)制原理示意2是本發(fā)明一實(shí)施例中24位BMP圖片嵌入水印的原理3是本發(fā)明一實(shí)施例中公私鑰分配示意4是本發(fā)明一實(shí)施例中水印嵌入流程5是本發(fā)明一實(shí)施例中的水印認(rèn)證流程圖
具體實(shí)施例方式以下對(duì)本發(fā)明涉及的密碼學(xué)原理和概念以及本發(fā)明的技術(shù)方案的具體實(shí)施方式
結(jié)合附圖做詳細(xì)說明。Diffie和Hellman在《密碼學(xué)新方向》這篇文章中提出的公鑰密碼的思想若每 一用戶A有一加密密鑰Ka不同于解密密鑰Ka’,可將加密密鑰Ka公開,Ka’保密,當(dāng)然要求 Ka的公開不至于影響Ka’的安全。若B要向A保密送去明文m,可查A的公開密鑰Ka,若用 Ka加密得密文C = EKa (m)A收到C后,用只有A自己才掌握的解密密鑰Ka’對(duì)C進(jìn)行解密得m = DKa’ (C)由于加密密鑰Ka不同于解密密鑰Ka’,所以公鑰密碼也叫做非對(duì)稱密碼,以區(qū)別 于傳統(tǒng)對(duì)稱密碼。任何第三者雖然截獲密文C,由于無法從公開的加密密鑰Ka推出解密密 鑰Ka’,故無法恢復(fù)明文m。關(guān)于RSA算法,Rivest、Shamir、Adleman。RSA的基礎(chǔ)是數(shù)論的歐拉定理,它的安 全性依賴于大數(shù)的因數(shù)分解的困難性。
公私鑰Kpub、Kpri數(shù)學(xué)相關(guān),有如下性質(zhì)由Kpub* — Kpri (由公鑰不能推導(dǎo)出私鑰);由Kpri — Kpub (由私鑰能推導(dǎo)出公鑰);DKpri(EKpub(m)) = m;DKpub(EKri(m)) =m;EKri(m) = C成為數(shù)字簽名過程,關(guān)于ID-based公鑰加密算法,該算法區(qū)別于傳統(tǒng)RSA算法的獨(dú)特優(yōu)勢(shì)是其公開 秘 鑰可以為任意字符串。原本RSA體系中公鑰必須發(fā)布到人手一份其他人的公鑰。耗費(fèi)的財(cái) 力非常巨大,即建立PKI體系的成本相當(dāng)高,但是當(dāng)使用ID-base體制之后,公鑰信息變得 有語言意義。即公鑰替換攻擊實(shí)效,公鑰的發(fā)布問題等也相應(yīng)得到了解決,因而具有非常的 領(lǐng)先優(yōu)勢(shì)。關(guān)于單向函數(shù),易計(jì)算的數(shù)學(xué)函數(shù)f,但對(duì)值域內(nèi)的一般值y,從定義域內(nèi)找到一 個(gè)符合f(x) =y的X計(jì)算非常困難。有可能存在少量y,找到符合條件的X計(jì)算并不困難。關(guān)于Hash函數(shù),一種將大量(很可能非常大量)數(shù)據(jù)映射到較小量數(shù)據(jù)的數(shù)學(xué)函 數(shù),一個(gè)“好”的hash函數(shù)應(yīng)該將hash的結(jié)果隨機(jī)均勻分散到結(jié)果域(空間)的范圍。使用普遍的HASH函數(shù)有SHAl、MD5、MD2。HASH函數(shù)是高質(zhì)量的單向函數(shù),滿足對(duì)原信息的少量改動(dòng)(即使是一個(gè)BIT),可 以導(dǎo)致結(jié)果的巨大變化。SHAl 的結(jié)果是 20BYTES,160BITS,結(jié)果空間為 2**160 ;MD5 的結(jié)果是 16BYTES,128BITS,結(jié)果空間為 2**128 ;MD2 的結(jié)果是 16BYTES,128BITS,結(jié)果空間為 2**128 ;因?yàn)榻Y(jié)果空間的容量是有限的,而被摘要的數(shù)據(jù)空間是無限的,所以肯定有對(duì)不 同數(shù)據(jù)的輸入,有相同的HASH結(jié)果。(HASH函數(shù)的結(jié)果均勻分散和單向函數(shù)性質(zhì)保證了這 種情況的小概率性,尤其不可以人為改動(dòng)輸入導(dǎo)致HASH結(jié)果相同)關(guān)于數(shù)字簽名和驗(yàn)證,設(shè)信息的發(fā)送方具有一對(duì)密鑰對(duì)Kpub、Kpri,同時(shí)信息的接 收方已經(jīng)通過某種途徑得到了發(fā)送方的公鑰Kpub,發(fā)送方通過某種摘要算法將明文信息M 進(jìn)行摘要運(yùn)算,得到信息M的摘要m,再將私鑰Kpri對(duì)m進(jìn)行加密運(yùn)算,得到密文C,發(fā)送方 將明文M和密文C 一起發(fā)送到接收方。明文M和密文C 一起稱為數(shù)字簽名。接收方接收到信息后,拆解數(shù)據(jù)包為M和C兩部分(根據(jù)信息傳輸?shù)膮f(xié)議決定數(shù) 據(jù)包的結(jié)構(gòu)),使用同發(fā)送方相同的摘要算法,接收方將信息M進(jìn)行摘要運(yùn)算,得到信息的 摘要m’ (應(yīng)該和m相同)。接收方再用發(fā)送方的公鑰Kpub對(duì)密文C進(jìn)行解密運(yùn)算,得到信 息m”(應(yīng)該同m相同)。通過比較m’和m”是否相同,驗(yàn)證發(fā)送方的數(shù)字簽名。因此數(shù)字 簽名具有不可抵賴性,不可篡改性。如圖2所示,圖片為24位BMP圖片嵌入水印的原理圖。其中A部分是圖像的頭信 息,一般不作為認(rèn)證的信息參考來源,B為圖像的數(shù)據(jù)區(qū),即認(rèn)證的目的即防止B部分被改 變,導(dǎo)致圖像的表達(dá)意義發(fā)生變化,C,D區(qū)域?yàn)榍度氲恼J(rèn)證水印部分。本發(fā)明采用了數(shù)字簽 名技術(shù)已保證對(duì)數(shù)據(jù)區(qū)的認(rèn)證,其中C是公鑰部分,D是簽名結(jié)果。二者都將被均勻的嵌入 圖像的數(shù)據(jù)區(qū)B中,即C和D區(qū)域是分布在數(shù)據(jù)區(qū)B中的。水印簽章(電子蓋章)的過程可以分為以下若干步驟
第1步、如圖3,先得到公私鑰,即系統(tǒng)中的每一個(gè)用戶都有一個(gè)公鑰,一個(gè)私鑰, 公鑰用來給其他任何得到該圖片的人進(jìn)行簽名驗(yàn)證,私鑰是用來對(duì)圖像進(jìn)行蓋章,其存儲(chǔ) 必須保密,否則別人可能盜用該私鑰仿冒原擁有者蓋章。第2步、如圖4,對(duì)圖像進(jìn)行簽章,即行使電子印章蓋章的權(quán)利。
參考上面的基本圖像結(jié)構(gòu)圖,簽名的過程即,利用私鑰SK對(duì)圖像信息簽名得到D 的過程,為了保證認(rèn)證的安全性,對(duì)公鑰也進(jìn)行簽名,即使用私鑰SK對(duì)圖像位圖信息B的 hash值和公鑰信息C的結(jié)合體進(jìn)行簽名,得到簽名結(jié)果D,最后將公鑰信息C和簽名結(jié)果D 同時(shí)遷入圖片中。第3步、如圖5,驗(yàn)證圖片的簽名過程首先需要通過基本水印算法將嵌入的簽名信 息提取出來,即得到第2步中隱藏在圖像位圖信息B中的簽名信息C和D,得到公鑰C和簽 名結(jié)果D之后就可以驗(yàn)證了。上述驗(yàn)證方法的安全性基本原理,即防改動(dòng)原理如果圖像信息B發(fā)生改變,則 hash值發(fā)生變化,導(dǎo)致驗(yàn)證失敗,如果公鑰信息D發(fā)生變化,導(dǎo)致公私鑰不對(duì)應(yīng),顯然失敗, 如果簽名結(jié)果D發(fā)生了改變,則D不再是數(shù)據(jù)信息B的簽名,則驗(yàn)證失敗。根據(jù)上述方法實(shí)現(xiàn)的加解密軟件可以按照以下步驟展開1、個(gè)人用戶申請(qǐng)秘鑰,用戶負(fù)責(zé)生成秘鑰對(duì)的人(可以是該部門的最高負(fù)責(zé)人) 提出秘鑰申請(qǐng),該用戶需提供身份證信息,即需要證實(shí)其身份信息。然后公鑰即輸入的身份 信息,如姓名,職位,身份證號(hào)等。這些信息必須能唯一確定這個(gè)簽名人,比如身份證號(hào)碼即 可以唯一確定一個(gè)人。點(diǎn)擊確定之后,生成一個(gè)key. txt的文件,里面包含了用戶的公鑰和 私鑰信息。2、對(duì)于電子蓋章,運(yùn)行主程序,用戶利用自己的秘鑰key. txt,對(duì)圖片進(jìn)行蓋章,證 實(shí)這個(gè)圖片的信息有效。首先打開要進(jìn)行電子蓋章的圖片,圖片打開之后選擇秘鑰文件。選 擇自己的秘鑰之后,圖片完成水印嵌入的過程,即完成電子印章的嵌入,嵌入之前的圖片與 之后的圖片將對(duì)比顯示,同時(shí)系統(tǒng)要求給與一個(gè)地址以便存放新產(chǎn)生的已經(jīng)被嵌入認(rèn)證信 息的圖片。3、當(dāng)用戶得到一幅圖片時(shí)候,需要得到這幅圖片簽名信息時(shí),對(duì)圖片進(jìn)行驗(yàn)證,以 考證這幅圖片是否已經(jīng)被上級(jí)領(lǐng)導(dǎo)或相關(guān)人員實(shí)施了電子蓋章。通過程序的菜單先導(dǎo)入需 要認(rèn)證的圖片,進(jìn)行水印提取。若認(rèn)證結(jié)果為成功,則顯示簽名人的身份信息。4,對(duì)于修改的圖片認(rèn)證將失敗,如果圖片被修改,即圖像數(shù)據(jù)區(qū)域發(fā)生變化,對(duì)圖 片進(jìn)行驗(yàn)證將會(huì)顯示失敗。對(duì)比在傳統(tǒng)體制中的加密原理,嵌入的認(rèn)證信息采用諸如RSA之類的傳統(tǒng)公鑰體 制,則嵌入在圖像信息中的公鑰部分,即C部分為簡(jiǎn)單的0,Ibit數(shù)據(jù)流,沒有任何語言意 義,從而導(dǎo)致公鑰本身是否對(duì)應(yīng)于簽名人這個(gè)問題也需要認(rèn)證,但是當(dāng)使用基于身份的簽 名體制后,公鑰信息可以為簽名人的身份信息的字符串,具有語言意義,這樣再驗(yàn)證的時(shí) 候,如果驗(yàn)證成功,返回給用戶公鑰信息C,則用戶就可以直接判斷簽名人的省份信息,如身 份證號(hào)碼,姓名等。
權(quán)利要求
一種圖像數(shù)字水印的實(shí)現(xiàn)方法,所述圖像包括頭信息A、數(shù)據(jù)區(qū)B、公鑰信息C和簽名結(jié)果D,所述公鑰信息C和簽名結(jié)果D被均勻的嵌入圖像的數(shù)據(jù)區(qū)B中,其特征在于,包括以下步驟第1步,用戶獲得有一個(gè)公鑰和一個(gè)私鑰,公鑰用來給其他任何得到該圖片的人進(jìn)行簽名驗(yàn)證,私鑰是用來對(duì)所述圖像進(jìn)行簽名蓋章;第2步,利用所述私鑰對(duì)所述圖像包含的信息簽名得到簽名信息D,使用所述私鑰對(duì)所述圖像的數(shù)據(jù)區(qū)B的hash值和公鑰信息C的結(jié)合體進(jìn)行簽名,得到簽名結(jié)果D,最后將公鑰信息C和簽名結(jié)果D同時(shí)遷入所述圖像中;第3步,通過基本水印算法提取嵌入在所述圖像數(shù)據(jù)區(qū)B中的公鑰信息C和簽名結(jié)果D,并對(duì)所述公鑰C和簽名結(jié)果D進(jìn)行驗(yàn)證。
全文摘要
本發(fā)明公開了一種圖像數(shù)字水印加密技術(shù)方案,包括步驟用戶獲得有一個(gè)公鑰和一個(gè)私鑰,公鑰用來給其他任何得到該圖片的人進(jìn)行簽名驗(yàn)證,私鑰是用來對(duì)所述圖像進(jìn)行簽名蓋章;利用所述私鑰對(duì)所述圖像包含的信息簽名得到簽名信息D,使用所述私鑰對(duì)所述圖像的數(shù)據(jù)區(qū)B的hash值和公鑰信息C的結(jié)合體進(jìn)行簽名,得到簽名結(jié)果D,最后將公鑰信息C和簽名結(jié)果D同時(shí)遷入所述圖像中;通過基本水印算法提取嵌入在所述圖像數(shù)據(jù)區(qū)B中的公鑰信息C和簽名結(jié)果D,并對(duì)所述公鑰C和簽名結(jié)果D進(jìn)行驗(yàn)證。本發(fā)明采用了ID-based公鑰加密算法的基于身份的簽名體制,即公鑰信息可以具有語言意義,公鑰的發(fā)布問題也相應(yīng)得到了很好的解決。
文檔編號(hào)H04L9/30GK101847249SQ20091004843
公開日2010年9月29日 申請(qǐng)日期2009年3月27日 優(yōu)先權(quán)日2009年3月27日
發(fā)明者郭圣 申請(qǐng)人:上海德通能源環(huán)??萍加邢薰?br>