Des

為什麼 DES 不是理想的密碼?

  • May 30, 2018

來自 Coursera 上的 Cryptography I,第 2 週,“詳盡的密鑰搜尋攻擊”:

現在讓我們假設 DES 是所謂的理想密碼

$$ … $$ 當然,DES 不是 2^56 個隨機函式的集合。

Boneh 教授沒有對此提供任何解釋,他只是順便提到了一些顯而易見的事情。但是為什麼 DES 不是一個理想的密碼呢?僅僅是因為根本沒有理想的密碼嗎?

還有一個後續問題,如果 DES 不是 2^56 個隨機排列的集合,那麼它實際上提供了多少個排列?我如何計算這個數字?

DES 使用 56 位密鑰(正式地,一個 64 位密鑰,其中 8 位被簡單地忽略),因此它代表了一個完全 $ 2^{56} $ 排列(*)。

如果要在 64 位塊空間的所有排列中隨機選擇一個排列,則有 $ 2^{64}! $ 這樣的排列,一個非常大的數字,平均而言,你需要, $ \log 2^{64}! $ 位來簡單地表示這種排列,即大約 1440 億千兆字節。現在,給定密鑰的 DES 可以以更緊湊的方式表示(執行 DES 的程式碼適合幾個千字節,密鑰需要額外的 56 位)。從這個意義上說,DES 從可以用幾千字節程式碼表示的極少數(相對而言)中選擇排列。

如果您願意,如果您有一台預算為 2048 字節的程式碼和數據的電腦,那麼最多有 $ 2^{16384} $ 該電腦的可能程序,因此只能表示 $ 2^{16384} $ 不同的函式(它們中的大多數實際上不會執行或做任何有用的事情,即使對於那些執行終止的函式,大多數也不會是給定 64 位塊空間的排列)。 $ 2^{16384} $ 已經是一個令人難以置信的大數字,但與 64 位塊上的排列數量相比,它微不足道,大約 $ 2^{1153978594521722658473.7} $ (我用斯特林公式計算)。

“理想密碼”應該是一系列排列,例如每個密鑰代表整個可能排列集合中的一個隨機選擇。那套太厲害了 為了實際可實施,具體的分組密碼必須被限制在這種排列的一個非常小的子集中,即在給定的預算內可以存在一些程式碼來實現它們的排列。從這個意義上說,沒有具體的分組密碼可以是“理想的”。

(*) 據我所知,並不能證明它們都是不同的;但是,似乎不可能有任何兩個完全匹配。

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