­

DES演算法中子密鑰的產生

  • 2019 年 12 月 29 日
  • 筆記

DES (數據加密標準 Data Encryption Standard),因密鑰長度過短及可能含有的後門引起爭議,現也已經不在作為標準,由AES取代。在學了《網路安全技術》關於加密演算法中的DES後,寫了這一篇筆記,主要寫的是DES演算法中子密鑰的生成演算法。

  1. 初始密鑰也稱種子密鑰,64位,經過子密鑰換位表PC-1的變換後,由64位變成56位,這56位分為兩組C0和D0; > 子密鑰換位表PC-1 57 49 41 33 25 17 09 01 58 50 42 34 26 18, 10 02 59 51 43 35 27 19 11 03 60 52 44 36 63 55 47 39 31 23 15 07 62 54 46 38 30 22, 14 06 61 53 45 37 29 21 13 05 28 20 12 04
  2. C0和D0作一次循環左移得到C1和D2; > 循環左移的規則為:16次循環,每次左移 1 1 2 2, 2 2 2 2, 1 2 2 2, 2 2 2 1
  3. C1和D2合併為56位,再經過子密鑰換位表PC-2的變換後,由56位變成48位,即得到第一個子密鑰K1 > 子密鑰換位表PC-2 14 17 11 24 01 05 03 28 15 06 21 10 23 19 12 04 26 08 16 07 27 20 13 02 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32
  4. C1和D2,由C0和D0經過循環左移得到。C2和D2,由C1和D1經過循環左移得到,以此類推。

PS : 到底是密鑰(yao)還是密鑰(yue) 數據加密標準