Проект “Entropy”
От: Mikhail Chashchin Норвегия  
Дата: 26.04.05 15:49
Оценка: 85 (5)
Статья:
Проект “Entropy”
Автор(ы): Mikhail Chashchin
Дата: 26.04.2005
Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.


Авторы:
Mikhail Chashchin

Аннотация:
Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.
Re: Проект “Entropy”
От: MarW https://www.wincatalog.com
Дата: 27.04.05 09:37
Оценка: 7 (1)
Здравствуйте, Mikhail Chashchin, Вы писали:

MC>Вопросы:

MC>Что может служить источником энтропии?

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

Из минусов, бросающихся в глаза, стоит отметить ограниченность ввода. Например сервер, на котором работают раз в пол года будет иметь ряд ограниченной длины...
WinCatalog — Disk Catalog Software for Windows
Re[2]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 27.04.05 09:47
Оценка:
Здравствуйте, MarW, Вы писали:

MW>Здравствуйте, Mikhail Chashchin, Вы писали:


MC>>Вопросы:

MC>>Что может служить источником энтропии?

MW>Первое, что приходит в голову — это протоколирование и преобразование пользовательского ввода (мышь+клавиатура). Таким образом мы имеем достаточно хороший источник энтропии, так как пользователь уникально перемещает мышь по экрану и уникально жмет на кнопки (сочетание букв, скорость нажатий и прочая доступная информация).


Мышь движется не совсем непредсказуемо. Последующие положения зависят от предыдущих. Правда можно опрашивать мышь с какой-то задержкой или, например, двинулся вверх — 0y, вниз — 1y, влево — x0, вправо — x1. На каждое движение — два бита.
С кнопками другая проблема — некоторые используются чаще других. Скорость нажатия скорее всего действительно непредсказуема, но как её получить в С#?

MW>Из минусов, бросающихся в глаза, стоит отметить ограниченность ввода. Например сервер, на котором работают раз в пол года будет иметь ряд ограниченной длины...


То бишь, это непостоянный источник. Будет запасным, тогда
Re[3]: Проект “Entropy”
От: Chardex Россия  
Дата: 27.04.05 10:03
Оценка: 8 (2)
Здравствуйте, Mishka, Вы писали:

MC>>>Вопросы:

MC>>>Что может служить источником энтропии?
Может температурный датчик (например датчик сети 1-Wire)?
Ну или веб камера?
Re[4]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 27.04.05 10:14
Оценка: 6 (1)
Здравствуйте, Chardex, Вы писали:

MC>>>>Что может служить источником энтропии?

C>Может температурный датчик (например датчик сети 1-Wire)?

Не плохая идея, а он на всех компьютерах имеется или нужны специальные устройства/драйвера?

C>Ну или веб камера?


Особенно если она в интернете, тогда можно получить постоянный поток данных. Две вещи: где найти хорошую, постоянно меняющуюся картинку, как её обработать, чтобы убрать вещи, повторяющиеся из кадра в кадр?


Я набросал каркас для генератора, который использует звук из LineIn. Там постоянно что-то да шумит, даже если ничего не подключено.
Сейчас разберусь с SVN и выложу файлы на сайт.
Re[5]: Проект “Entropy”
От: Chardex Россия  
Дата: 27.04.05 10:26
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Здравствуйте, Chardex, Вы писали:


MC>>>>>Что может служить источником энтропии?

C>>Может температурный датчик (например датчик сети 1-Wire)?

M>Не плохая идея, а он на всех компьютерах имеется или нужны специальные устройства/драйвера?


Можно через USB или COM порт подключить. А вообще много разных датчиков есть для этой сети. Есть уже написанная обертка для .NET. Вообщем, подключаешь датчик (~70 р.) в спец. адаптер для COM порта (~800 р.), устанавливаешь драйвера. Все. Сам пробывал — все работает. Даже написал свой сервис, которой собирает информацию и пишет в базу.
Кстати, на один адаптер можно вешать сколько хочешь датчиков.
C>>Ну или веб камера?

M>Особенно если она в интернете, тогда можно получить постоянный поток данных. Две вещи: где найти хорошую, постоянно меняющуюся картинку, как её обработать, чтобы убрать вещи, повторяющиеся из кадра в кадр?


Не знаю где найти хорошую
Дома стоит WebCam XP — там есть функция определения движения. Не знаю как она работает, но наверное, можно просто сравнивать картинки и отбрасывать одинаковое.
Re[6]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 27.04.05 10:42
Оценка:
Здравствуйте, Chardex, Вы писали:

C>Можно через USB или COM порт подключить. А вообще много разных датчиков есть для этой сети. Есть уже написанная обертка для .NET. Вообщем, подключаешь датчик (~70 р.) в спец. адаптер для COM порта (~800 р.), устанавливаешь драйвера. Все. Сам пробывал — все работает. Даже написал свой сервис, которой собирает информацию и пишет в базу.


Надо будет посмотреть на данные...

C>Не знаю где найти хорошую


