0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SM3密碼算法的算法邏輯及要點(diǎn)

冬至子 ? 來(lái)源:商用密碼 ? 作者:莫道 ? 2023-05-22 14:49 ? 次閱讀

一、

SM3是一種哈希算法,主要用于計(jì)算消息摘要,其算法邏輯和要點(diǎn)如下:

1.數(shù)據(jù)填充:SM3算法要求將輸入數(shù)據(jù)填充為512比特的整數(shù)倍。填充方法是在數(shù)據(jù)末尾添加一個(gè)1和一些0,使得填充后的長(zhǎng)度為512比特的整數(shù)倍。

2.分組處理:將填充后的數(shù)據(jù)分成512比特的分組,并進(jìn)行逐個(gè)處理。

3.初始值設(shè)定:SM3算法對(duì)于每個(gè)分組都有一個(gè)初始值。對(duì)于第一個(gè)分組,初始值由固定的常量決定,對(duì)于后續(xù)分組,初始值由前一個(gè)分組的結(jié)果決定。
4.消息擴(kuò)展:SM3算法采用了一種稱(chēng)為Wt的消息擴(kuò)展函數(shù)。該函數(shù)可以將每個(gè)512比特分組擴(kuò)展為數(shù)個(gè)512比特的分組,并通過(guò)一些位運(yùn)算將分組進(jìn)行混淆。
5.壓縮函數(shù):SM3算法采用了一種稱(chēng)為CF函數(shù)的壓縮函數(shù)。該函數(shù)將每個(gè)512比特分組壓縮為一個(gè)512比特的分組,并使用一些非線(xiàn)性的操作對(duì)分組進(jìn)行加密。
6.循環(huán)處理:SM3算法對(duì)于每個(gè)512比特分組都會(huì)進(jìn)行循環(huán)處理。循環(huán)處理包括消息擴(kuò)展、壓縮函數(shù)和結(jié)果更新等步驟。
7.結(jié)果輸出:SM3算法最終輸出256比特的哈希值。

當(dāng)SM3算法處理一段輸入消息時(shí),它首先會(huì)對(duì)消息進(jìn)行填充以滿(mǎn)足512比特的分組長(zhǎng)度要求。填充方法是將一個(gè)1和若干個(gè)0添加到消息末尾,使得消息的長(zhǎng)度對(duì)512取模的余數(shù)為448。然后,在填充后的消息末尾添加一個(gè)64比特的數(shù),表示消息的原始長(zhǎng)度。這樣,填充后的消息長(zhǎng)度就成為了512比特的整數(shù)倍。

接下來(lái),SM3算法將填充后的消息分成多個(gè)512比特的分組,并對(duì)每個(gè)分組進(jìn)行處理。對(duì)于第一個(gè)分組,SM3算法會(huì)使用一個(gè)固定的初始值;對(duì)于后續(xù)分組,SM3算法會(huì)使用前一個(gè)分組的結(jié)果作為初始值。然后,SM3算法會(huì)采用一系列的置換和非線(xiàn)性變換,將每個(gè)分組進(jìn)行加密,產(chǎn)生一個(gè)256比特的哈希值。

在加密過(guò)程中,SM3算法采用了一種稱(chēng)為Wt的消息擴(kuò)展函數(shù)。該函數(shù)可以將每個(gè)512比特分組擴(kuò)展為數(shù)個(gè)512比特的分組,并通過(guò)一些位運(yùn)算將分組進(jìn)行混淆。然后,SM3算法使用一個(gè)稱(chēng)為CF函數(shù)的壓縮函數(shù),將數(shù)個(gè)512比特的分組壓縮為一個(gè)512比特的分組,并使用一些非線(xiàn)性的操作對(duì)分組進(jìn)行加密。

SM3算法的輸出結(jié)果是一個(gè)256比特的哈希值,具有高強(qiáng)度的防碰撞能力和安全性。它的設(shè)計(jì)緊湊、實(shí)現(xiàn)簡(jiǎn)單、適用于多種應(yīng)用場(chǎng)景,已被廣泛應(yīng)用于數(shù)字簽名、消息認(rèn)證碼、數(shù)據(jù)完整性校驗(yàn)、證書(shū)管理等領(lǐng)域。SM3算法也是國(guó)際上公認(rèn)的安全性較高的哈希算法之一,受到了廣泛的關(guān)注和研究。

