Рейтинг:1

Встреча в середине времени сложности

флаг in

Привет,
Мне интересно, почему утверждается, что двойное зашифрованное сообщение с двумя ключами DES можно взломать в худшем случае в $2\times2^{56}$ время, используя встречу в средней атаке.

Вот мои рассуждения:

  1. Пример пары открытого текста и зашифрованного текста: AAAAAAAAAAAAAAAA & 35E16A5E44161DB8 (ключи для взлома: BABABABABABABABA & CDCDCDCDCDCDCDCDCD), дополнительные пары открытого текста и зашифрованного текста для проверки на шаге 4, поскольку пространство ключей достаточно велико, и вполне вероятно, что есть много пар ключей, которые будут успешными только с одним пара: 0000000000000000 и 84EC2BA1A2748F7B ; 1111111111111111 и 549A6B5696E02B5E ; 2222222222222222 и 7BB2C14B23A807C3 ; 3333333333333333 и 3BD27AAF1E0EB4F7
  2. Я генерирую массив с 2 ^ 56 записями, n-я запись является парой (n-й ключ; зашифрованный DES открытый текст AAAAAAAAAAAAAAAA с n-м ключом). Это будет выглядеть так (ключи в порядке возрастания с правильными битами четности):
    0101010101010101 3AE716954DC04E25
    0101010101010102 2B74C1D96CDE840B
    0101010101010104 3367B1FBB4D2FFA7
    0101010101010107 8880DA13709C9198
    0101010101010108 80181B831CDC8D61
    010101010101010B 0F6CD43C15297456
    .....
  3. Теперь мне нужно отсортировать массив по зашифрованным текстам в столбце 2
  4. Теперь я пытаюсь расшифровать зашифрованный текст 35E16A5E44161DB8 с последовательными ключами и найти это значение в столбце 2 с помощью двоичного поиска:
    Попытка № 1: ключ 0101010101010101 дает 477B6FD8296E1956 ключ поиска в отсортированном массиве, если ключ найден, проверьте другие пары открытого текста и зашифрованного текста, не должно быть
    Попытка № 2: ключ 0101010101010102 дает 107272EB5D1BFF28 ключ поиска в отсортированном массиве, если ключ найден, проверьте другие пары открытого текста и зашифрованного текста, должно произойти сбой
    Попытка № 3: ключ 0101010101010104 дает 23153894F3FF825E ключ поиска в отсортированном массиве, если ключ найден, проверьте другие пары открытого текста и зашифрованного текста, должно произойти сбой
    Попытка № 4: ключ 0101010101010107 дает ключ поиска D0D497791C20B166 в отсортированном массиве, если ключ найден, проверьте другие пары открытого текста и зашифрованного текста, должно произойти сбой
    Попытка № 5: ключ 0101010101010108 дает 8A830E5E7927C541 ключ поиска в отсортированном массиве, если ключ найден, проверьте другие пары открытого текста и зашифрованного текста, должно произойти сбой
    Попытка № 6: ключ 010101010101010B дает ключ поиска BA7A15AA12A62C02 в отсортированном массиве, если ключ найден, проверьте другие пары открытого текста и зашифрованного текста, не должно быть
    .....
    Попытка # 57873028282430310: ключ CDCDCDCDCDCDCDCD дает ключ поиска AC972FC04E884797 в отсортированном массиве, если ключ найден, проверьте другие пары открытого текста и зашифрованного текста, должно быть успешным

Мне кажется, что шаг 3 необходим для выполнения шага 4.

Если бы я был прав, то временная сложность была бы около $2^{56}\times\log(2^{56}) = 56\times2^{56}$ с использованием оптимального алгоритма сортировки. Что я упускаю в своих рассуждениях?

