
По мере развития квантовых вычислений, криптографическое сообщество активно разрабатывает алгоритмы, которые, как полагается, устойчивы к квантовым атакам — пост-квантовая криптография (PQC). Среди них выделяются системы на основе решеток, благодаря их прочным основам безопасности и эффективному выполнению.
Однако даже самые сложные математические задачи могут быть уязвимы, если реализация позволяет утечку информации из побочных каналов. Анализ и атаки побочных каналов (SCA) — это класс атак на реализацию, которые обходят математическую теорию, используя физические явления, такие как потребление мощности, электромагнитные утечки и вариации времени, для извлечения секретных ключей.
Эта запись в блоге предлагает подробный анализ того, как атаки через побочные каналы угрожают криптографии на основе решеток в пост-квантовой эпохе. Мы охватываем основные концепции SCA, то, как PQC оказывается под ударом, недавние достижения в исследовании и практические примеры — связывая базовые понятия с навыками опытного практика.
Атаки побочных каналов — это категория атак на безопасность, при которых атакующие получают информацию о криптографических операциях, измеряя физические параметры устройства во время вычислений.
Пример: Если криптографическое устройство тратит меньше времени, когда секретный бит равен ‘0’, чем когда он равен ‘1’, злоумышленник может многократно измерять время вычислений на известных входах для реконструкции секрета.
Квантовые компьютеры, как только они станут реальностью, смогут взломать традиционные схемы с открытым ключом (например, RSA, ECC) с помощью алгоритмов, таких как алгоритм Шора. Пост-квантовая криптография — это попытка разработать схемы шифрования/подписи, юмунные к квантовым атакам.
Решетка — это сеть точек в n-мерном пространстве с регулярным узором. Криптосистемы используют сложные задачи на решетках:
Проект NIST PQC выбирает схемы на основе решеток из-за их эффективности и масштабируемости.
Несмотря на их математическую надежность, схемы на основе решеток реализуются на физическом оборудовании — подверженном SCA. В отличие от традиционных схем, криптография на основе решеток использует операции, такие как умножение многочленов, дискретное выборочное образование по Гауссу и модульная арифметика, которые могут утекать информацию, если не выполнены аккуратно.
Кем инкапсуляции Kyber полагается на арифметику многочленов и модульные сокращения. Исследование (ACM, 2022) продемонстрировало:
В процессе подписи с помощью Dilithium могут быть наблюдены утечки выборочного образования, если логика принятия решения выборщика зависит от секретных данных и не является постоянной по времени.
Обычный анализ SCA требует значительного опыта. С машинным обучением (ML) злоумышленники могут автоматизировать процесс извлечения характеристик и классификации — что позволяет взламать более сложные или заполненные шумом реализации.
Предположим, у вас есть набор данных следов мощности во время этапа выборочного образования PQC KEM:
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# Предположим, `traces` — это массив NxT (N=образцы, T=точки времени)
# Предположим, `labels` — это массив N-элементов секретных бит (0 или 1)
traces, labels = np.load('power_traces.npy'), np.load('labels.npy')
X_train, X_test, y_train, y_test = train_test_split(traces, labels, test_size=0.2)
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)
print("Точность на тесте:", clf.score(X_test, y_test))
Этот подход может раскрыть секретные биты коэффициентов (например, сегменты бинарного секретного вектора) из значений полинома или LWE.
Практическое занятие анализом побочных каналов иллюстрирует реальную опасность. Давайте рассмотрим типичные цепочки инструментов SCA и код.
# Установите пакет программного обеспечения ChipWhisperer
pip install chipwhisperer
Python-скрипт для получения следов с микроконтроллера, выполняющего расшифровку Kyber:
import chipwhisperer as cw
scope = cw.scope()
target = cw.target(scope, cw.targets.SimpleSerial)
traces = []
for i in range(100):
scope.arm()
target.simpleserial_write('d', b'\x00' * 32) # отправить фиктивную зашифрованный текст
ret = scope.capture()
if ret:
traces.append(scope.get_last_trace())
Сохраните на диск для последующего анализа ML.
Предположим, вы экспортировали сырые данные следов.
Bash: Извлечь среднее потребление тока из следов
grep -oP 'Trace: \K[0-9 .]+' traces.log | awk '{total += $1; count += 1} END {print total/count}'
Python: Проанализируйте CSV-следы для построения графиков/анализа
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('traces.csv')
plt.plot(df['time'], df['power'])
plt.title('След мощности - Расшифровка на основе решеток PQC')
plt.xlabel('Время (нс)')
plt.ylabel('Мощность (мА)')
plt.show()
На практике злоумышленники могут получить тысячи следов и использовать статистические инструменты или ML, чтобы извлечь биты ключа.
Пример CPA (Python):
import numpy as np
from scipy.stats import pearsonr
# следы: массив NxT; гипотезы: возможные предположения по ключу, входные данные: открытые/шифрованные тексты
def cpa(traces, input_data, key_guesses):
max_corr = -1
best_guess = None
for k in key_guesses:
hyp = hamming_weight(pqc_operation(input_data, k)) # моделирование мощности для предположения
corrs = [pearsonr(traces[:, t], hyp)[0] for t in range(traces.shape[1])]
if max(abs(corrs)) > max_corr:
max_corr = max(abs(corrs))
best_guess = k
return best_guess, max_corr
Учитывая продемонстрированную опасность, как же реализаторы могут защитить криптографию на основе решеток от SCA?
Для Kyber предпочтительны AVX2-ориентированные постоянные во времени процедуры арифметики многочленов (см. официальный репозиторий PQClean). Для выборочного образования используйте защищённые по постоянному времени выборщики, а не наивные таблицы.
По мере внедрения PQC:
Хотя криптография на основе решеток в пост-квантовой эпохе обещает теоретическую безопасность от квантовых противников, анализ побочных каналов (SCA) выявляет серьёзные практические риски. Специфическая для реализации утечка физической информации — мощности, EM, времени — может позволить атакующим восстановить секреты с помощью тщательного анализа. Новые методы машинного обучения автоматизируют и улучшают такие атаки. Надёжные, защищенные от побочных каналов реализации требуют тщательного подхода, кода по постоянному времени, проектирования аппаратных/программных компонентов и строгих испытаний.
По мере развертывания схем пост-квантовой криптографии в смарт-картах, мобильных чипах и в облаке, стойкость к побочным каналам должна быть так же важна, как криптографическая надёжность самих алгоритмов.
Анализ побочных каналов на основе решеток пост-квантовых примитивов
https://dl.acm.org/doi/10.1145/3569420
Риск атак побочных каналов на пост-квантовую криптографию
https://www.ledger.com/blog-risk-side-channel-attacks-post-quantum-cryptography
Машинное обучение и атаки побочных каналов на пост-квантовую криптографию
https://eprint.iacr.org/2025/1754
Проект NIST PQC
https://csrc.nist.gov/Projects/post-quantum-cryptography
PQClean: Чистые и защищённые от побочных каналов эталонные реализации
https://github.com/PQClean/PQClean
ChipWhisperer: Открытые инструменты SCA/FI
https://chipwhisperer.io/
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.