Estoy tratando de evaluar el rendimiento de la CPU. Tengo una CPU Intel(R) Xeon(R) E5-1650 v2 a 3,50 GHz y ejecuté el siguiente comando: openssl speed rsa -multi 12 2>&1 |tee openssl-log.txt y obtuve el siguiente resultado:
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¿Puede alguien por favor ayudarme a entender la salida? ¿Qué significa la columna firmar y verificar? Los documentos no parecen explicar mucho: https://www.openssl.org/docs/apps/speed.html
Gracias de antemano.
El código para la prueba de velocidad está en <openssl>/apps/speed.c .
-multi es un interruptor para múltiples puntos de referencia en paralelo, no multiplicaciones (para eliminar toda confusión). Vea los comentarios alrededor de la línea 1145:
#ifndef NO_FORK BIO_printf(bio_err,"-multi n run n benchmarks in parallel.\n"); #endif¿Qué significa la columna firmar y verificar?
Firme y verifique que haga exactamente lo que dicen. Programan una operación de firma y una operación de verificación con diferentes módulos RSA.
Sign/s y Verify/s son las inversiones de Sign and Verify. Es decir, 1/0,000008s => 125.000 signos por segundo.
Aquí está el código para imprimir el informe que está viendo. Comienza alrededor de la línea 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]); } #endifEncontrar el código para realizar la firma y verificar se deja como ejercicio al lector ;)
tener una CPU Intel(R) Xeon(R) E5-1650 v2 a 3,50 GHz
Solo desvío de bicicletas, pero asegúrese de config con enable-ec_nistp_64_gcc_128 si está utilizando un GCC moderno. El uso ec_nistp_64_gcc_128 acelerará algunas operaciones, como la operación DH, en 2x o 4x.
Necesita un GCC moderno para el __uint128_t . Configure no puede determinar si el compilador admite __uint128_t por sí solo, por lo que deja ec_nistp_64_gcc_128 deshabilitado.