Британские инженеры научились использовать кристаллизацию для получения настоящих случайных чисел и повышения надежности шифрования.
Если вы попробуете назвать серию любых случайных чисел, у вас ничего не получится. Уже многократно было продемонстрировано, что в любом составленном человеком ряду можно найти определенные закономерности. Но истинно случайных чисел не выдаст и компьютер, который использует для этого специальные алгоритмы: выдаваемые ими числа точнее называть псевдослучайными.
Такие числа активно используются, например, в криптографии, и понимание «отклонений от чистой случайности» может дать злоумышленникам важнейший ключ для взлома зашифрованных данных. Поэтому для некоторых особо защищенных систем инженеры находят источники случайных чисел в природе, используя датчики температуры, движения, шума, радиоактивного распада.
Например, в системе Lavarand генерация случайных чисел производится на основе снимков нескольких «лавовых ламп» и движения полужидких капель в масле. А Лерой Кронин (Leroy Cronin) и его коллеги из Университета Глазго нашли еще один нестандартный подход к задаче — и в качестве источника случайных чисел использовали кристаллы. Об этом они пишут в статье, опубликованной в журнале Matter.
В самом деле, кристалл характеризуется высокой упорядоченностью, однако сам процесс кристаллизации из жидкого раствора происходит как череда случайных событий. Невозможно предсказать точно ни момент его начала, ни темпы роста кристалла, ни массу дефектов, возникающих в структуре. Поэтому Лерой Кронин с соавторами использовали емкость с насыщенным раствором соли и следили за ростом кристаллов с помощью обычной веб-камеры.
Хаотическую картинку роста система автоматически превращала в последовательность нулей и единиц и формировала из них случайные числа. Ученые зашифровали слово crystal! («кристалл!») с использованием этих чисел, а также с помощью псевдослучайных чисел, сгенерированных одним из популярных алгоритмов. На обратную расшифровку в первом случае потребовалось куда больше времени.
Однако авторы планируют сделать свою систему более устойчивой к взлому. Для этого в процесс будет внесено еще больше элементов случайности: например, за счет проведения химических реакций перед кристаллизацией. Кроме того, прототип может быть миниатюризирован и адаптирован для использования в самых обычных персональных компьютерах — по крайней мере, теоретически.