Недвоичные регистры сдвига с линейной обратной связью модулированные пилообразным кодом
Введение
Ранее, Full-stack шифрование на обобщенных регистрах с линейной обратной связью / Хабр (habr.com), рассматривались недвоичные регистры сдвига с линейной обратной связью (LFSR), обеспечивающие периоды
Для увеличения периода комбинировались два регистра с периодами
Такие генераторы назывались генераторной парой. Видно, что присутствует уменьшение периода в
Описание модулированного LFSR генератора
Под пилообразным кодом понимается выход генератора типа
Здесь переменная
Численно показано, что для некоторого начального состояния пары, которая имеет свободный период
Причем данные периоды будут разными для разных LFSR генераторов пары, так, что общий период будет равен произведению периодов без всякой редукции, то есть возможно достичь единичного наибольшего общего делителя (НОД) периодов.
Таким образом видим, что за счет модуляции LFSR генераторной пары можно преодолеть коэффициент редукции
Работа LFSR генератора со скалярным входом
Здесь оператор
Численно показано (по уровню авто-корреляции), что после XOR состояний генераторной пары для повышения случайности генерируемого процесса выгодно итоговое состояние привести по модулю
Таким образом, за счет небольшого увеличения сложности LFSR генератора возможно создавать каскадные генераторы случайных чисел со всё возрастающим периодом, а также, например, генераторы гаммы для потокового шифрования. Принцип каскадирования ложится на многоядерную архитектуру современных процессоров.
В терминах англоязычной аудитории примененный принцип усиления периода LFSR генераторов гласит как "Sawtooth boosted LFSR generators".
Пример реализации рассмотренного генератора в качестве датчика случайных чисел приведен на платформе github:
nawww83/lfsr: LFSR and its cryptographic applications (github.com)