Траектория движения элементов хаотического маятника — повторений нет

Случайные числа играют важнейшую роль в криптографии. Например, алгоритмы формирования электронно-цифровых подписей используют именно случайные числа для формирования ключей. И требования к этим числам весьма строгие, поскольку надежность системы шифрования данных напрямую от них зависит. К сожалению, реально случайные числа получить сложно, хотя и возможно, поэтому обычно для решения этой задачи используются генераторы псевдослучайных чисел. Так называют алгоритм, который генерирует последовательность чисел элементы которой независимы друг от друга и подчиняются заданному распределению.

Но есть и компании, которые решают задачу иначе — они используют генераторы true-случайных чисел. Это вовсе не компьютерные программы, а необычные устройства или даже так называемые лавовые лампы. Именно их использует компания Cloudflare — примерно с 2017 года. В течение пяти лет надежность шифрования трафика, который проходит через инфраструктуру компании, зависит от ламп, а также маятников и процесса радиоактивного распада урана. Подробности — под катом.

Псевдослучайные числа — не слишком надежны



То есть как — надежны, конечно, но все же это не полная случайность. А компьютер по определению не может генерировать полностью случайные числа, поскольку число состояний системы ограничено. Оно очень большое, но не бесконечное, соответственно, рано или поздно формируется паттерн, периодичность, которая является слабым местом криптографической системы на базе псевдослучайных чисел. Конечно, «поймать» и проанализировать такой паттерн крайне сложно, почти невозможно, особенно, если генератор псевдослучайных чисел хороший. Но теоретически такая возможность существует, а значит, криптографическая система на базе псевдослучайных чисел уязвима.

При формировании псевдослучайных чисел основную роль играет ключ. Структуру такого генератора можно представить в виде конечного автомата, память которого состоит из трех основных блоков:

• Память, в которой хранится информация о состоянии генератора.
• Выходная функция, которая генерирует бит ключевой последовательности в зависимости от состояния.
• Функция переходов, которая задает новое состояние, в которое переходит генератор на следующем шаге.

Генераторов псевдослучайных чисел много, только более-менее известных несколько тысяч. Многие компании для шифрования данных используют собственные криптостойкие алгоритмы генерации псевдослучайных чисел. Но как бы надежны они ни были, эти алгоритмы, теоретически злоумышленник может узнать последовательность генерируемых чисел и получить доступ к данным.

Некоторым компаниям, вроде Cloudflare, непозволительно допустить даже в теории взлом шифруемых данных, поэтому приходится искать другие варианты, альтернативы генераторам псевдослучайных чисел. Хорошим источником true-случайных числе являются физические явления. Это могут быть шумы детектора событий распада радиоактивных элементов, космическое излучение, либо визуальные образы. Например, распознавание формы «лавы» в лава-лампе. Эти лампы — бесконечный источник случайных чисел, так что шифрование на их основе теоретически безопасно.

Несколько источников случайности


Прежде, чем перейти к самим лампам, упомяну еще один важный момент — даже источник случайных чисел не является стопроцентной гарантией безопасности шифруемых данных. Дело в том, что злоумышленник каким-то образом может получить доступ к источнику или источникам, и, соответственно, получить ключ к дешифровке закодированных данных. Кроме того, представим, что злоумышленник получает возможность модифицировать источники истинной случайности, влияя, таким образом, на генерацию чисел в своих целях.



Для того, чтобы решить и эту проблему, используется несколько источников случайности. Например, их три. Если даже два из них злоумышленнику удастся каким-то образом использовать в своих целях, то третий, оставшийся независимым от этого фактора, будет генерировать истинно случайные числа и дальше. Соответственно, хорошее решение — смешение нескольких потоков входящих данных от источников случайных чисел. Можно использовать также микс генераторов псевдослучайных чисел с источниками истинно случайных чисел.

Ну и теперь, наконец, переходим к лампам.

Да что за лампы там такие?



Как и говорилось выше, это лава-лампы, которые известны многим из нас. Это прозрачная стеклянная емкость с прозрачной жидкостью и полупрозрачным окрашенным парафином. Снизу расположен источник света и тепла, как правило, лампа накаливания, которая нагревает жидкость, парафин, что приводит поднятию и опусканию вещества. Кто видел такую лампу, знает, насколько необычно она выглядит.

Одна из особенностей лампы в том, что из-за огромного количества внешних факторов и их взаимодействия формы парафиновых «капель» никогда не повторяются. Это как снежинки, которые, как считается, всегда уникальны, сколько бы их ни формировалось в облаке.

Ну а распознавание изображений, видео или фото таких ламп, соответственно — идеальный источник истинно случайных чисел. Информация с систем распознавания изображений подается в криптографически стойкий генератор псевдослучайных чисел, который использует компания, благодаря чему трафик шифруется ну очень надежно.


В офисе Cloudflare есть отдельная стена, на которой стоит 128 лава-ламп. Эту стену в компании называют «стеной энтропии», и, наверное, справедливо. Это как раз источник энтропии. На стену направлен объектив камеры, которая делает фотографии с определенным интервалом. Пикселям на фото присваивается числовое значение, в результате чего и генерируются случайные числовые последовательности. 128 ламп дают возможность получать абсолютно случайные 128-битные числа. На формируемые числа влияние оказывает огромное количество факторов, включая тень, проходящий мимо стены посетитель (если кто там был, можно собой гордиться — вы стали частью инструмента шифрования данных).


