代換-置換網路
在密碼學中,代換-置換網路(或譯作置換排列網路,英語:Substitution-Permutation Network,縮寫作SP-network或SPN)是乘積密碼和分組加密的一種。美國數學家克勞德·香農為了利用簡單的代換-置換方式進行常規加密,在1949年發明了代換-置換網路。
簡介
[編輯]代換-置換網路是一系列被應用於區塊加密法中相關的數學運算,高級加密標準(英語:AES)、3-Way、Kuznyechik、PRESENT、SAFER、SHARK、Square都有涉用。這種加密網路使用明文塊和金鑰塊作為輸入,並通過交錯的若干「輪」(或「層」)代換操作和置換操作產生密文塊。代換(Substitution)和置換(Permutation)分別被稱作S盒(替換盒,英語:S-boxes)和P盒(排列盒,英語:P-boxes)。由於其實施於硬體的高效性,SPN的應用十分廣泛。[1]
定義
[編輯]一個SPN包括兩個長度分別為l, m
的對映變換,變換結果為lm
分組長度的明文到相同分組長度的密文空間。為對分組進行加密,需要一個同樣長度為lm
的金鑰。而該金鑰每一輪加密中均不相同,由初始金鑰K
按照一定原則產生。加密主要包括三個部分:代換,置換和輪金鑰混合(通常為互斥或(英語:XOR)操作)。[2] 金鑰的生成規則稱為金鑰編排演算法。
定義:
為S盒和P盒。加密共N
輪。則對
的金鑰編排方案,使用如下演算法順序加密明文x
:
直至生成密文。
變種
[編輯]被選作進階加密標準的Rijndael使用的就是8位元對映到8位元的S盒,金鑰長度最小為128位元,最小輪數為10,分組長度同樣為128位元。該大小的S盒和金鑰長度保證了安全性。常用的變種包括使用不止一個S盒,或者在每一輪中增加或替換一個可逆的線性變換,這可以在進階加密標準中看到。
參見
[編輯]- Feistel架構
- 乘積密碼(英語:Product cipher)
- Square (cipher)
- 國際資料加密演算法(英語:IDEA)
參考文獻
[編輯]延伸閲讀
[編輯]- Katz, Jonathan; Lindell, Yehuda. Introduction to Modern Cryptography. CRC Press. 2007. ISBN 9781584885511.
- Stinson, Douglas R. Cryptography. Theory and Practice Third. Chapman & Hall/CRC. 2006. ISBN 1584885084.