Рейтинг:1

Производительность AES CTR + HMAC SHA1

флаг cn

Я выполняю тест производительности на AES с режимом CTR и HMAC SHA1 для аутентификации сообщений и нашел Скорость OpenSSL инструмент для этого.

Я запускаю несколько тестов с скорость openssl -evp sha1 aes-128-ctr aes-128-gcm потому что я хочу сравнить его с режимом GCM, который выполняет шифрование и аутентификацию сообщений в одном режиме.

Теперь мой вопрос: как я могу сравнить эти значения? Является ли значение результата sha1 «скоростью» комбинации ctr + hmac sha1, потому что это узкое место, или мне нужно вычесть эти два значения, чтобы получить объединенную скорость ctr + hmac sha1?

введите описание изображения здесь

kelalaka avatar
флаг in
HMAC-SHA-1 использует двойной вызов SHA-1, один длинный (хэши почти равны размеру сообщения), а другой короткий, один блок SHA1 (512 бит для SHA-1). Короткие сообщения страдают от инициализации, вам может понадобиться рассмотреть ваш реальный случай. Для интерпретации вывода см. [Как я могу интерпретировать вывод скорости openssl?] (https://stackoverflow.com/q/17410270/1820553) из [so]. Это в основном не по теме.
Maarten Bodewes avatar
флаг in
Наборов шифров AES-CTR не существует. Хотя CTR используется в качестве базовой технологии для GCM, все наборы шифров с аутентификацией MAC основаны на CBC, к сожалению, с использованием MAC-затем-шифрования. Конечно, поскольку CTR и CBC используют одинаковое количество блочных шифров, разница в скорости *должна* быть незначительной для разумных реализаций (но в этом мире много безумия).
kelalaka avatar
флаг in
Я голосую за закрытие этого вопроса, потому что речь идет об интерпретации результатов работы криптографической библиотеки. [Так] уже есть [скорость HMAC] (https://stackoverflow.com/q/58719049/1820553).
Рейтинг:0
флаг in

Является ли значение результата sha1 «скоростью» комбинации ctr + hmac sha1, потому что это узкое место, или мне нужно вычесть эти два значения, чтобы получить объединенную скорость ctr + hmac sha1?

Прежде всего, вам следует использовать AES-CBC, чтобы убедиться, что вы используете правильную комбинацию алгоритмов. AES-CBC намного медленнее, чем AES-CTR на моей машине. Вероятно, это связано с буферизацией; можно предварительно вычислить большие части ключевого потока для AES-CTR.

Пакеты TLS обычно имеют размер около 1,5 КБ, поэтому в качестве лучшего индикатора можно использовать блоки по 1024 байта. Я провел тест скорости с помощью SHA-1, AES-CBC, а также AES-GCM.

Итак, давайте использовать следующие значения:

SHA-1 (представляющий HMAC-SHA-1): 1467708 кБ/с
AES-CBC: 1330523 кБ/с
AES-GCM: 3346640 к

Вместо ГБ/с вы действительно должны смотреть на нс на кБ, таким образом вы можете сложить время обработки вместе, а затем вычислить его обратно в ГБ/с, как хотите.

Теперь мы можем рассчитать скорость SHA-1 + CBC, выполнив:

$$T_{SHA-1\&CBC} = {1 \over {1 \over T_{SHA-1}} + {1 \over T_{AES-CBC}}}$$

куда $Т$ скорость передачи в байтах в секунду.

В результате получится следующее значение: 697876 КБ/с для SHA-1 + AES-CBC.Это означает, что AES-GCM примерно в 4,8 раза быстрее, чем SHA-1 + AES-CBC для обычной реализации без потоков. Это при условии, что HMAC имеет ту же скорость, что и SHA-1 (что примерно верно по всей вероятности, даже несмотря на то, что ему приходится обрабатывать немного больше данных).

Soteri avatar
флаг cn
Большое спасибо за ваш подробный ответ. Единственное, чего я не понимаю, так это почему вы выбрали режим cbc? Я выбрал ctr + hmac sha1, потому что это значение по умолчанию для протокола srtp.
Maarten Bodewes avatar
флаг in
Ах, извините, я думал, что вы будете использовать TLS, потому что вы ссылались на OpenSSL. У меня сейчас мало времени, можете ли вы согласиться с данным ответом, чтобы рассчитать совокупный результат? Я предполагаю, что большинство протоколов не будут многопоточными для одного конкретного соединения, поэтому в этом случае это должен быть правильный способ расчета скорости.

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

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.