kelalaka avatar
флаг in
Связанные и дублирующиеся ... [Почему двойное применение 56-битного DES дает только 57 бит безопасности?] (https://crypto.stackexchange.com/q/25073/18298)
fgrieu avatar
флаг ng
Решил [вопрос о том, как сделать атаку практичной] (https://crypto.stackexchange.com/q/25258/555) (поскольку с нелепым требованием к ОЗУ в размере 2 ^ {62} $ бит, это не так).
Рейтинг:4
флаг my

Что я упускаю в своих рассуждениях?

Две вещи:

  • Существуют и другие стратегии поиска столкновений, кроме сортировки; один из очевидных — построить огромную хеш-таблицу. Теперь на практике сортировка, вероятно, пойдет быстрее (поскольку такая огромная хеш-таблица будет непрактичной), но теоретически хеш-таблица позволит $O(1)$ доступа, которые этот анализ сложности неявно предполагает.

  • $O(n\logn)$ на самом деле не оптимальное время сортировки. Это если единственными операциями, которые вы можете выполнять с данными, являются сравнения и перемещение данных; однако на самом деле мы не ограничены таким образом. Одним из очевидных подходов было бы использование метода сортировки по основанию, который может иметь значительно лучшую временную сложность.

Теперь, если честно, мы обычно игнорируем время, затрачиваемое на эти некриптографические операции (такие как поиск и сортировка), если только они не занимают действительно большую часть общего времени. Откровенно говоря, когда вы спускаетесь на этот уровень, может быть много деталей (например, сложность работы с $О(2^{56})$ данные), и вместо этого мы просто считаем оценки DES.

На самом деле мы не пытаемся взломать 2DES; вместо этого мы показываем, что взлом 2DES действительно может быть достижим на практике. Если бы мы на самом деле пытались сломать его, мы могли бы вместо этого использовать лямбда-поиск, который имел бы постоянное увеличение сложности и не гарантируется, было бы легче реализовать (поскольку лямбда-поиск будет использовать гораздо меньше памяти и все еще легко распараллелить).

fgrieu avatar
флаг ng
Дополнения: Стратегия хэш-таблицы упрощается, потому что искомые 64-битные значения по существу случайны. Мы можем, например. используйте старшие 48 бит значения, которое ищется непосредственно в качестве индекса в меньших хеш-таблицах. Бонусом является то, что эти 48 бит не нужно хранить, как для полной хеш-таблицы. Можно показать, что даже если у нас есть место для $2^8+2^{8/2}$ записей на меньшую хеш-таблицу (с 16-битным искомым значением и 56-битным содержимым для ключа), и мы забываем об остальном, есть еще отличные шансы на успех. Эта стратегия увеличивает объем оперативной памяти менее чем в два раза по сравнению с базовым уровнем в 2^{62}$-бит.
pajacol avatar
флаг in
Увеличится ли пространственная сложность 2 ^ 56, если я использую хэш-таблицу или сортировку по основанию?
poncho avatar
флаг my
@pajacol: не в значительной степени (то есть он должен оставаться в пределах постоянного коэффициента, который не сильно далек от 1) - конечно, детали будут зависеть от реализации
флаг kr
Это хороший ответ, но я думаю, что в нем отсутствует важная деталь: 2DES имеет * 112 *-битный ключ, и встреча посередине дает вам атаку $ O (2 ^ {56}) $ на него. Другими словами, встреча посередине демонстрирует, что (при идеальном оборудовании для взлома) 2DES *не сильнее одиночного DES*. Постоянный множитель перед большой буквой О не имеет значения.
флаг sh
@zwol, если вы игнорируете постоянные факторы, то $2^{56}$ также является постоянным фактором. (Я думаю, что использование нотации $O(...)$ с константой является странным злоупотреблением нотацией. $O(2^{128}) = O(2^{56}) = O(1)$ в обычное значение $O$.)
флаг kr
@PaÅloEbermann Да, я согласен, что это злоупотребление обозначениями, но это не так уж необычно, когда речь идет о затратах на атаки на шифры. Идея состоит в том, что единственное, о чем мы заботимся, — это показатель степени: переход от $2^{112}$ к $2^{56}$ представляет собой значительное ослабление шифра.
Рейтинг:1
флаг cl
  1. Вы можете сохранить все параметры в (огромном) Hashtable (словаре) ->, который приближается к O (1), поэтому вам не нужно сортировать.
  2. Вы можете сортировать по основанию (или ведру) (меньше, чем nlog (n)).

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

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