2007年3月29日 星期四

Steganography Software

Steganography Software

這個網站介紹提供了大量的資訊隱藏軟體的彙整
也包括了老師剛剛講的STEGO
有興趣的人就去看看吧!

[S-Tools]3/22上課筆記&心得

本篇依然是在3/29才po的= =
  其實我程式還沒寫完
  所以沒有圖
  之後在補一篇有的上來
上次(3/22)的課程討論到"Visual attack"和"如何判斷一張影像是亂的?"之後
其實我對Visual attack的和statistic attack之間的區別
還是有點模糊
我對於"如何判斷一張影像是亂的"還比較有想法
(其實我一直想到機率與統計裡面的標準差= =)
今天(3/29)跟小狐貍學長和鳥泰討論過後
我的想法跟鳥泰和小狐狸學長不太一樣
鳥泰是從灰階去看
然後去找在同一個範圍內灰階值一樣的給一樣的數字
 要封閉曲線喔
 如果同個灰階值但是不在同一個封閉曲線裡的話
 他的數字是不同的喔
我覺得跟之前蝌蚪學長教過的sobel比較像

而小狐貍學長的想法則是整張圖給個MASK
看在MASK中
黑色與白色出現的機率
在去做判斷
 學長目前也只有想到這邊

我的想法其實是比較偏向學長的
但是我覺得學長好像沒有討論到太過亂的情況
像這樣子

其實我覺得這可能是每個人對"亂"的定義不同
像上面這種圖在學長眼中就很亂
可是我就覺得他很整齊
  有點像物極必反吧...
  亂到一個極致就會變整齊嗎(?!)
  (跟標準差好像有點關係...)


我現在想到的做法也只有
1.先把RGB裡面24bit先分別表示出來
 再去找規律
2.我想到的找規律做法如下
 針對每個不是邊的pixel而言
 對他周圍的八個點去做處理
  那個處理應該跟每個點的權重有關吧...

資訊隱藏(5)

1. 探討如何寫程式判斷一張黑白影像是屬於 random pattern。
今天的主題是如何判斷分析出來的圖是亂的
我個人認為可以先將8個bits取出來之後
在比對原圖
如果這個bit和原圖接近
就表示他沒有藏資料
否則我就判斷他藏資料
因為在沒有藏資料的情況下
應該是跟原圖是一樣的
2. 探討 S-Tools 的破解方式。
如果把圖藏在顏色將比較相近的圖中
或許就不會被發現?

8-bit的解惑

我就我所知道的敘述一下,如果有錯麻煩請糾正我一下,謝謝~
灰階的圖每一個點都是由8個bit組成,LSB是將每一點的8個bit分開來取
所以可以變成8張分開來的圖,而資訊往往都藏在後面的4個bit

Week4,如何判斷一張圖是雜亂的

在探討這個問題之前我想必須先定義出
什麼是雜亂的圖形?
要多亂才叫做雜亂的圖形呢?
假設今天以bitplane裡的最小bit那種程度的雜亂作為標準的話
我想我會用空間的分佈模式來判斷ㄧ張圖片是否為雜亂的
也許我會建立一個3*3、5*5或9*9的遮罩
去對ㄧ張圖片做整張圖片的遮罩掃描
這個遮罩的功用就是要去判斷在此遮罩內的pixel是否為連續的?
如果經過遮罩的掃描過後判斷大部分的區塊都是連續的話那麼也許就可以判斷此張影像為非雜亂的
反之則為雜亂的,當然由於區塊組成的大小差異度很強所以遮罩ㄧ定不可只用一種size
可能會需要用多種不同size的遮罩來作共同的切割掃描

資訊隱藏(4)

在上了上禮拜的課程和看了一些同學的見解後
我個人認為Westfeld及Pfitzmann所提出的論文雖然可以判斷是否有藏資料
但你又不知道他是把資料藏在那個點之中
所以你一個一個去找
再來如果別人只藏一個bit的話或是這張圖是黑白的
那不就跟原圖差不多
還有
如果圖本身就是資料的話那麼分析這張圖並沒有意義

week4-8bit的迷思

有關於老師說的那個8bit我有點亂也不太懂ㄝ~
是把圖裡面的哪個8bit拿出來作分析???(印象中是最後的那8個bit,是嗎@@?)
如果是的話,那為什麼要取這8個bit???

我最近都在想說如何分析一張圖是隱藏過後的圖
用了3~4組圖分別分析隱藏前和隱藏後的差異
差異明顯最大的就是,顏色明顯都變的比較淺、平淡、黯淡
我用了比較淺的顏色和比較深的顏色去隱藏
但是顯示出來的結果是差不多
兩種都是一樣的平淡,並不會說深色的那一張變的更深
我反而覺得在隱藏過後的那些顏色更符合我們用肉眼所看出來的顏色
因為用原圖去分析,原圖所用的顏色都是很明亮的顏色,而我用眼睛看卻看不出來哪裡有明亮的感覺

week3:A Steganalytic Tool for S-Tools

下載A Steganalytic Tool for S-Tools

















black






















white
















black存入隱藏資訊後 以(atttmpt colour reduction mode)
















white存入隱藏資訊後 以(atttmpt colour reduction mode)















white


















black 存入隱藏資訊後 以(atttmpt colour reduction mode)

















black存入隱藏資訊後 以(covert to 24-bit image mode)


















while

















black 存入隱藏資訊後 以(atttmpt colour reduction mode)
















while存入隱藏資訊後 以(covert to 24-bit image mode)

使用S-tools作隱藏

