在現實世界場景中選擇明文攻擊 (CPA) 的可能性?
在 CPA 中,據說攻擊者通過加密預言獲得密文,用於選擇攻擊者的明文。這是現實世界中的一個現實假設,其中對手獲得密文以選擇他們的明文?如果是這樣,請提供一些範例場景來說明對手如何為其明文獲取密文?
Bruce Schneier 預見到了你的懷疑,並在“應用密碼學”中直接回答了這個問題:
已知明文攻擊和選擇明文攻擊比您想像的更常見。密碼分析員獲得已加密的明文消息或賄賂某人加密選定的消息並非聞所未聞。您甚至可能不必賄賂某人;如果您向大使發送消息,您可能會發現它被加密並發送回他的國家以供考慮。許多消息都有密碼分析者可能知道的標准開頭和結尾。加密的原始碼特別容易受到攻擊,因為關鍵字經常出現:#define、struct、else、return。加密的可執行程式碼有同樣的問題:函式、循環結構等等。二戰期間,已知明文攻擊(甚至選擇明文攻擊)成功地用於對付德國人和日本人。大衛卡恩的書
$$ 794, 795, 796 $$有這類攻擊的歷史例子。
以下是參考書籍:
- D. Kahn,《密碼破譯者:秘密寫作的故事》,紐約:麥克米倫出版公司,1967 年。
- D. Kahn,Kahn on Codes,紐約:麥克米倫出版公司,1983 年。
- D. Kahn,抓住謎團,波士頓:Houghton Mifflin Co.,1991 年。
沒有必要在現實世界中遇到這樣的情況來激發定義。您希望在安全模型中排除一些較弱的對手,而 CPA 安全通常會涵蓋所有這些對手。
例如,考慮一種旨在用於加密一位的加密方案,例如“是”或“否”。在這種情況下,假設對手可以強迫某些當事方加密其選擇的消息並不是那麼不合理!特別是如果此響應取決於某些外部行為,可能由對手控制(或部分控制)。
更具體地說,考慮一個觀察員將向他的總部報告敵軍是否正在移動(是或否)的情況。顯然,通過攔截安全通道並充分調動部隊,可以發動 CPA 攻擊(如果我沒記錯的話,二戰期間確實發生過類似的事情……有人有參考嗎?)。
這裡的攻擊是有效的,因為輸入的分佈可以被對手改變。在其他一些場景中,這種關聯是有意義的,CPA 安全可以在不了解這種關聯的內部情況的情況下提供安全保證:通過允許對手按照自己的意願選擇消息,任何可能通過偏置輸入分佈的攻擊被排除。
一般來說,CPA 安全性的目標是避免方案的安全性受到可能的惡意輸入分佈的影響。我們希望安全性依賴於密鑰的分佈,而不是輸入的分佈。因此,即使輸入以某種方式與對抗行為相關,在 CPA 安全方案中,也無法從密文中了解明文。