简略表示的SPN算法变种,其中包括三轮加密,使用多个S盒和P盒,加密16位的明文块到等长密文块。S盒由Si表示,P盒由 P表示,轮密钥为Ki。
在密码学中,代换-置换网络(或译作置换排列网络,英語: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
:
![{\displaystyle \pi _{s}:x\longrightarrow w}](https://wikimedia.org/api/rest_v1/media/math/render/svg/72507de4538e46943a80e1421b704cb8203622d5)
![{\displaystyle \pi _{p}:w\longrightarrow u}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2e17d583efab52044577577ff87addfb84e63d7e)
![{\displaystyle xor:u,K^{N}\longrightarrow v}](https://wikimedia.org/api/rest_v1/media/math/render/svg/92578bf1d0a4f832f2c5a0c2023fb1e6ed91d25b)
直至生成密文。
变种
被选作高级加密标准的Rijndael使用的就是8比特映射到8比特的S盒,密钥长度最小为128比特,最小轮数为10,分组长度同样为128比特。该大小的S盒和密钥长度保证了安全性。常用的变种包括使用不止一个S盒,或者在每一轮中增加或替换一个可逆的线性变换,这可以在高级加密标准中看到。
參見
参考文献
- ^ 《密码学原理和实践》[加]道格拉斯·R·史丁森 3.2节 置换-代换网络。
- ^ "Principles and Performance of Cryptographic Algorithms" by Bart Preneel, Vincent Rijmen, and Antoon Bosselaers.
延伸閲讀
|
---|
常见加密算法 | |
---|
次常见加密算法 | |
---|
其他加密算法 | |
---|
密码设计 | |
---|
攻击(密码分析) | |
---|
密码标准 | |
---|
工作方式 | |
---|
|
|
|