S-Tools
下載位置
S-Tools 1.0 (Italy), Finland)
S-Tools 2.0 (Italy), Finland)
S-Tools 3.0 (Italy), Finland)
S-Tools 4.0 (Italy), Finland)
S-tools 使用方式

1.開啟時的畫面


2.將一個圖檔(*.bmp or *.gif)以拖曳的方式放入視窗

3.然後將要放入影藏的檔案也拖曳放入
就會跳出以下畫面

分別入密碼.確認密碼

和選擇加密方式

S-tools 4.0提共了4種加密方式有IDEA.DES.Triple DES及MDC
然後按下OK



4.選擇Save as.

將含有隱藏資訊的圖片存檔

















5.檔名後面必須加上原始檔的副檔名


















6.點選Reveal去解開檔案內隱藏的資訊

















7.輸入完密碼後就會跳出個視窗

顯示圖片內隱藏的檔案


















8.在檔案上選Save as就可以將隱藏的檔案取出了


















sample

http://mazda3.tw/hiden.bmp

1024*2048的bmp黨最大可隱藏799Byte的檔案
也嘗試過1024*2048的bmp黨 連續10次放入650-799Byte不等大小的檔案
不過肉眼看不出有失真

不過每次都只能解開最後放入隱藏的檔案

week1 資訊隱藏

引用http://www.symantec.com/region/tw/enterprise/article/steganography.html

資訊隱藏 (Steganography):高科技的隱藏訊息

要把極機密的訊息從甲方送到乙方,這可不是什麼新鮮事──尤其是在戰爭期間。通訊的方法只有隨著時間而日趨複雜。

隱藏訊息的其中一種方式是「資訊隱藏」(Steganography,或譯「隱匿法」),它的字面意義是「遮蔽所寫的字」,最早可追溯到古希臘時代。資訊隱藏就是幾千年來把訊息隱藏在圖畫、文字或物體之中的手法。這門古老的技藝和科學,如今已經應用在現代通訊系統上,變成傳送訊息而不讓人察覺的一種非常有效的方式。

資訊隱藏的起源
在古希臘時代,有人用過一種資訊隱藏,就是把侵略的警訊塗寫在書寫板蠟質層下方的木頭上──於是書寫板本身看起來就是空白的。只有目標收訊者知道,這張看起來空白的書寫板蠟質層下方帶有訊息。隱藏訊息的另一種方法,是把信差的頭剃光,而機密訊息就刺青在他的頭皮上。然後派遣信差出去,在前往目的地途中,他的頭髮就會長回來,抵達之後再把頭髮剃掉,訊息就會顯露出來。

第二次世界大戰期間,資訊隱藏最常見的形式,就是使用隱形墨水寫下機密訊息。當時用的「隱形墨水」常常是牛奶、果汁或尿液。把訊息一加熱,隱形墨水和寫在上面的機密訊息就會顯露出來。

隨著科技的發展,傳送機密訊息的方法也越來越先進。今日的恐怖分子再也不必擔心留下活動的證據,因為訊息現在可以藏在 Internet 上了。這和透過電子郵件傳送的加密訊息不同,資訊隱藏不會留下傳送者或收件者的記錄。

今日的資訊隱藏
今日資訊隱藏的高科技形式,包括把機密訊息隱藏在 Internet 上的影像或聲音檔案之中。如果要在一個電腦檔案(圖形、音訊、文字、HTML 或甚至軟碟磁片)內插入訊息,就必須使用專門的資訊隱藏軟體。這種軟體很容易取得──很多下載網站上都有這類免費軟體或共享軟體。軟體會把祕密的資訊弄亂,混進影像或聲音檔案中已存在但不重要的位元內,而這種變化不夠明顯,人類的眼睛或耳朵偵測不到。訊息可能只含有一位元偵測不到的聲音,或是在一張 JPEG 影像中改變幾個像素。在漫不經心的觀察者看來,影像或聲音的位元組看起來或聽起來並無任何異樣。他們幾乎完全不知道,網頁上其實埋有隱藏訊息。這些影像只有利用收信者選定的「私密金鑰」或密碼才能解開。否則,這些訊息是不可能看到、讀到或聽到的。


恐怖分子的工具
在攻擊世貿中心的 911 事件之前,歐薩瑪‧賓拉登和其他恐怖分子早就在使用資訊隱藏軟體來隱藏訊息了。2001 年 2 月 5 日的《USA Today》有一篇文章,報導外國和美國的官員曾說:「在 1998 年兩座東非美國大使館的炸彈攻擊事件中,賓拉登和其他人在休閒聊天室、色情佈告欄和其他網站藏入恐怖攻擊目標的地圖和照片,並且下達恐怖活動的指示。」

對於試圖追蹤並找出恐怖分子的執法機構而言,要偵測使用資訊隱藏隱藏起來的訊息,是一件高難度的技術挑戰。在 2003 財政年度的預算申請案中,聯邦調查局 (FBI) 要求提高相關的經費,以便協助他們跟上恐怖分子使用的新興科技。許多 FBI 探員需要取得監測使用資訊隱藏的技能,因此需要專門的訓練,而且若是要監視恐怖分子透過網路的通訊,在執行與管理電子監視支援方面也需要額外的經費。

資訊隱藏與加密有何差異
「密碼學」和「資訊隱藏」是兩種隱藏訊息的方法;雖然可以相輔相成,兩者卻是不同的。

