Спустя 42 года после изобретения квантовой криптографии, человечество наконец-то доросло до её применения. В преддверии ежегодного мероприятия "Цифровая индустрия промышленной России" (ЦИПР) на официальной страничке в Интернете появилась публикация об успешном тестировании оборудования квантового распределения ключей для защиты информационной инфраструктуры. До текущего момента математика была основой криптографии, но никак не физика с её квантовой неопределённостью, но абсолютной надёжностью передачи ключа.
Новость о тестировании квантового распределения ключей (КРК) на базе ТЭК России (топливно-энергетический комплекс) у меня, как у бывшего криптографа, вызвала самый неподдельный интерес. Сообщение подкупало ещё и тем, что помимо ПАО "НОВАТЭК" новой технологией криптозащиты заинтересовались два гиганта российской экономики: ПАО "Газпром" и ОАО "РЖД". Что примечательно, необходимое оборудование для нового типа криптозащиты разрабатывает и поставляет российская компания АО "ИнфоТеКС".
До текущего момента к квантовым компьютерам и в целом к квантовой физике я относился весьма скептически, хотя разговоры о том, что вычислительные мощности новых машин полностью сведут на нет криптографическую стойкость существующих алгоритмов шифрования, были, но оставались пока только гипотезой. Основой критографии всегда была математика. Однако, появление КРК вводит в сферу защиты информации ещё и физику.
Квантовая физика предлагает принципиально иной подход к защите данных. В отличие от классической криптографии, где стойкость шифрования базируется на математической сложности, квантовая криптография использует фундаментальные законы природы, а процесс передачи ключа становится абсолютно надёжным. По началу может показаться, что квантовое распределение ключей чем-то похоже на классическую систему шифрования с открытым ключом RSA, популярную в банковском сегменте. Похоже, но не совсем. В квантовом варианте секретный ключ вырабатывается с учётом законов квантовой физики.
Давайте спустимся на мой уровень - уровень простого обывателя и попробуем поговорить о новой системе шифрования простым языком, ответим на самый главный вопрос: что такое квантовое распределение ключей (КРК)? и как на практике создаются и передаются квантовые ключи, какие алгоритмы и протоколы лежат в основе этой технологии.
Квантовое Распределение Ключей.
Для организации канала обмена зашифрованной информацией сначала надо создать и передать получателю секретный ключ. Немного напоминает RSA. Но в системе с открытым ключом вся стойкость шифрования основана на сложности разложения большого числа на простые множители. Классическому, обычному компьютеру на это потребуются невероятно много времени, возможно, несколько тысяч лет, что делает такую систему шифрования практически надёжной.
Квантовые компьютеры, благодаря своей гигантской вычислительной мощности, уже сейчас способны решить задачу факторизации - разложения натурального числа на простые множители - за вполне разумное время. Это в свою очередь, ставит под угрозу метод шифрования с открытым ключом, а надёжность, основанная на сложности вычислений, перестаёт быть гарантированной.
Квантовая криптография не исключает математику, а усиливает её законами физики. Проще говоря, КРК — это метод для абсолютно безопасной передачи самого ключа шифрования, основанный на принципах квантовой механики. Что важно - в КРК для передачи ключа используются не электрические импульсы, а фотоны. Запомним это.
Теперь о принципах квантовой механики.
Этих принципов всего два. Несмотря на их пугающие названия, они довольно простые:
- Теорема о запрете клонирования. Смысл теоремы в том, что нельзя создать идеальную копию неизвестного квантового состояния. То есть злоумышленник, перехватывая фотон для изучения. не может создать его точную копию.
- Принцип неопределенности Гейзенберга: Сам процесс измерения перехваченного фотона неизбежно изменяет его состояние. Любая попытка злоумышленника перехватить и измерить фотон, чтобы узнать закодированную в нём информацию, с высокой вероятностью исказит его первоначальное состояние.
Именно эти два принципа гарантируют безопасное формирование квантового ключа. Попытка перехвата хотя бы одного бита (одного фотона) сразу же выдаёт злоумышленника и сигнализирует абонентам о том, что секретный ключ скомпрометирован, использовать его нельзя.
Что нужно для работы КРК?
Не так много. Всего два канала и проверка собеседника.
Первый канал - физический или квантовый. По нему передаются одиночные частицы света — фотоны.
Второй канал - классический для общения. Он нужен для последующего обсуждения и согласования полученных данных.
Проверка собеседника - аутентификация - необходима, чтобы отличить его от злоумышленника.
Сердце КРК.
С самой простой, технической частью мы разобрались. Теперь настало время обсудить, как работает само КРК. Сейчас полезем в дебри квантовых алгоритмов.
Итак, сердцем любого КРК является алгоритм - строго определённая последовательность действий, которым следуют наши легальные абоненты. Для простоты изложения назовём их А - Аня и Б - Боря.
Для Ани и Бори в 1984 году Чарльз Беннетт и Жиль Брассар придумали первый протокол (алгоритм) квантового распределения ключей. Этот протокол получил название BB84 - первые две буквы образованы от фамилий авторов, а 84 - это год создания протокола. Спустя 42 года человечество наконец-то доросло до этого алгоритма и стало внедрять его в криптографические системы защиты информации. В марте этого года авторы были удостоены премии Тьюринга, её ещё называют "Нобелевской премией в мире IT".
Теперь основой квантовой криптографии является BB84.
Как работает BB84 шаг за шагом.
Шаг 1. Подготовка.
Аня генерирует случайную последовательность битов (0 и 1). Перед отправкой каждого бита Боре она их "записывает" в фотон хитрым способом (кодирует). Для этого у Ани есть два способа кодирования, их ещё называют базисы. Для простоты назовём эти базисы крестиком "х" и плюсиком "+".
Аня случайным образом выбирает один из базисов. Каждый базис - это два квантовых состояния фотона. Одному состоянию соответствует 0, а другому - 1.
Иными словами, Аня в каждый фотон может "записать" один бит — 0 или 1. Но записать можно двумя разными способами - базисами.
Если совсем объяснять на пальцах, то давайте представим себе два способа, которыми можно нарисовать стрелку:
- Базис "+": если мы нарисовали стрелку вверх, то пусть это означает бит 0, а если стрелку вправо — это 1.
- Базис "×": стрелку нарисовали по диагонали влево-вверх, то пусть это будет бит 0, стрелку нарисовали по диагонали вправо-вверх — это 1.
Аня для каждого фотона, который отправляет Боре, случайно наугад выбирает, каким базисом пользоваться — плюсиком или крестиком. И так же случайно выбирает, какой бит (0 или 1) ему передать.
Пример:
- Готовим фотон №1. Случайно выбрали базис "+", отправляем бит 0 - значит, в канал уйдёт стрелка вверх.
- Фотон №2: случайно выбрали базис "×", отправляем бит 1 - значит, в канал уйдёт стрелка вправо-вверх.
- Фотон №3: базис "+", бит 1 - значит, в канал уйдёт стрелка вправо.
И так далее.
Важно то, что Аня записывает или запоминает всё, что она сделала.
Шаг 2. Передача.
Аня отправляет Боре все подготовленные фотоны, каждый из которых находится в определенном квантовом состоянии (наши условные стрелки).
Аня по очереди посылает фотоны с теми стрелками, которые у неё получились. Фотоны летят по каналу, например, по оптоволокну или даже открытому, воздушному, и попадают на приёмник к Боре.
Шаг 3. Измерение.
Боря, получив все фотоны от Ани, не знает, какой именно базис она использовала для кодирования. Но он знает эти два базиса - плюсик и крестик. Поэтому Боря для расшифровки наугад, случайным образом выбирает базис для измерения каждого фотона. Если Боря угадал базис правильно, он с высокой вероятностью получит бит, который отправила Аня.
Пример:
- Аня для фотона использовала: базис "+", отправляла бит 0, то есть к Боре ушла стрелка вверх.
- Боря, получив фотон, наугад выбрал "+". Он видит стрелку вверх, использует базис плюсик и получает бит 0. Совпало.
Если Боря ошибётся, то есть выберет базис крестик "×", хотя Аня использовала "+", то его измерение даст случайный результат. Стрелка вверх в базисе "×" не имеет никакого смысла, значит Боря запишет у себя 0 или 1 с 50% вероятностью.
Шаг 4. Сверка результатов.
После того как все фотоны отправлены и измерены, Аня и Боря созваниваются по обычному открытому каналу, условно - телефону, и сообщают друг другу, в каких базисах они отправляли и принимали каждый фотон. Те биты, где базисы не совпали, отбрасываются.
Здесь важно отметить, что Аня сообщает Боре только названия базисов, но не значения битов, которые отправляла.
Пример:
"Для фотона №1 я использовала "+", а ты? — А я "×". Для фотона №2: я "+", ты "+". И так далее.
Где базисы совпали — те фотоны оставляют. Где не совпали — выбрасывают — они не годятся, потому что у Бори там получился шум.
В итоге у собеседников остаётся последовательность битов, где оба использовали одинаковые базисы. Кстати, эти биты совпадают, потому что при совпадении базисов Боря измерил фотоны правильно и правильно определил биты.
Шаг 5. Проверка на подслушивание.
Допусти, что существует злоумышленник. Назовём его В - Вася, который хочет незаметно подслушать о чём говорят Аня с Борей.
Вася не знает, в каком базисе измерять перехваченные фотоны. Измерив фотон, он отправит Боре уже изменённый фотон, а может, и не отправит, хотя в хороших системах Вася вынужден его переслать, чтобы не быть обнаруженным.
Согласно принципу Гейзенберга, о котором мы говорили чуть выше, из-за измерений Васи некоторые из фотонов, где базисы у Ани и Бори совпали, окажутся испорченными — Боря получит не тот бит, который отправила Аня.
Чтобы проверить не было ли прослушки Аня и Боря должны сравнить биты, которые они у себя оставили после проверки. Но сравнивают они не все биты, а лишь небольшой кусочек своих совпавших битов.
Например, выбирают 100 штук и открыто сравнивают их по телефону. Если хоть один бит не совпал — значит, была попытка подслушивания, весь ключ небезопасен. Они выбрасывают всё и начинают процесс с самого начала.
Если все сравниваемые биты сошлись — то с большой вероятностью Васи не было. Это гарантируют принципы квантовой физики. Оставшиеся неоглашённые совпавшие биты можно считать секретным ключом.
Я, конечно, погорячился, сказав, что из-за одного несовпавшего бита всё выбрасывают. Конечно нет. На практике при передачи фотон может исказиться случайно, без участия Васи. Поэтому допускается до 10% - 11% "испорченных" битов. Чтобы ключ содержал одинаковые биты у Ани и Бори, они переходят к следующему шагу - согласования.
Шаг 6. Согласование и финальный ключ.
Если ошибок немного, стороны используют алгоритмы для исправления неточностей в оставшихся битах (согласование), а затем на полученной последовательности специальным алгоритмом вырабатывают конечный секретный ключ.
BB84 — лишь фундамент. На его основе и параллельно с ним разработано множество других протоколов. Для примера приведу два наиболее простых и тоже основанных на законах квантовой физики.
Протокол E91. Он базируется на квантовой запутанности. Алгоритм использует пары фотонов, которые связаны друг с другом. Изменение состояния одного фотона мгновенно влияет на состояние другого, независимо от расстояния между ними. Это обеспечивает дополнительный уровень проверки при попытке подслушивания.
Протокол CV-QKD. Алгоритм построен не на дискретных свойствах фотона, например, поляризации, а на непрерывных характеристиках, таких как фаза и амплитуда электромагнитного поля. Поэтому применение этого протокола должно гарантировать более высокую скорость генерации ключей.
Генерация случайной последовательности.
В классической криптографии для шифрования используются так называемые последовательности псевдослучайных чисел. Числа таких последовательностей вырабатывает специальный математический алгоритм. На выходе этого алгоритма получается последовательность чисел, близкая к случайной. То есть в ней сложно заметить связь между числами или группой чисел.
В КРК для генерации начальной последовательности битов из которых будет создаваться секретный ключ используют квантовые генераторы случайных чисел (КГСЧ). В отличие от псевдослучайных последовательностей, получаемых математическими алгоритмами, КГСЧ используют фундаментальную неопределенность квантовой механики, например, время прихода одиночных фотонов на детектор. Так создаётся действительно непредсказуемая последовательность битов.
Кодирование информации в фотонах.
В описании BB84 мы говорили о том, как Аня посылает Бори фотоны, условно называя их нарисованными стрелками. На практике всё происходит несколько иначе. Информация - наши биты 0 или 1 - соответствуют различным свойствам фотонов.
Как правило, это поляризация, фаза и время прихода фотона.
Поляризация -это направление колебаний электромагнитной волны. Например, горизонтальное и вертикальное направление. Каждому можно присвоить значение 0 или 1.
Фаза - это сдвиг волны относительно опорного (основного) сигнала. Здесь также сдвигу можно присвоить значение 0 или 1.
Достижения России в квантовой криптографии.
Помимо успешных тестов КРК, проводимых ОАО "РЖД", оператором связи "Билайн", а теперь и ТЭК, учёные в России испытали систему для беспроводной передачи квантового ключа в открытом пространстве на расстояния до 3,1 км. То есть теперь с беспилотникамами, к которым оптоволоконный кабель никак не подключить, можно поддерживать надёжно защищённую связь. Другое применение - квантово-защищенные сети для мобильных коммуникаций, включая зашифрованный чат и обмен файлами.
Итог.
В моём понимании квантовое распределение ключей — это метод усиления классических алгоритмов шифрования. Этот метод построен на фундаментальных законах физики и не ограничивается только лишь математическими алгоритмами и верой в недостаток вычислительных мощностей злоумышленника.
По сути КРК решает главную задачу криптографии — абсолютно безопасную передачу и согласование секретного ключа между абонентами. Я искренне рад, что новая технология нашла своё применение в наших отечественных критически важных отраслях.
Благодарю Вас за прочтение и потраченное время.
Помочь умственному развитию автора можно здесь.
На что собираются деньги написано здесь.