junk-encoder 廢文編碼器:把秘密藏進廢話裡
📅 2019-03-09 💻 JavaScript
有沒有可能讓審查系統看不懂你在說什麼?
2019 年 3 月,第 33 次 g0v 黑客松。
這個問題在腦子裡轉了一陣子:如果文字審查是靠關鍵字過濾、語意分析來運作的,能不能讓有意義的訊息看起來像廢話,讓機器掃描不出來,但知道方法的人還是能解讀?
英文世界早就有 SpamMimic——把訊息藏進垃圾郵件格式的英文裡。中文版呢?
「明天下午三點在立法院前集合」
核心想法很直接:
- 把一段訊息轉成二進位
- 把二進位串用中文廢文「翻譯」出來
- 看起來是一堆語意不通但合乎語法的中文
- 知道解碼方法的人可以把廢文還原回原始訊息
技術上的做法是:準備一個語法模板(比如「{名詞}{動詞}{受詞}」),搭配按詞性分類的詞庫,讓每個詞的選擇對應到特定的二進位片段。輸出的句子語法正確,但語意隨機——看起來就是有人在胡言亂語。
難度從簡單到困難設計了五個等級:
- Level 1:基本的二進位對字元映射,編碼密度高但明顯不自然
- Level N:語法正確、語意通順,幾乎無法跟正常文章區分——這是理想目標,也是最難的一關
做出來了,但有個天花板
黑客松當天有提案、有成果,網站上線了。
廢文確實能編碼、能解碼。但做到後來發現一個根本的困難:要讓輸出的廢文「自然」,詞庫和語法模板必須夠大、夠多樣,否則機器學習的語意模型還是有機會偵測到統計異常。
Level 1 實作了,Level N 是個持續挑戰的目標。
用處不只是對抗審查
廢文編碼器的使用場景比想像中多元:
- 繞過網路審查:最原始的動機
- 資料隱寫(Steganography):把機密資訊藏在公開文字裡傳遞
- 惡作劇:朋友之間傳看起來是廢話的訊息,解碼之後才發現是正經事
- 測試 AI 的語意理解能力:看看語言模型能不能識破偽裝
現在可以玩:paddingleft.com/junk-encoder
提案共筆:g0v HackMD