
Ключевые слова: квантовые вычисления, атаки через побочные каналы, машинное обучение, постквантовая безопасность, облачная безопасность, анализ мощности, маскирование, ослепление, кибербезопасность
Квантовые вычисления представляют трансформационный скачок, обещая экспоненциальное ускорение для задач, традиционно неподвластных классическим машинам. С силой приходит риск, и по мере того, как эти системы переходят от теоретических к облачным, понимание их безопасности становится критически важным.
Особенно коварным классом угроз являются атаки через побочные каналы, где злоумышленники извлекают секреты не взломом криптографии, а посредством использования аппаратных или системных утечек, таких как колебания мощности или вариации времени. В этой статье мы исследуем современные атаки на побочные каналы питания квантовых компьютеров, представляем несколько совершенно новых векторов атак на основе последних академических работ и обсуждаем как программные, так и аппаратные меры противодействия, включая растущую роль машинного обучения как в разработке атак, так и в защите.
Эта подробная статья будет полезна как новичкам, интересующимся безопасностью, так и разработчикам, занимающимся квантовыми цепями, и экспертам по безопасности, ответственным за защиту облачных рабочих нагрузок.
Атаки через побочные каналы (АТПК) используют физические реализации вычислений, а не слабости в алгоритмах. Они опираются на:
Этот класс атак имеет давнюю историю в классической криптографии — например, дифференциальный анализ мощности (DAP) взломал многие аппаратные реализации AES и RSA.
Вместо прямой атаки на алгоритмы шифрования злоумышленники:
Квантовые компьютеры работают принципиально иначе, чем классические системы:
Однако, квантовые реализации (особенно сверхпроводящие кубиты) используют физические компоненты: контрольную электронику, микроволновые резонаторы и криогенные системы — все они могут случайно утечь информацию.
Облачные квантовые платформы (такие как IBM Quantum, Rigetti Forest, Amazon Braket) позволяют удаленный доступ к физическому квантовому оборудованию. Хотя это демократизирует исследования, это позволяет недоверенным пользователям запускать низкоуровневые цепи, потенциально извлекая информацию через побочные каналы — ситуация, аналогичная ранним многопользовательским классическим облакам, где шумные соседи могли шпионить за другими.
Недавнее прорывное исследование—Исследование побочных каналов питания квантовых компьютеров—систематически исследует потенциальные информационные утечки через каналы мощности из облачно доступного квантового оборудования. Авторы представляют пять новых типов атак и оценивают их, используя метаданные контрольных импульсов (например, время импульсов, амплитуда), наблюдаемые через стандартные облачные API.
Каждый квантовый вентиль (такие как X, CX, H) реализуется путем отправки точно сформированных электрических или микроволновых импульсов в кубит. Форма и длительность импульса часто зависят от вентиля, состояния кубита, а иногда даже данных.
Наблюдая или косвенно выводя эти параметры импульсов, нападающий может:
Предположим, что облачный API утечки исходных расписаний импульсов (как это часто бывает при калибровке), злоумышленник может пассивно наблюдать:
# Получает данные о импульсах из IBM Q API
curl -H "Authorization: Bearer <TOKEN>" https://api.quantum-computer.example.com/v1/jobs/JOBID/pulses -o pulses.json
Разобрать и проанализировать на Python:
import json
with open('pulses.json') as f:
data = json.load(f)
for pulse in data['pulses']:
print(f"Gate: {pulse['gate_type']} | Длительность: {pulse['duration']} | Амплитуда: {pulse['amplitude']}")
Создав базу данных шаблонов импульсов, злоумышленники могут идентифицировать типы цепей.
Каждая квантовая цепь оставляет уникальный отпечаток на источнике питания — последовательность, длительность и сочетание вентилей генерируют характерные профили мощности. Улавливая их и проводя статистический анализ, злоумышленники могут классифицировать, какие алгоритмы (например, QFT, Гровера) или даже какой секретозависимый ответ был выполнен.
Иллюстративный код с синтетическими данными:
import numpy as np
from sklearn.ensemble import RandomForestClassifier
# Пример: синтетические данные для двух квантовых цепей
X = np.array([[0.1, 5.1, 2.3], [0.2, 5.2, 2.2], [1.0, 7.0, 3.0], [0.9, 6.9, 3.1]]) # следы мощности
y = [0, 0, 1, 1] # 0: QFT, 1: Гровер
clf = RandomForestClassifier()
clf.fit(X, y)
new_trace = np.array([[0.15, 5.05, 2.25]])
predicted = clf.predict(new_trace)
print("Прогнозируемый класс цепи:", predicted)
Определенные последовательности вентилей, особенно с разнообразными управляющими кубитами, создают уникальные временные энергетические сигнатуры из-за переключения резонаторов и эффектов перекрестных помех. Имея тонкомерзованные измерения или доступ к данным по времени, злоумышленники могут восстановить порядок и тип вентилей.
В облачных средах задержка выполнения задания может зависеть слегка от физического состояния оборудования, тепловых побочных эффектов или расписания. Например, выполнение схемы высокоэнергетических вентилей может создать небольшой, но измеримый задержка.
Злоумышленник может:
# Замер времени выполнения задачи
start=$(date +%s%N)
# Отправьте квантовое задание
qiskit-execute --backend ibmq_boeblingen --circuit my_qasm.qasm
end=$(date +%s%N)
time_ms=$(( (end - start)/1000000 ))
echo "Время отклика задачи (мс): $time_ms"
Квантовые ошибки (например, ошибки вентилей, ошибки считывания) могут временно меняться из-за резонанса или электрических перекрестных помех от других задач в многопользовательском облаке. Путем статистического анализа ошибок и результатов злобный облачный пользователь может предположить физическую активность кубитов других задач, запланированных поблизости по времени.
Машинное обучение (МО) стало мощным оружием как для автоматизации атак через побочные каналы, так и для анализа контрмер.
Имея достаточно промаркированных данных следов, глубокие сети могут обнаружить тонкие утечки, которые не были замечены при ручном анализе.
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import numpy as np
# Предположим, что мы собрали 1000 следов потребления мощности для двух вентилей: X (0), CX (1)
X_traces = np.random.rand(1000, 128) # Каждый след: 128-обратный вектор
y_classes = np.random.randint(0, 2, 1000)
model = Sequential([
Dense(64, activation='relu', input_shape=(128,)),
Dense(32, activation='relu'),
Dense(2, activation='softmax'),
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(X_traces, y_classes, epochs=10, batch_size=32)
Интерпретация: Имея достаточно данных, модель может научиться различать активность вентилей кубитов по их следам мощности.
Предотвращение атак — это игра в кошки-мышки: оборона должна развиваться вместе с атаками.
Пример псевдокода для рандомизированной организации цепей:
import qiskit
from qiskit.circuit.random import random_circuit
# Оригинальная чувствительная цепь
qc = qiskit.QuantumCircuit(3)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
# Вставьте случайные недеструктивные вентили
rand_qc = random_circuit(3, 4, max_operands=2)
qc.compose(rand_qc, inplace=True)
# Отправьте в облачный бэкенд
Предположите, что вы получаете записи мощности устройства (для исследований/разработки контрмер). Вот рабочий процесс для разборки, визуализации и классификации следов.
Предположим, что каждая строка представляет собой пару время, мощность.
trace1.txt
0.0, 0.15
0.1, 0.20
0.2, 0.22
...
import numpy as np
import matplotlib.pyplot as plt
def load_trace(filename):
data = np.loadtxt(filename, delimiter=',')
times = data[:,0]
power = data[:,1]
return times, power
times, power = load_trace('trace1.txt')
plt.plot(times, power)
plt.xlabel("Время (мс)")
plt.ylabel("Мощность (мВт)")
plt.title("След мощности квантового устройства")
plt.show()
Извлеките основные признаки (среднее, максимум, дисперсия) для быстрой классификации.
import glob
feature_list = []
label_list = []
for fname in glob.glob('traces/*.txt'):
times, power = load_trace(fname)
features = [power.mean(), power.max(), power.std()]
feature_list.append(features)
# Предположим, имя файла кодирует метку: qft_*.txt
label = 0 если 'qft' в fname еще 1
label_list.append(label)
from sklearn.svm import SVC
clf = SVC()
clf.fit(feature_list, label_list)
Обещания квантовых вычислений приносят риски, напоминая, но усиливая те, с которыми сталкиваются в классической аппаратной безопасности. Поскольку все больше пользователей взаимодействуют с физическими квантовыми компьютерами, особенно в облаке, риск от питания, времени и других аппаратных побочных каналов становится актуальным. Пять новых векторов атак — модуляция импульсов, различение мощности, анализ последовательности вентилей, временные задержки и эксплуатация через перекрестные помехи — показывают как креативность атакующих, так и срочную необходимость в эффективных контрмерах.
Защита возможно, но требует усилий: слоями. ни одной точки. И маскирование на уровне программного обеспечения/oslep на уровне аппаратного обеспечения должны работать совместно, и архитекторы систем должны тщательно аудировать и минимизировать предоставляемую информацию. Как и в классической криптографии, давление велико: нападающие внедряют новшества; защитники должны делать тоже самое.
Оставайтесь в курсе, продолжайте учиться и защитите ваши кубиты!
Если вы нашли это руководство по атакам через побочные каналы питания квантовых компьютеров полезным, подумайте о том, чтобы поделиться им с вашими коллегами или сослаться на него в вашем исследовании! Подпишитесь на больше информации о безопасности квантовых облаков, постквантовой криптографии и стратегиях смягчения аппаратных атак.
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.