~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 6FD81379A1E6A13784DCE89B8C93FD4C__1712641680 ✰
Заголовок документа оригинал.:
✰ Birthday attack - Wikipedia ✰
Заголовок документа перевод.:
✰ Атака на день рождения — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Birthday_attack ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/6f/4c/6fd81379a1e6a13784dce89b8c93fd4c.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/6f/4c/6fd81379a1e6a13784dce89b8c93fd4c__translat.html ✰
Дата и время сохранения документа:
✰ 22.06.2024 10:57:04 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 9 April 2024, at 08:48 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Атака на день рождения — Википедия Jump to content

Атака на день рождения

Из Википедии, бесплатной энциклопедии

Атака дня рождения — это грубая коллизионная атака , в которой используется математика, лежащая в основе проблемы дня рождения в теории вероятностей . Эта атака может быть использована для злоупотребления связью между двумя или более сторонами. Атака зависит от более высокой вероятности коллизий, обнаруженных между случайными попытками атаки и фиксированной степенью перестановок ( ячейками ). С помощью атаки на день рождения можно обнаружить столкновение хэш-функции с шанс в , [1] [2] с является классической ценной бумагой сопротивления прообразу . с той же вероятностью [2] Существует общее (хотя и оспариваемое) [3] ) приводят к тому, что квантовые компьютеры могут выполнять атаки «дня рождения», тем самым преодолевая сопротивление столкновению, в . [4]

Хотя с атакой «День рождения» связаны некоторые уязвимости в цифровой подписи , ее нельзя использовать для взлома схемы шифрования быстрее, чем атаку методом перебора . [5] : 36 

Понимание проблемы [ править ]

Сравнение проблемы дня рождения (1) и атаки дня рождения (2):
В (1) столкновения обнаружены в пределах одного набора, в данном случае 3 из 276 пар 24 лунных астронавтов.
В (2) обнаружены коллизии между двумя наборами, в данном случае 1 из 256 пар только первых байтов хэшей SHA-256 по 16 вариантов каждого из доброкачественных и вредоносных контрактов.

В качестве примера рассмотрим сценарий, в котором учитель в классе из 30 учеников (n = 30) спрашивает день рождения каждого (для простоты игнорируем високосные годы ), чтобы определить, совпадают ли дни рождения у каких-либо двух учеников (что соответствует коллизии хэшей). как описано далее). Интуитивно этот шанс может показаться небольшим. Как ни странно, вероятность того, что хотя бы у одного ученика день рождения совпадает с днем ​​рождения любого другого ученика в любой день, составляет около 70% (для n = 30) по формуле . [6]

Если учитель выбрал конкретный день (скажем, 16 сентября), то вероятность того, что хотя бы один ученик родился в этот конкретный день, равна , около 7,9%.

При атаке на день рождения злоумышленник готовит множество различных вариантов доброкачественных и вредоносных контрактов, каждый из которых имеет цифровую подпись . Ищется пара доброкачественных и вредоносных контрактов с одинаковой подписью. Предположим, в этом вымышленном примере цифровая подпись строки представляет собой первый байт ее хэша SHA-256 . Найденная пара обозначена зеленым цветом — обратите внимание, что поиск пары доброкачественных контрактов (синий) или пары вредоносных контрактов (красный) бесполезен. После того как жертва принимает безобидный контракт, злоумышленник заменяет его вредоносным и утверждает, что жертва подписала его, что подтверждается цифровой подписью.

Математика [ править ]

Дана функция , цель атаки — найти два разных входа такой, что . Такая пара называется столкновением. Метод, используемый для обнаружения коллизии, заключается в простом вычислении функции для разных входных значений, которые могут выбираться случайным или псевдослучайным образом, пока один и тот же результат не будет найден более одного раза. Из-за проблемы с днем ​​рождения этот метод может быть весьма эффективным. В частности, если функция дает любой из разные результаты с равной вероятностью и достаточно велико, то мы ожидаем получить пару разных аргументов и с после оценки функции примерно в среднем разные аргументы.

Мы рассмотрим следующий эксперимент. Из набора значений H мы выбираем n значений равномерно случайным образом, тем самым допуская повторения. Пусть p ( n ; H ) — вероятность того, что в ходе этого эксперимента хотя бы одно значение будет выбрано более одного раза. Эту вероятность можно аппроксимировать как

[7]

Пусть n ( p ; H ) будет наименьшим количеством значений, которые мы должны выбрать, так что вероятность обнаружения столкновения будет не менее p . Обратив это выражение выше, мы находим следующее приближение

и присвоив вероятность столкновения 0,5, мы приходим к

Пусть Q ( H ) — ожидаемое количество значений, которые нам нужно выбрать, прежде чем обнаружить первое столкновение. Это число можно приблизительно определить

Например, если используется 64-битный хэш, имеется примерно 1,8 × 10. 19 разные выходы. Если все они равновероятны (в лучшем случае), то потребуется «всего» примерно 5 миллиардов попыток ( 5,38 × 10 9 ), чтобы сгенерировать столкновение, используя грубую силу. [8] Это значение называется привязкой к дню рождения. [9] а для n -битных кодов его можно аппроксимировать как 2 н /2 . [10] Другие примеры следующие:

Биты Возможные результаты (H) Желаемая вероятность случайного столкновения
(2 сф) (п)
10 −18 10 −15 10 −12 10 −9 10 −6 0.1% 1% 25% 50% 75%
16 2 16 (~6,5 х 10 4 ) <2 <2 <2 <2 <2 11 36 190 300 430
32 2 32 (~ 4.3 × 10 9 ) <2 <2 <2 3 93 2900 9300 50,000 77,000 110,000
64 2 64 (~ 1.8 × 10 19 ) 6 190 6100 190,000 6,100,000 1.9 × 10 8 6.1 × 10 8 3.3 × 10 9 5.1 × 10 9 7.2 × 10 9
128 2 128 (~ 3.4 × 10 38 ) 2.6 × 10 10 8.2 × 10 11 2.6 × 10 13 8.2 × 10 14 2.6 × 10 16 8.3 × 10 17 2.6 × 10 18 1.4 × 10 19 2.2 × 10 19 3.1 × 10 19
256 2 256 (~ 1.2 × 10 77 ) 4.8 × 10 29 1.5 × 10 31 4.8 × 10 32 1.5 × 10 34 4.8 × 10 35 1.5 × 10 37 4.8 × 10 37 2.6 × 10 38 4.0 × 10 38 5.7 × 10 38
384 2 384 (~ 3.9 × 10 115 ) 8.9 × 10 48 2.8 × 10 50 8.9 × 10 51 2.8 × 10 53 8.9 × 10 54 2.8 × 10 56 8.9 × 10 56 4.8 × 10 57 7.4 × 10 57 1.0 × 10 58
512 2 512 (~ 1.3 × 10 154 ) 1.6 × 10 68 5.2 × 10 69 1.6 × 10 71 5.2 × 10 72 1.6 × 10 74 5.2 × 10 75 1.6 × 10 76 8.8 × 10 76 1.4 × 10 77 1.9 × 10 77
В таблице показано количество хешей n ( p ), необходимых для достижения заданной вероятности успеха, при условии, что все хэши одинаково вероятны. Для сравнения: 10 −18 до 10 −15 — это частота неисправимых битовых ошибок типичного жесткого диска. [11] Теоретически хэши MD5 или UUID , имеющие длину примерно 128 бит, должны оставаться в этом диапазоне примерно до 820 миллиардов документов, даже если их возможные выходные данные намного больше.

Легко заметить, что если выходные данные функции распределены неравномерно, то коллизию можно будет обнаружить еще быстрее. Понятие «баланса» хеш-функции количественно определяет устойчивость функции к атакам «дня рождения» (с использованием неравномерного распределения ключей). Однако определение баланса хеш-функции обычно требует расчета всех возможных входных данных и, следовательно, неосуществимо для популярных хэш-функции, такие как семейства MD и SHA. [12] Подвыражение в уравнении для рассчитывается неточно для небольших при непосредственном переводе на распространенные языки программирования как log(1/(1-p))из-за потери значимости . Когда log1p доступно (как и в C99 ), например, эквивалентное выражение -log1p(-p) вместо этого следует использовать. [13] Если этого не сделать, первый столбец приведенной выше таблицы вычисляется как нулевой, а некоторые элементы второго столбца не имеют даже одной правильной значащей цифры.

Простое приближение [ править ]

Хорошим эмпирическим правилом , которое можно использовать для мысленных вычислений, является соотношение

что также можно записать как

.

или

.

Это хорошо работает для вероятностей, меньших или равных 0,5.

Эту схему аппроксимации особенно удобно использовать при работе с показателями степени. Например, предположим, что вы создаете 32-битные хэши ( ) и хотим, чтобы вероятность столкновения была не более одного на миллион ( ), сколько максимум документов мы можем иметь?

что близко к правильному ответу 93.

Восприимчивость к подписи цифровой

Цифровые подписи могут быть подвержены атаке «дня рождения» или, точнее, атаке коллизии выбранного префикса. Сообщение обычно подписывается первым вычислением , где — это криптографическая хеш-функция , а затем с помощью секретного ключа для подписи . Предположим, Мэллори хочет обманом заставить Боба подписать мошеннический контракт. Мэллори готовит справедливый контракт и мошеннический . Затем она находит ряд позиций, где можно изменять без изменения смысла, например, расставляя запятые, пустые строки, один или два пробела после предложения, заменяя синонимы и т. д. Объединив эти изменения, она может создать огромное количество вариаций все это честные контракты.

Подобным же образом Мэллори также создает огромное количество вариаций мошеннического контракта. . Затем она применяет хеш-функцию ко всем этим вариантам, пока не найдет версию честного контракта и версию мошеннического контракта, которые имеют одинаковое значение хеш-функции. . Она представляет чистовую версию Бобу на подпись. После того, как Боб подписал, Мэллори берет подпись и прикрепляет ее к поддельному контракту. Эта подпись затем «доказывает», что Боб подписал мошеннический контракт.

Вероятности немного отличаются от исходной задачи о дне рождения, поскольку Мэллори ничего не выиграет, если найдет два честных или два мошеннических контракта с одинаковым хешем. Стратегия Мэллори заключается в создании пар честного и мошеннического контрактов. Для данной хеш-функции это количество возможных хэшей. Уравнения задачи о дне рождения здесь не совсем применимы, количество хэшей, которые Мэллори фактически генерирует для шанс в два раза больше, чем требуется для простого столкновения что соответствует .

Чтобы избежать этой атаки, выходную длину хеш-функции, используемой для схемы подписи, можно выбрать достаточно большой, чтобы атака «дня рождения» стала вычислительно неосуществимой, т. е. примерно в два раза больше битов, чем необходимо для предотвращения обычной атаки методом перебора .

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

Ро-алгоритм Полларда для логарифмов является примером алгоритма, использующего атаку дня рождения для вычисления дискретных логарифмов .

Обратная атака [ править ]

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

См. также [ править ]

Примечания [ править ]

  1. ^ «Избежание коллизий, Криптографические хеш-функции» (PDF) . Основы криптографии, факультет компьютерных наук, колледж Уэлсли .
  2. ^ Перейти обратно: а б Данг, QH (2012). Рекомендации для приложений, использующих утвержденные алгоритмы хеширования (Отчет). Гейтерсбург, Мэриленд: Национальный институт стандартов и технологий.
  3. ^ Дэниел Дж. Бернштейн. «Анализ затрат на коллизии хэшей: сделают ли квантовые компьютеры SHARCS устаревшими?» (PDF) . Cr.yp.to. ​ Проверено 29 октября 2017 г.
  4. ^ Брассар, Жиль; Хойер, Питер; Тапп, Ален (20 апреля 1998 г.). «Квантовый криптоанализ хэш-функций и функций без когтей». LATIN'98: Теоретическая информатика . Конспекты лекций по информатике. Том. 1380. Шпрингер, Берлин, Гейдельберг. стр. 163–169. arXiv : Quant-ph/9705002 . дои : 10.1007/BFb0054319 . ISBN  978-3-540-64275-6 . S2CID   118940551 .
  5. ^ Р. Ширей (август 2007 г.). Глоссарий по интернет-безопасности, версия 2 . Сетевая рабочая группа. дои : 10.17487/RFC4949 . РФК 4949 . Информационный.
  6. ^ «Проблема дня рождения» . Бриллиант.орг . Бриллиант_(веб-сайт) . Проверено 28 июля 2023 г.
  7. ^ Белларе, Михир; Рогауэй, Филипп (2005). «Проблема дня рождения». Введение в современную криптографию (PDF) . стр. 273–274 . Проверено 31 марта 2023 г.
  8. ^ Флажоле, Филипп; Одлызко, Андрей М. (1990). «Статистика случайного картирования» . В Кискатере — Жан-Жак; Вандевалле, Йоос (ред.). Достижения в криптологии — EUROCRYPT '89 . Конспекты лекций по информатике. Том. 434. Берлин, Гейдельберг: Шпрингер. стр. 329–354. дои : 10.1007/3-540-46885-4_34 . ISBN  978-3-540-46885-1 .
  9. ^ См. верхнюю и нижнюю границы .
  10. ^ Жак Патарен, Одри Монтрей (2005). «Возвращение к схемам Бенеша и Баттерфляя» ( PostScript , PDF ) . Университет Версаля . Проверено 15 марта 2007 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  11. ^ Грей, Джим; ван Инген, Катарина (25 января 2007 г.). «Эмпирические измерения частоты отказов дисков и частоты ошибок». arXiv : cs/0701166 .
  12. ^ «CiteSeerX» . Архивировано из оригинала 23 февраля 2008 г. Проверено 2 мая 2006 г.
  13. ^ «Вычислить log(1+x) точно для малых значений x» . Mathworks.com . Проверено 29 октября 2017 г.

Ссылки [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 6FD81379A1E6A13784DCE89B8C93FD4C__1712641680
URL1:https://en.wikipedia.org/wiki/Birthday_attack
Заголовок, (Title) документа по адресу, URL1:
Birthday attack - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)