国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

新手入門 | 掌握國密算法:新手指南: SM2 / SM3 / SM4密碼算法詳解

這篇具有很好參考價值的文章主要介紹了新手入門 | 掌握國密算法:新手指南: SM2 / SM3 / SM4密碼算法詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

在密碼學(xué)領(lǐng)域,有多種加密與簽名算法,它們在信息安全領(lǐng)域發(fā)揮著舉足輕重的作用。如今,隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)安全已經(jīng)成為各類信息系統(tǒng)完整性、可用性、保密性的重要保障,越來越多的國產(chǎn)密碼算法得到了廣泛的應(yīng)用與關(guān)注。在本文中,我們將重點介紹三個經(jīng)典的國產(chǎn)密碼算法:SM2、SM3和SM4,國密是國家密碼管理局正式發(fā)布的國產(chǎn)密碼算法。本文主要針對SM2、SM3、SM4進行詳細且系統(tǒng)的介紹,幫助大家快速掌握國密算法。


一、國密算法簡介

國密算法是中國國家密碼管理局頒布的密碼算法標準,包括SM2、SM3、SM4等算法。這些算法屬于非對稱加密算法,意味著加密與解密的密鑰是不同的。與其他國際知名的加密算法相比,國密算法具有更好的安全性和性能。其中,SM2算法是國密橢圓曲線密碼算法,類似于RSA、ECC; SM3算法是國密Hash算法,類似于SHA256; SM4算法是國密分組密碼算法,類似于AES。

二、SM2算法

2.1 基本概念

SM2密碼算法是國產(chǎn)密碼算法標準,是一種基于橢圓曲線密碼(ECC,Elliptic Curve Cryptography)的公鑰密碼,橢圓曲線密碼是非對稱密碼的一種,具有更高的安全性與更低的計算復(fù)雜性。SM2密碼算法實際上是在ECC的基礎(chǔ)上制定的一套密碼系統(tǒng)標準。且相比于RSA算法、DSA算法等具有更高的密鑰強度,因此在信息安全領(lǐng)域具有廣泛的應(yīng)用。

2.1.1 密鑰對

密鑰對是SM2算法中使用的公鑰和私鑰的組合,其中公鑰用于加密數(shù)據(jù),而私鑰用于解密數(shù)據(jù)。私鑰是一組秘密的隨機數(shù),而公鑰則是私鑰與橢圓曲線上一點的乘積。

2.1.2 曲線

國密SM2算法采用的是橢圓曲線離散對數(shù)問題(ECDLP),橢圓曲線的選取是有限域能夠保證算法的安全性。具體的曲線參數(shù)是國家密碼管理局推薦的一組參數(shù)。

2.2 數(shù)字簽名

SM2算法的數(shù)字簽名分為兩個過程:簽名和驗簽。

2.2.1 簽名過程

簽名過程包括以下幾個步驟:

生成隨機數(shù)k;
計算橢圓曲線上點(x1, y1),其中(x1, y1) = k * G。G是橢圓曲線上的一個基點;
計算 r = (Mhash + x1) % n,其中 Mhash 為待簽名消息的 SM3 Hash值,n 為橢圓曲線的階;
計算簽名值s = 1 / (k ? rd) % n,其中 d為私鑰.
最終,簽名值為(r, s)。

2.2.2 驗簽過程

驗簽過程有以下幾個步驟:

計算橢圓曲線上點Qa = d * G,其中d為私鑰;
計算橢圓曲線上點R = s * G + r * Qa;
計算R.hash % n;
如果R == Mhash,則驗證通過。

2.3 密鑰交換協(xié)議

密鑰交換協(xié)議是指兩個用戶在公共信道上,根據(jù)一定的協(xié)議生成一對臨時的密鑰對,并只有他們之間能知道這對密鑰的具體值。SM2算法通過三個步驟來完成密鑰交換協(xié)議。

2.3.1 三個步驟

密鑰協(xié)商
確認交換密鑰的完整性
雙方驗證對方的確認值

2.3.2 密鑰協(xié)商

