Здавалка
Главная | Обратная связь

СТАНДАРТ СИММЕТРИЧНОГО ШИФРОВАНИЯ AES RIJNDAEL



 

Цель работы: ознакомление с принципами шифрования, используемыми в алгоритме симметричного шифрования AES RIJNDAEL.

Описание лабораторной работы. Демонстрационная версия криптостойкого блочного алгоритма Rijndael. Состояние, ключ шифрования и число циклов. Rijndael - итеративный блочный шифр, имеющий переменную длину блоков и различные длины ключей. Длина ключа и длина блока могут независимо друг от друга составлять 128, 192 или 256 бит.

Разнообразные преобразования работают с промежуточным результатом, называемым состоянием (State). Состояние можно представить в виде прямоугольного массива байтов. Этот массив имеет четыре строки, а число столбцов обозначается Nb и равно длине блока, деленной на 32.

Ключ шифрования также представлен в виде прямоугольного массива с четырьмя строками. Число столбцов обозначено как Nk и равно длине ключа, деленной на 32 (рис. 1.20).

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

 

Рис. 1.20. Пример представления состояния (Nb = 6) и ключа шифрования (Nk = 4)

 

Входные данные для шифра обозначаются как байты состояния в Порядке а0,0 а1,0 а2,0 а3,0, а0,1 а1,1 а2,1, а3,1, .... После завершения действия шифра выходные данные получаются из байтов состояния в том же порядке.

Число циклов, обозначенное Nr, зависит от значений Nb и Nk (табл.1.7).

 

Таблица 1.7

Nr Nb=4 Nb=6 Nb=8
Nb=4
Nb=6
Nb=8

 

Цикловое преобразование. Цикловое преобразование состоит из четырех различных преобразований. На языке псевдо-Си оно имеет следующий вид:

 

Round (State, RoundKey)

{

ByteSub(State); // замена байт

ShiftRow(State) // сдвиг строк I

MixColumn(State); // замешивание столбцов

AddRoundKey(State; RoundKey); // добавление циклового ключа

} .

 

Последний цикл шифра немного отличается:

 

FinalRound(State, RoundKey) ;

{

ByteSub(State); // замена байт

ShiftRow(State); // сдвиг строк

AddRoundKey(State, RoundKey); // добавление циклового ключа

}

 

Отметим, что последний цикл отличается от простого цикла только отсутствием замешивания столбцов. Каждое из приведенных преобразований подробно рассмотрено далее.

 

Замена байт (ВyteSub). Преобразование ByteSub - нелинейная замена байт, выполняемая независимо с каждым байтом состояния (рис. 1.21).

 

Рис. 1.21. ByteSub действует на каждый байт состояния

 

Замена происходит по массиву SboxE при шифровании и по массиву SboxD при расшифровании, причем SboxD[ SboxE[ а ] ] = а. На языке псевдо-Си это выглядит следующим образом:

 

SboxE = {

0хб3, 0х7С, 0х77, 0х7В, 0xF2, 0хБВ, 0хБF, 0хС5, 0х30,

0х01, 0хб7, 0х2В, 0xFE, 0х07, 0хАВ, 0х7б,

0хСА, 0х82, 0хС9, 0х70, 0xFA, 0х59, 0х47, 0xF0, 0хА0,

0х04, 0хА2, 0xAF, 0х9С, 0хА4, 0х72, 0хС0,

0хВ7, 0xFD, 0х93, 0х2б, 0х3б, 0x3F, 0xF7, 0хСС, 0х34,

0хА5, 0хЕ5, 0xF1, 0х71, 0х08, 0x3l, 0х15,

0х04, 0хС7, 0х23, 0хС3, 0х18, 0х9б, 0х05, 0х9А, 0х07,

0х12, 0х80, 0хЕ2, 0хЕВ, 0х27, 0хВ2, 0х75,

0х09, 0х83, 0х2С, 0х1А, 0х1В, 0хБЕ, 0х5А, 0хА0, 0х52,

0х3В, 0хDб, 0хВ3, 0х29, 0хЕ3, 0x2F, 0х84, 0х53, 0хD1,

0х00, 0хЕD, 0х20, 0xFC, 0хВ1, 0х5В, 0х6А, 0хСВ, 0хВЕ,

0х39, 0х4А, 0х4С, 0х58, 0xCF, 0хD0, 0xEF, 0хАА, 0xFB,

0х43, 0х4D, 0х33, 0х85, 0х45, 0xF9, 0х02, 0x7F, 0х50,

0x3С, 0x9F, 0хА8, 0х51, 0хА3, 0х40, 0x8F, 0х92, 0х9D,

0x38, 0xF5, 0хВС, 0хВб, 0хDА, 0х21, 0х10, 0xFF, 0xF3,

0xD2, 0хСD, 0х0С, 0xl3, 0хЕС, 0x5F, 0х97, 0х44, 0х17,

0xC4, 0хА7, 0х7Е, 0х3D, 0хб4, 0х5D, 0х19, 0х73, 0х60,

0x81, 0x4F, 0хDС, 0х22, 0х2А, 0х90, 0х88, 0х4б, 0хЕЕ,

0xВ8, 0х14, 0хDЕ, 0х5Е, 0х0В, 0хDВ, 0хЕ0, 0х32, 0х3А,

0x0А, 0х49, 0х0б, 0х24, 0х5С, 0хС2, 0хDЗ, 0хАС, 0хб2,

0x9l, 0х95, 0хЕ4, 0x79, 0хЕ7, 0хС8, 0х37, 0х6D, 0х80,

OxD5, 0х4Е, 0хА9, 0х6С, 0х56, OxF4, 0хЕА, 0х65, 0х7А,

0хАЕ, 0х08,

0хВА, 0х78, 0х25, 0х2Е, 0х1С, 0хА6, 0хВ4, 0хС6, 0хЕ8,

0xDD, 0х74, 0x1F, 0х4В, 0xBD, 0х8В, 0х8А,

0х70, 0х3Е, 0хВ5, 0х66, 0х48, 0х03, 0xF6, 0х0Е, 0х61,

0хЗ5, 0х57, 0хВ9, 0х86, 0хС1, 0xlD, 0х9Е,

0хЕ1, 0xF8, 0х98, 0х11, 0x69,.0xD9, 0х8Е, 0х94, 0х9В,

0хlЕ, 0х87, 0хЕ9, 0хСЕ, 0x55, 0х28, 0xDF,

0х8С, 0хА1, 0х89, 0x0D, 0xBF, 0хЕ6, 0х42, 0х68, 0х41,

0х99, 0x2D, 0x0F, 0хВ0, 0x54, 0xBB, 0х16

}

 

SboxD = {

0х52, 0х09, 0х6А, 0х05, 0х30, 0х3б, 0хА5, 0х38, 0xBF,

0х40, 0хА3, 0х9Е, 0х81, ,0xF3, 0х07, 0xFB,

0х7С, 0xE3, 0х39, 0х82, 0х9В, 0x2F, 0xFF, 0х87, 0х34,

0x8E, 0х43, 0х44, 0хС4, 0х0Е, 0хЕ9, 0хСВ,

0x54, 0х7В, 0х94, 0х32, 0хAб, 0хС2, 0х23, 0х30, 0хЕЕ,

0х4С, 0х95, 0x0B, 0х42, 0xFA, 0хС3, 0х4Е,

0х08, 0х2Е, 0хА1, 0хбб, 0х28, 0х09, 0х24, 0хВ2, 0х7б,

0х5В, 0хА2, 0х49, 0х6D, 0х8В, 0х01, 0х25,

0х72, 0xF8, 0хFб, 0хб4, 0х8б, 0х68, 0х98, 0х16, 0хD4,

0хА4, 0х5С, 0хСС, 0х50, 0хб5, 0хВ6, 0х92,

0х6С, 0х70, 0х48, 0х50, 0xFD, 0хЕD, 0хВ9, 0хDА, 0х5Е,

0х15, 0х4б, 0х57, 0хА7, 0x80, 0х90, 0х84,

0х90, 0х08, 0хАВ, 0х00, 0х8С, 0хВС, 0х03, 0х0А, 0xF7,

0хЕ4, 0х58, 0х05, 0хВ8, 0хВ3, 0х45, 0х06,

0хD0, 0х2С, 0х1Е, 0x8F, 0хСА, 0x3F, 0x0F, 0х02, 0хС1,

0xAF, 0хВD, 0х03, 0х0l, 0х13, 0хBА, 0х6В,

0х3А, 0х91, 0х11, 0х41, 0x4F, 0х67, 0хDС, 0хЕА, 0х97,

0xF2, 0xCF, 0хСЕ, 0xF0, 0хВ4, 0хЕ6, 0х73,

0х9б, 0хАС, 0х74, 0х22, 0хЕ7, 0хАD, 0х35, 0х85, 0хЕ2,

0xF9, 0х37, 0хЕ8, 0х1С, 0х75, 0xDF, 0х6Е,

0х47, 0xF1, 0х1А, 0х71, 0х1D, 0х29, 0хС5, 0х89, 0х6F,

0хВ7, 0х62, 0х0Е, 0хАА, 0х18, 0хВЕ, 0х1В,

0xFC, 0х5б, 0х3Е, 0х4В, 0хСб, 0хD2, 0х79, 0х20, 0х9А,

0хDВ, 0хС0, 0xFE, 0х78, 0хСD, 0х5А, 0xF4,

0x1F, 0хDD, 0хА8, 0х33, 0х88, 0х07, 0хС7, 0х31, 0хВl,

0х12, 0хl0, 0х59, 0х27, 0х80, 0хЕС, 0x5F,

0х60, 0х51, 0x7F, 0хА9, 0х19, 0хВ5, 0х4А, 0х0D, 0х2D,

0хЕ5, 0х7А, 0x9F, 0х93, 0хС9, 0х9С, 0xEF,

0xA0, 0хЕ0, 0х3В, 0х4D, 0хАЕ, 0х2А, 0xF5, 0хВ0, 0хС8,

0xЕВ, 0хВВ, 0х3С, 0х83, 0х53, 0х99, 0х61,

0х17, 0х2В, 0х04, 0х7Е, 0хВА, 0х77, 0хD6, 0х26, 0хЕ1,

0х69, 0х14, 0х63, 0х55, 0х21, 0х0С, 0х7D •

}

 