二、

SM3算法主要采用以下四種操作:

1.位運(yùn)算操作:包括按位異或(XOR)、按位與(AND)、按位或(OR)等,用于對(duì)輸入進(jìn)行混淆和擾動(dòng)。

2.非線(xiàn)性變換操作:包括置換、置換選擇、非線(xiàn)性函數(shù)、循環(huán)移位等,用于增加加密的難度和復(fù)雜性。

3.線(xiàn)性變換操作:包括置換、置換選擇等,用于增強(qiáng)加密的強(qiáng)度和擴(kuò)散性。

4.哈希函數(shù)操作:包括取模、加法、異或等,用于生成輸出哈希值。

SM3算法在設(shè)計(jì)過(guò)程中采用了多重輪迭代結(jié)構(gòu),每輪包含相同的基本操作,但參數(shù)不同,以達(dá)到更好的加密效果。具體來(lái)說(shuō),SM3算法由三個(gè)部分組成:數(shù)據(jù)預(yù)處理部分、壓縮函數(shù)部分和輸出部分。

數(shù)據(jù)預(yù)處理部分包括填充、擴(kuò)展、初始化等操作,將輸入消息轉(zhuǎn)化為可加密的形式,并生成初始值。壓縮函數(shù)部分是SM3算法的核心,主要由多重輪迭代結(jié)構(gòu)組成,每輪包含置換、置換選擇、非線(xiàn)性函數(shù)、線(xiàn)性函數(shù)、循環(huán)移位等操作,將512比特的分組加密為256比特的哈希值。輸出部分包括對(duì)哈希值的處理和返回,生成最終的256比特哈希值。

SM3算法具有高度的安全性和防碰撞能力,在數(shù)字簽名、消息認(rèn)證碼、數(shù)據(jù)完整性校驗(yàn)、證書(shū)管理等領(lǐng)域得到了廣泛應(yīng)用。同時(shí),SM3算法的設(shè)計(jì)緊湊、實(shí)現(xiàn)簡(jiǎn)單,適用于多種應(yīng)用場(chǎng)景,已被ISO/IEC和GB/T等國(guó)際和國(guó)內(nèi)標(biāo)準(zhǔn)采納。

三、

SM3算法具有以下特點(diǎn):

1.安全性高:SM3算法的密鑰長(zhǎng)度和哈希值長(zhǎng)度均為256比特,具有高度的安全性和防碰撞能力,能夠有效地保護(hù)數(shù)據(jù)的機(jī)密性和完整性。

2.速度快:SM3算法的實(shí)現(xiàn)簡(jiǎn)單、緊湊,具有高效的計(jì)算能力和快速的加密速度,適用于各種場(chǎng)景下的數(shù)據(jù)加密和安全保護(hù)。

3.公開(kāi)透明:SM3算法是中國(guó)國(guó)家密碼管理局發(fā)布的標(biāo)準(zhǔn)算法,經(jīng)過(guò)了公開(kāi)透明的審查和測(cè)試,具有公正性和可信度。

4.兼容性好:SM3算法支持多種編程語(yǔ)言和硬件平臺(tái),可以與各種操作系統(tǒng)和應(yīng)用程序進(jìn)行集成和兼容,便于開(kāi)發(fā)和使用。

5.可擴(kuò)展性強(qiáng):SM3算法可以通過(guò)增加輪數(shù)、調(diào)整參數(shù)等方式進(jìn)行擴(kuò)展和改進(jìn),以適應(yīng)不同的安全需求和應(yīng)用場(chǎng)景。

