s盒

科技工作者之家 2020-11-17

在密码学中,S盒(Substitution-box)是对称密钥算法1执行置换计算的基本结构。S盒用在分组密码算法中,是非线性结构,其密码强度直接决定了密码算法的好坏。

基本信息S盒的功能就是一种简单的“代替”操作。S盒是将48比特压缩成32比特,S盒接受特定数量的输入48比特,经过8个盒将其转换为32比特输出2,如图1所示。

原理压缩后的密钥与扩展分组异或以后得到48位的数据,将这个数据送入S盒3,进行替代运算。替代由8个不同的S盒完成,每个S盒有6位输入4位输出。48位输入分为8个6位的分组,一个分组对应一个S盒,对应的S盒对各组进行代替操作。

一个S盒就是一个4行16列的表,盒中的每一项都是一个4位二进制数表示的十进制数。S盒的6个输入确定了其对应的那个盒。输入的高低两位做为行数H,中间四位做为列数L,在S-BOX中查找第H行L列对应的数据。(S盒的行列计数都是从0开始。)

8个S盒变换如下:

S1盒

|| ||

S2盒

|| ||

S3盒

|| ||

S4盒

|| ||

S5盒

|| ||

S6盒

|| ||

S7盒

|| ||

S8盒

|| ||

举例我们以s8盒为例,输入110011,第一位和第六位(最高位和最低位)组合为11(二进制),转换为十进制为3,则在s8盒中对应第三行。接下来我们计算列,原始数据第二位到第五位为1001(二进制),转换为十进制为9,则在s8盒中对应第九列。s盒8的第3行第9列的数字为12,转换为二进制为1100,因此用二进制1100来代替110011。

S盒代替是DES算法4的关键步骤,所有的其他的运算都是线性的,易于分析,而S盒是非线性的,相比于其他步骤,提供了更好安全性。

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。