雜說2 —— 回顧以前寫過的國密SM3
SM3密碼雜湊算法
SM3 Cryptographic Hash Algorithm
國家密碼管理局
2010年12月
1 范圍
本文本規(guī)定了SM3密碼雜湊算法的計算方法和計算步驟,并給出了運算示例。
本文本適用于商用密碼應(yīng)用中的數(shù)字簽名和驗證、消息認證碼的生成與驗證以及隨機數(shù)的生成,可滿足多種密碼應(yīng)用的安全需求。同時,本文本還可為安全產(chǎn)品生產(chǎn)商提供產(chǎn)品和技術(shù)的標(biāo)準(zhǔn)定位以及標(biāo)準(zhǔn)化的參考,提高安全產(chǎn)品的可信性與互操作性。
文檔中已描述了算法流程,編程中,只需將文檔的符號用編程符號或函數(shù)實現(xiàn)。
在附錄中兩個例子描述了流程及中間結(jié)果。
對長度為l(l < 264 ) 比特的消息m,SM3雜湊算法經(jīng)過填充和迭代壓縮生成雜湊值。
雜湊值長度為256比特。
注意點:
大端、word字
填充、擴展、分組
<<<循環(huán)左移k比特運算
主體函數(shù)就像




測試附錄的兩個例子

=== str1: abc
SM3:
?66C7F0F4? 62EEEDD9? D1F2D46B? DC10E4E2? 4167C487? 5CF2F7A2? 297DA02B? 8F4BA8E0
=== str1: abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd
SM3:
?DEBE9FF9? 2275B8A1? 38604889? C18E5A4D? 6FDB70E5? 387E5765? 293DCBA3? 9C0C5732
自行測試分組
=== str1: 0123456789012345678901234567890123456789012345678901234
SM3:
?FA6EFAC8? 92677C6C? 6B0F8F19? D2DEB80A? F79BDAF1? 581D9784? 7C851768? 27C58B68
=== str1: 01234567890123456789012345678901234567890123456789012345
SM3:
?11211AD8? A6656FBC? 1A2741CF? CEAC1409? 91E354F5? C94EA94E? E63630C8? 6E9858FE
?
在線網(wǎng)站https://the-x.cn/zh-cn/hash/ShangMi3Algorithm.aspx的結(jié)果