В инете их должно быть полно. Другая вещь — это streaming video, но это источник уж очень ресурсоёмкий. Надо будет копать в сторону Media Player SDK и DirectX...
Re[7]: Проект “Entropy”
От: Gmoorick Россия  
Дата: 27.04.05 11:47
Оценка:
Где то читал, что Intel для генерации случайных чисел выпустила или собиралась выпустить материнские платы со встроенным температурным датчиком. Если они это сделали, то вот вам готовый источник данных.
Re[8]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 27.04.05 12:02
Оценка:
Здравствуйте, Gmoorick, Вы писали:

G>Где то читал, что Intel для генерации случайных чисел выпустила или собиралась выпустить материнские платы со встроенным температурным датчиком. Если они это сделали, то вот вам готовый источник данных.


Есть такое:
http://www.intel.com/design/chipsets/manuals/298029.htm
http://www.intel.com/design/software/drivers/platform/security.htm


Самым лучшим источником является счётчик Гейгера Продаётся тут http://www.blackcatsystems.com/GM/geiger.html. Но дорого и к тому же хорошо работает только при наличии чего-то радиоактивного. Ребята с HotBits его используют.
Re: Проект “Entropy”
От: little_alex  
Дата: 27.04.05 12:29
Оценка:
Здравствуйте, Mikhail Chashchin, Вы писали:

А что вы понимаете под фразами:
коэффициент энтропии

усиливающий энтропию

Зачем нужен генератор? Клиент сам легко нарежет случайную последовательность бит на числа...

Еще нужно отределится что важнее быстрый неблокирющий поток (например для моделирования Монте-Карло) или очень
качественный (в смысле слабых корреляций и прочего) для криптографии . /dev/random или /dev/urandom
Re[2]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 27.04.05 13:24
Оценка:
Здравствуйте, little_alex, Вы писали:

_>Здравствуйте, Mikhail Chashchin, Вы писали:


_>А что вы понимаете под фразами:

_>
_>коэффициент энтропии
_>

_>
_>усиливающий энтропию
_>


Вот здесь есть описание программы ent: http://www.random.org/essay.html. Она считает энтропию. Как, я пока не знаю, но надеюсь узнать в ближайшем будущем. Увеличение этого параметра ведёт к улучшению качества случайных чисел.

_>Зачем нужен генератор? Клиент сам легко нарежет случайную последовательность бит на числа...


Может и не нужен. Но по крайне мере маленький класс надо бы написать, чтобы он не биты выдавал, а byte или int.

_>Еще нужно отределится что важнее быстрый неблокирющий поток (например для моделирования Монте-Карло) или очень

_>качественный (в смысле слабых корреляций и прочего) для криптографии . /dev/random или /dev/urandom

Вопрос в источнике. Моя реализация на основе шума в LineIn выдаёт примерно 12Кб случайных чисел в минуту, что очень мало. Ускорить процесс не получается (пока что).

Но для этого проект и затевается, чтобы разработать хороший многоцелевой генератор, или генераторы В общем, разберёмся по ходу дела.
Re: Проект “Entropy”
От: Pavel Dvorkin Россия  
Дата: 27.04.05 13:26
Оценка:
Здравствуйте, Mikhail Chashchin, Вы писали:

Не будучи специалистом по теории вероятности, все же несколько позволю себе усомниться в необходимости иметь такой датчик. Теория вероятности до сих пор ИМХО без него вполне обходится.

Резюме — хотел бы услышать мнение специалистов по ТВ на этот счет.
With best regards
Pavel Dvorkin
Re[9]: Проект “Entropy”
От: valmond Россия http://blogs.technet.com/valmond/
Дата: 27.04.05 13:38
Оценка:
M>Самым лучшим источником является счётчик Гейгера Продаётся тут http://www.blackcatsystems.com/GM/geiger.html. Но дорого и к тому же хорошо работает только при наличии чего-то радиоактивного. Ребята с HotBits его используют.

А радиактивное всегда есть.
Космическое излучение.
Помню в институте строили нормальное распределение на лабах по показаниям счетчика Гейгера.
Заметки — SharePoint & InfoPath
http://blogs.technet.com/valmond/
Re[10]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 27.04.05 14:15
Оценка:
Здравствуйте, valmond, Вы писали:

M>>Самым лучшим источником является счётчик Гейгера Продаётся тут http://www.blackcatsystems.com/GM/geiger.html. Но дорого и к тому же хорошо работает только при наличии чего-то радиоактивного. Ребята с HotBits его используют.


V>А радиактивное всегда есть.

V>Космическое излучение.
V>Помню в институте строили нормальное распределение на лабах по показаниям счетчика Гейгера.

Скорость будет маленькой на HotBits это очень хорошо расписано.
Re[2]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 27.04.05 14:16
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Mikhail Chashchin, Вы писали:


PD>Не будучи специалистом по теории вероятности, все же несколько позволю себе усомниться в необходимости иметь такой датчик. Теория вероятности до сих пор ИМХО без него вполне обходится.


PD>Резюме — хотел бы услышать мнение специалистов по ТВ на этот счет.


Лучше спросить у криптографов, поскольку они основные потребители истинно-случайных чисел.
Re: Проект “Entropy”
От: Lafkadio Россия  
Дата: 27.04.05 14:16
Оценка: 8 (1)
Могу порекомендовать книгу:
Теория, применение и оценка качества генераторов псевдослучайных последовательностей,
Иванов М.А., Чугунков И.В., Издательство Кудиц-Образ
Re: Проект “Entropy”
От: Аноним  
Дата: 27.04.05 14:18
Оценка:
Здравствуйте, Mikhail Chashchin, Вы писали:

MC>Статья:

MC>Проект “Entropy”
Автор(ы): Mikhail Chashchin
Дата: 26.04.2005
Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.


MC>Авторы:

MC> Mikhail Chashchin

MC>Аннотация:

MC>Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.

ИМХО — танцевать надо отизменений напряжений на проце, его частоты, частоты памяти, частоты железа, скорости вращения вентилятора и т.д. в произвольных комбинациях с максимальной точностью.
Re[2]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 27.04.05 14:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>ИМХО — танцевать надо отизменений напряжений на проце, его частоты, частоты памяти, частоты железа, скорости вращения вентилятора и т.д. в произвольных комбинациях с максимальной точностью.


А как до этих вещей добраться? Некоторые вещи можно через BIOS вытащить, но это чревато...
Re[3]: Проект “Entropy”
От: Аноним  
Дата: 27.04.05 14:36
Оценка: 8 (1)
Здравствуйте, Mishka, Вы писали:

M>А как до этих вещей добраться? Некоторые вещи можно через BIOS вытащить, но это чревато...


Есть ACPI(Advanced Configuration and Power Interface) — поддерживаемый кучей железа и всеми нормальными ОС.
Re: Проект “Entropy”
От: Smarty Россия  
Дата: 27.04.05 16:10
Оценка: 2 (2)
Здравствуйте, Mikhail Chashchin, Вы писали:

MC>Статья:

MC>Проект “Entropy”
Автор(ы): Mikhail Chashchin
Дата: 26.04.2005
Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.


MC>Авторы:

MC> Mikhail Chashchin

MC>Аннотация:

MC>Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.

А не складывается ли ощущение(у меня лично складывается, но может это так... на горячую голову...) что при СЕРЬЕЗНОМ подходе солюшн данной проблемы ТОЧНО не должен быть soft-only. А должен быть hard+soft. Т.е. втыкается нечто флеше-подобное в USB и начинает гнать постоянно и непредсказуемо меняющуюся картинку(как это реализовать — вопрос большой, отдельный и скажем прямо — центральный для всего солюшена, но мы пока архитектуру ваяем, верно?). Ну дальше понятно — софт анализирует это нечто "постоянно меняющееся" -> поток битов -> ... Думается, что при должной реализации подобная связка будет востребована юзерами(а это очень специфические юзеры, далеко не всем это надо) на ура.
Re[2]: Проект “Entropy”
От: valmond Россия http://blogs.technet.com/valmond/
Дата: 27.04.05 16:16
Оценка:
Но если хард будет из того, что есть (выше приводились идеи), то будет все же лучше.

Даже с той точки зрения, что новый хард вставлять в сервер дело не безопасное...кто знает как он работает? Не будет ли проблем с системой? Вообще ко всему, что относится к апгрейду серверов обычно подходят очень аккуратно.
Заметки — SharePoint & InfoPath
http://blogs.technet.com/valmond/
Re[2]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 27.04.05 16:18
Оценка:
Здравствуйте, Smarty, Вы писали:

S>А не складывается ли ощущение(у меня лично складывается, но может это так... на горячую голову...) что при СЕРЬЕЗНОМ подходе солюшн данной проблемы ТОЧНО не должен быть soft-only. А должен быть hard+soft. Т.е. втыкается нечто флеше-подобное в USB и начинает гнать постоянно и непредсказуемо меняющуюся картинку(как это реализовать — вопрос большой, отдельный и скажем прямо — центральный для всего солюшена, но мы пока архитектуру ваяем, верно?). Ну дальше понятно — софт анализирует это нечто "постоянно меняющееся" -> поток битов -> ... Думается, что при должной реализации подобная связка будет востребована юзерами(а это очень специфические юзеры, далеко не всем это надо) на ура.


Гарантировано, 100%, это будет hard/soft решение. Прямо вот в этом топике обсуждается какой именно hard может порождать необходимую "случайность".
Архитектуру тоже можно обсудить. Я здесь картинку накидал, но она не является полной или обязательной.
Если есть конкретные предложения по архитектуре — рассказывай, будем обсуждать (лучше отдельный топик для этого открой).
Re[3]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 27.04.05 16:54
Оценка:
Пока я тут разбираюсь с VCS, вот мой тестовый код:
http://www.rsdn.ru/File/1951/entropy.zip

Несколько вещей:
1. sln находится в директории Solution
2. app.config — содержит конфигурацию. secondsToListen установлен в 60 — лучше поставить поменьше 5 будет в самый раз.
3. lineInNoise.wav — временный файл, в который пишет шум. Откройте "Volume Control" и убедитесь в том, что recording не выключен, установите громкость на максимум. Выберите откуда будете записывать. LineIn — шумит не достаточно хорошо. Я слушаю нечто под названием Wave Out Mix. После работы программы запустите wav-файл и убедитесь, что шум действительно есть.
4. В test.cs замените 1024*1024 на столько байтов сколько вам нужно. Учтите, что скорость работы программы примерно 12Kб/мин.
5. Поместите утилиту ent.exe туда же где находится и главный exe (то бишь скорее всего в Solution/bin/DEBUG).
6. Полученные случайные числа пишутся в entropy.dat
6. Запускайте программу

