Атака на хеш-функции, которые не удовлетворяют одностороннему свойству

9

Я пересматриваю курс по компьютерной безопасности и застрял на одном из прошлых вопросов. Вот:

Алиса ( ) хочет отправить короткое сообщение M Бобу ( B ), используя общий секрет S a b, чтобы подтвердить, что сообщение пришло от нее. Она предлагает отправить одно сообщение из двух частей: A B :AMBSab где h - хеш-функция и обозначает конкатенацию.

AB:M,h(MSab)
h
  1. Тщательно объясните, что делает Боб, чтобы проверить, что сообщение пришло от Алисы, и почему (кроме свойств ) он может в это поверить.h
  2. Предположим, что не удовлетворяет одностороннему свойству и возможно генерировать предварительные изображения. Объясните, что может сделать злоумышленник и как.h
  3. Если генерация предварительных изображений занимает сравнительно много времени, предложите простую контрмеру для улучшения протокола без изменения .h

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

Я не уверен насчет вторых двух вопросов. Во втором случае ответ будет таким: злоумышленник может просто получить исходное сообщение с помощью хэша? Я не уверен, как это будет сделано, хотя.

Сэм
источник
3
Пожалуйста, дайте атрибуцию для изображения. Кроме того, рассмотрите возможность копирования текста, чтобы его можно было правильно найти.
Рафаэль

Ответы:

7

Во втором случае ответ будет таким: злоумышленник может просто получить исходное сообщение с помощью хэша?

MM,h(MSab)MM

По второму вопросу: если легко создать предварительные изображения , злоумышленник может узнать секретный ключ из тем самым нарушив схему. (Обратите внимание, что это может быть не тривиально. Процесс инвертирования может вывести , что , но это не полезно для противника. Кроме того, если злоумышленник попытается снова инвертировать , он может получить то же самое изображение.)hSabh(MSab)
M1,S1h(MSab)=h(M1S1)h

Третий вопрос: теперь мы предполагаем, что инвертирование занимает много времени, поэтому давайте усложним жизнь противника, потребовав от него инвертировать его много раз, чтобы нарушить схему. Например, используйте хэш раз . Существуют и другие решения.hkh(h(h(....h(MSab)..))

Ран Г.
источник