本部落格已搬遷, 3秒後跳轉...

資訊隱藏:最低有效位元 | Laplace's Lab

資訊隱藏:最低有效位元

這學期修了很有趣的課程,我覺得隱寫術這個詞還蠻中二的。

維基百科對於隱寫術的描述:

隱寫術是一門關於資訊隱藏的技巧與科學,所謂資訊隱藏指的是不讓除預期的接收者之外的任何人知曉資訊的傳遞事件或者資訊的內容。隱寫術的英文叫做Steganography,來源於特裡特米烏斯的一本講述密碼學與隱寫術的著作Steganographia,該書書名源於希臘語,意為「隱秘書寫」。

一般來說,隱寫的資訊看起來像一些其他的東西,例如一張購物清單,一篇文章,一篇圖畫或者其他「偽裝」(cover)的訊息。隱寫的資訊通常用一些傳統的方法進行加密,然後用某種方法修改一個「偽裝文字」(covertext),使其包含被加密過的訊息,形成所謂的「隱秘文字」(stegotext)。例如,文字的大小、間距、字體,或者掩飾文字的其他特性可以被修改來包含隱藏的資訊。只有接收者知道所使用的隱藏技術,才能夠恢復資訊,然後對其進行解密。

現代的隱寫術是利用數位媒介作為載體,例如影像、聲音以及影片。載體檔案相對隱秘檔案的數據量越大,隱藏後者就越容易。或許是和授課者的專業領域有關,這學期的課都是以影像作為載體使用。

我想最低有效位元(LSB,Least Significant Bit)應該是最簡單的方法吧,透過將秘密資訊嵌入影像像素的LSB,其對影像的修改程度非常細微,達到肉眼無法察覺的程度。而在嵌入資訊前,對影像進行了量化處理,量化值(L)的大小對影像品質也有著相對的影響。

對於嵌入秘密資訊後的影像,再次以同樣的量化值進行處理,以前者減去後者的像素值,就能萃取出嵌入的秘密資訊。實際上在課程作業有用了算數編碼對秘密資訊加密後再嵌入,但自己在實作上的結果並不穩定,得再花點時間找資料研究思考。而最低有效位元的方式雖然簡單,卻也相當脆弱,影像如果被壓縮過,嵌入的資訊也會遭到破壞…。因此在後續的課程也學習到一些進階的方式,令菜雞我覺得很厲害。

下面的測試影像藏入了這段文字:

After billions of dollars and a decade of work, NASA’s plans to send astronauts back to the moon had a new setback on Saturday. A planned eight-minute test firing of the four engines of a new mega rocket needed for the moon missions came to an abrupt end after only about a minute.As engineers disentangle what went wrong, the first launch of the rocket is likely to slip further into the future, and NASA astronauts may have to wait longer before setting foot on the moon again.

藏入一段文字後的影像,量化值越大,峰值訊噪比就越低⬇︎

*原始碼連結:Github
*測試影像來源:unsplash

0%