【实验目的】
1、理解Hash函数的计算原理和特点
2、理解SM3算法原理
3、了解SM3值的生成过程
【实验环境】
用户A需要生成一段消息的SM3值,准备依据这个散列值对消息进行进一步的处理。
完成本实验需要使用密码学教学软件,在D:\Release\bin目录下打开Crypto软件。
【实验预备知识点】
SM3算法是密码杂凑算法,适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
对长度为l(l< 2^64) 比特的消息m,SM3杂凑算法经过填充和迭代压缩,生成杂凑值,杂凑值长度为256比特。具体过程请见SM3标准描述。
【实验内容】
SM3算法是国家密码管理局2010年12月颁布的密码杂凑算法,适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成。
SM3算法对于长度小于264位的消息,产生一个256位的消息摘要。
算法以512位分组来处理输入的信息,每一分组又被划分为132个32位子分组,经过一系列的处理后,算法的输出由八个32位分组组成,将这些32位分组级联后产生一个256位的散列值。
【实验步骤】
(1). 输入消息
(2). 点击生成按钮
(3). 观察明文填充块,观察生成的散列值
(4). 点击64步运算按钮,观察SM3运算的各个步骤
(5). 对输入消息做细微修改
(6). 重复(2),(3),(4)
(7). 比较散列值前后的变化情况