代換-置換網路

密碼學中,代換-置換網路(或譯作置換排列網路,英語:Substitution-Permutation Network縮寫SP-networkSPN)是乘積密碼分組加密的一種。美國數學家克勞德·香農為了利用簡單的代換-置換方式進行常規加密,在1949年發明了代換-置換網路。

簡略表示的SPN演算法變種,其中包括三輪加密,使用多個S盒和P盒,加密16位元的明文到等長密文。S盒由Si表示,P盒由 P表示,輪金鑰為Ki

簡介 編輯

代換-置換網路是一系列被應用於區塊加密法中相關的數學運算,高級加密標準(英語:AES)3-Way英語3-WayKuznyechik英語KuznyechikPRESENT英語PRESENT_(cipher)SAFER英語SAFERSHARKSquare都有涉用。這種加密網路使用明文金鑰作為輸入,並通過交錯的若干「輪」(或「層」)代換操作和置換操作產生密文。代換(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盒,或者在每一輪中增加或替換一個可逆的線性變換,這可以在進階加密標準中看到。

參見 編輯

參考文獻 編輯

  1. ^ 《密碼學原理和實踐》[加]道格拉斯·R·史丁森 3.2節 置換-代換網路。
  2. ^ "Principles and Performance of Cryptographic Algorithms" by Bart Preneel, Vincent Rijmen, and Antoon Bosselaers.

延伸閲讀 編輯