資訊隱藏 LSB隱寫分析

2021-10-07 11:54:35 字數 2568 閱讀 2907

了解並實現常見的lsb隱寫分析法。

■實現針對lsb隱寫的卡方隱寫分析演算法,並分析其效能。

■實現針對lsb隱寫的rs隱寫分析演算法,並分析其效能。

1.卡方隱寫分析演算法

主要針對影象所有畫素點的lsb全嵌入情況;利用數理統計假設檢驗中的卡方檢驗模型來分析。

設影象中灰度值為j的象素數為hj,其中0≤j≤255。如果載體影象未經隱寫,h2i和h2i+1的值會相差很大。秘密資訊在嵌入之前往往經過加密,可以看作是0、1 隨機分布的位元流,而且值為0與1的可能性都是1/2。如果秘密資訊完全替代載體影象的最低位,那麼h2i和h2i+1的值會比較接近,可以根據這個性質判斷影象是否經過隱寫。

嵌入資訊會改變直方圖的分布,由差別很大變得近似相等,但是卻不會改變h2i+h2i+1的值,因為樣值要麼不改變,要麼就在h2i和h2i+1之間改變。

當2h2i*較大時,根據中心極限定理,下式成立:

所以,

結合卡方分布的密度計算函式計算載體被隱寫的可能性為:

如果p接近於1,則說明載體影象中含有秘密資訊。

2.rs隱寫分析演算法

對於乙個m*n畫素的,設各個畫素的值取自集合p,例如乙個8bit的灰度影象,p=。將這些畫素分為有著n個相鄰畫素的子集,例如n可以取值為4,記為g=(x1,x2,x3,x4)。進一步利用如下函式表示影象塊的空間相關性

定義集合p上的3個函式:

交換函式f1:

偏移函式f-1:

恒等變換f0:

引入偽裝m,它的取值範圍是-1,0,1。對應著

f-1,f0,f1三個變換函式。

當在載體中嵌入了秘密資訊的話,就會有下面的式子成立:

1.卡方分析

使用matlab來實現卡方分析演算法。

首先,將資訊隱藏進一張灰度圖中,注意首席資訊官度要足夠,否則會導致嵌入率過低引發的檢測失敗。

在這裡稍微分析一下kafang.m這個檔案。

與演算法的結構幾乎一模一樣,

上圖為計算卡方統計量和自由度的迴圈。

這裡則是計算

的部分**。

最後,根據p的值決定其是否為隱藏資訊後的。

當資訊的長度不足時,或者設定的判斷值p0不合理時,很容易出現判斷出錯。總的來說,不論是從我的**還是從演算法本身,卡方分析我認為僅僅適用於那種接近滿嵌的,他不適用於實際使用,但可以作為乙個評判標準。

2.rs分析

老規矩先來討論一下rs分析的實現。

我們使用的是跟上乙個實驗相同的嵌入函式,在這裡我覺得這並不影響我們的結果。

這裡是我自己寫的乙個rstest.m,其中包括獲取,利用rs演算法思想計算其嵌入率以及是否是嵌入資訊的。

我們不妨對照一下完全沒有嵌入的的結果,看得出來還是比較可觀的。

之所以結果是-0.07是因為,畢竟只是乙個估算值,應該允許其誤差。結果與0已經足夠接近了。

這部分是計算嵌入率的,與演算法中的思想完全一致,甚至引數我都沒有更換他們的名字。

這部分對應的是rs分析的三個函式,我都分別做了注釋,其中,**中的getpixelcorrelation是乙個外部函式:

其實很簡單,就是下圖的步驟:

在迴圈中,我們可以看到在不斷計算更新rn,rp,sn,sp的值,最後將作為rs.m的返回值返回給rstest.m。

當然需要解釋一下的是,img和img_1分別對應著原影象矩陣與lsb位取反的影象矩陣。

效能分析:

rs分析演算法相比於卡方分析,從實現的角度來說難了不少,必然有其存在的意義,他不僅能檢測是否是嵌入資訊的,還能夠估算出嵌入率。

但我覺得我個人的實現**比較粗糙,從效能的角度來說,演算法本身的效能必然是非常快速的,因為它不存在什麼迭代和巢狀迴圈。除此之外,由於本次實驗時間有限,我都是進行的灰度影象的檢測,rgb影象的檢測在之後的學習中有機會再進一步完善。

information_hidding

LSB隱寫加密MISC

沒有做過lsb隱寫加密的題目,在buuoj上面做到了就記錄一下,估計後面很長的時間都會在這個平台上面訓練自己的misc和web,是很好的平台,把很多比賽的原題和安恆的周賽的復現了。題目是misc裡面的 前面的zip隱寫就不說了,壓縮包注釋裡面的東西可見之後就可以拿到壓縮包密碼,接著我們獲得了一張女神...

資訊隱藏技術

資訊隱藏技術就是玩捉迷藏遊戲,把資訊隱藏起來。隱藏有兩種隱藏 lsb演算法 leastsignificantbit,最低有效位演算法 是將資訊嵌入到一張中去。中每個點都有乙個rgb值,將一張每個點rgb值的最低位連起來就得到乙個bit陣列,我可以解析這個bit陣列來獲得這張所隱含的資訊。編碼時,只需...

mysql sql 隱藏資訊

需求天天有,每天不一樣,今天主要介紹一下,只用mysql的內建函式實現資訊的隱藏 簡單列一下常用函式 傳送門 看看常用函式的用法 接下來講解一下怎麼個思路 首先,隱藏部分資訊 姓名,只顯示姓,如 張 李 王 首先,應該想到求長度,補齊這倆函式 求長度 char length u.real name ...