Сдвиговый регистр с обратной связью
Сдвиговый регистр с обратной связью (Linear Feedback Shift Register, LFSR) — это устройство или алгоритм, реализующий последовательность двоичных значений, в котором значение нового бита, вдвигаемого в регистр, вычисляется как линейная функция (обычно «исключающее ИЛИ», XOR) от значений определённых разрядов текущего состояния регистра. Относится к классу генераторов псевдослучайных последовательностей и находит широкое применение в цифровой электронике, криптографии, телекоммуникациях и вычислительной технике.
Принцип действия
Сдвиговый регистр с обратной связью представляет собой цепочку из n триггеров (разрядов), каждый из которых хранит один бит информации. В каждом такте работы содержимое всех разрядов сдвигается на одну позицию в сторону старших (или младших) разрядов. Освободившийся разряд заполняется значением, вычисленным как сумма по модулю 2 (XOR) значений определённых «отводных» разрядов — так называемых точек отбора обратной связи.
Математически состояние регистра описывается рекуррентным соотношением:
\[ x_{i+n} = \sum_{j=0}^{n-1} c_j \cdot x_{i+j} \pmod{2} \]
где \(x_i\) — значение i-го бита последовательности, \(c_j\) — коэффициенты обратной связи (0 или 1), а \(n\) — длина регистра. Коэффициент \(c_0\) всегда равен 1, так как обратная связь обязательно включает младший разряд.
Полином обратной связи
Набор отводных разрядов задаётся полиномом обратной связи (или характеристическим полиномом) степени n:
\[ P(x) = x^n + c_{n-1}x^{n-1} + \dots + c_1x + 1 \]
где коэффициенты \(c_j\) соответствуют наличию (1) или отсутствию (0) отвода от j-го разряда. Полином определяет все свойства последовательности, генерируемой регистром.
Классификация
По типу обратной связи
- Линейный сдвиговый регистр с обратной связью (LFSR) — обратная связь реализуется только через операцию XOR (сумма по модулю 2). Последовательность описывается линейным рекуррентным соотношением.
- Нелинейный сдвиговый регистр с обратной связью (NLFSR) — в обратной связи используются нелинейные функции (например, AND, OR, комбинации логических элементов). Такие регистры сложнее анализировать, но они обладают лучшими криптографическими свойствами.
По архитектуре
- Архитектура Фибоначчи — обратная связь подаётся на вход регистра от нескольких отводных разрядов через сумматор. Новый бит вычисляется как XOR отобранных разрядов и вдвигается в младший разряд.
- Архитектура Галуа — обратная связь встроена внутрь регистра: отводные разряды модифицируются XOR с выходным битом до сдвига. Эта архитектура позволяет реализовать более быстродействующие схемы, особенно при аппаратной реализации.
Свойства и характеристики
Период последовательности
Последовательность, генерируемая LFSR, является периодической. Максимальный период для регистра длины n составляет \(2^n - 1\) (все возможные ненулевые состояния). Такая последовательность называется последовательностью максимальной длины (m-последовательностью). Для достижения максимального периода полином обратной связи должен быть примитивным — неприводимым многочленом, корни которого являются примитивными элементами поля Галуа GF(2^n).
Статистические свойства
Последовательности LFSR обладают хорошими статистическими характеристиками:
- Распределение нулей и единиц примерно равномерное (на периоде количество единиц на одну больше, чем нулей).
- Автокорреляционная функция близка к дельта-функции (для m-последовательностей).
- Последовательности проходят многие статистические тесты на случайность (например, тесты NIST).
Криптографическая стойкость
Несмотря на хорошие статистические свойства, LFSR не является криптостойким генератором. При известной длине регистра n и известных 2n битах последовательности можно восстановить полином обратной связи и начальное состояние с помощью алгоритма Берлекэмпа — Мэсси. Поэтому в криптографии LFSR обычно используются в комбинации с нелинейными элементами (например, в поточных шифрах A5/1, Trivium, Grain).
Применение
Генерация псевдослучайных чисел
LFSR широко применяются в качестве генераторов псевдослучайных чисел в симуляциях, тестировании, компьютерных играх и математических расчётах. Простота аппаратной реализации позволяет интегрировать их в микроконтроллеры и ПЛИС.
Криптография
В поточных шифрах LFSR используется как основной компонент для генерации ключевого потока. Примеры:
- A5/1 — шифрование в стандарте GSM (мобильная связь 2G).
- E0 — шифрование в Bluetooth.
- Trivium — финалист конкурса eSTREAM.
- Grain — семейство поточных шифров.
Телекоммуникации и связь
- Формирование скремблирующих последовательностей — для устранения длинных последовательностей одинаковых битов в цифровых каналах связи.
- Коды с циклическим избыточным кодом (CRC) — LFSR используется для вычисления контрольных сумм в протоколах передачи данных (Ethernet, USB, Wi-Fi).
- Системы расширения спектра — в CDMA и GPS для генерации кодовых последовательностей.
Цифровая электроника
- Счётчики с псевдослучайным перебором состояний — используются в тестировании цифровых схем (BIST, Built-In Self-Test).
- Генераторы тестовых последовательностей — для проверки работы логических схем.
- Синтезаторы частот — в составе цифровых фазовых автоподстроек (DDS).
Другие области
- Кодирование и сжатие данных — в некоторых алгоритмах сжатия (например, LZSS).
- Игровая индустрия — для генерации случайных карт, событий, поведения NPC.
- Научные расчёты — в методах Монте-Карло и моделировании случайных процессов.
Примеры реализации
Аппаратная реализация
В цифровых микросхемах LFSR реализуется на D-триггерах и логических элементах XOR. Для регистра длины 8 с полиномом \(x^8 + x^4 + x^3 + x^2 + 1\) (примитивный полином) схема содержит 8 триггеров и 4 элемента XOR. Тактовая частота может достигать сотен мегагерц.
Программная реализация (на C)
```c uint16_t lfsr = 0xACE1u; // начальное состояние (ненулевое) unsigned bit; unsigned period = 0;
do { bit = ((lfsr >> 0) ^ (lfsr >> 2) ^ (lfsr >> 3) ^ (lfsr >> 5)) & 1; lfsr = (lfsr >> 1) | (bit << 15); ++period; } while (lfsr != 0xACE1u); ```
В этом примере полином обратной связи: \(x^{16} + x^{14} + x^{13} + x^{11} + 1\).
Интересные факты
- LFSR был изобретён в 1950-х годах и первоначально использовался в военных системах связи.
- Последовательности максимальной длины (m-последовательности) обладают свойством «окна»: любой ненулевой набор из n последовательных битов встречается ровно один раз за период.
- LFSR может быть реализован как на сдвиговом регистре, так и на основе циклического кода — математически эти модели эквивалентны.
- В криптографии комбинация нескольких LFSR с нелинейной функцией фильтрации позволяет создавать стойкие поточные шифры, устойчивые к атакам на основе линейной сложности.
Источники
- Голомб С. У. «Сдвиговые регистры с обратной связью и их приложения». — М.: Мир, 1968.
- Шнайер Б. «Прикладная криптография». — 2-е изд. — М.: Триумф, 2002.
- Menezes A., van Oorschot P., Vanstone S. «Handbook of Applied Cryptography». — CRC Press, 1996.
- Лидл Р., Нидеррайтер Г. «Конечные поля». — М.: Мир, 1988.
- Стандарт IEEE 802.11 (Wi-Fi) — описание использования LFSR для скремблирования.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →