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

来源: OSCHINA
编辑: 一君_
2020-10-27 14:39:00

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

参考阅读

展开阅读全文
点击加入讨论🔥(42) 发布并加入讨论🔥
本篇精彩评论
其中“SM”代表“商密”
2020-10-27 14:41
7
举报
回复 @troika : 老兄,你这是全程假设啊。这种推导有意义吗?
2020-10-28 19:33
6
举报
我搜索看了一下原文介绍,只能呵呵,国密的非对称和rsa比速度?椭圆曲线算法本来就比rsa快,密钥也短,你和现在的ecc比有什么区别吗?国密有种和格基密码体系比安全吗?纯粹骗经费的东西。
2020-10-27 18:47
6
举报
保密级别这么高,潜伏卧底?
2020-10-29 10:31
5
举报
后门算法
2020-10-27 17:04
4
举报
42 评论
11 收藏
分享
返回顶部
顶部