Так. походу никто и не колышится с этим проектом. ну что ж. начнемс. какие задачи сейчас стоят. как я понимаю необходим истояник энтропии, т.е. исходных данных для генератора.
ясно что программное придумывать — лажа.
тогда остаётся аппаратное.
что в качестве аппаратного? генераторы белого шума. как будем анализировать? у меня есть некоторая разработка (моя) FFTek для спектральной оценки экспериментальных данных. так вот. может её заюзать?
что с генератором белого шума. есть шумящие диоды, транзисторы и т.п. может на них? но использовать только СЧ ВЧ и СВЧ диапазоны, т.к. в НЧ слишком много промышленных наводок. как вам такая идея? жду ответов...
"Если бы не было колобка, его следовало бы придумать..."
Здравствуйте, ZetRooT, Вы писали:
ZRT>Так. походу никто и не колышится с этим проектом.
"Busy, busy, busy... I need a vacation" (Devil, "Constantine")
ZRT>ну что ж. начнемс. какие задачи сейчас стоят. как я понимаю необходим истояник энтропии, т.е. исходных данных для генератора. ZRT>ясно что программное придумывать — лажа. ZRT>тогда остаётся аппаратное. ZRT>что в качестве аппаратного? генераторы белого шума. как будем анализировать? у меня есть некоторая разработка (моя) FFTek для спектральной оценки экспериментальных данных. так вот. может её заюзать?
До дому сегодня доберусь выложу ссылку на мои последние наработки. Там проект на C#, источник энтропии — звуковая карта, которая всегда шумит. Сделана пара отсеивающих алгоритмов и пара алгоритмов статестической проверки полученных данных.
Если есть желание активно поучаствовать, то поставь Tortoise SVN и попроси админов RSDN (AVK в частности — avk(at)rsdn.ru) дать тебе доступ к проекту Entropy.
Что бы желательно сделать:
один источник энтропии есть, пока хватит. Нужно проверить качество полученных случайных чисел. То есть реализовать тесты описанные здесь http://www.rsdn.ru/Forum/Message.aspx?mid=1147280
. Не все, но хотя бы пару.
Далее можно добавить ещё что-нибудь шумящее. Это в одну сторону.
В другую можно начать надстраивать над случайными числами полезную функциональность — например, реализовать алгоритмы получения случайных чисел с заданым распределением (например, алгоритм ziggurat).
Потом над этим я буду строить алгоритмы генерации randow walk c последующей реализацией алгоритмов оценки финансовых инструментов.
Как параллель — можно реализовать библиотеку криптографии.
ZRT>что с генератором белого шума. есть шумящие диоды, транзисторы и т.п. может на них? но использовать только СЧ ВЧ и СВЧ диапазоны, т.к. в НЧ слишком много промышленных наводок. как вам такая идея? жду ответов...
Попробуй то, что я написал. Если есть radio tuner, то настрой на какой-нибудь канал с шумом и включи на полную громкость. Нужны тесты, чтобы проверить полученны числа, без них никуда
Здравствуйте, Mishka, Вы писали:
M>Здравствуйте, ZetRooT, Вы писали:
ZRT>>Так. походу никто и не колышится с этим проектом.
M>"Busy, busy, busy... I need a vacation" (Devil, "Constantine")
ну вот у меня летом 3 месяца отдыха, займусь по полной.
ZRT>>ну что ж. начнемс. какие задачи сейчас стоят. как я понимаю необходим истояник энтропии, т.е. исходных данных для генератора. ZRT>>ясно что программное придумывать — лажа. ZRT>>тогда остаётся аппаратное. ZRT>>что в качестве аппаратного? генераторы белого шума. как будем анализировать? у меня есть некоторая разработка (моя) FFTek для спектральной оценки экспериментальных данных. так вот. может её заюзать?
M>До дому сегодня доберусь выложу ссылку на мои последние наработки. Там проект на C#, источник энтропии — звуковая карта, которая всегда шумит. Сделана пара отсеивающих алгоритмов и пара алгоритмов статестической проверки полученных данных. M>Если есть желание активно поучаствовать, то поставь Tortoise SVN и попроси админов RSDN (AVK в частности — avk(at)rsdn.ru) дать тебе доступ к проекту Entropy.
блин. я в C# полный ноль. я лучше по аппаратной части.
M>Что бы желательно сделать: M>один источник энтропии есть, пока хватит. Нужно проверить качество полученных случайных чисел. То есть реализовать тесты описанные здесь http://www.rsdn.ru/Forum/Message.aspx?mid=1147280
посмотрим. обязательно посмотрим.
M>Далее можно добавить ещё что-нибудь шумящее. Это в одну сторону.
может какое то добавочное устройство? вполне за михерную цену можно реализовать.
M>В другую можно начать надстраивать над случайными числами полезную функциональность — например, реализовать алгоритмы получения случайных чисел с заданым распределением (например, алгоритм ziggurat).
боюсь не скоро. разве что на Дельфи. яж говорю — в C# не подсекаю совсем.
M>Потом над этим я буду строить алгоритмы генерации randow walk c последующей реализацией алгоритмов оценки финансовых инструментов. M>Как параллель — можно реализовать библиотеку криптографии.
ZRT>>что с генератором белого шума. есть шумящие диоды, транзисторы и т.п. может на них? но использовать только СЧ ВЧ и СВЧ диапазоны, т.к. в НЧ слишком много промышленных наводок. как вам такая идея? жду ответов...
M>Попробуй то, что я написал. Если есть radio tuner, то настрой на какой-нибудь канал с шумом и включи на полную громкость. Нужны тесты, чтобы проверить полученны числа, без них никуда
радио то нет. я предлагаю генераторы на транзюке или диоде. можно к линейке звук. карты. или через ацп и по цифре (PCI) в программу... это обязательно на C# может я С++ подучу и на нем? или на Java. а может Дельфи? я могу писать программное обеспечение для PIC16/ это микроконтроллеры такие.
"Если бы не было колобка, его следовало бы придумать..."
Здравствуйте, ZetRooT, Вы писали:
ZRT>блин. я в C# полный ноль. я лучше по аппаратной части.
А есть желание C# поизучать?
M>>Далее можно добавить ещё что-нибудь шумящее. Это в одну сторону.
ZRT>может какое то добавочное устройство? вполне за михерную цену можно реализовать.
Так я то не против. Только я больше по части софта, то есть с паяльником/микросхемами не знаком
Проект можно условно разбить на три части — получение случайных чисел, проверка, использование. Кое как я смог получить звук с карточки. Теперь вот хочу проверку написать.
ZRT>>>что с генератором белого шума. есть шумящие диоды, транзисторы и т.п. может на них? но использовать только СЧ ВЧ и СВЧ диапазоны, т.к. в НЧ слишком много промышленных наводок. как вам такая идея? жду ответов...
Опиши как сделать устройство, запиши полученный шум в бинарный файл. Натравим на это дело тесты и посмотрим на качество шума. Если дело пойдёт, то можно будет прикрутить это устройство на сервер RSDN — пусть шумит на благо проекта
M>>Попробуй то, что я написал. Если есть radio tuner, то настрой на какой-нибудь канал с шумом и включи на полную громкость. Нужны тесты, чтобы проверить полученны числа, без них никуда
ZRT>радио то нет. я предлагаю генераторы на транзюке или диоде. можно к линейке звук. карты. или через ацп и по цифре (PCI) в программу... это обязательно на C# может я С++ подучу и на нем? или на Java. а может Дельфи? я могу писать программное обеспечение для PIC16/ это микроконтроллеры такие.
Давай на С++. Обычную dll c C-ишным интерфейсом. К этому любой сможет подключиться.
Я напишу код для чтения бинарного файла, как источника энтропии. Без физического устройства я ничего не смогу проверить, так что тебе придётся снабжать меня файлами с шумом
Здравствуйте, Mishka, Вы писали:
M>Здравствуйте, ZetRooT, Вы писали:
ZRT>>блин. я в C# полный ноль. я лучше по аппаратной части.
M>А есть желание C# поизучать?
ну было бы неплохо. скажем просто для коллекции знаний.
M>>>Далее можно добавить ещё что-нибудь шумящее. Это в одну сторону.
ZRT>>может какое то добавочное устройство? вполне за михерную цену можно реализовать.
M>Так я то не против. Только я больше по части софта, то есть с паяльником/микросхемами не знаком
зато я знаком. думаю вам в проекте паяльник пригодится. я подумаю на тему шумящих компонентов.
M>Проект можно условно разбить на три части — получение случайных чисел, проверка, использование. Кое как я смог получить звук с карточки. Теперь вот хочу проверку написать.
ZRT>>>>что с генератором белого шума. есть шумящие диоды, транзисторы и т.п. может на них? но использовать только СЧ ВЧ и СВЧ диапазоны, т.к. в НЧ слишком много промышленных наводок. как вам такая идея? жду ответов...
M>Опиши как сделать устройство, запиши полученный шум в бинарный файл. Натравим на это дело тесты и посмотрим на качество шума. Если дело пойдёт, то можно будет прикрутить это устройство на сервер RSDN — пусть шумит на благо проекта
M>>>Попробуй то, что я написал. Если есть radio tuner, то настрой на какой-нибудь канал с шумом и включи на полную громкость. Нужны тесты, чтобы проверить полученны числа, без них никуда
ZRT>>радио то нет. я предлагаю генераторы на транзюке или диоде. можно к линейке звук. карты. или через ацп и по цифре (PCI) в программу... это обязательно на C# может я С++ подучу и на нем? или на Java. а может Дельфи? я могу писать программное обеспечение для PIC16/ это микроконтроллеры такие.
M>Давай на С++. Обычную dll c C-ишным интерфейсом. К этому любой сможет подключиться.
M>Я напишу код для чтения бинарного файла, как источника энтропии. Без физического устройства я ничего не смогу проверить, так что тебе придётся снабжать меня файлами с шумом
окей. в среду съезжу в магазин и собера девайсину тогда. наверное будет шуметь через линейку. тогда придётся отказаться от СЧ, ВЧ, СВЧ. как нить вывернемся. про DLL я подумаю ещё. может мне сразу на Дельфях? это займет ЗНАЧИТЕЛЬНО меньше времени. а сишная может выйти слегка кривоватая, но если что, надеюсь местные помогут
"Если бы не было колобка, его следовало бы придумать..."
Да ещё. Поконсультировался со специалистом. он говорит, что в принципе белый шум, который мы получим — не детерминированная последовательность. так что тесты должны выдать максимум! ну в любом случае — посмотрим!
"Если бы не было колобка, его следовало бы придумать..."
Здравствуйте, ZetRooT, Вы писали:
M>>Так я то не против. Только я больше по части софта, то есть с паяльником/микросхемами не знаком
ZRT>зато я знаком. думаю вам в проекте паяльник пригодится. я подумаю на тему шумящих компонентов.
ZRT>окей. в среду съезжу в магазин и собера девайсину тогда. наверное будет шуметь через линейку. тогда придётся отказаться от СЧ, ВЧ, СВЧ. как нить вывернемся. про DLL я подумаю ещё. может мне сразу на Дельфях? это займет ЗНАЧИТЕЛЬНО меньше времени. а сишная может выйти слегка кривоватая, но если что, надеюсь местные помогут
Лучше всё таки С++, делфи не у каждого есть, чтобы собрать dll. Да и спецов С++ здесь тусуется больше, чуть что помогут. Посмотри, может сразу на С# сможешь Язык-то простой и инфы по нему уйма.
Ты поставил Tortoise SVN? Если нужен пароль для проекта, свисни, я организую.
Я сейчас как раз занимаюсь реализацией аппаратного генератора СЧ, но у меня есть пара идей и по программной части
ZRT>Так. походу никто и не колышится с этим проектом. ну что ж. начнемс. какие задачи сейчас стоят. как я понимаю необходим истояник энтропии, т.е. исходных данных для генератора. ZRT>ясно что программное придумывать — лажа.
Источником энтропии не обязательно должен быть аппаратный генератор. Например, мы можем использовать состояние процессов в Windows, состояние памяти (обычной и виртуальной), количество прерываний в секунду и т.д. При стандартной загрузке системы работает около 20 процессов, состояние которых постоянно меняется. Далее, мы можем подсчитывать временные интервалы между нажатиями клавиш пользователем. Я писал такой код, работающий в фоне и измеряющий это время. Из всего этого можно формировать пул данных, который можно сжимать примитивным архиватором для увеличения энтропии. Для полной случайности можно использовать какую-нибудь хэш-функцию (MD5 или SHA), чтобы убрать остатки корреляции в этом пуле. Про это есть несколько хороших статей, если хотите скину по мылу.
И еще. У меня есть желание поучаствовать в проекте, так что могу принять на себя часть нагрузки.
Здравствуйте, sammy_fr, Вы писали:
_>Я сейчас как раз занимаюсь реализацией аппаратного генератора СЧ, но у меня есть пара идей и по программной части
Добро пожаловать
Любые наработки приветствуются. Ты на чём пишешь?
_>Про это есть несколько хороших статей, если хотите скину по мылу.
Выложи лучше сюда для всеобщего просмотра.
_>И еще. У меня есть желание поучаствовать в проекте, так что могу принять на себя часть нагрузки.
Две вещи: посмотри на то, что у меня уже сделано — www.rsdn.ru/File/1951/Entropy.zip. Если есть желание сделать лучше или всё переписать, я только за И второе, поставь Tortoise SVN. Как только я разберусь как выдавать пароли вышлю тебе на мыло и тогда ты сможешь править код так как считаешь нужным.
Здравствуйте, Mishka, Вы писали:
M>Здравствуйте, sammy_fr, Вы писали: M>Добро пожаловать M>Любые наработки приветствуются. Ты на чём пишешь?
я пишу на C++/MFC/Win32 API. C# & .NET знаю не очень хорошо Но не боги горшки обжигали, ведь правда?
M>Выложи лучше сюда для всеобщего просмотра.
ок
Статья Петера Гуттмана по true-random программным генераторам: http://www.cypherpunks.to/~peter/06_random.pdf
Методы тестирования генераторов (огромная статья, куча методов): http://csrc.nist.gov/rng/SP800-22b.pdf
это две, на мой взгляд, самые интересные статьи. Щас еще покопаюсь и чего-нибудь еще найду.
M>Две вещи: посмотри на то, что у меня уже сделано — www.rsdn.ru/File/1951/Entropy.zip. Если есть желание сделать лучше или всё переписать, я только за И второе, поставь Tortoise SVN. Как только я разберусь как выдавать пароли вышлю тебе на мыло и тогда ты сможешь править код так как считаешь нужным.
Уже скачал и смотрю. А Tortoise SVN — это что? Аналог CVS?
//появился наконец инет. щас напишу логи. кстати, пароль то мона? а куда его толкать?
M>Здравствуйте, ZetRooT, Вы писали:
M>>>Так я то не против. Только я больше по части софта, то есть с паяльником/микросхемами не знаком
ZRT>>зато я знаком. думаю вам в проекте паяльник пригодится. я подумаю на тему шумящих компонентов.
M>
да тут наработки есть но правда наработку я умудрился спалить. вот посмотрю что есть ещё.
ZRT>>окей. в среду съезжу в магазин и собера девайсину тогда. наверное будет шуметь через линейку. тогда придётся отказаться от СЧ, ВЧ, СВЧ. как нить вывернемся. про DLL я подумаю ещё. может мне сразу на Дельфях? это займет ЗНАЧИТЕЛЬНО меньше времени. а сишная может выйти слегка кривоватая, но если что, надеюсь местные помогут
M>Лучше всё таки С++, делфи не у каждого есть, чтобы собрать dll. Да и спецов С++ здесь тусуется больше, чуть что помогут. Посмотри, может сразу на С# сможешь Язык-то простой и инфы по нему уйма.
я на самом деле в душе не *** что такое C#. C++ я как то за недельку подучу, а вот C# — это я даже не знаю. щас вот время появится я это оршанизую. из С++ компиляторов знаком только с С++Builder. но думаю траблов не возникнет.
родилась следующая идея. а что если это дел будет не тачка обрабатывать а собрать такую штучку на Pic16? а по rs232 отсылать данные в тачку. есть след. предложение.
собираем аналоговую шумящую схемку.
далее компараторы генерируют импульсы когда схемка генерирует определённое напряжение. это произойдёт в случайный момент.
затем пик генерирует некую последовательность и отправляет её в тачку.
M>Ты поставил Tortoise SVN? Если нужен пароль для проекта, свисни, я организую.
нет ещё. я ж говорю. инет глючит по полной. а где его качнуть мона? пароль конечно пригодится...
"Если бы не было колобка, его следовало бы придумать..."
Здравствуйте, sammy_fr, Вы писали:
_>Здравствуйте, ZetRooT, Вы писали:
_>Добрый день
_>Я сейчас как раз занимаюсь реализацией аппаратного генератора СЧ, но у меня есть пара идей и по программной части
ZRT>>Так. походу никто и не колышится с этим проектом. ну что ж. начнемс. какие задачи сейчас стоят. как я понимаю необходим истояник энтропии, т.е. исходных данных для генератора. ZRT>>ясно что программное придумывать — лажа. _>Источником энтропии не обязательно должен быть аппаратный генератор. Например, мы можем использовать состояние процессов в Windows, состояние памяти (обычной и виртуальной), количество прерываний в секунду и т.д. При стандартной загрузке системы работает около 20 процессов, состояние которых постоянно меняется. Далее, мы можем подсчитывать временные интервалы между нажатиями клавиш пользователем. Я писал такой код, работающий в фоне и измеряющий это время. Из всего этого можно формировать пул данных, который можно сжимать примитивным архиватором для увеличения энтропии. Для полной случайности можно использовать какую-нибудь хэш-функцию (MD5 или SHA), чтобы убрать остатки корреляции в этом пуле. Про это есть несколько хороших статей, если хотите скину по мылу.
_>И еще. У меня есть желание поучаствовать в проекте, так что могу принять на себя часть нагрузки.
_>Дмитрий
ну во первых это будет жрать достаточно много машинного времени. во вторых — не такие уж и случайные эти изменения состояния. хотя в принципе идея неплохая. но я считаю надо придерживаться чисто природных, т.е. истинно случайных факторов.
"Если бы не было колобка, его следовало бы придумать..."
Здравствуйте, ZetRooT, Вы писали:
ZRT>Здравствуйте, sammy_fr, Вы писали:
ZRT>ну во первых это будет жрать достаточно много машинного времени. во вторых — не такие уж и случайные эти изменения состояния. хотя в принципе идея неплохая. но я считаю надо придерживаться чисто природных, т.е. истинно случайных факторов.
Можно накапливать информацию об изменении состояния системы в некотором пуле, а потом хешировать его или шифровать. Вчера пробовал делать такую штуку: берется стандартный генератор ПСП (rand) и у каждого генерируемого байта устанавливается два бита в 1. Энтропия источника падает, причем довольно резко (с 7.8 бит/байт на 5.1 или около того). Далее, полученная информация разбивается на блоки по 64 бита и каждый блок шифруется DES, причем ключ — это тоже какой-то блок информации от ПСП. Шифрование делается в несколько ступеней и энтропия у источника становится порядка 7.8-7.9. Тест "хи-квадрат" говорит о случайности полученных чисел. Правда я не гонял это на других тестах и не смотрел распределение, но результат говорит о том, что DES легко можно использовать как усилитель энтропии.
Насчет природных факторов... Результат естественно будет хорошим. Кстати, считаю нужным встроить в namespace Entropy.RandomNumbers.EntropySources класс, который будет получать данный от COM-порта, к которому будет подключен источник случайных чисел
Здравствуйте, sammy_fr, Вы писали:
_>Здравствуйте, ZetRooT, Вы писали:
ZRT>>Здравствуйте, sammy_fr, Вы писали:
ZRT>>ну во первых это будет жрать достаточно много машинного времени. во вторых — не такие уж и случайные эти изменения состояния. хотя в принципе идея неплохая. но я считаю надо придерживаться чисто природных, т.е. истинно случайных факторов.
_>Можно накапливать информацию об изменении состояния системы в некотором пуле, а потом хешировать его или шифровать. Вчера пробовал делать такую штуку: берется стандартный генератор ПСП (rand) и у каждого генерируемого байта устанавливается два бита в 1. Энтропия источника падает, причем довольно резко (с 7.8 бит/байт на 5.1 или около того). Далее, полученная информация разбивается на блоки по 64 бита и каждый блок шифруется DES, причем ключ — это тоже какой-то блок информации от ПСП. Шифрование делается в несколько ступеней и энтропия у источника становится порядка 7.8-7.9. Тест "хи-квадрат" говорит о случайности полученных чисел. Правда я не гонял это на других тестах и не смотрел распределение, но результат говорит о том, что DES легко можно использовать как усилитель энтропии.
тоже можно. это можно будет интегрировать в одну библиотеку.
_>Насчет природных факторов... Результат естественно будет хорошим. Кстати, считаю нужным встроить в namespace Entropy.RandomNumbers.EntropySources класс, который будет получать данный от COM-порта, к которому будет подключен источник случайных чисел
можно и не только от ком, но и от line in. тогда будет прощ, и дешевле. можно будет даже на коммерческую основу поставить.
"Если бы не было колобка, его следовало бы придумать..."
Здравствуйте, IIIIIKIROY, Вы писали:
III>neploxoi isto4nik entropii mog bi bit eti Internet Radio. ix mnogo i tam vse vremia kakuyuto rasnuyu xren igrayut.
но там музыка. если даже оценить её просто спектрально, то это далеко не белый шум. так что зная адгорит можно будет предсказать число... не вариант, но было бы прикольно еслиб кто то крутил белый шум по инет радио)
"Если бы не было колобка, его следовало бы придумать..."
Товарищи-участники проекта
Приношу глубочайшие извинения за задержку с выдачей паролей. Сейчас выбиваю из админов RSDN доступ на сервер, чтоб всё это дело настроить, и как только... так сразу
Здравствуйте, ZetRooT, Вы писали:
ZRT>родилась следующая идея. а что если это дел будет не тачка обрабатывать а собрать такую штучку на Pic16? а по rs232 отсылать данные в тачку. есть след. предложение. ZRT>собираем аналоговую шумящую схемку. ZRT>далее компараторы генерируют импульсы когда схемка генерирует определённое напряжение. это произойдёт в случайный момент. ZRT>затем пик генерирует некую последовательность и отправляет её в тачку.
Аппаратное решение всегда лучше софтвёрного — скорость у него повыше будет. Я планирую использовать метод Монте-Карло для реализации некоторых алгоритмов, а ему нужна прорва случайных чисел.
M>>Ты поставил Tortoise SVN? Если нужен пароль для проекта, свисни, я организую.
ZRT>нет ещё. я ж говорю. инет глючит по полной. а где его качнуть мона? пароль конечно пригодится...
Здравствуйте, sammy_fr, Вы писали:
_>Можно накапливать информацию об изменении состояния системы в некотором пуле, а потом хешировать его или шифровать. Вчера пробовал делать такую штуку: берется стандартный генератор ПСП (rand) и у каждого генерируемого байта устанавливается два бита в 1. Энтропия источника падает, причем довольно резко (с 7.8 бит/байт на 5.1 или около того). Далее, полученная информация разбивается на блоки по 64 бита и каждый блок шифруется DES, причем ключ — это тоже какой-то блок информации от ПСП. Шифрование делается в несколько ступеней и энтропия у источника становится порядка 7.8-7.9. Тест "хи-квадрат" говорит о случайности полученных чисел. Правда я не гонял это на других тестах и не смотрел распределение, но результат говорит о том, что DES легко можно использовать как усилитель энтропии.
А у тебя у самого эти алгоритмы реализованы или ты используешь ent.exe?
_>Насчет природных факторов... Результат естественно будет хорошим. Кстати, считаю нужным встроить в namespace Entropy.RandomNumbers.EntropySources класс, который будет получать данный от COM-порта, к которому будет подключен источник случайных чисел