Преобразование сдвига строк (SihiftRow). Последние три строки состояния циклически сдвигаются на различное число байт. Строка 1 сдвигается на С1 байт, строка 2 - на С2 байт и строка 3 - на С3 байт. 3яачения сдвигов С1, С2 и С3 зависят от длины блока Nb. Их величины приведены в табл. 1.8.

 

Таблица 1.8

Nb C1 C2 C3

 

Операция сдвига последних трех строк состояния на определенную величину обозначена ShiftRow (State). На рисунке 1.22 показано влияние преобразования на состояние.

 

Рис. 1.22. Схема преобразования ShiftRow

 

При расшифровании происходит сдвиг на то же число элементов , В обратном направлении.

Преобразование замешивания столбцов (MixColumn). Преобразование представляет собой умножение состояния на матрицу МЕ при шифровании или матрицу MD при расшифровании:

 

 

b1 = (b1 * 2) XOR (b2*3) XOR (b3*1) XOR (b4*1)

Умножение двух байт выполняется по следующему алгоритму:

• если один из байт равен О, результатом будет О;

• если один из байт равен 1, результатом будет другой байт;

• в остальных случаях происходит замена каждого байта по таблице L. Замененные байты складываются, при необходимости вычитается 255 для попадания в интервал [О, 255] и происходит замена по та- . блице Е, что и дает результат. На языке псевдо-Си таблицы L и Е имеют следующий вид:

 

