-
首发:易语言支持的国密SM3哈希算法与国密SM3杂凑算法
资源介绍
搜索了一圈,论坛已有SM4,所以我发一个SM3摘要算法
国密即国家密码局认定的
国产密码算法
。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。
SM3是一种密码散列函数标准,相关标准为“GM/T 0004-2012 《SM3密码杂凑算法》”。
在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。
SM3 消息摘要。可以用MD5作为对比理解。
SM3算法结果为256位,其大体上与SHA256相同,其算法过程如下:
1、填充
SM3对消息长度小于为2^64位进行运算,其填充方法与SHA256的相同,假设消息m 的长度为l 比特。首先将比特“1”添加到消息的末尾,再添加k 个“0”,k是满足l + 1 + k = 448mod512 的最小的非负整数。然后再添加一个64位比特串,该比特串是长度l的二进制表示。填充后的消息m′ 的比特长度为512的倍数。
2、迭代压缩
这个过程与其他HASH算法类似,先进行消息扩展,之后迭代与压缩,其详细过程可参考标准文档。其扩展与压缩计算以循环移位为主,并有异或计算。
完
由于技术原因使用的是C语言导出函数以供
易语言
调用
支持字节集计算SM3摘要,文件计算SM3摘要,一共两个方法
- 上一篇: 提供几个加密算法的源码
- 下一篇: sm4 国密算法