雙DES在中間攻擊中相遇:候選密鑰的數量
我是密碼學的新手,在一本書中發現了這個語句,它說當有一個消息塊時 $ 64 $ 位並使用密鑰 $ 56 $ 位,我們會得到 $ \frac{2^{112}}{2^{64}}=2^{48} $ 如果我們加密給定的明文並解密相應的密文(在雙 DES 中),則候選密鑰。
所以,假設使用一個鍵,每個 $ 2^{64} $ 明文將再次映射到 $ 2^{64} $ 密文,讓我們也假設加密的功能是這樣的,沒有重複的密文,也就是說,映射是雙射的。現在,如果我們為每個密鑰製作一組新的密文,總共會有 $ 2^{56} $ (在……之外 $ 2^{64}! $ 可能的排列)不同的集合,對應於不同的映射。我的問題是,我們從哪裡得到 $ 2^{64} $ 在第一句話中提到?我知道有 $ 2^{64} $ 可能的密文,但我們沒有得到一組 $ 2^{56} $ 來自加密的密文,還有來自解密的那麼多?那麼候選鍵的數量不是這兩個集合的交集的元素數量嗎?
我的問題是,我們從哪裡得到 $ 2^{64} $ 在第一句話中提到?
有幾種等效的方法來看待這個問題。
一種方法是將帶有不正確密鑰的 2DES 視為完全隨機映射;有 $ 2^{112} $ 可能的密鑰,每個不正確的密鑰都會將我們已知的一個明文塊映射到一個隨機密文塊;有 $ 2^{64} $ 可能的密文塊(其中 1 是我們知道有效的);因此每個鍵都會正確地進行映射 $ 1 / 2^{64} $ ; 因此,我們期望碰巧獲得正確映射的鍵數量約為 $ 2^{112} / 2^{64} $ (如段落所述)。
那麼候選鍵的數量不是這兩個集合的交集的元素數量嗎?
這是看待問題的另一種同樣有效的方式。
如果我們將帶有不正確密鑰的 DES(加密和解密)視為完全隨機映射,那麼 $ 2^{56} $ 來自第一級加密的密文,以及 $ 2^{56} $ 二級解密的明文是完全隨機的。有 $ 2^{64} $ 明文可能來自二級解密,因此特定塊是可能的二級解密,機率約為 $ 2^{56}/2^{64} = 2^{-8} $ . 有 $ 2^{56} $ 來自第一級的密文,每個密文恰好是一個可能的第二級解密 $ 2^{-8} $ , 所以交叉口的預期大小是, 等待它…, $ 2^{56} \cdot 2^{-8} = 2^{48} $ .