Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
/
З В І Т
до лабораторної роботи №1
з курсу: «Комп`ютерні методи високорівневого проектування систем захисту»
на тему: «ПРОЕКТУВАННЯ НА VERILOG ПІДСТАНОВОК
В S-БЛОКАХ АЛГОРИТМУ ШИФРУВАННЯ DES»
Варіант 4
Мета роботи: - вивчення принципів виконання підстановок в S-блоках алгоритму шифрування DES і особливостей їх реалізації мовою VERILOG.
1. ОСНОВНІ ВІДОМОСТІ
Відповідно до схеми раунду DES (Рис. 1) підстановка в S-блоках виконується над результатом розширюючої перестановки, на який операцією XOR накладено раундовий ключ.
Рисунок 1. Схема раунду DES.
Підстановка за допомогою S-блоків є ключовим кроком алгоритму DES. Саме ця підстановка визначає стійкість алгоритму. Інші операції алгоритму лінійні і легко піддаються аналізу. S-блоки нелінійні і саме вони визначають безпеку DES.
Підстановка (тобто заміна) здійснюється за допомогою восьми блоків підстановки, або S-блоків (від substitution). В кожного S-блока 6-бітовий вхід і 4-бітовий вихід. Всі вісім блоків різні. При виконанні підстановки 48 вхідних бітів діляться на вісім 6-бітових під блоків. Кожен окремий під блок обробляється своїм S-блоком: замість 6-бітового вхідного під блоку підставляється 4-бітовий (Рис. 2).
Рисунок 2. Схема включення S-блоків
Кожен з восьми S-блоків (Рис.2) є таблицею з 4 рядків і 16 стовпців. Нумерація рядків і стовпців починається з нуля. В таблицях певним чином розташовані 4-бітні числа. Шість вхідних бітів S-блока визначають номери рядка і стовпця, на перетині яких зчитується чотири бітне число, яке підставляється замість вхідного шести бітного.
Нехай маємо 6-бітовий вхід S-блока: b1, b2, b3, b4, b5 і b6. Біти b1 і b6 об'єднуються, утворюючи 2-бітове число від 0 до 3, яке визначає номер рядка таблиці. Середні 4 біта, з b2 по b5, об'єднуються, утворюючи 4-бітове число від 0 до 15, яке визначає номер стовпця таблиці. Наприклад, нехай на вхід четвертого S-блока (тобто біти функції XOR з 19 по 24) подається 101011. Перший і останній біт, об’єднавшись, складають двійкове число 11, що відповідає третьому рядку четвертого S-блока. Середні 4 біта утворять 0101, що відповідає п’ятому стовпчику того-ж S-блока. В четвертому S-блоці (Див. Рис.3), на перетині рядка з номером 3 і стовпця з номером 5 зчитуємо число 1. Двійкове чотири бітне число 0001, яке відповідає одиниці, і підставляється замість вхідного шести бітного блоку 101011.
Номер стовпця
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Номер рядка
0
7
13
14
3
0
6
9
10
1
2
8
5
11
12
4
15
S4
1
13
8
11
5
6
15
0
3
4
7
2
12
1
10
14
9
2
10
6
9
0
12
11
7
13
15
1
3
14
5
2
8
4
3
3
15
0
6
10
1
13
8
9
4
5
11
12
7
2
14
2. ЗАВДАННЯ
Ознайомитися з основними відомостями.
Мовою VERILOG розробити програму для підстановки в заданому S-блоці алгоритму шифрування DES (номер S-блоку відповідає номеру варіанту). Програма має передбачати:
а) зчитування з вхідного порту 6-бітового входу S-блоку;
б) формування заданого S-блоку: або як одного (цілий S-блок), або як чотирьох (кожна стрічка S-блоку окремо) одномірних масивів чотири бітних даних (пам’ять);
в) вибір результату підстановки шляхом аналізу 6-бітового входу S-блоку;
г) видачу результату підстановки на вихідний 4-бітний порт пристрою.
3. Відлагодити програму і реалізувати розроблений пристрій в лабораторії.
4. Оформити і захистити звіт про виконану роботу.
Приклад коду для варіанту S4
// Quartus II Verilog Template
// DES Permutatiom
module LabVer1 (S4OUT, S4IN);
input[5:0] S4IN;
output[3:0] S4OUT;
reg[3:0] S4[63:0];
initial
begin
S4[0]=4'd7;
S4[1]=4'd13;
S4[2]=4'd14;
S4[3]=4'd3;
S4[4]=4'd0;
S4[5]=4'd6;
S4[6]=4'd9;
S4[7]=4'd10;
S4[8]=4'd1;
S4[9]=4'd2;
S4[10]=4'd8;
S4[11]=4'd5;
S4[12]=4'd11;
S4[13]=4'd12;
S4[14]=4'd4;
S4[15]=4'd15;
S4[16]=4'd13;
S4[17]=4'd8;
S4[18]=4'd11;
S4[19]=4'd5;
S4[20]=4'd6;
S4[21]=4'd15;
S4[22]=4'd0;
S4[23]=4'd3;
S4[24]=4'd4;
S4[25]=4'd7;
S4[26]=4'd2;
S4[27]=4'd12;
S4[28]=4'd1;
S4[29]=4'd10;
S4[30]=4'd14;
S4[31]=4'd9;
S4[32]=4'd10;
S4[33]=4'd6;
S4[34]=4'd9;
S4[35]=4'd0;
S4[36]=4'd12;
S4[37]=4'd11;
S4[38]=4'd7;
S4[39]=4'd13;
S4[40]=4'd15;
S4[41]=4'd1;
S4[42]=4'd3;
S4[43]=4'd14;
S4[44]=4'd5;
S4[45]=4'd2;
S4[46]=4'd8;
S4[47]=4'd4;
S4[48]=4'd3;
S4[49]=4'd15;
S4[50]=4'd0;
S4[51]=4'd6;
S4[52]=4'd10;
S4[53]=4'd1;
S4[54]=4'd13;
S4[55]=4'd8;
S4[56]=4'd9;
S4[57]=4'd4;
S4[58]=4'd5;
S4[59]=4'd11;
S4[60]=4'd12;
S4[61]=4'd7;
S4[62]=4'd2;
S4[63]=4'd14;
end
assign S4OUT=S4[{S4IN[5],S4IN[0],S4IN[4:1]}];
endmodule
Висновки
Виконання даної лабораторної роботи відбувалось у цілях ознайомлення та вивчення принципів виконання підстановок в S-блоках алгоритму шифрування DES і особливостей їх реалізації мовою VERILOG.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!