Фрагмент книги "Алгоритмы шифрования. Специальный справочник". © Панасенко Сергей, 2009
Все описанные в предыдущем разделе атаки объединяло одно – они использовали некоторые уязвимости структуры атакуемого алгоритма. Т. е. данные атаки, фактически, рассматривали алгоритм шифрования только с теоретической точки зрения – как некое математическое преобразование, с помощью которого из открытого текста получается шифртекст.
Однако, не стоит забывать и о том, что алгоритмы шифрования для использования так или иначе должны быть реализованы в некоторой компьютерной программе или аппаратном шифраторе. И в том, и в другом случае у криптоаналитика появляются дополнительные возможности для атак на алгоритмы шифрования. Данные возможности проистекают из того факта, что любой шифратор в процессе своей работы дает криптоаналитику возможность для съема различной побочной информации. Причем интенсивность утечки такой информации и ее полезность для криптоаналитика зависят как от структурных особенностей самого алгоритма шифрования, так и от особенностей его программной или аппаратной реализации: насколько разработчик шифратора старался уменьшить возможность утечки информации и вообще учитывал возможность подобных атак.
Все атаки, использующие утечки данных по побочным каналам (side-channel attacks), можно разделить на две категории [307]:
В этом разделе рассмотрим подробно пассивные атаки. Активные атаки будут рассмотрены далее.
Начало подобным атакам положили работы Пола Кохера (Paul Kocher), прежде всего, статья [228], в которой была представлена атака по времени выполнения (timing attack). Данная атака использует тот факт, что на некоторых аппаратных платформах определенные операции могут выполняться за различное число тактов процессора. Результат – различное время выполнения операций. Соответственно, криптоаналитик путем высокоточных замеров времени выполнения шифратором определенных операций может сделать какие-либо предположения о значении определенных фрагментов секретного ключа.
В отчете [283] приведена следующая классификация используемых в криптоалгоритмах операций по степени их подверженности атакам по времени выполнения:
Одним из наиболее показательных алгоритмов, против которых может быть проведена атака по времени выполнения, является алгоритм RC5 (подробную информацию см. в разд. 3.42).
Рассмотрим раунд данного алгоритма (см. рис. 3.154). Как видно, в раунде RC5 присутствуют операции вращения на переменное число битов, что приводит к появлению неких, зависящих от обрабатываемых данных и значения секретного ключа, временных характеристик. Это делает атаку на RC5 теоретически возможной. Среди других алгоритмов, подверженных данной атаке, Кохер в [228] упоминает такие известные алгоритмы, как IDEA (см. разд. 3.26), Blowfish (см. разд. 3.8) и DES (см. разд. 3.15).
В качестве «противоядия» к атакам по времени выполнения Кохер предлагает следующее [228].
Еще одна из пассивных атак предложена также Полом Кохером при участии ряда других сотрудников американской компании Cryptography Research: атака по потребляемой мощности (SPA – simple power analysis) [229]. Данная атака во многом похожа на предыдущую, однако, высокоточному замеру подлежит мощность, потребляемая шифратором в процессе выполнения криптографических преобразований.
В работе [229] доказывается, что такой высокоточный замер мощности, достаточный для криптоанализа, вполне возможен. В качестве доказательства, в частности, приводится результат замера мощности, потребляемой шифратором в процессе выполнения раундов №№ 2 и 3 алгоритма DES (иллюстрация из работы [229] приведена на рис. 1.22).
Рис. 1.22. Пример высокоточного замера потребляемой мощности
На рисунке отчетливо видны операции вращения ключевых регистров процедуры расширения ключа DES (данная процедура подробно описана в разд. 3.15): перед вторым раундом вращение выполняется на 1 бит, а перед третьим – на два бита (см. стрелочки на рис. 1.22). Кроме того, отчетливо видны различия между данными раундами (например, см. выделенные рамками области) – эти различия могут проистекать, в том числе, из-за того, что в этих раундах используются различные биты ключа. Соответственно, они могут быть проанализированы криптоаналитиком с целью получения какой-либо информации о ключе шифрования.
В качестве противодействия SPA в [229] предлагаются различные методы зашумления – аналогично атакам по времени выполнения.
Усилением SPA является дифференциальный криптоанализ по потребляемой мощности DPA (differential power analysis), также предложенный в [229]. Данная атака является более эффективной, чем SPA, но и более сложно реализуемой на практике.
В 2000 г. была предложена атака, использующая высокоточные измерения электромагнитного излучения шифратора, возникающего в процессе шифрования (см., например, [158]). Аналогично SPA и DPA, рассматриваются два варианта такой атаки: SEMA (simple electromagnetic analysis) и DEMA (differential electromagnetic analysis). Авторы статьи [158] в качестве атакуемых устройств избрали криптографические смарт-карты, реализующие алгоритмы DES, RSA и COMP128. Во всех трех случаях атака методом DEMA позволила вычислить значения ключей шифрования.
Еще одна атака основана на предположении, что шифраторы должны каким-либо образом сообщать о возникновении ошибочных ситуаций, которые могут возникнуть при расшифровании данных. Простейший вариант – попытка расшифрования неверным ключом. Сам факт ошибки расшифрования может в определенных случаях дать криптоаналитику некоторую полезную информацию (причем, в общем случае, сообщение шифратора об ошибке может быть достаточно развернутым и информативным). Практически реализуемая атака, основанная на сообщениях об ошибках (error message leakage), была предложена известным криптологом Сержем Воденэ (Serge Vaudenay) в [383].
Успех описанных атак зависит от множества различных факторов, в частности:
Наиболее часто атакуемыми оказываются криптографические смарт-карты, т. е. достаточно низкоскоростные шифраторы, работающие в условиях ограниченных ресурсов. В данном случае для проведения атаки нет необходимости в столь высокоточных замерах, какие были бы необходимы, например, для атаки на программный шифратор, работающий на современном персональном компьютере. Помимо упомянутой статьи [158], весьма показательной в данном случае является работа [136], посвященная атаке по времени выполнения на смарт-карту CASCADE.
Информация, полученная с помощью атак с использованием утечек данных по побочным каналам, может использоваться криптоаналитиком в контексте других атак, например, для сужения области возможных значений ключа шифрования. Однако, как показано в [158], возможен и идеальный для криптоаналитика вариант: полное раскрытие алгоритма (т. е. вычисление ключа шифрования) только за счет пассивной side-channel-атаки.