SM3填充-课堂测试

0. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务
1. 使用OpenSSL的命令计算一个小于2048的随机数len,并生成长度为len的一个随机数r,提交截图(5')
2. 按照SM3的算法要求对r进行填充,提交详细过程和截图。(10’)

1. 使用OpenSSL的命令计算一个小于2048的随机数len,并生成长度为len的一个随机数r,提交截图

2. 按照SM3的算法要求对r进行填充,提交详细过程和截图。

1.计算消息长度,并转化为二进制

Len:52字节*8=416bit

2.将信息转化为二进制

(十六进制)f39b77fcdba300b017f568b134297c6f421f7f1ec1f594eede3c975797ca73b4d4402b37d2e7f046c327ea7d96bd2730ce2a01b5
(二进制)11110011100110110111011111111100110110111010001100000000101100000001011111110101011010001011000100110100001010010111110001101111010000100001111101111111000111101100000111110101100101001110111011011110001111001001011101010111100101111100101001110011101101001101010001000000001010110011011111010010111001111111000001000110110000110010011111101010011111011001011010111101001001110011000011001110001010100000000110110101

3.在消息后面填充比特1

111100111001101101110111111111001101101110100011000000001011000000010111111101010110100010110001001101000010100101111100011011110100001000011111011111110001111011000001111101011001010011101110110111100011110010010111010101111001011111001010011100111011010011010100010000000010101100110111110100101110011111110000010001101100001100100111111010100111110110010110101111010010011100110000110011100010101000000001101101011

4.填充k比特0

(L+1+k)=448mod512,K=31
0000000000000000000000000000000

5.用二进制表示消息长度(共8个字节),转化为二进制

00000000 00000000 00000000 00000000 00000000 00000000 00000001 10100000

6.最后的消息填充结果

11110011100110110111011111111100110110111010001100000000101100000001011111110101011010001011000100110100001010010111110001101111010000100001111101111111000111101100000111110101100101001110111011011110001111001001011101010111100101111100101001110011101101001101010001000000001010110011011111010010111001111111000001000110110000110010011111101010011111011001011010111101001001110011000011001110001010100000000110110101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000110100000

posted @ 2024-04-08 11:15  20211211  阅读(30)  评论(0编辑  收藏  举报