rijndael (Курсовая - Построение и исследование криптосистемы на основе Rijndael)

PDF-файл rijndael (Курсовая - Построение и исследование криптосистемы на основе Rijndael) Информационная безопасность (18213): Курсовая работа - 7 семестрrijndael (Курсовая - Построение и исследование криптосистемы на основе Rijndael) - PDF (18213) - СтудИзба2018-01-12СтудИзба

Описание файла

Файл "rijndael" внутри архива находится в следующих папках: Курсовая - Построение и исследование криптосистемы на основе Rijndael, Rijndael. PDF-файл из архива "Курсовая - Построение и исследование криптосистемы на основе Rijndael", который расположен в категории "". Всё это находится в предмете "информационная безопасность" из 7 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информационная безопасность" в общих файлах.

Просмотр PDF-файла онлайн

Текст из PDF

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ,ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)ФАКУЛЬТЕТ ВЫЧИСЛИТЕЛЬНЫХ МАШИН И СИСТЕМПостроение и исследование криптосистемына основе Rijndael.Ф.И.О. студентаРыжов Алексей ВладимировичГруппаВИ-1-00Москва 2004Содержание1Введение.32 Создание криптосистемы.2.1 Изменения исходного криптоалгоритма.

.2.2 Определения и обозначения. . . . . . . .2.3 Математическая интерпретация. . . . . .2.4 Спецификация алгоритма. . . . . . . . . .2.4.1 Зашифрование. . . . . . . . . . . .2.4.2 Расшифрование. . . . . . . . . . .2.4.3 Процедура развертывания ключа.2.5 Программная реализация. . . . . .

. . . .................................................3334567783 Методы криптоанализа.3.1 Дифференциальный криптоанализ. . . . . . . . . . . .3.1.1 Описание криптоанализа. . . . . . . . . . . . . .3.1.2 Дифференциальный анализ S-блока. . . . . . .3.1.3 Построение дифференциальной характеристики.3.1.4 Извлечение бит подключа последнего раунда. .3.1.5 Восстановление исходного ключа. . . . . . . . .3.1.6 Эффективность криптоанализа. . . .

. . . . . .3.1.7 Программная реализация. . . . . . . . . . . . . .3.2 Линейный криптоанализ. . . . . . . . . . . . . . . . . .3.2.1 Описание криптоанализа. . . . . . . . . . . . . .3.2.2 Линейный анализ S-блока. . . . . . . . . . . . .3.2.3 Построение линейного приближения. . . . . . .3.2.4 Извлечение бит подключа последнего раунда. .3.2.5 Восстановление исходного ключа. . . . . . . . .3.2.6 Эффективность криптоанализа. . . . .

. . . . .3.2.7 Программная реализация. . . . . . . . . . . . . .................................................................................8991011131616161616181821222323........................................................4 Криптосистема как генератор псевдослучайных последовательностей.4.1 Введение. .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.2 Общее описание набора тестов Руководства НИСТ. . . . . . . .4.3 Описание каждого теста и их параметры. . . . . . . . . . . . . .4.3.1 Частотный (Монобитный) тест (Frequency). . . . . . .4.3.2 Частотный тест в подпоследовательностях(Block-Frequency). . . . . . . . . . . . . . . . . . . . .4.3.3 Тест “дырок” (Runs). . . . . .

. . . . . . . . . . . . . . .4.3.4 Тест “блоков” в подпоследовательностях (Long-Run). .4.3.5 Проверка рангов матриц (Rank). . . . . . . . . . . . . .4.3.6 Спектральный тест (FFT). . . . . . . . . . . . . . . . . .4.3.7 Проверка непересекающихся шаблонов(Aperiodic-Template).

. . . . . . . . . . . . . . . . .4.3.8 Проверка пересекающихся шаблонов(Periodic-Template). . . . . . . . . . . . . . . . . . .4.3.9 Универсальный тест Маурера (Universal). . . . . . . .1242425272727272727282828284.3.10 Проверка сжатия при помощи алгоритма Лемпела-Зива(Lempel-Ziv). . . . . . . . . . . . . .

. . . . . . . . . .4.3.11 Проверка линейной сложности (Linear-Complexity).4.3.12 Проверка серий (Serial). . . . . . . . . . . . . . . . . .4.3.13 Проверка аппроксимированной энтропии (Apen). . . . .4.3.14 Проверка кумулятивных сумм (Cusum). . . . . . . . . .4.3.15 Проверка случайных отклонений (Random-Excursion).4.3.16 Проверка случайных отклонений (вариант)(Random-Excursion-V). .

