商密软件栈SIG :基于 Anolis OS,在整个系统软件层面(包括硬件,固件,bootloader,内核以及 OS)实现以国密算法为主的全栈国密操作系统,结束一直以来国密算法生态碎片化的状况,在技术方面打造社区和生态,在资质合规方面致力于为行业提供基于国密的信息安全标准。作者:张天佳,商密软件栈 SIG Maintainer。
欢迎更多开发者加入商密软件栈SIG:
网址:https://openanolis.cn/sig/crypto
邮件列表:crypto@lists.openanolis.cn
SIG 近况摘要
1、商密 SM3/4 算法在 arm64 平台的指令集加速取得突破性进展,Arm 中国、蚂蚁BabaSSL、龙蜥商密软件栈 SIG 通力合作,SM4 性能最高达 4364Mb/s
2、统信软件与商密软件栈 SIG 深度合作,助力统信 UOS 在商密应用高速发展
3、SM4 aarch64 平台的 NEON 和 CE 指令集优化正式合入到 libgcrypt 社区,性能分别提升 260% 和 4050%
4、Linux 内核 x86 平台上 SM3 AVX 指令集优化经过四个版本迭代,已经进入 cryptodev subtree,会在下个合并窗口进入社区上游主线,性能提升最高达到 37%
5、BabaSSL 8.3.0 正式版发布(点击查看)
SIG 动态
1、Arm 公司贡献商密软件栈 SIG,助力 SM4 性能提升 40 倍
来自 Arm 的开发者为商密软件栈贡献了aarch64 平台 Crypto Extensions 指令集优化补丁,对商密 SM3、SM4 算法在 Armv8 架构上进行了深度优化,经过在平头哥倚天 710 机型上测试,数据非常亮眼。SM3 取得最高 74% 的性能提升,而 SM4 更是取得高达 40 倍的性能提升,从绝对性能数据来看,速率高达 4364Mb/s,从此性能不再是商密算法的瓶颈,这也将会大幅降低商密的产业化成本,使得大规模商用变得可能。
2、统信软件与商密软件栈 SIG 深度合作,助力统信 UOS 在商密应用高速发展
统信软件深度参与龙蜥社区商密软件栈 SIG,共同推动中国商用密码算法在基础软硬件环境的开发、优化及安全保障的体系化生态建设。统信 UOS 基于龙蜥社区商密软件栈,利用 BabaSSL 商密算法及社区内核国密支持能力,完成了 UOS 系统中 IMA 和内核模块签名两个场景的商密化实践,为 UOS 系统又添加了一层内核级安全保障。后续商密软件栈 SIG 的共建与发展中,统信软件会以龙蜥操作系统作为 UOS 系统的 upstream,以商密软件栈为基础,继续完善操作系统的商用密码生态。
未来,统信软件和商密软件栈 SIG 将在以下方面开展深度合作:
- 统信 UOS 积极参与贡献龙蜥社区商密软件栈 SIG,并借助社区 SIG,反哺完善自己的商密特性功能。
- BabaSSL 项目共建:龙蜥社区的开源项目 BabaSSL 很好地补充了 OpenSSL 中所欠缺的国密能力(如 SM2 的签名和验签支持、国密 X509 证书的签发和验证),比较全面地支持了商密算法以及基于商密的安全协议。
- 体系化生态建设:通过更多的基础软件中支持和开发商用密码算法,并提供主要算法的优化加速,真正完成从无到有,从普通到卓越的商用密码生态。
3、libgcrypt 合入 SM4 arm64 架构 NEON 和 CE 优化,性能分别提升 260% 和 4050%
鉴于普通 ARMv8 架构 CPU 只有通用的 SIMD NEON 指令集,龙蜥商密软件栈也为 NEON 指令集实现了 SM4 的 8-way 并行优化,支持 CBC/CFB/CTR/GCM/OCB 模式,相比于纯软件纯软件实现,性能提升了 260%,这在一定程度上也缓解了没有 SM4 CE 指令集平台 CPU 应用商密的门槛,同时联合 CE 的优化同步贡献到了 libgcrypt 上游社区(链接见文末)。
SIG 其他进展
除此之外,商密软件栈 SIG 还有以下的开发和贡献:
- Linux 内核 x86平台上 SM3 AVX 指令集优化经过四个版本迭代,已经进入 cryptodev subtree,会在下个合并窗口进入社区上游主线,性能提升最高达到 37%(代码查看链接见文末)
- SIG 开发者已向 nettle 社区提交了 SM4 算法实现,目前社区已经参与了一轮 review,整体给出了肯定的意见
- 上游社区报告了内核 SM2 证书验签中一处潜在的缺陷,原因是引用了签名中的信息做为输入,而签名是可以被恶意攻击者控制的,另外社区也吐槽了 SM2 的不兼容的 Za 设计,给出了可选配置 Za 的建议,这是后续需要改进的方向
当前商密软件栈的整体支持情况
当前相关的主要开源软件栈对国密的支持情况以及社区回馈统计:
链接地址:
1、商密软件栈SIG地址(或文末阅读原文直达):
2、libgcrypt 上游社区链接地址:
https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git&a=search&h=HEAD&st=author&s=Tianjia+Zhang
3、Linux 内核 x86 平台上 SM3代码链接地址:
致谢
衷心感谢为社区做出贡献的所有成员以及各方参与人员:
- Arm 公司:方明、Daniel Hu、袁志昌
- 统信 UOS:曹佩庆、唐逸群
- 蚂蚁集团:杨洋、刻一、金九
—— 完 ——
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
关于龙蜥社区
龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、个人等在自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、开放的Linux 上游发行版社区及创新平台。
龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。
目前,龙蜥OS 8.4已发布,支持 X86_64 、Arm64、LoongArch 架构,完善适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。
欢迎下载:https://openanolis.cn/download
加入我们,一起打造面向未来的开源操作系统!