Действительно ли вычисление является хешем MD5 меньше ЦП, интенсивного, чем функции семейства SHA?

Действительно ли вычисление является хешем MD5 меньше ЦП, интенсивного, чем SHA-1 или SHA-2 на "стандартном" ноутбуке x86 аппаратные средства? Я интересуюсь общей информацией, не характерной для определенной микросхемы.

ОБНОВЛЕНИЕ: В моем случае я интересуюсь вычислением хеша файла. Если размер файла имеет значение, давайте примем его 300K.

109
задан ST3 13 May 2015 в 20:52
поделиться

2 ответа

Да, MD5 несколько менее загружает процессор. На моем Intel x86 (Core2 Quad Q6600, 2,4 ГГц, с использованием одного ядра) я получил это в 32-битном режиме:

MD5       411
SHA-1     218
SHA-256   118
SHA-512    46

и это в 64-битном режиме:

MD5       407
SHA-1     312
SHA-256   148
SHA-512   189

Цифры указаны в мегабайтах в секунду, для " длинное "сообщение (это то, что вы получаете для сообщений размером более 8 КБ). Это с sphlib , библиотекой реализаций хэш-функций на C (и Java). Все реализации принадлежат одному автору (мне) и были сделаны с сопоставимыми усилиями по оптимизации; таким образом, различия в скорости можно рассматривать как действительно присущие функциям.

Для сравнения, примите во внимание, что последний жесткий диск будет работать со скоростью около 100 МБ / с, а все данные, передаваемые через USB, будут работать со скоростью ниже 60 МБ / с. Хотя здесь SHA-256 кажется «медленным», он достаточно быстр для большинства целей.

Обратите внимание, что OpenSSL включает 32-битную реализацию SHA-512, которая намного быстрее, чем мой код (но не так быстро, как 64-битный SHA-512), потому что реализация OpenSSL находится в сборка и использует регистры SSE2, что невозможно сделать на простом языке C. SHA-512 - единственная функция из этих четырех, которая выигрывает от реализации SSE2.

Редактировать: на этой странице можно найти отчет о скорости многих хеш-функций (щелкните ссылку «Telechargez maintenant»). Отчет на французском языке, но в основном он полон таблиц и цифр, причем цифры являются международными. Реализованные хэш-функции не включают кандидатов SHA-3 (кроме SHABAL), но я над этим работаю.

119
ответ дан 24 November 2019 в 03:23
поделиться

MD5 также выигрывает от использования SSE2, посмотрите на BarsWF и потом скажите мне, что это не так. Все, что требуется, это немного знаний ассемблера, и вы можете создать свою собственную MD5 SSE2 рутину(ы). Однако для больших объемов пропускной способности существует компромисс между скоростью хэширования и временем, потраченным на перегруппировку входных данных для совместимости с используемыми SIMD-инструкциями.

1
ответ дан 24 November 2019 в 03:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: