喜歡就關注我們吧!
10 月 25 日,有開發者發文稱,SM2 國密算法終于被 Linux 核心社群接受了。該作者表示,SM2 的更新檔已經更新到了 v7 版本,這個版本的更新檔最終被社群接受,目前已經合并到了 Linux 主線的 5.10-rc1,如不出意外會在 5.10 核心版本中正式釋出。
國密是國家商用密碼的簡稱,由國家密碼管理局制定算法标準,同時也制定了大量的産品及接口規範以及應用場景。自 2012 年以來,國家密碼管理局以《中華人民共和國密碼行業标準》的方式,陸續公布了 SM2/SM3/SM4 等密碼算法标準及其應用規範。其中“SM”代表“商密”,即用于商用的、不涉及國家秘密的密碼技術。
作者介紹,目前 Linux 核心已經較好地支援了 SM3 和 SM4 算法,這得益于無線區域網路标準的廣泛使用。但 SM2 算法和國密證書遲遲沒有得到支援,也就無法基于國密來建立全棧可信和核心中的完整性驗證,是以在核心中支援這一套體系也變得迫切起來。
讓核心社群接受 SM2 總共經過了 7 個回合。最初考慮是從 openssl 做移植,但需要移植 openssl 架構和基礎設施代碼,因為工作量巨大放棄。又經過幾輪探讨測試之後,發現現有的 libgcrypt 已經有了完整的橢圓曲線基礎算法,于是便嘗試先在 libgcrypt 中實作 SM2,最終 SM2 算法作為 ECC 的一個子算法被社群接受。再之後,SM2 逐漸被核心社群接受。
目前 libgcrypt 已經全面支援了國密算法 SM2/3/4,這些實作都會在下一個版本 1.9.0 正式釋出。同時,作為 IMA 完整性簽名的使用者态工具,ima-evm-utils 對國密的支援也沒有落下。點選檢視相關送出。
最後,作者還總結了 SM2 的已知問題:
要支援國密證書驗證,SM2 要麼不編譯,要麼必須内建編譯,不支援編譯成子產品。當然了,SM2 作為一個非對稱算法,隻簽名一個哈希或者基于國密的 IMA 驗證,并沒有這個限制。
IMA 簽名工具 ima-evm-utils 以及核心計算檔案 SM3 哈希所用的國密算法沒有加 Za,這個是與規範的一點差異。