Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
Генератор случайной последовательности 28.01.02 18:30 Число просмотров: 1668
Автор: iddqd <Юрий> Статус: Member
|
Сразу предупреждаю: большую часть сообщения не понял (по причине плохого знания теории), следовательно, могу сморозить совершенную чушь, а потому прошу не ругать.
Мысль такая: а если взять x и на каждом шаге увеличивать его на 1 а последовательность генерить как хеш от этого x. т.е.:
x++;
y=hash(f(a,b),x);
или
x++;
y=hash(f(f(a,y),b),x);
или
y=f(a,b);
x=0;
{
x++;
y=hash(y,x);
}
а в качестве hash взять что-нибудь проверенное, вроде md5 или des.
То, что в голову пришло....
|
<theory>
|
Генератор случайной последовательности 28.01.02 16:37 Штраф: 10 [zelych]
Автор: zelych Статус: Member
|
нужен сабж.
идея такая:
Ф_инит1( а );
Ф_инит2( б );
// не надо удивляться - а и б задаются в разных местах - это принципиально
у1 = Ф();
у2 = Ф();
..... // и так далее
|у- 1 бит,б- 48 бит,а- не меньше 48
надо чтобы:
1. последовательность у1, у2.. была сбалансирована (да и вообще, желательно чтобы удовлетворяла постулатам Голомба)
2. у = Ф( б ) - имела высокую степень нелинейности (хотя бы 25)
3. при небольших изменениях а или б у менялся с вероятностью ~0.5
4. не использовалось всяких таблиц подстановки, управляемых сдвигов, делений по модулю и всего такого в этом роде (генератор надо запихнуть в маленький кусочек памяти)
вот чего я придумал, на большее фантазии не хватило:
рслос - регистр сдвига порядка 48 (можно и больше)
р - внутреннее состояние регистра
р = а
р = Н( б, р ) // Н - функция, возможно линейная
ц = рслос( р ) // и так 96 раз // ц - бит, который выдвигается из рслос
у = ц
после этого у = Ф( б ) - имеет гарантированный порядок нелинейности ~48
вопросы:
может кто придумает как всё это сделать подругому??
есть ли дырки в моей схеме??
как влияет на у1, у2.. линейность Н()??
ну и ещё, заодно: может кто подскажет простенькие, но достаточно нелинейные функции (чтобы вместо Н вставить) буквально на пару строчек кода??
|
|
Генератор случайной последовательности 29.01.02 00:04
Автор: ZZZ Статус: Незарегистрированный пользователь
|
1 есть ли дырки в моей схеме??
2 как влияет на у1, у2.. линейность Н()??
3 ну и ещё, заодно: может кто подскажет простенькие, но
> достаточно нелинейные функции (чтобы вместо Н вставить) > буквально на пару строчек кода??
1. это слишком сложный вопрос
2. Если линейная функция такая, как в последней твоей теме, то лучше и не бывает. период известен, максимален.
а про нелинейные функции мы мало чего знаем.
3. см 2.
|
| |
нелинейные функции 30.01.02 14:52
Автор: zelych Статус: Member
|
> 1 есть ли дырки в моей схеме?? [..skip..]
> 1. это слишком сложный вопрос
я уже нашёл одну:
если Н( а, б ) = а xor б
тогда
ц = рслос(а xor б ) = рслос( а ) xor рсолс( б )
соответственно для у1,у2... при а и у`1,y`2... при а` будет выполняться одно из условий:
у1 = у`1, y2 = y`2 .....
или
у1 = 1+y`1, y2 = 1+y`2 .....
теперь, если обобщить получается:
при одинаковых б, функция Г ( у = Г( у` )) имеет степень нелинейности равную нелинейности Н..
то есть всё упирается в Н().. надо что бы она была нелинейной..
может обмозгует кто, если время свободное будет??
а я вам спасибо скажу...
|
| | |
сорри, ошибочка вышла 31.01.02 11:40
Автор: zelych Статус: Member
|
> соответственно для у1,у2... при а и у`1,y`2... при а` будет > выполняться одно из условий: > у1 = у`1, y2 = y`2 ..... > или > у1 = 1+y`1, y2 = 1+y`2 ..... > > теперь, если обобщить получается: > при одинаковых б, функция Г ( у = Г( у` )) имеет степень > нелинейности равную нелинейности Н..
всё вышенаписанное прошу считать бредом..
однако вопрос ещё в силе..
|
|
Генератор случайной последовательности 28.01.02 18:30
Автор: iddqd <Юрий> Статус: Member
|
Сразу предупреждаю: большую часть сообщения не понял (по причине плохого знания теории), следовательно, могу сморозить совершенную чушь, а потому прошу не ругать.
Мысль такая: а если взять x и на каждом шаге увеличивать его на 1 а последовательность генерить как хеш от этого x. т.е.:
x++;
y=hash(f(a,b),x);
или
x++;
y=hash(f(f(a,y),b),x);
или
y=f(a,b);
x=0;
{
x++;
y=hash(y,x);
}
а в качестве hash взять что-нибудь проверенное, вроде md5 или des.
То, что в голову пришло....
|
| |
Генератор случайной последовательности 29.01.02 12:14
Автор: zelych Статус: Member
|
[..skip..]
> а в качестве hash взять что-нибудь проверенное, вроде md5 > или des.
вся фишка как раз в том, что des и md5 не подойдут, надо что-нибудь по-проще..
например то, что я придумал поместится на одном листе формата а4, и ещё останется..
но всё равно, спасибо..
|
|
|