Главная страница
Навигация по странице:

  • Описание демонстрационной программы

  • 2. Задание 1. Ознакомиться со сведениями о программе RijndaelDemo

  • Список литературы

  • Лекция 12. Практикум для студентов всех специальностей, использующих федеральный компонент по основам информационной безопасности и защите информации


    Скачать 1.25 Mb.
    НазваниеПрактикум для студентов всех специальностей, использующих федеральный компонент по основам информационной безопасности и защите информации
    АнкорЛекция 12
    Дата18.09.2020
    Размер1.25 Mb.
    Формат файлаpdf
    Имя файлаЛекция 12.pdf
    ТипПрактикум
    #138521
    страница5 из 5
    1   2   3   4   5
    Расширение ключа (Key Expansion)
    Расширенный ключ представляет собой линейный массив 4-х байтовых слов и обозначен как W[Nb*(Nr+1)]. Первые Nk слов содержат ключ шифрования. Все остальные слова определяются рекурсивно из слов с меньшими индексами. Алгоритм выработки ключей зависит от величины
    Nk: ниже приведена версия для Nk равного или меньшего 6 и версия для
    Nk большего 6.
    Для Nk<6 или Nk=6 мы имеем:
    KeyExpansion(CipherKey,W)
    { for (i = 0; i < Nk; i++) W[i] = CipherKey[i]; for (j = Nk; j < Nb*(Nk+1); j+=Nk)
    {
    W[j] = W[j-Nk] ^ SubByte( Rotl( W[j-1] ) ) ^ Rcon[j/Nk];

    53 for (i = 1; i < Nk && i+j < Nb*(Nr+1); i++)
    W[i+j] = W[i+j-Nk] ^ W[i+j-1];
    }
    }
    Как можно заметить, первые Nk слов заполняются ключом шифрования. Каждое последующее слово W[i] получается посредством
    EXOR предыдущего слова W[i-1] и слова на Nk позиций ранее W[i-Nk].
    Для слов, позиция которых кратна Nk, перед EXOR применяется преобразование к W[i-1], а затем еще прибавляется цикловая константа.
    Преобразование содержит циклический сдвиг байтов в слове, обозначенный как Rotl, затем следует SubByte - применение замены байт.
    Для Nk>6 мы имеем:
    KeyExpansion(CipherKey,W)
    { for (i=0; i{
    W[j] = W[j-Nk] ^ SubByte(Rotl(W[j-1])) ^ Rcon[j/Nk]; for (i=1; i<4; i++) W[i+j] = W[i+j-Nk] ^ W[i+j-1];
    W[j+4] = W[j+4-Nk] ^ SubByte(W[j+3]); for (i=5; i}
    }
    Отличие для схемы при Nk>6 состоит в применении SubByte для каждого 4-го байта из Nk.
    Цикловая константа независит от Nk и определяется следующим образом:
    Rcon[i] = ( RC[i], '00' , '00' , '00' ), где
    RC[0]='01'
    RC[i]=xtime(Rcon[i-1])

    54
    Шифрование
    Шифр Rijndael включает следующие преобразования:

    начальное добавление циклового ключа;

    Nr-1 циклов;

    заключительный цикл.
    На псевдо-Си это выглядит следующим образом:
    Rijndael (State, CipherKey)
    {
    KeyExpansion(CipherKey, ExpandedKey); // Расширение ключа
    AddRoundKey(State, ExpandedKey); // Добавление циклового ключа
    For ( i=1 ; iFinalRound(State, ExpandedKey+Nb*Nr); // заключительный цикл
    }
    Если предварительно выполнена процедура расширения ключа, то процедура будет выглядеть следующим образом:
    Rijndael (State, CipherKey)
    {
    AddRoundKey(State, ExpandedKey);
    For ( i=1 ; iFinalRound(State, ExpandedKey+Nb*Nr);
    }
    Описание демонстрационной программы
    Программа выполнена на языке C# и состоит из двух элементов – файла Rijndael.dll, содержащего реализацию алгоритма шифрования, и демонстрационного приложения
    RijndaelDemo.exe.
    Для работы приложения необходима ОС Windows с установленным .NET Framework v1.1.
    В основном окне демонстрационной программы задаются длина ключа, длина блока, можно посмотреть расширенный ключ шифрования,

    55 вычисляемый в соответствии с заданным ключом шифрования.
    Основное окно программы
    Окно демонстрации расширенного ключа
    Также есть возможность подробно рассмотреть действие всех цикловых преобразований (ByteSub, ShiftRow, MixColumn, AddRoundKey) как при шифровании, так и при расшифровании.

    56
    При шифровании предлагается выбрать исходный файл и файл, куда будет помещен результат шифрования, при расшифровании соответственно зашифрованный файл и файл, предназначенный для помещения результата расшифрования. В процессе используются, указанные в главном окне программы, ключ шифрования и длины ключа и блока.

    57

    58
    2. Задание
    1. Ознакомиться со сведениями о программе RijndaelDemo , изложенными в разделе 1. Запустить модуль RijndaelDemo.exe.
    2. Изучить на примере обычных текстовых файлов способы шифрования и расшифрования с помощью алгоритма Rijndael.
    Подробно рассмотреть действие всех цикловых преобразований
    (ByteSub, ShiftRow, MixColumn, AddRoundKey), как при шифровании, так и расшифровании.
    Исходный текст для шифрования может быть подготовлен заранее и сохранен в файле *.txt.
    3. Сохранить в отчете экранные формы, демонстрирующие процесс шифрования и расшифрования информации, проанализировать полученные результаты.
    4.
    Включить в отчет о лабораторной работе ответы на контрольные
    вопросы, выбранные в соответствии с номером варианта.

    59
    Номер
    варианта
    Контрольные вопросы
    1,5,7,26
    Сравните основные характеристики алгоритмов Rijndael и ГОСТ 28147-89.
    2,4,6
    Сравните основные характеристики алгоритмов Rijndael и DES.
    11,13
    Опишите структуру сети Фейстеля.
    12,14,16
    Приведите обобщенные схемы шифрования данных с помощью алгоритма
    Rijndael и ГОСТ 28147-89. Дайте их сравнительный анализ.
    3,9,18,29
    Сравните один раунд шифрования данных с помощью алгоритма Rijndael и
    ГОСТ 28147-89.
    20,22,24
    Сравните эквивалентность прямого и обратного преобразований в алгоритмах
    Rijndael и ГОСТ 28147-89.
    10,17,19
    Сравните выработку ключевой информации в алгоритмах Rijndael и ГОСТ
    28147-89.
    21,23,25
    Сравните алгоримы Rijndael и ГОСТ 28147-89 по показателям диффузии.
    8, 28,27
    Сравните алгоримы Rijndael и ГОСТ 28147-89 по показателям стойкости.
    12,15,30
    Сравните алгоримы Rijndael и ГОСТ 28147-89 по показателям производительности и удобству реализации.

    60
    Список литературы
    1. Бабаш А.В., Шанкин Г.П. Криптография. / Под редакцией В.П.Шерстюка, Э.А.
    Применко. – М.: СОЛОН-Р, 2007. – 512 с.
    2. Бабаш А.В. Криптографические и теоретико-автоматные аспекты современной защиты информации. Криптографические методы защиты. – М.: Изд.центр ЕАОИ,
    2009. – 414 с.
    3. Баранова Е.К. Эффективное кодирование и защита информации: Текст лекций для студентов специальности 510200. – М.: МГУЛ, 2002. – 88 с.
    4. Мельников В.В. Защита информации в компьютерных системах. М.: Финансы и статистика; Электроинформ, 1997. 368 с.
    5. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. – М.: Радио и связь, 2001. – 376 с.
    6. Смарт Н. Криптография. – М.: Техносфера, 2006. – 528 с.
    1   2   3   4   5


    написать администратору сайта