Аппаратный генератор случайных чисел


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

Комментарии
— unknown (19/01/2007 09:30)   
На самом деле это не так легко, как кажется. В любых электроакустических шумах есть гармоники, закономерности и простое хэширование лишь маскирует их недостаточную энтропию. Настоящий электроакустический генератор шума – это инженерно сложное и дорогое устройство, технические и теоретические аспекты которого до конца не проработаны. Поэтому в критически важных приложениях используют радиационные генераторы.

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

Программы от Лео Юрьева: http://leo.yuriev.ru/114

См. также обзор железа и софта[link1],
— RElf (21/01/2007 11:50)   
См. также статью в википедии: http://ru.wikipedia.org/wiki/ГПСЧ
Там есть обзор подобных генераторов.
Гость (21/01/2007 12:42)   
Поправьте ссылку или скажите какое слово там написано.
— RElf (21/01/2007 15:53)   
ГПСЧ написано. Но ссылка и так работает, если кликнуть, это форум ее просто глючно отображает.
— spinore (21/01/2007 17:31)   
Кстати, женщина – разве плохой ГСЧ?
— unknown (22/01/2007 09:54)   
Кстати, женщина – разве плохой ГСЧ?

[offtopic]
Некриптостойкий – она уязвима к множеству атак. Как пассивных, так и активных.
Реклама омолаживающих средств, косметика, подарки, ухаживания.
В общем есть специалисты по взлому[link2], которые знают эти нехитрые секреты.

Или Вы про машинисток, которые в СССР вслепую печатали одноразовые блокноты в эпоху холодной войны? В них (в напечатанных блокнотах) тоже были обнаружены статистические отклонения :-)
[/end offtopic]
— poptalk (29/09/2007 00:26)   
Можно ли прикрутить шумовой wav-файл к GnuPG для генерации ключа? Мне кажется, это, несмотря на все недостатки такого генератора, будет лучше, чем как псих стучать по клавишам.
Гость (29/09/2007 01:57)   
Как говорили классики, "случайность есть непознанная закономерность".

О "неслучайности тонкой структуры распределений (формы гистограмм) результатов измерений процессов разной природы" читайте статью в журнале
УСПЕХИ ФИЗИЧЕСКИХ НАУК, Том 168, N 10[link3] (за Октябрь 1998г.)
Показано, что при последовательных измерениях любых процессов вследствие флуктуаций получают последовательность дискретных величин. Форма соответствующих гистограмм сходна в каждый данный момент для процессов разной природы и изменяется с высокой вероятностью одновременно в разных процессах и при больших расстояниях между лабораториями. В ряду последовательных гистограмм данная гистограмма с высокой вероятностью сходна с ближайшими соседями и повторяется с периодом в 24 часа, 27 суток и около 365 суток. Все это свидетельствует о весьма общей космофизической (космогонической) причине феномена.
Так что вопрос получения истинно случайных последовательностей может оказаться ещё более сложным, чем кажется даже не только на первый взгляд. А астрология может перестать считаться лженаукой и получить научное обоснование.
— poptalk (29/09/2007 02:21, исправлен 29/09/2007 02:32)   
в 24 часа, 27 суток и около 365 суток


Не, ну я не физик, конечно. Человек открыл, что день сменяется ночью (24 часа)?
Гость (29/09/2007 03:03)   
Человек открыл, что день сменяется ночью (24 часа)?

Человек открыл, что процессы, ранее считавшиеся абсолютно случайными (например радиоактивный распад), на самом деле не совсем случайны, и эта неслучайность скорее всего обусловлена космическими влияниями.
Гость (29/09/2007 04:09)   
я сравнивал гистограммы, построенные менее чем за 16 секунд каждая – детализировал суточный ход. Оказалось, что период не 24 часа – солнечные сутки, а 23 часа 56 минут – это звездные сутки. Значит, важна в каждый данный момент картина звездного неба.
Вероятность случайно получить такой результат чрезвычайно мала.

http://www.chronos.msu.ru/RREPORTS/shnol_liki.htm
— SATtva (29/09/2007 21:45)   
Впервые узнал об этом исследовании лет несколько назад, когда его автор рассказывал о нём в ночной программе Александра Гордона. Кажется вполне предсказуемым, что картина гравитационного взаимодействия и облучения поверхности планеты объектами космоса должна вызывать закономерные корреляции в, казалось бы, случайных явлениях.
— cooshoo (30/09/2007 09:10)   
должна вызывать закономерные корреляции в, казалось бы, случайных явлениях.
Если придираться к словам – все-таки в показаниях датчиков. Я бы поставил сто к одному, что космический фон влияет на датчики, а не на сам процесс радиоактивного распада.
Гость (30/09/2007 12:53)   
Я бы поставил сто к одному, что космический фон влияет на датчики, а не на сам процесс радиоактивного распада.

