Класичні методи шифрування. Шифр з автоключем

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

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

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

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Методи та засоби криптологічних перетворень
Група:
ІБ – 44

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЗІ  Лабороторна робота №1 з курсу «Методи і засоби криптологічних перетворень» на тему: «Класичні методи шифрування. Шифр з автоключем» Мета роботи: ознайомитися з класичними методами шифрування (шифр простої заміни, поліграмні, поліалфавітні шифри, шифрування блоками, шифри перестановки). Завдання: Написати програму на мові програмування С/С++ для реалізації методу шифрування/дешифрування відкритого тексту за допомогою шифру з автоключем (довжина ключа – 3). Короткі теоретичні відомості Шифр з автоключем відноситься до класу полі алфавітних шифрів і ґрунтується на ідеях Віженера і Кардано. Подібно до шифру Віженера, криптотекст отримують сумуванням відкритого тексту із послідовністю букв такої ж довжини. Проте цю послідовність записують дещо інакше, ніж у шифрі Віженера – спочатку записують ключ, а справа до нього дописують початковий відрізок самого відкритого тексту. Розглянемо це на прикладі: БОРОНІТЬКОРОЛІВНУВІДВОРОГІВ + КЛЮЧБОРОНІТЬКОРОЛІВНУВІДВОР ЛАОЇОЩЗЛЮЩЗЛЩЩТВДЙЙТХРЮУДЩТ Відкритий текст і криптотекст у шифрі з автоключем записуються у одному і тому ж алфавіті. Для знаходження криптотексту зручно користуватися таблицею Віженера:  На відміну від шифру простої заміни, при використанні шифру з автоключем, однаковим буквам у відкритому тексті можуть відповідати різні букви у криптотексті. Ця обставина безперечно ускладнює частотний аналіз. Частотний аналіз шифру з автоключем ґрунтується на частотному аналізі шифру Віженера. Розглянемо його детальніше на прикладі  Шифр Віженера влаштований так, що при довжині ключа 4, кожна з 4 підпослідовностей відкритого тексту перетворюється до деякого шифру зсуву (на 14, 15, 31 та 27 позицій). За умови, що текст досить довгий, всі чотири довжини зсувів знаходяться стандартним підрахунком частот букв у відповідних підпослідовностях криптотексту. Якщо прискіпливо подивитися на текст, то можна побачити, що триграма аої зустрічається тричі, а біграма ца – двічі. Це означає, що у відкритий текст в відповідних місцях входять одна і та ж сама триграма і біграма (оро та ів). Це означає, що відстань між двома однаковими поліграмами відкритого тексту кратна довжині ключа. Відстані між різними входженнями триграми аої дорівнюють 8 і 12. Довжина ключа має ділити обидва ці числа, тобто вона дорівнює 1, 2 або 4 – залишається лише перепробувати три можливі варіанти. Текст програми #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <math.h> void decrypting(char kod[],char al[],char key[],char encrypt[]) {int k1,k2,k;int i,j;int c1,c2;i=0;k1=0;k2=0; for (i=0;i<30;i++) {encrypt[i]=0;} for (i=0;kod[i]!='\0';i++) {c1=kod[i];c2=key[i]; for (k=0;k<=51;k++) { if (c1==al[k]) k1=k;} for (k=0;k<=25;k++) { if (c2==al[k]) k2=k;} encrypt[i]=al[k1-k2]; } } void encrypting(char sl[],char al[],char key[],char kod[]) {int k1,k2,k;int i,j;int c1,c2;i=0;k1=0;k2=0; for (i=0;i<30;i++) {kod[i]=0;} for (i=0;sl[i]!='\0';i++) {c1=sl[i];c2=key[i]; for (k=0;k<=25;k++) { if (c1==al[k]) k1=k;} for (k=0;k<=25;k++) { if (c2==al[k]) k2=k;} kod[i]=al[k1+k2]; }} void main() { clrscr(); char alfavit[]="abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"; char opentext[]="sogodnisereda"; char key[]="popsogodniser"; char cryptotext[]="hcvgrtwvrzwhr"; char encrypted[30]; char decrypted [30]; int i ; for (i=0;i<30;i++) {encrypted[i]=0;decrypted[i]=0;} encrypting(opentext,alfavit,key,encrypted); decrypting(cryptotext,alfavit,key,decrypted); printf("\n cryptotext :"); printf("%s",encrypted); printf("\n opentext :"); printf("%s",decrypted); getch(); } Результат виконання програми  Блок-схема підпрограми дешифрування (decrypting) ні так ні так Блок-схема підпрограми шифрування (encrypting) ні так ні так Блок-схема головної програми Висновки: на даній лабораторній роботі я реалізувала класичний метод шифрування, а саме шифр з автоключем (довжиною 3), перевагою такого шифру є простота реалізації, а недоліком-недостатня стійкість (хоча він є стійкіший у порівнянні, н-д, з шифром зсуву). Цей шифр піддається частотному аналізу, і останній буде більш ефективним, коли довжина тексту співвідносно з довжиною ключа є великою.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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