頻率分析如何應用於現代密碼?
我正在建構一個電腦程序來破譯 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 $ 這可能會洩露資訊。此模式用於
equality
和count
查詢加密數據庫,請參閱 Popa 等人的CryptDB論文。攻擊者可以計算密文的頻率並從中****推斷資訊。根據Kerckhoffs 原則,我們假設他們知道除了鑰匙之外的一切。偷獵者也知道該地區,因此他們知道鹿或狼出現在該感測器節點周圍的頻率。假設鹿多於狼,那麼熊出現在這個地區。
如果我們查看密文頻率,則
0x443
出現最多。所以他們推斷它實際上代表了一隻鹿。同樣0x122
是熊數據。長話短說: 頻率分析可以破解確定性加密。如果您對數據的頻率有預先了解,您可以在不解密的情況下推斷資訊。因此,9 世紀對阿拉伯哲學家和數學家 al-Kindi 的攻擊仍然存在。
Naveed 等人的攻擊是使用電子病歷進行的。一些數據也是公開的,比如疾病的頻率、藥物銷售等。所以他們的實驗結果表明,可以恢復數量驚人的敏感資訊
**緩解措施:**不要使用 ECB 模式。然後,您不能對加密數據進行簡單的相等查詢。CryptDB 設計用於執行 TPC-C 的查詢以衡量能力和性能。
未來可能會在 FHE 下使用平等,但是,它可能不會輕易解決所有問題。
關於現代頻率分析的一些進一步閱讀;
- Naveed 等人對保護屬性加密數據庫的推理攻擊。人。對電子病歷應用頻率攻擊。
- 關於使用 CryptDB 保護 Web 應用程序的難度,作者 Akın和 Sunar,舉例說明如何從醫院記錄中推斷數據。
- 可搜尋加密的訪問模式披露: Saiful Islam 等人的分支、攻擊和緩解。人。