Готов принять вашу стваку. Называйте сумму и условия выплаты.
Гость (30/09/2007 13:02)   
космический фон влияет на датчики, а не на сам процесс
И даже если это и так, всё равно, поскольку аппаратный генератор случайных чисел это датчик, числа на выходе получаются "не совсем" случайные!
Гость (30/09/2007 13:19)   
Вообще конечно интересно, как можно отличить ситуацию, если окажется, что любые датчики (не исключая и органы чувств) совершенно одинаково реагируют на такое влияние?
— cooshoo (30/09/2007 15:47)   
Могу внятно ответить лишь на последний вопрос. Оценить влияние на датчики в зависимости от местоположения (например высокогорная лаборатория и шахты с нейтринными детекторами). Сравнить показания датчиков (число актов распада) с показаниями других датчиков в другое время (концентрация продуктов распада).
ЗЫ. Мусирование вопроса о "не совсем случайности" мало связано в практикой. Какая разница, Имеет ключ AES 256 или 200 случайных бит, если он все равно передается при помощи DH/ElGamal со стойкостью порядка 2128. Аналогично если запихнуть тысячебитовую строку в SHA-1 или что-то из семейства SHA-2. Никакие малые закономерности взломщику не помогут.
Гость (30/09/2007 19:50)   
Оценить влияние на датчики в зависимости от местоположения (например высокогорная лаборатория и шахты с нейтринными детекторами). Сравнить показания датчиков (число актов распада) с показаниями других датчиков в другое время (концентрация продуктов распада).

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

С криптографической, вероятно, да. ( Правда некоторых тут ещё интересует и теория :) А вот написать программу, которая по шумам звуковой карты определяет время суток (или даже делает астрологический прогноз на основе корреляций формы гистограм с расположением планет) может быть и стоило бы попробовать.
Гость (30/09/2007 20:21)   
написать программу

Трудности тут могут возникнуть при попытке написания алгоритма для кластеризации гистограмм без участия человека.
PS
А польза для криптографической (стеганографической) практики, как тут уже отмечалось, может состоять в аргументированном ответе на вопрос "оппонента" о причинах наличия у вас на диске больших массивов случайных данных. ;)
— poptalk (30/09/2007 20:46)   
Трудности тут могут возникнуть при попытке написания алгоритма для кластеризации гистограмм без участия человека.


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

Или солнечные часы всё-таки лучше?
Гость (30/09/2007 21:22)   
Некоторые даже находят зависимости случайности от общего настроения!
Global Correlations in Random Data[link4]
We have learned that when millions of us share intentions and emotions the GCP/EGG network shows correlations[link5].
— unknown (01/10/2007 09:20)   

Можно ли прикрутить шумовой wav-файл к GnuPG для генерации ключа? Мне кажется, это, несмотря на все недостатки такого генератора, будет лучше, чем как псих стучать по клавишам

Есть реализации, где случайные данные из звуковых процесов подкачиваются в пул энтропии Linux /dev/random.


http://www.vanheusden.com/aed/
http://www.linuxfromscratch.or.....ds/files/entropy.txt[link6]

А в общем случае схема может быть такой:

1) Померить разность фаз между стереоканалами и накопить первичный буфер наименьший значащий разряд.

2) Тестировать блоки из первичного буфера быстрыми стат. тестами (например на сжатие). Отбросить блоки, не прошедшие тест. Если слишком много блоков не прошло тест – выдать сигнал аварийного завершения (звуковвая карта сгорела, модуль драйвера не загрулился после перезагрузки и т.д.)

3) Сделать первичную фильтрацию: отбросить пары одинаковых битов (00, 11), заменить пары различающихся битов (01->0 10->1). Это позволит убрать простейшую парную корреляцию.

4) Сделать дистилляцию случайности: хэшировать большие блоки данных из пункта 3, получая на выходе блоки меньших данных.

Есть более сложные методы (например пункт 3 не даёт постоянный битрэйт, а иногда это требуется в сетевом/потоковом шифровании)

Есть масса исследований на тему "Randomness extraction"
Гость (01/10/2007 10:44)   
разность фаз между стереоканалами

Если это запись выступления ансамбля, то обычно исполнители не бегают по сцене, и разность фаз не будет случайной (а даже если и бегают, то с конечной скоростью). Может лучше просто последний разряд?
— unknown (01/10/2007 12:08)   
Если это запись выступления ансамбля, то обычно исполнители не бегают по сцене, и разность фаз не будет случайной (а даже если и бегают, то с конечной скоростью). Может лучше просто последний разряд?

Разность в младших разрядах двух каналов.

Запись выступления ансабля не подойдёт. На вход карты лучше подать шумы диодов или воткнуть микрофон, подвешенный над вентилятором кулера системного блока
— poptalk (01/10/2007 15:05)   
Есть реализации, где случайные данные из звуковых процесов подкачиваются в пул энтропии Linux /dev/random.
wwwhttp://www.vanheusden.com/aed/
wwwhttp://www.linuxfromscratch.....ds/files/entropy.txt

Спасибо. Примерно это и нужно. Осталось установить Linux. :)
— unknown (01/10/2007 16:17)   
Осталось установить Linux. :)

Ну или платите разработчикам или пользуйтесь шароварами:

http://leo.yuriev.ru/113

Ссылки
[link1] http://www.std.com/~reinhold/truenoise.html

[link2] http://en.wikipedia.org/wiki/Womanizer

[link3] http://www.psn.ru/ep/shnoll/shnoll.shtml

[link4] http://noosphere.princeton.edu/

[link5] http://noosphere.princeton.edu/results.html#alldata

[link6] http://www.linuxfromscratch.org/hints/downloads/files/entropy.txt