Эта статья является кандидатом в добротные статьи

Атака компромисса между временем/памятью/данными: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Первоначальное создание страницы
 
Номинирование статьи в добротные с помощью гаджета QA (v. 1vs0e0r)
Строка 65: Строка 65:
[[Категория:Атаки и эксплойты]]
[[Категория:Атаки и эксплойты]]
[[Категория:Криптографические атаки]]
[[Категория:Криптографические атаки]]
{{Кандидат в добротные статьи|14 декабря 2018}}

Версия от 08:18, 14 декабря 2018

Атака компромисса между временем/памятью/данными - это тип криптографической атаки, при которой злоумышленник пытается достичь ситуации, аналогичной компромиссу времени и памяти, но с еще одним параметром: объем данных, доступных злоумышленнику в режиме реального времени. Атакующий балансирует или уменьшает один или два из этих параметров в пользу другого или двух. Этот тип атаки очень сложен, и большинство шифров и схем шифрования не были разработаны, чтобы противостоять такому типу атак. Эта атака представляет собой особый тип общей криптоаналитической атаки компромисса времени и памяти.

История

"Компромиссные" атаки на симметричные криптосистемы начались в 1980 году, когда Хеллман предложил метод компромисса времени и памяти, [1] В 1980 году Хеллман представил метод компромиссной атаки времени и памяти (TMTO) на блочные шифры. В более общем виде её можно рассматривать как одностороннюю функцию-инвертор. Оригинальная работа Хеллмана[1] рассматривалась как инвертирующая односторонняя функция f в одной точке. Чтобы взломать блочные шифры с возможными ключами времени и памяти , связанными с кривой компромисса , где . Бэббидж [2] и Голич [3] показали, что в контексте потоковых шифров несколько точек могут быть использованы другой компромиссной атакой, опираясь на парадокс дня рождения. Однако компромиссные атаки, основанные на парадоксе дня рождения также имеют проблемы: им не хватает гибкости из-за сильной связи сложности памяти со сложностью данных, что обычно приводит к нереалистичным данным или требованиям к памяти. Позднее Бирюков и Шамир [4] показали, что некоторые данные могут быть объединены с компромиссом Хеллмана, что приводит к гибкой формуле компромисса времени / памяти / данных.

Механика атаки

Эта атака является особым типом общей криптоаналитической атаки компромисса времени / памяти. Общая атака компромисса между временем и памятью состоит из двух основных фаз:

  1. Предварительная обработка: На этом этапе злоумышленник исследует структуру криптосистемы и может записывать свои результаты в большие таблицы. Это может занять много времени.
  2. Реальное время: На этом этапе криптоаналитику предоставляются реальные данные, полученные из определенного неизвестного ключа. Он или она пытается использовать предварительно вычисленную таблицу из фазы предварительной обработки, чтобы найти конкретный в как можно меньше времени.

Любая атака компромисса времени/памяти/данных имеет следующие параметры:

размер пространства поиска

время, необходимое для фазы предварительной обработки

время, необходимое для фазы реального времени

объем памяти, доступной злоумышленнику

объем данных в реальном времени, доступных злоумышленнику

Хеллмановская компромиссная атака на блочные шифры

Для блочных шифров - это общее количество возможных ключей. Также, предполагается, что число возможных открытых текстов и шифротекстов равно . Также предположим что данные это единственный зашифрованный блок определенного аналога открытого текста. Если мы рассмотрим маппинг ключа на зашифрованный текст как функцию случайной перестановки над точечным пространством , и если эта функция обратима; нам нужно найти обратное этой функции . Метод Хеллмана[1], чтобы инвертировать эту функцию заключается в следующем:

  • На этапе предварительной обработки: Попробуйте покрыть пространство точек прямоугольной матрицей , которая создается путем итерации функции в случайных начальных точках в пространстве , и происходит это раз. Начальные точки - самый левый столбец в матрице, а конечные точки - самый правый столбец. Затем сохраняются пары начальной и конечной точек в порядке возрастания значений конечных точек.
    Hellman's Matrix
    Hellman's Matrix


Теперь только одна матрица не сможет покрыть все пространство . Но если мы добавим больше строк в матрицу, мы получим огромную матрицу, которая будет содержать восстановленные точки более одного раза. Таким образом, мы находим критическое значение , при котором матрица содержит ровно разных точек. Рассмотрим первые путей от начальных точек до конечных точек, которые не пересекаются с точками , так что следующий путь, который имеет хотя бы одну общую точку с одним из этих предыдущих путей и включает в себя ровно точек. Эти два набора точек и не пересекаются (исходя из парадокса дня рождения), если мы убедимся, что . Мы достигаем этого, применяя правило остановки матрицы: . Тем не менее, матрица с покрывает часть всего пространства. Чтобы сгенерировать для покрытия всего пространства, мы используем определенный вариант : и , что является простыми манипуляциями, такими как переупорядочение битов [1]. И можно увидеть, что общее время предварительной обработки составляет . Также , так как нам нужно хранить только пары начальных и конечных точек, и у нас есть матрицы , каждая из пар .
  • В режиме реального времени Общее вычисление, необходимое для нахождения , равно , потому что нам нужно сделать попыток инверсии, так как оно может быть покрыто на одну матрицу, и каждая попытка занимает оценки некоторого . Оптимальная кривая компромисса получается с помощью правила остановки матрицы , и мы получаем , и выбор и зависит от стоимости каждого ресурса.

