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

# 随机数r的长度计算
r_hex = "955267972250531562d4b3f8bad84e413142d61579386e160616778b8d90a020d720dada53f479ed4c8c7c142786810b70f4a0eae5616aaff8339cde486822bed86eb996de4d480c98d121f45172ae569a9d66018fda199f4e441b88d437bf211e2999f6e899ae4f7881243aca31e8cc07ade176756ad72d9df04e0016970b140fbcf68595b0e1f8c3965f66b439c2ca2d233eb01e46ef57db1a8238b6c06f3794a99df7f661af04d2c44da858afd4489c494795f82d533a46ef5fc8e860a7e6830902ea2d9e0e01618811c9d5a05e0a8ed3a14e9af6eb01f8757ac41beeb359c2cbca67dccec79a73c70789d04e595a1b7f0056aad340de00053b8d049fo0fec4f50dc26e5170691c09e96e3b3ad34718841ec17a1d5f764ef04fef317581534af5a871edcfod30a142a847d901a5a9bff2936264185f634d2ad0f946b3e7fa9cf1e8a2a66ad7df6210ec1295f12cdc5b9eb33b8631b7d70548a8fc5341920ef0ae6c63d1aada60a48cd84705a687c6c3055d9851a3e321090b2570054dc0aeaaf218ebf8fd7255cab961fe343123232e176570f4b4b835004057d441"
# 计算r的长度(以位为单位)
r_length_bits = len(r_hex) * 4
# 显示原始消息的长度
r_length_bits
原始随机数r的长度为3304位
首先追加1,就是追加一个80(十六进制),因为在二进制中表示为10000000。
然后计算需要追加多少个0。这些0也是以十六进制表示,计算需要追加多少个00来满足长度要求。
最后将原始消息长度(3304位)以64位二进制形式追加到末尾,长度需要转换为十六进制表示。


浙公网安备 33010602011771号