国密SM3算法
一、關(guān)于sm3算法本身?
1、分組,將需要加密的文件轉(zhuǎn)為2進(jìn)制,然后分組為512*K+448(K為任意整數(shù),不夠用一個(gè)“1”和多個(gè)“0”補(bǔ)齊),再加上64位的文件長(zhǎng)度信息構(gòu)成512*(K+1)的分組?
2、迭代運(yùn)算,這里有一個(gè)參數(shù)(256位)參與運(yùn)算,初始值V(0)(文檔中叫做IV),迭代一次之后得到V(1),后面依次迭代得到V(1)、V(2)、V(3)……V(K)、V(K+1),V(K+1)也就是最終的雜湊值?
二、sm3在芯片中的實(shí)際使用方法?
芯片中有sm3函數(shù)的入口,每次只能輸入8個(gè)字節(jié)(64位)的16進(jìn)制數(shù),所以要把文件拆分成N*8字節(jié),并轉(zhuǎn)為16進(jìn)制,需要執(zhí)行sm3函數(shù)N次?
前面N-1次和最后一次執(zhí)行函數(shù)所用的報(bào)文不同,前面N-1次中報(bào)文的p1=01(沒(méi)有返回雜湊值,但是函數(shù)中記錄下迭代中間結(jié)果,作為下一次迭代輸入,不輸出),最后一次報(bào)文的p1=02,(結(jié)合上面迭代中間值,輸出最終雜湊值)
總結(jié)
- 上一篇: 数字图像处理——图像锐化
- 下一篇: 第十四届恩智浦智能车室外电磁比赛总结