iT邦幫忙

2025 iThome 鐵人賽

DAY 9
1
Security

飲血使徒的隱寫術奇境系列 第 9

【Day9】隱字之書──文字隱寫(Text Steganography)

  • 分享至 

  • xImage
  •  

介紹

文字隱寫(Text Steganography)是一種將資訊隱藏在文字裡的隱寫方式,像是透過加入不可視的字元、空白、改變字體大小、或者加入刻意的錯字等等來隱寫,讓隱藏的訊息不會被看出來。相較於其他隱寫方式如圖像或影片,因為文字檔案中的數據冗餘較少,因此隱寫的難度較高並且容量小,但是因為文字使用普遍,且技術門檻較低、容易傳遞,所以還是有它的價值。

舉例來說,相信大家都有看過藏頭文,很經典的一個案例是前加州州長阿諾史瓦辛格寫給政敵的公文信,可以看到只要把每一行的第一個字拼起來就是 F*CK YOU,雖然本人聲稱是巧合XD

文字隱寫的分類

文字隱寫大致可以分成三類:Format Based Methods、Random and Statistical Generation、Linguistic Steganography,根據隱藏資訊的方式不同去劃分。

1. 格式型方法(Format-Based Methods)

格式型隱寫是透過 改變文字的外觀或排版格式 來隱藏資訊,例如調整空白、換行、字型大小或拼寫。

原理:

在看似正常的文字檔中插入多餘的空格、Tab、換行,或改變字體大小,藉此表示二進位訊息。

缺點:

  • 如果使用文字編輯器(如 Word)開啟,可能會自動檢測或修正這些額外空白與錯字,導致隱藏內容消失。

  • 明顯的字型大小變化會引起讀者的懷疑。

  • 若攻擊者擁有原始明文,將其與隱寫後的文本比較,任何被操控過的部分都會變得相當明顯。

2. 隨機與統計生成法(Random and Statistical Generation)

這種方法並不是直接修改既有文字,而是生成全新的「掩護文本」,以避免與原始明文比較時被識破。

原理:

  • 一種方法是將資料隱藏在隨機字元序列的排列中。

  • 另一種方法是利用統計特徵(字長、字母頻率等)來生成「看起來」與真實語言相似的文字,使其不會顯得過於異常。

缺點:

這種方法避免了與原始明文的直接比較問題,但生成的文本有時缺乏語意,可能只是看似合理的字串。

3. 語言學隱寫(Linguistic Steganography)

語言學隱寫利用 語言學特徵(語法、語意、結構)來隱藏資訊。與前兩種方法相比,它更強調生成內容在語言層面上的「自然性」。

原理:

  • 可透過 上下文無關文法(CFG) 建立語法樹,將左分支定義為 bit「0」、右分支定義為 bit「1」,用來嵌入訊息。

  • 也可利用 Greibach Normal Form(GNF)文法,在產生式的不同選項中,第一個選項代表「0」,第二個代表「1」。

缺點:

  • 如果文法過小,會導致生成的文字出現大量重複。

  • 雖然語法上正確,但語意上往往不連貫,形成一串彼此無關的句子,降低自然性。

工具介紹

關於文字隱寫,基本上根據不同的需求,線上都有很多工具可以使用,如果沒有現成的也很容易能自己寫一個,或者叫 AI 幫忙完成,這邊就介紹一個使用零寬字元(zero-width characters),也就是利用不可視字元去做隱寫的線上工具

StegZero


只要輸入正常的訊息和要隱藏的資訊,就會自動隱寫成看不出差異的新訊息

小結

文字隱寫雖然困難,且容量有限,但因為方便使用,又人跟人之間傳送的訊息大多以文字為主,仍然有很好的效果。且和密碼學不同的是,隱寫術難以發現,所以很多場景下都適用,也可以和密碼學合併使用。

參考資料

https://www.mdpi.com/2227-7390/9/21/2829
https://arxiv.org/pdf/1302.2718/1000

本日飲血

今天是超級神秘的菊~


上一篇
【Day8】統計特徵隱寫
系列文
飲血使徒的隱寫術奇境9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言