密碼學 (Cryptography):密碼學可改變檔案或訊息的內容,讓除了目標收件者以外的每個人都無法閱讀。目標收件者握有「金鑰」,可以解開加密檔案的鎖,並以傳送者計劃的方式來檢視檔案。加密的訊息並不是隱藏的,而且訊息送進送出都有可能受到偵測或監視。一旦找出加密的方法,仍然需要破解密碼的人來找出金鑰,才可能將訊息解密。

資訊隱藏:您可以把資訊隱藏想成一種非常堅固的加密方式。而它隱藏訊息的方式,會讓觀察者也許根本察覺不到有訊息的交換。它和密碼學不一樣,資訊隱藏是無法偵測到的。人們常常利用資訊隱藏來輔助加密。透過加密,再結合加密資料隱形,就能徹底保護訊息而不讓資料間諜得手。

無限的可能性
許多企業和政府已經禁止或限制加密。這更造成資訊隱藏和其他不受限制的資訊隱藏技術在 Internet 上蓬勃發展。資訊隱藏軟體的取得與使用都相當容易,而且每天都有幾百萬個新的音訊和影像檔案貼在 Internet 上。那麼多不同類型的檔案,都可能含有各式各樣的隱藏資訊,而追蹤或找到這些檔案,幾乎是不可能的任務。您也許已經看過某個含有隱藏訊息的網頁,但您卻從來不知道。發現並解開資訊隱藏,簡直就像在全球資訊網的浩瀚大海中撈針。

參考 http://ics.stpi.org.tw/Redirect/?f=300&i=38

將圖片的RGB各用八張圖來顯示

這次上課老師有說到一張圖的RGB值各有八個bit可以用黑白兩色來顯示!!!
所以我就寫了一個程式來分別顯示出圖片的RGB的八個圖!!!!

//======================================================
下面這三張圖是分別將RGB的8bit圖

R值===>

G值===>

B值===>

//=================================================================
下面這三張圖我個別用RGB的顏色來顯示8bit

用R顏色來顯示R的8bit===>

用G顏色來顯示G的8bit===>
用B顏色來顯示B的8bit===>


//==========================================================
由這幾張圖可以確定圖片的RGB值分成8bit的最後兩個bit是最沒影響力的!!!lLSB也
是根據此原理!!!所以後兩個bit最容易被拿來隱藏資訊且不會破壞原圖!!!
//===========================================================
下面我用一張已藏的圖片來分離它的R值看看它的後兩個有什麼改變!!!


隱藏的圖====>
分離的圖====>
//==========================================================
很明顯的這張圖R值的後兩個 bit被我藏東西~~~ 所以顯示出來的圖就會跟普通圖
索分離出來的不一樣 !!!!!

2007年3月28日 星期三

統計一張圖所用到的顏色的小程式!

之前第二週的時候!還記得老師跟同學在討論
壓縮檔跟非壓縮檔的差別,以及用到的調色盤顏色種類一定要全部納麼多嗎?這樣會浪費多少的空間,
造成佔著茅坑不拉屎的三不管地帶呢?
老師說大家有興趣可以去寫個程式來看看這樣的現象
一張圖片所用到的顏色大概會小於他的一半
以下是我寫的程式所做的統計:

屢試不爽,大概連1/2的顏色種類都不會到!
恩....大概就是這樣....

Data Struture 我try了兩種:
1.Linked list
演算法:
repeat Get the RGB information form the pixel
if(the color is NOT in the list)
add this color into the list
kind++
else
do nothing
until the whole pixels are done
優點:
空間的利用度相較於Array來的高!(because大部分的顏色是重複的) 缺點: 搜尋串列的速度會越來越慢,隨著加入的顏色增多,需要比對的次數也會越來越多次!
2.Array
initial bool Array[256][256][256]={false};
repeat
if(Array[R][G][B]==flase)
set it(Array[R][G][B]) true
kind++
else
do nothing
until the whole pixels are done
優點:
速度較快,Array視為一個大的table! 較接近人類的思考模式(i.e.哪種顏色用過就在哪個格子裡打勾!)
缺點:
空間會有所浪費!

最後我選擇的是Arrray,因為速度較快!

Week 4 : 如何判斷一張雜亂的圖

將一張圖的 Last Bit 取出來,形成一個 Bit-Plane,
若這個Bit-Plane是非常雜亂的,
我想這個Bit-Plane 黑點與白點的比例大約是 1 : 1。

如果黑點與白點並非均散於 Bit-Plane 上,
我們會感到某塊區域可能比較黑,或是比較白;
若是均散的狀況下,我們會感到這張圖很雜亂。

假若一張圖的黑白像素比例為 1:1,且黑白像素分散的很平均的狀況下,
我們可以去統計黑白像素點的個數,看看比例是否接近 1:1。

若用這個方法,並不恰當,若一張圖的左半邊全部是黑像素,右半邊全部是白色像素,
雖然統計出來的黑白像素比為 1:1,但是並非均散的狀況。
如下圖 : 此圖只有黑白像素,用0表示白,1 表示黑

ex

0 0 1 1 1
0 0 1 1 1
0 0 0 1 1
0 0 0 1 1
0 0 0 1 1

顯然的,這需要另外的機制來改善這樣的問題。
假若有一張 4x4 的圖片,只有黑白像素,用0表示白,1 表示黑

如下:

1 0 0 1
0 1 0 0
0 1 1 1
1 0 0 1

於此我計算 1 佔了整張圖的比例為 8/16 = 1/2 = 0.5
由我主觀的認為,若一張圖1的數量超過 75%(黑色太多) 或少於 25%(白色太多)
我就認為這張圖不是雜亂的圖。
然後我將這張圖切割數個成 3x3 的小方塊,然後計算該方塊黑色點的比例,

