


Известно, что каждая Булева функция
может быть записана как сумма по модулю 2 произведений порядков
независимых переменных,
. Это выражение называется алгебраической нормальной формой функции
. Нелинейным порядком функции
называется максимальный порядок членов в записи её алгебраической нормальной формы.
Например, Булева функция
имеет нелинейный порядок 3. Максимально возможный нелинейный порядок Булевой функции равен количеству переменных
Предположим теперь, что у нас
регистров сдвига с линейной обратной связью, их длины
попарно различны и больше двух. Все регистры объединены нелинейной функцией
, как показано на рисунке. Функция
представлена в алгебраической нормальной форме. Тогда линейная сложность потока ключей равна
.
Если
– попарно взаимно-простые числа, то длина периода ключевого потока равна:
. Например, если
, то
. И длина периода ключевого потока равна
.


Генератор Геффа
Пример (генератор Геффа):
В этом генераторе используются три РСЛОС, объединённые нелинейным образом. Длины этих регистров
попарно простые числа.
Нелинейную функцию для данного генератора можно записать следующим образом:

Длина периода: 
Линейная сложность: 
Генератор Геффа криптографически слаб, потому что информация о состояниях генераторов РСЛОС 1 и РСЛОС 3 содержится в его выходной последовательности. Для того чтобы понять это, обозначим
-ые выходные биты РСЛОС 1,2,3 и потока ключей, соответственно. Тогда корреляционная вероятность последовательности
по отношению к последовательности
:

Аналогично,
По этой причине, несмотря на длинный период и достаточно высокую линейную сложность, генератор Геффа поддаётся корреляционным атакам.


Генератор на нелинейном фильтре