КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Алгоритм вычисления ключей
Как нетрудно заметить, на каждой итерации используется новое значение ключа (длиной 48 бит). Новое значение ключа вычисляется из начального ключа (рис. 5.3). Ключ представляет собой 64‑битовый блок с 8 битами контроля по четности, расположенными в позициях 8, 16, 24, 32, 40, 48, 56, 64. Для удаления контрольных бит и подготовки ключа к работе используется функция первоначальной подготовки ключа (табл. 5.6).
Табл. 5.6 разделена на две части. Результат преобразования разбивается на две половины и , по 28 бит каждая. Первые четыре строки матрицы определяют, как выбираются биты последовательности (первым битом будет бит 57 ключа шифра, затем бит 49 и т.д., а последними битами ‑ биты 44 и 36 ключа). Следующие четыре строки матрицы определяют, как выбираются биты последовательности (т.е. последовательность будет состоять из бит 63, 55, 47,...,12, 4 ключа шифра).
Как видно из табл. 5.6, для генерации последовательностей и не используются биты 8, 16, 24, 32, 40, 48, 56 и 64 ключа шифра. Эти биты не влияют на шифрование и могут служить для других целей (например, для контроля по четности). Таким образом, в действительности ключ шифра является 56‑битовым. После определения и рекурсивно определяются и , . Для этого применяются операции циклического сдвига влево на один или два бита в зависимости от номера шага итерации, как показано в табл. 5.7.
Операции сдвига выполняются для последовательностей и независимо. Например, последовательность получается посредством циклического сдвига влево на две позиции последовательности , а последовательность ‑ посредством сдвига влево на две позиции последовательности , и получаются из и посредством сдвига влево на одну позицию. Ключ , определяемый на каждом шаге итерации, есть результат выбора конкретных бит из 56‑битовой последовательности и их перестановки. Другими словами, ключ , где функция определяется матрицей, завершающей обработку ключа (табл. 5.8).
Как следует из табл. 5.8, первым битом ключа будет 14‑й бит последовательности , вторым ‑ 17‑й бит, 47‑м битом ключа будет 29‑й бит , а 48‑м битом ‑ 32‑й бит . 4.4. Основные режимы работы алгоритма Чтобы воспользоваться алгоритмом для решения разнообразных криптографических задач, разработаны четыре рабочих режима: 1. электронная кодовая книга 2. сцепление блоков шифра ; 3. обратная связь по шифротексту 4. обратная связь по выходу
Режим "Электронная кодовая книга"
Длинный файл разбивают на 64‑битые отрезки (блоки) по 8 байт. Каждый из этих блоков шифруют независимо с использованием одного и того же ключа шифрования (рис. 5.4).
Основное достоинство ‑ простота реализации. Недостаток ‑ относительно слабая устойчивость против квалифицированных криптоаналитиков. Из-за фиксированного характера шифрования при ограниченной длине блока 64 бита возможно проведение криптоанализа "со словарем". Блок такого размера может повториться в сообщении вследствие большой избыточности в тексте на естественном языке. Это приводит к тому, что идентичные блоки открытого текста в сообщении будут представлены идентичными блоками шифротекста, что дает криптоаналитику некоторую информацию о содержании сообщения.
Режим "Сцепление блоков шифра"
В этом режиме исходный файл разбивается на 64‑битые блоки: . Первый блок складывается по модулю 2 с 64‑битовым начальным вектором , который меняется ежедневно и держится в секрете (рис. 5.5). Полученная сумма затем шифруется с использованием ключа известного и отправителю, и получателю информации. Полученный 64‑битовый шифр складывается по модулю 2 со вторым блоком текста, результат шифруется и получается второй 64‑битовый шифр и т.д. Процедура повторяется до тех пор, пока не будут обработаны все блоки текста. Таким образом, для всех ( ‑ число блоков) результат шифрования определяется следующим образом: , где ‑ начальное значение шифра, равное начальному вектору (вектору инициализации).
Очевидно, что последний 64‑битовый блок шифротекста является функцией секретного ключа, начального вектора и каждого бита открытого текста независимо от его длины. Этот блок шифротекста называют кодом аутентификации сообщения (КАС). Код КАС может быть легко проверен получателем, владеющим секретным ключом и начальным вектором, путем повторения процедуры, выполненной отправителем. Посторонний, однако, не может осуществить генерацию КАС, который воспринялся бы получателем как подлинный, чтобы добавить его к ложному сообщению, либо отделить КАС от истинного сообщения для использования его с измененным или ложным сообщением. Достоинство данного режима в том, что он не позволяет накапливаться ошибкам при передаче. Блок является функцией только и . Поэтому ошибка при передаче приведет к потере только двух блоков исходного текста.
Режим "Обратная связь по шифротексту" В этом режиме размер блока может отличаться от 64 бит (рис 5.6). Файл, подлежащий шифрованию (расшифровыванию), считывается последовательными блоками длиной бит (). Входной блок (64‑битовый регистр сдвига) вначале содержит вектор инициализации, выровненный по правому краю. Предположим, что в результате разбиения на блоки мы получили блоков длиной бит каждый (остаток дописывается нулями или пробелами). Тогда для любого блок шифротекста , где обозначает старших бит предыдущего зашифрованного блока.
Обновление сдвигового регистра осуществляется путем удаления его старших бит и записи в регистр. Восстановление зашифрованных данных также выполняется относительно просто: и вычисляются аналогичным образом и .
Рис. 5.6. Схема алгоритма в режиме обратной связи по шифротексту Режим "Обратная связь по выходу"
Этот режим тоже использует переменный размер блока и сдвиговый регистр, инициализируемый так же, как в режиме , а именно ‑ входной блок вначале содержит вектор инициализации , выровненный по правому краю (рис. 5.7). При этом для каждого сеанса шифрования данных необходимо использовать новое начальное состояние регистра, которое должно пересылаться по каналу открытым текстом. Положим для всех , где ‑ старшие бит операции . Отличие от режима обратной связи по шифротексту состоит в методе обновления сдвигового регистра. Это осуществляется путем отбрасывания старших бит и дописывания справа .
Рис. 5.7. Схема алгоритма в режиме обратной связи по выходу
Дата добавления: 2014-12-16; Просмотров: 1532; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |