IT资讯 SM2 国密算法被 Linux 内核社区接受

sylvester · 2020-10-27 15:00:06 · 热度: 29

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,这个是与规范的一点差异。

参考阅读

猜你喜欢:
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册