DES算法-S盒计算

①将给定十六进制数全部转化为2进制数

eg:

0x010101010102,我们可以将其表示为二进制形式:

00000001 00000001 00000001 00000001 00000001 00000010

②每6位对应一个S盒:

S1:000000

S2:010000

S3:000100

...

S8:000010

③每个6位数的第一位和倒数第一位组成的二进制数对应十进制数为这个6位数对应S盒的行号(每个S盒4行16列,注意数字从0开始:0~3,0~15)

S2对应第一位和倒数第一位组成的二进制数为00,对应十进制为0,对应S2盒第0行

④每个6位数的第二位~倒数第二位组成的二进制数对应十进制数为这个6位数对应S盒的列号

S2对应第二位~倒数第二位组成的二进制数为1000,对应十进制为8,对应S2盒第8列

⑤查S盒表,根据③、④所得行、列找对应十进制数,转化为二进制

S1:0 行 0 列:14--1110

S2:0 行 8 列:9--1001

S3:0 行 2 列:9--1001

S4:1 行 0 列:13--1101

S5:0 行 0 列:2--0010

S6:0 行 8 列:0--0000

S7:0 行 2 列:2--0010

S8:0 行 1 列:2--0010

所以转换结果为1110 1001 1001 1101 0010 0000 0010 0010

⑥最后根据要求转化为十六进制等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值