Если что не работает — пишите, будем разбираться.

P.S. Пока что таким методом я смог получить 0.5Mb чисел с энтропией 7.999 на 8 бит, что приятно
Re[3]: Проект “Entropy”
От: Smarty Россия  
Дата: 27.04.05 17:52
Оценка:
Здравствуйте, valmond, Вы писали:

V>Но если хард будет из того, что есть (выше приводились идеи), то будет все же лучше.


V>Даже с той точки зрения, что новый хард вставлять в сервер дело не безопасное...кто знает как он работает? Не будет ли проблем с системой? Вообще ко всему, что относится к апгрейду серверов обычно подходят очень аккуратно.


Резонно. Но зато здесь встает вопрос: а можно ли подвести все разношерстное "серверо-железо" под некий общий знаменатель, да еще так, что бы знаменатель этот был более-менее вменяемым источником энтропии? Не исключено, но далеко не факт. А в случае "как-бы-флеш-на-USB" у нас есть надежный источник. Совместимость с системой... Да, вопрос большой. Но выпускают же теже флешки, которые без проблем втыкаются хошь в десктопы, хошь в сервера, а то и в ноуты. Так что — решаемо, не без головной боли, конечно, но — решаемо.
Re[3]: Проект “Entropy”
От: Smarty Россия  
Дата: 27.04.05 17:52
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Гарантировано, 100%, это будет hard/soft решение.


Значит угадал.

M> Прямо вот в этом топике обсуждается какой именно hard может порождать необходимую "случайность".

M>Архитектуру тоже можно обсудить. Я здесь картинку накидал, но она не является полной или обязательной.
M>Если есть конкретные предложения по архитектуре — рассказывай, будем обсуждать (лучше отдельный топик для этого открой).

Мне думается архитектура будет сильнейшим образом закорочена на хард. Представим предельный случай: наш источник гарантированно, постоянно и в неограниченных объемах выдает поток реально-случайных бит. Тогда софту просто нечего делать — сесть на поток и транслировать его клиету — тут даже какие-то схемки-диаграммки смешно рисовать. И совсем другое дело если источник таков, что выдает как-бы случайную картинку, но ее еще надо отловить, усилить, выделить реально-случайную состовляющую, конвертнуть ее, проверить... Вот тут да — софту будет где развернутся. Ну и за схемками дело не станет, будут и они. А резюме простое: определяется хардовая составляющая проекта И ПОД НЕЕ чертится(если вообще это надо) архитектура. Такие мысли...

P.S. И кстати говоря, прежде чем приниматься пахать ниву...
Выше был задан резонный вопрос — а так ли оно надо(вообще, исходная идея) как может показаться? Т.е. то, что

Наличие истинно-случайных чисел позволит улучшить результаты экспериментов и как следствие улучшить точность оценки финансовых инструментов...

не вызывает никаких сомнений. Улучшит. Будет ближе к жизни. НО! Если это самое улучшение составит 0.000000001% от применения псевдо-случайных генераторов, то... сами понимаете. Так не будут ли мудрым шагом сначала прикинуть(очень грубо, +/- километр) обещаемое улучшение от внедрения идеи? Более того, интересно даже просто методика такой оценки. Ведь многие потенциальные проги-клиенты этого солюшена могут начать выдавать худшие результаты именно потому, что на вход им начнет поступать более жизненная информация. Не думали об этом?
Re[7]: Проект “Entropy”
От: Chardex Россия  
Дата: 27.04.05 19:07
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Надо будет посмотреть на данные...


Ну, насколько помню, выглядело это так: сотые меняются с интервалом в несколько секунд (15.25, 15.27, 15.25, 15.27, может немного зациклится , 15.30 )
Re[5]: Проект “Entropy”
От: MrOrbit Россия  
Дата: 28.04.05 07:46
Оценка: 9 (1)
C>>Ну или веб камера?

M>Особенно если она в интернете, тогда можно получить постоянный поток данных. Две вещи: где найти хорошую, постоянно меняющуюся картинку, как её обработать, чтобы убрать вещи, повторяющиеся из кадра в кадр?


Вам сюда http://live.grand-prix.ru/.
Логин: guest
Пароль: guest

Пообщайтесь с хозаевами, может они вам и предоставят необходимый поток данных.
Re: Проект “Entropy”
От: RikkiTikkiTavi Россия  
Дата: 28.04.05 09:42
Оценка:
почитал вот я комментарии и обратил внимание, что крайне слабо (на данный момент, конечно) с точки зрения теории вероятности, и, главное, математической статистики
я не выпускник кафедры ТВиМС, но кое-что помню из института
имхо, вот еще над чем стоит подумать:

1)что значит "истинно случайные числа"? как правило, в моделировании нужен генератор чисел, распределенных по определенному закону (как правило, гауссовскому или равномерному; помнится, "белый шум" мы моделировали как раз равномерным распределением)

2)по поводу "усиления энтропии" вспоминается Центральная Предельная Теорема (кажется, так), но это для гауссовского распределения

3)оценивать качество источников и качество самого алгоритма надо, ессно, методами МС (всякие там несмещенные оценки и т.д.)

4)считается, что в природе все случайности описываются как раз гауссовским законом

З.Ы.
это так, на вскидку вспомнилось
Re[2]: Проект “Entropy”
От: SergH Россия  
Дата: 28.04.05 11:21
Оценка:
Здравствуйте, RikkiTikkiTavi, Вы писали:

RTT>почитал вот я комментарии и обратил внимание, что крайне слабо (на данный момент, конечно) с точки зрения теории вероятности, и, главное, математической статистики

RTT>я не выпускник кафедры ТВиМС, но кое-что помню из института

Я тоже, по обоим пунктам

RTT>имхо, вот еще над чем стоит подумать:


RTT>1)что значит "истинно случайные числа"? как правило, в моделировании нужен генератор чисел, распределенных по определенному закону (как правило, гауссовскому или равномерному; помнится, "белый шум" мы моделировали как раз равномерным распределением)


На основе равномерного можно сделать любой другой. Поэтому, имхо, лучше всего генерировать равномерное.

RTT>2)по поводу "усиления энтропии" вспоминается Центральная Предельная Теорема (кажется, так), но это для гауссовского распределения


Причём тут она? Насколько я помню, Центральная Предельная Теорема это о том, что если сложить с десяток различных распределений, получится Гауссовское.

RTT>3)оценивать качество источников и качество самого алгоритма надо, ессно, методами МС (всякие там несмещенные оценки и т.д.)


В соседней ветке есть ссылка на эту тему.

RTT>4)считается, что в природе все случайности описываются как раз гауссовским законом


Не заню, может быть.. Но у моделирования могут быть какие-то свои цели.
Делай что должно, и будь что будет
Re[6]: Проект “Entropy”
От: Chardex Россия  
Дата: 28.04.05 12:41
Оценка:
Здравствуйте, MrOrbit, Вы писали:

MO>Вам сюда http://live.grand-prix.ru/.


Вау! Супер! Я только не пойму, я ей один чтоли управляю?
Re[3]: Проект “Entropy”
От: Михаил  
Дата: 29.04.05 03:38
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Лучше спросить у криптографов, поскольку они основные потребители истинно-случайных чисел.


Конечно, лучше!
У них и решений готовых хватает.
Насколько я помню — самое популярное (конечно, после платы со спец. девайсом) — это шум младших бит аналогового входа звуковой карты. Причем 2-3 самых крайних бита шумят даже у самых навороченных карт. И даже независимо от наличия или отсутствия сигнала на входе. Как, впрочем, и любой другой АЦП шумит (особенно если битов у него много).
Если вырезать больше бит — уже либо пойдут 50 герц или какие другие синусоиды, а может, и совсем ничего.
Конечно, про неты и диезы речи не идет, однако и продукт не совсем для желающих строить кучки по песочницам.

Зы. Вообще, по показанному уровню впечатление возникает такое, что автор проекта желает в большей степени изобрести очередной велосипед в малознакомой (ему) области, чем создать нечто реально популярное.
...А отсюда наливаем, когда рецепт написан совсем неразборчиво...
Re[3]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 29.04.05 08:12
Оценка:
Здравствуйте, SergH, Вы писали:

RTT>>2)по поводу "усиления энтропии" вспоминается Центральная Предельная Теорема (кажется, так), но это для гауссовского распределения

SH>Причём тут она? Насколько я помню, Центральная Предельная Теорема это о том, что если сложить с десяток различных распределений, получится Гауссовское.

Получится нормальное распределение, чем оно и знаменито.
Re[4]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 29.04.05 08:25
Оценка:
Здравствуйте, Михаил, Вы писали:

М>Насколько я помню — самое популярное (конечно, после платы со спец. девайсом) — это шум младших бит аналогового входа звуковой карты. Причем 2-3 самых крайних бита шумят даже у самых навороченных карт. И даже независимо от наличия или отсутствия сигнала на входе. Как, впрочем, и любой другой АЦП шумит (особенно если битов у него много).

М>Если вырезать больше бит — уже либо пойдут 50 герц или какие другие синусоиды, а может, и совсем ничего.

Я выше запостил ссылку на код, там как раз это всё и реализовано. Бесплатно и без дополнительных девайсов.

М>Зы. Вообще, по показанному уровню впечатление возникает такое, что автор проекта желает в большей степени изобрести очередной велосипед в малознакомой (ему) области, чем создать нечто реально популярное.


Реально популярное? Это было бы здорово, но чую, что одному мне не потянуть

На самом деле, получение истинно-случайных чисел, не есть конечная цель для меня. Я хочу написать библиотеку для оценки финансовых инструментов и их рисков. И начинаю я с самого начала — случайных чисел, которые используются почти во всех современных алгоритмах.
Если какую-то часть проекта смогут использовать люди, например, занимающиеся криптографией, то это просто замечательно. Но это не значит, что я буду искать оправдание реализции генератора для других целей, нежели моих собственных.
Re: Проект “Entropy”
От: Gaperton http://gaperton.livejournal.com
Дата: 29.04.05 18:26
Оценка: 9 (1)
Здравствуйте, Mikhail Chashchin, Вы писали:

Есть такие девайсы специальные — генераторы белого шума. Применяются для генерации белого шума.
http://radiolub.org.ru/Spy2/Chapter3/3-4-3.htm

Есть также идеи — брать белый шум с "висячего" входа аудио-карты (микрофона), поставленного на максимальное усиление. С чего можно начать.
Re[4]: Проект “Entropy”
От: SergH Россия  
Дата: 30.04.05 08:58
Оценка:
Здравствуйте, Mishka, Вы писали:

SH>>Причём тут она? Насколько я помню, Центральная Предельная Теорема это о том, что если сложить с десяток различных распределений, получится Гауссовское.


M>Получится нормальное распределение, чем оно и знаменито.


Мне казалось, что Гауссовское это и есть нормальное..
Делай что должно, и будь что будет
Re: Проект “Entropy”
От: Аноним  
Дата: 01.05.05 00:08
Оценка:
А чем не подходят реализации генераторов случайных чисел криптографического качества от MS? Хотя бы та же CryptGenRandom ? Реализована в полном соответствии с американскими стандартами.
Re[2]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 02.05.05 07:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А чем не подходят реализации генераторов случайных чисел криптографического качества от MS? Хотя бы та же CryptGenRandom ? Реализована в полном соответствии с американскими стандартами.


Это псевдослучайные числа. Они специально создаются, чтобы пройти все тесты. Но в них нет никакой случайности, одна закономерность, предписаная алгоритмом.
Re: Проект “Entropy”
От: Brat Латвия  
Дата: 02.05.05 18:05
Оценка:
Здравствуйте, Mikhail Chashchin, Вы писали:


Не знаю читали это или нет, но все же выложу думаю ничего плохого не выйдет. Автор Bruce Schneier, пишет о проблеме сущ пседво генераторов, и прилагает свое решение проблемы.
http://www.schneier.com/yarrow.html
Re[4]: Проект “Entropy”
От: Михаил  
Дата: 03.05.05 03:20
Оценка:
Здравствуйте, Smarty, Вы писали:

S>Здравствуйте, Mishka, Вы писали:


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

Скорее, не выдадут вообще никаких результатов. Не успеют — за время жизни юзера
...А отсюда наливаем, когда рецепт написан совсем неразборчиво...
Re: Физические устройства
От: peterbes Россия  
Дата: 03.05.05 07:32
Оценка:
Здравствуйте, Mikhail Chashchin, Вы писали:

Источник радиоактивного распада — идеальный генератор случайных чисел во все времена, вы в эту сторону не смотрели? Может так статься, что безвредный K-40 и крохотный счетчит Гейгера подойдут для генерации истиннно случайных чисел более всего. Массовое промышленное изготовление подобных девайсов для "дома и семьи" ограничено многочисленными ограничениями ТБ, но для солидных контор такое устройство вполне приемлемо. Может быть я велосипед предлагаю и такие устройства уже есть?
Re[2]: Физические устройства
От: Mishka Норвегия  
Дата: 03.05.05 09:04
Оценка:
Здравствуйте, peterbes, Вы писали:

P>Здравствуйте, Mikhail Chashchin, Вы писали:


P>Источник радиоактивного распада — идеальный генератор случайных чисел во все времена, вы в эту сторону не смотрели? Может так статься, что безвредный K-40 и крохотный счетчит Гейгера подойдут для генерации истиннно случайных чисел более всего. Массовое промышленное изготовление подобных девайсов для "дома и семьи" ограничено многочисленными ограничениями ТБ, но для солидных контор такое устройство вполне приемлемо. Может быть я велосипед предлагаю и такие устройства уже есть?


Есть такой прибор http://www.blackcatsystems.com/GM/geiger.html.
Там же можно и радиоактивные шарики заказать, которые выглядят так

.

Но это дорого.

Потом, уже разработаны алгоритмы для обработки подобных данных. Вот человек из MIT, что пишет: www.ciphergoth.org/crypto/unbiasing

Так что в теории, это было бы идеально, на практике... фиг его знает. Надо создать софт, в который можно всё это без проблем воткнуть, и тогда кому надо, тот и счётчик купит и шарики.
Re[3]: Проект “Entropy”
От: Аноним  
Дата: 03.05.05 11:17
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Это псевдослучайные числа. Они специально создаются, чтобы пройти все тесты. Но в них нет никакой случайности, одна закономерность, предписаная алгоритмом.


The CryptGenRandom function fills a buffer with cryptographically random bytes.
CryptGenRandom генерирует не псевдослучайные числа — один список источников, откуда эта функция берет энтропию, занимает страницу. Для большинства применений (генерация ключей шифрования, например) этого достаточно. Возможно, что для моделирования некоторых процессов качество случайных чисел, выдаваемых этой функцией, будет недостаточным, но тогда использовать 'самодельные' источники нужно с оcторожностью.
Re[4]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 03.05.05 15:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Mishka, Вы писали:


M>>Это псевдослучайные числа. Они специально создаются, чтобы пройти все тесты. Но в них нет никакой случайности, одна закономерность, предписаная алгоритмом.


А>The CryptGenRandom function fills a buffer with cryptographically random bytes.

А>CryptGenRandom генерирует не псевдослучайные числа — один список источников, откуда эта функция берет энтропию, занимает страницу. Для большинства применений (генерация ключей шифрования, например) этого достаточно. Возможно, что для моделирования некоторых процессов качество случайных чисел, выдаваемых этой функцией, будет недостаточным, но тогда использовать 'самодельные' источники нужно с оcторожностью.

CryptGenRandom имеется в Windows XP?
Re[5]: Проект “Entropy”
От: Аноним  
Дата: 03.05.05 15:58
Оценка:
Здравствуйте, Mishka, Вы писали:


M>CryptGenRandom имеется в Windows XP?


Да.
Requirements
Client: Requires Windows XP, Windows 2000 Professional, Windows NT Workstation 4.0, Windows Me, Windows 98, or Windows 95 OSR2 and later.
Server: Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server 4.0.
Redistributable: Requires Internet Explorer 3.02 or later on Windows 95.
Re[6]: Проект “Entropy”
От: Mishka Норвегия  
Дата: 03.05.05 16:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Mishka, Вы писали:

M>>CryptGenRandom имеется в Windows XP?
А>Да.

Нашёл вот это http://blogs.msdn.com/michael_howard/archive/2005/01/14/353379.aspx

То есть состояние системы используется в качестве источника энтропии.
Re[3]: Физические устройства
От: Михаил  
Дата: 04.05.05 02:52
Оценка: 1 (1)
Здравствуйте, Mishka, Вы писали:

M>Так что в теории, это было бы идеально, на практике... фиг его знает. Надо создать софт, в который можно всё это без проблем воткнуть, и тогда кому надо, тот и счётчик купит и шарики.


Кому надо — можно например сюда http://www.ancud.ru/catalog/crypton.htm
в ДСЧ используется тепловой шум в электрической цепи,
который аккуратно усилен, преобразован, протестирован.
...А отсюда наливаем, когда рецепт написан совсем неразборчиво...
Re: Проект “Entropy”
От: andrey.def Россия  
Дата: 05.05.05 06:07
Оценка:
Здравствуйте, Mikhail Chashchin, Вы писали:

MC>Статья:

MC>Проект “Entropy”
Автор(ы): Mikhail Chashchin
Дата: 26.04.2005
Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.


MC>Авторы:

MC> Mikhail Chashchin

MC>Аннотация:

MC>Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.

Проблема знатная,интересная и при этом очень сложная. Здаётся мне, что кроме радиоактивного источника ничего не подойдёт, потому что всё остальные процессы не случайные и не равноверояные, то есть мы сможем получитьс них только ПСП, что ,в принципе, довольно хорошо изучено.
+ Навеяно применением случ послед в крипте: надо сделать так, чтобы никто не смог бы незаметно подецствовать на генератор. Ведь злые дядьки из чужих и не чужих разведок могут ЛЕГКО вмешаться в функциклирование наблюдаемых процессов и при наличии у них сведений о тестах сделать так, чтобы они прошли. а последовательность была бы даже и не ПС.
Могу посоветовать почитать что-нить из Шенона и его пследователей.
У меня были какие-то записи по этому поводу — постараюсь найти.
Re: Проект “Entropy”
От: ZetRooT Россия  
Дата: 06.05.05 12:26
Оценка:
Здравствуйте, Mikhail Chashchin, Вы писали:

MC>Статья:

MC>Проект “Entropy”
Автор(ы): Mikhail Chashchin
Дата: 26.04.2005
Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.


MC>Авторы:

MC> Mikhail Chashchin

MC>Аннотация:

MC>Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.

выскажу чвоё скромное мнение: использовать чтолибо программное — нереально, значит нужно использовать что-то аппаратное. никто не думал насчёт генераторв шума ни интегралках? такие достаточно лего найти, останется лишь протестировать качесво шума которое они предоставляют. вот.
реализация — не обязательно C# можно и на дельфях а кому надо — тот не поленится переведёт. можно и на С/С++.

"Если бы не было колобка, его следовало бы придумать..."

Re: Проект “Entropy”
От: olpa http://xmlhack.ru/
Дата: 06.05.05 21:53
Оценка:
Здравствуйте, Mikhail Chashchin, Вы писали:

MC>Статья:

MC>Проект “Entropy”
Автор(ы): Mikhail Chashchin
Дата: 26.04.2005
Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.


Из статьи:


Для начала подойдёт Д.Кнут, "Искусство программирования", Том 2 "Получисленные алгоритмы", Глава 3 "Случайные числа".
MustRead.ru
Re: Проект “Entropy”
От: LUXOFT  
Дата: 13.05.05 08:54
Оценка:
Здравствуйте, Mikhail Chashchin, Вы писали:

MC>Статья:

MC>Проект “Entropy”
Автор(ы): Mikhail Chashchin
Дата: 26.04.2005
Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.


MC>Авторы:

MC> Mikhail Chashchin

MC>Аннотация:

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

! Прошу ВСЕХ заинтересованных участников проекта ВНИМАТЕЛЬНО посмотреть сюда: http://leo.yuriev.ru/random

Не кажется ли Вам, что достаточно качественный "велосипед" уже давно изобретен и осталось лишь "научиться на нем ездить"?

PS. Yandex, Rambler etc, — COOL ! ?
Re: Проект “Entropy”
От: Demon_Astra  
Дата: 24.06.05 07:41
Оценка:
Здравствуйте, Mikhail Chashchin, Вы писали:

MC>Статья:

MC>Проект “Entropy”
Автор(ы): Mikhail Chashchin
Дата: 26.04.2005
Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.


MC>Авторы:

MC> Mikhail Chashchin

MC>Аннотация:

MC>Данный проект имеет своей целью создание генератора истинно-случайных чисел. Большинство языков программирования предоставляют средства для генерации случайных чисел, в основе которых лежат программные алгоритмы. Такие числа называются псевдослучайными, поскольку они полностью зависят от начальных параметров алгоритмов. Зная алгоритм и начальные параметры можно со стопроцентной точностью определить все сгенерированные числа. Иногда подобной случайности недостаточно.

А не является ли идеальным решением регистр сдвига, генерирующий ПСП. Не столь важным является начальное его состояние, но длина ПСП и время выборки случайной величины (а это по сути также будет случайная величина, если, скажем возложить эту функцию на пользователя) будет играть решающую роль. Во всяком случая характеристики случайной величины, выдаваемой регистром сдвига, не даст ни один реальный источник (и уж тем более звуковая карта).
Re[11]: Проект “Entropy”
От: Аноним  
Дата: 22.07.05 20:47
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Здравствуйте, valmond, Вы писали:


M>>>Самым лучшим источником является счётчик Гейгера Продаётся тут http://www.blackcatsystems.com/GM/geiger.html. Но дорого и к тому же хорошо работает только при наличии чего-то радиоактивного. Ребята с HotBits его используют.


V>>А радиактивное всегда есть.

V>>Космическое излучение.
V>>Помню в институте строили нормальное распределение на лабах по показаниям счетчика Гейгера.

M>Скорость будет маленькой на HotBits это очень хорошо расписано.


Ну вовсе необязательно космическое излучение. Используй изотопный источник. Продается в любых хозтоварах.
Re[4]: Физические устройства
От: Аноним  
Дата: 22.07.05 21:02
Оценка:
Здравствуйте, Михаил, Вы писали:

М>Здравствуйте, Mishka, Вы писали:


M>>Так что в теории, это было бы идеально, на практике... фиг его знает. Надо создать софт, в который можно всё это без проблем воткнуть, и тогда кому надо, тот и счётчик купит и шарики.


М>Кому надо — можно например сюда http://www.ancud.ru/catalog/crypton.htm

М>в ДСЧ используется тепловой шум в электрической цепи,
М>который аккуратно усилен, преобразован, протестирован.

Радиоктивный источник вполне доступен массово. Большинство проблем ТБ уже решена.
Americium-241 в детекторах дыма.
Re: Проект “Entropy”
От: vhonest  
Дата: 17.11.05 19:29
Оценка:
Я где-то слышал, что "самое случайное" явление — это отражение кванта света на полупрозрачном зеркале с коэф. отражения 0.5. Правда ничего не могу сказать о прикладной реализации подобного устройства.
Re[2]: Проект “Entropy”
От: alex_ez Россия alex.jife.ru
Дата: 06.02.06 08:36
Оценка:
Здравствуйте, MarW, Вы писали:

MW>Из минусов, бросающихся в глаза, стоит отметить ограниченность ввода. Например сервер, на котором работают раз в пол года будет иметь ряд ограниченной длины...


Коль уж это сервер — то слушать порты, или то с чем он работает И на что ТОЧНО влияет пользователь.
silence in quite
Re: Проект “Entropy”
От: Аноним  
Дата: 18.10.07 17:28
Оценка:
Истинно-случайные числа — это хорошо, но в 99% задач требуется случайная величина, распределенная по какому-то конкретному закону (скажем, по нормальному, или по Пуассону). Как вы собираетесь сделать такой генератор из истинно-случайных величин?
А вы не видели таких ресурсов, как http://www.agner.org/random/ ?
Re[4]: Проект “Entropy”
От: incoob  
Дата: 23.11.08 11:05
Оценка:
Здравствуйте, Mishka, Вы писали:

M>Пока я тут разбираюсь с VCS, вот мой тестовый код:

M>http://www.rsdn.ru/File/1951/entropy.zip

M>Несколько вещей:

M>1. sln находится в директории Solution
M>2. app.config — содержит конфигурацию. secondsToListen установлен в 60 — лучше поставить поменьше 5 будет в самый раз.
M>3. lineInNoise.wav — временный файл, в который пишет шум. Откройте "Volume Control" и убедитесь в том, что recording не выключен, установите громкость на максимум. Выберите откуда будете записывать. LineIn — шумит не достаточно хорошо. Я слушаю нечто под названием Wave Out Mix. После работы программы запустите wav-файл и убедитесь, что шум действительно есть.
M>4. В test.cs замените 1024*1024 на столько байтов сколько вам нужно. Учтите, что скорость работы программы примерно 12Kб/мин.
M>5. Поместите утилиту ent.exe туда же где находится и главный exe (то бишь скорее всего в Solution/bin/DEBUG).
M>6. Полученные случайные числа пишутся в entropy.dat
M>6. Запускайте программу

А нет ли возможности еще раз выложить этот файл — указанный http://www.rsdn.ru/File/1951/entropy.zip сейчас удален...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.