倚天产品介绍|倚天ECS加速国密算法性能

简介: 倚天ECS是阿里云基于平头哥自研数据中心芯片倚天710推出arm架构实例,采用armv9架构,支持SM3/SM4指令,可以加速国密算法性能。本文基于OpenSSL 3.2和Tongsuo 实测对比了倚天ECS g8y实例和Intel g7 实例国密性能。为用户选择ECS提供参考。

引言

国密算法,是由国家密码管理局认定和公布的密码算法标准及其应用规范,包括SM1、SM2、SM3、SM4、SM7、SM9和祖冲之密码算法(ZUC)等。国密算法与国际通用算法对应关系如下所示:

算法分类

国际通用算法

国密算法

对称算法

AES、DES、3DES、RC4等等

SM1、SM4、SM7、ZUC

非对称算法

RSA、DSA、DH、ECDSA、ECDH等等

SM2SM9

杂凑算法

SHA1、SHA2、MD5等等

SM3

认证加密

AES-GCM、AES-CCM等等

SM4-GCM、SM4-CCM

其中,SM2、SM3、SM4、SM4-GCM算法应用较为广泛,如政务信息、经济信息、企事业内部敏感信息的加密、网络安全认证、网上银行、数字签名等方面。这几种常用国密算法已经公开并已商用,且在开源OpenSSL中得到实现,目前实现国密算法的开源软件还有GmSSL、Tongsuo等。除了软件层实现国密算法外,还有许多硬件厂商在PCIe标卡或SOC内集成了国密算法,通过硬件卸载方式提升国密算法的安全和性能。

倚天ECS国密性能

倚天ECS是阿里云基于平头哥自研数据中心芯片倚天710推出arm架构实例,采用armv9架构,支持SM3/SM4指令,可以加速国密算法性能。铜锁(Tongsuo)是阿里巴巴对外开源的基础密码库,为存储、网络、密钥管理、隐私计算等诸多业务场景提供底层的密码学基础能力本文将基于OpenSSL 3.2和Tongsuo 实测对比了倚天ECS g8y实例和Intel g7 实例国密性能。

被测ECS实例类型配置如下:

Processor

ECS type

倚天710

g8y.8xlarge

x86处理器

g7.8xlarge

操作系统和gcc版本如下:

GCC version

10.2.1 20200825 (Alibaba 10.2.1-3 2.32)

Operating System

Alibaba Cloud Linux 3.2104 LTS

硬件信息可以通过lscpu查看

[root@Yitian]# lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              32
On-line CPU(s) list: 0-31
Thread(s) per core:  1
Core(s) per cluster: 8
Socket(s):           1
Cluster(s):          1
NUMA node(s):        1
Vendor ID:           ARM
BIOS Vendor ID:      Alibaba Cloud
Model:               0
BIOS Model name:     virt-rhel7.6.0
Stepping:            r0p0
BogoMIPS:            100.00
NUMA node0 CPU(s):   0-31
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm ssbs sb dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh
[root@Yitian]#

SM2非对称算法性能

SM2算法基于椭圆曲线(ECC)算法,包含数字签名,公钥加解密,密钥交换。相对于RSA算法,SM2密码强度比2048位的RSA密码强度要高,速度更快。SM2算法在嵌入式领域签名验签应用较多。

SM2性能测试命令:taskset -c 0-7 ./apps/openssl speed -multi 8 -elapsed sm2

加密库

SM2

sign/s

verify/s

Tongsuo

g7

10910.5

12750.2

g8y

27213.1

28727.2

openssl-3.2

g7

10920.4

12830.1

g8y

27425.8

28528.5

image.png

测试结果:SM2算法性能,Tongsuo和openssl3.2测试结果表现一致;签名性能倚天ECS g8y实例是g7的2.49倍;验签性能倚天ECS g8y是g7的2.22倍。

SM3摘要算法性能

SM3算法常用于数字签名和数据完整性保护。算法可以对一定长度的消息,填充和迭代压缩后,生成长度为256比特的散列值,又称“数字指纹”。SM3算法和MD5算法的计算迭代过程类似,采用Merkle-Damgard转换,整个转换执行过程可以概括成四个步骤:消息填充、消息扩展、迭代压缩、输出结果。SM3算法可以应用在数据存储中指纹的生成,数字影音完整性校验等等。

SM3性能测试命令:taskset -c 0-7 ./apps/openssl speed -multi 8 -elapsed -evp sm3

加密库

SM3

1K bytes

8K bytes

Tongsuo

g7

889359.02

988383.91

g8y

3851532.97

4265263.10

openssl-3.2

g7

888715.26

983979.35

g8y

3844803.34

