国密SM3算法

一、关于sm3算法本身 
1、分组,将需要加密的文件转为2进制,然后分组为512*K+448(K为任意整数,不够用一个“1”和多个“0”补齐),再加上64位的文件长度信息构成512*(K+1)的分组 
技术分享

2、迭代运算,这里有一个参数(256位)参与运算,初始值V(0)(文档中叫做IV),迭代一次之后得到V(1),后面依次迭代得到V(1)、V(2)、V(3)……V(K)、V(K+1),V(K+1)也就是最终的杂凑值 
技术分享

二、sm3在芯片中的实际使用方法 
芯片中有sm3函数的入口,每次只能输入8个字节(64位)的16进制数,所以要把文件拆分成N*8字节,并转为16进制,需要执行sm3函数N次 
前面N-1次和最后一次执行函数所用的报文不同,前面N-1次中报文的p1=01(没有返回杂凑值,但是函数中记录下迭代中间结果,作为下一次迭代输入,不输出),最后一次报文的p1=02,(结合上面迭代中间值,输出最终杂凑值)

  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值