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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

SM3密码杂凑算法原理

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

目錄

1.概述

2、算法描述

2.1 概述

2.2 填充

2.3 迭代壓縮

2.3 消息擴展

2.4 壓縮函數

2.5 雜湊值


1.概述

SM3是我國采用的一種密碼散列函數標準,由國家密碼管理局于2010年12月17日發布。相關標準為“GM/T 0004-2012 《SM3密碼雜湊算法》”。

在商用密碼體系中,SM3主要用于數字簽名及驗證、消息認證碼生成及驗證、隨機數生成等,其算法公開。據國家密碼管理局表示,其安全性及效率與SHA-256相當。

在信息安全中,有許多重要的應用,都使用了密碼散列函數來實現,例如數字簽名,消息認證碼。

特性

一個理想的密碼散列函數應該有四個主要的特性:

  • 對于任何一個給定的消息,它都很容易就能運算出散列數值。

  • 難以由一個已知的散列數值,去推算出原始的消息。

  • 在不更動散列數值的前提下,修改消息內容是不可行的。

  • 對于兩個不同的消息,它不能給與相同的散列數值。

本文主要介紹了SM3密碼雜湊算法的計算方法和計算步驟,感興趣的讀者可以了解SM3算法背后的數學原理,源碼會在另一篇文章介紹:SM3密碼雜湊算法源碼解析_10點43的博客-CSDN博客_sm3 源碼。


2、算法描述

2.1 概述

對長度為l(l < 264) 比特的消息m, SM3雜湊算法經過填充和迭代壓縮,生成雜湊值,雜湊值長度為256比特。

2.2 填充

假設消息m 的長度為l 比特。首先將比特“1”添加到消息的末尾,再添加k 個“0”, k是滿足l + 1 + k ≡ 448mod512 的最小的非負整數。然后再添加一個64位比特串,該比特串是長度l的二進制表示。填充后的消息m′ 的比特長度為512的倍數
例如:對消息01100001 01100010 01100011,其長度l=24,經填充得到比特串:

2.3 迭代壓縮

將填充后的消息m′按512比特進行分組:
其中n=(l+k+65)/512。
對m′按下列方式迭代:
FOR i=0 TO n-1
? ? ? ??
ENDFOR
其中CF是壓縮函數, 為256比特初始值IV, 為填充后的消息分組,迭代壓縮的結果為。

初始向量為:IV= 7380166f 4914b2b9 172442d7 da8a0600 a96f30bc 163138aa e38dee4d b0fb0e4e

流程如圖所示:

2.3 消息擴展

2.4 壓縮函數

令A,B,C,D,E,F,G,H為字寄存器,SS1,SS2,TT1,TT2為中間變量,壓縮函數,計算過程描述如下:

中間計算過程如圖所示:

2.5 雜湊值

總結

以上是生活随笔為你收集整理的SM3密码杂凑算法原理的全部內容,希望文章能夠幫你解決所遇到的問題。

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