
Квантовые вычисления обладают преобразующей мощностью для вычислений, с возможностями, которые могут превзойти классические компьютеры в конкретных приложениях, таких как криптоанализ, открытие лекарств и оптимизация. Однако, по мере роста экосистемы и перехода к облачным моделям доступа, возникают новые кибербезопасные риски — особенно через квантово-специфические атаки через побочные каналы, где злоумышленники извлекают секреты, используя физические или эксплуатационные побочные продукты, а не взламывая математическую защищенность.
Этот блог-пост предоставляет глубокое, от начального до продвинутого, исследование побочных каналов мощности квантовых компьютеров, с акцентом на недавние исследования, вводящие пять новых классов атак (arXiv:2304.03315), и включая реальные результаты, такие как временную атаку через побочный канал Quantum Leak (ACM Link), а также передовые исследования о квантовом сенсинге в анализе побочных каналов (SCA-QS). Пост охватывает основы, оценивает случаи использования, представляет практические примеры кода и обсуждает как перспективы, так и опасности для кибербезопасности.
Квантовые компьютеры работают на основе квантовой механики, используя кубиты в качестве основных единиц данных. В отличие от битов, которые равны 0 или 1, кубиты могут находиться в суперпозициях, что позволяет использовать квантовый параллелизм.
Ключевые моменты:
Квантовое оборудование открывает "побочные эффекты", не предназначенные для наблюдения пользователя, которые могут служить векторами для атак через побочные каналы.
Атака через побочный канал использует случайные утечки информации, наблюдая за реализацией системы, а не атакуя её математическую защищенность напрямую. Традиционные побочные каналы включают:
В квантовой области появляются аналогичные побочные каналы:
Квантовое оборудование вводит новые парадигмы:
Как указано в Sun и др., "Исследование побочных каналов мощности квантовых компьютеров" (arXiv:2304.03315), эта новаторская работа идентифицирует пять новых семейств квантовых атак, реализованных через информацию о мощности и управляющем импульсе.
Что?
Наблюдение за флуктуациями мощности, которые непосредственно соответствуют управляющим импульсам для квантовых дверей.
Как?
Квантовые компьютеры выполняют двери, излучая/поглощая управляющие импульсы (например, микроволны). Путем мониторинга использования мощности, синхронизированной с временными метками импульсов (иногда доступными через отладочные выходы), злоумышленники могут определить, когда и какие двери задействованы, утечка структуры схемы.
Пример
Если дверь Тоффоли потребляет больше мощности и более продолжительное время, чем дверь Адамара, противник может различать типы логики, подслушивая энергетический след (что может быть извлечено из логов управляющих импульсов):
def detect_heavy_gates(pulse_log):
# Парсинг информации об управляющих импульсах (упрощенный)
with open(pulse_log) as f:
lines = f.readlines()
gate_durations = [float(line.split(',')[1]) for line in lines if 'GATE' in line]
heavy_gates = [d for d in gate_durations if d > 0.5] # например, порог длительности
print(f"Обнаружены {len(heavy_gates)} подозрительные 'тяжелые' двери (возможно, многокубитные).")
Что?
Извлечение повторяющихся паттернов импульсов, которые указывают на алгоритмические структуры или подпрограммы.
Как?
Квантовые процедуры (например, QFT, Гровера) демонстрируют характерные временные и частотные сигнатуры импульсов. Злоумышленники ищут лог-паттерны, указывающие на повторяющиеся вызовы алгоритмов.
Пример
Применение метрических оценки сходства (например, Левенштейн, Хэмминг) к последовательностям событий импульсов, групповая обработка повторяющихся подстрок, соответствующих подпрограммам.
Что?
Связывание сигнатуры импульса с конкретным квантовым алгоритмом, эффективно "пальчатая" вычисление.
Как?
Подробные знания стандартных квантовых алгоритмов импульсов (созданные на основе бенчмаркинга/экспериментов) позволяют злоумышленникам сопоставлять наблюдаемые потоки импульсов с известными алгоритмами, раскрывая намерения пользователя или проприетарные процедуры.
Пример:
Имея базу данных известных сигнатур импульсов по алгоритмам, атака сопоставляет временные и последовательные метаданные.
Что?
Корреляция агрегированных данных о заданиях квантового компьютера (например, частота/размер заданий, трафик импульсов) для определения графиков активности пользователей, использования ресурсов и даже этапов квантовых вычислений.
Что?
Измерение тонких флуктуаций мощности, возможно, с использованием квантовых сенсоров (см. ниже SCA-QS), для извлечения свойств подлежащей квантовой операции, возможно даже зависящих от данных операций, если это допускается аппаратурой.
Продвинутая атака если злоумышленники имеют физическую близость или доступ к продвинутым сенсорам к квантовому оборудованию.
Облачные квантовые сервисы (IBM Quantum, Rigetti, IonQ и др.) демократизируют доступ к квантовым ресурсам, но увеличивают поверхность атаки. Пользователи удаленно отправляют квантовые схемы; выводы часто включают:
Неосмотрительное раскрытие детализированных управляющих импульсов может утечь структуру программы, цель или даже проприетарные алгоритмические интеллектуальные права.
IBM Quantum Experience позволяет пользователям загружать "графики управляющих импульсов" для каждого представленного квантового задания.
Практический пример:
Напишем скрипт для загрузки и анализа логов импульсов IBM Quantum (предполагается наличие доступа к API):
from qiskit import IBMQ, transpile
from qiskit.providers.ibmq import least_busy
from qiskit.pulse import Schedule
import matplotlib.pyplot as plt
# Аутентификация и загрузка учетной записи
IBMQ.load_account()
provider = IBMQ.get_provider(hub='ibm-q')
backend = least_busy(provider.backends(filters=lambda b: b.configuration().n_qubits >= 5 and not b.configuration().simulator))
# Загрузка существующего задания по ID
job_id = "ВАШ_JOB_ID"
job = backend.retrieve_job(job_id)
pulse_schedule = job.pulse_result() # Гипотетически: Qiskit v0.x для иллюстрации!
# Реальный код может различаться в зависимости от эволюции API
# Анализ графика импульсов по характеристикам энергии и времени
# Построение графика амплитуды импульсов по времени
times, amps = zip(*[(e.start_time, e.amplitude) for e in pulse_schedule.instructions])
plt.plot(times, amps)
plt.title("Трассировка графика импульсов")
plt.xlabel("Время")
plt.ylabel("Амплитуда")
plt.show()
Примечание: Вышеуказанное является иллюстративным; в реальном мире использование требует корректной версии Qiskit и API вызовов.
Общественные квантовые сервисы IBM позволяют пользователям измерять время выполнения заданий. Наблюдая за этими временными метками, злоумышленник может сделать вывод:
Шаги атаки:
Отправка нескольких квантовых заданий и измерение времени их выполнения:
import time
from qiskit import QuantumCircuit, IBMQ, execute
IBMQ.load_account()
provider = IBMQ.get_provider(hub='ibm-q')
backend = provider.get_backend('ibmq_quito')
# Создание схем: одна с мощными дверями, другая только с дверями Адамара
circuits = [
QuantumCircuit.from_qasm_str("OPENQASM 2.0; ..."), # Мощная схема
QuantumCircuit.from_qasm_str("OPENQASM 2.0; ...") # Простая схема
]
timings = []
for qc in circuits:
start = time.time()
job = execute(qc, backend, shots=1024)
job_result = job.result()
end = time.time()
timings.append(end - start)
print(f"Время для мощной схемы: {timings[0]}s")
print(f"Время для простой схемы: {timings[1]}s")
Шаг анализа: Используйте статистические или модели машинного обучения для отображения наблюдаемых временных рамок на типы схем, выполненных другими пользователями.
Техники квантового сенсинга — гипер-чувствительные магнетометры, атомные дефекты и т.д. — могут подслушивать сигналы и мощность с беспрецедентным разрешением.
SCA-QS (Атаки через побочные каналы с использованием квантового сенсинга) привносит квантовую метрологию в кибер-наступление, позволяя атаки следующего поколения:
Пример:
Злоумышленник, используя квантовый сенсор вблизи дата-центра квантовых данных, может разрешить модуляцию импульсов на линиях кубитов, извлекая частные данные вычислений с гораздо меньшим шумом, чем при традиционной ЭМ-подслушке.
Предположим, у вас есть логи квантовых заданий, содержащие трассировки управляющих импульсов, сохраненные на локальном уровне. Вот как можно просканировать события импульсов на наличие подозрительных паттернов (например, указания на нетривиальный алгоритм):
import re
def parse_pulse_log(filename):
pattern = re.compile(r"GATE\s+(\w+),\s*start:(\d+),\s*duration:(\d+)")
with open(filename) as f:
lines = f.readlines()
for line in lines:
match = pattern.match(line)
if match:
gate, start, duration = match.groups()
print(f"Дверь: {gate} | Начало: {start} | Длительность: {duration}")
# Использование
parse_pulse_log("sample_pulse_log.txt")
Простой Bash конвейер для grep лога импульсов, содержащего многокубитные двери:
cat pulse_log.txt | grep -E 'CNOT|CCX|Toffoli' | awk '{print $1, $2, $3}'
Этот скрипт сканирует на наличие многокубитных дверей, которые обычно утекут больше информации о алгоритмической сложности.
Наличие квантовых побочных каналов означает, что защиты должны быть проактивными.
Пример реализации защиты:
Для рандомизации времени, вводите искусственные задержки или заполнение в облачное выполнение (добавляет накладные расходы, но маскирует паттерны от злоумышленников).
Превосходное вычислительное обещание квантовых вычислений омрачается их новыми, глубокими рисками безопасности — побочными каналами, основанными на мощности, времени и физических управляющих импульсах. Недавние исследования (Sun et al., ACM Quantum Leak и программы SCA-QS) доказывают, что злоумышленники часто могут вы...
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.