SPN (Substitution-Permutation Network)
SPN是一种重要的分组密码结构,是现代对称密码设计中最常用的结构之一。它通过交替使用替换(S-box)和置换(P-box)操作来实现混淆(Confusion)和扩散(Diffusion)。
SPN的主要组成部分
替换层(Substitution Layer)
使用S-box(替换盒)进行非线性变换
提供混淆性,使明文和密钥之间的关系复杂化
S-box通常是固定的查找表,将输入映射到输出
S盒(替换)示例
假设有一个简单的4位输入/输出的S盒:
输入值(二进制) -> 输出值(二进制)
0000 -> 1110
0001 -> 0100
0010 -> 1101
0011 -> 0001
…等
实际使用例子:
输入:0010
查表后输出:1101
置换层(Permutation Layer)[线性函数]
重新排