当前位置: 首页 > news >正文

openssl 启用AES NI加速对AES加密性能影响的测试

openssl 默认启用AES NI加速,所以不需要任何设置

openssl speed -elapsed -evp aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing AES-128-CBC for 3s on 16 size blocks: 303627501 AES-128-CBC's in 3.00s
Doing AES-128-CBC for 3s on 64 size blocks: 91063578 AES-128-CBC's in 3.00s
Doing AES-128-CBC for 3s on 256 size blocks: 22911573 AES-128-CBC's in 3.00s
Doing AES-128-CBC for 3s on 1024 size blocks: 5818271 AES-128-CBC's in 3.00s
Doing AES-128-CBC for 3s on 8192 size blocks: 729244 AES-128-CBC's in 3.00s
Doing AES-128-CBC for 3s on 16384 size blocks: 366142 AES-128-CBC's in 3.00s
version: 3.0.2
built on: Wed Feb  5 13:19:41 2025 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-rEtvJl/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfed83203078bffff:0x405fc6f1bf07a9
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CBC    1619346.67k  1942689.66k  1955120.90k  1985969.83k  1991322.28k  1999623.51k

如果要禁用AES NI加速,按照openssl文档的说明设置环境变量

OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing AES-128-CBC for 3s on 16 size blocks: 74485185 AES-128-CBC's in 3.00s
Doing AES-128-CBC for 3s on 64 size blocks: 19256192 AES-128-CBC's in 3.00s
Doing AES-128-CBC for 3s on 256 size blocks: 4866365 AES-128-CBC's in 3.00s
Doing AES-128-CBC for 3s on 1024 size blocks: 1226058 AES-128-CBC's in 3.00s
Doing AES-128-CBC for 3s on 8192 size blocks: 153117 AES-128-CBC's in 3.00s
Doing AES-128-CBC for 3s on 16384 size blocks: 76432 AES-128-CBC's in 3.00s
version: 3.0.2
built on: Wed Feb  5 13:19:41 2025 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/openssl-rEtvJl/openssl-3.0.2=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0xfcd83201078bffff:0x0 env:~0x200000200000000
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
AES-128-CBC     397254.32k   410798.76k   415263.15k   418494.46k   418111.49k   417420.63k

测试结果说明,启用AES NI加速的每秒加密字节数最高1999623.51k,而禁用是418494.46k,差了4倍。

再来看对一个255MB的文件加密用时,AES-128-CBC设置环境变量与否对比sm4-cbc

time openssl aes-128-cbc -e  -K 31323334353637383930313233343536 -iv 31323334353637383930313233343536 -in ENC_NO -out ENC_AESreal    0m11.011s
user    0m0.291s
sys     0m0.646stime OPENSSL_ia32cap="~0x200000200000000" openssl aes-128-cbc -e  -K 31323334353637383930313233343536 -iv 31323334353637383930313233343536 -in ENC_NO -out ENC_aesreal    0m11.172s
user    0m0.802s
sys     0m0.653stime openssl sm4-cbc -e  -K 31323334353637383930313233343536 -iv 31323334353637383930313233343536 -in ENC_NO -out ENC_SM4real    0m13.781s
user    0m1.671s
sys     0m0.638s

两个算法的差距不大。环境变量也没有影响

http://www.dtcms.com/a/392935.html

相关文章:

  • LeetCode:32.随机链表的复制
  • 基于SpringBoot+Vue的旅游系统【协同过滤推荐算法+可视化统计】
  • 前端实现一个星空特效的效果(实战+讲解)
  • 【嵌入式】【科普】软件模块设计简介
  • 【ROS2】ROS2通讯机制Topic常用命令行
  • 欧姆龙NJ系列PLC编程标准化案例
  • 【OpenGL】LearnOpenGL学习笔记25 - 法线贴图 NormalMap
  • UE5 基础应用 —— 09 - 行为树 简单使用
  • 客户端实现信道管理
  • 异常解决记录 | Yarn NodeManager 注册异常
  • 【C#】C# 调用 Python 脚本正确姿势:解决 WaitForExit 死锁与退出检测问题
  • Java25新特性
  • 卷积神经网络CNN-part9-DenseNet
  • 深入浅出密码学第一章课后题(持续更新)
  • Mysql 入门概览
  • 大模型中权重共享的作用?
  • 【精品资料鉴赏】55页可编辑PPT详解 数字化高校智慧后勤解决方案
  • LLM大模型 - 实战篇 - AI Agents的开发应用
  • 【分布式技术】RedisShake相关功能详细介绍
  • qsv:一款高性能的CSV数据处理工具
  • `html` 将视频作为背景
  • 口播提词器怎么选?手机提词器实测指南与参数推荐
  • 解剖线性表
  • 计算数学研究方向有哪些细分领域?
  • [xboard]08-Makefile逐行分析2
  • Clash 中 REJECT 的技术原理与解决方案 —— 以哔哩哔哩延迟问题为例
  • 庖丁解牛与专家思维:道家的“心手合一”训练法
  • matlab通过GUI实现点云的读取、自定义显示和保存
  • 工业现场实战:如何利用智能网关实现西门子PLC与库卡机器人的无缝连接
  • 【开题答辩全过程】以 Java程序设计课程作业数据分析为例,包含答辩的问题和答案