Как стать автором
Обновить

Генератор случайных чисел на базе неопределённого поведения состояния гонки

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров4.9K
Всего голосов 11: ↑11 и ↓0+11
Комментарии20

Комментарии 20

Компьютер представляет собой выражение алгоритма.

Это ведь просто набор слов? От перестановки существительных хуже не становится:

  • Алгоритм представляет собой выражение компьютера.

  • Выражение представляет собой алгоритм компьютера.

  • ...еще 3 варианта

Тогда встаёт логичный вопрос - для чего тогда вообще нужен этот
инструмент, если он говорит о том, что псевдослучайная
последовательность проходит тест на случайность? Это нужно для того,
чтобы быть уверенным в правильном распределении бит, чтобы
разрабатываемый ГСЧ не оказался слишком слабым.

То есть выясняем статистические свойства гаммы, а перед этим проводим с ней манипуляции типа суммирования по модулю, чтобы эти стат. свойства нормализовать? Логичный вопрос тут - какого черта?

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

Согласен. Автор преувеличивает сложность получения случайных хисел. По крайней мере в нашем, теплом мире) Тепловой шум есть везде, и его оцифровать несложно.

Алгоритм представляет собой выражение компьютера.; Выражение представляет собой алгоритм компьютера.; ...еще 3 варианта

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

То есть выясняем статистические свойства гаммы, а перед этим проводим с
ней манипуляции типа суммирования по модулю, чтобы эти стат. свойства
нормализовать? Логичный вопрос тут - какого черта?

Да. В качестве примера те же датчики шума кулера, которые могут часто выдавать повторяющиеся блоки, что в чистом виде сводило бы на нет их практическое использование в качестве ГСЧ. Алгоритмы накладываемые на сырую гамму способны улучшить её посредством определённых этапов "сжатия". Также и в описываемом мной ГСЧ, происходит сжатие блоков посредством их суммирования.

И главное - зачем всё это? Есть потребность в могучем потоке случайных
чисел - расскажите какая, интересно же. Производство случайных штука
дорогостоящая? Так поясните насколько, вот только не приводите в пример цену атомной электростанции, нерелевантно.

Дорогостоящая. Чтобы получить хорошее качества гаммы, становится необходимым объединение сразу нескольких источников энтропии - нескольких ГСЧ. Так например, крайне рискованно использовать один генератор и надеяться на то, что он будет выполнять свою роль всегда и безотказно хорошо. Некоторые датчики могут со временем приходить в негодность, некоторые могут барахлить в зависимости от условий эксплуатации, среды выполнения, некоторые требуют активности самого человека и т.д.

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

Потребность в могучем потоке случайных чисел действительно имеется. Сейчас все компьютеры, а точнее операционные системы, имеют внутри себя реализацию/реализации КСГПСЧ, потому что ГСЧ работают крайне медленно для настоящего времени. Проблема необходимости в постоянной генерации случайных чисел заключается в большей мере криптографическими особенностями. Необходимость генерировать случайные Nonce, подписывать передаваемые сообщения, использовать случайные векторы инициализации, генерировать асимметричную пару ключей и т.д. Эти механизмы работают постоянно и автономно, но они требуют всегда хорошего качества случайности. Если бы существовали недорогие ГСЧ, которые генерировали бы гамму быстро и при этом она являлась ещё бы и качественной, то многие КСГПСЧ стали бы просто ненужны. А так, в конечном итоге, мы переводим проблему случайности на псевдослучайные генераторы. В некоторых случаях даже КСГПСЧ могут быть сомнительным решением, допустим при генерации тех же асимметричных ключей. Тем не менее, последнее работает почти везде.

Как там обстоит со встроенными в процессоры физическими ГСЧ?

Ровно также как с шумом кулеров или другими физическими "карманными" ГСЧ. Процессор не может взять вне рамок себя какие-то случайные явления кроме состояния регистров в определённый промежуток времени, уровень своей нагруженности и т.д. В этом и состоит сложность, что в конце концов любое случайное явление должно относиться к физическому представлению, а последнее в свою очередь должно пытаться генерировать качественную меру неопределённости. Не исключение и ГСЧ на базе состояния гонки, где таковой, исходя из алгоритма, всё равно перенаправляет основные свои действия на манипуляцию с аппаратурой, а именно с тем как поступит CPU или GPU при параллельной записи в одну область памяти.

Разные процессорные ядра могут тактироваться от своих, независимых, генераторов. И не синхронизированных. Такой генератор обычно представляет собой умножитель частоты с ФАПЧ (PLL), и соответственно фаза такого генератора может колебаться и зависеть от многих факторов. Как и скорость исполнения инструкций процессорными ядрами может различаться. Даже если формально умножитель частоты абсолютно одинаково настроен для двух ядер и цепь ФАПЧ тактируется одним общим системным генератором. Из этого можно что-то получить.

Впрочем, многоядерная система не обязательна. Достаточно любой системы где есть умножение частоты и доступен любой второй, другой, генератор. Или же просто есть два разных генератора.

Другое дело, что получить может там можно всего лишь единицы бит в секунду. Потому бессмысленно.

Статья написана с ипользованием ChatGPT, видимо.

Ровно такие же условия будут действовать с ураном и распадом атомов, если нам будут известны все возможные неизвестные переменные - местоположение атомов, частиц, их скорости, столкновения и т.д. Чисто теоретически, если это всё станет возможным, то ГСЧ регрессирует до ГПСЧ

