Encryption

頻率分析如何應用於現代密碼?

  • November 16, 2019

我正在建構一個電腦程序來破譯 Caesar、Vigenere 和單字母替換密碼。所有這些都容易受到頻率分析的影響。然而,考慮到現代密碼的複雜性,它似乎並不適用於現實世界。在現代,頻率分析還能應用在哪些地方以使我的項目在現實世界中適用?

我得到的唯一建議是比特幣加密算法的應用。我不確定這是否是一個可行的選擇。是嗎?

經典密碼對字母進行操作。如果我們考慮對經典密碼的頻率攻擊,它會考慮字母的頻率。如果我們僅考慮分組密碼,現代密碼對塊進行操作 - 64、128 或更多位塊。讓我們看看如何對現代密碼執行頻率攻擊以推斷一些數據。

對數據庫的範例攻擊:

假設感測器網路已部署在農村地區,以供研究人員觀察動物。當檢測到動物的標籤時,節點會將這些資訊儲存在數據庫表中;為簡單起見,這裡僅提供動物的類型以及在 ECB 模式下加密的日期和時間;

|  TYPE  | D&Time| 
|-----------------
| 0x443  | 0x7FE | 
| 0x122  | 0x1E0 |
| 0x443  | 0x651 | 
| 0x443  | 0x6AA | 
| 0x084  | 0x09C | 
| 0x112  | 0xC9F | 
| 0x443  | 0x18D | 
| 0x112  | 0x76B | 

現在,假設偷獵者無法從節點中提取加密密鑰,但他們可以讀取資訊。他們可以從這些數據中學到什麼?

在歐洲央行模式下 $ E_k(x) = E_k(y) $ 當且當 $ x=y $ 這可能會洩露資訊。此模式用於equalitycount查詢加密數據庫,請參閱 Popa 等人的CryptDB論文。攻擊者可以計算密文的頻率並從中****推斷資訊。

根據Kerckhoffs 原則,我們假設他們知道除了鑰匙之外的一切。偷獵者也知道該地區,因此他們知道鹿或狼出現在該感測器節點周圍的頻率。假設鹿多於狼,那麼熊出現在這個地區。

如果我們查看密文頻率,則0x443出現最多。所以他們推斷它實際上代表了一隻鹿。同樣0x122是熊數據。

長話短說: 頻率分析可以破解確定性加密。如果您對數據的頻率有預先了解,您可以在不解密的情況下推斷資訊。因此,9 世紀對阿拉伯哲學家和數學家 al-Kindi 的攻擊仍然存在。

Naveed 等人的攻擊是使用電子病歷進行的。一些數據也是公開的,比如疾病的頻率、藥物銷售等。所以他們的實驗結果表明,可以恢復數量驚人的敏感資訊

**緩解措施:**不要使用 ECB 模式。然後,您不能對加密數據進行簡單的相等查詢。CryptDB 設計用於執行 TPC-C 的查詢以衡量能力和性能。

未來可能會在 FHE 下使用平等,但是,它可能不會輕易解決所有問題。

關於現代頻率分析的一些進一步閱讀;

引用自:https://crypto.stackexchange.com/questions/74786