网站建设算研发费用吗,商城类网站用什么做,泉州西街,google seo优化SM3哈希算法的FPGA实现 I SM3哈希算法的FPGA实现 I一、什么是SM3哈希算法#xff1f;二、SM3哈希算法的具体内容1、填充2、迭代与压缩3、计算拼凑值三、参考文档语言 #xff1a;verilog 仿真工具#xff1a; Modelsim EDA工具#xff1a;quartus II 一、什么是SM3哈希算法…SM3哈希算法的FPGA实现 I SM3哈希算法的FPGA实现 I一、什么是SM3哈希算法二、SM3哈希算法的具体内容1、填充2、迭代与压缩3、计算拼凑值三、参考文档语言 verilog 仿真工具 Modelsim EDA工具quartus II 一、什么是SM3哈希算法 安全散列算法英语Secure Hash Algorithm缩写为SHA是一个密码散列函数家族是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的长度固定的字符串又称消息摘要的算法。 SM3算法也是一种哈希算法中国国家密码管理局在2010年发布其名称是SM3密码杂凑算法。 在商用密码体系中SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等。
二、SM3哈希算法的具体内容
SM3算法结果为256位其大体上与SHA256相同其算法过程如下
1、填充
SM3对消息长度小于为2^64位进行运算其填充方法与SHA256的相同假设消息m 的长度为l 比特。首先将比特“1”添加到消息的末尾再添加k 个“0”k是满足l 1 k 448mod512 的最小的非负整数。然后再添加一个64位比特串该比特串是长度l的二进制表示。填充后的消息m′ 的比特长度为512的倍数。
2、迭代与压缩
这个过程与其他HASH算法类似先进行消息扩展之后迭代与压缩其详细过程可参考标准文档。其扩展与压缩计算以循环移位为主并有异或计算。
在消息扩展使用计算式比较长
W[j] P1( W[j-16] ^ W[j-9] ^ ROTL(W[j-3],15)) ^ ROTL(W[j - 13],7 ) ^ W[j-6];
3、计算拼凑值
填充的消息经扩展后在进行64轮迭代最后就算出杂凑结果
三、参考文档
中华人民共和国密码行业标准