Лекция
Это продолжение увлекательной статьи про криптоанализ.
...
амбициозный преступник. Он будет рассуждать так: «Да, я понесу большие авансовые расходы. Пять лет терпеливого ожидания, и $50 000. Но по окончании работы у меня будет доступ ко всему богатству этого города. Если я правильно разыграю свои карты, то эта инвестиция многократно окупится».
Аналогично и в криптографии. Атаки против конкретного шифра подвергаются безжалостному анализу затрат и выгод. Если соотношение благоприятно, атака не произойдет. Но атаки, которые действуют сразу против многих потенциальных жертв, почти всегда окупаются, и в этом случае лучшая практика проектирования — предположить, что они начались с первого дня. У нас есть по сути криптографическая версия закона Мерфи: «Все, что реально может сломать систему, сломает систему».
Простейший пример криптосистемы, уязвимой к атаке с предварительными вычислениями, — шифр с постоянным алгоритмом без использования ключа. Так было в случае с шифром Цезаря, который просто сдвигает каждую букву алфавита на три буквы вперед (таблица закольцована, поэтому последняя буква в алфавите шифруется третьей). Здесь опять проявляется принцип Керчхоффса: как только система взломана, она взломана навсегда.
Концепция простая. Даже начинающий разработчик криптосистем, скорее всего, осознает угрозу и соответствующим образом подготовится. Если посмотреть на эволюцию криптографии, такие атаки были неуместны для большинства шифров, начиная с первых улучшенных версий шифра Цезаря, вплоть до упадка полиалфавитных шифров. Такие атаки вернулись только с наступлением современной эры криптографии.
Это возвращение вызвано двумя факторами. Во-первых, наконец, появились достаточно сложные криптосистемы, где возможность эксплуатации после взлома не была очевидной. Во-вторых, криптография получила такое широкое распространение, что миллионы непрофессионалов каждый день принимали решения, где и какие части криптографии использовать повторно. Прошло некоторое время, прежде чем эксперты осознали возникшие риски и подняли тревогу.
Запомните атаку с предвычислениями: в конце статьи мы рассмотрим два криптографических примера из реальной жизни, где она сыграла важную роль.
Перед вами знаменитый детектив Шерлок Холмс, выполняющий атаку с интерполяцией на незадачливого доктора Ватсона:
Я сразу догадался, что вы приехали из Афганистана… Ход моих мыслей был таков: «Этот человек по типу — врач, но выправка у него военная. Значит, военный врач. Он только что приехал из тропиков — лицо у него смуглое, но это не природный оттенок его кожи, так как запястья у него гораздо белее. Лицо изможденное, — очевидно, немало натерпелся и перенес болезнь. Был ранен в левую руку — держит ее неподвижно и немножко неестественно. Где же под тропиками военный врач-англичанин мог натерпеться лишений и получить рану? Конечно же, в Афганистане». Весь ход мыслей не занял и секунды. И вот я сказал, что вы приехали из Афганистана, а вы удивились.
Из каждой улики по отдельности Холмс мог извлечь очень мало информации. Он мог прийти к своему заключению только рассмотрев их все вместе. Аналогично работает атака с интерполяцией, исследуя известные пары открытого и зашифрованного текстов, полученные в результате применения одного и того же ключа. Из каждой пары извлекаются отдельные наблюдения, которые позволяют сделать общий вывод о ключе. Все эти умозаключения расплывчаты и кажутся бесполезными, пока внезапно не достигнут критической массы и не приведут к единственному возможному выводу: каким бы невероятным он ни был, он должен быть истинным. После этого или раскрывается ключ, или процесс расшифровки становится настолько отработанным, что его можно тиражировать.
Проиллюстрируем на простом примере, как работает интерполяция. Предположим, что мы хотим прочитать личный дневник нашего врага, Боба. Он шифрует каждое число в своем дневнике с помощью простой криптосистемы, о которой узнал из рекламного объявления в журнале «Насмешка над криптографией». Система работает следующим образом: Боб выбирает два числа, которые ему нравятся: M и N. С этого момента, чтобы зашифровать любое число x, он вычисляет Mx+N. Например, если Боб выбрал M=3 и N=4, то цифра 2 зашифруется как 3∗2+4=10.
Предположим, 28 декабря мы заметили, что Боб что-то царапает в своем дневнике. Когда он закончит, мы незаметно возьмем его и посмотрим последнюю запись:
Поскольку мы очень серьезно намерены проследить за Бобом на его свидании (в этом сценарии нам по 15 лет), то критически важно узнать дату, а также адрес Алисы. К счастью, мы замечаем, что криптосистема Боба уязвима для атаки интерполяции. Мы можем и не знать M и N, но мы знаем сегодняшнюю дату, поэтому у нас есть две пары «открытый текст — шифротекст». А именно, мы знаем, что 12 шифруется в 235, а 27 — в 520. Что и запишем:
Поскольку нам 15 лет, мы уже знаем о системе двух уравнений с двумя неизвестными, чего в данной ситуации достаточно для нахождения M и N без особых проблем. Каждая пара «открытый текст-шифротекст» накладывает ограничение на ключ Боба, и двух ограничений вместе достаточно, чтобы полностью восстановить ключ. В нашем примере ответ M=19 и N=7 (при х19х+7=26 x=1, так что 26 в дневнике соответствует слову 'the one', то есть «та самая» — прим. пер.).
Интерполяционные атаки, конечно, не ограничиваются такими простыми примерами. Каждая криптосистема, которая сводится к хорошо понятному математическому объекту и списку параметров, подвергается риску интерполяционной атаки — чем более понятен объект, тем выше риск.
Новички часто жалуются, что криптография — это «искусство проектирования как можно более уродливых вещей». Вероятно, во многом виноваты атаки интерполяции. Боб может или использовать элегантный математический дизайн, или сохранить конфиденциальность свидания с Алисой — но увы, обычно нельзя получить и то, и другое. Это станет предельно ясно, когда мы в конце концов перейдем к теме криптографии с открытым ключом.
В фильме «Иллюзия обмана» (2013) группа иллюзионистов пытается обманом выманить все состояние коррумпированного страхового магната Артура Тресслера. Чтобы получить доступ к банковскому счету Артура, иллюзионисты должны либо представить его имя пользователя и пароль, либо заставить его лично появиться в банке и принять участие в схеме.
Оба варианта очень трудны; ребята привыкли выступать на сцене, а не участвовать в операциях спецслужб. Поэтому они выбирают третий возможный вариант: их сообщник звонит в банк и выдает себя за Артура. Банк задает несколько вопросов для проверки личности, таких как имя дяди и имя первого питомца; наши герои заранее легко выуживают у Артура эту информацию с помощью ловкой социальной инженерии. С этого момента отличная безопасность пароля больше не имеет значения.
(Согласно городской легенде, которую мы лично проверили и подтвердили, криптограф Эли Бихэм однажды столкнулся с кассиром банка, который настаивал на установке секретного вопроса. Когда кассир спросил имя бабушки по материнской линии, Бихэм начал диктовать: «Заглавная X, маленькая y, три…»).
Так же и в криптографии, если для защиты одного и того же актива параллельно используются два криптографических протокола, при этом один намного слабее другого. Итоговая система становится уязвимой для кросс-протокольной атаки, когда атакуется более слабый протокол, чтобы добраться до приза, не трогая более сильный.
В некоторых сложных случаях недостаточно просто связаться с сервером по более слабому протоколу, а требуется невольное участия легитимного клиента. Это можно организовать с помощью так называемой атаки на понижение (downgrade). Для понимания этой атаки предположим, что у наших иллюзионистов более сложная задача, чем в фильме. Предположим, что у сотрудника банка (кассир) и Артура возникли некие непредвиденные обстоятельства, в результате чего произошел такой диалог:
Наши герои откладывают операцию. Они прослушивают несколько крупных транзакций Тресслера, надеясь услышать пин-код; но каждый раз разговор превращается в зашифрованную тарабарщину, прежде чем там звучит что-то интересное. Наконец, в один прекрасный день приводят план в действие. Они терпеливо ждут момента, когда Тресслер должен совершить крупную транзакцию по телефону, он подключается к линии, а затем…
Вот атака на понижение. Более слабый протокол «просто говорите прямо» предполагался как опция на крайний случай. И все же мы здесь.
Вы можете задать вопрос, кто в здравом уме будет проектировать реальную систему типа «безопасно, пока не попросить об обратном», какая описана выше. Но так же, как вымышленный банк идет на риск, чтобы сохранить клиентов, которые не любят криптографию, так и системы в целом часто склоняются к требованиям, которые безразличны или даже откровенно враждебны к безопасности.
Именно такая история произошла с протоколом SSLv2 в 1995 году. Правительство США давно начало рассматривать криптографию как оружие, которое лучше держать подальше от внешних и внутренних врагов. Фрагменты кода по отдельности одобряли для экспорта из США, часто при условии намеренного ослабления алгоритма. Компании Netscape, разработчику самого популярного браузера Netscape Navigator, дали разрешение на SSLv2 только с изначально уязвимым ключом RSA 512 бит (и 40 бит для RC4).
К концу тысячелетия правила смягчили и доступ к современному шифрованию стал широко доступным. Тем не менее, клиенты и серверы в течение многих лет поддерживали ослабленную «экспортную» криптографию из-за той же инерции, из-за которой сохраняется поддержка любой устаревшей системы. Клиенты полагали, что могут встретить сервер, который не поддерживает ничего другого. Серверы делали то же самое. Конечно, протокол SSL диктует, что клиенты и серверы никогда не должны использовать слабый протокол, когда доступен лучший. Но та же предпосылка действовала для Тресслера и его банка.
Эта теория нашла применение в двух громких атаках, которые одна за другой потрясли безопасность протокола SSL в 2015 году, обе обнаружены исследователями Microsoft и INRIA. Сначала в феврале разгласили детали атаки FREAK, а через три месяца — еще одной подобной атаки под названием Logjam, которую мы обсудим более подробно, когда перейдем к атакам на криптографию с открытым ключом.
Уязвимость FREAK (также известная как "Smack TLS") проявилась, когда исследователи проанализировали реализации клиента/сервера TLS и обнаружили любопытную ошибку. В этих реализациях, если клиент даже не просит использовать слабую экспортную криптографию, но сервер все равно отвечает такими ключами — клиент говорит «Ну ладно» и переходит на слабый набор шифров.
В то время все считали экспортную криптографию устаревшей и запретной для использования, поэтому атака стала настоящим шоком и затронула многие важные домены, включая сайты Белого дома, налогового управления США и АНБ. Хуже того, оказалось, что многие уязвимые серверы оптимизировали производительность, повторно используя одни и те же ключи, а не создавая новые для каждого сеанса. Это позволило после понижения протокола провести еще и атаку с предвычислением: взлом одного ключа оставался относительно дорогим ($100 и 12 часов на момент публикации), но практическая стоимость атаки на соединение значительно снизилась. Достаточно один раз подобрать серверный ключ — и взломать шифры для всех последующих соединений с этого момента.
Мокси Марлинспайк наиболее известен как отец кросс-платформенного криптомессенджера Signal; но лично нам нравится одно из его менее известных нововведений — принцип криптографической обреченности (Cryptographic Doom Principle). Слегка перефразируя, можно сказать так: «Если протокол выполняет любую криптографическую операцию над сообщением из потенциально вредоносного источника и ведет себя по-разному в зависимости от результата, он обречен». Или в более резкой форме: «Не бери у врага информацию на обработку, а если пришлось, то хотя бы не показывай результат».
Оставим в стороне переполнения буфера, инъекции команд и тому подобное; они выходят за рамки этого обсуждения. Нарушение «принципа обреченности» приводит к серьезным взломам криптографии из-за того, что протокол ведет себя в точности так, как положено.
Для примера возьмем выдуманную конструкцию с уязвимым шифром подстановки, а затем продемонстрируем возможную атаку. Хотя мы уже видели атаку на шифр подстановки с помощью частотного анализа, это не просто «другой способ сломать тот же шифр». Наоборот, атаки оракула — гораздо более современное изобретение, применимое к множеству ситуаций, когда частотный анализ терпит неудачу, и мы увидим демонстрацию этого в следующем разделе. Здесь простой шифр выбран только для того, чтобы сделать пример более понятным.
Итак, Алиса и Боб общаются с помощью простого шифра подстановки, используя ключ, известный только им. Они очень строго относятся к длине сообщений: их длина ровно 20 символов. Поэтому они согласились, что если кто-то хочет отправить более короткое сообщение, то должен добавить какой-то фиктивный текст в конец сообщения, чтобы оно было ровно 20 символов. После некоторого обсуждения они решили, что будут принимать только следующие фиктивные тексты: a, bb, ccc, dddd и т. д. Таким образом, известен фиктивный текст любой необходимой длины.
Когда Алиса или Боб получает сообщение, они сначала проверяют, что сообщение имеет правильную длину (20 символов), а суффикс — правильный фиктивный текст. Если это не так, то отвечают соответствующим сообщением об ошибке. Если длина текста и фиктивный текст в порядке, получатель читает само сообщение и отправляет зашифрованный ответ.
В процессе атаки злоумышленник выдает себя за Боба и отправляет поддельные сообщения Алисе. Сообщения — полная ерунда — у злоумышленника нет ключа, и поэтому он не может подделать значимое сообщение. Но поскольку протокол нарушает принцип обреченности, злоумышленник все равно может заманить Алису в ловушку, так что она раскроет информацию о ключе, как показано ниже.
Взломщик понятия не имеет, что только что сказала Алиса, но отмечает, что символ C
должен соответствовать a
, поскольку Алиса приняла фиктивный текст.
Опять же, взломщик понятия не имеет, что только что сказала Алиса, но отмечает, что H должен сопоставляться с b, поскольку Алиса приняла фиктивный текст.
И так далее, пока злоумышленник не узнает значение каждого символа.
На первый взгляд, метод напоминает атаку на основе подобранного открытого текста. В конце концов, злоумышленник подбирает шифротексты, а сервер послушно их обрабатывает. Основное различие, которое делает эти атаки жизнеспособными в реальном мире, состоит в том, что злоумышленнику не требуется доступ к фактической расшифровке — достаточно ответа сервера, даже такого безобидного, как «Неправильный фиктивный текст».
Хотя эта конкретная атака поучительна, не следует слишком зацикливаться на специфике схемы «фиктивного текста», конкретной используемой криптосистеме или точной последовательности сообщений, отправленных злоумышленником. Основная идея заключается в том, как Алиса реагирует по-разному, основываясь на свойствах открытого текста, и делает это без проверки того, что соответствующий зашифрованный текст действительно получен от доверенной стороны. Таким образом, Алиса позволяет злоумышленнику выжать секретную информацию из ее ответов.
В этом сценарии можно многое изменить. Символы, на которые реагирует Алиса, или саму разницу в ее поведении, или даже используемую криптосистему. Но принцип останется тем же, и атака в целом останется жизнеспособной в той или иной форме. Базовая реализация этой атаки помогла обнаружить несколько ошибок безопасности, которые мы скоро рассмотрим; но прежде следует усвоить некоторые теоретические уроки. Как использовать этот выдуманный «сценарий Алисы» в атаке, которая способна работать на реальном современном шифре? Возможно ли это вообще, даже в теории?
В 1998 году швейцарский криптограф Даниель Блайхенбахер (Daniel Bleichenbacher) ответил на этот вопрос утвердительно. Он продемонстрировал атаку оракула в широко используемой криптосистеме с открытым ключом RSA, при использовании определенной схемы сообщений. В некоторых реализациях RSA сервер отвечает разными сообщениями об ошибках, в зависимости от того, соответствует открытый текст схеме или нет; этого было достаточно, чтобы провести атаку.
Четыре года спустя, в 2002 году, французский криптограф Серж Воденэ (Serge Vaudenay) продемонстрировал атаку оракула, почти идентичную той, что описана выше в сценарии Алисы — за исключением того, что вместо выдуманного шифра он взломал целый респектабельный класс современных шифров, которые люди действительно используют. В частности, атака Воденэ нацелена на шифры с фиксированным размером ввода («блочные шифры»), когда они используются в так называемом «режиме шифрования CBC» и с определенной популярной схемой заполнения, в основном эквивалентной той, что в сценарии Алисы.
Также в 2002 году американский криптограф Джон Келси (John Kelsey) — соавтор Twofish — предложил различные атаки оракула на системы, которые сжимают сообщения, а затем шифруют их. Наиболее заметной среди них была атака, которая использовало то, что часто можно вывести исходную длину открытого текста от длины зашифрованного текста. В теории это позволяет провести атаку оракула, которая восстанавливает части исходного открытого текста.
Далее мы приводим более подробное описание атак Воденэ и Келси (дадим более подробное описание атаки Блайхенбахера, когда перейдем к атакам на криптографию с открытым ключом). Несмотря на все наши усилия, текст становится несколько техническим; поэтому, если вышеизложенного для вас достаточно, пропустите следующие два раздела.
Чтобы понять атаку Воденэ, сначала нужно немного подробнее поговорить о блочных шифрах и режимах шифрования. «Блочный шифр» — это, как уже упоминалось, шифр, который принимает ключ и ввод определенной фиксированной длины («длина блока») и выдает зашифрованный блок той же длины. Блочные шифры широко используются и считаются относительно безопасными. Ныне вышедший на пенсию DES, который считают первым современным шифром, был блочным. Как упоминалось выше, то же самое верно и для AES, широко используемого сегодня.
К сожалению, блочные шифры имеют одну вопиющую слабость. Типичный размер блока составляет 128 бит, или 16 символов. Очевидно, что современная криптография требует работать с входными данными большего размера, и именно здесь появляются режимы шифрования. Режим шифрования — по сути хак: это способ каким-то образом применить блочный шифр, который принимает входные данные только определенного размера, к входным данным произвольной длины.
Атака Воденэ ориентирована на популярный режим работы CBC (Cipher Block Chaining, режим сцепления блоков шифротекста). Атака рассматривает базовый блочный шифр как волшебный неприступный черный ящик и полностью обходит его безопасность.
Вот диаграмма, которая показывает, как работает режим CBC:
Обведенный плюс означает операцию XOR (исключающее «ИЛИ»). Например, второй блок шифротекста получен:
Поскольку CBC так интенсивно использует бинарную операцию XOR, давайте воспользуемся моментом, чтобы вспомнить некоторые ее свойства:
Как правило, эти свойства подразумевают, что если у нас есть уравнение, включающее операции XOR и одно неизвестное, его можно решить. Например, если мы знаем, что A⊕X=B с неизвестным X и известными A и B, то мы можем полагаться на вышеупомянутые свойства выше, чтобы решить уравнение для X. Применив XOR с обеих сторон уравнения с A, мы получаем X=A⊕B. Через мгновение все это станет очень актуальным.
Между нашим сценарием Алисы и атакой Воденэ есть два незначительных различия и одно главное отличие. Два незначительные:
a
, bb
, ccc
и так далее. В атаке Воденэ жертва вместо этого ожидает, что открытые тексты заканчиваются N раз байтом N (то есть шестнадцатеричным 01 или 02 02, или 03 03 03 и так далее). Это чисто косметическое различие.
Главное различие:
Это главное различие — последний фрагмент головоломки, чтобы понять атаку Воденэ, поэтому давайте на мгновение подумаем о том, почему и как вообще можно организовать атаку оракула на CBC.
Предположим, дан шифротекст CBC из 247 блоков, и мы хотим его расшифровать. Мы можем отправлять на сервер поддельные сообщения, как раньше могли отправлять поддельные сообщения Алисе. Сервер будет для нас расшифровывать сообщения, но не будет показывать расшифровку — вместо этого, опять же, как и в случае с Алисой, сервер сообщит только один бит информации: у открытого текста допустимое заполнение или нет.
Учтите, что в сценарии Алисы у нас были следующие отношения:
Назовем это «уравнением Алисы». Мы контролировали шифротекст; сервер (Алиса) сливал расплывчатую информацию о полученном открытом тексте; и это позволило нам вывести информацию о последнем факторе — ключе. По аналогии, если мы сможем найти такую связь для сценария CBC, то могли бы извлечь некоторую секретную информацию и там.
К счастью, там действительно существуют отношения, которые мы можем использовать. Рассмотрим выходные данные конечного вызова расшифровки блочного шифра и обозначим эти данные как W. Также обозначим блоки открытого текста P1,P2,... и блоки шифротекста C1,C2,.... Взгляните еще раз на диаграмму CBC и обратите внимание, что получается:
Назовем это «уравнением CBC».
В сценарии Алисы, контролируя шифротекст и наблюдая за утечкой информации о соответствующем открытом тексте, мы смогли организовать атаку, которая восстановила третий член уравнения — ключ. В сценарии CBC мы также контролируем шифротекст и наблюдаем утечки информации по соответствующему открытому тексту. Если аналогия имеет место, мы сможем получить информацию о W.
Предположим, мы действительно восстановили W, что тогда? Ну, тогда мы можем сразу вывести весь последний блок открытого текста (P247), просто введя C246 (который у нас есть) и
полученный W в уравнение CBC.
Итак, мы оптимистично настроены относительно общего плана атаки, и пришло время проработать детали. Обращаем внимание, каким именно образом на сервере происходит утечка информации об открытом тексте. В сценарии Алисы утечка произошла из-за того, что Алиса отвечала правильным сообщением только в том случае, если SIMPLE_SUBSTITUTION(ciphertext,key) завершался строкой a (или bb, и так далее, но шансы на случайное срабатывание этих условий были очень малы). Аналогично с CBC, сервер принимает заполнение, если и только если C246⊕W заканчивается шестнадцатеричным 01. Итак, попробуем тот же трюк: отправку поддельных шифротекстов с нашими собственными поддельными значениями C246, пока сервер не примет заполнение.
Когда сервер принимает заполнение для одного из наших поддельных сообщений, это означает, что:
Теперь используем свойство побайтовости XOR:
Мы знаем первый и третий член. И мы уже видели, что это позволяет восстановить оставшийся член — последний байт из W:
Это также дает нам последний байт конечного блока открытого текста через уравнение CBC и свойство побайтовости.
Мы могли бы закончить на этом и удовлетвориться тем, что провели атаку на теоретически стойкий шифр. Но на самом деле мы можем сделать гораздо больше: мы можем действительно восстановить весь текст. Это требует определенного трюка, которого не было в оригинальном сценарии Алисы и он не входит в обязательные условия атаки оракула, но метод все равно стоит изучить.
Чтобы понять его, сначала обратите внимание, что в результате выведения правильного значения последнего байта W у нас появилась новая способность. Теперь при подделке шифротекстов мы можем управлять последним байтом соответствующего открытого текста. Опять же, это связано с уравнением CBC и свойством побайтовости:
Поскольку мы теперь знаем второй член, то можем использовать наш контроль над первым для управления третьим. Мы просто вычисляем:
Раньше мы не могли этого сделать, потому что у нас еще не было последнего байта W.
Как это нам поможет? Предположим, что теперь мы будем создавать все шифротексты так, что в соответствующих открытых текстах последний байт равен 02. Теперь сервер принимает заполнение только в том случае, если открытый текст заканчивается на 02 02. Поскольку мы исправили последний байт, это произойдет только в том случае, если предпоследний байт открытого текста также равен 02. Мы продолжаем посылать поддельные шифротекстовые блоки, изменяя предпоследний байт, пока сервер не примет заполнение для одного из них. В этот момент мы получаем:
И мы восстанавливаем предпоследний байт W точно так же, как восстановили последний. Продолжаем в том же духе: исправляем последние два байта открытого текста на 03 03, повторяем эту атаку для третьего с конца байта и так далее, в конечном итоге полностью восстанавливая W.
Что насчет остального текста? Обратите внимание, что значение W на самом деле является BLOCK_DECRYPT(key,C247). Мы можем поставить любой другой блок вместо C247, и атака все равно будет успешной. Фактически, мы можем попросить сервер сделать BLOCK_DECRYPT для любых данных. В этот момент игра окончена — мы можем расшифровать любой шифротекст (еще раз взгляните на диаграмму расшифровки CBC, чтобы убедиться в этом; и обратите внимание, что вектор IV общедоступен).
Этот конкретный метод играет решающую роль в атаке оракула, с которой мы столкнемся позже.
Близкий нам по духу Джон Келси излагал принципы, лежащие в основе многих возможных атак, а не только подробные детали конкретной атаки на конкретный шифр. Его статья 2002 года — это исследование возможных атак на зашифрованные сжатые данные. Вы думали, что для проведения атаки недостаточно одной только информации, что данные были сжаты перед шифрованием? Оказывается, достаточно.
Этот удивительный результат обусловлен двумя принципами. Во-первых, существует сильная корреляция между длиной открытого текста и длиной шифротекста; для многих шифров точное равенство. Во-вторых, когда выполняется сжатие, существует также сильная корреляция между длиной сжатого сообщения и степенью «шумности» открытого текста, то есть доли неповторяющихся символов (технический термин — «большая энтропия»).
Чтобы увидеть принцип в действии, рассмотрим два открытых текста:
Предположим, оба открытых текста сжаты, а затем зашифрованы. Вы получаете два результирующих шифротекста и должны угадать, какой шифротекст соответствует какому открытому тексту:
Ответ ясен. Среди открытых текстов только открытый текст 1 мог быть сжат до скудной длины второго шифротекста. Мы выяснили это, ничего не зная об алгоритме сжатия, ключе шифрования или даже самом шифре. По сравнению с иерархией возможных криптографических атак это своего рода безумие.
Келси далее указывает, что при определенных необычных обстоятельствах этот принцип также можно использовать для проведения атаки оракула. В частности, он описывает, как злоумышленник может восстановить секретный открытый текст, если может заставить сервер шифровать данные формы (открытый текст, за которым следует X, пока он контролирует X и может как-то проверять длину зашифрованного результата).
Опять же, как и в других атаках оракула, у нас есть соотношение:
Опять же, мы контролируем один член (X), видим небольшую утечку информации о другом члене (шифротексте) и пытаемся восстановить последний
продолжение следует...
Часть 1 Криптоанализ, Атаки на систему шифрования
Часть 2 Интерполяция - Криптоанализ, Атаки на систему шифрования
Часть 3 Брендовые уязвимости: CRIME, POODLE, DROWN - Криптоанализ, Атаки на систему
Выводы из данной статьи про криптоанализ указывают на необходимость использования современных методов для оптимизации любых систем. Надеюсь, что теперь ты понял что такое криптоанализ, атаки на систему шифрования и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Криптография и криптоанализ, Стеганография и Стегоанализ
Комментарии
Оставить комментарий
Информационная безопасность- Криптография и криптоанализ, Стеганография и Стегоанализ
Термины: Информационная безопасность- Криптография и криптоанализ, Стеганография и Стегоанализ