密碼學/S盒
外觀
< 密碼學
在密碼學中,S盒(替換盒)是對稱金鑰演算法的基本組成部分,用於執行替換操作。在分組密碼中,它們通常用於模糊金鑰和密文之間的關係——克勞德·夏農的混淆特性。[1] 在許多情況下,S盒的精心選擇是為了抵抗密碼分析。
一般來說,S盒接受一定數量的輸入位 m,並將它們轉換為一定數量的輸出位 n:一個 m×n S盒可以實現為一個查詢表,其中包含 個 n 位的單詞。通常使用固定表,如資料加密標準 (DES),但在某些密碼中,表是從金鑰動態生成的;例如 Blowfish 和 Twofish 加密演算法。布魯斯·施奈爾將 IDEA 的模乘步驟描述為一個金鑰相關的 S 盒。
給定一個 6 位輸入,透過使用外側兩位(第一位和最後一位)選擇行,使用內側四位選擇列來找到 4 位輸出。例如,輸入 “011011” 具有外側位 “01” 和內側位 “1101”;相應的輸出將是 “1001”。
DES 的 8 個 S 盒多年來一直是深入研究的主題,原因是人們擔心在密碼中可能存在一個後門——一種只有設計者知道的漏洞。S 盒設計標準最終公佈[2],這是在公開重新發現差分密碼分析後,表明它們已被精心調整以提高對這種特定攻擊的抵抗力。其他研究已經表明,即使對 S 盒進行微小的修改也會顯著削弱 DES。
在良好 S 盒的設計方面已經進行了大量的研究,並且與 DES 釋出時相比,人們對其在分組密碼中的使用有了更多的瞭解。
- ↑ Chandrasekaran, J. et al. (2011). "A Chaos Based Approach for Improving Non Linearity in the S-Box Design of Symmetric Key Cryptosystems". 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. p. 516. ISBN 978-3-642-17877-1.
{{cite book}}: Explicit use of et al. in:|authors=(help); Unknown parameter|editors=ignored (|editor=suggested) (help)CS1 maint: uses authors parameter (link) - ↑ Coppersmith, Don (1994). "The Data Encryption Standard (DES) and its strength against attacks" (PDF). IBM Journal of Research and Development. 38 (3): 243–250. doi:10.1147/rd.383.0243. Retrieved 2007-02-20.
{{cite journal}}: CS1 maint: ref duplicates default (link)