🔮【Hash函数】SM3
2022-4-7
| 2023-10-28
0  |  0 分钟
type
status
date
slug
summary
tags
category
icon
password
Sub-item
Last edited time
Oct 28, 2023 10:42 AM
Parent item
领域
SM3算法适用于商用密码应用中的数字签名和验证,是在SHA-256基础上改进实现的一种算法。SM3算法采用Merkle-Damgard结构,消息分组长度为512位,摘要值长度为256位。现今为止,SM3算法的安全性相对较高。
该算法的实现如下:
  1. 定义初始化变量及基础函数
    1. 初始化向量: 常量 常量
      基础算法函数定义如下:
      • 布尔函数
        • 时:
        • 函数 返回
        • 函数 返回
        • 时:
          函数 返回; 函数 返回 ;
      • 置换函数:
      其中:均为32位的字,&表示与, |表示或,~表示非,⊕表示异或,<<<表示循环左移。
  1. 消息填充补位
    1. SM3的消息填充补位的算法同MD5,这里不再赘述。填充后的消息称为
  1. 迭代压缩
    1. 将填充后的消息按512bit为单位进行分组:,一共是n组。
      迭代算法如下:
      其中首次循环中为256比特初始化向量IV,为填充后的消息分组,迭代压缩的结果为,作为下一次循环的向量是压缩函数,是技术那哈希的核心算法流程。在中,首先需要对消息分组按照下面的方法扩展生成132个字
    2. 将消息分组划分为16个字(word),得到
    3. 计算
      1. 其中就是置换函数
      2. 计算
        1. 进行如下计算, 得到V值:
          1. 其中是布尔函数, 是置换函数。
        1. 最后将迭代后的最终V值组装成256比特的Hash值
         
        密码学
      3. 密码学算法
      4. Hash
      5. 国密
      6. 【Hash函数】BLAKE2/BLAKE3【Hash函数】SHA3
        目录