L = {

 

0х00, 0х19, 0x01, 0х32, 0х02, 0х1А, 0хСб, 0х4В,

0хС7, 0х1В, 0хб8, бх33, 0хЕЕ, 0xDF, 0х03,

0хб4, 0х04, 0хЕ0, 0х0Е, 0х34, 0x8D, 0х81, 0xEF, 0х4С,

0х71, 0х08, 0хС8, 0xF8, 0хб9, 0х1С, 0хС1l,

0x7D, 0хС2, 0xlD, 0хВ5, 0xF9, 0хВ9, 0х27, 0х6А, 0x4D,

0хЕ4, 0хАб, 0х72, 0х9А, 0хС9, 0х09, 0х78,

0хб5, 0x2F, 0х8А, 0х05, 0х21, 0x0F, 0хЕl, 0х24, 0х12,

0xF0, 0х82, 0х45, 0х35, 0х93, 0xDA, 0х8Е,

0х9б, 0x8F, 0xDB, 0xBD, 0х3б, 0xD0, 0хСЕ, 0х94, 0х13,

0х5С, 0xD2, 0xFl, 0х40, 0х4б, 0х83, 0х38,

0хбб, 0xDD, 0xFD, 0х30, 0xBF, 0х0б, 0х8В, 0хб2, 0хВ3,

0х25, 0хЕ2, 0х98, 0х22, 0х88, 0х91, 0хl0,

0х7Е, 0х6Е, 0х48, 0хС3, 0хА3, 0хВб, 0х1Е, 0х42, 0х3А,

0х6В, 0х28, 0х54, 0xFA, 0х85, 0x3D, 0хВА,

0х2В, 0х79, 0х0А, 0х15, 0х9В, 0x9F, 0х5Е, 0хСА, 0х4Е,

0xD4, 0хАС, 0хЕ5, 0xF3, 0х73, 0хА7, 0х57,

0xAF, 0х58, 0хА8, 0х50, 0xF4, 0хЕА, 0хDб, 0х74, 0x4F,

0хАЕ, 0хЕ9, 0xD5, 0хЕ7, 0хЕб, 0xAD, 0хЕ8,

0х2С, 0xD7, 0х75, 0х7А, 0хЕВ, 0х1б, 0х0В, 0xF5, 0х59,

0хСВ, 0x5F, 0хВ0, 0х9С, 0хА9, 0х51, 0хА0,

0x7F, 0х0С, 0xF6, 0x6F, 0х17, 0хС4, 0х49, 0хЕС, 0хD8,

0х43, 0xlF, 0х2D, 0хА4, 0х76, 0х7В, 0хВ7,

0хСС, 0хВВ, 0х3Е, 0х5А, 0xFB, 0х60, 0хВl, 0х86, 0х3В,

0х52, 0хАl, 0х6С, 0ХАА, 0х55, 0х29, 0x9D,

0х97, 0хВ2, 0х87, 0х90, 0х61, 0хВЕ, 0хDС, 0xFC, 0хВС,

0х95, 0xCF, 0хСD, 0х37, 0x3F, 0х5В, 0xDl,

0х53, 0х39, 0х84, 0х3С, 0х41, 0хА2, 0х6D, 0х47, 0х14,

0х2А, 0х9Е, 0х5D0, 0х56, 0xF2, 0хDЗ, 0хАВ,

0х44, 0х11, 0х92, 0хD9, 0х23, 0х20, 0х2Е, 0х89, 0хВ4,

0х7С, 0хВ8, 0х26, 0х77, 0х99, 0хЕ3, 0хА5,

0х67, 0х4А, 0хЕD, 0хDЕ, 0хС5, 0х31, 0xFE, 0х18, 0x0D,

0х63, 0х8С, 0х80, 0хС0, 0xF7, 0х70, 0х07

} ;

 

Е = {

0х01, 0х03, 0х05, 0x0F, 0х11, 0х33, 0х55, 0xFF, 0хlА,

0х2Е, 0х72, 0х96, 0хАl, 0xF8, 0х13,' 0х35,

0x5F, 0хЕl, 0х38, 0х48, 0х08, 0х73, 0х95, 0хА4, 0xF7,

0х02, 0х06, 0х0А, 0х1Е, 0х22, 0х66, 0xАА,

0хЕ5, 0х34, 0х5С, 0хЕ4, 0х37, 0х59, 0хЕВ, 0х26, 0х6А,

0хВЕ, 0xD9, 0х70, 0х90, 0хАВ, 0хЕ6, 0х31,

0х53, 0xF5, 0х04, 0х0С, 0х14, 0х3С, 0х44, 0хСС, 0x4F,

0хD1, 0х68, 0хВ8, 0хDЗ, 0х6Е, 0хВ2, 0xCD,

0x4С, 0xD4, 0х67, 0xА9, 0хЕ0, 0х3В, 0x4D, 0xD7, 0х62,

0xА6, 0xFl, 0х08, 0х18, 0х28, 0х78, 0х88,

0х83, 0х9Е, 0хВ9, 0хD0, 0х6В, 0хВD, 0хDС, 0x7F, 0х81,

0x98, 0хВ3, 0хСЕ, 0х49, 0xDB, 0х76, 0х9А,

0xВ5, 0хС4, 0х57, 0xF9, 0х10, 0х30, 0х50, 0xF0, 0х0В,

0х1D, 0х27, 0х69, 0хВВ, 0хD6, 0х61, 0хА3,

0xFE, 0х19, 0х2В, 0x7D, 0х87, 0х92, 0хАD, 0хЕС, 0x2F,

0x71, 0х93, 0xАЕ, 0хЕ9, 0х20, 0х60, 0хА0,

0xFB, 0х16, 0х3А, 0х4Е, 0xD2, 0х6D, 0хВ7, 0хС2, 0х5D,

0хЕ7, 0х32, 0х56, 0xFA, 0х15, 0x3F, 0х41,

0хC3, 0х5Е, 0хЕ2, 0х3D, 0х47, 0хС9, 0х40, 0хС0, 0х5В,

0xED, 0х2С, 0х74, 0х9С, 0xBF, 0хDА, 0х75,

0x9F, 0хВА, 0xD5, 0х64, 0хАС, 0xEF, 0х2А, 0х7Е, 0х82,

0х9D, 0xВС, 0xDF, 0х7А, 0х8Е, 0х89, 0х80,

0x9В, 0хВ6, 0хС1, 0х58, 0хЕ8, 0х23, 0х65, 0хАF, 0хЕА,

0x25, 0х6Р, 0хВ1, 0хС8, 0х43, 0хС5, 0х54,

0xFC, 0x1F, 0х21, 0х63, 0хА5, 0xF4, 0х07, 0х09, 0хlВ,

0x2D, 0х77, 0х99, 0хВ0, 0хСВ, 0х46, 0хСА,

0х45, 0xCF, 0х4А, 0xDE, 0х79, 0х8В, 0х86, 0х91, 0хА8,

0хЕ3, 0х3Е, 0х42, 0хС6, 0x51,0xF3, 0х0Е,

0х12, 0х36, 0х5А, 0хЕЕ, 0х29, 0х7В, 0x8D, 0х8С, 0x8F,

0х8А, 0х85, 0х94, 0хА7, 0xF2, 0x0D, 0х17,

0х39, 0х4В, 0xDD, 0х7С, 0х84, 0х97, 0хА2, 0xFD, 0х1С,

0х24, 0х6С, 0хВ4, 0хС7, 0х52, 0xF6, 0x0l

} ;

 

Добавление циклового ключа. Цикловой ключ добавляется к состоянию посредством простого EXOR (рис. 1.23). Цикловой ключ вырабатывается из ключа шифрования посредством алгоритма выработки ключей (key schedule). Длина циклового ключа равна длине блока Nb.

 

Рис. 1.23. Операция добавления циклового ключа

 

При шифровании части расширенного ключа выбираются от на-. чала к концу, при расшифровании - от конца к началу.

Расширение ключа (Кеу Expansion). Расширенный ключ представляет собой линейный массив четырех байтовых слов и обозначается: W[Nb*(Nr + 1)]. Первые Nk слов содержат ключ шифрования. Все остальные слова определяются рекурсивно из слов с меньшими индексами. Алгоритм выработки ключей зависит от величины Nk. ниже приведена версия для Nk ≤ 6 и версия для Nk > 6:

• для Nk < 6 или Nk = 6 'i

 

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] ;

for (i = 1; i < Nk && i+j < Nb*(Nr+1); i++)

W[i+j] = W[i+j-Nk) л W[i+j-l]; }

 

}

}

Можно заметить, что первые Nk слов заполняются ключом шифрования. Каждое последующее слово W[i] получается посредством EXOR предыдущего слова W[i - 1] и слова на Nk позиций ранее W[i - Nk]. для слов, позиция которых кратна Nk, перед EXOR применяется преобразование к W[i - 1], а затем еще прибавляется цикловая константа. Преобразование содержит циклический сдвиг байтов в слове, обозначенный как Rot1, затем следует SubByte - применение замены байт;

• дляNk> 6

KeyExpansion(CipherKey,W)

{

for (i=0; i<Nk; i++) W[i]=CipherKey[i];

for (j=Nk; j<Nb*(Nk+l); j+=Nk)

{

W[j] = W[j-Nk] ^ SubByte(Rotl(W[j-l])) ^ Rcon [j /Nk] ;

for (i=l; i<4; i++) W[i+j] = W[i+j-Nk] ^ W[i+j-l) ;

W[j+4] = W[j+4-Nk] ^ SubByte(W[j+3));

for (i=5; i<Nk; i++) W[i+j] = W[i+j-Nk] ^ W[i+j-l] ;

}

}

Отличие для схемы при Nk > 6 состоит в применении SubByte для каждого четвертого байта из Nk.

Цикловая константа независит от Nk и определяется следующим Образом:

 

Rcon[i] = (RC[i], '00' , '00' , '00' ), где

RC [0] = ' 01 '

RС[i]=хtimе(Rсоп[i-l])

 

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

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

• Nr - 1 циклов;

• заключительный цикл.

На языке псевдо-Си это выглядит следующим образом:

 

Rijndael (State, CipherKey)

{

 

KeyExpansion(CipherKey, ExpandedKey); // Расширение ключа

AddRoundKey(State, ExpandedKey); // Добавление циклового ключа

For (i=l; i<Nr; i++) Round(State,ExpandedKey+Nb*i);// циклы

FinalRound(State, ExpandedKey+Nb*Nr); 11 заключительный цикл

}

 

Если предварительно выполнена процедура расширения ключа то процедура будет иметь следующий вид:

 

Rijndael (State, CipherKey)

{

AddRoundKey(State, ExpandedKey);

For ( i=1 ; i<Nr ; i++) Round(State, ExpandedКey+Nb*i);

FinalRound(State, ExpandedKey+Nb*Nr);

}

Описание демонстрационной программы. Программа выполнена на языке С# и состоит из двух элементов - файла Rijndael.dl1, содержащего реализацию алгоритма шифрования, и демонстрационного приложения RijndaelDemo.exe. для работы приложения необходимо ОС Windows с установленным. NET Framework v1.1.

В основном окне демонстрационной программы задаются длина ключа, длина блока, а также расширенный ключ шифрования вычисляемый в соответствии с заданным ключом шифрования (рис. 1.24, 1.25).

Можно подробно рассмотреть действие всех цикловых преобразований (ByteSub, ShiftRow, MixColumn, AddRoundKey) как при шифровании, так и при расшифровании (рис. 1.26, 1.27).

 

Рис. 1.24. Главное окно демонстрационной про граммы

Рис. 1.25. Окно расширенного ключа

Рис. 1.26. Окна преобразований ByteSub и ShittRow

При шифровании предлагается выбрать ИСХОДНЫЙ файл и файл, куда будет помещен результат шифрования, при расшифровании - соответственно зашифрованный файл и файл, предназначенный для помещения результата расшифрования. В процессе используются указанные в главном окне программы ключ шифрования и длины ключа и блока.

 

Рис. 1.27. окна преобразований MixColumn и AddRoundKey

 

Задание

 

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

2. Изучить на примере обычных текстовых файлов способы шифрования и расшифрования с помощью алгоритма Rijndael. Подробно рассмотреть действие всех цикловых преобразований (ByteSub, ShiftRow, MixColumn; AddRoundKey) как при шифровании, так и расшифровании. Исходный текст для шифрования может быть подготовлен заранее и сохранен в файле * .txt.

3. Сохранить в отчете экранные формы, демонстрирующие процесс шифрования и расшифрования информации, проанализировать полученные результаты.

4. Включить в отчет о лабораторной работе ответы на контрольные задания, выбранные в соответствии с номером варианта, указанным преподавателем (табл, 1.9).

 

Таблица 1.9

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

 

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

 

1. Бабаш А.В. Криптографические и теоретико-автоматные аспекты современной защиты информации. Криптографические методы защиты. М.: Изд. центр ЕАОИ, 2009.

2. БабашА.В., Шан"инг.п. Криптография/под редакцией В.П. Шерстюка, Э.А. Применко. М.: СОЛОН-Р, 2007.

З. Баранова Е.К. Эффективное кодирование и защита информации: Текст лекций для студентов специальности 510200. М. : МГУЛ, 2002.

4. Башлы П.Н., Бабаш А.В., Баранова Е.К. Информационная безопасность: учебно-практ. пособие М. : Изд. центр ЕАОИ, 2010.

5. Мельников В.В. Защита информации в компьютерных системах. М.: Финансы и статистика; Электроинформ, 1997.

6. Романеи Ю.В., Тимофеев П'А: Шаньгин В. Ф. Защита информации в компьютерных системах и сетях. М. : Радио и связь, 2001.

7. Смарт Н. Криптография. М. : Техносфера, 2006.


ЧАСТЬ 2

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.