2014-01-24 3 views
5

CPU 성능을 평가하려고합니다. 나는 인텔 (R) 제온 (R) CPU의 E5-1650 v2로 @의 3.50GHz가 다음과 같은 명령을 실행 : openssl speed rsa -multi 12 2>&1 |tee openssl-log.txt를 다음과 같은 출력을 가지고 :다중 옵션이있는 rsa의 openssl 속도 출력 해석

    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 

누군가가 나를 출력을 이해하는 데 도움 주실 수 있습니까? 열의 부호와 검증은 무엇을 의미합니까? 문서는별로 설명하지 않는 것 같습니다 : https://www.openssl.org/docs/apps/speed.html

미리 감사드립니다.

답변

5

속도 테스트 코드는 <openssl>/apps/speed.c입니다.

-multi은 (모든 혼동을 제거하기 위해) 곱셈이 아닌 병렬로 여러 벤치 마크를위한 스위치입니다. 라인 1145 주위의 의견을 참조하십시오

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

열 기호 및 확인은 무엇을 의미 하는가?

그들이 말한대로 서명하고 확인하십시오. 그들은 다른 RSA 모듈을 사용하여 서명 작업과 검증 작업을 시간을 잰다.

Sign/s 및 Verify/s는 Sign and Verify의 반전입니다. 즉, 1/0.000008s => 초당 125,000 개의 징후.

보고있는 보고서를 인쇄하는 코드는 다음과 같습니다.


는 인텔 (R) 제온 (R를)

#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 

이 기호를 수행하고 독자에게 연습 문제로 남겨 확인하기 위해 코드를 찾기 : 그것은 라인 2450 주위에 시작)의 CPU E5-1650 v2로 @의 3.50GHz

그냥 자전거 흘림,하지만 당신은 현대 GCC를 사용하는 경우 enable-ec_nistp_64_gcc_128config해야합니다. ec_nistp_64_gcc_128을 사용하면 DH 작업과 같은 일부 작업의 속도가 2 배나 4 배 빨라집니다.

__uint128_t에는 최신 GCC가 필요합니다. Configure은 컴파일러에서 __uint128_t을 단독으로 지원하는지 확인할 수 없으므로 ec_nistp_64_gcc_128을 사용하지 않습니다.