Шифр SOBER

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

Шифрование оцифрованного голоса в радиотелефонах было затруднено из-за недостатка вычислительной мощности мобильных станций (сотовых телефонов). Это привело к применению либо слабых алгоритмов шифрования, таких, как Voice Privacy Mask, который используется в стандарте Time Division Multiple Access; либо аппаратно реализованных поточных шифров, таких, как A5, который используется в европейском стандарте GSM (Group Special Mobile) для закрытия связи между абонентом и базовой станцией. Аппаратные поточные шифры имеют серьезный недостаток, который заключается в дополнительных затратах при производстве мобильной станции, а также затрудняет и сильно увеличивает стоимость и временные затраты на работы по замене или модификации алгоритмов шифрования. С тех пор как большинство мобильных телефонов используют встроенный микропроцессор и память, идеальным решением в данной области является применение быстродействующего программного поточного шифра, использующего небольшое количество памяти.

Концепция, заложенная в семействе алгоритмов SOBER, использует множество методов для значительного увеличения скорости программного формирования ключевой (гаммирующей) последовательности. В основе этой концепции лежат LFSR над полем GF(2"). Алгоритм SOBER (Seventeen Octet Byte Enabled Register) использует 17-байтный LFSR над

где сложение выполняется по модулю 256, а функция ROTL представляет собой циклический сдвиг влево наодин бит. Нелинейная функция смешивает 5 байтов, обозначаемыхиспользуяметод,включающийцикли-

ческий сдвиг частичных сумм. В принципе хорошая нелинейная последовательность может быть получена с использованием обыкновенного целочисленного сложения, но в этом случае последний значащий бит продолжает обладать линейными свойствами, т. е. применения только операции сложения недостаточно. Для выбора подходящей функции было проверено множество различных функций, и результаты этих проверок в дальнейшем были проанализированы.

Можно предположить, что с помощью анализа нелинейной выходной последовательности, определяемой состоянием LFSR, можно достаточно эффективно вычислить это состояние. Эта задача становится значительно сложнее, если определенные состояния LFSR не оказывают влияния на выходную последовательность. Необходимо, чтобы характер выбора этих состояний являлся труднопредсказуемым. В алгоритме SOBER используется метод, в котором определенные байты выходной последовательности LFSR, выбираемые случайно, определяют включение в результирующую последовательность остальных байт из общего потока. Когда генератор начинает работу, первый его выходной байт используется в качестве байта Shutter control (байт управления «перекрытием»). Байт Shutter control разбивается на 4 пары бит, и первой используется пара, содержащая самые младшие биты. После того как будут использованы все четыре пары, в качестве нового значения байта Shutter Control берется очередное значение выходного байта LFSR.

Таким образом, существует четыре возможных значения, определяющих, каким образом формируется выходное значение генератора SOBER.

•     00 – Регистр выполняет один такт работы, но его выходное значение не используется.

•     01 – Регистр выполняет один такт работы, и выходным значением генератора является результат операции XOR выходного значения регистра и константы 01101001. После этого регистр совершает еще один такт работы.

•     10 – Регистр совершает два такта работы, и выходным значением генератора является выходное значение регистра после второго такта работы.

•     11 – Регистр совершает один такт работы, и выходным значением генератора является результат операции XOR выходного значения регистра и константы 10010110.

Константы выбирались таким образом, чтобы при формировании выходного значения генератора любой бит выходного значения регистра инвертировался с вероятностью, равной 1/3.

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

Инициализация алгоритма

SOBER разработан для использования в беспроводной телефонии, где пакеты данных могут потеряться из-за шума, синхронизации между мобильными станциями (телефонами), потери связи с базовой станцией из-за отражения сигнала или обслуживание звонка может быть передано другой станции из-за того, что телефон меняет свое расположение в пространстве, например перемещается по шоссе.

Любая потеря синхронизации для поточного шифра является катастрофой. Одно из решений, использованных в системе GSM, заключается в косвенной нумерации каждого зашифрованного кадра, таким образом шифраторы на обоих концах канала передачи синхронизируются не с помощью основного ключа, а с помощью дополнительного ключа, соответствующего номеру кадра информации. Иначе говоря, при установлении связи на обоих концах для синхронизации используется общий секретный ключ, а при необходимости повторной синхронизации -дополнительный ключ.

Алгоритм SOBER поддерживает подобную схему двухуровневой установки ключа. SOBER принимает один секретный ключ, который имеет размер от 4 до 16 байт, и дополнительный ключ, размер которого может достигать 4 байт. Так как сдвиговый регистр содержит 17 байт информации, существует определенное превышение необходимой ключевой информации при максимальных размерах ключа.

Процесс инициализации при помощи основного ключа включает в себя следующие шаги. Пустьобозначают содержимое соответствующих разрядов регистра (на рис. 2.9.4 обозначенных как i).

1)  17 байт состояния регистра инициализируются первыми 17 числами Фибоначчи по модулю 256. Регистр использует их каксоответственно. В принципе в качестве таких чисел можно использовать любые значения, но предлагается выбирать числа, генерировать которые наиболее просто.

