楊元原博士國密課堂 · 第二期 | 商用密碼應用安全性評估:Part2. 商用密碼算法
本期主講人
楊(yang)元原(yuan) 博士 國家網絡與(yu)信息(xi)系統安(an)全產(chan)品質(zhi)量監督檢(jian)驗中心(公安部第三研(yan)究所)商用密碼應用安全性評估負責人
對稱密碼算法
(1)分組密碼算法及工作模式
(1.1)分組(zu)密(mi)碼(ma)算法
SM1密(mi)(mi)(mi)碼(ma)算法:SM1算法是(shi)國家密(mi)(mi)(mi)碼(ma)管理局認(ren)可的一種(zhong)分組(zu)密(mi)(mi)(mi)碼(ma)算法,分組(zu)長(chang)度、密(mi)(mi)(mi)鑰長(chang)度都是(shi)128bit,但是(shi)算法不公開(kai),僅以IP核的形(xing)式存(cun)在于(yu)芯片中(zhong),需要通過加密(mi)(mi)(mi)芯片的接口進行調用。
采用該(gai)算(suan)法的密(mi)碼產品包(bao)括安全芯片、智能IC卡(ka)、智能密(mi)碼鑰(yao)匙、加(jia)密(mi)卡(ka)、加(jia)密(mi)機(ji)等,該(gai)算(suan)法廣泛應用于電(dian)子政務、電(dian)子商務及國民(min)經(jing)濟(ji)的各個領域。
SM4密(mi)(mi)(mi)(mi)(mi)碼算(suan)法(fa):算(suan)法(fa)采用32輪(lun)非線(xian)性迭代結構。解密(mi)(mi)(mi)(mi)(mi)算(suan)法(fa)與加密(mi)(mi)(mi)(mi)(mi)算(suan)法(fa)的結構相同,只是(shi)輪(lun)密(mi)(mi)(mi)(mi)(mi)鑰的使用順序相反,解密(mi)(mi)(mi)(mi)(mi)輪(lun)密(mi)(mi)(mi)(mi)(mi)鑰是(shi)加密(mi)(mi)(mi)(mi)(mi)輪(lun)密(mi)(mi)(mi)(mi)(mi)鑰的逆序。
SM4密碼(ma)算(suan)法(fa)(fa)于2012年(nian)3月21日發布,相(xiang)關的標準包括:《GM/T 0002-2012 SM4分組密碼(ma)算(suan)法(fa)(fa)》、《GB/T 32907-2016 信息安全技術(shu) SM4分組密碼(ma)算(suan)法(fa)(fa)》。該算(suan)法(fa)(fa)的基本原理如下圖(tu)所示(圖(tu)1):
(圖1)
算(suan)法采用了典型的Feistel密碼結(jie)(jie)構,采用32輪(lun)非線(xian)性迭(die)代(dai)結(jie)(jie)構,以字(32位)為(wei)單位進行加(jia)密運(yun)算(suan),每一次迭(die)代(dai)運(yun)算(suan)均為(wei)一輪(lun)變換函(han)數F。
算(suan)法原理如下圖(tu)所(suo)示(圖(tu)2):
(圖2)
SM7對稱密碼(ma):SM7算(suan)法是一(yi)種分(fen)組(zu)密碼(ma)算(suan)法,分(fen)組(zu)長(chang)度(du)為128比(bi)特,密鑰長(chang)度(du)為128比(bi)特。SM7的算(suan)法目前沒有公(gong)開(kai)發布(bu)。SM7適(shi)用(yong)(yong)于非接IC卡應(ying)(ying)(ying)用(yong)(yong),包括(kuo)身份識別類應(ying)(ying)(ying)用(yong)(yong)(門禁卡、工(gong)作證、參(can)賽證),票(piao)務(wu)類應(ying)(ying)(ying)用(yong)(yong)(大型賽事門票(piao)、展(zhan)會(hui)門票(piao)),支付與通(tong)卡類應(ying)(ying)(ying)用(yong)(yong)(積分(fen)消費(fei)卡、校園一(yi)卡通(tong)、企業一(yi)卡通(tong)、公(gong)交一(yi)卡通(tong))。
(1.2)分(fen)組密碼工作模(mo)式
即使有(you)了安(an)(an)全的(de)分(fen)組密(mi)碼(ma)(ma)算(suan)法(fa),也需要采用(yong)適當的(de)工作模(mo)(mo)(mo)式(shi)來隱蔽明文的(de)統計特性、數(shu)據(ju)的(de)格式(shi)等(deng),以(yi)提高整體的(de)安(an)(an)全性,降低刪除(chu)、重放、插入和偽造成功的(de)機會。因(yin)此(ci),分(fen)組密(mi)碼(ma)(ma)有(you)不同的(de)工作模(mo)(mo)(mo)式(shi),包括電碼(ma)(ma)本(ECB)模(mo)(mo)(mo)式(shi)、分(fen)組鏈(lian)接(CBC)模(mo)(mo)(mo)式(shi)、密(mi)碼(ma)(ma)反(fan)饋(kui)(CFB)模(mo)(mo)(mo)式(shi)、輸出反(fan)饋(kui)(OFB)模(mo)(mo)(mo)式(shi)、計數(shu)器(CTR)模(mo)(mo)(mo)式(shi)、分(fen)組連接(BC)模(mo)(mo)(mo)式(shi)等(deng)工作模(mo)(mo)(mo)式(shi)。分(fen)組密(mi)碼(ma)(ma)的(de)工作模(mo)(mo)(mo)式(shi)依據(ju)的(de)標準為:《GB/T 17964-2008 信息安(an)(an)全技術 分(fen)組密(mi)碼(ma)(ma)算(suan)法(fa)的(de)工作模(mo)(mo)(mo)式(shi)》。其中(zhong)比較(jiao)常(chang)見的(de)是電碼(ma)(ma)本模(mo)(mo)(mo)式(shi)和分(fen)組鏈(lian)接模(mo)(mo)(mo)式(shi)。
電(dian)碼本(ben)模(mo)式(shi):電(dian)碼本(ben)模(mo)式(shi)直接(jie)利用加密(mi)算法(fa)分(fen)(fen)別對分(fen)(fen)組(zu)(zu)(zu)數(shu)據組(zu)(zu)(zu)加密(mi)。在給定的(de)密(mi)鑰下同一明文組(zu)(zu)(zu)總產生同樣的(de)密(mi)文組(zu)(zu)(zu)。這種方式(shi)會(hui)暴露(lu)明文數(shu)據的(de)格式(shi)和統計特征,由(you)于重要的(de)數(shu)據常常在同一位(wei)置(zhi)上出(chu)現,使密(mi)碼分(fen)(fen)析(xi)者可以對其(qi)進行統計分(fen)(fen)析(xi)、重傳(chuan)和代換攻擊(圖3)。
(圖3)
分組(zu)(zu)鏈(lian)接模式:在CBC模式中,首先將明文分組(zu)(zu)與前一(yi)個(ge)密文分組(zu)(zu)進(jin)行XOR運(yun)算,然后再進(jin)行加密。密文分組(zu)(zu)像鏈(lian)條一(yi)樣相互連接在一(yi)起(圖(tu)4)。
(圖4)
各(ge)種工作(zuo)模式的(de)比較如下表所示(圖5):
(圖5)
(1.2)SM4密碼算法示例
SM4密(mi)(mi)碼算(suan)(suan)(suan)(suan)法(fa)(fa)(fa)的(de)分組長(chang)(chang)度(du)(du)為128比特(te)(te),密(mi)(mi)鑰長(chang)(chang)度(du)(du)為128比特(te)(te)。但(dan)是由(you)于密(mi)(mi)鑰需要保(bao)密(mi)(mi),因(yin)此SM4密(mi)(mi)碼算(suan)(suan)(suan)(suan)法(fa)(fa)(fa)無法(fa)(fa)(fa)從(cong)正向(xiang)進行(xing)驗證(zheng),只(zhi)能通過特(te)(te)征比對(如加密(mi)(mi)數據(ju)長(chang)(chang)度(du)(du))的(de)方式(shi)進行(xing)算(suan)(suan)(suan)(suan)法(fa)(fa)(fa)驗證(zheng),并結合(he)其(qi)他證(zheng)據(ju),如密(mi)(mi)碼機(ji)的(de)算(suan)(suan)(suan)(suan)法(fa)(fa)(fa)調(diao)用(yong)日志、密(mi)(mi)碼機(ji)Wireshark數據(ju)包抓包等,來驗證(zheng)算(suan)(suan)(suan)(suan)法(fa)(fa)(fa)的(de)合(he)規性(xing)。由(you)于SM4密(mi)(mi)碼算(suan)(suan)(suan)(suan)法(fa)(fa)(fa)的(de)分組長(chang)(chang)度(du)(du)為128比特(te)(te),因(yin)此SM4密(mi)(mi)文長(chang)(chang)度(du)(du)必(bi)然是128比特(te)(te)的(de)倍數,如下圖(tu)所(suo)示(圖(tu)6)。
(圖6)
(2)流密碼算法
(2.1)祖(zu)沖(chong)之算(suan)法(ZUG)
祖(zu)沖之密(mi)碼算(suan)(suan)(suan)(suan)法(fa)(fa)主要用于下一代移動通(tong)信(xin)中(zhong),可用來對語音(yin)或(huo)視頻數據加密(mi)。祖(zu)沖之密(mi)碼算(suan)(suan)(suan)(suan)法(fa)(fa)(ZUC)的(de)名(ming)字源于我國古代數學(xue)家祖(zu)沖之,能夠實現(xian)加密(mi)和完整性保護。ZUC算(suan)(suan)(suan)(suan)法(fa)(fa)由(you)3個基(ji)本部分(fen)(fen)組成(cheng),依次(ci)為:1、比特重組;2、非線性函(han)數F;3、線性反饋移位寄存器(qi)(LFSR)。具(ju)體算(suan)(suan)(suan)(suan)法(fa)(fa)可查(cha)看《GM/T 0001.1-2012 祖(zu)沖之序列(lie)密(mi)碼算(suan)(suan)(suan)(suan)法(fa)(fa):第1部分(fen)(fen):算(suan)(suan)(suan)(suan)法(fa)(fa)描述》、《GM/T 0001.2-2012 祖(zu)沖之序列(lie)密(mi)碼算(suan)(suan)(suan)(suan)法(fa)(fa):第2部分(fen)(fen):基(ji)于祖(zu)沖之算(suan)(suan)(suan)(suan)法(fa)(fa)的(de)機密(mi)性算(suan)(suan)(suan)(suan)法(fa)(fa)》、《GM/T 0001.3-2012 祖(zu)沖之序列(lie)密(mi)碼算(suan)(suan)(suan)(suan)法(fa)(fa):第3部分(fen)(fen):基(ji)于祖(zu)沖之算(suan)(suan)(suan)(suan)法(fa)(fa)的(de)完整性算(suan)(suan)(suan)(suan)法(fa)(fa)》等標準。
非對稱密碼算法
(1)SM2密碼算法
(1.1)SM2密(mi)碼算法原理
SM2算(suan)(suan)法(fa)采用ECC橢圓曲(qu)線密(mi)(mi)(mi)(mi)碼(ma)機制(zhi),但在簽名、密(mi)(mi)(mi)(mi)鑰(yao)交換方(fang)(fang)面(mian)不同于ECDSA、ECDH等國際標準,而(er)是采取(qu)了更為(wei)(wei)(wei)安(an)全的(de)機制(zhi)。國密(mi)(mi)(mi)(mi)SM2算(suan)(suan)法(fa)標準《GB/T 32918 信息(xi)安(an)全技術 SM2橢圓曲(qu)線公(gong)鑰(yao)密(mi)(mi)(mi)(mi)碼(ma)算(suan)(suan)法(fa)》共包(bao)括(kuo)5個部(bu)分(fen),第1部(bu)分(fen)為(wei)(wei)(wei)總則,主要介紹了ECC基本的(de)算(suan)(suan)法(fa)描(miao)(miao)述,包(bao)括(kuo)素數(shu)(shu)域和二元擴域兩種算(suan)(suan)法(fa)描(miao)(miao)述;第2部(bu)分(fen)為(wei)(wei)(wei)數(shu)(shu)字簽名算(suan)(suan)法(fa),包(bao)括(kuo)數(shu)(shu)字簽名生成(cheng)算(suan)(suan)法(fa)和驗(yan)證算(suan)(suan)法(fa);第3部(bu)分(fen)為(wei)(wei)(wei)密(mi)(mi)(mi)(mi)鑰(yao)交換協議,可(ke)滿足通信雙方(fang)(fang)經過(guo)兩次或三次信息(xi)傳遞,計(ji)算(suan)(suan)獲取(qu)一個共享秘密(mi)(mi)(mi)(mi)密(mi)(mi)(mi)(mi)鑰(yao);第4部(bu)分(fen)為(wei)(wei)(wei)公(gong)鑰(yao)加密(mi)(mi)(mi)(mi)算(suan)(suan)法(fa),包(bao)括(kuo)加密(mi)(mi)(mi)(mi)算(suan)(suan)法(fa)和解(jie)密(mi)(mi)(mi)(mi)算(suan)(suan)法(fa);第5部(bu)分(fen)為(wei)(wei)(wei)參(can)(can)數(shu)(shu)定義(yi),主要規定了SM2橢圓曲(qu)線公(gong)鑰(yao)密(mi)(mi)(mi)(mi)碼(ma)算(suan)(suan)法(fa)的(de)曲(qu)線參(can)(can)數(shu)(shu)。
SM2加(jia)密(mi)算法(fa):根據《GB/T 32918.4-2016信息安(an)全技術 SM2橢(tuo)圓曲線公(gong)鑰密(mi)碼算法(fa) 第4部分:公(gong)鑰加(jia)密(mi)算法(fa)》的要求,SM2加(jia)密(mi)算法(fa)流程如下。
設(she)需要發送的消息(xi)為比(bi)(bi)特串,為的比(bi)(bi)特長度。為了(le)對明文進行加(jia)密(mi),加(jia)密(mi)方(fang)應(ying)實現以下運算(suan)步(bu)驟:(圖7)。
(圖7)
SM2簽(qian)名算(suan)(suan)法:根據《GB/T 32918.2-2016信息安全技術 SM2橢圓(yuan)曲線公鑰密(mi)碼(ma)算(suan)(suan)法 第2部分:數(shu)字簽(qian)名算(suan)(suan)法》的要求,SM2簽(qian)名算(suan)(suan)法流(liu)程如下。
設待(dai)簽名的(de)消(xiao)息(xi)為(wei),為(wei)了(le)獲取(qu)消(xiao)息(xi)M的(de)數(shu)字簽名,簽名方A應實現以下(xia)運算步驟(圖8):
(圖8)
(1.2)SM2密碼(ma)算法示例(li)
SM2公鑰(yao)加(jia)(jia)密(mi)(mi)(mi)算法驗證:根據(ju)SM2加(jia)(jia)密(mi)(mi)(mi)算法的工作原理,SM2加(jia)(jia)密(mi)(mi)(mi)算法每次加(jia)(jia)密(mi)(mi)(mi)數據(ju)時都會產(chan)生隨機數k,而k的值外部無(wu)法獲知,因(yin)此無(wu)法對(dui)算法進(jin)行正向驗證。因(yin)此,只能通過特征比對(dui)(加(jia)(jia)密(mi)(mi)(mi)數據(ju)長度)的方式進(jin)行算法驗證,并結(jie)合其他證據(ju),如密(mi)(mi)(mi)碼(ma)機的算法調用日志(zhi)、密(mi)(mi)(mi)碼(ma)機Wireshark數據(ju)包抓包等,來驗證算法的合規性。
此外,由于每次加(jia)密都會(hui)生成(cheng)不同的(de)隨機數k,因(yin)此,即使相(xiang)同的(de)明文(wen),每次生成(cheng)的(de)密文(wen)也不相(xiang)同。
根據(ju)《GB/T 36322-2018 信息安全(quan)技術 密碼設備(bei)應(ying)用接口規(gui)范》要求,ECC加密數據(ju)的結構為(圖(tu)9):
(圖9)
在示(shi)例中,待加(jia)密的(de)明文數據為(wei):123。
在密(mi)文中,X分量和Y分量的值(zhi)為(wei):
000000000000000000000000000000000000000000000000000000000000000016B929CCC3A2C98C688784A89CF85B8DEA40EA5227D81C6118ED22C0789D88C30000000000000000000000000000000000000000000000000000000000000000180B26547035F156C28921E7AFBB32AF5975DEC56B485E26879B680116E92F4A,長度(du)為1024字節。
明文的雜湊值為:
34D08BB25CA811482A4B3B51B491DFDA0569A9D6A7C50651313ED5F134BC6A4B,長(chang)度為256字節。
密文數據長度為(wei):
03000000
密文數(shu)據為:
96E7E200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000。
SM2簽名算(suan)法驗(yan)證(zheng):由于待簽名數(shu)據(ju)、SM2公鑰和簽名數(shu)據(ju)都(dou)能夠獲取,因(yin)此(ci)可以(yi)使用合(he)規的工(gong)具,對SM2簽名算(suan)法進(jin)行正(zheng)向驗(yan)證(zheng)。
根據《GB/T 36322-2018 信息安全技術 密碼設備應用接口規范》要(yao)求,ECC簽名數(shu)據的結構為(圖(tu)10):
(圖(tu)10)
(2)SM9密碼算法
SM9是基于標(biao)識密(mi)(mi)碼算法(fa),標(biao)準為《GM/T 0044 SM9 標(biao)識密(mi)(mi)碼算法(fa)》,共包(bao)(bao)含5個部(bu)分,包(bao)(bao)括總則(ze)、數(shu)字(zi)簽(qian)名算法(fa)、密(mi)(mi)鑰(yao)交(jiao)換協議、密(mi)(mi)鑰(yao)封裝機制和(he)公鑰(yao)加密(mi)(mi)算法(fa)、參(can)數(shu)定義。SM9不(bu)同于傳統意義上的SM2算法(fa),它利(li)用橢圓曲線(xian)(xian)對的雙(shuang)線(xian)(xian)性性質,構(gou)造出(chu)安全性和(he)實現效率兼顧的標(biao)識密(mi)(mi)碼,也就(jiu)是公鑰(yao)與(yu)用戶的身份標(biao)識相關,省去了證書管理。
SM9數(shu)(shu)(shu)字簽(qian)名算(suan)(suan)法適(shi)用于接收者(zhe)(zhe)通(tong)過簽(qian)名者(zhe)(zhe)的(de)(de)(de)(de)(de)(de)標(biao)識(shi)(shi)驗證數(shu)(shu)(shu)據(ju)的(de)(de)(de)(de)(de)(de)完整(zheng)性(xing)和(he)數(shu)(shu)(shu)據(ju)發送者(zhe)(zhe)的(de)(de)(de)(de)(de)(de)身(shen)份,也適(shi)用于第三(san)方(fang)確(que)定(ding)簽(qian)名及所簽(qian)數(shu)(shu)(shu)據(ju)的(de)(de)(de)(de)(de)(de)真實性(xing)。密(mi)鑰(yao)交換協議可以(yi)使(shi)用通(tong)信(xin)雙(shuang)方(fang)通(tong)過雙(shuang)方(fang)的(de)(de)(de)(de)(de)(de)標(biao)識(shi)(shi)和(he)自身(shen)的(de)(de)(de)(de)(de)(de)私鑰(yao)經過兩次或者(zhe)(zhe)可選(xuan)三(san)次信(xin)息(xi)傳遞過程(cheng),計(ji)算(suan)(suan)獲(huo)取一個由(you)雙(shuang)方(fang)共(gong)同決定(ding)的(de)(de)(de)(de)(de)(de)共(gong)享(xiang)秘(mi)密(mi)密(mi)鑰(yao)。公鑰(yao)加(jia)密(mi)和(he)解(jie)密(mi)算(suan)(suan)法基于標(biao)識(shi)(shi)的(de)(de)(de)(de)(de)(de)非對(dui)稱秘(mi)密(mi)算(suan)(suan)法,該(gai)算(suan)(suan)法使(shi)消息(xi)發送者(zhe)(zhe)可以(yi)利用接收者(zhe)(zhe)的(de)(de)(de)(de)(de)(de)標(biao)識(shi)(shi)對(dui)消息(xi)進行(xing)加(jia)密(mi),唯有(you)接收者(zhe)(zhe)可以(yi)用相應(ying)的(de)(de)(de)(de)(de)(de)私鑰(yao)對(dui)該(gai)密(mi)文進行(xing)解(jie)密(mi)。
(3)雜湊算法
(3.1)SM3密(mi)碼算法原理
SM3密碼算(suan)(suan)法(fa)能夠(gou)產生(sheng)256比特的(de)(de)雜湊(cou)值。該(gai)算(suan)(suan)法(fa)為不可(ke)逆的(de)(de)算(suan)(suan)法(fa)。《GB/T 32905-2016 信息安全技術(shu) SM3密碼雜湊(cou)算(suan)(suan)法(fa)》給出(chu)了雜湊(cou)函數(shu)(shu)算(suan)(suan)法(fa)的(de)(de)計算(suan)(suan)方(fang)法(fa)和計算(suan)(suan)步驟,并給出(chu)了運算(suan)(suan)示例。該(gai)算(suan)(suan)法(fa)適用于數(shu)(shu)字簽名(ming)和驗證、消(xiao)息認證碼的(de)(de)生(sheng)成與(yu)驗證等,可(ke)滿足多種(zhong)密碼應(ying)用的(de)(de)安全需(xu)求。SM3算(suan)(suan)法(fa)對輸(shu)入長(chang)度小于2的(de)(de)64次方(fang)的(de)(de)比特消(xiao)息,經過(guo)填充和迭(die)代壓(ya)縮,生(sheng)成長(chang)度為256比特的(de)(de)雜湊(cou)值,其(qi)中使用了異或(huo)、模、模加、移(yi)位、與(yu)、或(huo)、非運算(suan)(suan),由填充,迭(die)代過(guo)程,消(xiao)息擴(kuo)展和壓(ya)縮函數(shu)(shu)所(suo)構(gou)成。
SM3算(suan)(suan)法包括(kuo)預處理、消(xiao)息(xi)擴展和計算(suan)(suan)Hash值(zhi)三部分(fen)。預處理部分(fen)由消(xiao)息(xi)填(tian)(tian)充和消(xiao)息(xi)分(fen)組(zu)兩部分(fen)組(zu)成(cheng)。首先將(jiang)接(jie)收到的(de)消(xiao)息(xi)末(mo)尾(wei)填(tian)(tian)充一個(ge)(ge)“1”, 再添加若干個(ge)(ge)“0”,使得填(tian)(tian)充后(hou)的(de)數(shu)據成(cheng)為滿足length = 448mod512bit的(de)數(shu)據長度,再在末(mo)尾(wei)附(fu)上(shang)64bit消(xiao)息(xi)長度的(de)二進制表(biao)示數(shu), 然(ran)后(hou)將(jiang)消(xiao)息(xi)分(fen)成(cheng)512bit的(de)子(zi)塊,最后(hou)將(jiang)每個(ge)(ge)512bit的(de)消(xiao)息(xi)子(zi)塊擴展成(cheng)132個(ge)(ge)字用于Hash值(zhi)的(de)計算(suan)(suan)。SM3算(suan)(suan)法計算(suan)(suan)流程圖如圖所示(圖11)。
(圖11)
SM3算法的(de)Hash運(yun)算主要是在(zai)壓(ya)縮函數部分,壓(ya)縮函數共包含64輪(lun),每輪(lun)包括12步(bu)運(yun)算,64輪(lun)循環計(ji)算結束后,再(zai)將計(ji)算結果與(yu)輸(shu)(shu)入(ru)到(dao)本(ben)輪(lun)計(ji)算的(de)初始數據(ju)進行異或運(yun)算,即上一次Hash運(yun)算的(de)Hash值輸(shu)(shu)出與(yu)輸(shu)(shu)入(ru)到(dao)本(ben)輪(lun)計(ji)算的(de)初始數據(ju)異或得到(dao)本(ben)次Hash值輸(shu)(shu)出。
(3.2)SM3密碼算法示例(li)
對(dui)于任意長度(du)的(de)(de)輸(shu)入,SM3雜湊(cou)算法將產生(sheng)256比特的(de)(de)雜湊(cou)值。因此,可以進(jin)行(xing)正向(xiang)的(de)(de)比對(dui)驗證,確認(ren)是(shi)否使用了SM3算法進(jin)行(xing)保護(圖12)。
(圖(tu)12)
但是,如(ru)(ru)果僅僅使用(yong)SM3算法(fa),無法(fa)防止數據被篡改(gai),因此(ci)通(tong)常使用(yong)HMAC-SM3對(dui)數據進(jin)行完整(zheng)性保護。由于(yu)HMAC算法(fa)需要使用(yong)密鑰,因此(ci),無法(fa)通(tong)過正向進(jin)行驗證,只能(neng)通(tong)過特征比(bi)對(dui)(雜湊數據長(chang)(chang)度)的(de)方式進(jin)行算法(fa)驗證,并結(jie)合其他證據,如(ru)(ru)密碼(ma)機的(de)算法(fa)調用(yong)日志、密碼(ma)機wireshark數據包抓(zhua)包等,來驗證算法(fa)的(de)合規性。由于(yu)SM3密碼(ma)算法(fa)的(de)雜湊數據長(chang)(chang)度為256比(bi)特,因此(ci)HMAC-SM3雜湊數據的(de)長(chang)(chang)度也(ye)是256比(bi)特。
(來(lai)源:國家網安檢測中心)