. . . . . . . . . . . . . . . .4.4 Результат тестирования генератора. . . . . . . . . . . . . . . . .5 Вывод.28292929293030303421 Введение.В данной работе мы рассмотрим основной цикл работ по изучению криптосистемы. Он состоит из создания самой криптосистемы (алгоритмов зашифрования и расшифрования сообщений), проведение криптоанализа этойсистемы и изучение статистических свойств ее работы.На первом этапе мы создадим криптосистему на основе криптографического алгоритма Rijndael, принятого в 2001 г. в качестве американскогостандарта криптографической защиты AES.

AES принят на замену морально устаревшему DES — самому распространенному криптоалгоритму в мире.Этим и обусловлен наш выбор основы нашего алгоритма.На втором этапе мы подвергнем нашу систему двум основным методамкриптоанализа — дифференциальному и линейному. Данные два метода относятся к числу универсальных, а также они были применены для анализаразличных версий DES-подобных шифров.На третьем этапе мы рассмотрим работу нашей системы в режиме генератора псевдослучайных последовательностей (ПСП). Для оценки их качествамы выберем один из наиболее известных статистических тестов, применяемых для анализа генераторов, — Руководство по статистическому тестированию генераторов ПСП (Руководство НИСТ).2 Создание криптосистемы.2.1Изменения исходного криптоалгоритма.Спецификация исходного криптоалгоритма Rijndael описана в Федеральномстандарте шифрования США и легко доступна, поэтому останавливаться наподробном описании мы не будем.

Остановимся только на основных его параметрах.Алгоритм Rijndael относится к числу симметричных блочных шифров иимеет архитектуру “квадрат” (4 × 4), размер каждой ячейки 8 бит; размерблока (бит) 128, 192 или 256 (в качестве стандарта принят вариант шифратолько с размером блока 128 бит); pазмер ключа (бит) 128, 192 или 256;число раундов 10, 12 или 14; pазмер ключевого элемента (бит) 128, 192 или256 (равен размеру блока); число ключевых элементов 11, 13 или 15 (на 1больше числа раундов).На его основе мы создадим его упрощенный аналог. Архитектуру квадрата уменьшим до размера 2 × 2. Размер ячейки оставим прежним, но припреобразовании S-блока разделим 8 бит на две независимые группы по 4бита. Соответственно размер блока и ключа уменьшится до 32 бит. Числораундов сократим до 3.Более подробные детали изменений будут рассмотрены в спецификацииалгоритма.2.2 Определения и обозначения.Далее приведены основные определения и обозначения, которые используются в данной работе (они совпадают с обозначениями исходной спецификацииRijndael, чтобы сохранить общность изложения с другими источниками).3ключ шифрования (ключи зашифрования и расшифрования совпадают)Nbчисло столбцов (16-битных слов) (равно 2)Nkчисло 16-битных слов ключа (равно 2)Nrчисло раундов (равно 3)w[i..j]срез массива развернутого ключа (индексация ведется в 16-битных словах)AddRoundKey()функция добавления ключаSubBytes()функция побайтной заменыShiftRows()функция циклического сдвига строкMixColumns()функция линейной замены столбцовInvSubBytes()функцияпобайтнойзамены,обратнаякSubBytes()KeyExpansion() функция выработки расширенного ключа из KRcon[]массив констант, используемых в функции расширения ключа KeyExpansion()RotWord()функция, которая меняет местами старшие и младшие разряды 16-битного словаSubWord()функция побайтной замены в 16-битном слове⊕операция сложения в поле GF(28 ) (операцияИсключающие-ИЛИ)•операция умножения в поле GF(28 )⊗операция умножения двух многочленов (степенькаждого из которых < 2) по модулю x2 + 1Вход и выход нашего алгоритма представляют собой последовательностииз 32 бит каждая.inp0 inp1 inp2 .

