Линейный регистр сдвига с обратной связью

Линейный регистр сдвига с обратной связью

Линейный регистр сдвига с обратной связью

Linear feedback shift register (LFSR — линейный регистр сдвига с обратной связью) — один из методов генерации псевдослучайных чисел.

Сдвиговый регистр с обратной связью состоит из двух частей: сдвигового регистра и функции обратной связи. Сдвиговый регистр — последовательность битов. Длина сдвигового регистра — количество битов. Когда нужно извлечь бит, все биты сдвигового регистра сдвигаются вправо на одну позицию. Новый крайний слева бит определяется функцией остальных битов регистра. На выходе сдвигового регистра оказывается один, обычно младший, значащий бит. Период сдвигового регистра — длина получаемой последовательности до начала ее повторения.

Для LFSR функция обратной связи представляет собой сумму по модулю 2 (xor) некоторых битов регистра (эти биты называются отводной последовательностью).

LFSR может находиться в 2n − 1 внутренних состояниях, где n — длина сдвигового регистра. Если сдвиговый регистр заполнен нулями, то такое состояние будет порождать на выходе только нули (так как в качестве функции обратной связи используется xor), поэтому такое состояние бесполезно. Теоретически LFSR может генерировать последовательность с длиной 2n − 1 бит, так как длина последовательности совпадает с количеством внутренних состояний. LFSR будет проходить все внутренние состояния (иметь максимальный период) только при определённых отводных последовательностях — если многочлен, образованный из отводной последовательности и константы 1, является примитивным по модулю 2.

Степень многочлена — длина сдвигового регистра. Примитивный многочлен степени n — это неприводимый многочлен, который является делителем x^{2^n-1}+1, но не является делителем xd + 1 для всех d, делящих 2n − 1.

Например, чтобы проверить будет ли LFSR с отводной последовательностью, состоящей из первого и четвертого битов, генерировать последовательность максимальной длины (15 для 4-битного регистра), нужно проверить, будет ли многочлен x4 + x + 1 примитивным.

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Линейный регистр сдвига с обратной связью" в других словарях:

  • A5 — У этого термина существуют и другие значения, см. A5 (значения). Предупреждение на экране сотового телефона об отсутствии шифрования на сети …   Википедия

  • Битовый сдвиг — Битовый сдвиг  изменение позиций битов в слове на одну и ту же величину. Большинство компьютеров не могут напрямую адресовать биты, которые содержатся группами по 8, 16, 32 или 64 битов в словах. Для обеспечения работы с битами существует… …   Википедия

  • фильтрующий генератор — Линейный регистр сдвига с обратной связью и нелинейным выходом. [http://www.rfcmd.ru/glossword/1.8/index.php?a=index d=23] Тематики защита информации EN filter generator …   Справочник технического переводчика

  • Генератор псевдослучайных чисел — (ГПСЧ, англ. Pseudorandom number generator, PRNG)  алгоритм, порождающий последовательность чисел, элементы которой почти независимы друг от друга и подчиняются заданному распределению (обычно равномерному). Современная информатика… …   Википедия

  • Поточный шифр — это симметричный шифр, в котором каждый символ открытого текста преобразуется в символ шифрованного текста в зависимости не только от используемого ключа, но и от его расположения в потоке открытого текста. Поточный шифр реализует другой подход к …   Википедия

  • VEST — (англ. Very Efficient Substitution Transposition, очень эффективная перестановка)  это серия аппаратных поточных шифров общего назначения, которые обеспечивают однопроходное шифрование с аутентификацией и могут работать как хэш функция …   Википедия

  • KeeLoq — это блочный шифр, основанный на программном компоненте NLFSR . NLFSR – регистр сдвига с нелинейной обратной связью. Однонаправленный протокол передачи команды был разработан Фредериком Брувером, который является доктором философии и генеральным… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»