Keys

DES算法密鑰生成中的壓縮

  • February 7, 2016

有沒有人有虛擬碼或算法,甚至是DES算法的壓縮(pc2)圖?

我找不到丟棄的位之間的關係,即使我手動執行它也不會產生正確的結果。我的意思是把作為輸出的第一位(子鍵 $ K_i $ ) 第 14 位 $ C $ ,輸出的第 2 個是第 17 個 $ C $ .. 輸出的第 25 位是第 41 位 $ D $ .

以上是正確的還是我誤解了?

PC-2 替換轉換了 28 位的 56 位連接 $ C $ 和 $ D $ 在它們被適當地旋轉後,進入 48 位子鍵 $ K_i $ 圓形 $ i $ ,在此之前使用 XOR 與擴展的 48 位輸出組合 $ E $ 並為 8 個 S 表中的每一個分為 6 位條目。定義 PC-2 的表格在定義標準中相應地組織為 8 行,每行 6 個值。

14  17  11  24   1   5
3  28  15   6  21  10
23  19  12   4  26   8
16   7  27  20  13   2
41  52  31  37  47  55
30  40  51  45  33  48
44  49  39  56  34  53
46  42  50  36  29  32

這 $ j^\text{th} $ 以讀取順序掃描時表中的整數是輸入中對應於 $ j^\text{th} $ 輸出中的位(在 DES 中,約定是位從 1 開始編號,1 是第一位或左位,或八位組或四位組字元串中的第一個或左八位組中的最高有效位,八位組和以大端十六進製表示的四重奏)。

因此,表中的整數 1..28 對應於來自的位 $ C $ (並且恰好指向前 4 個 S-box);其他的對應於來自的位 $ D $ (去其他 S 盒)。

換句話說,我們通過獲取第 14位、第 17位、第 11位.. 第 13位和第 2位來形成輸出的前24位 $ C $ ; 以及接下來的 24 位輸出,取第 13位、第 24位、第 3位.. 第 1位和第4位 $ D $ (我們從 28 以上的整數中減去 28 得到索引 $ D $ ).

整數9 18 22 25且不35 38 43 54在表中;它們對應於 $ C $ 和 $ D $ 沒有在這一輪中使用(但由於與 PC-2 一起使用的移位計數的組合,已經或將在上一輪或下一輪,如果有的話)。

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