Атака на основе подобранного открытого текста

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Атака на основе подобранного открытого текста (англ. Chosen-plaintext attack, CPA) — один из основных способов криптоаналитического вскрытия. Криптоаналитик обладает определённым числом открытых текстов и соответствующих шифротекстов, кроме того, он имеет возможность зашифровать несколько предварительно выбранных открытых текстов[1].

Описание[править | править вики-текст]

Криптоаналитик, согласно принципу Керкгоффса, обладает всей информацией об используемой системе шифрования, кроме определённого набора параметров, называемого ключом. Задачей криптоаналитика является нахождение ключа либо создание алгоритма, позволяющего дешифровать любое сообщение, зашифрованное при помощи данного ключа.

Дано:

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

Получить: Либо , либо алгоритм, как получать из [1]

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

Атака на основе подобранного открытого текста относится к активным атакам на криптосистемы. При таких атаках нарушается целостность и конфиденциальность передаваемой информации[3].

Рис.1 Атака на основе подобранного открытого текста

На рис.1 приведена схема атаки на основе подобранного открытого текста. Атакующий (A) получает шифротекст от пользователя (С). Задача атакующего — «угадать» открытый текст . Так как атакующий имеет доступ к блоку шифрования , он имеет возможность зашифровывать свои сообщения и анализировать полученные шифротексты. . В итоге, атакующий подбирает сообщение и пересылает его пользователю.

Виды атак[править | править вики-текст]

Различают два вида атак на основе подобранного открытого текста:

  • автономная (англ. batch chosen-plaintext attack) — криптоаналитик подготавливает набор открытых текстов заранее, до получения шифрованных текстов.
  • оперативная или атака на основе адаптивно подобранного открытого текста (англ. adaptive chosen-plaintext attack, CPA2) — криптоаналитик подбирает следующие открытые тексты на основе уже полученных шифротекстов. Так как при выборе последующих отправляемых на шифрование блоков учитываются предыдущие результаты, возникает обратная связь, которая даёт атаке на основе адаптивно подобранного открытого текста преимущество перед другими типами атак. Реализация атаки такого типа возможна, например, если криптоаналитик имеет доступ к шифрующему устройству в течение достаточно долгого времени, для осуществления анализа получаемых результатов[4].

Сравнение с другими типами атак[править | править вики-текст]

Согласно Брюсу Шнайеру, существует 4 основных способа криптоаналитического вскрытия[1]:

В случае атаки на основе шифротекста криптоаналитик имеет доступ только к зашифрованному тексту. Это наиболее трудный тип атаки, из-за малого объема доступной информации.

При атаке на основе известного открытого текста криптоаналитику известны открытый и зашифрованный тексты. Данный тип атаки результативнее, чем атака на основе шифротекста за счет большего количества известной информации о криптосистеме.

Атака на основе подобранного открытого текста является более мощным типом атаки, чем атака на основе известного открытого текста. Возможность предварительного выбора открытых текстов предоставляет больше вариантов для извлечения ключа системы. Также справедливо, что если криптосистема уязвима к атаке на основе известного открытого текста, то она уязвима и к атаке на основе подобранного открытого текста[5].

В истории[править | править вики-текст]

Атака на основе подобранного открытого текста применялась во время Второй Мировой Войны.

В 1942 году криптоаналитики военно-морских сил США перехватили зашифрованный приказ японского командования. Расшифровав часть сообщения, американские криптоаналитики узнали о готовящемся наступлении на загадочное «AF», однако узнать место нападения не удалось. Предполагая, что скорее всего целью японцев является остров Мидуэй, американцы пошли на хитрость. Они составили донесение о том, что на острове не хватает пресной воды и отправили его по незащищенному каналу. Через несколько дней американские разведчики перехватили японский шифротекст в котором сообщалось, что на «AF» мало пресной воды. Таким образом, американское командование заранее узнало о грядущем наступлении на атолл Мидуэй[6].

Британские криптоаналитики из Блетчли-парка успешно применяли атаку на основе подобранного открытого текста при дешифровании немецкой переписки. Британцы провоцировали противника использовать определённые слова и названия в текстах сообщений. Например, если немцы в недавнем времени освободили какой-либо участок прибрежных вод от мин, британские спецслужбы могли объявить о том, что данная территория была снова заминирована. Это провоцировало поток зашифрованных сообщений от немецкого командования, включающих слово «мины» и название территории. Таким образом, британцы могли достаточно эффективно подбирать открытый текст и анализировать шифротексты для взлома немецких шифров. Данную атаку можно квалифицировать как атаку на основе адаптивно подобранного открытого текста, так как британские криптоаналитики могли подбирать следующий открытый текст, подлежащий шифрованию, основываясь на уже полученных результатах[7].

Примеры атак[править | править вики-текст]

Криптосистемы с закрытым ключом[править | править вики-текст]

Атака на аффинный шифр[править | править вики-текст]

Рассмотрим простой пример атаки на аффинный шифр, использующий латинские символы от A до Z.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Функция шифрования:

Криптоаналитик производит атаку на основе подобранного открытого текста. Выбранный открытый текст — «HAHAHA», соответствующий шифротекст — «NONONO». Цель криптоаналитика — найти явный вид функции шифрования, то есть вычислить коэффициенты и .

Используя полученную пару открытый текст — шифротекст, составим систему уравнений:

Решая систему, находим:

Функция шифрования: [8]

Дифференциальный криптоанализ[править | править вики-текст]

Атака на основе подобранного открытого текста используется в методе дифференциального криптоанализа, предложенного израильскими криптоаналитиками Эли Бихамом и Ади Шамиром в 1990 году для взлома криптосистемы DES. В основе метода лежит исследование шифротекстов, открытые тексты которых имеют определенные отличия. Анализируя эволюцию различия шифротекстов при прохождении раундов DES, определяется список возможных ключей, каждому возможному ключу присваивается вероятность. В процессе анализа следующих пар шифротекстов один из ключей станет наиболее вероятным[9]. В дальнейшем метод дифференциального криптоанализа был распространен на такие криптосистемы, как FEAL, Khafre, Lucifer, LOKI и другие[10][11].

Пусть , подобранные открытые тексты, , соответствующие шифротексты. Различие между открытыми текстами и шифротекстами определяется операцией XOR: Для описания возможных изменений значения при прохождении этапов DES вводится понятие раундовой характеристики, составленной из различий открытого текста , шифротекста и набора раундовых различий (различия в шифротекстах после каждого промежуточного раунда) . Каждой характеристике присваивается вероятность того, что случайная пара открытых текстов с различием вызовет раундовые различия и различия в шифротекстах, соответствующие характеристике. после прохождения соответствующего раунда шифрования. Пара открытых текстов, прохождение которых через раунд DES в точности описывается характеристикой, называется «правильной парой», в противном случае — «неправильной парой».[9]

Для определения ключа производится атака на основе подобранного открытого текста. На этапе сбора данных криптоаналитик отправляет на шифрование большое количество пар открытых текстов с определенными отличиям, соответствующими характеристике с вероятностью (то есть среди всех пар открытых текстов найдется правильных пар). Затем, на этапе анализа данных определяется набор возможных раундовых ключей, для каждого возможного ключа подсчитываются отличия соответствующих шифротекстов. В ходе последнего раунда шифрования происходит полный перебор возможных ключей. Для неправильных раундовых ключей вероятность появления отличия в шифротекстах, соответствующего характеристике будет очень малой, для правильного раундового ключа вероятность окажется порядка или выше. Таким образом, можно определить правильный ключ системы[9][12].

Стоит отметить, что метод дифференциального криптоанализа является довольно непрактичным из за высоких требований к времени и объему данных. Например, для взлома 16-ти раундового DES требуется подобранных открытых текстов и операций[9].

Линейный криптоанализ[править | править вики-текст]

В 1993 году японским криптоаналитиком Мицуру Мацуи был предложен метод линейного криптоанализа для вскрытия блочных шифров, таких как DES. В основе метода лежит построение линейных соотношений между открытым текстом, шифротекстом и ключом: ,

где n-ые биты текста, шифротекста и ключа соответственно. Такие соотношения называются линейными аппроксимациями.

Суть метода заключается в подсчете вероятности возникновения линейных аппроксимаций. Если вероятность отлична от , то возможно извлечь информацию о ключе, используя пары открытый текст-шифротекст. Первоначально, для каждого отдельного раунда находится линейная аппроксимация с наибольшей вероятностью смещения. Затем, раундовые аппроксимации объединяются в общую линейную аппроксимацию криптосистемы, и с помощью пар открытый текст-шифротекст производится предположение о значениях бита ключа[13].

Первоначально, метод линейного криптоанализа использовал атаку на основе известного открытого текста. Так, например, для взлома 16-ти раундового DES потребовалось известных открытых текстов и 50 дней[13]. В 2000 году Ларс Кнудсен предложил вариант линейного криптоанализа на основе подобранных открытых текстов — для вскрытия 12 бит ключа потребовалось выбранных открытых текстов[14].

Криптосистемы с открытым ключом[править | править вики-текст]

Атака на основе подобранного открытого текста может быть использована при вскрытии ассиметричных криптосистем. В таких системах открытый ключ доступен любому пользователю, что обеспечивает криптоаналитику полный контроль над алгоритмом шифрования. Таким образом, против криптосистем с открытым ключом всегда можно организовать атаку на основе подобранного открытого текста[15]. Например, если злоумышленник перехватил шифротекст , для расшифровки достаточно подобрать другое сообщение и зашифровать его с помощью открытого ключа . Если , производится еще одна попытка[16].

Вероятностное шифрование[править | править вики-текст]

Обычно ассиметричные криптосистемы проектируют так, чтобы противостоять вскрытиям с использованием подобранных открытых текстов[15]. Например, средства защиты криптосистемы RSA от атак на основе подобранного открытого текста основаны на сложности вычисления корня -й степени от шифротекста по составному целочисленному модулю [17]. Еще одним способом устранить утечки информации в криптосистемах с открытым ключом является вероятностное шифрование, предложенное Шафи Голдвассер и Сильвио Микали. Основной идеей вероятностного шифрования является сопоставление одному и тому же открытому тексту нескольких случайно выбранных шифротекстов . Таким образом, если криптоаналитик попытается угадать открытый текст P для расшифровки , он получит совершенно другой шифротекст и не сможет проверить правильность своего предположения[18].

Атака на криптосистему RSA[править | править вики-текст]

Несмотря на защищенность криптосистемы RSA от атак на основе подобранного текста, существует ряд уязвимостей, позволяющих криптоаналитику расшифровать шифротекст. Рассмотрим следующий алгоритм атаки на систему электронной подписи на основе RSA, предложенный Джорджем Давида в 1982 году. Атака производится в предположении, что криптоаналитик перехватил шифротекст . Цель криптоаналитика — получить открытое сообщение . Для проведения атаки криптоаналитику необходимо иметь возможность подписывать любые выбранные им сообщения[19][20].

  1. На первом этапе атаки производится разложение шифротекста на множители (необязательно простые): . Отсюда следует, что сообщение также представимо в виде произведения множителей , и справедливы равенства: , и .
  2. Криптоаналитик подбирает открытое сообщение и отправляет его на подпись. Также он просит подписать сообщения ,. Подпись производится следующим образом: , при этом .
  3. Вычисляется обратный элемент .
  4. Умножая полученное выражения на возможно получить : .
  5. В итоге восстанавливается исходное сообщение:

Данный метод не позволяет вскрыть криптосистему в традиционном смысле, то есть получить закрытый ключ, но криптоаналитик способен расшифровать конкретное сообщение. Поэтому данная атака слабее, чем атака на основе подобранного открытого текста для симметричных криптосистем, позволяющая получить всю информацию о криптосистеме в случае успеха[20].

Примечания[править | править вики-текст]

Литература[править | править вики-текст]