Дифференциальная атака по энергопотреблению
Дифференциальная атака по энергопотреблению (англ. Differential Power Analysis, DPA) — это метод криптоанализа, основанный на анализе зависимости энергопотребления устройства, выполняющего криптографические операции, от обрабатываемых данных. Относится к классу атак по побочным каналам (side-channel attacks). В отличие от простой атаки по энергопотреблению (SPA), которая использует визуальный анализ одного или нескольких графиков энергопотребления, DPA применяет статистическую обработку множества измерений для выявления корреляций между обрабатываемыми данными и энергопотреблением, что позволяет извлекать секретные ключи даже при наличии шумов.
История
Метод дифференциальной атаки по энергопотреблению был впервые предложен в 1998 году американскими исследователями Полом Кохером (Paul Kocher), Джошуа Джаффе (Joshua Jaffe) и Бенджамином Джуном (Benjamin Jun) из компании Cryptography Research (США). В своей работе «Differential Power Analysis» они продемонстрировали, что криптографические алгоритмы, реализованные в аппаратном обеспечении (например, в смарт-картах), могут быть взломаны путём анализа энергопотребления. Метод быстро привлёк внимание как академического сообщества, так и индустрии безопасности, поскольку он показал уязвимость многих популярных алгоритмов (DES, AES, RSA) при их реализации на микроконтроллерах и ASIC-чипах.
В последующие годы DPA стала одним из наиболее изученных и широко применяемых методов атак по побочным каналам. Были разработаны различные модификации, такие как корреляционный анализ энергопотребления (CPA) и атаки на основе взаимной информации. В 2000-х годах началось активное внедрение контрмер, включая маскирование данных, балансировку энергопотребления и использование шумогенераторов.
Принцип работы
Атака DPA основана на физическом принципе: энергопотребление цифровых микроэлектронных устройств зависит от переключательной активности транзисторов, которая, в свою очередь, зависит от обрабатываемых данных. В частности, при выполнении криптографических операций (например, подстановки в S-блоках или сложения с ключом) энергопотребление может коррелировать с определёнными битами промежуточных значений.
Основные этапы
- Сбор измерений: Атакующий получает физический доступ к устройству (например, смарт-карте, RFID-метке, микроконтроллеру) и измеряет его энергопотребление во время выполнения множества криптографических операций (например, шифрования одного и того же открытого текста с разными ключами или одного ключа с разными текстами). Измерения обычно проводятся с помощью осциллографа или специализированного оборудования, синхронизированного с тактовым сигналом устройства.
- Разделение на группы: Для каждого момента времени (точки измерения) атакующий делит все собранные трассы энергопотребления на две группы на основе некоторого гипотетического значения бита (или нескольких битов) промежуточного результата. Например, для атаки на алгоритм AES атакующий может предположить, что определённый байт после подстановки в S-блок зависит от ключа и открытого текста. Он вычисляет гипотетическое значение этого байта для всех возможных ключей и для каждого ключа разделяет трассы на группы: те, где этот бит равен 0, и те, где он равен 1.
- Статистический анализ: Для каждой точки измерения вычисляется разность средних значений энергопотребления между двумя группами. Если гипотеза о ключе верна, то в точках, где энергопотребление коррелирует с данным битом, разность средних будет отлична от нуля (пик). Если гипотеза неверна, разность будет близка к нулю (шум). Таким образом, атакующий может определить правильный ключ, найдя гипотезу, дающую наибольшие пики.
- Извлечение ключа: Процесс повторяется для всех битов или байтов ключа, пока не будет восстановлен полный секретный ключ.
Математическая основа
DPA использует метод разности средних (difference of means). Пусть \( T_i(t) \) — измеренное энергопотребление в момент времени \( t \) для \( i \)-й операции. Атакующий выбирает функцию выбора \( D(C, K) \), которая для каждого шифротекста \( C \) (или открытого текста) и гипотетического ключа \( K \) возвращает 0 или 1. Тогда для каждого \( t \) вычисляется:
\[ \Delta(t) = \frac{\sum_{i=1}^{N} D(C_i, K) \cdot T_i(t)}{\sum_{i=1}^{N} D(C_i, K)} - \frac{\sum_{i=1}^{N} (1 - D(C_i, K)) \cdot T_i(t)}{\sum_{i=1}^{N} (1 - D(C_i, K))} \]
Если \( K \) верен, \( \Delta(t) \) будет иметь значительные отклонения в точках, связанных с операцией; если нет — будет близко к нулю.
Разновидности
Корреляционный анализ энергопотребления (CPA)
CPA — это более точная разновидность DPA, в которой вместо разности средних используется коэффициент корреляции Пирсона между измеренным энергопотреблением и моделью энергопотребления (например, моделью Хэмминга или моделью расстояния Хэмминга). CPA позволяет учитывать не только бинарные, но и многозначные зависимости, что повышает эффективность атаки.
Атака на основе взаимной информации (MIA)
MIA использует взаимную информацию между измеренными трассами и гипотетическими значениями, что делает её менее чувствительной к выбору модели энергопотребления, но требует большего количества измерений.
Высокоуровневая DPA (High-Order DPA)
Этот метод применяется для атак на реализации, защищённые маскированием (masking). Он использует комбинации нескольких точек измерения или нескольких моментов времени для обхода контрмер.
Применение
DPA используется в следующих контекстах:
- Криптоанализ смарт-карт: Смарт-карты, используемые в банковских системах, SIM-картах, электронных паспортах, являются классической мишенью для DPA, так как они имеют открытый доступ к питанию и часто выполняют криптографические операции.
- Взлом RFID-меток: Метки, используемые в системах контроля доступа, логистике и бесконтактных платежах, также уязвимы, если не имеют защитных механизмов.
- Анализ встраиваемых систем: Микроконтроллеры, используемые в IoT-устройствах, автомобильной электронике и медицинских приборах, могут быть подвержены DPA, если ключи хранятся в незащищённой памяти.
- Тестирование безопасности: Разработчики аппаратных криптографических модулей используют DPA для оценки устойчивости своих продуктов к атакам по побочным каналам.
Контрмеры
Для защиты от DPA применяются следующие методы:
- Маскирование (masking): Разделение секретных данных на несколько случайных долей, так что ни одна доля не зависит от ключа. Например, в алгоритме AES используются маски для S-блоков.
- Балансировка энергопотребления: Использование схем, где энергопотребление не зависит от обрабатываемых данных (например, дифференциальная логика, dual-rail logic).
- Шумогенераторы: Введение случайных задержек или дополнительных операций, которые затрудняют синхронизацию измерений.
- Сглаживание энергопотребления: Использование конденсаторов или стабилизаторов напряжения, которые уменьшают колебания.
- Ограничение числа операций: Ограничение количества криптографических операций, выполняемых с одним ключом, чтобы атакующий не мог собрать достаточное количество измерений.
Критика и ограничения
DPA имеет ряд ограничений:
- Необходимость физического доступа: Атакующий должен иметь возможность измерять энергопотребление устройства, что не всегда возможно (например, для удалённых серверов).
- Зависимость от шума: Для успешной атаки требуется большое количество измерений (от сотен до тысяч), особенно при наличии шумов или контрмер.
- Сложность синхронизации: Нестабильность тактового сигнала или случайные задержки могут затруднить выравнивание трасс.
- Ограниченная применимость к программным реализациям: В программных реализациях на многоядерных процессорах или в облачных средах энергопотребление может быть менее предсказуемым.
Тем не менее, DPA остаётся мощным инструментом криптоанализа, и её изучение является обязательным для разработчиков защищённых аппаратных решений.
Интересные факты
- В 2000 году Пол Кохер получил премию RSA за вклад в криптографию, в том числе за разработку DPA.
- DPA была использована для взлома некоторых моделей смарт-карт, используемых в системах Pay-TV и мобильной связи.
- В 2010-х годах были разработаны методы автоматизированного анализа DPA, позволяющие проводить атаки без ручного подбора параметров.
Источники
- Kocher, P., Jaffe, J., Jun, B. (1999). Differential Power Analysis. Advances in Cryptology — CRYPTO’99.
- Mangard, S., Oswald, E., Popp, T. (2007). Power Analysis Attacks: Revealing the Secrets of Smart Cards. Springer.
- Standaert, F.-X. (2010). Introduction to Side-Channel Attacks. In: Secure Integrated Circuits and Systems.
- Brier, E., Clavier, C., Olivier, F. (2004). Correlation Power Analysis with a Leakage Model. CHES 2004.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →