Атака по энергопотреблению

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Анализ потребления энергии»)
Перейти к: навигация, поиск
Диаграмма дифференциальной атаки по энергопотреблению.
Попытка восстановить биты ключа RSA шифрования с помощью атаки по энергопотреблению. Левый пик соответствует отклонению потребляемой мощности CPU во время шага быстрого возведения в степень без умножения, правый пик — шаг с умножением.

В криптографии атака по энергопотреблению является одной из форм атак по сторонним каналам, при которой криптоаналитик изучает потребляемую мощность устройства, выполняющего криптографические задачи (как например смарт-карта, устойчивый к взлому «черный ящик», интегральная схема и тому подобное). С помощью такой атаки возможно извлечь криптографические ключи или другую секретную информацию из устройства, не оказывая на него непосредственного воздействия.

Простая атака по энергопотреблению (англ. Simple Power Analysis, SPA) подразумевает под собой визуальный анализ графиков электрической активности устройства во времени.

Дифференциальная атака по энергопотреблению (англ. Differential Power Analysis, DPA) является более продвинутой разновидностью атаки, с помощью которой криптоаналитик способен вычислить промежуточные значения, использующиеся в криптографическом алгоритме, путём статистического анализа данных, собранных в течение вычисления нескольких криптографических операций. SPA и DPA были впервые представлены в 1998 криптографами Полом Кохером, Джошуа Джаффе и Бенджамином Джуном.[1]

Разновидности атак[править | править вики-текст]

Простая атака по энергопотреблению[править | править вики-текст]

Простая атака по энергопотреблению является атакой по сторонним каналам, при которой производится визуальный анализ зависимости потребляемой устройством тока/мощности от времени. Отклонения в потребляемой мощности возникают при выполнении устройством разных операций и последовательностей действий. Например, разные инструкции, исполняемые микропроцессором, оказывают разное влияние на энергопотребление. Так, в графике зависимости потребляемой мощности от времени, снятой со смарт-карты, выполняющей алгоритм DES, можно ясно различить 16 раундов шифрования. Похожим образом, операции вычисления квадрата числа и операции умножения в реализациях алгоритма RSA могут быть визуально отделены друг от друга, что открывает возможность восстановления секретного ключа. Даже в случае малой разницы в энергопотреблении стандартные цифровые осциллографы способны отобразить отклонения, вызванные разницей в обрабатываемых данных. Частотные фильтры и усредняющие функции, которые доступны в современных осциллографах, часто применяются для отфильтровывания высокочастотных составляющих, препятствующих анализу. Одним из основных недостатков данной атаки является её существенная зависимость как от реализации криптографического алгоритма, так и исполняющего его оборудования, без возможности автоматизации процесса анализа для общего случая.[2]

Дифференциальная атака по энергопотреблению[править | править вики-текст]

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

Дифференциальная атака по энергопотреблению высокого порядка[править | править вики-текст]

Дифференциальная атака по энергопотреблению высокого порядка (англ. High-Order Differential Power Analysis, HO-DPA) является более продвинутой версией дифференциальной атаки. Дифференциальная атака высокого порядка предоставляет возможность использования при анализе нескольких источников измерений и различные сдвиги во времени. Эта версия атаки по энергопотреблению используется реже обычной дифференциальной или простой атак, так как такой анализ гораздо сложнее, и большинство устройств взламываются с меньшим усилием с помощью обычной дифференциальной или простой атак.[3]

Устойчивость алгоритма к атаке[править | править вики-текст]

Атака по энергопотреблению предоставляет способ взглянуть внутрь устройства, устойчивого к внешнему воздействию. Например, во время этапа планирования в алгоритме DES происходит циклический сдвиг 28-разрядных ключевых регистров. Многие реализации проверяют младший бит регистра на наличие там «1». Если это так, то происходит сдвиг регистра вправо и добавляется «1» в конец регистра. Иначе регистр сдвигается без добавления «1». Атака по энергопотреблению способна различить эти процессы и тем самым открывает возможность восстановления секретного ключа. Недостаточно надежные реализации таких алгоритмов, как AES или 3-DES, которые считаются математически устойчивыми, могут быть взломаны тривиальным образом с помощью атак по энергопотреблению. Тем самым, атаки по энергопотреблению совмещают элементы алгоритмического криптоанализа и анализа надежности реализации.