1 0 0 1
0 1 0 0
0 1 1 1
1 0 0 1

方塊 1 ,像素1 的比例為 = 4/9,介於 25% ~ 75% 的臨界範圍內,方塊1 是散亂的

接著看方塊2
1 0 0 1
0 1 0 1
0 1 1 1
1 0 0 1

方塊 2,像素1的比例為 = 6/9 = 0.66,
介於 25% ~ 75% 的臨界範圍內,方塊 散亂的。

接著看方塊3
1 0 0 1
0 1 0 1
0 1 1 1
1 0 0 1

方塊 3,像素1的比例為 = 4/9,介於 25% ~ 75% 的臨界範圍內,方塊3 是散亂的

方塊4
1 0 0 1
0 1 0 1
0 1 1 1
1 0 0 1

方塊 4,像素1的比例為 = 6/9 = 0.66,
介於 25% ~ 75% 的臨界範圍內,方塊4是散亂的。

我們做了四次檢驗,散亂的方塊佔了4 次 = 100%
綜合以上觀點,應該可以斷定這張圖是散亂的。

缺點:
圖片應該選擇怎樣的切割方式,切割大小應該如何選擇會較恰當
臨界值(指75% 與 25%)不易客觀的設定。

PS 以上只是我個人想法,毫無根據。

Week4課堂筆記

以下是Week4的一點課堂筆記。

圖片可分三種性質:
黑白(只需0,1 1個bit就可表達)
灰階(需要8個bit)
彩色(需要24個bit)

灰階有兩種取法,
一種是考慮視覺的靈敏度讓RGB分別乘以一個常數,
那三個常數的總和為一。
另一種是直接使用R=G=B。

因為黑白只需要1bit就能表達,
所以將黑白圖片藏入灰階的圖片中時,
可以完全藏進去,
但是灰階藏灰階時,就只能藏1/8大小的圖片。

意即:
100*100的灰階,可藏入100*100的黑白
        可藏入(100*100)/8的灰階
這麼說來,要藏彩色的不就只能藏1/24了嗎 囧!

此外,因為老師提到了把每個bit取出來用圖片顯示的事情
所以我嘗試的寫了一個程式把每個bit的0,1值取出來




不過因為有些判斷還沒有想清楚,所以只取了前四個bit跟最後一個bit...orz
不知道這樣寫到底對不對就是了 。

如何分辨圖片是否雜亂?

老師講解的時候,有將圖片分成八張,每個bit個別取出形成一張張的圖片,這個禮拜要思考的是如何知道圖片是否雜亂,和前面不一致? 要思考的是:
1. 肉眼是否可以看出,若可以看出(藏多bit)則這個圖片直接用肉眼和原圖比較就可以知道是否有隱藏。
2. 若肉眼看不出來,(藏較少bit),抓取圖片各個bit所產生出的圖片,則可以將後面的圖片和前頭的圖片做比較之後來發現是否雜亂,是否有隱藏資訊?比較後看哪張和前面的圖片像素相減後不同,則某變數+1,若變數+到一個程度,大於門檻值(要在測),則判定此圖片雜亂,而這張圖片內藏有資訊。

這樣好像不是十分精細Q__Q...
啊!!以上是我們知道原圖為何的狀況下可以使用...但是有人要偷傳資訊...哪裡會附上一張原圖給我們比對呢?

2007年3月26日 星期一

[blogger]最新回應

雖然這跟這門課沒啥關係
不過呢
小的私心裡很想要有"最新回應"的這個功能
所以就硬是po了這篇
希望老師看到可以加一下XDD
  (其實很多人會了吧...XDD)
大家想要的話也加一下吧!!
嗯...
以上是閒聊而已...
---我是教學開始分隔線---
首先呢
在登入帳號的情況下
在右上角有個"自訂" 點進去!!
然後
在"網頁元素"裡面
選擇"加入網頁元素"
像這樣子


然後呢

選那個"資訊提供"
(沒錯!!跟老師之前說rss訂閱的地方一樣!!)

但是呢

資訊提供 URL 這邊
要用

http://【Blogname】.blogspot.com/feeds/comments/full

【Blogname】要換成你blogger的名字喔!!

然後

按繼續

他就會去抓資料啦

記得參數要設喔

該打勾的要打勾

這樣才像是有回應的感覺阿!! (茶)
---我是教學完畢分隔線---

2007年3月23日 星期五

Week4,如何判斷一張圖(黑白圖)是雜亂的

Week4:如何判斷一張圖(黑白圖)是雜亂的(延伸)
延續上次我post的想法...上次的想法太籠統而且可能會產生問題!
問題在於:亂的程度要怎麼去算?怎樣定義一個"臨界值"才市最公正且為大家所能接受的? 這樣變的比較難了!
昨天晚上想到一個延伸的方式!於是把keyword 寫下來,今天post上!但是精神和之前的想法相似!只是我覺得更具powerful且reasonable.
ALGO:
我們可以對一張圖,
每個沒有被計算(加入region或是從佇列刪除)的pixel做處理,
當我們選定此pixel,則往他的4臨方向(4-neighbor)去做擴展計算,
如果4臨方向的顏色和他相近則加入(也可以說把他從佇列上刪去,下次就不再做計算) 且把他的權值(也可以說是region大小值)加一.
一直擴展到他遇到了不同的顏色!於是停止.
這是類似region growing技術的一個想法, 只要最後我們判定這樣的region個數跟region範圍(應該說region個數比較少,因為如果雜亂的話很可能region個數大,但是每個region範圍卻很小(可能一點或是兩三點)) 這樣可以判斷出合理的圖形切片複雜的地方!
以下是虛擬碼部分的演算法(計算region size 的遞迴(不知有沒有錯)),有錯的話之後會再更正!
int P(int X,int Y)

