Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
И все таки "легкий", а не "сложный" 23.07.03 10:57 Число просмотров: 2778
Автор: leo <Леонид Юрьев> Статус: Elderman
|
> Не такой уж и легкий, а достаточно навороченый. > Все, конечно, хорошо, вот только медленный должен быть > (более сотни тактов на генерацию). > Хотя на современных гигагерцовых процессорах это не заметно > будет. > Сначала речь шла о каком-то устройстве. Эту штуку что, > аппаратно реализовывать надо будет? Или в состав устройства > будет входить компьютер на базе процессора Пентиум4? Для > устройства-то лучше что-нибудь на основе "железного" RNG. > Приведенный алгоритм не очень-то и прост для аппаратной > реализации. > Думаю, если массивчик раза в два или в четыре покороче > сделать - стойкость сильно не упадет. > Самое главное, чтобы LYSAP_RandomPushSalt достаточно часто > вызывался. Через раз достаточно будет. А то вдруг на милион > LYSAP_GetRandom один LYSAP_RandomPushSalt придется.
И все таки "легкий", а не "сложный":
- Нет ни одного умножения, и ни одного деления;
- В процедурах генерации нет ни одного цикла;
- Размер массива кратен степени двойки;
- Мало операций: три сдвига, три XOR-а, четыре сложения (одно простое);
А если сравнить с генерацией на базе SHA, MD5 или RIPE-MD, то гораздо проще - в разы.
Генерация в RC4 проще, но он выдает байт за такт, и требует больше операций для PushSalt().
Будет использоваться и в embedded ПО, и в железе. Реализуется на VHLD с легкостью.
Уменьшать буфер лучше не надо - там примитивный полином X**64 + X**4 + X**3 + 1. Но можно уменьшить разрадность с 32 до 16.
PushSalt() добавляет "неопределенность", но не влияет на качество распределения. Поэтому если PushSalt() не делать вообще, то получиться просто хороший генератор псевдослучайных чисел.
С другой стороны, каждый бит из PushSalt(), через 4096 тактов генерации, почти равновероятно влияет на каждый бит состояния генератора, и каждое сгенерированное число.
|
|
|