科技工作者之家
科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。
科技工作者之家 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盒是非线性的,相比于其他步骤,提供了更好安全性。
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学