SM3填充
使用 OpenSSL 生成长度为70字节的随机数,最后添加“你的8位学号+姓名首字母”的 ASCII 码,得到HEX字符串S1,提交S1。(4 分)
$ openssl rand -hex 70 > lzj.txt
$ cat lzj.txt
c2dd98fffc580d1741f29d236887404911cdd2a9f0feb4b2302e58ffa8fb89fd9e231f5c3666308d5ef5514d2d6939b0603676cdf7ded981a03249ea1d1e7f0116bcc5cfdfee
$ echo -n “20221327lzj” | od -tc -tx1
0000000 2 0 2 2 1 3 2 7 l z j
32 30 32 32 31 34 31 35 63 6a 73
0000013
$ vim lzj.txt
$ cat lzj.txt
c2dd98fffc580d1741f29d236887404911cdd2a9f0feb4b2302e58ffa8fb89fd9e231f5c3666308d5ef5514d2d6939b0603676cdf7ded981a03249ea1d1e7f0116bcc5cfdfee3230323231343135636a73
S1为
c2dd98fffc580d1741f29d236887404911cdd2a9f0feb4b2302e58ffa8fb89fd9e231f5c3666308d5ef5514d2d6939b0603676cdf7ded981a03249ea1d1e7f0116bcc5cfdfee3230323231343135636a73
按照商用密码标准对 S1进行填充,提交填充过程和填充好的HEX 字符串S2。要包含详细填充过程。 (5 分)
S1共有162个字符,即81个字节,即648bit。
l=648,二进制表示为1010001000,为10bit
则s2末尾为54个0+1010001000
s1长为648bit,648 + 1 +k与448在模512下同余,
计算得出k的长度为311bit
则填充后的s2为:
c2dd98fffc580d1741f29d236887404911cdd2a9f0feb4b2302e58ffa8fb89fd9e231f5c3666308d5ef5514d2d6939b0603676cdf7ded981a03249ea1d1e7f0116bcc5cfdfee3230323231343135636a73Â<80>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^B<88>