任何有效的基於文本的隱寫方案?
可以使用以圖像為封面的複雜高效的隱寫方案。但是,我想知道:有沒有使用文本作為封面的?
如果由於限制只能傳輸一些可列印的自然語言文本,那麼使用文本作為封面可能會很有用。
**有誰知道這樣的方案或如何設計一個?**我希望隱寫位以不低於 1/50 的比率覆蓋文本位。該方案應該是使用者友好的並且易於實施。
$$ Addendum 1, edited $$我創建了一個名為 WORDLISTTEXTSTEGANOGRAPHY 的方案。它應該工作,在範圍內$$ 0.5, 1.0 $$自然語言文本的每個單詞的位數。在其中,使用者必須在軟體的指導下進行一些嘗試和錯誤。(例如,使用適當的密碼本可以高度壓縮輸入的隱寫序列。)最新版本 2.1 在 Python V.3.6.1 上執行。
我的理解是“以文本為封面的隱寫術”的三種最流行的方法是:
1 通過從字典中一次選擇一個單詞來生成一個全新的文本,使用密文位來選擇哪個單詞。
- 使用馬爾可夫鏈算法,以乍一看像真正的英語句子的方式挑選單詞。戴維輝。“使用馬爾可夫鏈源模型和DES算法的文本隱寫系統”。(2010)。H.埃爾南莫拉爾多。 “一種基於馬爾可夫鏈的文本隱寫方法”。(2012)。 “隱寫馬爾可夫鏈”。(2008 年)。Anna Lysyanskaya 和 Mira Meyerovich “Provably Secure Steganography with Imperfect Sampling” (2006 年)。等等。
- 對於給定的字典,選擇均勻分佈的單詞可以為每個單詞提供最多的密文位,但很明顯它不是真正的英文文本。儘管如此,這些方案在通過專為文本設計的系統(如電子郵件、語音等)發送原始比特時非常流行:NATO 語音字母表、PGP 單詞列表、S/KEY 詞典、Diceware詞典等。
2 取一些固定的文本,並發送與原始文本完全相同的一系列字母,通過以我們希望監獄長不會注意到的方式修改該文本的表示來添加密文位。
3 取一些固定的文本,並以我們希望監獄長不會注意到的方式稍微修改單詞。
- 接收者提取每個單詞,在約定的詞庫中查找;如果詞庫顯示 4 個同義詞,則接收器將該詞解碼為 2 個密文位。南河、昆吉、薩克迪奧。“語言隱寫術的改進同義詞方法”。Shirali-Shahreza。“一種新的同義詞文本隱寫術”。張和克拉克。“使用上下文同義詞替換和頂點顏色編碼的實用語言隱寫術”。
- 接收者尋找某些“關鍵詞”,忽略所有其他詞。
- 接收器通過注意選擇了在該句子中排列單詞的幾種方式(均具有相同含義)中的哪一種來解碼每個句子的幾個比特。格羅托夫;格羅托夫;阿爾胡托娃;斯圖斯曼;和阿塔拉。“基於翻譯的隱寫術”(2005 年)。一種
- 等等。
在他的回答中,Michael 提到了一種已知的使用單詞/句子的第一個字元作為隱寫字元的隱寫方案,並正確地指出,只有當隱寫字元序列是自然語言時,該方案才能實際應用(“使用者友好”)(即未加密,在這種情況下,該方案顯然非常弱),並且當隱寫字元序列是要傳輸的實際秘密消息的密文時,則不是。
在我看來,通過適當的改編/修改,如果人們可以接受傳輸效率的某些相應降低,那麼同樣的經典已知想法仍然可以得到有效利用。用一個具體的結構來說明:將字母表中的 26 個字元適當地分成 8 組(通常大小不同),使得在每組中至少有一個字元經常是自然語言句子的第一個字元通訊。然後,給定任意 3 個 stego 位的集合,使用者不會有太大的困難來編寫一個對於給定的通信上下文足夠自然的句子,並且該句子以上述 8 個組之一中的一個字元開頭對應於這 3 個隱秘位的編碼。這邊走,隱藏文本的每個句子都可以傳輸 3 個隱寫位,雖然不是很高的速率,但在實踐中值得考慮的事情恕我直言。(請注意,由於僅利用單詞的一個字元而不是整個單詞,因此自然具有靈活性/簡單性,這對於依賴於單詞替換的方案幾乎無法實現。)