日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sm2和sm4加密算法浅析

發布時間:2023/12/31 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sm2和sm4加密算法浅析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

sm2和sm4加密算法淺析

一: SM2

簡介:SM2是國家密碼管理局于2010年12月17日發布的橢圓曲線公鑰密碼算法 ,SM2為非對稱加密,基于ECC。該算法已公開。由于該算法基于ECC,故其簽名速度與秘鑰生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一種)安全強度比RSA 2048位高,但運算速度快于RSA。

SM2和RSA算法比較

SM2性能更優更安全:密碼復雜度高、處理速度快、機器性能消耗更小

①:加密算法以及流程:

輸入:需要發送的消息為比特串M,klen為M的比特長度。

1.用隨機數發生器產生隨機數k∈[1,n-1],k的值為1到n-1

2.計算橢圓曲線點C1=[k]G=(x1,y1),將C1的數據類 型轉換為比特串

3.計算橢圓曲線點S=[h]PB,若S是無窮遠點,則報錯并退出

4.計算橢圓曲線點[k]PB=(x2,y2),按本文本第1部分4.2.5和4.2.4給出的細節,將坐標x2、y2 的 數據類型轉換為比特串

5.計算t=KDF(x2 ∥y2, klen),若t為全0比特串,則返回A1

6.計算C2 = M ⊕t

7.計算C3 = Hash(x2 ∥ M ∥ y2)

8.輸出密文C = C1 ∥ C2 ∥ C3

加密算法流程:

②:解密算法以及流程

klen為密文中C2的比特長度,對密文C=C1 ∥ C2 ∥ C3 進行解密,需要實現以下步驟

1.從C中取出比特串C1,按本文本第1部分4.2.3和4.2.9給出的細節,將C1的數據類型轉換為橢 圓曲線上的點,驗證C1是否滿足橢圓曲線方程,若不滿足則報錯并退出

2.計算橢圓曲線點S=[h]C1,若S是無窮遠點,則報錯并退出

3.計算[dB]C1=(x2,y2),按本文本第1部分4.2.5和4.2.4給出的細節,將坐標x2、y2的數據類型轉 換為比特串

4.計算t=KDF(x2 ∥y2, klen),若t為全0比特串,則報錯并退出

5.從C中取出比特串C2,計算M′ = C2 ⊕t

6.計算u = Hash(x2 ∥ M′ ∥ y2),從C中取出比特串C3,若u ?= C3,則報錯并退出
7.輸出明文M′

解密算法流程:

③:SM2橢圓曲線公鑰密碼算法推薦曲線參數

橢圓曲線方程:y2 = x3 + ax + b。

曲線參數:

p=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF a=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC b=28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93 n=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123 Gx=32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7 Gy=BC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0

二:SM4

簡介:SM4由國家密碼管理局于2012年3月21日發布,SM4 無線局域網標準的分組數據算法。對稱加密,密鑰長度和分組長度均為128位。

算法定義:該算法的分組長度為 128 比特,密鑰長度為 128 比特。加密算 法與密鑰擴展算法都采用 32 輪非線性迭代結構。解密算法與加密算法的結構相同,只是輪 密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序

(1)基本運算:

? ⊕ 32 比特異或

? i 32比特循環左移 i 位

(2)密鑰及密鑰參量 :

(3)輪函數 F:

(4)合成置換 T:

(5) 非線性變換τ

(6): 線性變換 L

(7):S 盒

(8)加/解密算法

(9):密鑰擴展算法

00070e15, 1c232a31, 383f464d, 545b6269, 70777e85, 8c939aa1, a8afb6bd, c4cbd2d9, e0e7eef5, fc030a11, 181f262d, 343b4249, 50575e65, 6c737a81, 888f969d, a4abb2b9, c0c7ced5, dce3eaf1, f8ff060d, 141b2229, 30373e45, 4c535a61, 686f767d, 848b9299, a0a7aeb5, bcc3cad1, d8dfe6ed, f4fb0209, 10171e25, 2c333a41, 484f565d, 646b7279

這邊有個小demo:以供參考:https://download.csdn.net/download/kawayiyy123/12535104?spm=1001.2014.3001.5503

總結

以上是生活随笔為你收集整理的sm2和sm4加密算法浅析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。