Криптографические методы обеспечения безопасности можно разделить на две большие группы: блочные шифры и поточные. Блочные обрабатывают поступающую информацию, предварительно разбивая ее на блоки определенной длины, как правило, вносят задержку и предназначены для закрытия данных. Поточные шифры обрабатывают информацию в реальном масштабе времени, без разделения на блоки и наиболее подходят для закрытия речи.
Шифр 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). Причем выбор конкретного значения зависит от четности номера данной итерации.
Читайте также
Проектирование дискретного устройства
На современном этапе развития транспорта наблюдается бурный рост темпов и
объемов перевозок, особенно на железнодорожном транспорте в силу высокой
скорости и невысокой стоимости грузопер ...
Проектирование центра обслуживания вызовов
Целью
настоящей курсовой работы является получение знаний о принципах
функционирования современных центров обслуживания вызовов (ЦОВ) и навыков их
проектирования с применением известных ...
Проектирование САУ приводом наведения реактивной бомбометной установки РБУ-6000
Реактивные бомбометные установки РБУ-1000
"Смерч-2" и РБУ-6000 "Смерч-3" предназначенные для залповой
и одиночной стрельбы реактивными глубинными бомбами РГБ-60 ...