Система блочного шифрування S-DES

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Криптологія

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки, молоді та спорту України Національний університет «Львівська Політехніка» Звіт Про виконання лабораторної роботи №2 з курсу «Прикладна криптологія» на тему «Система блочного шифрування S-DES» Перевірив: Петришин А.В. Львів – 2012 Мета: Створити просту криптографічну систему на основі спрощеного блочного алгоритму Simple DES (S-DES) та дослідити її роботу. Завдання: Створити просту криптографічну систему на основі спрощеного блочного алгоритму S-DES. Код програми на мові JavaScript: <html><head><title>Lab2</title></head><body><form name="data"> Текст:<input type="text" name="text"> <span id="1"></span><br> Ключ:<input type="text" name="key"> <span id="2"></span><br> <input type="button" value="Encrypt" onclick="Encrypt();"> <input type="button" value="Decrypt" onclick="Decrypt();"> </form><script> function Encrypt(){var text=document.data.text.value; var span1=document.getElementById("1");var span2=document.getElementById("2"); var K1=""; var K2=""; var K=""; var K=document.data.key.value; if (!K) for(i=0;i<10;i++) K+=Math.round(Math.random()); span2.innerHTML=K;K1=P8(Zsuv(P10(K)));K2=P8(Zsuv(Zsuv(Zsuv(P10(K))))); text=IP(text);text=F(text,K1);text=F(text,K2);text=IP_1(text); span1.innerHTML=text;} function Decrypt(){var text=document.data.text.value; var span1=document.getElementById("1");var span2=document.getElementById("2"); var K1=""; var K2=""; var K=""; var K=document.data.key.value; span2.innerHTML=K;K1=P8(Zsuv(P10(K)));K2=P8(Zsuv(Zsuv(Zsuv(P10(K))))); text=IP(text);text=F_1(text,K2);text=F_1(text,K1);text=IP_1(text); span1.innerHTML=text;} function F(t,Ki){var L=""; var R=""; var LR=""; for(i=0;i<4;i++) {L+=t.charAt(i)+""; R+=t.charAt(i+4)+"";} LR= (R.charAt(3)*1+Ki.charAt(0)*1)%2+""+(R.charAt(0)*1+Ki.charAt(1)*1)%2+""+ (R.charAt(1)*1+Ki.charAt(2)*1)%2+""+(R.charAt(2)*1+Ki.charAt(3)*1)%2+""+ (R.charAt(1)*1+Ki.charAt(4)*1)%2+""+(R.charAt(2)*1+Ki.charAt(5)*1)%2+""+ (R.charAt(3)*1+Ki.charAt(6)*1)%2+""+(R.charAt(0)*1+Ki.charAt(7)*1)%2+""; var S0="1032321002133131"; var S1="1123201330102103"; var a=0; a=1*S0.charAt((LR.charAt(0)*2+LR.charAt(3)*1)*4+(LR.charAt(1)*2+LR.charAt(2)*1)*1); S0=((a-(a%2))/2)+""+(a%2)+""; a=1*S1.charAt((LR.charAt(4)*2+LR.charAt(7)*1)*4+(LR.charAt(5)*2+LR.charAt(6)*1)*1); S1=((a-(a%2))/2)+""+(a%2)+""; LR=S0+""+S1+"";t="";for(i=0;i<4;i++) t+=R.charAt(i)+""; for(i=0;i<4;i++) t+=((L.charAt(i)*1)+(LR.charAt(i)*1))%2+"";return t;} function F_1(t,Ki){var L=""; var R=""; var LR=""; for(i=0;i<4;i++) {L+=t.charAt(i)+""; R+=t.charAt(i+4)+"";} LR= (L.charAt(3)*1+Ki.charAt(0)*1)%2+""+(L.charAt(0)*1+Ki.charAt(1)*1)%2+""+ (L.charAt(1)*1+Ki.charAt(2)*1)%2+""+(L.charAt(2)*1+Ki.charAt(3)*1)%2+""+ (L.charAt(1)*1+Ki.charAt(4)*1)%2+""+(L.charAt(2)*1+Ki.charAt(5)*1)%2+""+ (L.charAt(3)*1+Ki.charAt(6)*1)%2+""+(L.charAt(0)*1+Ki.charAt(7)*1)%2+""; var S0="1032321002133131"; var S1="1123201330102103"; var a=0; a=1*S0.charAt((LR.charAt(0)*2+LR.charAt(3)*1)*4+(LR.charAt(1)*2+LR.charAt(2)*1)*1); S0=((a-(a%2))/2)+""+(a%2)+""; a=1*S1.charAt((LR.charAt(4)*2+LR.charAt(7)*1)*4+(LR.charAt(5)*2+LR.charAt(6)*1)*1); S1=((a-(a%2))/2)+""+(a%2)+""; LR=S0+""+S1+"";t="";for(i=0;i<4;i++) t+=((R.charAt(i)*1)+(LR.charAt(i)*1))%2+""; for(i=0;i<4;i++) t+=L.charAt(i)+"";return t;} function IP(b){var a="";a+=b.charAt(1)+b.charAt(5)+b.charAt(2)+b.charAt(0)+ b.charAt(3)+b.charAt(7)+b.charAt(4)+b.charAt(6);return a;} function IP_1(b){var a="";a+=b.charAt(3)+b.charAt(0)+b.charAt(2)+b.charAt(4)+ b.charAt(6)+b.charAt(1)+b.charAt(7)+b.charAt(5);return a;} function P10(a){var b="";b+=a.charAt(2)+a.charAt(4)+a.charAt(1)+a.charAt(6)+a.charAt(3)+ a.charAt(9)+a.charAt(0)+a.charAt(8)+a.charAt(7)+a.charAt(5);return b;} function Zsuv(a){var b="";b+=a.charAt(1)+a.charAt(2)+a.charAt(3)+a.charAt(4)+a.charAt(0)+ a.charAt(6)+a.charAt(7)+a.charAt(8)+a.charAt(9)+a.charAt(5);return b;} function P8(a){var b="";b+=a.charAt(5)+a.charAt(2)+a.charAt(6)+a.charAt(3)+ a.charAt(7)+a.charAt(4)+a.charAt(9)+a.charAt(8);return b;} </script></body></html> Результати роботи програми. Зашифровка тексту:  Розшифровка тексту:  Висновок. Я ознайомився з роботою блокового шифру DES на прикладі спрощеного навчального алгоритму Simple DES. Програма зашифровує вхідний 8-бітовий текст 10-бітовим ключем. Якщо ключ не вводити, програма згенерує його випадковим чином. Зашифрований текст виводиться після поля для вводу повідомлення, а використаний ключ – після поля вводу ключа. Для розшифровки потрібно ввести отриманий криптотекст і використаний ключ. Розшифроване повідомлення виводиться після поля для вводу тексту. Як бачимо на знімках екрану, програма зашифрувала повідомлення «00101101» за допомогою згенерованого випадковим чином ключа «0010011111» і отримала криптограму «00101000». Криптограма цим самим ключем успішно розшифрована, отримана початкова послідовність «00101101».
Антиботан аватар за замовчуванням

24.01.2013 00:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!