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