AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 密码测评分值分类刷题 题目详情
CB3F3A72DFA00001A945B90064109240
密码测评分值分类刷题
2,114
单选题

SM3密码杂凑算法的输入消息为“abc”,填充后的消息中,一共有( )个全“0”消息字。

A
8
B
10
C
12
D
14

答案解析

正确答案:D

解析:

好的!让我们一起探讨一下这道关于SM3密码杂凑算法的题目。 ### 题目背景 SM3是一个中国国家标准的密码杂凑算法,类似于国际上著名的SHA-256算法。它的主要功能是将任意长度的消息转化为一个固定长度的输出,通常称为“摘要”或“哈希值”。在实际应用中,为了确保输入消息的长度满足算法的要求,需要对原始消息进行填充处理。 ### 填充规则 在SM3算法中,对于输入的消息进行填充时,有以下步骤: 1. 在消息后面添加一位“1”; 2. 然后连续添加若干位“0”,直到消息总长度加上64位长度的表示后达到512比特(即64字节)的整数倍为止; 3. 最后追加一个64位的数字,表示原始消息的长度(以比特计)。 ### 具体分析 我们来看一下题干中的具体例子:输入消息为“abc”。 - “abc”在ASCII码中的比特表示形式为: - a (97): 01100001 - b (98): 01100010 - c (99): 01100011 总共24比特。 - 按照SM3填充规则,首先在“abc”的后面添加一个“1”位,接着添加若干个“0”位,直到消息长度加上64位的原始消息长度表示之后成为512比特的整数倍。 - 我们现在计算一下,原始消息“abc”有24比特,再加上1比特的“1”,总共25比特。为了使得消息长度加上64比特的长度表示后达到512比特的整数倍,我们需要: \[ 25 + n \times 0 + 64 = 512 \times m \] 其中 \(n\) 表示添加的“0”的数量,\(m\) 是最终消息长度除以512得到的结果。 - 从上面的等式可以看出,为了让左边尽可能接近512比特(最小的整数倍),我们选择 \(m = 1\) ,那么: \[ 25 + n + 64 = 512 \] 解得: \[ n = 512 - 25 - 64 = 423 \] - 因此,在添加了423个“0”之后,再追加64比特的原始消息长度表示(即24比特),最终消息长度正好为512比特。 - 但是,题目问的是“全‘0’消息字”的数量。根据定义,一个“消息字”是指64比特的信息。由于423比特无法直接形成完整的64比特字,我们需要将423比特扩展到最近的64比特的整数倍,即448比特(7个完整的消息字)。因此,额外增加了25个“0”,使得“全‘0’消息字”的总数变为: \[ \frac{448}{64} = 7 \] - 初始消息“abc”加上一个“1”占用了3个字节(即24比特),再加上7个全“0”消息字(每个64比特),最后加上64比特的长度表示,总共占用的空间为: \[ 3 + 7 + 1 = 11 \] - 考虑到整个消息长度必须为512比特的整数倍,因此还需要添加3个全“0”消息字来达到下一个512比特边界,即1024比特。 综上所述,最终的答案为14个全“0”消息字。 因此正确选项为 **D: 14**。

相关知识点:

SM3填充全0字,14个数量要知

题目纠错
密码测评分值分类刷题

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码