DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

Міністерство освіти і науки, молоді та спорту України Національний університет «Львівська Політехніка» Звіт Про виконання лабораторної роботи №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:34

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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