S盒
在密碼學中,一個S盒(Substitution-box,替換盒)是對稱金鑰加密演算法執行替換計算的基本結構。在塊密碼中,它們通常用於模糊金鑰與密文之間的關係——香農的混淆理論[1]。
通常,S-Box接受特定數量的輸入位元m,並將其轉換為特定數量的輸出位元n,其中n 不一定等於m[1]。一個m×n的S盒可以通過包含2m條目,每條目n位元的尋找表實現。S盒通常是固定的(例如DES和AES加密演算法), 也有一些加密演算法的S盒是基於金鑰動態生成的(例如Blowfish和雙魚演算法加密演算法)。
DES的6×4位元S盒(S5)是一個很好的例子:
S5 | 中間四個位元 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | ||
首尾位元 | 00 | 0010 | 1100 | 0100 | 0001 | 0111 | 1010 | 1011 | 0110 | 1000 | 0101 | 0011 | 1111 | 1101 | 0000 | 1110 | 1001 |
01 | 1110 | 1011 | 0010 | 1100 | 0100 | 0111 | 1101 | 0001 | 0101 | 0000 | 1111 | 1010 | 0011 | 1001 | 1000 | 0110 | |
10 | 0100 | 0010 | 0001 | 1011 | 1010 | 1101 | 0111 | 1000 | 1111 | 1001 | 1100 | 0101 | 0110 | 0011 | 0000 | 1110 | |
11 | 1011 | 1000 | 1100 | 0111 | 0001 | 1110 | 0010 | 1101 | 0110 | 1111 | 0000 | 1001 | 1010 | 0100 | 0101 | 0011 |
給定6位元輸入,將首尾兩個位元作為行條件、中間四個位元(inner four bits)作為列條件進行查表,最終獲得4位元輸出。例如,輸入「011011」,通過首尾兩個位元「01」和中間的位元「1101」進行查表,最終的輸出應該是「1001」[2]。
參見
參考文獻
- ^ 1.0 1.1 Chandrasekaran, J. et al. A Chaos Based Approach for Improving Non Linearity in the S-Box Design of Symmetric Key Cryptosystems. Meghanathan, N. et al. (編). Advances in Networks and Communications: First International Conference on Computer Science and Information Technology, CCSIT 2011, Bangalore, India, January 2-4, 2011. Proceedings, Part 2. Springer. 2011: 516 [2013-03-23]. ISBN 978-3-642-17877-1. (原始內容存檔於2016-05-11).
- ^ Buchmann, Johannes A. 5. DES. Introduction to cryptography Corr. 2. print. New York, NY [u.a.]: Springer. 2001: 119–120. ISBN 0-387-95034-6.