Автор работы: Пользователь скрыл имя, 28 Декабря 2011 в 17:06, реферат
Основная идея поточного шифрования состоит в том, что каждый из последовательных знаков открытого текста подвергается своему преобразованию. В идеале разные знаки открытого текста подвергаются разным преобразованиям, т.о. преобразование, которому подвергаются знаки открытого текста, должно изменяться с каждым следующим моментом времени. Реализуется эта идея следующим образом. Некоторым образом получается последовательность знаков k1, k2, … , называемая ключевым потоком (keystream) или бегущим ключом (running key, RK). Затем каждый знак xi открытого текста подвергается обратимому преобразованию, зависящему от ki – соответствующего знака ключевого потока.
Введение 2
Классификация поточных шифров 3
Отличие блочных шифров от поточных 4
Основные Виды шифров 6
SEAL 6
A3 8
A5 10
RC4(подробно) 12
При разработке
этого алгоритма главное
Для шифрования
и расшифрования каждого байта текста
шифр SEAL требует около четырех машинных
тактов. Он работает со скоростью примерно
58 Мбит на 32-битном процессоре с тактовой частотой 50 МГц и является
одним из самых быстрых шифров.
A3 — алгоритм, используемый в процессе аутентификации в глобальном цифровом стандарте для мобильной сотовой связи GSM. A3 является, таким образом, элементом системы обеспечения конфиденциальности разговора в GSM наряду с алгоритмами A5 и A8. Задача алгоритма — генерация отзыва (SRES — Signed Response) на случайный пароль (RAND — Random), получаемый сотовым телефоном (MS — Mobile Station) от центра коммутации MSC (MSC — Mobile Switching Centre) в процедуре аутентификации. А3 содержится в SIM-карте абонента.
Формат входных и выходных данных для алгоритма A3, а также весь процесс аутентификации строго определены консорциумом 3GPP. Стоит отметить, что каждый отдельный оператор выбирает принцип действия алгоритма A3. Таким образом, A3 не является стандартизованным, а определяется оператором. Однако если оператор не хочет придумывать свой алгоритм A3, он может воспользоваться стандартной реализацией алгоритма.
В настоящее время принят следующий формат входных и выходных данных RAND, Ki, SRES алгоритма A3: длина Ki — 128 бит длина RAND — 128 бит длина SRES — 32 бита
Время выполнения алгоритма A3 должно быть меньше 500 миллисекунд.
В настоящее время известны следующие стандартные реализации алгоритма A3:
COMP128 является
самой первой версией
COMP128
В 1998 году произошла утечка описания алгоритма COMP128 в Интернет. Хотя описание было не полным, посредством обратной разработки код был полностью восстановлен и теперь он доступен публично
По сути, COMP128 является хэш-функцией разрядности 128 бит. Разрядность аргумента 256 бит или 32 байта (128 бит Ki + 128 бит RAND). 32 старших бита вычисленного значения берутся в качестве SRES, а 64 младших бита в качестве сессионного ключа Kc. Пусть X [0..32] — 32байтный вход алгоритма, где X [0..15] = Ki, а X [16..31] = RAND. T0 [0..511], T1 [0..255],T2 [0..127],T3 [0..63] и T4 [0..31] — секретные таблицы подстановки байт. Алгоритм состоит из 8 раундов, в каждом раунде 5 итераций. Каждая итерация заключается в поиске по соответствующей таблице (T0 для первой итерации, T1 — для второй, и т. д.) и подстановке байт. В конце каждого раунда, за исключением последнего, происходит перестановка полученных 128 бит результата, и после перестановки эти 128 бит используется в следующем раунде. Описание одного раунда в псевдокоде:
(подстановки)
for i = 0 to 4 do:
for j = 0 to 2^i - 1 do:
for k = 0 to 2^(4-i) - 1 do:
{
s = k + j*2^(5 - i)
t = s + 2^(4-i)
x = (X[s] + 2X[t]) mod (2^(9 - i))
y = (2X[s] + X[t]) mod (2^(9 - i))
X[s]=Ti[x]
X[t]=Ti[y]
}
(образование бит из байт)
for j = 0 to 31 do:
for k = 0 to 7 do:
{
bit [4*j+k] = the (8-k)th bit of byte j
}
(перестановка)
if (i < 8) then
for j = 0 to 15 do:
for k = 0 to 7 do:
{
next bit = (8 x j + k) x 17 mod 128
Bit k of X[j + 16] = bit[next_bit]
}
На каждой итерации выходной байт зависит
от двух входных байт. Два входных
байта используются для определения
элемента в таблице подстановки.
Этот элемент обновит выходной байт.
Таблица подстановки для i-ой итерации
содержит 2^(9 — i) элементов размером в (8 —
i) бит. То есть
таблица число элементов размер одного элемента
T0 512 8 бит
T1 256 7 бит
T2 128 6 бит
T3 64 5 бит
T4 32 4 бита
По сути, каждый из 32 выходных байт последней итерации раунда имеет лишь 4 значимых бита. Поэтому в конце итерации происходит преобразование этих 32 байт перестановкой в 16 байт, все биты которых значимые. Эти 16 байт записываются в X [16 .. 31], и запускается следующий раунд алгоритма (в X [0 .. 15] значение Ki никак не меняется).
Такую структуру алгоритма David Wagner назвал butterfly structure, что означает «в форме бабочки»
COMP128-2 и COMP128-3
Хотя сейчас
ясно, что принцип «безопасность
за счёт неизвестности» не работает, верcии
COMP128-2 и COMP128-3 держатся в секрете
Milenage
Алгоритмы аутентификации и генерации сеансового ключа Milenage были разработаны консорциумом 3GPP объединёнными усилиями входящих в 3GPP организаций. Нет никаких дополнительных требований или разрешений, необходимых для использования этих алгоритмов. Пример использования Mileage в качестве A3 показан в документе 3GPP TS 55.205 «Specification of the GSM-MILENAGE Algorithms: An example algorithm set for the GSM Authentication and Key Generation functions A3 and A8». Полная спецификация Milenage представлена на сайте консорциума 3GPP
Milenage является
неуязвимым к каким-либо
А5 — это поточный алгоритм шифрования, используемый для обеспечения конфиденциальности передаваемых данных между телефоном и базовой станцией в европейской системе мобильной цифровой связи GSM (Group Special Mobile).
Шифр основан на побитовом сложении по модулю два (булева операция XOR) генерируемой псевдослучайной последовательности и шифруемой информации. В A5 псевдослучайная последовательность реализуется на основе трёх линейных регистров сдвига с обратной связью. Регистры имеют длины 19, 22 и 23 бита соответственно. Сдвигами управляет специальная схема, организующая на каждом шаге смещение как минимум двух регистров, что приводит к их неравномерному движению. Последовательность формируется путём операции XOR над выходными битами регистров.
Алгоритм A5 в настоящее время — это целое семейство шифров. Для описания возьмем А5/1, как родоначальника этого семейства. Изменения в производных алгоритмах опишем отдельно.
Потоковое шифрование
Основная статья: поточный шифр
Схема поточного шифра: сложение открытого текста и последовательности бит даёт шифротекст
В этом алгоритме
каждому символу открытого
Формирование
выходной последовательности происходит
путём сложения потока исходного
текста с генерируемой последовательностью
(гаммой). Особенность операции XOR заключается
в том, что применённая чётное
число раз, она приводит к начальному
значению. Отсюда, декодирование сообщения
происходит путём сложения шифротекста
с известной
Таким образом, безопасность системы полностью зависит от свойств последовательности. В идеальном случае каждый бит гаммы — это независимая случайная величина, и сама последовательность является случайной. Такая схема была изобретена Вернамом в 1917 году и названа в его честь. Как доказал Клод Шеннон в 1949 году, это обеспечивает абсолютную криптостойкость. Но использование случайной последовательности означает передачу по защищённому каналу сообщения равного по объёму открытому тексту, что значительно усложняет задачу и практически нигде не используется.
В реальных системах
создаётся ключ заданного размера,
который без труда передаётся
по закрытому каналу. Последовательность
генерируется на его основе и является
псевдослучайной. Большой класс
поточных шифров (в том числе A5) составляют
шифры, генератор псевдослучайной
последовательности
которой основан на регистрах сдвига с
линейной обратной связью.
Последний шифр рассмотрим подробнее:
RC4
(англ. Rivest Cipher 4 или англ. Ron’s Code, также
известен как ARCFOUR или ARC4 (англ.
Alleged RC4)) — это потоковый шифр,
широко применяющийся в
Шифр разработан компанией RSA Security и для его использования требуется лицензия.
Алгоритм RC4 строится, как и любой потоковый шифр на основе параметризованного ключом генератора псевдослучайных битов с равномерным распределением. Длина ключа обычно составляет от 5 до 64 байт. Максимальная длина ключа 256 байт.
Основные преимущества шифра — высокая скорость работы и переменный размер ключа. RC4 довольно уязвим, если используются не случайные или связанные ключи, один ключевой поток используется дважды. Эти факторы, а также способ использования могут сделать криптосистему небезопасной (например, WEP).
Потоковый шифр RC4 был создан Роном Ривестом из RSA Security в 1987 году. Хотя официально сокращение обозначает Rivest Cipher 4, его часто считают сокращением от Ron’s Code.Шифр RC4 применяется в некоторых широко распространённых стандартах и протоколах шифрования таких, как WEP, WPA и TLS.
Главными факторами, способствовавшими широкому применению RC4, были простота его аппаратной и программной реализации, а также высокая скорость работы алгоритма в обоих случаях.
В
США длина ключа для
Описание алгоритма
Генератор ключевого потока RC4
Ядро алгоритма состоит из функции генерации ключевого потока. Эта функция генерирует последовательность битов (ki), которая затем объединяется с открытым текстом (mi) посредством суммирования по модулю два. Так получается шифрограмма (ci):