Необходимое оборудование[править | править вики-текст]

Необходимое для атаки по энергопотреблению оборудование широко доступно. Например, большинство цифровых осциллографов имеют необходимую для получения данных для обработки функциональность, а сами данные обычно обрабатываются на персональных компьютерах. Также доступны коммерческие продукты, разработанные для лабораторий тестирования.[4] Несмотря на то, что современные микропроцессоры работают на частотах порядка 3 ГГц, в некоторых ситуациях для успешного анализа достаточно измерительных приборов с частотой дискретизации порядка десятков кГц.[5] В качестве источника сигнала о энергопотреблении может выступать как непосредственно ток в канале передачи энергии от источника питания к устройству (например, в сетевом шнуре), так и напряжение на поверхности корпуса, напряжение на различных интерфейсах (USB, сетевой вход, VGA и т. п.) и даже электромагнитное излучение.

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

Для областей, в которых криптографические устройства могут попасть в руки криптоаналитика, устойчивость к атакам по энергопотреблению является одним из основных требований к системе. Атака по энергопотреблению в общем случае не может быть обнаружена криптографическим устройством, так как обычно криптоаналитик ведет себя пассивно. В дополнение к этому, такие атаки не оказывают непосредственного влияния на систему. Как результат, детектирование атак неэффективно. Вместо этого разработчики криптосистемы должны обеспечить независимость флуктуаций энергопотребления и происходящих в системе процессов. Простая атака по энергопотреблению способна свободно отличить результат операции условного перехода, так как устройство делает разные вещи (и, соответственно, потребляет разную мощность) в зависимости от направления ветвления. Поэтому должно быть обеспечено отсутствие участия секретных значений в определении направления условных переходов в реализации алгоритма. Другие источники отклонений энергопотребления, как, например, разница в микрокоде, условные переходы, сгенерированные компилятором, разное энергопотребление при операциях умножения, также часто приводят к уязвимостям перед простой атакой по энергопотреблению. Дифференциальную атаку по энергопотреблению предотвратить сложнее, так как даже малые отклонения в потребляемой мощности могут привести к уязвимости. Некоторые стратегии контрмер используют такие модификации алгоритма, при которых криптографические операции производятся над данными, связанными с настоящими значениями через некоторое математическое преобразование, сохраняющееся при выполнении криптографической операции. Один из подходов включает в себя смешивание параметров с целью привнесения случайности в их значения. Другие стратегии подразумевают модификацию аппаратуры: изменение частоты микропроцессора используется как мера десинхронизации электрических сигналов, что в свою очередь привело к усовершенствованию классического алгоритма дифференциальной атаки по энергопотреблению.[6][7]

См. также[править | править вики-текст]

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

  1. P. Kocher, J. Jaffe, B. Jun, "Differential Power Analysis, " technical report, 1998; later published in Advances in Cryptology — Crypto 99 Proceedings, Lecture Notes In Computer Science Vol. 1666, M. Wiener, ed., Springer-Verlag, 1999.
  2. Michael Tunstall, «Attacks on Smart Cards»
  3. Paul Kocher, Joshua Jaffe, Benjamin Jun, «Introduction to Differential Power Analysis and Related Attacks (1998)»
  4. DPA Workstation
  5. Daniel Genkin, Itamar Pipman, Eran Tromer, «Get Your Hands Off My Laptop: Physical Side-Channel Key-Extraction Attacks On PCs»
  6. Xavier Charvet, Herve Pelletier, «Improving the DPA attack using wavelet transform (2005)»
  7. Jasper van Woudenberg, Mark Witteman, Bram Bakker «Improving differential power analysis by elastic alignment (2011)»