repeat
if
the pixel P we selected is in execution Queue
do
if
P(x+1,y) has the same color with P(x,y)
then delete form Queue and label it(bind it with P(x,y));
region size = region size + P(x+1,y);
if P(x-1,y) has the same color with P(x,y)
then delete form Queue and label it(bind it with P(x,y));
region size = region size + P(x-1,y);
if P(x,y+1) has the same color with P(x,y)
then delete form Queue and label it(bind it with P(x,y));
region size = region size + P(x,y+1);
if P(x,y-1) has the same color with P(x,y)
then delete form Queue and label it(bind it with P(x,y));
region size = region size + P(x,y-1);
else
return
region size of P=0

Data stucture 而言!我們可以宣告一個和圖片大小相同的二維陣列(two dimemsion):Array[i][j]

Pixel[i][j] //圖的像素
if Pixel[i][j]=黑
Array[i][j]=1;
else if Pixel[i][j]=白
Array[i][j]=0;
如何去label?
依照上敘的演算法!只要顏色相同就填一個數字2
碰壁後(顏色區隔完),就換另一個數3,再區隔完換4....依次類推!
最後去統計這個Array[][]有幾種>=2的數字
數字種類越多表示region區塊很多(i.e.很雜亂)
數字種類越少表示region區塊很少(i.e.不雜亂)
圖示:
initial:
0 1 1 1 0 0 1 0
0 0 0 1 1 1 0 0
0 0 0 0 1 1 0 1
1 1 1 0 0 0 0 1
1 1 1 0 0 0 0 1
1 1 1 1 1 1 0 0
0 0 0 1 0 1 0 0
1 1 1 1 0 1 1 0
0 0 1 1 0 1 1 0
0 0 0 0 1 1 0 0
label後:
2 3 3 3 4 4 5 2
2 2 2 3 3 3 2 2
2 2 2 2 3 3 2 6
7 7 7 2 2 2 2 6
7 7 7 2 2 2 2 6
7 7 7 7 7 7 2 2
8 8 8 7 9 7 2 2
7 7 7 7 9 7 7 2
10 10 7 7 9 7 7 2
10 10 10 10 7 7 2 2
記數到10
可想而知,若是1,0均勻分配且穿插則出現的數字會更多!
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
1 0 1 1 0 0 1 0
0 0 0 0 1 1 0 1
1 1 1 1 0 0 1 0
0 0 0 0 1 1 0 1
1 0 1 0 1 0 0 0
1 0 1 0 1 0 1 1
0 1 0 1 0 1 0 1
1 1 0 0 1 0 1 0

label後:
2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17
10 11 12 12 15 15 16 17
11 11 11 11 18 18 19 20
21 21 21 21 22 22 23 24
25 25 25 25 26 26 27 28
29 25 30 25 26 27 27 27
29 25 30 25 26 27 31 31
32 33 34 35 36 37 38 39
33 33 34 34 40 41 42 43

記數到43



and...逢甲通訊的論文,上篇我有po有關PoV的 他的敘述我不太了!不知道是翻譯原文的關係,還是我的中文理解力退化了!挺想寫那個程式的><

2007年3月22日 星期四

如何判斷一張圖(黑白圖)是雜亂的

今天老師在課堂提到Westfeld及Pfitzmann所提出的論文,自己也搜尋了相關論文,
他們提出了兩種破解S-tool加密的方法
1.Visual attack
2.Chi-square attack:
針對PoV(Pairs of Value)假如二元機密訊息中,1與0的個數一樣多,且隨機出現,那麼每一組PoV的兩個值,在嵌入大量機密訊息後,兩個值出現的數量會相等,這是一般媒體中非常少見的特性!可以用此來判斷是否有加密.可稱此為statistic attack(由電腦做統計)何謂PoV(例如196和197為一對PoV)
本週要探討的是:如何判斷一張圖(黑白圖)是亂的:
My method:
判斷近鄰(4鄰或8鄰)若是值為對立(黑<=>白)的個數太多則為一個亂的圖!若是對立的個數太少(i.e.表示可能會一變黑或一片白)
以下是我自己所做的關於位元平面去判斷加密的程式:
下圖示未加密的位元平面切片:

下圖則是加密過後的位元平面切片:

那是什麼??

老師上課和有些人的文章裡提到
如果要藏的資訊先加密過了就更難找到
那......加密是啥麼?
我只看到一張圖被變亂
"加密" 是對圖片做了什麼事呀???

剛剛有人已經問到了
為什麼要只能藏八分之ㄧ
所以如果有一個要藏的資訊
就要刻意將它擺在八分之ㄧ的地方
其他的八分之七要空白??
是這個意思嗎...還是我又誤解了?! @@

資訊隱藏-week3 調色盤分析

經過上次所使用的S-TOOLS
這次老師給我們一個程式
這程式是可以讀取GIF的調色盤
並且老師給我們的課題是透過這個軟體
判斷是否某張GIF的圖片是否有藏文字或者是圖片
我看了許久 還是很難找到比較有關聯的規則
假設說若是有兩張圖片來比較的話
如果大小不一樣或者是看調色盤
應該滿容易發現是否有藏資訊
但若是只有一張 就很難判斷是否有藏資訊
我大概看了許多張 雖然可能還不夠多
但發現較可能的規則是
通常沒藏過的圖片會比有藏過的突來的不規律
所謂的不規律是指兩個Pixel之間的RGB會相差某個值或者是小於某個值
或者是相差次數超過某個值
而通常藏過的圖很容易產生一個區段相近的Pixel
若是以程式方面來看
可以設定成 (pixel A - pixel B)兩個RGB相減的值
若要產生更大的差距可以平方
然後只要超過某值或低於某值
就增加相差的次數
只要相差的次數低過某一值
那麼就可以判斷這是有可能藏資訊的圖
當然 這缺點就是容易有可能造成誤判
像如果沒藏過資訊的圖 也很相近的話
程式即有可能也會誤判成是有藏資訊的

資訊隱藏week3



今天使用A Steganalytic Tool for S-Tools來解析一張圖隱藏前後有啥不同.




如我要把這張圖




隱藏在這張圖上

然後用Steganalytic Tool for S-Tools來解析

這是未隱藏前的


http://www.csie.mcu.edu.tw/~s3360363/image/1437002274
隱藏後的
http://www.csie.mcu.edu.tw/~s3360363/image/1437002275


Week3 S-Tools比對程式

上禮拜睡過頭沒去
所以自己改了自己的進度
我把上次說的比對程式寫好了

有兩個功能

一個是讀取圖片
然後把這張圖的色彩資訊用matrix顯示出來
另一個是直接快速比對兩張圖有沒有完全一樣
因為這兩個功能我再寫專研練習的程式的時候寫過很像的
所以改一下就完成了

不過沒做深入研究
以下是測試結果
1.原圖
2.塞入了其他資訊的圖






兩個看起來幾乎沒有變

肉眼完全看不出來變化

所以用了我寫的這個小程式就能知道差異了

首先是matrix功能

我將圖片的每個點的RGB都印出來

順序是BGRBGRBGR這樣

發現了圖的差異點

這是原圖的matrix


這是隱藏資訊的matrix

數值化後很明顯的看到差異了

跟老師說的一樣

有些部分有1個值1個值的區別和差異

這就是被塞入的資訊

而再來使用比對的功能

這個是把圖的RGB資訊一個個抽出來比對

如果一個值有不對就顯示NOT SAME

這是比對結果:(左是原圖,右是有隱藏資訊的)


Not Same!

所以這兩張圖有所差異,雖然肉眼看不出來

當然...也怕我有寫錯

所以我後來用了兩張隱藏資訊圖做比對

結果如下:


顯示是Same!,是一樣的兩張圖沒錯

可以暫時認定我沒有寫錯

這禮拜大概就這樣

我想辦法把上禮拜的進度補一補好了

資訊隱藏week2

上禮拜使用S-Tools 這個軟體.讓我知道一個訊息如果在其它人不知道的情況下把訊息送到對方手中.真的看不出來.讓我一度懷疑它有沒有在做.....原理是改變一個值使其看不出來.以達到隱藏還有上禮拜知道分群技術.如30000個顏色分成256色好做隱藏等

資訊隱藏 week1

http://pingfeng.hcsh.tp.edu.tw/SVG/有一些資訊隱藏的介紹

資訊隱藏和密碼學之比較:資訊隱藏所用的方式是將「訊息存在」這件是隱藏起來,然而密碼學則是透過各種文字的轉換方式將訊息弄亂,使的外界無法讀出訊息的內容。與密碼學比起來,資訊隱藏其實有缺點的。即使利用上述一些比較有效率的架構,它仍需要花費很大的功夫才能隱藏一些的資訊。此外,一但隱藏的方式被察覺的話,整個系統就變的沒有價值了。如果我們在隱藏資訊時使用某種鑰匙,那麼這個問題當然是可以解決的。另一種方式是,在利用資訊隱藏的技巧來隱匿資訊之前,先將這些訊息加密。使用資訊隱藏的好處就是:如果使用者有損失的話一定是有人發現他們正在交換機密(不見得是從訊息得知,因此訊息本身與正常文章無異)。但是對加密系統而言,訊息本身就很重要、必須加以保密,並且可能被使用來辨識傳送者或接收者的身分。

WEEK3:辨識s-tools影藏分析

上週的課程
主要是針對如果你今天拿到一張影像
要怎麼去辨識他是否含有用S-Tools產生
所隱藏的資訊,
來討論一個有可行性的破解方法
老師也提供了一個可以對影像去做調色盤分析的程式
來讓我們尋找靈感
此程式不但可以讀出gif檔的調色盤也可以針對讀出來的
調色盤去做Sorting以及相似顏色的Reducing分析
首先我想先嘗試藏入資訊大小的變化
來檢視在Reducing後的差別
發現影藏的資訊量越大的確可以讓藏過
資訊的圖片在Reducing過後變的很單純
可能只剩下32種主色
因此我門是否可以假定一個影像在影藏過後
是否Reducing後剩下來的值只要少於某個值
就可以視為此張影像有隱藏資訊呢?
答案是否定的!
因為這樣的理論在把藏入的資訊縮小以後
就變的難以界定了
我總共採用了兩種測試方法
ㄧ種是藏入一個紅色的pixel
ㄧ種是藏入簡單的字元
此時的Reducing完後剩下的色彩分別為158與177
於是可知只要縮小隱藏的資訊量
此猜測方法就變的無用了!

此外在與同學討論的時候
為了進行測試在產生ㄧ個pixel的pattern時
發現了小畫家與photoshop產生的pattern容量差很多!
這倒是證明了photoshop不愧是要賣錢的軟體
在產生時的確有差!

Week3,S-Tools