雙方各自生成一個臨時密鑰對,并發(fā)出請求: 甲方發(fā)出密鑰協(xié)商請求,乙方接收后生成一個臨時密鑰,并將消息發(fā)給甲方。甲方產(chǎn)生一個臨時公鑰。

2.3.3 確認交換密鑰的完整性

甲乙雙方采用對方的臨時公鑰和自己的私鑰計算出一個共享密鑰,并使用SM3算法對共享密鑰進行哈希得到確認值。然后將確認值發(fā)送給對方,以確保交換的密鑰完整性。

2.4 數(shù)字信封

數(shù)字信封是指在公共信道上傳輸數(shù)據(jù)時,使用對稱加密算法對數(shù)據(jù)進行加密,并將加密后的數(shù)據(jù)和加密所使用的密鑰分別用接收方的公鑰和私鑰進行加密,然后發(fā)送給接收方。接收方使用自己的私鑰解密出加密密鑰,并使用該密鑰解密出原始數(shù)據(jù)。
SM2算法可以用于數(shù)字信封的加密和解密過程,其中加密過程如下:

隨機生成一個對稱密鑰K;
使用SM4算法對明文數(shù)據(jù)進行加密得到密文C;
使用接收方的公鑰對密鑰K進行加密得到E(K);
將E(K)和C合并成數(shù)字信封并發(fā)送給接收方。

解密過程如下:

使用自己的私鑰解密出E(K),得到對稱密鑰K;
使用SM4算法對密文C進行解密得到明文數(shù)據(jù)。

三、SM3算法

3.1 基本概念

SM3算法是中國國密標準中的Hash算法,用于將任意長度的消息壓縮成一個固定長度的摘要。它的輸出長度為256位,與SHA-256算法相同。

3.2 過程

SM3算法的過程主要包括Hash函數(shù)、填充、初始化摘要值、分組和迭代。

3.2.1 Hash函數(shù)

Hash函數(shù)是SM3算法中的核心部分,它由四個基本的壓縮函數(shù)和一個異或函數(shù)組成。SM3算法中使用了類似于SHA-256的迭代壓縮算法,將消息分組后依次進行壓縮,并將最終的壓縮結(jié)果組合成256位的摘要值。

3.2.2 填充

SM3算法使用了和SHA-256相似的填充方式,將消息填充至512位的整數(shù)倍。填充方式為將消息的末尾添加一個1,然后添加若干個0,使得消息長度滿足對512取模為448,最后在末尾添加一個64位的長度值,表示消息的長度。

3.2.3 初始化摘要值

SM3算法中,摘要值的初始值由八個16進制數(shù)構(gòu)成,這些數(shù)是由國家密碼管理局推薦的。

3.2.4 分組

SM3算法將填充后的消息分成512位的分組,并依次進行Hash運算。

3.2.5 迭代

SM3算法中,每個分組都會進行一次迭代,迭代過程包括消息擴展、壓縮和更新摘要值。

四、SM4算法

4.1 基本概念

SM4算法是中國國密標準中的分組密碼算法,用于加密和解密數(shù)據(jù)。它的密鑰長度為128位,分組長度為128位,類似于AES算法。

4.2 過程

SM4算法的過程主要包括加密過程和解密過程。

4.2.1 加密過程

SM4算法的加密過程包括以下幾個步驟:

使用密鑰擴展算法生成輪密鑰;
將明文數(shù)據(jù)分成128位的分組;
對每個分組進行加密,包括輪函數(shù)、置換和輪密鑰加;
輸出密文數(shù)據(jù)。

4.2.2 解密過程

SM4算法的解密過程與加密過程相似,只是輪密鑰的使用順序與加密過程相反。具體步驟如下:

使用密鑰擴展算法生成輪密鑰;
將密文數(shù)據(jù)分成128位的分組;
對每個分組進行解密,包括輪函數(shù)、置換和輪密鑰加;
輸出明文數(shù)據(jù)。

4.2.3 子密鑰生成

SM4算法中,輪密鑰的生成是通過密鑰擴展算法實現(xiàn)的。該算法將128位的密鑰擴展成32個輪密鑰,每個輪密鑰為32位。具體步驟如下:

將輸入的128位密鑰分成4個32位的子密鑰;
使用S盒和非線性變換對子密鑰進行變換;
通過線性變換和置換生成每個輪密鑰。

總結(jié)

國密算法是中國國家密碼管理局頒布的密碼算法標準,包括SM2、SM3、SM4等算法。這些算法具有更好的安全性和性能,逐漸被廣泛應(yīng)用。其中,SM2算法是中國國密橢圓曲線密碼算法,類似于RSA、ECC; SM3算法是中國國密Hash算法,類似于SHA256; SM4算法是中國國密分組密碼算法,類似于AES。了解這些算法的基本概念和過程,對于加強數(shù)據(jù)安全具有重要的作用。文章來源地址http://www.zghlxwxcb.cn/news/detail-530165.html

到了這里,關(guān)于新手入門 | 掌握國密算法:新手指南: SM2 / SM3 / SM4密碼算法詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Ajax超詳解(新手入門指南)

    Ajax超詳解(新手入門指南)

    AJAX:全稱是 Asynchronous JavaScript And XML ,即異步的JavaScript和XML。AJAX是用于前后端交互的工具,也就是說通過AJAX作為橋梁,客戶端可以給服務(wù)端發(fā)送消息,也可以接收服務(wù)端的響應(yīng)消息。 AJAX的兩種實現(xiàn)方式: XHR :使用XMLHttpRequest對象來實現(xiàn)AJAX Fetch :使用Fetch API來實現(xiàn)AJAX X

    2023年04月25日
    瀏覽(61)
  • 【新手入門】矩池云使用指南

    【新手入門】矩池云使用指南

    矩池云按使用時間收費,是一款性價比較高的服務(wù)器平臺,下面根據(jù)個人經(jīng)驗介紹第一次如何使用矩池云服務(wù)器。 鏈接: https://www.matpool.com 記得關(guān)注公眾號領(lǐng)5個算力豆,用于新手體驗 等待一分鐘左右,頁面出現(xiàn)jupyterlab鏈接 此時代碼自動運行。注意第一次使用需要下載包 代

    2024年02月09日
    瀏覽(34)
  • 數(shù)據(jù)結(jié)構(gòu)入門指南:鏈表(新手避坑指南)

    數(shù)據(jù)結(jié)構(gòu)入門指南:鏈表(新手避坑指南)

    目錄 前言 1.鏈表 1.1鏈表的概念 ?1.2鏈表的分類 1.2.1單向或雙向 1.2.2.帶頭或者不帶頭 1.2.33. 循環(huán)或者非循環(huán) 1.3鏈表的實現(xiàn) ?定義鏈表 總結(jié) ????????前邊我們學(xué)習(xí)了順序表,順序表是數(shù)據(jù)結(jié)構(gòu)中最簡單的一種線性數(shù)據(jù)結(jié)構(gòu),今天我們來學(xué)習(xí)鏈表,難度相較于順序表會大幅增

    2024年02月15日
    瀏覽(30)
  • 什么是 Web 3.0?(新手入門指南)

    什么是 Web 3.0?(新手入門指南)

    目錄 在這篇文章中,我們將解釋什么是 Web 3.0,它的技術(shù)是如何發(fā)展的,哪些項目正在構(gòu)建這個新的互聯(lián)網(wǎng),以及您如何參與其中。 Web 3.0 的定義 加密貨幣和區(qū)塊鏈 Web 3.0 和元宇宙的互操作性 Web 3.0 技術(shù)的演進 Web 1.0 (1989-2005):只讀 Web 2.0(2005 年至今):讀寫 Web 3.0(現(xiàn)在出

    2024年02月03日
    瀏覽(64)
  • 文章一:SVN入門指南 - 版本控制新手的第一步

    概述:在本篇文章中,我們將介紹版本控制的基本概念和SVN的基礎(chǔ)知識。從安裝和配置SVN開始,逐步學(xué)習(xí)倉庫創(chuàng)建、提交、更新等基本操作,讓您快速入門SVN版本控制。 1. 引言 在軟件開發(fā)過程中,版本控制是必不可少的工具。它允許開發(fā)團隊對代碼進行有效管理,記錄代碼

    2024年02月13日
    瀏覽(30)
  • 【胡學(xué)長 帶你學(xué) Global Mapper 】新手必看 入門指南

    【胡學(xué)長 帶你學(xué) Global Mapper 】新手必看 入門指南

    Hi,我是胡學(xué)長!感謝您下載Global Mapper______一款經(jīng)濟實惠且易于使用的GIS應(yīng)用程序。易于使用 直觀的界面,高性價比且功能完善的GIS,可提供多源空間數(shù)據(jù)格式支持,以滿足有經(jīng)驗的GIS專業(yè)工作者和初級用戶的需求。當您開始探索Global Mapper 的豐富特性和功能時,您將很快了

    2024年01月16日
    瀏覽(26)
  • git入門指南:新手快速上手git(Linux環(huán)境如何使用git)

    git入門指南:新手快速上手git(Linux環(huán)境如何使用git)

    目錄 ?前言 1. 什么是git? 2. git版本控制器 3. git在Linux中的使用 安裝git 4. git三板斧 第一招:add 第二招:commit 第三招:push 5. 執(zhí)行狀態(tài) 6. 刪除 總結(jié) ? ????????Linux的基本開發(fā)工具介紹完畢,接下來介紹一下Linux環(huán)境下如何使用git,以及git到底是什么?它和gitee和github之間有

    2024年02月03日
    瀏覽(37)
  • 高效學(xué)習(xí)之a(chǎn)nki新手入門指南(ios端,包括ipad、ihpone設(shè)備)————創(chuàng)建、使用、備份、相關(guān)資料

    高效學(xué)習(xí)之a(chǎn)nki新手入門指南(ios端,包括ipad、ihpone設(shè)備)————創(chuàng)建、使用、備份、相關(guān)資料

    最近在使用Anki刷題(開源社區(qū)軟件,不用有停更的,后顧之憂)備考,自己主要在移動端(ipad、iphone)使用,但是網(wǎng)上很多資料都是電腦端或安卓端的,不能直接拿來使用,所以隨筆記錄和總結(jié)了一些自己使用Anki的一些最基本的使用方法(基本功能會用就可以了,不需要太

    2024年02月08日
    瀏覽(23)
  • 高效學(xué)習(xí)工具之AnkiMobile新手入門指南(ios端,包括ipad、ihpone設(shè)備)————創(chuàng)建、使用、備份、設(shè)置參數(shù)、相關(guān)資料

    高效學(xué)習(xí)工具之AnkiMobile新手入門指南(ios端,包括ipad、ihpone設(shè)備)————創(chuàng)建、使用、備份、設(shè)置參數(shù)、相關(guān)資料

    最近在使用Anki刷題(開源社區(qū)軟件,不用有停更的,后顧之憂)備考,自己主要在移動端(ipad、iphone)使用,但是網(wǎng)上很多資料都是電腦端或安卓端的,不能直接拿來使用,所以隨筆記錄和總結(jié)了一些自己使用Anki的一些最基本的使用方法(基本功能會用就可以了,不需要太

    2024年02月06日
    瀏覽(61)
  • 阿里云X森馬 AIGC T恤設(shè)計大賽;SD新手入門完全指南;揭秘LLM訓(xùn)練中的數(shù)學(xué);LLM高質(zhì)量閱讀清單 | ShowMeAI日報

    阿里云X森馬 AIGC T恤設(shè)計大賽;SD新手入門完全指南;揭秘LLM訓(xùn)練中的數(shù)學(xué);LLM高質(zhì)量閱讀清單 | ShowMeAI日報

    ?? 日報周刊合集 | ?? 生產(chǎn)力工具與行業(yè)應(yīng)用大全 | ?? 點贊關(guān)注評論拜托啦! 比賽官網(wǎng):https://developer.aliyun.com/adc/series/activity/aigc_design 阿里云攜手服裝品牌森馬,推出了本次 AIGC T 恤設(shè)計大賽。開發(fā)者、設(shè)計師、AI繪畫愛好者,都可以使用阿里云函數(shù)計算快速部署 Stable D

    2024年02月11日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包