(4) 任何一个S盒的6位输入中,若其中某一位的输入不发生变化,当其他的5位输入发生变化的时候,输出的数里面0与1的数目分布总数一定是近似相等的。
轮函数中的代换/选择盒是由8个S盒组成,S盒将48位的数据均匀分成8组,每组6位,每个S盒的输入是6位,输出是4位,对于Si盒,它的6位输入中,第一位和第751位形成一个两位的二进制数用来选择Si的行,中间4位用来选择列。行与列选定后,得到其交叉位置的十进制数,将这个数表示为4位的二进制数就可以得到这一个S盒的输出数据,最后8个S盒出来的数据合起来组成32位的输出。下面列出了对8个S盒的定义:
表4 S1盒的定义
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
表5 S2盒的定义
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 18 10 1 3 15 4 2 11 6 7 12 0 5 14 9
表6 S3盒的定义
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 VHDL基于DES数据加密标准的加解密系统设计(4):http://www.751com.cn/zidonghua/lunwen_8869.html