這週老師讓我們繼續研究S-Tools
並且讓我們下載一隻老師之前所寫的程式
(可以看圖片的Co值與Cr值)
我玩的方向是:
資料量大小是否會影響藏資料的調色盤多寡
而這個影響是否能解出特定的函數
使用的是可以儲存文字資料的txt檔
我以
00000000000000
111111111111111111
.... ....................... .....
9999999999999999
的資料為一組觀看藏入不同組數(以倍數成長)後的圖片調色盤經由分析過後的數量。

一開始,在組數不斷增加後,Cr也逐漸減少,
不過當增加到特定數目後(非常大量),
不知道是我分析到錯誤的圖片,
還是因為複雜度太低使的調色盤沒啥變動,
Cr又回到當初只有藏一組數字。這件事情是還滿神奇的。

因為出現那種結果
所以我回家後又重取了一次Data
數據如下:
----------------------
組數 大小 Co Cr
1  248  256 92
2  500  256 90
5  1256   91
10  2514 91
20 4880 89
100       86
....
1000 51
10000 2.38MB 34
----------------------

這種結果看來隨著藏的資料量的提高
Cr也會相對減少...

然後我之前取得的資料是錯誤的

不過....其實Cr並不能拿來認定張圖片是否有藏資料 Orz
結果=>變成在研究隱藏的資料量與Cr值的關係...
而不是想著怎麼破解(汗)

Week3: 破解LSB的想法

針對LSB如何從修改過後的調色盤破解這個隱藏軟體(steganographic tool)。

Thought1.把分析出來的調色盤做分群的步驟,將顏色分群! 若隱藏的資料量過大會形成32群顏色的區分若隱藏資料量過小可能會大於32群,只要顏色可分成規律的色群,或是單一群有相近的八種顏色,則稱此有隱藏!

Thought2.政瑋:瀝取出每個pixels最後一個bit,若是能湊成另一檔案,則稱此有隱藏資訊
經過討論後:若是以2*2的圖像來說,對方加密的順序若是未照row major順序或是column major順序 ,則可能有4!的排列方式,共24種,需要去試驗,況且實際圖片一定大於2*2 再者,瀝出來的資訊若是排列不同,出來的檔案亦會不同!

Thought3.若是我們只更改最後一個bit,可能的方法皆試驗,若是形成和原圖相似的圖, 則可稱此為一藏有資訊的圖!

Week3-隱藏資訊圖片調色盤分析

這禮拜老師請我們討論看看
能不能想到一個演算法
能夠去檢視一張圖片到底有沒有隱藏任何資訊
然後在老師的網站上下載了可以讀取 GIF影像調色盤的小程式
我和蕭兆廷一直試了很多種的方法,看隱藏資訊的大小和顏色
對隱藏過後的檔案到底有什麼影響?
從藏1個pixel的資訊到和藏訊息圖片相同 大小
經過不斷的try
隱藏的資訊越大
藏過資訊後的圖片在reducing過後
Cr和Co這兩個值會差蠻多的
可是還是沒有辦法能有效判斷是否有隱藏任何資訊!!

Week 3 : 想一個破解LSB的方法

Week 3 from 2007/03/15 - 2007/03/21

GIF 屬於調色盤(Palette-based format) 類型的影像資料,支援 256 色。

所謂的256色是指,整張圖片上所有的顏色種類不超過256種顏色。

256 色圖中的每個像素值的範圍都介於 0~255 之間,

256 色圖的像素值,並非代表色彩,而是色彩的編號。

假若一張圖只有 40 種顏色,則在256色圖必須在像素外,紀錄另外一張表格,

這張表格稱為 調色盤 (Palette)。

調色盤上面最多只能紀錄 256 種顏色。

每一張 256 色的圖都有自己的調色盤。


了解了調色盤以後,接著要了解LSB的藏匿方式,

了解了 LSB 後,要破解LSB最直覺的方式,

就是直接把圖片的每個像素中的最後一個位元取出來,

如果取出來後能夠形成一張圖片,或是隱約形成某個圖案,

則說這張圖有藏匿影像。

當然這樣做有它的缺點,

因為機器無法判斷取出來的訊息是有意義的圖片,

圖片也可能藏匿加密過後的影像或是訊息,如果直接取最後一個位元,

取出來仍然看不出來是一張圖片,或是取出看不懂的訊息。

到此,我們了解到,資訊隱藏不一定是藏圖或是文字檔,

有可能是藏匿另外一個已經加密過的資料,這樣的作法讓破解更加的困難。

而取出每個像素的最後一個位元,對於LSB的變形演算法,未必可行,

我所謂的LSB變形的演算法是指,訊息在不一定是隱藏在最後一個位元,

有可能按照別的方式,例如藏在像素的倒數第二個位元,

或是每兩個像素才藏匿一次位元,

或是將原先由左而右藏位元的方式,改成由上而下藏位元。

指由 Row-Major 藏位元的方式改成 Colunm-Major 的方式。

所以這個方法並不是很恰當。


而另外一種方式,檢查偽裝圖片的調色盤,看看是否被分成了32個群。

但是若被嵌入的圖片,原先的色彩就少於32 種顏色,

則無法用這個方式判斷藏匿了資料。

當藏匿的圖片本身顏色數目就很少,資料量不大時,

則看不出來調色盤變成了32 群(小於32群)。

有時候,甚至只是藏匿幾個Bytes的訊息,例如藏匿一句英文。

這種看查看調色盤的方式也會失敗。