2)  Счетчик n сбрасывается в 0.

3)  Каждый байт ключа, начиная с первого, складывается по модулю 256 с

и записывается в. Затем n увеличивается на 1 и регистр совершает такт работы. В разряд регистра Я8 записывается результат операции XOR значения этого разряда и выходного значения нелинейной функции. Этот процесс продолжается до тех пор, пока каждый байт ключа не будет использован.

4)  Длина ключа прибавляется ки записывается в соответствующий разряд регистра.

5)  В разряд регистра, соответствующегозаписывается результат операции XOR значения этого разряда и выходного значения нелинейной функции, и затем регистр совершает такт работы. Данный шаг повторяется 11 или более раз.

После этого можно сохранить 17 байт состояния регистрадля

дальнейшего использования при повторной синхронизации. Обозначим это состояние каксоответственно.

В дополнение к секретному ключу второй ключ, который не является секретным, используется в беспроводной телефонии для генерирования уникальной гаммы для каждого кадра данных. SOBER использует открытый ключ кадра, называемый frame, в качестве 4-байтного без знакового целого и проводит инициализацию этого ключа, схожую с приведенной выше для секретного ключа. Если шифр применяется в ситуации, которая не требует использования второго ключа, этот этап инициализации можно целиком пропустить.

1)  17 байт состояния регистра инициализируются значениями, сохраненными после инициализации алгоритма с помощью основного ключа. Регистр использует эги значения каксоответственно.

2)  Счетчик n сбрасывается в 0.

3)  В разряд регистразаписывается результат сложения по модулю 256 значения этого разряда и самого младшего байта дополнительного ключа/гате. После этого счетчик n увеличивает свое значение на 1, значение frame сдвигается вправо на восемь бит, и регистр выполняет один такт работы. В разряд регистразаписывается результат операции XOR значения этого разряда и выходного значения нелинейной функции. Этот процесс продолжается до тех пор, пока все битh\frame не будут использованы.

4)  В разряд регистразаписывается результат операции XOR значения этого разряда и выходного значения нелинейной функции, затем регистр выполняет один такт работы. Данный шаг повторяется 11 или более раз.

Разброс номеров разрядов регистра, вовлеченных в обратную связь и нелинейную функцию, гарантирует, что все байты ключа будут рассеяны по всем байтам состояния регистра после 11 операций. Следовательно, в алгоритме SOBER последний шаг инициализации регистра достаточно повторять 11 раз.

Байт Shutter control должен быть установлен первым значением нелинейной функции выхода сдвигового регистра.

 

Источник: Acoсков А. В., Иванов М. A., Мирский А. A., Рузин А. В., Сланин А. В., Тютвин А. Н. Поточные шифры. – M.: КУДИЦ-ОБРАЗ, 2003. – 336 с.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100