Материал: Забезпечення інформаційної безпеки за допомогою криптогрфії

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

#include<iostream>#include<conio.h>std::cout;using std::endl;using std::cin;int n = 5;void set(int []); //прототип функції встановлення

значення void get(int []); //прототип функції печатки значенняmain(){int mas[n];set(mas); //виклик функції встановлення значення

в програміget(mas); //виклик функції друку в програмі_getch();}set(int s[n]) //реалізація функції встановлення{cout<<"SET :\n";cout<<"Vvedite "<<n<<"elementov massiva: ";for (int i = 0; <n; i++)cin>>s[i];}get(int s[n]) //реалізація функції друку{cout<<"GET massiv:\n";for

(int i = 0; i<n; i++)cout<<s[i]<<"\t";cout<<endl;} [11]

Переваги мови C++:

Швидкість роботи програм на С++ практично не поступається програмам на С, хоча програмісти отримали в свої руки нові можливості і нові засоби.

Масштабованість. На мові C++ розробляють програми для найрізноманітніших платформ і систем.

Можливість роботи на низькому рівні з пам'яттю, адресами, портами. (Що, при необережному використанні, може легко перетворитися на недолік.)

Можливість створення узагальнених алгоритмів <#"862778.files/image047.jpg">

if (text=='h')<< ran <<","<< rano << ","<< h << endl;if (text=='i')<< ran <<","<< rano << ","<< i << endl;if (text=='j')<< ran <<","<< rano << ","<< j << endl;if (text=='k')<< ran <<","<< rano << ","<< k << endl;if (text=='l')<< ran <<","<< rano << ","<< l << endl;if (text=='m')<< ran <<","<< rano << ","<< m << endl;if (text=='n')<< ran <<","<< rano << ","<< n << endl;if (text=='o')<< ran <<","<< rano << ","<< o << endl;if (text=='p')<< ran <<","<< rano << ","<< p << endl;if (text=='q')<< ran <<","<< rano << ","<< q << endl;if (text=='r')<< ran <<","<< rano << ","<< r << endl;if (text=='s')<< ran <<","<< rano << ","<< s << endl;if (text=='t')<< ran <<","<< rano << ","<< t << endl;if (text=='u')<< ran <<","<< rano << ","<< u << endl;if (text=='v')<< ran <<","<< rano << ","<< v << endl;if (text=='w')<< ran <<","<< rano << ","<< w << endl;if (text=='x')<< ran <<","<< rano << ","<< x << endl;if (text=='y')<< ran <<","<< rano << ","<< y << endl;if (text=='z')<< ran <<","<< rano << ","<< z << endl;<< "Vvedite bykvy" << endl;("pause") ;0;

} ”


При виконанні програми отримуємо командний рядок, куди вводимо дані, які від нас вимагає програма:


Алгоритм дешифрування:

“ #include <iostream>

#include <cmath>

#include <cstdlib>

#include <string>

#include <stdlib.h>

#include<time.h>namespace std; // подключение библиотек и стандартов программы

С++main () {

random1;random2;kluch;chislo; //Ввод переменных

<< "Vvedite kluch" << endl; // Вывод на экран сообщения в скобках>> kluch; // Ввод ключа (цифра)<< "Vaw kluch=3, Vvedite tri zifri, kotorymi bylo zashyfrovano vashe " << endl; // Вывод на экран сообщения

>> random1;>> random2;>> chislo; // Ввод шифра(цифры), который нужно расшифровать

// Расшифровка закодированного сообщения ключом "3":(chislo==1)<< "Rasshifrovanyi text: a" << endl;(chislo==2)<< "Rasshifrovanyi text: b" << endl;(chislo==3)<< "Rasshifrovanyi text: c" << endl;(chislo==4)<< "Rasshifrovanyi text: d" << endl;(chislo==5)<< "Rasshifrovanyi text: e" << endl;(chislo==6)<< "Rasshifrovanyi text: f" << endl;(chislo==7)<< "Rasshifrovanyi text: g" << endl;(chislo==8)<< "Rasshifrovanyi text: h" << endl;(chislo==9)<< "Rasshifrovanyi text: i" << endl;

(chislo==10)<< "Rasshifrovanyi text: j" << endl;(chislo==11)<< "Rasshifrovanyi text: k" << endl;(chislo==12)<< "Rasshifrovanyi text: l" << endl;(chislo==13)<< "Rasshifrovanyi text: m" << endl;(chislo==14)<< "Rasshifrovanyi text: n" << endl;(chislo==15)<< "Rasshifrovanyi text: o" << endl;(chislo==16)<< "Rasshifrovanyi text: p" << endl;(chislo==17)<< "Rasshifrovanyi text: q" << endl;(chislo==18)<< "Rasshifrovanyi text: r" << endl;(chislo==19)<< "Rasshifrovanyi text: s" << endl;(chislo==20)<< "Rasshifrovanyi text: t" << endl;(chislo==21)<< "Rasshifrovanyi text: u" << endl;(chislo==22)<< "Rasshifrovanyi text: v" << endl;(chislo==23)<< "Rasshifrovanyi text: w" << endl;(chislo==24)<< "Rasshifrovanyi text: x" << endl;(chislo==25)<< "Rasshifrovanyi text: y" << endl;(chislo==26)<< "Rasshifrovanyi text: z" << endl;

(chislo>26)<< "Vy vveli nevozmognyi kod, perezapystite programmy i vvedite kod"<< endl;

<< "Text rasshifrovano!" << endl;("pause") ;0;

} “


