FastNetMon

понедельник, 28 июля 2014 г.

Тестирование скорости хэш функций реализованных в OpenSSL на процессорах семейства Xeon E5 26XX

Вот так запускать тесты:
for i in md4 md5 sha1 sha256 sha512; do openssl speed $i 2>&1|egrep -v '(Doing|OpenSSL|built|options|compiler)';done
Вот такие результаты вышли у меня (OpenSSL 1.0.1e-fips 11 Feb 2013, CentOS 6):
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md4              68566.14k   173477.65k   515525.95k   677865.49k   931820.76k
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md5              40919.27k   133902.74k   332599.15k   487704.31k   560110.13k
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
sha1             53991.04k   156746.65k   345242.72k   502931.07k   572807.73k
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
sha256           35243.93k    91730.62k   165080.62k   193792.86k   213022.14k
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
sha512           33810.13k   135413.99k   174028.97k   296263.47k   345636.64k
 Почему такие странности? Ой, а какие странности? Например, то, что SHA1 быстрее чем md5, что довольно неожиданно.

Беглый анализ кода OpenSSL (1.0.2.beta2) дает такие вот хитрые ответы:
  • md-4 написан исключительно на C.
  • md-5 использует ассемблерные оптимизации для 86_64,  i586, но НЕ использует SIMD инструкции SSE.
  • sha-1 использует ассемблерные оптимизации под почти все популярные архитектуры.  Кроме этого, имеет оптимизации на SSE3, Intel AVX,  а также на Intel SHA Extensions.
  • sha-256 использует ассемблерные оптимизации и немного SIMD инструкций, но без особого фанатизма, судя по коду.
  • А вот sha-512 также очень тщательно оптимизирован по аналогии с sha-1.






Комментариев нет :

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.