代换-置换网络

维基百科,自由的百科全书
跳转至: 导航搜索
简略表示的SPN算法变种,其中包括三轮加密,使用多个S盒和P盒,加密了16位的明文到16位密文。S盒由Si表示,P盒由 P表示,轮密钥为Ki

密码学中,代换-置换网络英语:Substitution-Permutation Network)是乘积密码分组加密的一种,它的出现因为1949年克劳德·香农设想找到一种通过简单代换-置换方式的安全加密方式。

简介[编辑]

代换-置换网络简称SPN。SPN 是一串分组密码中相关的数学运算,AES是一个很好的说明例子。这样一个加密网络使用明文块和密钥作为输入,并通过多“轮”代换操作和置换操作分别产生密文块。代换(Substitution)和置换(Permutation)分别被称作S盒和P盒。由于其实施于硬件的高效性,SPN的应用十分广泛。[1]

定义[编辑]

一个SPN包括两个长度分别为l, m的映射变换,变换结果为lm分组长度的明文到相同分组长度的密文空间。为对分组进行加密,需要一个同样长度为lm密钥。而该密钥每一轮加密中均不相同,由初始密钥K按照一定原则产生。加密主要包括三个部分:代换,置换和轮密钥混合(通常为xor操作)。[2] 密钥的生成规则称为密钥编排算法

定义:

\pi_{s}: \lbrace 0,1 \rbrace^l \to \lbrace 0,1 \rbrace^l

\pi_{p}: \lbrace 1,2,..,lm \rbrace \to \lbrace 12,..,lm \rbrace

为S盒和P盒。加密共N轮。则对

K \subseteq (\lbrace 0,1 \rbrace^{lm})^N

的密钥编排方案,使用如下算法顺序加密明文x

  • \pi_{s}: x \longrightarrow w
  • \pi_{p}: w \longrightarrow u
  • xor: u, K^N \longrightarrow v

直至生成密文。

变种[编辑]

被选作高级加密标准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.