Большинство реальных поточных шифров основано на регистрах сдвига с обратной связью (рис. 4.9). Регистр сдвига применяют для генерации ключевой последовательности.
Регистр сдвигa с обратной связью состоит из двух частей: регистра сдвига и функции обратной связи. Регистр сдвига представляет собой последовательность битов. (Количество битов определяется длиной сдвигового регистра. Если длина равна п битам, то регистр называется п -битовым регистром сдвига).
Всякий раз, когда нужно извлечь бит, все биты регистра сдвигаются вправо на 1 позицию. Новый крайний левый бит, полученный от функции обратной связи, является функцией всех остальных битов регистра. На выходе регистра оказывается вытесненный младший значащий бит.
Периодом регистра называется длина получаемой последовательности до начала ее повторения.
Простейшим видом регистра сдвига с обратной связью является регистр сдвига с линейной обратной связью (РСЛОС), (рис 4.10.)
Обратная связь представляет собой Å некоторых (не всех) битов регистра; эти биты называются отводной последовательностью. Задать последовательность бит, входящих в обратную связь, можно с помощью коэффициентов, равных 0 или 1 для каждого бита.
|
|
Рассмотрим пример 4-битового РСЛОС с отводом от первого и четвертого битов (рис. 4.11). Если его проинициализировать значением 1111, то до повторения регистр будет принимать следующие внутренние состояния:
1111 0111 1011 0101 1010 1101 0110 0011 1001 0100 0010 0001 1000 1100 1110.
Выходной последовательностью будет строка младших значащих битов:
1111 0101 1001 000...
РСЛОС (n -битовый) может находиться в одном из 2 n -1 внутренних состояний (значений битов). Это означает, что теоретически такой регистр может генерировать псевдослучайную последовательность с периодом 2 n -1 битов.
Число внутренних состояний и период равны 2 n -1, потому что заполнение РСЛОС нулями приведет к тому, что сдвиговый регистр будет выдавать бесконечную последовательность нулей, что абсолютно бесполезно. Только при определенных отводных последовательностях РСЛОС циклически пройдет через все внутренние состояния. Такие РСЛОС имеют максимальный период. Получившийся результат называется М- последовательностью.
Формально n -битовый РСЛОС можно описать многочленом степени n от формальной переменной х, где i -му биту соответствует член х i с коэффициентом 0, если бит входит вотводную последовательность, или с коэффициентом 1, если не входит. Свободный член многочлена всегда равен 1. В нашем примере это будет
х 4+х+ 1.
Степени формальной переменной многочлена, за исключением 0-й, задают отводную последовательность, отсчитываемую от левого края сдвигового регистра. То есть члены многочлена с меньшей степенью соответствуют позициям, расположенным ближе к правому краю регистра. Нулевой бит, которому в многочлене соответствует х0 =1, всегда входит в отводную последовательность. Это гарантирует, что все биты регистра не станут нулевыми одновременно.
|
|
Для того чтобы конкретный РСЛОС имел максимальный период, многочлен, ассоциированный с отводной последовательностью, должен быть примитивный по модулю 2, то есть не раскладываться на произведение двоичных многочленов меньшей степени.
Например, многочлен х 32 + х 7 + х 5 + х 3 + х2 + х + 1примитивен по модулю 2. Рассмотрим этот многочлен в терминах РСЛОС с максимальным периодом. Степень многочлена задает длину РСЛОС.
Тогда для взятого 32-битового сдвигового регистра новый бит генерируется с помощью Å тридцать второго, седьмого, пятого, третьего, второго и первого битов (рис. 4.12); получающийся РСЛОС будет иметь максимальную длину, циклически проходя до повторения через 232-1 различных значений.
Рисунок 4.12. 32-битовый РСЛОС с максимальным периодом
Сами по себе РСЛОС являются хорошими генераторами псевдослучайных последовательностей, но они обладают некоторыми нежелательными неслучайными свойствами. Для РСЛОС длины n внутреннее состояние представляет собой предыдущие n выходных битов генератора. Даже если схема обратной связи хранится в секрете, она может быть определена по 2 n выходным битам генератора с помощью алгоритма Берлекэмпа-Мэсси.
Кроме того, большие случайные числа, генерируемые с использованием идущих подряд бит этой последовательности, сильно коррелированы и для некоторых типов приложений вовсе не являются случайными. Несмотря на это, РСЛОС часто используются при разработке алгоритмов шифрования. Примером является шифр А5.
Алгоритм А5
А5 — это поточный шифр, используемый для шифрования GSM (Grouр Sрecial Mobile) – европейского стандарта для цифровых сотовых мобильных телефонов, а именно, канала «телефон - базовая станция».
А5 состоит из трех РСЛОС длиной 19, 22 и 23. Выходом является Å трех РСЛОС. В А5 используется изменяемое управление тактированием (сдвигом на каждом шаге). Каждый регистр тактируется в зависимости от своего среднего бита, затем выполняется Å с обратной пороговой функцией средних битов всех трех регистров. Обычно на каждом этапе тактируется два РСЛОС.
Существует тривиальная атака на открытом тексте, основанная на предположении о содержании первых двух РСЛОС и попытке определения третьего РСЛОС по ключевой последовательности. Тем не менее идеи, лежащие в основе А5, позволяют проектировать надежные поточные шифры. Алгоритм эффективен и удовлетворяет всем известным статистическим тестам, единственная его слабость — короткие регистры. Варианты А5 с более длинными сдвиговыми регистрами и более плотными многочленами обратной связи позволяют противостоять силовой атаке.
Алгоритм А5/1 - одна из двух разновидностей алгоритма А5.
Рисунок 4.13. Криптосхема генератора шифра A5/1
Генератор А5/1 состоит из трех ЛРС над GF(2) длины 19, 22 и 23 (рис. 4.13) с характеристическими многочленами соответственно
x 19 + х 5 + х2 + х + 1 х22 + х + 1 x 22 + х 15 + х2 + х + 1.
Сумма битов, снимаемых с трех ЛРС, образует гамму генератора. Нелинейность алгоритма достигается за счет неравномерного движения всех ЛРС, контролируемого блоком управления движением (БУД).
После вычисления знака гаммы происходит сдвиг некоторых (не менее чем двух) регистров. Сдвиг зависит от значения трех битов: 10-го бита ЛРС-1, 11-го бита ЛРС-2 и 12-го бита ЛРС-3 - и определяется по правилу: если все три бита одинаковы, то сдвигаются все регистры, в противном случае сдвигаются два регистра, чьи управляющие биты совпадают.
|
|
Открытый текст представляет собой набор 114-битовых блоков. Перед шифрованием каждого блока происходит перезагрузка состояний регистров, которая определяется однозначно передаваемым в линию несекретным номером блока и секретным 64-битовым сеансовым ключом шифра. Определение сеансового ключа шифра равносильно определению состояния регистров после перезагрузки, так как сеансовый ключ восстанавливается однозначно по состоянию регистров и по номеру блока из решения линейной системы уравнений от 64 переменных над полем Галуа GF(2), которое будет рассмотрено далее.
После перезагрузки регистров осуществляется 100 тактов холостого прогона, то есть 100 первых знаков гаммы игнорируются. В последующие 114 тактов вырабатываемые генератором биты используются для гаммирования блока открытого текста.