According to Hellman, if the block cipher at hand has the property that the mapping from its key to cipher text is a random permutation function over an point space, and if this is invertible, the tradeoff relationship becomes ways better: .

Согласно Хеллману, если блочный шифр обладает таким свойством, что маппинг его ключа на зашифрованный текст является функцией случайной перестановки над точечным пространством , и если эта является обратимой, компромиссные соотношения становятся намного лучше:

Атаки Бэббэйджа и Голича на потоковые шифры

Для потоковых шифров определяется числом внутренних состояний генератора битов - вероятно, отличается от количества ключей. - это число первых псевдослучайных битов, генерируемых генератором. Наконец, цель злоумышленника состоит в том, чтобы найти одно из фактических внутренних состояний генератора битов, чтобы иметь возможность запустить генератор с этого момента для генерации остальной части ключа. Свяжите каждое из возможных внутренних состояний генератора битов с соответствующей строкой, состоящей из первых битов , полученных при запуске генератора из этого состояния с помощью отображения из состояний к префиксам . Это отображение считается случайной функцией в общем пространстве точек . Чтобы инвертировать эту функцию, злоумышленник выполняет следующее:[2]

  1. На этапе предварительной обработки выбераются случайных состояний и вычисляются их соответствующие выходные префиксы
  2. Сохраняются пары в порядке возрастания в большой таблице.
  3. На этапе реального времени есть сгенерированных битов. Рассчитываются из них все возможных комбинаций последовательных битов с длиной .
  4. Находится каждый в сгенерированной таблице, который занимает время журнала.
  5. Если есть попадание, этот соответствует внутреннему состоянию генератора битов, из которого можно перезапустить генератор, чтобы получить остаток ключа.
  6. Парадоксом дня рождения гарантируется, что два подмножества пространства с точками имеют пересечение, если произведение их размеров больше, чем .

Этот результат атаки «дней рождения» дает условие со временем атаки и временем предварительной обработки , которое является просто определенной точкой на кривой компромисса . Мы можем обобщить это соотношение, если проигнорируем некоторые из доступных данных в режиме реального времени и сможем уменьшить с до , и общая кривая компромисса в конечном итоге станет с и .

Атака компромисса между временем/памятью/данными разработаная Ади Шамиром и Алексом Бирюковым на потоковые шифры

Эта новая идея[4], представленная в 2000 году, сочетает в себе оба метода: компромисс Хеллмана[1] и атаки компромисса Бэббиджа и Голича[3][2], чтобы получить новую кривую компромисса с лучшими границами для криптоанализа потоковых шифров. Можно применить технику блочного шифра Хеллмана к потоковому шифру, используя ту же идею покрытия пространства точек через матрицы, полученные из нескольких вариантов функции , которая является отображением внутренних состояний на выходные префиксы. Напомним, что эта компромиссная атака на потоковый шифр успешна, если какой-либо из заданных выходных префиксов найден в любой из матриц, покрывающих . Следовательно, мы можем сократить количество покрываемых точек матрицами от точек до . Это достигается путем уменьшения количества матриц с до при сохранении максимально возможного размера (но для этого требуется, чтобы имел по крайней мере одну таблицу). Для этой новой атаки есть , потому что уменьшилось количество матриц до и то же самое для времени предварительной обработки . В реальном времени для атаки требуется , что представляет собой произведение количества матриц, длины каждой итерации и количества доступных точек данных. во время атаки.

В конце концов, мы снова используем правило остановки матрицы для получения кривой компромисса для (потому что ).

Компромиссные атаки на потоковые шифры с низким сопротивлением выборки

Эту атаку изобрели Бирюков, Шамир, Вагнер[5]. Идея опирается на следующую особенность различных потоковых шифров: генератор битов претерпевает лишь несколько изменений во внутреннем состоянии перед созданием следующего выходного бита. Следовательно, мы можем перечислить те состояния, которые генерируют нулевых битов для небольших значений при низких затратах. Но когда большое количество выходных битов принимает конкретные значения, этот процесс перечисления становится очень дорогим и сложным. Теперь мы можем определить сопротивление выборки потокового шифра как с максимальным значением , которое делает возможным такое перечисление.

Пусть потоковый шифр имеет состояния , каждое из которых имеет полное имя битов и соответствующее имя выхода, которые являются первыми битами в выходной последовательности битов. Если этот потоковый шифр имеет сопротивление выборки , то эффективное перечисление может использовать короткое имя из битов для определения определённых состояний генератора. Каждое состояние с коротким именем имеет соответствующее короткое имя вывода из битов, которое является выходной последовательностью состояния после удаления первых начальных битов . Теперь мы можем определить новое отображение по уменьшенному пространству точек , и это отображение эквивалентно исходному отображению. Если , данные в реальном времени, доступные злоумышленнику, гарантированно получим по крайней мере один выход из этих состояний. В противном случае мы ослабим определение состояний, чтобы включить больше точек. Если мы заменим на и на в новой атаке на обмен времени / памяти / данных Шамира и Бирюкова, мы получим такую ​​же кривую компромисса , но с . Это на самом деле улучшение, так как мы могли бы ослабить нижнюю границу , поскольку может быть небольшим до , что означает, что наша атака может быть выполнена быстрее. Еще одно преимущество этого метода заключается в том, что мы сократили количество дорогостоящих операций доступа к диску с до , поскольку мы будем получать доступ только к специальным точкам . И это также может значительно ускорить нашу атаку из-за уменьшения количества дорогостоящих дисковых операций.

Пример атаки на схему паролей в Unix-системах

Атаки, описанные в этой статье, не ограничиваются блочными или потоковыми шифрами, они применимы к другим односторонним конструкциям, например, к хеш-функциям. Время / память / обмен данными [6] можно использовать для анализа паролей Unix, например, если злоумышленник получает доступ к хранилищу файлов хешей паролей крупной организации (D = 1000 хэшей паролей). В самом деле, пространство компромисса состоит из 56 битов неизвестного ключа (то есть пароля) и 12 бит известной соли. Поскольку размер соли намного короче размера ключа, его эффект от усложнения компромисса не очень значителен. Предположим, что злоумышленник знает, что пароли выбираются из набора произвольных 8-символьных буквенно-цифровых паролей, включая заглавные буквы и два дополнительных символа как точка и запятая, которые в сумме могут быть закодированы в 48 бит. Таким образом, вместе с 12-битной солью состояние N = 260 бит. Например, параметры следующей атаки кажутся довольно практичными: время предварительной обработки выполняется один раз: P = N / D = 250 Unix хеш-вычисления, распараллеливаемые. Память M = 234 8-байтовых записей (12 + 48 бит), занимает один жесткий диск 128 ГБ. Таким образом, мы храним 234 стартовых указателей. Тогда время атаки равно T = 232 оценкам Unix-хеша - примерно час на быстром ПК или около 8 секунд на BEE2 FPGA [7]. Атака будет восстанавливать один пароль из каждых 1000 новых хэшей паролей. Это на два-три порядка быстрее результатов, описанных в статье. Относительно длительный этап предварительной обработки может выполняться параллельно в сети ПК (на сотню ПК может уйти меньше месяца) или около 1,5 месяцев для одной BEE2 FPGA. Количество таблиц рассчитывается параллельно и может достигать t / D = 217/1000 = 27. Чтобы уменьшить количество запросов к жесткому диску, атака должна будет использовать отличительные точки с 16-битным префиксы. Это позволит сделать только 216 обращений к диску (что меньше 6 минут). На самом деле ясно, что такой компромисс может проанализировать все пароли, набираемые на клавиатуре. Пространство N = 848 · 212 = 263. Предполагая снова D = 210, мы получаем время предварительного вычисления P = 253, M = 235 8-байтовых записей или один жесткий диск 256 ГБ, Т = 236 оценок хешей.

Ссылки

  1. 1 2 3 4 5 Hellman, M.E., "A cryptanalytic time-memory trade-off," Information Theory, IEEE Transactions on , vol.26, no.4, pp.401,406, Jul 1980
  2. 1 2 3 Babbage, S. H., "Improved “exhaustive search” attacks on stream ciphers," Security and Detection, 1995., European Convention on , vol., no., pp.161-166, 16–18 May 1995
  3. 1 2 Golic, J., "Cryptanalysis of Alleged A5 Stream Cipher" Lecture Notes in Computer Science, Advances in Cryptology — EUROCRYPT ’97, LNCS 1233, pp.239-255, Springer-Verlag 1997
  4. 1 2 Biryukov A., Shamir A., "Cryptanalytic Time/Memory/Data Tradeoffs for Stream Ciphers" Lecture Notes in Computer Science, Advances in Cryptology — ASIACRYPT 2000, LNCS 1976, pp.1-13, Springer-Verlag Berlin Heidelberg 2000
  5. Biryukov A., Shamir A., Wagner D., "Real Time Cryptanalysis of A5/1 on a PC" Fast Software Encryption 2000, pp.1-18, Springer-Verlag 2000
  6. Khoongming Khoo, Guanhan Chew, Guang Gong, Hian-Kiat Lee. Time-Memory-Data Trade-off Attack on Stream Ciphers based on Maiorana-McFarland Functions. — 2007. — № 242.
  7. Nele Mentens, Lejla Batina, Bart Preneel, Ingrid Verbauwhede. Time-Memory Trade-Off Attack on FPGA Platforms: UNIX Password Cracking. — 2006-08-03. — С. 323–334. — doi:10.1007/11802839_41.