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

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

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

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

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Методи та засоби криптологічних перетворень
Група:
ІБ – 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), перевагою такого шифру є простота реалізації, а недоліком-недостатня стійкість (хоча він є стійкіший у порівнянні, н-д, з шифром зсуву). Цей шифр піддається частотному аналізу, і останній буде більш ефективним, коли довжина тексту співвідносно з довжиною ключа є великою.
Антиботан аватар за замовчуванням

2015

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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