總之,SM3算法是一種高效、安全、公開(kāi)、兼容、可擴(kuò)展的密碼算法,廣泛應(yīng)用于數(shù)字簽名、消息認(rèn)證碼、數(shù)據(jù)完整性校驗(yàn)、證書(shū)管理等領(lǐng)域,為保護(hù)數(shù)據(jù)的安全和隱私做出了重要貢獻(xiàn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • XOR
    XOR
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    161975
  • SM3算法
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    3172
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    支持國(guó)密算法的加密芯片

    ,可設(shè)置成多重復(fù)合設(shè)備,最大限度地滿(mǎn)足用戶(hù)的設(shè)計(jì)需求。2? 算法全面:集成多種通信接口和多種信息安全算法SM1、SM2、SM3
    發(fā)表于 04-27 17:17

    分享交通部二維碼驗(yàn)簽?zāi)K,高速PKI卡資料,國(guó)密SM2簽名驗(yàn)證 RSA2048算法 國(guó)密SM1算法 SM2算法 SM4算法 SM7算法

    `采用32位CPU內(nèi)核芯片支持國(guó)際算法DES,AES,SHA,RSA1024/2048等主流算法支持國(guó)密算法SM1,SM2,
    發(fā)表于 07-20 17:03

    密碼標(biāo)準(zhǔn)有哪些

    眾所周知,為了保障商用密碼的安全性,國(guó)家商用密碼管理辦公室制定了一系列密碼標(biāo)準(zhǔn),包括SM1(SCB2)、SM2、
    發(fā)表于 07-22 08:37

    國(guó)密算法的應(yīng)用場(chǎng)景 精選資料分享

    國(guó)家密碼管理局推出的SM系列密碼算法是為了從根本上擺脫我國(guó)對(duì)國(guó)外密碼技術(shù)的依賴(lài),實(shí)現(xiàn)從密碼
    發(fā)表于 07-23 08:57

    密碼學(xué)系列 - 國(guó)密算法 精選資料分享

    國(guó)密即國(guó)家密碼局認(rèn)定的國(guó)產(chǎn)密碼算法。主要有SM1,SM2,SM3
    發(fā)表于 07-23 07:07

    加密芯片的接口進(jìn)行調(diào)用

    眾所周知,為了保障商用密碼的安全性,國(guó)家商用密碼管理辦公室制定了一系列密碼標(biāo)準(zhǔn),包括SM1(SCB2)、SM2、
    發(fā)表于 07-26 08:18

    基于FPGA的SM3算法優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的SM3算法優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)的論文
    發(fā)表于 10-29 17:16 ?5次下載

    FPGA芯片EP2S90F1508C3實(shí)現(xiàn)SM3算法的硬件實(shí)現(xiàn)策略

    的整體結(jié)構(gòu)可分為庫(kù)函數(shù)模塊和主程序模塊兩大模塊[1,5]。在SM3算法庫(kù)函數(shù)模塊中定義了6個(gè)左循環(huán)移位函數(shù)ROL7、ROL9、ROL12、ROL15、ROL19、ROLk和4個(gè)函數(shù)FF、GG、P0、P1,均用組合邏輯資源實(shí)現(xiàn),常
    發(fā)表于 11-24 15:33 ?2685次閱讀
    FPGA芯片EP2S90F1508C<b class='flag-5'>3</b>實(shí)現(xiàn)<b class='flag-5'>SM3</b><b class='flag-5'>算法</b>的硬件實(shí)現(xiàn)策略

    基于SM3的HMAC的能量分析攻擊方法

    的能量分析新型攻擊方法,該新型攻擊方法每次攻擊時(shí)選擇不同的攻擊目標(biāo)和其相關(guān)的中間變量,根據(jù)該中間變量的漢明距離模型或者漢明重量模型實(shí)施能量分析攻擊,經(jīng)過(guò)對(duì)SM3密碼算法的前4輪多次實(shí)施能量分析攻擊,將攻擊出的所有結(jié)果聯(lián)立方程組,
    發(fā)表于 02-11 09:57 ?1次下載
    基于<b class='flag-5'>SM3</b>的HMAC的能量分析攻擊方法

    SM3算法為例,構(gòu)建一個(gè)軟硬協(xié)作算法加速器:設(shè)計(jì)面向SM3優(yōu)化的運(yùn)算結(jié)構(gòu)

    本文是本系列第五篇,本文書(shū)接上文,來(lái)討論如何具體地針對(duì) SM3 算法的特點(diǎn),優(yōu)化計(jì)算架構(gòu),如通過(guò) CSA 加法器來(lái)優(yōu)化加法關(guān)鍵路徑等方法...
    發(fā)表于 02-07 11:40 ?0次下載
    以<b class='flag-5'>SM3</b><b class='flag-5'>算法</b>為例,構(gòu)建一個(gè)軟硬協(xié)作<b class='flag-5'>算法</b>加速器:設(shè)計(jì)面向<b class='flag-5'>SM3</b>優(yōu)化的運(yùn)算結(jié)構(gòu)

    SM3算法為例,構(gòu)建一個(gè)軟硬協(xié)作算法加速器:SM3 開(kāi)源硬件實(shí)現(xiàn)篇

    本文是本系列第三篇,我們將通過(guò)分析一個(gè) SM3 的開(kāi)源硬件實(shí)現(xiàn),來(lái)進(jìn)一步了解算法的實(shí)現(xiàn)流程和硬件實(shí)現(xiàn)思路首發(fā)知乎作者:李凡
    發(fā)表于 02-07 11:40 ?1次下載
    以<b class='flag-5'>SM3</b><b class='flag-5'>算法</b>為例,構(gòu)建一個(gè)軟硬協(xié)作<b class='flag-5'>算法</b>加速器:<b class='flag-5'>SM3</b> 開(kāi)源硬件實(shí)現(xiàn)篇

    SM3算法為例,構(gòu)建一個(gè)軟硬協(xié)作算法加速器:SM3 軟件實(shí)現(xiàn)篇

    本文是本系列第二篇,我們將通過(guò)分析一個(gè) SM3 的開(kāi)源軟件實(shí)現(xiàn),來(lái)進(jìn)一步了解算法的實(shí)現(xiàn)流程和軟件實(shí)現(xiàn)思路首發(fā)知乎:[鏈接]
    發(fā)表于 02-07 11:43 ?2次下載
    以<b class='flag-5'>SM3</b><b class='flag-5'>算法</b>為例,構(gòu)建一個(gè)軟硬協(xié)作<b class='flag-5'>算法</b>加速器:<b class='flag-5'>SM3</b> 軟件實(shí)現(xiàn)篇

    SM3算法為例,構(gòu)建一個(gè)軟硬協(xié)作算法加速器:算法

    本文是本系列第一篇,筆者最近在研究基于FPGA的算法加速,本系列將以 PPT 結(jié)合文字的方式,以實(shí)現(xiàn)相對(duì)簡(jiǎn)單的 SM3 雜湊算法為例,介紹一...
    發(fā)表于 02-07 11:43 ?1次下載
    以<b class='flag-5'>SM3</b><b class='flag-5'>算法</b>為例,構(gòu)建一個(gè)軟硬協(xié)作<b class='flag-5'>算法</b>加速器:<b class='flag-5'>算法</b>篇

    國(guó)密算法成員介紹

    極海APM32F407系列MCU,結(jié)合當(dāng)前環(huán)境要求,設(shè)計(jì)出了支持國(guó)密算法SM2,SM3,SM4)的IP, 符合國(guó)家密碼管理局認(rèn)定和公布的
    的頭像 發(fā)表于 03-25 11:25 ?2776次閱讀

    嵌入式的國(guó)家商用密碼SM算法

    數(shù)據(jù)加密和解密涉及的算法大致可分為以下三大類(lèi):?jiǎn)蜗蛏⒘?b class='flag-5'>算法(雜湊算法),對(duì)稱(chēng)加密算法,公開(kāi)密鑰加密算法(非對(duì)稱(chēng)加密
    的頭像 發(fā)表于 01-20 11:26 ?2944次閱讀
    嵌入式的國(guó)家商用<b class='flag-5'>密碼</b><b class='flag-5'>SM</b><b class='flag-5'>算法</b>