如何知道圖片中暗藏玄機?

  上週的課程是如何判斷一張圖中,是否暗藏資訊?首先我和可欣分別用不同的影像處理軟體,製作1*1的黑色小方塊,再用S-Tools將小黑塊藏到較大的圖片中,最後丟入老師給予的顏色分析程式,看看隱藏後剩下多少種顏色,測試是否可以從顏色數量去判斷。
  測試結果,答案是否定的。因為GIF是用調色盤繪製的圖片,不同的軟體選用的調色盤也不相同,同樣是1*1的圖,photoshop可能選用4色的調色盤,小畫家可能選256色的調色盤,使得檔案大小不同,隱藏所需要的空間便會不同,所以無法隱藏後的顏色種類去判斷。
  學妹有提到,如果是一張只有自己有的照片,網路上找不到,反而容易被發現在進行秘密通訊,應該找網路上容易看到,不引人注目的圖做資訊隱藏。其實這兩個方式各有優缺,自己拍的照片做資訊隱藏的動作,雖容易被查覺,即使知道內有玄機,可是解碼不易。而使用網路上容易看到的圖,雖不易被察覺,但是可能找到隱藏前的原圖,便可進行比對,被破解的機率較大。  
  我覺得要破解隱藏在圖片中的資訊相當困難,即使使用暴力法也不一定能百分之百破解。何謂暴力法?就是使用所有可能的隱藏方式去破解,例如某張圖可能使用LSB的方式,那便將最後一位元取出,看看使否能湊出有用的資訊。破解比隱藏更加困難。

[小安]S-Tools使用方式及心得

S-Tools 可以將資訊隱藏在一張圖片中
(S-Tools 可支援 WAV、BMP、GIF 檔案)

首先我們必須準備 S-Tools 軟體、基底圖(BMP)、要隱藏圖(BMP)
<基底圖> 將其它圖片隱藏於下圖中


<隱藏圖> 下圖為要隱藏的資訊


打開S-Tools 軟體
起始畫面

<丟基底圖>
直接將 Kikky 拖曳至視窗中

<隱藏圖片>
將要隱藏圖片拖曳在 Kikky (0.bmp) 視窗裡1.輸入密碼2.確認密碼(和1.密碼相同)3.選擇編碼方式


<隱藏完畢>hidden data 為已隱藏好的圖片

試試看資訊是否隱藏成功了
<輸入密碼>

密碼輸入成功後,會出現↓

<它表示解碼完成,按右鍵另存圖片>

圖片存好後即可打開圖片,看看是否和"隱藏資訊"一樣
(ps.因為是隱藏圖片,所以存圖片檔)

[學習紀錄]3/15S-Tools分析



難道這就是傳說中的頭香!!

因為...

我覺得同一份文章兩個blog都貼很奇怪

有興趣看我胡言亂語的鄉親

請前往這裡觀看完整版吧XDD

小的在這邊就只有寫大意和心得了...
----我是正文分隔線----
今天的課程(3/15的課程紀錄)

延續了上個禮拜介紹的S-Tools
(S-Tools是用來藏資訊的軟體)
開始導入了分析的概念...
今天老師讓我們去下載一個可以抓取GIF檔中調色盤資訊的軟體
讓我們根據上禮拜所說的ㄧ些像是LSB之類的觀念
嘗試去分析S-Tools所用出來的stego-image有何特徵

我想今天的課程是採取自己動手做的方式吧
  (其實是因為我遲到才錯過老師前面講的吧...XDD)
ㄧ開始我都是跟著隔壁的同學照著做
可能是因為大家都是在摸索的階段吧
所以都是有ㄧ個人發現要怎麼做
其他人就跟著做
或是有個人發現問題
大家就通通跟著做

ㄧ開始
我們是先去網路上抓圖當掩護影像
但是呢
有些圖片其實是JPG檔 只是被人家直接改檔名之後
我們那群就以為他是gif檔 這時候就會有問題囉...

所以呢
我們就乾脆自己畫...
總不會有剛剛那個偽gif檔的事了吧...
但是呢
你用哪個軟體畫
也是有差的喔
因為阿
同樣的東西
不同的軟體去做影像壓縮所產生出來的檔案大小就會不一樣...
這是在我們試圖推Co Cr 的關係的時候
所注意到的問題
ㄧ開始只是覺得很奇怪
為什麼明明就一樣是1個 pixel 也都是紅色的點(255,0,0)
為什麼一個的Cr值就少那麼多 ㄧ個就還是有ㄧ百多以上

後來仔細比較之後阿
發現---Photoshop 果然是有其價值所在阿...
小畫家用出來的gif檔 他的檔案大小大概是用photoshop存檔的5倍吧
(以我們那時候的圖而言啦...)

其實演算法我還沒推出來啦...

我能推出來的也只有這些相關的東西

Co 和Cr 這兩個值呢
1.跟被藏進去的圖片本身的顏色量似乎沒有太大的關係
2.跟被藏進去的資訊量(檔案大小吧...)有關的...

而且老師上次的教學日誌上有提到S-Tools已經是第四版了

他也是有根據人家的演算法多了很多進階選項去調整參數的

關於這裡調參數的影響 還沒有詳細的比較啦

我覺得那邊影響也挺大就是了

另外阿

不知道有沒有人跟我遇到一樣的狀況

就是阿

我把S-Tools產生的hiddendata存起來

帶回家整理的時候阿

竟然都變成這種情況


都不能預覽圖片了

我用photoshop之類的也都不能開

他都跟我說記憶體發生錯誤

用S-Tools開也會當掉...

可是!!

老師給的那個程式竟然可以開耶!!

而且不會當掉...

超神奇的啦...

難道是老師的程式跳過了會出錯的記憶體嗎...