linux - 使用多选项解释 rsa 的 openssl 速度输出

标签 linux performance openssl rsa

我正在尝试评估 CPU 性能。我有一个 Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz 并运行以下命令:openssl speed rsa -multi 12 2>&1 |tee openssl-log.txt 并得到以下输出:

                   sign   verify   sign/s   verify/s
rsa  512 bits 0.000008s 0.000001s 118050.6 1200000.0
rsa 1024 bits 0.000038s 0.000002s  26098.7 451567.0
rsa 2048 bits 0.000239s 0.000007s   4183.6 135606.3
rsa 4096 bits 0.001713s 0.000028s    583.7  35778.4

有人可以帮我理解输出吗? sign and verify 列是什么意思?文档似乎没有太多解释: https://www.openssl.org/docs/apps/speed.html

提前谢谢你。

最佳答案

速度测试代码在<openssl>/apps/speed.c中.

-multi是多个并行基准测试的开关,而不是乘法(以消除所有混淆)。查看第 1145 行的评论:

#ifndef NO_FORK
    BIO_printf(bio_err,"-multi n        run n benchmarks in parallel.\n");
#endif

What does the column sign and verify mean?

签名并验证按照他们所说的去做。他们使用不同的 RSA 模数对签名操作和验证操作进行计时。

Sign/s 和 Verify/s 是 Sign 和 Verify 的倒置。即,1/0.000008s => 每秒 125,000 个符号。

这是打印您看到的报告的代码。它从第 2450 行开始:

#ifndef OPENSSL_NO_RSA
    j=1;
    for (k=0; k<RSA_NUM; k++)
        {
        if (!rsa_doit[k]) continue;
        if (j && !mr)
            {
            printf("%18ssign    verify    sign/s verify/s\n"," ");
            j=0;
            }
        if(mr)
            fprintf(stdout,"+F2:%u:%u:%f:%f\n",
                k,rsa_bits[k],rsa_results[k][0],
                rsa_results[k][1]);
        else
            fprintf(stdout,"rsa %4u bits %8.6fs %8.6fs %8.1f %8.1f\n",
                rsa_bits[k],rsa_results[k][0],rsa_results[k][1],
                1.0/rsa_results[k][0],1.0/rsa_results[k][1]);
        }
#endif

找到执行签名和验证的代码作为练习留给读者 ;)


have an Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz

只是自行车脱落,但一定要configenable-ec_nistp_64_gcc_128如果您使用的是现代 GCC。使用 ec_nistp_64_gcc_128将使某些操作(例如 DH 操作)加速 2 倍或 4 倍。

__uint128_t 需要现代 GCC . Configure无法确定编译器是否支持 __uint128_t独自一人,所以它离开了ec_nistp_64_gcc_128禁用。

关于linux - 使用多选项解释 rsa 的 openssl 速度输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21322053/

相关文章:

linux - Linux中的系统调用是如何实现的?

linux - 如何在 windows 中使用 timeval 等 Linux 库

MySQL 查询在 where 语句上变慢

sql - 在 ORDER BY 子句中使用索引

.net - ASP.Net Web 服务响应时间慢

无法通过 openssl 以与 crypt、mkpasswd 或 openssl 通过 cmdline 相同的格式获取密码哈希

python - wxpython ProgressDialog 段错误(lin,不是 win)

linux - 将多个 gif 转换为单个 eps

python - 解析 X509 专有名称

c - OpenSSL EVP API 无冲突与单向属性 MAC