2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Имитовставки - прошу ликбеза
Сообщение01.07.2023, 02:18 
Понадобилось немножко просветиться касательно MAC/HMAC/CMAC (при том, что познаний в криптографии практически нет - ну, так, на уровне размахивания руками и примерного понимания простых терминов...)
Статья в вики показалась довольно невнятной. Самое для дураков, на что набрёл - это https://www.cardinalpeak.com/blog/the-difference-between-hmac-and-mac.
Но даже там мне явно не хватает какого-то базового понимания постановки задачи.

Итак, есть Алиса, Боб и симметричный шифр с ключом, которым владеют обе стороны.
Алиса шлёт Бобу шифр-текст. Боб расшифровывает. Зачем ему нужна проверка целостности и аутентичности сообщения? Я исхожу из того, что "человек посередине" пароля не знает ни в коем случае. Соответственно, злоумышленнику недоступны никакие манипуляции с исходным текстом, но он может, например, уполовинить шифр-текст. Тогда Боб получит осмысленную расшифровку, но сообщение будет неполным. Или, если критерий осмысленности исходного текста неочевиден, злоумышленник может вообще заменить шифр-текст на произвольный.

Но если Алиса пошлёт, кроме шифр-текста, ещё и шифрованный хэш исходного текста, а Боб расшифрует, захэширует и получит совпадение хэшей, то целостность и аутентичность гарантированы с точностью до коллизий хэша.
Здесь уже начинаются для меня непонятки. Задача создания преднамеренной коллизии SHA-256 даже для открытого текста на сей день не решена и вряд ли будет решена скоро. Удачная подмена "вслепую" - когда зашифрован и текст, и его хэш - мне кажется абсолютно невероятной. Соответственно, я не понимаю, чего не хватает Алисе и Бобу в вышеописанной простейшей схеме защиты?

 
 
 
 Re: Имитовставки - прошу ликбеза
Сообщение01.07.2023, 14:17 
Аватара пользователя
Не обязательно коллизии - атакующий может и поменять хэш. Есть ключ $k$, известный только Алисе и Бобу, и сообщение $m$. Алиса посылает сообщение $(m, h(k + m))$. Еве не обязательно находить сообщение $m'$ такое что $h(k + m) = h(k + m')$, её достаточно уметь находить сообщение $m'$ такое что она сможет вычислить $h(k + m')$. И на многие хеш-функции, в том числе на SHA-256, есть атака удлинением сообщения - если Ева знает длину $m$, то может посчитать хеш-функцию от $m' = m + m_1$ для произвольного $m_1$ (по модулю выравнивания).

 
 
 
 Re: Имитовставки - прошу ликбеза
Сообщение01.07.2023, 17:26 
mihaild в сообщении #1599560 писал(а):
Не обязательно коллизии - атакующий может и поменять хэш. Есть ключ $k$, известный только Алисе и Бобу, и сообщение $m$. Алиса посылает сообщение $(m, h(k + m))$. Еве не обязательно находить сообщение $m'$ такое что $h(k + m) = h(k + m')$, её достаточно уметь находить сообщение $m'$ такое что она сможет вычислить $h(k + m')$. И на многие хеш-функции, в том числе на SHA-256, есть атака удлинением сообщения - если Ева знает длину $m$, то может посчитать хеш-функцию от $m' = m + m_1$ для произвольного $m_1$ (по модулю выравнивания).

Раз у Алисы и Боба есть ключ $k$, Алиса может послать $(k(m), k(h(m)))$. Какие могут быть атаки на это?

 
 
 
 Re: Имитовставки - прошу ликбеза
Сообщение01.07.2023, 18:43 
diletto в сообщении #1599580 писал(а):
Раз у Алисы и Боба есть ключ $k$, Алиса может послать $(k(m), k(h(m)))$. Какие могут быть атаки на это?

Наверное, правильно записывать так: $(encrypt(m,k), encrypt(h(m),k))$.

 
 
 
 Re: Имитовставки - прошу ликбеза
Сообщение01.07.2023, 20:23 
Аватара пользователя
Это уже другой протокол. MAC предполагает, что текст передается открыто, и просто добавляется строка для доказательства авторства.
Ваш протокол зависит от того, какие тут алгоритмы шифрования и хеширования. И идет уже опасно близко к придумыванию собственных криптографических протоколов, что является смертным грехом.

 
 
 
 Re: Имитовставки - прошу ликбеза
Сообщение01.07.2023, 20:42 
mihaild в сообщении #1599593 писал(а):
Это уже другой протокол. MAC предполагает, что текст передается открыто, и просто добавляется строка для доказательства авторства.

Я не понимаю, зачем так делать, если уже имеется общий секретный ключ? Логично зашифровать и сообщение тоже.

 
 
 
 Re: Имитовставки - прошу ликбеза
Сообщение01.07.2023, 21:26 
Аватара пользователя
Не всегда. Например шифрование вычислительно не бесплатное. А если данные не секретные, а важна только целостность, то тратить ресурсы на их шифрование-дешифрование странно (а надежные хеши вычисляются гораздо проще, чем шифры).

 
 
 
 Re: Имитовставки - прошу ликбеза
Сообщение01.07.2023, 23:03 
mihaild, спасибо! Базовая идея дошла до меня.
Предназначение HMAC тем самым тоже прояснилось.
Намекните ещё, каковы сценарии использования CMAC?.. Пока я уяснил, что его применяют в легаси-продуктах с аппаратным ускорением блочного шифрования. А также, возможно, в тех случаях, когда хочется-таки получить одновременно и шифрование данных, и аутентификацию/целостность - но здесь всё равно рекомендовано использовать другие подходы, объединённые общим именем "Authenticated encryption" (среди них есть и тот, который я себе изначально представлял как основной сценарий для макирования: https://en.wikipedia.org/wiki/Authenticated_encryption#Encrypt-and-MAC_(E&M)). Таким образом, правильно ли будет сказать, что CMAC - экзотическая и, возможно, отмирающая вещь?

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group