Разберите угрозу побочных каналов (timing, power analysis) на примере RSA-реализации — опишите способы защиты и оцените их влияние на производительность

18 Ноя в 10:22
5 +5
0
Ответы
1
Кратко и по делу — угроза + контрмеры + оценка влияния на производительность.
1) Суть уязвимостей (на примере RSA)
- Операция: s=md mod n s = m^d \bmod n
s=mdmodn
. При реализации часто используют алгоритм "square-and-multiply" (бинарное возведение в степень). Если на шаге для бита did_idi выполняется дополнительное умножение только при di=1d_i=1di =1, то время и потребляемая мощность зависят от битов ключа → утечки.
- Тайминговая атака: измеряют общее время (или время ответов) и восстанавливают биты экспоненты по зависимостям времени от ветвлений/длительности операций.
- SPA (Simple Power Analysis): по одной трассе мощности видны паттерны «square» vs «multiply» — читаются биты.
- DPA (Differential Power Analysis): по множеству трасс статистически кореллируют предположения о промежуточных значениях (например, Hamming weight промежуточных регистров) с измерениями и извлекают ключ.
- Особая уязвимость CRT-оптимизации: вычисляют sp=mdp mod ps_p = m^{d_p}\bmod psp =mdp modp, sq=mdq mod qs_q = m^{d_q}\bmod qsq =mdq modq и комбинируют: s=sq+q⋅((sp−sq)⋅q−1 mod p) s = s_q + q\cdot\big((s_p-s_q)\cdot q^{-1}\bmod p\big)
s=sq +q((sp sq )q1modp)
. CRT даёт ускорение, но облегчает атаки (меньшие регистры, легче анализировать), и плохо защищён против фолт-атак (одна повреждённая подвычисление может раскрыть фактор).
2) Контрмеры и механизм их работы
- Константное время (algorithmic constant-time):
- Montgomery ladder или "always do both" — на каждом бите выполнять и квадрат, и умножение (или структуру, делающую одинаковое число операций и одинаковые ветвления). Ладдер держит два накопителя и делает фиксированную последовательность операций.
- Убирают условные ветвления и непредсказуемые памяти-индексы (таблицы превращают в постоянные чтения/dummy-операции).
- Блайндинг (маскирование):
- Message blinding: выбрать случайное rrr, вычислить m′=m⋅re mod nm' = m\cdot r^e \bmod nm=mremodn, вычислить s′=(m′)ds'=(m')^ds=(m)d и вернуть s=s′⋅r−1 mod ns = s'\cdot r^{-1}\bmod ns=sr1modn. Это ломает корреляцию промежуточных значений и наблюдаемых сигналов.
- Exponent blinding: взять случайное kkk и использовать d′=d+kϕ(n)d' = d + k\phi(n)d=d+kϕ(n) (результат тот же, но последовательность битов экспоненты рандомизируется).
- CRT-специфический blinding: блайндить mmm отдельно по модулю p,qp,qp,q или рандомизировать промежуточные значения.
- Верификация результатов (fault mitigation): после генерации подписи/расшифровки проверять se mod n=?ms^e \bmod n \stackrel{?}{=} msemodn=?m. При несоответствии — отклонять или вычислять безопасным (медленным) способом. Это защищает от фолтовых атак (Bellcore).
- Защиты на уровне HW и физики: шум, питание с постоянной мощностью, dual-rail логика, фильтры — дорого и аппаратно-зависимы.
- Против DPA: маскирование промежуточных значений (разбиение операции на маскируемые части), рандомизация регистров, добавление шума — требует тщательной реализации.
3) Влияние на производительность (приблизительно)
- Базовый приватный exponentiation (без CRT) для экспоненты длиной ttt бит требует порядка ∼t\sim tt квадр./умножений (в зависимости от метода). Montgomery ladder выполняет примерно 2t2t2t мультипликаций (фиксированно) → примерно ×2\times 2×2 по времени относительно оптимального square-and-multiply при средней Hamming weight.
- CRT: стандартно даёт ускорение примерно ∼3÷4×\sim 3\div 4\times3÷4× по сравнению с полным модулем (т.к. вычисления делятся на два модуля вдвое меньшей длины). Отказ от CRT (чтобы избежать CRT-специфичных атак) замедлит ≈ ×3÷4\times 3\div4×3÷4.
- Message blinding: добавляет одну дешёвую экспоненту с публичным eee (обычно мал, например e=65537\,e=65537e=65537), одну инверсию и несколько умножений — общая накладная ∼ ⁣10%−30%\sim \!10\%-30\%10%30% в зависимости от реализации (обычно мала).
- Exponent blinding: увеличивает размер экспоненты немного (зависит от величины kkk), обычно небольшая накладная, сравнимая с ∼ ⁣10%−20%\sim \!10\%-20\%10%20%.
- Верификация результата (вычисление se mod ns^e\bmod nsemodn с малым eee): очень дешёвая для подписей (прибавляет ∼ ⁣5%−15%\sim \!5\%-15\%5%15%).
- Маскирование/комплексное DPA-устойчивое программное обеспечение: накладные расходы могут быть значительны и варьируются от ∼ ⁣20%\sim \!20\%20% до ×2\times 2×2 и более, в зависимости от уровня защиты (полное маскирование и отсутствие утечек — дорого).
- Комбинации: типичная практическая схема — использовать CRT + message blinding + проверку результата + constant-time критических функций (но не обязательно полную лестницу на всем пути). Это даёт хорошее сочетание безопасности и производительности: реальная накладная обычно ∼ ⁣10%−40%\sim \!10\%-40\%10%40% по сравнению с небезопасной, быстрым CRT-референсом; если дополнительно применять полный constant-time ladder на всем пути, то можно получить ≈×1.8÷2\times 1.8\div2×1.8÷2 замедление.
4) Практические рекомендации (кратко)
- Всегда использовать blinding для приватных операций (сообщение или экспонента).
- Для CRT: оставить CRT (ради скорости), но обязательно делать проверку результата и блайндинг под p,qp,qp,q либо восстановление безопасным способом при обнаружении несоответствия.
- Реализовать критичные ядра (модульное умножение/редукция) в constant-time, избегать таблиц с секретными индексами; для оконных методов применять «scatter/gather» без секретных ветвлений.
- Для высокозащищённых устройств рассмотреть аппаратные countermeasures (constant-power, noise, dual-rail) и протоколы маскирования.
Короткая сводка: основные атаки — SPA/DPA и тайминги через различия операций (например, square-and-multiply). Эффективные контрмеры — message/exponent blinding, constant-time алгоритмы (Montgomery ladder или фиксированные окна с dummy-операциями), проверка результата; их комбинирование даёт надёжную защиту с типичной накладной в районе ∼10%−40%\sim 10\%-40\%10%40%. Полное исключение утечек (особенно от DPA) требует более серьёзных мер и может увеличить время работы заметно (×2\times 2×2 и более).
18 Ноя в 11:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир