Des

如何執行初始排列 64 位 DES 以導出ķķK?

  • March 24, 2020

只對前 64 位明文進行 DES 加密,這些0’ 和1’ 是什麼?他們的意思是我需要用這個值111101來推導 $ K $ ?

我想知道如何使用初始排列來推導 $ K $ 使用置換選擇 1 和置換選擇 2。

我想知道如何使用初始排列來推導 $ K $ 使用置換選擇 1 和置換選擇 2

您從 DES 密鑰開始 $ K $ ,通常表示為 8 個字節。那是64位。DES 將這些位從 1 到 64 編號,從讀取順序的第一個字節的高位開始,移動到低位,然後在讀取順序的字節的第 8位之後移動到下一個字節,這樣第 42位是讀取順序中第 6個字節的第二高位,可通過該字節與 40 h的二進制與來測試。

從這些位 64 位 $ K $ 它被提取兩個 28 位量 $ C_0 $ 和 $ D_0 $ 通過挑選每張桌子的位 $ PC1 $ . 該表的頂部(分別底部)給出了位號 $ K $ 形成的位 $ C_0 $ (分別。 $ D_0 $ )。你會注意到 $ PC1 $ 不包含 8 的倍數,這意味著每個字節的低位 $ K $ 被忽略。這故意削弱了 DES

位 $ C_0 $ 編號為 1 到 28,並且位 $ D_0 $ 編號為 29 至 56,按閱讀順序排列 $ PC1 $ .

對於第一輪加密,從 $ C_0\mathbin|D_0 $ 通過為每個表挑選位來提取八個 6 位數量(第一輪的子鍵 1 到 8) $ PC2 $ , 哪些行給出了位數 $ C_0\mathbin|D_0 $ 形成每個 6 位數量的位。八位 $ C_0\mathbin|D_0 $ 被放在一邊,但將在下一輪使用,經過一些輪換 $ C_0 $ (分別。 $ D_0 $ ) 屈服 $ C_1 $ (分別。 $ D_1 $ ).

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