Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
power_analysis — Доказательство концепции, демонстрирующее атаку по побочному каналу анализа мощности на уязвимую реализацию RSA на Arduino (Atmega328P), с подробным описанием аппаратной установки и методологии измерений. | Kitploit
Инструменты/GitHubGitHub/lord-feistel/power_analysis
Безопасность встроенных системКриптографияАппаратная БезопасностьСтатьи и ИсследованияОбучение и Образование
GitHublord-feistel/power_analysis

power_analysis

Доказательство концепции, демонстрирующее атаку по побочному каналу анализа мощности на уязвимую реализацию RSA на Arduino (Atmega328P), с подробным описанием аппаратной установки и методологии измерений.

Репозиторий
324672 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Атака по анализу мощности на RSA

Оглавление

Оглавление

  • Введение
  • Атаки по анализу мощности
  • RSA: краткое введение
  • Пример RSA
  • Оборудование
  • Измерение мощности: краткое введение
    • Закон Ома
    • Закон напряжения Кирхгофа (ЗНК)
    • Делитель напряжения
    • Шунтирующий резистор
  • Пример измерения мощности
  • Быстрое возведение в степень
  • Быстрое возведение в степень в Arduino (Atmega328P)
  • Результаты
  • Заключение
  • Ссылки

Введение

Недавно я наблюдал, как люди самостоятельно реализуют криптографию для Arduino, как описано в этой теме на Stackoverflow:

https://stackoverflow.com/questions/39189065/rsa-encryption-decryption-functions-for-arduino

Несколько из них можно найти в интернете, некоторые, кстати, находятся в хорошо известных библиотеках.

Я решил сделать эту небольшую PoC (Proof of concept — доказательство концепции), чтобы показать, почему важно не изобретать свой собственный криптографический алгоритм, но также использовать надежную реализацию таких алгоритмов.

Эта PoC выполняет атаку по побочным каналам (атаку по анализу мощности) против плохой реализации вспомогательной процедуры, используемой в реализации RSA (быстрое возведение в степень).

Атака по побочным каналам — это метод компрометации криптографической системы путем использования косвенной утечки информации, а не прямой атаки на сам криптографический алгоритм или протокол.

Такой тип утечки может возникать из различных источников, таких как временная информация, энергопотребление, электромагнитное излучение или даже звук.

Такие атаки могут быть весьма эффективными для компрометации криптографических систем, таких как RSA, не требуя от злоумышленника решения основных математических задач, обеспечивающих безопасность криптографической схемы (Kocher, Jaffe, & Jun, 1999).

В данной статье будет выполнена атака по анализу мощности на широко известную уязвимость в реализации алгоритма RSA в прошивке для Arduino (Atmega328P).

Примечание: я делал это наспех, пожалуйста, простите меня за опечатки / грамматические ошибки, которые вы, возможно, найдете.

Атаки по анализу мощности

Атаки по анализу мощности включают измерение энергопотребления устройства во время криптографических операций.

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

Дифференциальный анализ мощности (DPA) и простой анализ мощности (SPA) могут использоваться для извлечения закрытых ключей путем анализа паттернов энергопотребления во время вычислений RSA.

Эти атаки могут раскрыть закрытый ключ, выявляя различные паттерны энергопотребления, связанные с различными битами ключа (Kocher, Jaffe, & Jun, 1999).

RSA: краткое введение

RSA (Rivest-Shamir-Adleman) — широко используемый алгоритм шифрования с открытым ключом, названный в честь его изобретателей: Рона Ривеста, Ади Шамира и Леонарда Адлемана, которые представили его в 1977 году (Paar & Pelzl, 2010).

Он остается одним из самых безопасных методов для передачи данных через интернет.

Одна из основ безопасности RSA заключается в сложности разложения больших составных чисел на простые множители (Menezes, van Oorschot, & Vanstone, 1996).

Эта проблема, известная как задача факторизации, заключается в нахождении простых чисел, которые при перемножении дают заданное большое число.

Шифрование RSA опирается на предположение, что эта задача факторизации является вычислительно достаточно сложной, чтобы сделать взлом шифрования путем факторизации модуля на простые множители практически невозможным (Menezes, van Oorschot, & Vanstone, 1996).

Пример RSA

На Рисунке 1 показан процесс шифрования и дешифрования RSA на простом примере.

Пример RSA

Рисунок 1 — Пример RSA.

Обратите внимание, что в данном случае 3 и 33 являются открытыми. Число 7 в примере является закрытым ключом.

Функция Phi(N), функция Эйлера, вычисляет все взаимно простые числа в интервале от 1 до 33.

Значение 33 получается умножением P и Q; в данном случае 11 умножается на 3.

Результат функции Phi получается умножением (P-1) на (Q-1); в данном случае 10 умножается на 2.

Операция e<sup>-1</sup> mod 20 обозначает операцию модульного обратного (Menezes, van Oorschot, & Vanstone, 1996).

Примечание: Если вы хотите глубже изучить RSA, что необязательно для понимания данной статьи, в этом репозитории есть файл number_theory.md с кратким введением в эти основные операции теории чисел. Это объяснение может улучшить ваше понимание работы RSA.

Оборудование

В эксперименте использовался осциллограф DS1102 (представлен на Рисунке 2) производства Rigol.

Руководство пользователя осциллографа можно найти в ссылках (RIGOL Technologies, Inc., 2017).

Также использовался универсальный блок питания (представлен на Рисунке 3).

Осциллограф

Рисунок 2 — Осциллограф, использованный в эксперименте.

Блок питания

Рисунок 3 — Блок питания, использованный в эксперименте.

Измерение мощности: краткое введение

Закон Ома

Закон Ома — фундаментальный принцип в области электротехники и физики.

Он гласит, что ток, протекающий через проводник между двумя точками, прямо пропорционален напряжению между этими точками и обратно пропорционален сопротивлению между ними (Boylestad, 2015).

На Рисунке 4 показана схема и закон Ома.

Закон Ома

Рисунок 4 — Иллюстрация закона Ома.

Закон Ома подразумевает, что если увеличить напряжение на проводнике, ток также увеличится, при условии, что сопротивление остается постоянным (Johnson & Hilburn, 2013). На Рисунке 5 представлен пример применения закона Ома, целью которого является нахождение тока в цепи.

Пример закона Ома

Рисунок 5 — Пример закона Ома.

Закон Кирхгофа (напряжений)

Закон напряжения Кирхгофа (ЗНК) — фундаментальный принцип в электротехнике и физике (Boylestad, 2015).

Он гласит, что сумма всех разностей электрических потенциалов (напряжений) в любом замкнутом контуре или петле равна нулю (Boylestad, 2015).

На Рисунке 6 проиллюстрирован закон напряжения Кирхгофа.

Закон Кирхгофа

Рисунок 6 — Иллюстрация закона Кирхгофа.

На Рисунке 7 приведен пример применения закона Кирхгофа для нахождения тока через резисторы R1 и R2.

Пример закона Кирхгофа

Рисунок 7 — Пример закона Кирхгофа.

Делитель напряжения

Делитель напряжения является следствием закона напряжения Кирхгофа (ЗНК) и описывает способ расчета Vout, то есть напряжения между резисторами R1 и R2.

Формула делителя напряжения представлена на Рисунке 8.

Пример применения делителя напряжения показан на Рисунке 9.

Делитель напряжения

Скачать инструмент