S盒在DES演算法中起什麼作用?


在DES中,它是由美國國家標準與技術研究院(NIST)引入的對稱金鑰分組密碼。DES於1977年1月在《聯邦公報》中作為FIPS 46釋出。

NIST可以將DES表示為在非機密軟體中使用的標準。由於其釋出,DES已成為使用最廣泛的對稱金鑰分組密碼。NIST後來釋出了一個新標準(FIPS 46-3),該標準確認了將來軟體中使用三重DES(重複DES密碼三次)。

DES具有64位分組大小,並在實現過程中需要56位金鑰(從完整的64位金鑰中剝奪了8個奇偶校驗位)。DES是一種對稱密碼系統,特別是16輪Feistel密碼。

要進行加密的分組會經過初始置換IP,然後進行復雜的金鑰相關計算,最後進行置換,該置換是初始置換IP−1的反置換。

置換是由一個函式實現的操作,該函式將第j個位置的元素更改為第k個位置。金鑰相關的計算可以用一個稱為密碼函式的函式f和一個稱為金鑰排程函式的函式KS來簡單表示。

S盒在函式F中的作用是替換包括一組八個S盒。每個S盒都以6位作為輸入並生成4位輸出,如下所示:輸入到盒Si的第一位和最後一位形成一個2位二進位制數,用於選擇由Si表中四行表示的四個替換之一。

中間四位選擇十六列之一。然後將由行和列選擇的單元格中的十進位制值轉換為其4位表示形式以生成輸出。例如,在S1中,對於輸入011001,行是01,列是1100。行1,列12中的值為9,因此輸出為1001。

S盒的原理如下:

  • 每個S盒必須有6位的輸入和4位的輸出。

  • S盒的任何輸出位都不應該太接近輸入位的線性函式。(S盒是DES中唯一的非線性元素,它們的非線性是演算法的強度。)

  • S盒的每個“行”都應包含所有可能的輸出。(這使輸出隨機化。)

  • 如果兩個輸入到S盒的輸入實際上只在一個位元上不同,則它們的輸出必須至少在兩個位元上不同。

  • 如果兩個輸入到S盒的輸入在中間兩位上特別不同,則它們的輸出應至少在兩位上不同。

  • 如果兩個輸入到S盒的輸入在其前兩位上不同並且在其後兩位上相同,則這兩個輸出應不同。

更新於:2022年3月14日

17K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.