国密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,(結合上面迭代中間值,輸出最終雜湊值)
總結
- 上一篇: 数字图像处理——图像锐化
- 下一篇: 广数25i系统倒刀回刀m代码_史上最全数