---
title: OpenSSL/Tongsuo与KAE加速引擎性能测试
description: "用户可以通过本节提供的命令测试RSA同步/异步模式、SM3模式、SM4 CBC模式和AES CBC异步模式下调用KAE前后的性能提升效果。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/252RC1/accel/kunpengaccel_06_0019.html
sourcePath: /source/zh/kunpengboostkithistory/252RC1/accel/kunpengaccel_06_0019.html
indexId: 9b1a800350890d9e988bfbcf4e6fc8382ef22450d41396fcf0804bb581e1307272
---
# OpenSSL/Tongsuo与KAE加速引擎性能测试

用户可以通过本节提供的命令测试RSA同步/异步模式、SM3模式、SM4 CBC模式和AES CBC异步模式下调用KAE前后的性能提升效果。

若加解密库为Tongsuo，测试方法和OpenSSL一致。

本测试数据源自鲲鹏920处理器及CentOS 7.6操作系统环境。


#### 检查OpenSSL

查看OpenSSL版本。```
openssl version
```


如果不是安装KAE时的OpenSSL，可以设置如下环境变量来指定OpenSSL。以下命令中“/path/install”为OpenSSL的安装路径。```
export PATH=/path/install/bin:$PATH
export LD_LIBRARY_PATH=/path/install/lib:$LD_LIBRARY_PATH
```


#### 测试同步RSA性能

- 使用OpenSSL的软件算法测试RSA性能。
  1 openssl speed -elapsed rsa2048

  显示结果如下。 1 2 3 ... sign verify sign/s verify/s rsa 2048 bits 0.001384s 0.000035s 724.1 28365.8.

- 使用KAE加速引擎测试RSA性能。
  1 openssl speed -elapsed -engine kae rsa2048

  显示结果如下。 1 2 3 .... sign verify sign/s verify/s rsa 2048 bits 0.000355s 0.000022s 2819.0 45478.4


使用KAE加速引擎加速后签名性能从724.1 sign/s提升到2819 sign/s。


#### 测试异步RSA性能

- 使用OpenSSL的软件算法测试异步RSA性能。
  1 openssl speed -elapsed -async_jobs 36 rsa2048

  显示结果如下。 1 2 3 .... sign verify sign/s verify/s rsa 2048 bits 0.001318s 0.000032s 735.7 28555

- 使用KAE加速引擎测试异步RSA性能。
  1 openssl speed -engine kae -elapsed -async_jobs 36 rsa2048

  显示结果如下。 1 2 3 .... sign verify sign/s verify/s rsa 2048 bits 0.000018s 0.000009s 54384.1 105317.0


使用KAE加速引擎加速后异步RSA签名性能从735.7 sign/s提升到54384.1 sign/s。


#### 测试SM4 CBC模式性能

- 使用OpenSSL的软件算法测试SM4 CBC模式性能。
  1 openssl speed -elapsed -evp sm4-cbc

  显示结果如下。 1 2 3 4 5 You have chosen to measure elapsed time instead of user CPU time. .... Doing sm4-cbc for 3s on 10240 size blocks: 2196 sm4-cbc's in 3.00s .... type 51200 bytes 102400 bytes1048576 bytes2097152 bytes4194304 bytes8388608 bytes sm4-cbc 82312.53k 85196.80k 85284.18k 85000.85k 85284.18k 85261.26k

- 使用KAE加速引擎测试SM4 CBC模式性能。
  1 openssl speed -elapsed -engine kae -evp sm4-cbc

  显示结果如下。 1 2 3 4 5 6 7 engine "kae" set. You have chosen to measure elapsed time instead of user CPU time. ... Doing sm4-cbc for 3s on 1048576 size blocks: 11409 sm4-cbc's in 3.00s ... type 51200 bytes 102400 bytes1048576 bytes2097152 bytes4194304 bytes8388608 bytes sm4-cbc 383317.33k 389427.20k 395313.15k 392954.73k 394264.58k 394264.58k


使用KAE加速后SM4 CBC模式在输入数据块大小为8MB时，性能从82312.53k/s提升到383317.33k/s。


#### 测试SM3模式性能

- 使用OpenSSL的软件算法测试SM3模式性能。
  1 openssl speed -elapsed -evp sm3

  显示如下结果。 1 2 3 4 5 You have chosen to measure elapsed time instead of user CPU time. Doing sm3 for 3s on 102400 size blocks: 1536 sm3's in 3.00s .... type 51200 bytes 102400 bytes1048576 bytes2097152 bytes4194304 bytes8388608 bytes sm3 50568.53k 52428.80k 52428.80k 52428.80k 52428.80k 52428.80k

- 使用KAE加速引擎测试SM3模式性能。
  1 openssl speed -elapsed -engine kae -evp sm3

  显示如下结果。 1 2 3 4 5 6 engine "kae" set. You have chosen to measure elapsed time instead of user CPU time. Doing sm3 for 3s on 102400 size blocks: 19540 sm3's in 3.00s .... type 51200 bytes 102400 bytes 1048576 bytes 2097152 bytes 4194304 bytes 8388608 bytes sm3 648243.20k 666965.33k 677030.57k 678778.20k 676681.05k 668292.44k


使用KAE加速后SM3算法在输入数据块大小为8MB时，从52428.80k/s提升到668292.44k/s。


#### 测试AES算法CBC模式异步性能

- 使用OpenSSL软件算法测试AES算法CBC模式异步性能。
  1 openssl speed -elapsed -evp aes-128-cbc -async_jobs 4

  显示结果如下。 1 2 3 4 5 6 You have chosen to measure elapsed time instead of user CPU time. Doing aes-128-cbc for 3s on 51200 size blocks: 65773 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 102400 size blocks: 32910 aes-128-cbc's in 3.00s .... type 51200 bytes 102400 bytes1048576 bytes2097152 bytes4194304 bytes8388608 bytes aes-128-cbc 1122525.87k 1123328.00k 1120578.22k 1121277.27k 1119879.17k 1115684.86k

- 使用KAE加速引擎测试AES算法CBC模式异步性能。
  1 openssl speed -elapsed -evp aes-128-cbc -async_jobs 4 -engine kae

  结果显示如下。 1 2 3 4 5 6 7 engine "kae" set. You have chosen to measure elapsed time instead of user CPU time. Doing aes-128-cbc for 3s on 51200 size blocks: 219553 aes-128-cbc's in 3.00s Doing aes-128-cbc for 3s on 102400 size blocks: 117093 aes-128-cbc's in 3.00s .... type 51200 bytes 102400 bytes1048576 bytes2097152 bytes4194304 bytes8388608 bytes aes-128-cbc 3747037.87k 3996774.40k 1189085.18k 1196774.74k 1196979.11k 1199570.94k


- OpenSSL的测试数据的长度定义在speed.c文件中（speed.c文件在openssl源代码包的app目录下，例如：openssl-1.1.1a/apps/speed.c）的lengths_list数组中，测试者可以在此处修改该数据，然后请参见  安装OpenSSL/Tongsuo
章节编译安装OpenSSL后进行测试。（本文中的51200bytes 102400bytes......等测试数据长度就是这样来的。）
- AES仅支持数据长度为256KB及以下场景的异步使用。
- 使用KAE加速后AES算法在输入数据块为100KB大小时，从1123328.00k/s提升到3996774.40k/s。
