Автор работы: Пользователь скрыл имя, 27 Мая 2012 в 12:19, контрольная работа
MARS — шифр-кандидат в AES, разработанный корпорацией IBM, создавшей в своё время DES. По заявлению IBM, в алгоритм MARS вложен 25-летний криптоаналитический опыт фирмы, и наряду с высокой криптографической стойкостью шифр допускает эффективную реализацию даже в таких ограниченных рамках, какие характерны для смарт-карт
Вступление..............................................................................................................................3
Краткое описание алгоритма……………………………………………………………...4
Структура алгоритма………………………………………………………………………5
Прямое перемешивание…………………………………………………………………...6
Криптографическое ядро………………………………………………………………….8
Е-функция………………………………………………………………………………….9
Обратное перемешивание………………………………………………………………..11
Особенности алгоритма…………………………………………………………………...13
Преимущества и недостатки алгоритма………………………………………………...14
Анализ безопасности алгоритма………………………………………
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
УДМУРТСКИЙ
ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
Институт права, социального управления и безопасности
Кафедра
информационной безопасности в управлении
Контрольная работа
по дисциплине «Криптографическая защита информации »
на тему:
«Блочный алгоритм MARS»
Выполнил:
Специальности
“Организация и технология защиты информации”
Алиев Эльнур
Айдынович
Проверил:
Бас Алексей Анатольевич
Ижевск 2012
Содержание
Вступление....................
Краткое
описание алгоритма………………………………………………………
Структура
алгоритма………………………………………………………
Прямое
перемешивание……………………………………………
Криптографическое
ядро………………………………………………………………….
Е-функция………………………………………………………
Обратное
перемешивание……………………………………………
Особенности
алгоритма………………………………………………………
Преимущества
и недостатки алгоритма………………………………………………...
Анализ
безопасности алгоритма………………………………………………………
Вступление
MARS
— шифр-кандидат в AES, разработанный
корпорацией IBM, создавшей в своё
время DES. По заявлению IBM, в
алгоритм MARS вложен 25-летний криптоаналитический
опыт фирмы, и наряду с
По правилам конкурса AES, участники могли вносить незначительные изменения в свои алгоритмы. Воспользовавшись этим правилом, авторы MARSa изменили процедуру расширения ключа, что позволило снизить требования к энергонезависимой и оперативной памяти. Ниже будет предоставлена модифицированная версия алгоритма. По результатам конкурса AES, MARS вышел в финал, но уступил Rijndael.
После объявления результатов (19 Мая 2000 года) группа разработчиков составила своё собственное мнение о конкурсе AES, где дала комментарии на претензии к своему детищу.
Сейчас
MARS распространяется по всему миру
под Royalty Free лицензией.
Краткое
описание алгоритма
MARS
является блочно-симметричным
Алгоритм уникален тем, что использовал практически все существующие технологии, применяемые в криптоалгоритмах, а именно:
Использование двойного перемешивания
представляет сложность для криптоанализа,
что некоторые относят к недостаткам алгоритма.
В то же время на данный момент не существует
каких-либо эффективных атак на алгоритм,
хотя некоторые ключи могут генерировать
слабые подключи.
Структура
алгоритма
Авторы шифра исходили из следующих предположений:
В шифре MARS использовались следующие методы шифрования:
3-го типа.
Структуру алгоритма MARS можно описать следующим образом:
Прямое перемешивание
В первой фазе на каждое слово данных накладывается слово ключа, а затем происходит восемь раундов смешивания согласно сети Фейстеля третьего типа совместно с некоторыми дополнительными смешиваниями. В каждом раунде мы используем одно слово данных (называемое, исходным словом) для модификации трёх других слов(называемые, целевыми словами). Мы рассматриваем четыре байта исходного слова в качестве индексов на двух S-блоков, S0 и S1, каждый, состоящий из 256 32-разрядных слов, а далее проводим операции XOR или добавления данных соответствующего S-блока в три других слова.
Если четыре байта исходного слова b0, b1, b2, b3 (где b0 является первым байтом, а b3 является старшим байтом), то мы используем b0, b2, как индексы в блоке S0 и байты b1, b3, как индексы в S-блоке S1. Сначала сделаем XOR S0 к первому целевому слову, а затем прибавим S1 к тому же слову. Мы также добавляем S0 ко второму целевому слову и XOR блока- S1 к третьему целевому слову. В заключении, мы вращаем исходное слово на 24 бита вправо.
В следующем раунде мы вращаем имеющиеся у нас четыре слова: таким образом, нынешнее первое целевое слово становится следующим исходным словом, текущее второе целевое слово становится новым первым целевым словом, третье целевое слово становится следующую вторым целевым словом, и текущее исходное слово становится третьим целевым словом.
Более того, после каждого из четырёх раундов мы добавляем одно из целевых слов обратно в исходное слово. В частности, после первого и пятого раундов мы добавим третье целевое слово обратно в исходное слово, а после второго и шестого раунда мы добавляем первое целевое слово обратно в исходное слово. Причиной этих дополнительных операций смешивания, является ликвидация нескольких простых дифференциальных криптоатак в фазе перемешивания, чтобы нарушить симметрию в фазе смешивания и получить быстрый поток.
Псевдокод
1. // Первое наложение ключа на данные
2.
3.
4. // Затем 8 раундов прямого перемешивания
5. // используем D[0] для модифицирования D[1]; D[2]; D[3]
6. // обращаемся к 4-ем S-блокам
7.
8.
9.
10.
11. // и вращаем исходное слово вправо
12.
13. // также проделаем
дополнительные операции
14.
15. // добавим D[3] к исходному слову
16.
17. // добавим D[1] к исходному слову
18. // вращаем массив D[ ]
19.
20.
Криптографическое ядро
Криптографическое ядро MARS — сеть Фейстеля 3-го типа, содержащая в себе 16 раундов. В каждом раунде мы используем ключевую Е-функцию, которая является комбинацией умножений, вращений, а также обращений к S-блокам. Функция принимает на вход оно слово данных, а возвращает три слова, с которыми впоследствии будет осуществлена операция сложения или XOR к другим трем словам данным. В дополнении исходное слово вращается на 13 бит влево.
Для обеспечения, серьёзного сопротивления к криптоатакам, три выходных значения Е-функции(O1, O2, O3) используются в первых восьми раундах и в последних восьми раундах в разных порядках. В первые восемь раундов мы добавляем O1 и O2 к первого и второго целевому слову, соответственно, и XOR O3 в третьему целевому слову. За последние восемь раундов, мы добавляем O1 и O2 к третьему и второму целевому слову, соответственно, и XOR O3 к первому целевому слову.
Псевдокод
1. // Проделаем
16 раундов шифрования при
2.
3.
4.
5.
6. // сначала 8 раундов прямого преобразования
7.
8.
9. // потом 8 раундов обратного преобразования
10.
11.
12.