【Miracl密碼庫】國密算法SM3復(fù)現(xiàn)
2023-04-04 20:38 作者:C語言實(shí)驗(yàn)室 | 我要投稿
國密算法SM3的官方文檔描述
http://www.gmbz.org.cn/main/postDetail.html?id=20180724105928
這是2018-07-24公布的文件《GM/T 0004-2012 SM3密碼雜湊算法標(biāo)準(zhǔn)英文文本發(fā)布》
本文參考GitHub源碼完成
https://github.com/lookingforfanyunfei/SMX_Test/tree/master/SMX_Test
該源碼項(xiàng)目給出了不同環(huán)境下的SM3密碼實(shí)現(xiàn),本文在Macbook環(huán)境下實(shí)現(xiàn),采用的是arm64參數(shù)。
以下是SM3密碼實(shí)現(xiàn)的過程
(SM3算法的實(shí)現(xiàn)過程沒有用到Miracl密碼庫,在SM2算法實(shí)現(xiàn)的過程中,需要用到Miracl密碼庫,所以放在了同一個專題下面。)
SM3算法的相關(guān)參數(shù),以及定義的相關(guān)運(yùn)算
1、消息擴(kuò)散

消息擴(kuò)散算法BiToW獲得前面68個字,WToW1算法獲得后面64個字,總共132個字,完成消息擴(kuò)散。
2、CF壓縮函數(shù),輸出256比特的哈希值
SM3對CF壓縮函數(shù)的描述

在初始化的時候,CF壓縮函數(shù)給出了對應(yīng)的初始值,可從文檔中查找。
3、加輔助函數(shù):大端序列化
如果CPU是小端序列,則需要大端序列化
懶得復(fù)制了,去公眾號看吧
標(biāo)簽: