Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
Статья и реализация - Генератор истинно случайных чисел на основе шума звуковых карт 03.05.02 13:57 Число просмотров: 4450
Автор: Serge3 Статус: Незарегистрированный пользователь Отредактировано 03.05.02 16:25 Количество правок: 3
|
Здравствуйте,
Несколько комментариев к Вашей статье:
1. Отличная статья и идея хорошая;
2. По моему много "воды", по крайней мере, мне пришлось прилагать некоторые усилия для того, что бы полностью прочесть статью;
3. В статье нет объяснения тому факту, что применяемая оценка энтропии шума при подключенных входах звуковой платы к CD лучше, чем свободно болтающихся. Возможно, применяемая оценка энтропии принимает за шум двух-периодический процесс;
4. Я не понял, есть ли механизм контроля над состоянием входов звуковой платы. А так же что получится, если ФДСЧ будет работать во время воспроизведения CD;
5. Как я понял в "свободной" версии используется длинна внутреннего состояния ПДСЧ и разрядность выходной информации равные 128 бит (RIPEMD-128, RC6), т.е., грубо говоря, соседние значения по 128 бит, связаны между собой 128 битным состоянием, которое получено с ФДСЧ. В коммерческой версии используются дополнительные 160-битные алгоритмы, но т.к. окончательный смеситель 128-битный, то прирост стойкости до 160 бит требует обоснования, которого нет;
6. В статье совершенно не освещён вопрос обнаружения отказов аппаратуры. В тоже время пользователь, использующий ФДСЧ с качеством чисел 2^-128 вправе ожидать, что он, либо выдаст "хорошее" число, либо отказ с аналогичной вероятностью. Модули более высокого уровня не смогут обнаружить отказ ФДСЧ, в принципе;
7. Цена изделия не маленькая, на пример, конкурирующие изделия "Электронный замок Соболь" и "Электронный замок Аккорд-4 АМДЗ" имеют сертификаты ФАПСИ и их цена находится в диапазоне $200 - $250. А у Вас $100 за ПО + цена платы + отсутствие независимого контроля изделия.
P.S.
8. Правильное название российских стандартов ЭЦП: ГОСТ Р 34.10-94 и ГОСТ Р 34.10-2001. Они требуют ДСЧ с 256-битным качеством;
9. Было бы не плохо в список литературы поместить ссылки на используемые алгоритмы;
10. В fido7.ru.crypto не очень давно обсуждалась возможность использования звуковой платы в качестве ДСЧ. Вероятно, полезно просмотреть архив и сослаться;
--
LSE, Сергей Леонтьев, Крипто-Про, http://www.CryptoPro.ru
|
<theory>
|
Статья и реализация - Генератор истинно случайных чисел на основе шума звуковых карт 03.05.02 02:55
Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 18.02.03 19:43 Количество правок: 1
|
Всем привет, давно я тут уже небыл...
Пару лет назад я сделал subj, теперь вот решил довести до ума: документировать, сослаться на теоретиков, сделать free и commercial версии и т.д.
По этому поводу собственно небольшая бета-версия "статьи", с картинками, тестами и немножко с теорией.
Буду благодарен за отзывы.
http://leo.yuriev.ru
Здесь
|
|
Статья и реализация - Генератор истинно случайных чисел на основе шума звуковых карт 04.03.03 13:54
Автор: Anastassia Статус: Незарегистрированный пользователь
|
А вы как-то устанавливали приоритет авторских прав?
|
|
Так чем все закончилось? 21.02.03 12:42
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
Идея хороша - зачем использовать шумящие резисторы/диоды, если звуковая плата и так не плохо шумит. Простота реализации и непредсказуемость имеет место быть.
Кто-нибудь пробовал предсказать шум платы, зная шум предыдущего отрезка времени? Сколько бит было угадано? Не больше ли половины? А может быть 0.95?!
И чем плох метод, применяющийся в некоторых системах, суть которого заклюсается в высокоточном измерении времени между нажатием клавиш?
Пользователя просят несколько раз нажать на клавишу, а программа при нажатии на клавишу считывает счетчик тактового генератора (на пентиумах и выше), который инкрементируется с частотой в ~гигагерц. Оставляем младшие несколько бит: 1-8 от каждого считывания.
|
| |
Так чем все закончилось? 21.02.03 19:07
Автор: leo <Леонид Юрьев> Статус: Elderman
|
> Идея хороша - зачем использовать шумящие резисторы/диоды, > если звуковая плата и так не плохо шумит. Простота > реализации и непредсказуемость имеет место быть. > Кто-нибудь пробовал предсказать шум платы, зная шум > предыдущего отрезка времени? Сколько бит было угадано? Не > больше ли половины? А может быть 0.95?! :-)
Один "товарищъ" (после пива) сказал "что сейчас, за 5 мин".
Потом сказал что "н-н-да, не так просто", но "на трезвую голову...".
Ну а на зрезвую голову согласился, что "все сводиться к угадыванию данных со звуковой карты", и что это если у карты есть аналоговый вход, то это возможно только в "черном кубе, при абсолютном нуле"...
> И чем плох метод, применяющийся в некоторых системах, суть > которого заклюсается в высокоточном измерении времени между > нажатием клавиш? > Пользователя просят несколько раз нажать на клавишу, а > программа при нажатии на клавишу считывает счетчик > тактового генератора (на пентиумах и выше), который > инкрементируется с частотой в ~гигагерц. Оставляем младшие > несколько бит: 1-8 от каждого считывания. Нужно присутствие пользователя, а если нужно сгенерировать 1000 ключей - то и штатный "жматель клавиш".
Есть еще один плюс - генератор работает только в "user mode" на любой ОС , на Java, и на CLR (.NET). Другими словами не нужны права root/администратора для установки драйверов, и следовательно его можно встроить напривер в ActiveX-компонент.
Качество генерируемых чисел не уступает другим решениям.
|
|
А не написать ли тебе ~одноразовый блокнот?!! 20.02.03 13:23
Автор: Cyclamen Persicum Статус: Незарегистрированный пользователь
|
Идея простая:
Берешь файл случайных чисел,
сохраняешь счетчик,
а использованный кусок все время заполняешь нулями.
А то ведь я и сам напишу,
что тогда будет?
|
|
Статья и реализация - Генератор истинно случайных чисел на основе шума звуковых карт 07.05.02 16:24
Автор: ZZZ Статус: Незарегистрированный пользователь
|
Есть вопрос.
Для применения этого генератора в криптографической сфере требуется сгенегить случайную последовательность при шифровании и повторить ее при расшифровании. Как ее повторить???
Второй вопрос:
Тестирование псевдослучайных последовательностей заключается не только в заверении, мол, тут случайные процессы. Где гарантии (математические)??. (если в статье все строго - прошу прощения).
Третий. Чем алгоритмические методы получения ПСЧ не устраивают? Ведь они могут выдавать равномерные последовательности гарантированного периода. Притом огромного периода. И угадать ее без знания, в нашем случае, ключа - нельзя.
|
| |
Статья и реализация - Генератор истинно случайных чисел на основе шума звуковых карт 07.05.02 17:07
Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 07.05.02 17:17 Количество правок: 1
|
> Есть вопрос. > > Для применения этого генератора в криптографической сфере > требуется сгенегить случайную последовательность при > шифровании и повторить ее при расшифровании. Как ее > повторить??? ;-0
Совершенно неверная постановка вопроса. Случайные числа нужны не для этого. RC4 и ему подобные - это совсем другое. RTFM.
> Второй вопрос: > Тестирование псевдослучайных последовательностей > заключается не только в заверении, мол, тут случайные > процессы. Где гарантии (математические)??. (если в статье > все строго - прошу прощения). В статье я в принципе изложил свою точку зрения на этот вопрос, но не углюбляясь в теорию, а приведя уже общепринятые понятия.
В конце приведена ссылка на теоретическое исследование этого и близких вопросов: http://citeseer.nj.nec.com/hastad93construction.html (слева сверху есть ссылка на PDF). Если говорить про источник исходной энтропии, то я могу просто вcтавить абзац из статьи. Я могу принять вашу критику что "доказательство случайности" не очевидно, не "ярко", и не твердо.
Но, опять таки, не углуюляясь в теорию, могу сказать - все сведется к утопической (нерешаемой) задачи вычисления кол-ва энтропии в звуке. Поэтому, стоит либо согласиться с тем, что для внешнего наблюдателя шум звуковой карты достаточно сложно предсказуемый процесс. Либо, для полной уверенности в случайности, использовать внешний источник энтропии - например генератор белого шума на основе "noise resistor".
> Третий. Чем алгоритмические методы получения ПСЧ не > устраивают? Ведь они могут выдавать равномерные > последовательности гарантированного периода. Притом > огромного периода. И угадать ее без знания, в нашем случае, > ключа - нельзя. Угадать конечно не просто, но иногда возможно.
В общем случае для ПСЧ все равно нужен "кусочек настоящей случайности" для начальной установки. И соответственно прогнозируемость идеального ПСЧ сведется к прогнозируемости его начальной установки. Для "не идеального" ПСЧ "угадываемость" может только увеличиваться.
|
|
Статья и реализация - Генератор истинно случайных чисел на основе шума звуковых карт 03.05.02 13:57
Автор: Serge3 Статус: Незарегистрированный пользователь Отредактировано 03.05.02 16:25 Количество правок: 3
|
Здравствуйте,
Несколько комментариев к Вашей статье:
1. Отличная статья и идея хорошая;
2. По моему много "воды", по крайней мере, мне пришлось прилагать некоторые усилия для того, что бы полностью прочесть статью;
3. В статье нет объяснения тому факту, что применяемая оценка энтропии шума при подключенных входах звуковой платы к CD лучше, чем свободно болтающихся. Возможно, применяемая оценка энтропии принимает за шум двух-периодический процесс;
4. Я не понял, есть ли механизм контроля над состоянием входов звуковой платы. А так же что получится, если ФДСЧ будет работать во время воспроизведения CD;
5. Как я понял в "свободной" версии используется длинна внутреннего состояния ПДСЧ и разрядность выходной информации равные 128 бит (RIPEMD-128, RC6), т.е., грубо говоря, соседние значения по 128 бит, связаны между собой 128 битным состоянием, которое получено с ФДСЧ. В коммерческой версии используются дополнительные 160-битные алгоритмы, но т.к. окончательный смеситель 128-битный, то прирост стойкости до 160 бит требует обоснования, которого нет;
6. В статье совершенно не освещён вопрос обнаружения отказов аппаратуры. В тоже время пользователь, использующий ФДСЧ с качеством чисел 2^-128 вправе ожидать, что он, либо выдаст "хорошее" число, либо отказ с аналогичной вероятностью. Модули более высокого уровня не смогут обнаружить отказ ФДСЧ, в принципе;
7. Цена изделия не маленькая, на пример, конкурирующие изделия "Электронный замок Соболь" и "Электронный замок Аккорд-4 АМДЗ" имеют сертификаты ФАПСИ и их цена находится в диапазоне $200 - $250. А у Вас $100 за ПО + цена платы + отсутствие независимого контроля изделия.
P.S.
8. Правильное название российских стандартов ЭЦП: ГОСТ Р 34.10-94 и ГОСТ Р 34.10-2001. Они требуют ДСЧ с 256-битным качеством;
9. Было бы не плохо в список литературы поместить ссылки на используемые алгоритмы;
10. В fido7.ru.crypto не очень давно обсуждалась возможность использования звуковой платы в качестве ДСЧ. Вероятно, полезно просмотреть архив и сослаться;
--
LSE, Сергей Леонтьев, Крипто-Про, http://www.CryptoPro.ru
|
| |
Статья и реализация - Генератор истинно случайных чисел на основе шума звуковых карт 07.05.02 16:18
Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 07.05.02 16:22 Количество правок: 1
|
> Здравствуйте, > > Несколько комментариев к Вашей статье: >
Добрый день, Сергей!
С отъездом у меня пока не получается, напишу почтой.
Поэтому "развлекаюсь" на месте.
> > 1. Отличная статья и идея хорошая; > > 2. По моему много "воды", по крайней мере, мне пришлось > прилагать некоторые усилия для того, что бы полностью > прочесть статью; >
Спасибо.
Без "воды" текст был бы понятен только довольно узкому кругу и не интересен остальным, я постарался его "разбавить" не утонув в теории и не исказив сути.
> > 3. В статье нет объяснения тому факту, что применяемая > оценка энтропии шума при подключенных входах звуковой платы > к CD лучше, чем свободно болтающихся. Возможно, применяемая > оценка энтропии принимает за шум двух-периодический > процесс; > > 4. Я не понял, есть ли механизм контроля над состоянием > входов звуковой платы. А так же что получится, если ФДСЧ > будет работать во время воспроизведения CD; >
При оценки энтропии я не пытаюсь решить сверх-задачу вычисления кол-ва "истинной энтропии", а только прикидываю насколько похожи полученные биты на явно случайные/неслучайные процессы. Т.е алгоритм прежде всего нацелен на выяснение "есть ли шум или нет", основываясь на том насколько далеко/близко по своим свойствам оцифрованный звук близок к истинному "бело-темлому" шуму. В случае с подключенным внешним источникам звука (CD) в исходном сигнале изменяется большее кол-во бит, и прежде всего именно поэтому алгоритм оценивает кол-во энтропии несколько выше.
На днях я доработаю статью и опишу эти вопросы подробнее.
> 5. Как я понял в "свободной" версии используется длинна > внутреннего состояния ПДСЧ и разрядность выходной > информации равные 128 бит (RIPEMD-128, RC6), т.е., грубо > говоря, соседние значения по 128 бит, связаны между собой > 128 битным состоянием, которое получено с ФДСЧ. В > коммерческой версии используются дополнительные 160-битные > алгоритмы, но т.к. окончательный смеситель 128-битный, то > прирост стойкости до 160 бит требует обоснования, которого > нет;
В свободной версии внутреннее состояние генератора описывается 128 битами, в коммерческой 128+160+256. Соотвественно усложняется задача прогнозирования генерируемых чисел и увеличивается период повторения при полном отсутствии внешней энтропии. Кроме этого получается "более ровное" распределение. О буквальном "приросте стойкости" в данном случае говорить по-моему не стоит.
> 6. В статье совершенно не освещён вопрос обнаружения > отказов аппаратуры. В тоже время пользователь, использующий > ФДСЧ с качеством чисел 2^-128 вправе ожидать, что он, либо > выдаст "хорошее" число, либо отказ с аналогичной > вероятностью. Модули более высокого уровня не смогут > обнаружить отказ ФДСЧ, в принципе;
Согласен, я вообще не коснулся этого вопроса.
Но, отказ с вероятностью 2^-128 не может обеспечить ни аппаратура (звуковая карта, CPU) ни ОС (Linux/FreeBSD/ W2K, драйвер карты). Говорить о собственной (внутренней) надежности генератора можно только в отношении надежности определения отсутствия исходной энтропии. Я надеюсь что смогу показать, что при соблюдении "спецификации" она будет составлять не более 2^-("количество звуковых семплов в одном цикле" / 2).
> 7. Цена изделия не маленькая, на пример, конкурирующие > изделия "Электронный замок Соболь" и "Электронный замок > Аккорд-4 АМДЗ" имеют сертификаты ФАПСИ и их цена находится > в диапазоне $200 - $250. А у Вас $100 за ПО + цена платы + > отсутствие независимого контроля изделия.
Конкуренция (пока) в мои планы не входила, я просто решил "выташить на свет" то что было сделано в 1998, чтобы subj не пропал окончательно. Рынок я тоже не исследовал, поэтому цена "потолочная".
> P.S. > > 8. Правильное название российских стандартов ЭЦП: ГОСТ Р > 34.10-94 и ГОСТ Р 34.10-2001. Они требуют ДСЧ с 256-битным > качеством; > Думаю незачем обсуждать чем отличается пара 128-битных случайных чисел, от одного 256-битного.
> 9. Было бы не плохо в список литературы поместить ссылки на > используемые алгоритмы; > Согласен.
> 10. В fido7.ru.crypto не очень давно обсуждалась > возможность использования звуковой платы в качестве ДСЧ. > Вероятно, полезно просмотреть архив и сослаться; > Не читал, обязательно посмотрю.
> -- > LSE, Сергей Леонтьев, Крипто-Про, http://www.CryptoPro.ru
Летом буду в Москве, как "минимум" в гостях у друзей, зайду и к вам.
Удачи!
|
| | |
Дополнение по поводу обсуждения subj в FIDO 07.05.02 20:34
Автор: leo <Леонид Юрьев> Статус: Elderman
|
По совету Сергея Леонтьева я прочитал обсужение в fido, накатал post.
http://www.fido-online.com
Копия ниже.
---
Hi All,
В конце 1998 / начале 1999 был реализован subj.
Теперь вот решил довести до ума (подвести теорию, сделать общедоступную версию и т.д.).
По этому поводу небольшая "статья" (рассчитана не только на профессионалов).
http://leo_yuriev.narod.ru
P.S.
Как справедливо заметил Сергей Леонтьев (LSE, www.cryptopro.ru), описываемый
генератор сильно перекликается с обсуждаемым здесь в феврале-марте "источником
случайности".
Поэтому я решил "засветить" subj здесь. Я ни сколько не претендую на
"перво-открывательсво", идея тривиальна и очень давно "летала в воздухе". Hо с
другой стороны хочу заметить, что subj был сделан мной почти три года назад,
совершенно независимо от других реализаций (летом 1999 был добавлен RC6).
Hебольшое обсуждение уже состоялось на форуме http://www.bugtraq.ru/
С Уважением,
Leo
|
|
Это для бедных ;-) 03.05.02 10:18
Автор: HandleX <Александр М.> Статус: The Elderman
|
То есть, если я задался получить истинно случайные числа, я могу вот так, дёшево и сердито вставить в комп аудюху и вперёд ;-)
Однако, если надо аппаратный генератор случайных чисел, он есть, к примеру, в 810-815 Intel чипсете. Есть тестовая прога к нему, выдаёт 64-битные случайные числа и довольно быстро. Может писать в файло. Наверное, есть и API к девайсу. Енто, по сути, PCI PnP девайс, назвается вроде как Intel Security Hub Controller. И его PGP юзает ;-)
|
| |
Да? :)) 03.05.02 11:31
Автор: !mm <Ivan Ch.> Статус: Elderman
|
А ты купи жутко дорогую аудюху :))
Ты хоть статью-то читал перед тем, как ответ писать? :))
Аппаратный генератор генерит не случайные, а псевдослучайные числа..
> То есть, если я задался получить истинно случайные числа, я > могу вот так, дёшево и сердито вставить в комп аудюху и > вперёд ;-) > Однако, если надо аппаратный генератор случайных чисел, он > есть, к примеру, в 810-815 Intel чипсете. Есть тестовая > прога к нему, выдаёт 64-битные случайные числа и довольно > быстро. Может писать в файло. Наверное, есть и API к > девайсу. Енто, по сути, PCI PnP девайс, назвается вроде как > Intel Security Hub Controller. И его PGP юзает ;-)
|
| | |
Да? :)) 06.05.02 16:22
Автор: HandleX <Александр М.> Статус: The Elderman
|
> А ты купи жутко дорогую аудюху :)) > Ты хоть статью-то читал перед тем, как ответ писать? :)) > Аппаратный генератор генерит не > случайные, а > псевдослучайные числа..
Это как понять? Насколько я верю, так именно любые программные генераторы генерят именно псевдослучайные числа. Аппаратный же генератор может содержать в себе микрокод для работы с АЦП и т.п., но в основе своей он имеет некий случайный процесс, типа теплового шума электронных цепей или свет туманности Андромеды ;-)
|
| | | |
Да? :)) 23.05.02 16:23
Автор: tatar_0x4e Статус: Member
|
> Это как понять? Насколько я верю, так именно любые > программные генераторы генерят именно > псевдослучайные числа. > Аппаратный же генератор может содержать > в себе микрокод для работы с АЦП и т.п., но в основе своей > он имеет некий случайный процесс, типа > теплового шума электронных цепей или свет туманности > Андромеды ;-)
HandleX, а ты не мог бы поточнее припомнить как эта железка называется? А если вдруг и Programmer's Guide к ней есть, то и на него ссылочку неплохо было бы :)
|
| | | | |
Ответ по железяке ;-) 30.05.02 15:59
Автор: HandleX <Александр М.> Статус: The Elderman
|
> HandleX, а ты не мог бы поточнее припомнить как эта железка > называется? А если вдруг и Programmer's Guide к ней есть, > то и на него ссылочку неплохо было бы :)
В общем, всё очень просто. Имеем мать на чипсете Intel, начиная с 810-го.
Любая такая мать имеет в себе некий PCI девайс (в чипсете), как IDE-контроллер, например. Называется он Intel Security Hub. Винда (Win9x) его отображает сперва как неизвестное, а потом, когда ставишь дрова на него, появляется с таким гордым названием ;-) С дровами (от Intel) устанавливается также и тестовая прога. Юзаешь её и наслаждаешься видом 64-битных случайных чисел. Можешь записывать их в файло. Дрова на ентот девайс есть практически на любых CD годичной давности, где есть дрова для чипсетов Intel. На самом Intel, наверное, есть API к этим дровам. Ну вот и всё, пожалуй.
|
|
|