科普一下SM系列國密演算法(從零開始學區塊鏈)

買賣虛擬貨幣
眾所周知,為了保障商用密碼的安全性,國家商用密碼管理辦公室制定了一系列密碼標準,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖沖之密碼演算法(ZUC)那等等。

其中SM1、SM4、SM7、祖沖之密碼(ZUC)是對稱演算法;SM2、SM9是非對稱演算法;SM3是雜湊演算法。目前,這些演算法已廣泛應用於各個領域中,期待有一天會有采用國密演算法的區塊鏈應用出現。


其中SM1、SM7演算法不公開,呼叫該演算法時,需要透過加密晶片的介面進行呼叫;比較少人瞭解這些演算法,在這裡對這些國密演算法做簡單的科普

1 SM1對稱密碼
 SM1 演算法是分組密碼演算法,分組長度為128位,金鑰長度都為 128 位元,演算法安全保密強度及相關軟硬體實現效能與 AES 相當,演算法不公開,僅以IP核的形式存在於晶片中。

 採用該演算法已經研製了系列晶片、智慧IC卡、智慧密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括國家政務通、警務通等重要領域)。

2 SM2橢圓曲線公鑰密碼演算法
 SM2演算法就是ECC橢圓曲線密碼機制,但在簽名、金鑰交換方面不同於ECDSA、ECDH等國際標準,而是採取了更為安全的機制。另外,SM2推薦了一條256位的曲線作為標準曲線。
 SM2標準包括總則,數字簽名演算法,金鑰交換協議,公鑰加密演算法四個部分,並在每個部分的附錄詳細說明了實現的相關細節及示例。


 SM2演算法主要考慮素域Fp和F2m上的橢圓曲線,分別介紹了這兩類域的表示,運算,以及域上的橢圓曲線的點的表示,運算和多倍點計算演算法。然後介紹了程式語言中的資料轉換,包括整數和位元組串,位元組串和位元串,域元素和位元串,域元素和整數,點和位元組串之間的資料轉換規則。


詳細說明了有限域上橢圓曲線的引數生成以及驗證,橢圓曲線的引數包括有限域的選取,橢圓曲線方程引數,橢圓曲線群基點的選取等,並給出了選取的標準以便於驗證。最後給橢圓曲線上金鑰對的生成以及公鑰的驗證,使用者的金鑰對為(s,sP),其中s為使用者的私鑰,sP為使用者的公鑰,由於離散對數問題從sP難以得到s,並針對素域和二元擴域給出了金鑰對生成細節和驗證方式。總則中的知識也適用於SM9演算法。


在總則的基礎上給出了數字簽名演算法(包括數字簽名生成演算法和驗證演算法),金鑰交換協議以及公鑰加密演算法(包括加密演算法和解密演算法),並在每個部分給出了演算法描述,演算法流程和相關示例。
數字簽名演算法,金鑰交換協議以及公鑰加密演算法都使用了國家密管理局批准的SM3密碼雜湊演算法和隨機數發生器。數字簽名演算法,金鑰交換協議以及公鑰加密演算法根據總則來選取有限域和橢圓曲線,並生成金鑰對。
SM2演算法在很多方面都優於RSA演算法(RSA發展得早應用普遍,SM2領先也很自然),與RSA安全性對比如下圖

3 SM3雜湊演算法

SM3密碼雜湊(雜湊、雜湊)演算法給出了雜湊函式演算法的計算方法和計算步驟,並給出了運算示例。此演算法適用於商用密碼應用中的數字簽名和驗證,訊息認證碼的生成與驗證以及隨機數的生成,可滿足多種密碼應用的安全需求。在SM2,SM9標準中使用。

此演算法對輸入長度小於2的64次方的位元訊息,經過填充和迭代壓縮,生成長度為256位元的雜湊值,其中使用了異或,模,模加,移位,與,或,非運算,由填充,迭代過程,訊息擴充套件和壓縮函式所構成。具體演算法及運算示例見SM3標準。

4 SM4對稱演算法

此演算法是一個分組演算法,用於無線區域網產品。該演算法的分組長度為128位元,金鑰長度為128位元。加密演算法與金鑰擴充套件演算法都採用32輪非線性迭代結構。解密演算法與加密演算法的結構相同,只是輪金鑰的使用順序相反,解密輪金鑰是加密輪金鑰的逆序。

此演算法採用非線性迭代結構,每次迭代由一個輪函式給出,其中輪函式由一個非線性變換和線性變換複合而成,非線性變換由S盒所給出。其中rki為輪金鑰,合成置換T組成輪函式。輪金鑰的產生與上圖流程類似,由加密金鑰作為輸入生成,輪函式中的線性變換不同,還有些引數的區別。SM4演算法的具體描述和示例見SM4標準。

5 SM7對稱密碼

SM7演算法,是一種分組密碼演算法,分組長度為128位元,金鑰長度為128位元。SM7適用於非接觸式IC卡,應用包括身份識別類應用(門禁卡、工作證、參賽證),票務類應用(大型賽事門票、展會門票),支付與通卡類應用(積分消費卡、校園一卡通、企業一卡通等)。

6 SM9標識密碼演算法

為了降低公開金鑰系統中金鑰和證書管理的複雜性,以色列科學家、RSA演算法發明人之一Adi Shamir在1984年提出了標識密碼(Identity-Based Cryptography)的理念。標識密碼將使用者的標識(如郵件地址、手機號碼、QQ號碼等)作為公鑰,省略了交換數字證書和公鑰過程,使得安全系統變得易於部署和管理,非常適合端對端離線安全通訊、雲端資料加密、基於屬性加密、基於策略加密的各種場合。2008年標識密碼演算法正式獲得國家密碼管理局頒發的商密演算法型號:SM9(商密九號演算法),為我國標識密碼技術的應用奠定了堅實的基礎。

SM9演算法不需要申請數字證書,適用於網際網路應用的各種新興應用的安全保障。如基於雲技術的密碼服務、電子郵件安全、智慧終端保護、物聯網安全、雲端儲存安全等等。這些安全應用可採用手機號碼或郵件地址作為公鑰,實現資料加密、身份認證、通話加密、通道加密等安全應用,並具有使用方便,易於部署的特點,從而開啟了普及密碼演算法的大門。

7 ZUC祖沖之演算法

祖沖之序列密碼演算法是中國自主研究的流密碼演算法,是運用於行動通訊4G網路中的國際標準密碼演算法,該演算法包括祖沖之演算法(ZUC)、加密演算法(128-EEA3)和完整性演算法(128-EIA3)三個部分。目前已有對ZUC演算法的最佳化實現,有專門針對128-EEA3和128-EIA3的硬體實現與最佳化。

密碼演算法作為國家戰略資源,比歷史上任何時候都顯得更為關鍵。在大資料和雲端計算的時代,關鍵資訊往往透過資料探勘技術在海量資料中獲得,所以每一個人的資訊保護都非常重要。

來源 :區塊鏈大師 微訊號DACMaster


免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;