На схеме показана система источников случайных чисел в компании и шифрование на основе всего этого. Кроме такого источника, как лампы, есть еще один — у сервера, который установлен в офисе компании. В одном из дата-центров есть еще один источник энтропии, так что всего у Cloudflare три источника случайных чисел (используются, насколько известно, еще и генераторы псевдослучайных чисел).

Лампы играют в этом всем очень важную роль — они являются гарантией того, что данные будут продолжать шифроваться и останутся недоступными для злоумышленника даже в том случае, если серверы будут скомпрометированы.

А что, если каким-то образом влиять на лампы?


На самом деле, возможностей воздействия не так мало:
• Злоумышленник может направить камеру на стену из ламп, пытаясь добиться идентичной «картинки» с той, что формирует камера в офисе компании.
• Злоумышленник может отключить лампы или закрыть объектив камеры.
• Злоумышленник может подменить видеопоток.
• Взломщик может взломать офисный сервер, изменяя выходные данные энтропийной ленты этого сервера.


На самом деле, поскольку есть другие источники энтропии, то проблемы нет — данные все равно шифруются. Ну а представить себе злоумышленника, который одновременно смог воздействовать на лампы, серверы и т.п. — крайне сложно. По словам компании — невозможно. Единственная проблема — это если взломщику удастся запустить зловредный код, который повлияет на службу, которая производит окончательный «поток энтропии».

Ну и да, у Cloudflare есть еще офис в Лондоне, где камера снимает движения сразу трех хаотических маятников, а в Сингапуре источником случайных чисел служит счетчик Гейгера, который замеряет показатели радиоактивного распада крохотной пробы урана. Способы обработки первичных данных меняются, но принцип остается тот же.

В целом, решение компании хотя и не уникальное, но весьма удачное. Ведь кроме того, что она получила надежную защиту для трафика, проходящего через серверы Cloudflare, так еще и внимание к себе привлекает. Посетители офиса компании с лампами приходят в восторг вот уже несколько лет. Молодцы, что и говорить.

Комментарии (16)


  1. TheMrWhite
    08.07.2022 08:23
    +1

    Существуют ли случаи, когда злоумышленникам удалось взломать какую-либо систему, использующую генератор псевдослучайных чисел? и нанести серьёзный ущерб, угадав последовательность генерируемых чисел?


    1. Lazytech
      08.07.2022 08:48

      1. TheMrWhite
        09.07.2022 10:11
        +2

        К сожалению, здесь описаны уязвимости, но ни одного примера успешной атаки. Есть мнение, что хоть в теории это и возможно, на практике пока никому не удалось. Мало знать алгоритм, нужно ещё знать исходные данные, которые использовались в момент генерации ключа для цели.



  1. HappyGroundhog
    08.07.2022 09:11
    +2

    Посетители офиса компании с лампами приходят в восторг вот уже несколько лет.

    А посетители офиса с ураном просто светятся от счастья!

    Я так понимаю, они используют эти случайные данные как иницилиализирующие значения для ПДСЧ. Интересно, они как-то проводят проверку их случайности по известным методикам?


    1. D03ER
      08.07.2022 11:04

      Главное, чтобы сотрудники офиса с маятниками не заколебались


  1. tooler
    08.07.2022 09:27
    +7

    На иллюстрации видно, что четыре лампы находятся в состоянии парафиновой запутанности.


    1. vadvol
      08.07.2022 19:19

      Всё дело в пузырьках (с)


  1. tormozedison
    08.07.2022 16:37

    Лавовые лампы — понятно, уран — понятно. Но маятник? Его колебания предсказуемы ведь.


    1. v1vendi
      08.07.2022 21:55

      Двойной маятник - хаотичная система. При различии начальных параметров на доли процента через минуту два маятника будут полностью рассинхронизированы


    1. eimrine
      09.07.2022 22:53

      Колебания двойного маятника крайне непредсказуемы. Малейшие флуктуации, типа разных степеней смазки подшипника между маятниками у разных установок, вызывают сильное изменения траектории.


  1. antiquar
    08.07.2022 18:38

    Интересно, не проявляется ли при использовании радиоактивного распада для ГСЧ эффект Мизры-Судоршана ("квантовый парадокс Зенона").


  1. Squoworode
    08.07.2022 19:17
    +1

    Главное при повторении системы - не перепутать маятник с метрономом.

    Видео: сто метрономов аннигилируют энтропию


    1. VT100
      08.07.2022 23:06

      А что там квантового? Общее нежёсткое основание и — всё.


  1. VT100
    08.07.2022 23:07

    На формируемые числа влияние оказывает огромное количество факторов, включая тень, проходящий мимо стены посетитель (если кто там был, можно собой гордиться — вы стали частью инструмента шифрования данных).

    Лава-лампы можно атаковать создавая известные паттерны в движении за стеной.


  1. belch84
    08.07.2022 23:47

    Вот динамо Рикитаке — электромеханическая динамическая система с хаотическим поведением, описывается системой дифференциальных уравнений
    image

    Очень небольшое различие в начальных условиях
    image
    приводит к серьезному изменению поведения решения

    Динамо Рикитаке, графики первой компоненты решения
    image

    Это можно использовать для нужд криптографии