利用一次性鍵盤鍵重用?
假設 Alice 想要發送加密(在一次性密碼下) $ m_1 $ 和 $ m_2 $ 通過公共渠道發給 Bob。愛麗絲和鮑勃有一個共享密鑰 $ k $ ; 但是,兩條消息的長度都與密鑰相同 $ k $ . 由於 Alice 非常懶惰(並且不知道流密碼),她決定只重用密鑰。
Alice 發送密文 $ c_1 = m_1 \oplus k $ 和 $ c_2 = m_2 \oplus k $ 通過公共渠道給 Bob。不幸的是,Eve 截獲了這兩個密文併計算出 $ c_1 \oplus c_2 = m_1 \oplus m_2 $ .
夏娃可以做什麼 $ m_1 \oplus m_2 $ ?
直覺地說,愛麗絲和鮑勃不想 $ m_1 \oplus m_2 $ 落入夏娃的手中,但夏娃究竟應該如何繼續她的攻擊呢?
有一個很好的圖形表示(我在 cryptosmith 上找到,但他們不斷改變他們的 url 結構,所以我在這裡添加了圖形)重複使用一次性墊可能出現的問題。
假設你有圖像
然後使用二進制一次性密碼(黑白異或)對其進行加密
.
您將獲得以下極其安全的加密
.
如果你用同樣的一次性密碼加密一張笑臉,
你得到另一個安全加密
.
但是如果你兩者都有並且你把它們異或在一起
然後你得到圖像
正如您可以定性和直覺地看到的那樣,這是非常不安全的。
多次重複使用相同的密鑰被稱為賦予加密“深度”——直覺地說,給出的深度越多,關於明文的資訊就越有可能包含在加密文本中。
正如 ir01 所提到的,已經研究了“剝離”分層文本的過程,並且這些方法隨著層數的增加而改進。
有兩種方法,稱為統計分析或頻率分析和模式匹配。
請注意,在統計分析中,Eve 應該計算頻率 $ aLetter \oplus aLetter $ 使用這樣的工具。使用頻率分析的一個真實的歷史例子是VENONA 項目。
編輯:進行統計分析 $ aLetter \oplus aLetter $ 像這樣說:
如果一個角色有分佈 $ X $ ,後面的兩個字元 $ c_1 \oplus c_2 $ 有機率 $ P $ 是 $ c_1 $ , $ c_2 $ .