При виконанні програми отримуємо командний рядок, куди вводимо дані, які від нас вимагає програма:

. Аналіз нового методу шифрування

Алгоритм шифрування, який представлено вище, є абсолютно новим і ніким раніше не дослідженим. Він поєднує в собі простоту і надійність, що так складно вдається новим криптографічним системам. Не зайвим буде згадати, що такий тип шифрування легко покращити такими доповненнями, як наприклад, зміна ключа на функцію (припустимо sinх*3-2, де х - будь-яке число) - що зробить алгоритм більш захищеним від хакерів; також, щоб захиститися від зламу шифру «грубою силою» (підбір ключа) можна зробити випадкові числа не випадковими, а розрахованими по формулі, за якою числа будуть відповідати буквам алфавіту і з’являтися в шифрі з однаковою частотою, а отже неможливо визначити частотність виклику програмою тієї, чи іншої букви.

Ідея шифру полягає в надлишковій інформації, яка ускладнить процес дешифрування, а отже підвищить надійність алгоритму. Чим більше число ми виберемо під ключ, тим більше надлишкової інформації отримаємо. Але, на жаль, час роботи прямо пропорційно залежить від кількості інформації, а тому, велику кількість даних складним ключем шифрувати не вигідно і довго.

Вдосконалити цей шифр можна також взявши головний принцип алгоритму Віженера, а саме, замість ключа - цифри вибрати ключ - слово. Кожна буква тексту буде зашифрована і відповідатиме цифрі, яка рівна кількості букв в ключі. Наприклад, виберемо ключ «Відмінно», в цьому слові 8 букв, отже кожна восьма цифра буде відповідати нашому тексту, інші 7 будуть випадковими.

Новий метод шифрування випереджає інші алгоритми симетричного шифрування по своїй надійності і швидкодії. Шифр Цезаря з легкістю можна зламати «грубою силою» за кілька хвилин, звичайним підбором ключа. Шифр Віженера можна розшифрувати знайшовши певні повтори у шифрі. З шифром Вернама вже буде складніше, але він не підійде для кодування великої кількості даних. Його дешифрування буде схожим на дешифрування Віженера, але через великий надлишок інформації хакерам знадобиться більше часу для зламу шифру. Всі ці методи дешифрування не спрацюють на новому алгоритмі. Однак мінус, який стосується всіх симетричних систем шифрування і його неможливо ліквідувати, полягає в тому, що як тільки хакерам стане відомий секретний ключ, алгоритм буде зламано.

За виведеною, в даній роботі, новою методикою оцінки ефективності криптографічної системи, даний тип шифрування отримав оцінку 6 і є рекомендованим продуктом для використання. Однак, не треба забувати, що через безмежні можливості покращення даного алгоритму, життєвий цикл, щонайменше, складе 10 років, а отже оцінка з легкістю може змінитися на кращу.

Висновки

В дипломній роботі було винайдено нову методику оцінки ефективності криптографічних систем, яка дає змогу замовнику обрати найкращий алгоритм шифрування, враховуючи його потреби. Простота, корисність, а головне - точність даної методики, робить необхідним її використання для вибору алгоритму шифрування.

Також, було розроблено новий метод шифрування інформації, який пройшов оцінку ефективності криптографічних систем, отримав оцінку 6 і рекомендований до застосування на підприємстві.

Алгоритм шифрування, який було винайдено, є абсолютно новим і ніким раніше не дослідженим. Він поєднує в собі простоту і надійність, що так складно вдається новим криптографічним системам. Такий тип шифрування легко покращити доповненнями, що робить його дуже перспективним з, майже, безкінечним життєвим циклом.

Список використаних джерел

1. Алфьоров А.П., Зубов А.Ю., Кузьмін А.С., Черьомушкін А.В. Основи криптографії: Навчальний посібник. 3-тє вид., випр. і доп. - М.: 2005. - 480 с.

. Введення в криптографію / За заг. ред. В.В. Ященко. - 3-е вид., Доп. - М.: 2000.-288 с.

. Нечаєв В.І. Елементи криптографії (Основи теорії захисту інформації): Посібник для університетів і педагогічних вузів. / За ред. В.А. Садовнича - М.: Вищ. шк., 1999 - 109 с.

. Криптографія [Стаття] [Електронний ресурс] / Вікіпедія: вільна енциклопедія

. Шифр Віженера [Стаття] [Електронний ресурс] / Вікіпедія: вільна енциклопедія

. Шифр Вернама [Стаття] [Електронний ресурс] / Вікіпедія: вільна енциклопедія

. RSA [Блог] [Електронний ресурс] / Wordpress: система керування контентом

. Алгоритм Диффі-Хеллмана [Блог] [Електронний ресурс] / Wordpress: система кеування контентом

. Excel [Реферат] [Електронний ресурс] / Найбільша колекція україномовних рефератів

. С++ [Сайт] [Електронний ресурс] / Сайт: мови програмування

. С++ [Стаття] [Електронний ресурс] / Вікіпедія: вільна енциклопедія

. Шифрування [Стаття] [Електронний ресурс] / Вікіпедія: вільна енциклопедія