通過加密下一個密鑰來隱藏一次性填充消息的元數據
這是一個我覺得有一些我無法指出的大缺陷的想法。
場景是:Alice 將出國 5 天,希望能檢索到一些資訊並發回給 Bob。她不想讓任何聽的人知道她是哪一天得到資訊的。她隨身攜帶了一個一次性的資訊大小和一個硬體隨機數發生器。
我想到的解決方案是:
Alice and Bob at home Alice creates new key(key1) > Bob (key1) Alice travels to Elbonia Alice creates new key (key2) XOR key1 > Bob (key2) Alice creates new key (key3) XOR key2 > Bob (key3) Alice creates msg + padding (msg) XOR key3 > Bob (msg) Alice creates new (rand) > Bob (rand) Alice creates new (rand) > Bob (rand) Alice travels home
這個系統比在她收到資訊的那天發送加密消息,在其他日子發送純隨機數據更好還是更差?
基本上,這是一個一次性的變體,每天都會發送一個密碼,包括一個
- 在實際消息發送前的幾天,一個新的隨機填充替換以前的隨機填充(與原始填充相同的大小),通過 XOR 與目前隨機填充加密;
- 在某一天,要發送的消息(填充到 pad 大小)與目前隨機 pad 進行 XOR 加密;
- 隨後幾天隨機(墊大小)。
這允許發送一條消息。實際上,接收者必須提前知道或弄清楚消息是在哪一天發送的,但對於實際消息來說,後者很容易。
這樣可行; 假設生成的所有隨機位完全獨立且無偏,它確保了與 one pad 相同的無條件安全性,並滿足了隱藏資訊發送日期的既定安全目標。生成器的質量是最重要的:例如,請注意,僅通過區分攻擊就可以找到實際消息在哪一天發送。
從實際的角度來看,與在不發送消息的每一天隨機發送相比,所提出的系統具有嚴重的操作缺陷:如果實際消息發送前任何一天的密碼失去(或亂碼),則消息不能被破譯(或亂碼)。
在所有生成的隨機位完全獨立且無偏的假設下,我看不到任何優勢。
更糟糕的是,無論是從實際情況還是從歷史角度來看。你陷入了一種非常常見但非常誘人的嘗試,以改進古老的一次性墊。歷史一再證明所使用的技術的完整性。密鑰材料從未在傳輸通道上擴展。運送關鍵物資的人已被處決。如果一個 pad 可以通過與密文相同的通信通道可靠地傳輸,他們就可以呆在家裡喝茶。
您可能在數學上能夠擴展,但是當您開始使用這個位和那個位執行所有 xor 時,您可能會冒著重複使用和暴露焊盤的風險。如果您的團隊可以訪問硬體隨機數生成器,請按預期使用它,並為 Alice 提供足夠的密鑰材料來生成真實和虛擬消息。允許填充你的願望。然後隨機或定時發送真偽消息,偽裝真實傳輸。
隱藏真正傳輸的日期被稱為掩蔽,security.SE 的人可能會對此進行更多說明並進行更廣泛的流量分析。這是嚴重的恐怖分子和戀童癖,因此請關注軍事信號情報。可以理解的是,那裡沒有很多當代材料(不包括業餘學術材料),但這裡有一份有趣的 1948 年文件,您可以從這裡開始。
是的,這是不必要的複雜。