Нет, там истинная случайность, обусловленная законами квантовой физики. Все известные нам данные говорят именно об этом.

Есть какая-нибудь ссылка на квантовые вычисления в процессорах настоящего времени? Я не исключаю, что такого не может быть, но если таковые присутствуют, то скорее всего они генерируют гамму крайне медленно. Иначе это шло бы в противоречие с существованием специализированных QRNG, которые выходят в свет несмотря на новшества процессоров. Нашёл такую статью с Intel'ом https://en.wikipedia.org/wiki/RDRAND, но о каких-либо квантовых вычислениях речи не идёт (сам источник конечно тоже не ахти).

Не понимаю вопрос. В процессорах настоящего времени никаких квантовых вычислений нет.

Если честно, я в точности не знаю, как устроены ГСЧ Intel, но они наверняка используют тепловой шум. В целом, это очень хороший источник случайности. Шум этот создают движения атомов, если начать закапываться еще глубже, пытаясь их просчитать то можно уперется и в квантовые явления, они есть в этом шуме.

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

А извиняюсь, почему-то я подумал вообще про вопрос по поводу процессора. Тут уже я туплю. На счёт распада атомов урана я возможно также погорячился, потому как там также действительно присутствуют гамма-кванты при распаде. Тем не менее, вопрос скорее остаётся в том, что распад испускает гамма-кванты, но является ли сам распад квантовым явлением, полностью непредсказуемым, как это должно происходить со стороны квантовой механики (потому как существуют иные, неквантовые частицы)?

но является ли сам распад квантовым явлением, полностью непредсказуемым, как это должно происходить со стороны квантовой механики

Да, именно так утверждает современная наука.

По крайней мере, спонтанный распад радиоактивных изотопов. В атомном реакторе процессы более сложные, но там же все начинается со спонтанного распада...

Возникает очень интересный вопрос - исходя из ваших, что чем случайней генерируемое число,тем больше вычислений т.е. энергии надо затратить на генерацию этого числа, то получается при квантовой истинно случайном генерации на кажде истно случайное изменение состояния тратится бесконечное кол-во энергии?! И также вопрос выполнения закона сохранения информации - генератор псевдо случайной поледвательности фактически НЕ генерит новой инфмации, и закон выполняется, но вот квантовый генератор (например на тепловом шуме или распаде) уже другое дело - он привносит в систтему новую иформацю будь то компьютер или наша вселенная?

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

На самом деле такой ГСЧ вовсе не генератор случайных чисел, а скорей генератор хаоса (https://ru.wikipedia.org/wiki/Динамический_хаос). Такой генератор представляет из себя детерминированную систему с очень большим числом состояний и она лишь внешне выглядит случайной, но внутри есть свой очень сложный порядок. Хаотические системы отличаются тем, что малейшее внешнее воздействие, вроде вариаций температуры чипа или окружающих электромагных полей могут кардинально и практически не предсказуемо изменить состояние. Что в общем-то и происходит. Поэтому, условно, такой генератор можно считать генератором случайных чисел.

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

Есть опасность, что генератору случайных чисел можно навязать состояние внешними электромагнитными полями, флуктуациями на шине питания и т.п. Например, генераторы хаоса способны синхронизировать своё скрытое состояние: https://www.chuacircuits.com/synchronization.php

Мне кажется, что даже квантовые явления можно рассматривать как псевдо-случайный процесс, потому что там свои "ячейки" и базовые операции.

Пока что все существующие опыты по проверке неравенства Белла говорят о том, что в квантовом мире процессы истинно случайны.

неравенства Белла про другое - оно о том, что существует дальнодействие и запутанность. Оно даже не доказывает, что дальнодествие быстрее света. Суть в том, что дальнодействие (нелокальность волновой ф-ии) вносит в измерения некоторых параметров на удаленых приборах запутанных частиц дополнительную корреляцию в измеряемые велчины, которая не может быть объяснена в классической механике.

АБСОЛЛЮТНАЯ Случайность квантовых процессов вроде бы постулируется изначально в КМ. И вроде по серьезному это никто не проверял. Так как генерация параметров чем случайней, тем больше надо энергии на вычисления (пусть даже эту энергию тратит Бог!), то абсолютная случайность требует бесконечной энергии - это выглядит как синглярность в черной дыре... но что делать - придется привыкать... если верить в верность КМ.

Простите, пропустил комментарий. Запутанность в этой истории, безусловно, присутствует. Однако случайность vs предопределенность за счет скрытых параметров присутствует тоже. Потому как математика квантовой механики основана на предположении о случайности и предсказывает что совпадение других некоммутирующих (так сказать незапутанных) параметров у запутанных частиц будет с вероятностью 1/2, а теория скрытых параметров - не менее 5/9.

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

да, например в случае разложения на простые числа или популярные элиптические кривые - возможно мы просто не знаем формулы. А возможно и абсолютная случайность (АС). Отличе имхо том, что в абсолютно случайно пследовательности обязтельно содержится целиком Война и Мир, а вот не в абсолютноее можети не быть вовсе. Т.е. АС генерит вннутрь нашей всселенной новую инфрмацию, а ГСПЧ - нет.

тоже возможно, всё ведь относительно

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории