Рейтинг:0

Является ли использование HMAC-SHA256 (ключ, счетчик) только для предоставления пэда уязвимым для брутфорса?

флаг cn
зашифрованный текст1 = hmac-sha256(ключ, счетчик1) ❏ (открытый текст1 с хэшем открытого текста1 sha1)
зашифрованный текст2 = hmac-sha256(ключ, счетчик2) √ (открытый текст2 с хэшем открытого текста2 sha1)
зашифрованный текст3 = hmac-sha256(ключ,счетчик3) â (открытый текст3 с хэшем открытого текста3 sha1)
.
.
.

Примечание: счетчик N увеличивается, пока (открытый текстN с хэшем открытого текстаN sha1) длиннее, чем hmac-sha256(ключ, счетчикN). Таким образом, это функция while для продолжения hmac-sha256 с увеличенными счетчиками.

Допустим, Ева знает счетчики и шифротексты.Может ли Ева найти ключ, кроме грубой силы? Нужно ли скрывать счетчик от Евы? Или Ева сможет взломать этот шифр без ключа? Каков предел использования этого алгоритма, чтобы продолжать использовать тот же ключ для hmac-sha256?

Примечание-2: я не криптограф. это просто любопытство

Примечание-3: длина ключа 256 бит.

kelalaka avatar
флаг in
Почему вы шифруетесь с помощью HMAC? это будет намного медленнее, чем использование KMAC или BLAKE2b в качестве MAC-адреса с ключом ... кажется, вы просто используете HMAC в качестве режима CTR. Вместо этого вы можете использовать [Хешировать таким образом] (https://crypto.stackexchange.com/q/1656/18298)
флаг cn
Да, похоже, вы правы насчет скорости. И, конечно же, в ссылке часть «AES была проанализирована гораздо более подробно» сбивает с толку. Но и эта часть явно права. Думаю, мне следует учиться на BLAKE или KMAC. Спасибо!
Maarten Bodewes avatar
флаг in
Я бы не стал использовать SHA-1 таким образом. Если злоумышленник знает открытый текст и хэш, он может выполнить атаку бит-флип. Так что я думаю, что ответ нет. Вместо этого вы можете заменить SHA-1 на HMAC по счетчику + зашифрованный текст. Я также не уверен, что алгоритм описан хорошо, потому что счетчик используется как одноразовый номер и для шифрования большей части сообщения, но я полагаю, что это больше проблема с описанием, чем с шифром.
флаг cn
Да ты прав.Так что я могу сказать "hmac-sha256(ключ, счетчик) (открытый текст с hmac-sha1(открытый текст, возможно_другой_ключ))", верно? И, вероятно, я плохо описал, но я не знаю, где я сделал запутанное описание ... Если часть «с» сбивает с толку, я имею в виду, что нужно поставить пробел между открытым текстом и результатом hmac-sha1, а затем выполнить операцию xor с результатом hmac-sha256.
флаг cn
Я тупой :p Часть "hmac-sha1(открытый текст, возможно_другой_ключ)" не нужна. И я решил использовать это: "ciphertext1 = blake3(счетчик, ключ) открытый текст" и "hash = blake3(ciphertext1, other_key)" отправить ciphertext1 и hash. Спасибо, Маартен и Келалака. Я думаю, что я сделал сейчас правда, не так ли? (Извините за беспокойство)

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

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