4264506.71

image.png

测试结果:SM3算法性能,Tongsuo和openssl3.2测试结果表现一致; 8K数据的计算摘要,倚天ECS g8y实例是g7的4.3倍。

SM4对称算法性能

SM4对称算法用于实现数据的加密/解密运算,以保证数据和信息的机密性。SM4算法与AES算法具有相同的密钥长度、分组长度。SM4算法由加解密算法和密钥扩展算法组成,采用非线性结构,分组长度为128b,密钥长度为128b。SM4主要在网络数据、流媒体的加密保护,以及存储数据或文件的加密保护应用较多。

SM4-CBC性能测试命令:taskset -c 0-7 ./apps/openssl speed -multi 8 -elapsed -evp sm4-cbc

加密库

SM4-CBC

1K bytes

8K bytes

Tongsuo

g7

857721.17

858860.20

g8y

8445351.80

8450402.99

openssl-3.2

g7

857374.04

858852.01

g8y

8437472.60

8452295.34

image.png

测试结果:SM4-CBC算法性能,Tongsuo和openssl3.2测试结果表现一致; 8K数据的加解密,倚天ECS g8y实例是g7的9.84倍。

SM4-CTR性能测试命令:taskset -c 0-7 ./apps/openssl speed -multi 8 -elapsed -evp sm4-ctr

加密库

SM4-CTR

1K bytes

8K bytes

Tongsuo

g7

825366.53

826619.22

g8y

30621407.23

31672524.80

openssl-3.2

g7

825741.99

827034.28

g8y

30596200.79

31688701.27

image.png

测试结果:SM4-CTR算法性能,Tongsuo和openssl3.2测试结果表现一致; 8K数据的加解密,倚天ECS g8y实例是g7的38.3倍。

SM4-XTS性能测试命令:taskset -c 0-7 ./apps/openssl speed -multi 8 -elapsed -evp sm4-xts

加密库

SM4-XTS

1K bytes

8K bytes

Tongsuo

(未支持sm4-xts)

g7

NA

NA

g8y

NA

NA

openssl-3.2

g7

830255.10

837741.23

g8y

7598128.13

7347869.01

image.png

测试结果:SM4-XTS算法性能,8K数据的加解密,倚天ECS g8y实例是g7的8.77倍。

SM4-GCM 认证加密算法性能

GCM(Galois/Counter Mode)是认证加密(AEAD)模式中的一种, 能同时确保数据的保密性、完整性,它还可以提供附加消息的完整性校验。SM4-GCM算法适用场景TLS连接场景,如支持国密算法的浏览器。

SM4-GCM性能测试命令:taskset -c 0-7 ./apps/openssl speed -multi 8 -elapsed -evp sm4-gcm

加密库

SM4-CTR

1K bytes

8K bytes

Tongsuo

g7

894681.43

899358.72

g8y

18692320.94

19156877.31

openssl-3.2

g7

894615.89

899618.13

g8y

18686604.63

19151476.05

image.png

测试结果:SM4-GCM算法性能,Tongsuo和openssl3.2测试结果表现一致; 8K数据的加解密,倚天ECS g8y实例是g7的21.2倍。

总结

本文基于OpenSSL 3.2和Tongsuo 测试对比了倚天ECS g8y实例和Intel g7实例几个常用的国密算法性能。可以看到g8y实例性能全面领先于g7,这要得益倚天g8y强大的多核物理核心,先进的armv9架构。另外我们也看到阿里巴巴开源的Tongsuo加密库和OpenSSL 3.2的性能表现结果一致,对于那些依赖OpenSSL1.1加密的应用来说,Tongsuo不失为一个优秀高性能加密库替代产品。此外,倚天g8y实例售价比g7实例低23%,是极具性价比的一款云计算实例产品。

好啦!小弹的分享到此为止。我们更欢迎您分享您对阿里云产品的设想、对功能的建议或者各种吐槽,请扫描提交问卷并获得社区积分或精美礼品一份。https://survey.aliyun.com/apps/zhiliao/P4y44bm_8

【扫码填写上方调研问卷】

欢迎每位来到弹性计算的开发者们来反馈问题哦~

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
算法 测试技术 Go
go-dongle v1.1.7 发布,新增 SM4 国密分组对称加密算法支持
`dongle` 是一款轻量级、语义化、开发者友好的 Golang 密码库,100% 单元测试覆盖,获 2024 年 GVP 与 G-Star 双项荣誉。支持 SM4 国密算法,提供标准及流式处理,优化读取位置重置,提升安全性与易用性。文档齐全,开源免费,欢迎 Star!
272 0
|
4月前
|
算法 测试技术 Go
go-dongle v1.1.7 发布,新增 SM4 国密分组对称加密算法支持
`dongle` 是一款轻量级、语义化、开发者友好的 Golang 密码库,100% 单元测试覆盖,获 2024 年 GVP 与 G-Star 双项荣誉。支持 SM4 国密算法,提供标准及流式处理,优化读取位置重置,提升安全性与易用性。文档齐全,开源免费,欢迎 Star!
270 0
|
9月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
4月前
|
存储 机器学习/深度学习 监控
网络管理监控软件的 C# 区间树性能阈值查询算法
针对网络管理监控软件的高效区间查询需求,本文提出基于区间树的优化方案。传统线性遍历效率低,10万条数据查询超800ms,难以满足实时性要求。区间树以平衡二叉搜索树结构,结合节点最大值剪枝策略,将查询复杂度从O(N)降至O(logN+K),显著提升性能。通过C#实现,支持按指标类型分组建树、增量插入与多维度联合查询,在10万记录下查询耗时仅约2.8ms,内存占用降低35%。测试表明,该方案有效解决高负载场景下的响应延迟问题,助力管理员快速定位异常设备,提升运维效率与系统稳定性。
270 4
|
5月前
|
算法 数据挖掘 异构计算
【多目标优化算法比较】MOFPA、MOFA、MOCS、MOBA、MOHHO五种多目标优化算法性能对比研究(Matlab代码实现)
【多目标优化算法比较】MOFPA、MOFA、MOCS、MOBA、MOHHO五种多目标优化算法性能对比研究(Matlab代码实现)
375 0
【多目标优化算法比较】MOFPA、MOFA、MOCS、MOBA、MOHHO五种多目标优化算法性能对比研究(Matlab代码实现)
|
6月前
|
机器学习/深度学习 算法 5G
【MUSIC、最大似然与克拉美-罗下界】MUSIC与ESPRIT 算法来估计到达角(AoA),并尝试推导克拉美-罗下界(CRLB)以分析其性能研究(Matlab代码实现)
【MUSIC、最大似然与克拉美-罗下界】MUSIC与ESPRIT 算法来估计到达角(AoA),并尝试推导克拉美-罗下界(CRLB)以分析其性能研究(Matlab代码实现)
318 0
|
8月前
|
机器学习/深度学习 数据采集 监控
基于CNN卷积神经网络和GEI步态能量提取的步态识别算法matlab仿真,对比不同角度下的步态识别性能
本项目基于CNN卷积神经网络与GEI步态能量提取技术,实现高效步态识别。算法使用不同角度(0°、45°、90°)的步态数据库进行训练与测试,评估模型在多角度下的识别性能。核心流程包括步态图像采集、GEI特征提取、数据预处理及CNN模型训练与评估。通过ReLU等激活函数引入非线性,提升模型表达能力。项目代码兼容Matlab2022a/2024b,提供完整中文注释与操作视频,助力研究与应用开发。
|
10月前
|
传感器 存储 算法
基于ECC簇内分组密钥管理算法的无线传感器网络matlab性能仿真
本程序基于ECC(椭圆曲线密码学)簇内分组密钥管理算法,对无线传感器网络(WSN)进行MATLAB性能仿真。通过对比网络通信开销、存活节点数量、网络能耗及数据通信量四个关键指标,验证算法的高效性和安全性。程序在MATLAB 2022A版本下运行,结果无水印展示。算法通过将WSN划分为多个簇,利用ECC生成和分发密钥,降低计算与通信成本,适用于资源受限的传感器网络场景,确保数据保密性和完整性。
|
11月前
|
算法
一次推理,实现六大3D点云分割任务!华科发布大一统算法UniSeg3D,性能新SOTA
华中科技大学研究团队提出了一种名为UniSeg3D的创新算法,该算法通过一次推理即可完成六大3D点云分割任务(全景、语义、实例、交互式、指代和开放词汇分割),并基于Transformer架构实现任务间知识共享与互惠。实验表明,UniSeg3D在多个基准数据集上超越现有SOTA方法,为3D场景理解提供了全新统一框架。然而,模型较大可能限制实际部署。
890 15
|
11月前
|
JavaScript 前端开发 算法
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
Array.sort() 是一个功能强大的方法,通过自定义的比较函数,可以处理各种复杂的排序逻辑。无论是简单的数字排序,还是多字段、嵌套对象、分组排序等高级应用,Array.sort() 都能胜任。同时,通过性能优化技巧(如映射排序)和结合其他数组方法(如 reduce),Array.sort() 可以用来实现高效的数据处理逻辑。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

热门文章

最新文章

相关产品

  • 云服务器 ECS