Криптографические методы обеспечения безопасности можно разделить на две большие группы: блочные шифры и поточные. Блочные обрабатывают поступающую информацию, предварительно разбивая ее на блоки определенной длины, как правило, вносят задержку и предназначены для закрытия данных. Поточные шифры обрабатывают информацию в реальном масштабе времени, без разделения на блоки и наиболее подходят для закрытия речи.
Шифр RC4
Это потоковый шифр, широко применяющийся в различных системах защиты информации в компьютерных сетях (например, в протоколах SSL и TLS, алгоритме безопасности беспроводных сетей WEP, для шифрования паролей в Windows NT). Алгоритм RC4 строится как и любой потоковый шифр на основе параметризованного ключом генератора псевдослучайных битов с равномерным распределением. Длина ключа обычно составляет от 5 до 64 байт. Максимальная длина ключа 256 байт.
Основные преимущества шифра - высокая скорость работы и переменный размер ключа. RC4 довольно уязвим, если используются не случайные или связанные ключи, один ключевой поток используется дважды. Эти факторы, а также способ использования могут сделать криптосистему небезопасной (например WEP).
Ядро алгоритма состоит из функции генерации ключевого потока. Эта функция генерирует последовательность битов (ki), которая затем объединяется с открытым текстом (mi) посредством суммирования по модулю два. Так получается шифрограмма (ci):
(2.1)
Расшифровка заключается в регенерации этого ключевого потока (ki) и сложении его и шифрограммы (ci) по модулю два. В силу свойств суммирования по модулю два на выходе мы получим исходный незашифрованный текст (mi):
(2.2)
Другая главная часть алгоритма - функция инициализации, которая использует ключ переменной длины для создания начального состояния генератора ключевого потока.- фактически класс алгоритмов, определяемых размером его блока. Этот параметр n является размером слова для алгоритма. Обычно, n = 8, но в целях анализа можно уменьшить его. Однако для повышения безопасности необходимо увеличить эту величину. Внутреннее состояние RC4 представляется в виде массива слов размером 2n и двух счетчиков, каждый размером в одно слово. Массив известен как S-бокс, и далее будет обозначаться как S. Он всегда содержит перестановку 2n возможных значений слова. Два счетчика обозначены через i и j.
Этот алгоритм использует ключ, сохраненный в Key, и имеющий длину l байт. Инициализация начинается с заполнения массива S, далее этот массив перемешивается путем перестановок определяемых ключом. Так как только одно действие выполняется над S, то должно выполняться утверждение, что S всегда содержит все значения кодового слова.
Рисунок 2.1 - Реализация шифра RC4
Шифр SEAL
Software-optimized Encryption Algorith (программно-оптимизированный алгоритм шифрования) - симметричный поточный алгоритм шифрования данных оптимизированный для программной реализации.
Разработан в IBM Филом Рогэвеем и Доном Копперсмитом в 1993 году. Алгоритм оптимизирован и рекомендован для 32-битных процессоров. Для работы ему требуется кэш-память на несколько килобайт и восемь 32-битовых регистров. Cкорость шифрования - примерно 4 машинных такта на байт текста. Для кодирования и декодирования используется 160-битный ключ. Чтобы избежать нежелательной потери скорости по причине медленных операций обработки ключа, SEAL предварительно выполняет с ним несколько преобразований, получая в результате три таблицы определенного размера. Непосредственно для шифрования и дешифрирования текста вместо самого ключа используются эти таблицы. Алгоритм считается очень надёжным, очень быстрым.
Рисунок 2.2 -Реализация алгоритма SEAL
Чтобы избежать потери скорости шифрования на медленных операциях алгоритм использует три таблицы: R, S и T. Эти таблицы вычисляются с помощью процедуры из алгоритма SHA-1 и зависят только от ключа. Заполнение данных таблиц можно описать с помощью функции G, которая из 160-битной строки и 32-битного числа возвращает 160-битное значение .
Процесс шифрования состоит из большого числа итераций, каждая из которых завершается генерацией псевдослучайной функции. Количество пройденных итераций показывает счетчик l. Все они подразделяются на несколько этапов с похожими операциями. На каждом этапе старшие 9 битов одного из регистров (A, B, C или D) используются в качестве указателя, по которому из таблицы T выбирается значение. Это значение складывается арифметически или поразрядно по модулю 2 (XOR) со следующим регистром (снова один из A, B, C или D). Затем первый выбранный регистр преобразуется циклическим сдвигом вправо на 9 позиций. Далее либо значение второго регистра модифицируется сложением или XOR с содержимым первого (уже сдвинутым) и выполняется переход к следующему этапу, либо этот переход выполняется сразу. После 8 таких этапов значения A, B, C и D складываются (арифметически или XOR) с определенными словами из таблицы S и добавляются в ключевую последовательность y. Завершающий этап итерации заключается в прибавлении к регистрам дополнительных 32-битных значений (n1, n2 или n3, n4). Причем выбор конкретного значения зависит от четности номера данной итерации.
Читайте также
Нанотехнологии в науке и технике
В течение тысячелетий человек использовал в быту и технике
макроскопические тела, состоящие из большого числа атомов, будь это каменный
топор или авиалайнер. Первая научно- ...
Особенности работы современного средства автоматической радиолокационной прокладки (САРП)
Устройство
компьютерной индикации, совмещенное со средствами автоматической
радиолокационной прокладки (САРП) и с электронной картографической системой,
размещаемых в ходовой рубке судн ...
Проектирование устройства для измерения статических характеристик электромагнитного двигателя
Ветер - это горизонтальное перемещение, поток воздуха параллельно земной
поверхности, возникающее в результате неравномерного распределения тепла и
атмосферного давления и направленное и ...