喜欢就关注我们吧!
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,这个是与规范的一点差异。
▼ 往期精彩回顾 ▼
谁说而立之年,是程序员职业生涯的终点
Ubuntu 20.10 正式发布:新特性亮点汇总
X.Org Server 已成事实上的“废弃软件”!
2020 年度 OSC 中国开源项目评选开始啦!
全球开发者报告:Python 增势迅猛、C# 连跌三位
觉得不错,请点个在看呀