Министерство образования Республики Беларусь БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра «Инженерная математика» У Н.Н. Буснюк Т Н Б КРИПТОГРАФИЧЕСКИЕ СРЕДСТВА ЗАЩИТЫ ИНФОРМАЦИйИ и Учебно-методирческое пособие для студентов специальности 1-38 02 03 о «Техническое обеспечение безопасности» специализации 1-38 02 03 02 «Аппаратно-программные средства т защиты компьютерной информации» и В 2 частях з о Часть 2 п е Учебное электронное пособие Р Минск БНТУ 2011 УДК 512.624.95:378.147.091.3 Рецензенты: У И.Е. Зуйков, заведующий кафедрой «Информационно-измерительная техника и технология» БНТУ, доктор физико-математических наук, профессор; Т А.А. Черняк, профессор кафедры математики БГПУ, доктор физико- математических наук. Н Б В учебн-методическом пособии размещенйы две лабораторные работы. Одна работа посвящена методам шифрования с симметричным ключом и и рассматривает Стандарт криптографической защиты – AES. Во второй р лабораторной работе рассмотрены аппаратные средства криптографической защиты информации серий Криптоон и Шипка и квантовый метод шифрования. т и з Белорусский национальный технический университет о Пр-т Независимости, 65, г. Минск, Республика Беларусь Тел (017) 292-77-52 факс (017) 292-91-37 п Регистрационный № ЭИ БНТУ/ПСФ85-64.2012 е Р © БНТУ, 2012 © Буснюк Н.Н., 2012 © Буснюк Н.Н., Катанаева С.С., компьютерный дизайн, 2012 2 СОДЕРЖАНИЕ ВВЕДЕНИЕ..............................................................................................................4 Лабораторная работа № 8 БЛОЧНОЕ ШИФРОВАНИЕ. АЛГОРИТМ АЕS....5 У Лабораторная работа № 9 АППАРАТНО-ПРОГРАММНЫЕ СРЕДСТВА ЗАЩИТЫ КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ.............................................. 622 Т ЛИТЕРАТУРА...................................................................................................1000 Н ПРИЛОЖЕНИЕ.................................................................................................1000 Б й и р о т и з о п е Р 3 ВВЕДЕНИЕ В часть 2 учебно-методического пособия включены две лабораторные работы. Каждая из них состоит из теоретической части и контрольные задания, которые приводятся в конце лабораторных работ. У Лабораторная работа № 8 посвящена методам шифрования с Т симметричным ключом и рассматривает Стандарт криптографической защиты – AES (Advanced Encryption Standard), который являетсНя стандартом шифрования США, принятым в 2000 году. К лабораторной работе прилагается Б программный комплекс «Visual AES», реализованный на платформе Windows и включающий: – средства полноценной йреализации алгоритмов шифрования/расшифровывания по стандарту AES с использованием основных и блочных режимов: ECB, CBC, CFB, OFB, CTR; р – средства визуализации и протоколирования раундовых преобразований о шифра с возможностями детальной настройки основных параметров; – средства анализа алгоритма, состоящие из контроля за математическим т аппаратом раундовых трансформаций и их пошагово управляемой трассировки. и В лабораторной работе № 9 рассмотрены аппаратные средства з криптографической защиты информации серии Криптон и Шипка, а также о такой относительно новый метод шифрования, как квантовый метод. п е Р 4 Лабораторная работа № 8 БЛОЧНОЕ ШИФРОВАНИЕ. АЛГОРИТМ АЕS Цель работы: Изучение устройства и методов работы симметричных У криптосистем на примере алгоритма блочного шифрования АЕS. Приобретение навыков шифрования с помощью программы шифрования Visual AES. Т Необходимые математические сведения Н Поле F есть множество, на котором определены операции сложения и Б умножения, удовлетворяющие требованиям: ассоциативности, коммутативности, дистрибутивности, существования аддитивного 0 и й мультипликативной 1, аддитивных обратных и мультипликативных обратных и для всех элементов за исключением 0. Конечное поле F(p) с конечным рчислом р элементов играет важную роль в криптографии. В общем случае число элементов p = qn, где q – некоторое о простое число и n >1. Такие конечные поля называют полями Галуа и т обозначают GF(qn) или GF(q) при n =1. (Эварист Галуа – французский и математик начала XIX века.) Многие криптосистемы базируются на полях Галуа GF(q), где q з– большое простое число. Если q – опростое число, то число a˛ [1, q - 1] является взаимно простым с q, и поэтому обратный элемент а-1 имеет единственное значение. Тем самым п однозначно определяется операция деления. е Поля Галуа, используемые в алгоритме АЕS, основываются на Р арифметике по модулю неприводимых многочленов степени n, чьи коэффициенты – целые числа по модулю q, где q – простое. Эти поля Галуа ( ) обозначают как GF qn .. Они имеют элементы, которые описываются ( ) многочленами степени не выше n - 1 в форме a(X) = a Xn- 1 +...+ a X + a . n- 1 1 0 5 Каждый элемент а(Х) является вычетом по модулю р(Х), где р(Х) – неприводимый многочлен степени n (т. е. р(Х) нельзя разложить на сомножители – многочлены степени меньше n). Арифметические действия над коэффициентами a выполняются по i модулю q, а наивысшая степень X равна n - 1, так как выполняется приведеУние по модулю многочлена р(Х), имеющего старшую степень n. Т Особый интерес представляют поля GF(2n). Здесь коэффициентами a i Н являются 0 и 1. Поэтому многочлен а(Х) степени не выше n - 1 можно представить как вектор из n двоичных цифр: Б a a ...a a . n- 1 n- 2 1 0 Каждый из n-битовых векторов соответствует конкретному элементу й поля GF(2n). и Например, поле Галуа GF(23) имеет элементы: р Многочлены о Двоичная форма 0 000 т 1 001 и х 010 з + x 1 011 о x2 100 п x2 +1 101 е x2 + x 110 x2 + x +1 111 Р Организация вычислений в полях Галуа предполагает знание некоторых свойств многочленов и их корней в двоичном поле GF(2). Кратко приведем некоторые из них: ( ) Свойство 1. Ненулевые элементы поля GF 2n2 являются корнями обобщенного многочлена Х 2n- 1 +1. 6 Свойство 2. Каждый многочлен р(Х) степени n, неприводимый над полем GF(2), является делителем двучлена Х 2n- 1 +1, и каждый делитель двучлена Х 2n- 1 +1, неприводимый над полем GF(2), имеет степень, равную n и менее. Свойство 3. Все элементы поля GF(2n) можно получить как У совокупность остатков от деления 100...00 на неприводимый многочлен р(Х), входящий в разложение двучлена Х 2n- 1 +1. Эти остатки –Т корни двучлена Х 2n- 1 +1, т.е. обращают его в нуль. Число остатков равно 2n - 1. Н Свойство 4. В поле GF(2n) существует примитивный элемент а, такой Б что каждый ненулевой элемент поля GF(2n) может быть представлен как некоторая степень а, т.е. мультипликативная группа GF(2n) является й циклической. В поле Галуа GF(2n) определены ичетыре алгебраические операции. Операции сложения и вычитания выполняются как операции поразрядного р сложения по модулю 2 (обозначается ¯ или XOR). Операция умножения о элементов поля выполняется как умножение соответствующих многочленов с ( ) приведением по модулю нептриводимого многочлена p X , т. е. многочлена, по модулю которого построиены элементы поля GF(2n) . Чтобы выползнить деление элемента b на элемент а в поле GF(2n) по ( ) модулю р(Х), осначала находят обратный элемент a- 1 (mod p X ), а затем ( ) вычисляют b(cid:215) a- 1(mod p X ). п Каждый двоичный вектор длиной n, исключая 0, является взаимно е ( ) ( ) простым с неприводимым многочленом p X независимо от значения p X . Р ( ) ( ( )) Поэтому число вычетов, взаимно простых с p X , равно j p X = 2n - 1 (расширение функции Эйлера для многочленов). Поэтому a- 1 = aj (p(X))- 1mod p(X)= a2n- 2 mod p(X). 7 Достоинства вычислений в поле GF(2n) 1. Все элементы поля Галуа имеют конечный размер, деление элементов не имеет каких-либо ошибок округления. 2. Сложение и вычитание элементов поля GF(2n) не требует деленияУ на модуль. Т 3. Алгоритмы вычислений в поле GF(2n) допускают параллельную Н реализацию. 4. Для поля GF(2n) обычно применяют в качестве модуля трехчлен Б ( ) p X n = X n + X +1. 5. Длинная строка нулей между коэффициентами при X n и X й обеспечивает более простую реализацию быстрого умножения (с приведением ( ) и по модулю). Трехчлен p X n должен быть неприводимым и примитивным. р 6. Трехчлен p(Xn) = Xn + X +1 является примитивным для следующих значений n (n<1000): о т 1, 3, 4, 6, 9, 15, 22, 28, 30, 46, 60, 63, и 127, 153, 172, 303, 471, 532, 865, 900. з Структура шифра AES о п Формат блоков данных и число раундов е AES – это симметричный блочный шифр, оперирующий блоками данных Рразмером 128 и длиной ключа 128, 192 или 256 битов; название стандарта – соответственно «AES-128», «AES-192», и «AES-256». Введем следующие обозначения: Nb – число 32-битовых слов, содержащихся во входном блоке, Nb = 4; Nk – число 32-битовых слов, содержащихся в ключе шифрования, Nk = = 4, 6, 8; 8 Nr – число раундов шифрования – функция от Nb и Nk, Nr =10,12,14. Входные (input), промежуточные (state) и выходные (output) результаты преобразований, выполняемых в рамках криптоалгоритма, называются состояниями (State). Состояние можно представить в виде матрицы 4×Nb, У элементами которой являются байты (четыре строки по Nb байтов) в порядке S , S , S , S , S , S , S , S , … . Рис. 1.1 демонстрирует такое Т 00 10 20 30 01 11 21 31 представление, носящее название архитектуры «Квадрат». Н input State output Б in in in in S S S S out out out out 0 4 8 12 0,0 0,1 0,2 0,3 0 4 8 12 in in in in S S S S out out out out 1 5 9 13 1,0 1,1 1,2 1,3 1 5 9 13 in2 in6 in10 in14 fi S2,0 S2,1 S2,2 S2,3 йfi out2 out6 out10 out14 in in in in in S S S out out out out 3 7 11 15 3 3,1 3,2 3,3 3 7 11 15 и р Рис. 1.1. Пример представления блока в виде матрицы 4×Nb о На старте процессов шифрования и дешифрования массив входных т данных in , in ,..., in преобразуется в массив State по правилу 0 1 15 и [ ] [ ] = + s r, c in r 4c , з где 0 ≤ r < 4 и 0 ≤ c < Nb . о В конце действия алгоритма выполняется обратное преобразование [ ] [ ] + = п out r 4c s r, c , где 0 ≤ r < 4 и 0 ≤ c < Nb – выходные данные, получаются из байтов состояния в е том же порядке. Р Четыре байта в каждом столбце состояния представляют собой 32-битное слово; если r – номер строки в состоянии, то одновременно он является индексом каждого байта в этом слове. Следовательно, состояние можно представить как одномерный массив 32-битных слов w ,...,w , где номер 0 Nb столбца состояния c есть индекс в этом массиве. Тогда состояние можно представить так: 9 = = w S , S , S , S w S , S , S , S 0 0,0 1,0 2,0 3,0 2 0,2 1,2 2,2 3,2 = = w S , S , S , S w S , S , S , S 1 0,1 1,1 2,1 3,1 3 0,3 1,3 2,3 3,3 Ключ шифрования так же, как и массив State, представляется в виде У прямоугольного массива с четырьмя строками. Число столбцов этого массива равно Nk. Для алгоритма AES число раундов Nr определяется на Тстарте в зависимости от значения Nk (табл. 1.1). Н Таблица 1.1 Б Зависимость значения Nr от Nk и Nb й Nk Nb Nr AES-128 4 и 4 10 AES-192 6 4 12 р AES-256 8 4 14 о т и Функция зашифровки з Введем следующие обозначения: о( ) SubBytes – замена байтов – побайтовая нелинейная подстановка в State- п блоках (SBox) с использованием фиксированной таблицы замен размерностью 8×25е6; ( ) ShiftRows – сдвиг строк – циклический сдвиг строк массива State на Р различное количество байтов; ( ) MixColumns – перемешивание столбцов – умножение столбцов ( ) состояния, рассматриваемых как многочлены в GF 28 ; ( ) AddRoundKey – сложение с раундовым ключом – поразрядное XOR содержимого State с текущим фрагментом развернутого ключа. 10