Проект “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 и начинает гнать постоянно и непредсказуемо меняющуюся картинку(как это реализовать — вопрос большой, отдельный и скажем прямо — центральный для всего солюшена, но мы пока архитектуру ваяем, верно?). Ну дальше понятно — софт анализирует это нечто "постоянно меняющееся" -> поток битов -> ... Думается, что при должной реализации подобная связка будет востребована юзерами(а это очень специфические юзеры, далеко не всем это надо) на ура.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.