junk-encoder

廢文編碼器:把秘密藏進廢話裡

📅 2019-03-09 💻 JavaScript

有沒有可能讓審查系統看不懂你在說什麼?

2019 年 3 月,第 33 次 g0v 黑客松。

這個問題在腦子裡轉了一陣子:如果文字審查是靠關鍵字過濾、語意分析來運作的,能不能讓有意義的訊息看起來像廢話,讓機器掃描不出來,但知道方法的人還是能解讀?

英文世界早就有 SpamMimic——把訊息藏進垃圾郵件格式的英文裡。中文版呢?

「明天下午三點在立法院前集合」

核心想法很直接:

  1. 把一段訊息轉成二進位
  2. 把二進位串用中文廢文「翻譯」出來
  3. 看起來是一堆語意不通但合乎語法的中文
  4. 知道解碼方法的人可以把廢文還原回原始訊息

技術上的做法是:準備一個語法模板(比如「{名詞}{動詞}{受詞}」),搭配按詞性分類的詞庫,讓每個詞的選擇對應到特定的二進位片段。輸出的句子語法正確,但語意隨機——看起來就是有人在胡言亂語。

難度從簡單到困難設計了五個等級:

  • Level 1:基本的二進位對字元映射,編碼密度高但明顯不自然
  • Level N:語法正確、語意通順,幾乎無法跟正常文章區分——這是理想目標,也是最難的一關

做出來了,但有個天花板

黑客松當天有提案、有成果,網站上線了。

廢文確實能編碼、能解碼。但做到後來發現一個根本的困難:要讓輸出的廢文「自然」,詞庫和語法模板必須夠大、夠多樣,否則機器學習的語意模型還是有機會偵測到統計異常。

Level 1 實作了,Level N 是個持續挑戰的目標。

用處不只是對抗審查

廢文編碼器的使用場景比想像中多元:

  • 繞過網路審查:最原始的動機
  • 資料隱寫(Steganography):把機密資訊藏在公開文字裡傳遞
  • 惡作劇:朋友之間傳看起來是廢話的訊息,解碼之後才發現是正經事
  • 測試 AI 的語意理解能力:看看語言模型能不能識破偽裝

現在可以玩paddingleft.com/junk-encoder

提案共筆g0v HackMD