. . inp30 inp31Kout0 out1 out2 . . . out30 out31Промежуточное состояние последовательности во время работы алгоритманазывается state. В начале работы state = inp, а в конце out = state.Каждая последовательность разбивается на четыре группы по 8 бит.state = [s0 s1 s2 s3 ]Эти группы образуют следующий квадрат:2.3s0s2s1s3Математическая интерпретация.Каждая ячейка квадрата (последовательность 8 бит) интерпретируется какзапись коэффициентов многочлена с коэффициентами над полем GF(2) (нумерация идет справа налево).si = [b7 b6 b5 b4 b3 b2 b1 b0 ]b7 x7 + b6 x6 + b5 x5 + b4 x4 + b3 x3 + b2 x2 + b1 x1 + b0 x0 =7Pi=04bi xiНапример, многочлен x6 + x5 + x2 + 1 можно записать в разных формах: вдвоичной — 01100101, или в шестнадцатеричной — 65.

Далее в работе восновном будет использоваться последняя форма записи.Поле GF(28 ) — это поле многочленов с коэффициентами над полем GF(2)по модулю m(x).m(x) = x8 + x4 + x3 + x + 1В данном аспекте никаких изменений в нашей криптосистеме сделаноне было. Следовательно описание операций сложения и умножения в полеGF(28 ) нашей системы совпадает с исходной.Но из-за изменения количества строк и столбцов квадрата, измениласьоперация умножения полиномов с коэффициентами над полем GF(28 ).

Если висходной схеме были многочлены по модулю x4 +1, то в нашем случае модульравен x2 + 1. Выбор такого модуля обусловлен сохранением выражения:xi mod (x2 + 1) = xi mod 2 .Пусть даны два многочлена над полем GF(28 )a(x) = a1 x + a0 , и b(x) = b1 x + b0 .Тогда их сумма будет равнаa(x) + b(x) = (a1 ⊕ b1 )x + (a0 ⊕ b0 ),а произведение равноd(x) = a(x) ⊗ b(x) = d1 x + d0d0 = a0 • b0 ⊕ a1 • b1d1 = a0 • b1 ⊕ a1 • b0Заметим, что если многочлен a(x) фиксирован, то умножение можно записать в матричной форме·¸ ·¸·¸d0a0 a1b0=d1a1 a0b12.4Спецификация алгоритма.Приведем конкретные алгоритмы для зашифрования и расшифрования.

Дляначала отметим, что для обоих алгоритмов раунд состоит из четырех этапов(преобразований различного характера).Первое преобразование — это взаимооднозначная замена одного байта надругой. Это преобразование является нелинейным, в литературе оно носитназвание S-блока. В программной реализации за это преобразование отвечаетфункция SubBytes().Второе преобразование — это циклический сдвиг влево каждой строкина определенное число позиций. В программной реализации за это преобразование отвечает функция ShiftRows().Третье преобразование — это преобразует каждый столбец в другой поопределенному правилу. В программной реализации за это преобразованиеотвечает функция MixColumns().

Второе и третье преобразования вместеобразуют линейное, в литературе оно носит название P-блока.Четвертое преобразование — это сложение по модулю 2 текущего состояния и ключа раунда. В программной реализации за это преобразованиеотвечает функция AddRoundKey().52.4.1 Зашифрование.Полный алгоритм зашифрования описан следующим образом:state = inpAddRoundKey(state, w[0..1])for round = 1 step 1 to Nr–1SubBytes(state)ShiftRows(state)MixColumns(state)AddRoundKey(state, w[round*Nb..round*Nb+1])end forSubBytes(state)ShiftRows(state)AddRoundKey(state, w[Nr*Nb..Nr*Nb+1])out = stateОткуда видно, что последний раунд отличается от всех отсутствием преобразования MixColumns(). Кроме того, можно условно рассматривать первое преобразование AddRoundKey() как 0 раунд.Преобразование SubBytes().

Упрощение данного преобразования является самым значимым, так как выбор определенного S-блока сильно сказывается на результатах методов криптоанализа.Во-первых, зададим подстановку S16 , которая действует на полубайте.0 1 2 3 4 5 6 7 8↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓9 B 8 E A C 6 4 D9 A B C D E F↓ ↓ ↓ ↓ ↓ ↓ ↓F 1 3 5 7 2 0Во-вторых, разделим байт s на старшие sH и младшие полубайты sL .Нелинейное преобразование SB[s] байта s строится следующим образомSB[s] = SB[sH sL ] = [S16 (sH )S16 (sL )].Другими словами, мы заменяем каждую шестнадцатеричную цифру на другую в соответствии с подстановкой S16 .Итоговое преобразование SubBytes() заменяет каждый байт si на SB[si ].Преобразование ShiftRows().

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее