Атака на хеш-функції, які не задовольняють однобічну властивість


9

Я переглядаю курс комп'ютерної безпеки, і я застряг в одному з минулих питань. Ось воно:

Аліса (A) хоче надіслати коротке повідомлення M до Боба (B) з використанням спільної таємниці Sabпідтвердити, що повідомлення надійшло від неї. Вона пропонує надіслати одне повідомлення з двома частинами:

A→B:M,h(M∥Sab)
де h є хеш-функцією і ∥ позначає конкатенацію.
  1. Поясніть ретельно, що робить Боб, щоб перевірити, чи надійшло повідомлення від Аліси, і чому (окрім властивостей системи h) він може цьому повірити.
  2. Припустимо, що hне задовольняє однобічну властивість і можливо генерувати попередні зображення. Поясніть, що може робити зловмисник і як.
  3. Якщо створення попередніх зображень порівняно трудомістке, запропонуйте простий контрзакон для покращення протоколу без зміни h.

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

Я не впевнений у двох інших питаннях. У другому - чи відповість це те, що зловмисник може просто отримати оригінальне повідомлення з хешем? Я не впевнений, як би це було зроблено.


3
Будь ласка, дайте атрибуцію для зображення. Також просимо скопіювати копіювання тексту, щоб його можна було правильно шукати.
— Рафаель

Відповіді:


7

У другому - чи відповість це те, що зловмисник може просто отримати оригінальне повідомлення з хешем?

Ну, повідомлення Mвже дається противнику (він надсилається Бобу по незахищеному каналу), тому йому не потрібно його знаходити. Щоб зламати схему, йому потрібно надіслати нову паруM∗,h(M∗‖Sab)таким чином, що Боб прийме як повідомлення, надіслане Алісою.M∗≠M

Щодо другого питання: Якщо легко створити попередні зображення , супротивник, можливо, зможе дізнатися секретний ключ з таким чином порушивши схему. (Зверніть увагу, це може бути нетривіальним. Процес інвертування може вивести таким, що , але це не корисно для супротивника. Крім того, якщо супротивник спробує знову перевернути , він може отримати те саме попереднє зображення.)hSabh(M‖Sab)
M1,S1h(M‖Sab)=h(M1‖S1)h

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.