查看原文
其他

4364Mb/s,助力SM4性能提升40倍的商密 SIG 还有哪些新进展?

张天佳 OpenAnolis龙蜥 2022-05-30
 商密软件栈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地址(或文末阅读原文直达)

https://openanolis.cn/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代码链接地址:

https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git/log/?qt=author&q=Tianjia+Zhang

致谢

衷心感谢为社区做出贡献的所有成员以及各方参与人员:
  • 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

加入我们,一起打造面向未来的开源操作系统!

https://openanolis.cn

往期精彩推荐

1.一图了解龙蜥社区 2 月运营大事件

2.ZStack 与龙蜥操作系统完成兼容性认证,共同打造安全可信的云+OS技术生态

3.关于 CentOS 迁移龙蜥操作系统,这里有一份详细指南,请查收!

4.老牌软件厂商亚信科技加入,携手龙蜥社区共建开源生态

5.上手体验!如何借助龙蜥实验室快速部署 Web 应用?

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存