Ученые разработали генератор случайных чисел на основе ДНК. Они синтезировали цепи из случайно расположенных нуклеотидов и после их секвенирования получали последовательности чисел, которые проверяли на случайность. Работа опубликована в Nature Communications.
Генераторы случайных чисел активно используются в шифровании и дешифровании информации для того, чтобы гарантировать безопасность передачи данных: чем дальше развиваются технологии криптографии, тем более совершенные генераторы случайных чисел необходимы. На данный момент существует два типа генераторов, которые принципиально отличаются друг от друга.
Первый — генераторы истинно случайных последовательностей, которые используют непредсказуемые данные какой-то физической системы. Например, это может быть дробовой шум, радиоактивный распад или квантовый вакуумный шум. Все эти процессы случайны и генерируют истинно случайные последовательности. Сложность только в том, чтобы такой генератор реализовать и получать случайные числа с высокой частотой.
Генераторы псевдослучайных чисел, в свою очередь, не нуждаются в сложной физической реализации, потому что основаны на сложных математических алгоритмах. Псевдослучайная последовательность отличается от истинно случайной тем, что первую можно вычислить, если знать все входные параметры для ее генерации, а вторую нельзя ни при каком условии.
Помимо физических явлений случайность могут определять и некоторые химические реакции. Группа ученых во главе с Робертом Грассом (Robert N. Grass) из Швейцарской высшей технической школы Цюриха предложила использовать в качестве источника случайных чисел реакцию синтеза цепи ДНК.
Авторы исследовали нити ДНК, которые состояли из случайной последовательности и праймеров с двух сторон от нее. Часть со случайной последовательностью состояла из 64, а вся цепочка содержала 105 нуклеотидов. В эксперименте использовали три партии по 204 микрограмма высушенной ДНК от двух разных производителей: ученые считывали последовательность нуклеотидов и отбрасывали те цепочки, в которых часть с праймера не совпадала с заданной и выявляли тренды, которые возникали в случайной части последовательности.
Оказалось, что во всех образцах процентное содержание гуанина и тимина больше, чем содержание аденина и цитозина. Кроме этого, если концентрации аденина и цитозина постоянны вдоль всей случайной цепочки, то количество гуанина убывает, а тимина — возрастает в направлении от 5′ до 3′. Первая особенность может быть связана с тем, что концентрации разных строительных блоков может отличаться в пределах одного микролитра. Тем не менее, возникновение одного и того же тренда в трех разных партиях скорее всего говорит о том, что его причина кроется в разной эффективности связывания разных нуклеотидов.
Второй тип неоднородности по направлению цепочки может быть связан с трансверсией (заменой) гуанина на тимин. Дело в том, что гуанины, которые дольше находились в среде синтеза, прошли большее число стадий окисления и при репликации ДНК могут быть заменены на тимин.
Наличие любых зависимостей внутри случайной последовательности делает ее менее случайной, поэтому любые тренды стараются избегать или устранять. Ученые решили избавляться от нежелательных зависимостей уже в пост-обработке последовательности, потому что попытки вмешаться в процесс синтеза могут сделать его неустойчивым и дать еще более непредсказуемые результаты.
Для проверки качества случайной последовательности используют набор из 15 статистических тестов на двоичных последовательностях. Поэтому авторы устанавливали правило, по которому считанная цепочка кодирует двоичный код (аденин и цитозин — 0, гуанин и тимин — 1). Они тестировали последовательность сразу после считывания, а успешный результат получали не для всех тестов.
Недостаток полученной последовательности связан с теми зависимостями, которые возникали при синтезе ДНК, поэтому ученые обрабатывали сырую последовательность с помощью алгоритма Фон Неймана: из последовательностей 10 или 01 брали только первое значение, а второе отбрасывали, а последовательности 00 и 11 отбрасывали целиком. Итоговый набор чисел сильно укорачивался, но успешно проходил все 15 тестов на случайность и показывал отличное вероятностное распределение.
ДНК как физическая основа генератора случайных чисел может хранить информацию долгое время и из-за своих небольших размеров удобна для транспортировки. Авторы показали возможность получения случайных чисел со скоростью выше 225 гигабит в секунду с помощью такой реализации. Несмотря на то, что исследования по снижению затрат на синтез и чтение все еще ведутся, использование ДНК в качестве генератора случайных чисел возможно уже сегодня.
Физики с разных сторон подходят к созданию генератора истинно случайных чисел. Один из самых естественных путей в этом направлении — использование квантовых процессов, которые сами по себе обладают неопределенностью. Так, российские физики построили генератор случайных чисел, в основе которого лежит поглощение фотонов атомами фотоумножителей и получили скорость генерации выше 75 мегабит в секунду.
Оксана Борзенкова