Поліалфавітні підстановки
Розгляд найрізноманітніших способів шифрування. Характеристика алгоритму заміни або підстановки. Проведення криптоаналізу шифру Віженера. Визначення особливостей реалізації на C++. Розгляд теоретичних відомостей складання потокового шифру з автоключем.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | украинский |
Дата добавления | 07.02.2017 |
Размер файла | 21,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Державна служба України з надзвичайних ситуацій
Львівський державний університет безпеки життєдіяльності
Кафедра управління
інформаційною безпекою
ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ
на тему: «ПОЛІАЛФАВІТНІ ПІДСТАНОВКИ»
Виконала:
Курсант групи ІБ- 31
Сливка А.Р.
Прийняв:
Гриник Р.О.
Львів - 2016
Зміст
Вступ
1. Шифр Віженера
1.1 Теоретичні відомості
1.2 Реалізація на C++
2. Шифр з автоключем
2.1 Теоретичні відомості
2.2 Реалізація на C++
Вступ
Серед найрізноманітніших способів шифрування можна виділити наступні основні методи:
* Алгоритми заміни або підстановки - символи вихідного тексту замінюються на символи іншого (або того ж) алфавіту відповідно до заздалегідь визначеною схемою, яка і буде ключем даного шифру. * Алгоритми перестановки - символи оригінального тексту міняються місцями за певним принципом, що є секретним ключем. * Алгоритми гамування - символи вихідного тексту складаються з символами якоїсь випадкової послідовності.
* Алгоритми, засновані на складних математичних перетвореннях вихідного тексту за деякою формулою. Багато з них використовують невирішені математичні завдання. Наприклад, широко використовуваний в Інтернеті алгоритм шифрування RSA заснований на властивостях простих чисел.
* Комбіновані методи. Послідовне шифрування вихідного тексту за допомогою двох і більше методів.
Для підвищення стійкості шрифту використовують поліалфавітні підстановки, в яких для заміни символів вихідного тексту використовуються символи кількох алфавітів. Відомо кілька різновидів поліалфавітному підстановки, найбільш відомими з яких є одне-(звичайна і монофонічна) і Багатоконтурна.
При поліалфавітній одноконтурній звичайній підстановці для заміни символів вихідного тексту використовується кілька алфавітів, причому зміна алфавітів здійснюється послідовно і циклічно, тобто перший символ замінюється відповідним символом першого алфавіту, другий - символом другого алфавіту і т.д., поки не будуть використані всі вибрані алфавіти. Після цього використання алфавітів повторюється.
1. Шифр Віженера
1.1 Теоретичні відомості
Розглянемо поліалфавітну підстановку в тому випадку, коли послідовність є періодичною. Нехай період її дорівнює , а кожна з підстановок є шифром Цезаря. Зазвичай ключ є деяким відрізком змістовного тексту - словом або фразою. Його підписують під відкритим текстом, повторюючи стільки разів, скільки потрібно. Додаючи номери букви відкритого тексту і букви ключа, що стоїть під ним, за , одержують номер букви шифротексту. Наприклад:
ВТ |
п |
о |
л |
і |
а |
л |
ф |
а |
в |
і |
т |
н |
а |
п |
і |
д |
с |
т |
а |
н |
О |
в |
к |
а |
|
Ключ |
ц |
е |
з |
а |
р |
ц |
е |
з |
а |
р |
ц |
е |
з |
а |
р |
ц |
е |
з |
а |
р |
Ц |
е |
з |
а |
|
ШТ |
й |
ф |
ф |
і |
р |
з |
ь |
з |
в |
ю |
м |
у |
з |
п |
ю |
ю |
ч |
ю |
а |
д |
Ї |
ж |
у |
а |
В українській абетці 32 букви, номер букви «п» 19, номер букви «ц» 26: 19+26(32)=13 - номер букви «й» і так далі.
Така поліалфавітна підстановка називається шифром Віженера.
Криптоаналіз шифру Віженера є досить простим, якщо відома довжина періоду . В цьому випадку шифротекст розбивають на фрагментів:
тобто з шифротексту вибирають букви, що лежать на відстані , починаючи з першої, другої і т.д. Кожен з фрагментів зашифрований шифром Цезаря з певним ключем, і тому легко розшифровується. Таким чином, одержуємо ключ .
Щоб ускладнити криптоаналіз, застосовують багатоконтурну систему Віженера: відкритий текст шифрують спочатку шифром Віженера з періодом , одержаний шифротекст знову шифрують іншим шифром Віженера з періодом ,... і так разів. Якщо періоди взаємно прості, то результуючий шифр еквівалентний шифру Віженера з періодом .
1.2 Реалізація на C++
Позначення:
key - ключ шифрування;
msg - масив для повідомлення
a - рядок для зашифрованого повідомлення
b - рядок для розшифрованого повідомлення
Тіло програми:
#include <cstdlib>
#include <iostream>
#include <string>
#include <conio.h>
#include <stdlib.h>
#include <sstream>
#include <fstream>
using namespace std;
int main()
{
char msg[100], key[100];
string a;
string b;
cout<<"Vvedit msg "<<endl;
cin>>msg;
cout<<"Vvedit key"<<endl;
cin>>key;
int len=strlen(msg);
cout<<"Length of a key: "<<len<<endl;
int y=0;
for(int i=strlen(key); i<strlen(msg); i++)
{key[i]=key[y];
y++;
}
cout<<"key: "<< key<<endl;
for(int i=0; i<len; i++)
a+=char((int (msg[i])+int (key[i]))%127);
cout<<"Shyfr: "<<a<<endl;
for(int i=0; i<len; i++)
b+=char((int (a[i])-int (key[i])+127)%127);
cout<<"DeShyfr: "<<b<<endl;
getch();
return 0;
}
2. Шифр з автоключем
шифрування криптоаналіз віженер автоключ
2.1 Теоретичні відомості
Розглянемо ще один потоковий шифр, в якому кожна буква шифрується в залежності не тільки від її місця у відкритому тексті, але й від інших букв відкритого тексту. Такий шифр називається шифром з автоключем. Під відкритим текстом підписують ключове слово , а далі - сам відкритий текст (зсунутий на позицій вправо) і ці дві послідовності додають за :
При криптоаналізі спочатку знаходять довжину ключового слова . Якщо деяка -грама двічі зустрічається у відкритому тексті на відстані 2, то в шифротексті на відстані також будуть однакові -грами. Наприклад:
Таким чином, аналізуючи відстані між однаковими -грамами у шифротексті, можна знайти . Для визначення першої букви ключового слова розглядають фрагмент шифротексту Перебирають значення і для кожного підраховують .
Ці рівності будуть вірними, коли збігається з істинним. При цьому частоти букв у зазначеній послідовності близькі до частот букв у відкритому тексті, а при невірному частоти згладжені. Так само знаходять і решту букв ключового слова.
2.2 Реалізація на C++
Позначення:
key - ключ шифрування;
msg - масив для повідомлення;
a - рядок для зашифрованого повідомлення;
b - рядок для розшифрованого повідомлення;
n - кількість букв алфавіту;
Тіло програми:
#include <cstdlib>
#include <iostream>
#include <string>
#include <conio.h>
#include <stdlib.h>
#include <sstream>
#include <fstream>
using namespace std;
int main()
{
char msg[100], key[100];
string a;
string b;
cout<<"Write a msg "<<endl;
cin>>msg;
cout<<"Think of a key"<<endl;
cin>>key;
int len=strlen(msg);
cout<<"Msg length: "<<len<<endl;
int y=0;
for(int i=strlen(key); i<strlen(msg); i++)
{key[i]=msg[y];
y++;
}
cout<<" New key: "<< key <<endl;
for(int i=0; i<len; i++)
a+=char((int (msg[i])+int (key[i])+127)%127);
cout<<"Code: "<<a<<endl;
for(int i=0; i<len; i++)
b+=char((int (a[i])-int (key[i])+127)%127);
cout<<"DeCode: "<<b<<endl;
getch();
return 0;
}
Размещено на Allbest.ru
Подобные документы
Використання адитивних властивостей множин у системі шифрування Цезаря. Розгляд основних етапів процедури шифрування. Шифр перестановки з використанням шифруючої таблиці. З'ясування особливостей шифруючих таблиць Трисемуса та біграмного шифру Плейфейра.
курсовая работа [57,8 K], добавлен 25.11.2020Розробка VHDL-програми та синтез елементів пристрою для реалізації підстановки в S-блоках алгоритму DES. Основна функція шифрування (функція Фейстеля). Генерування ключів ki. Проведення симуляції роботи даних програм в середовищі САПР Aldec Riviera 2004.
курсовая работа [176,9 K], добавлен 21.01.2013Відомі підходи до реалізації потокового шифрування даних. Регістр зсуву з оберненими зв’язками. Комбінуючий та фільтруючий генератор. Потоковий шифр Alpha1. Розробка структурної схеми алгоритму шифрування Alpha1. Розробка блоку керування пристрою.
курсовая работа [185,6 K], добавлен 09.04.2013Криптографія як область знань щодо перетворення повідомлень у незрозумілу для сторонніх осіб форму, а також перевірки істинності цих повідомлень. Класифікація шифрів, принципи частотного криптоаналізу. Таблиця заміни при шифруванні, приклади шифрування.
реферат [36,0 K], добавлен 06.04.2010Сучасні методи захисту текстової інформації. Порівняльний аналіз шифру Бекона з іншими відомими шифрами. Практичне використання алгоритмів кодування тексту. Написання програми "Шифр Бекона", використані компоненти для реалізації алгоритму, їх властивості.
курсовая работа [606,8 K], добавлен 28.03.2016Вивчення особливості програмування додатків на мові C++ Builder. Шифрування повідомлення методом перестановки букв за маршрутами типу гамільтонський. Огляд існуючих аналогів. Розгляд необхідних вимог до конфігурації електронно-обчислювальної машини.
контрольная работа [1,2 M], добавлен 24.07.2014Сутність і напрямки вивчення методики шифрування алгоритмами збивання. Поняття та структура алгоритму DES, оцінка його переваг та недоліків. Підключ як деяка ключова інформація, яка отримується з основного ключа шифрування, його аналіз і значення.
лабораторная работа [99,5 K], добавлен 18.11.2015Розгляд матеріалу з розрахунку рецептур. Аналоги програм та сайтів по розрахунку рецептур, створення алгоритму побудови програми. Оптимізація калькулятору з розрахунку рецептур. Проектування алгоритму та програмного забезпечення для його реалізації.
курсовая работа [52,0 M], добавлен 28.03.2023Визначення криптографічних методів захисту інформації як способів шифрування та кодування даних, які потребують ключа і оберненого перетворення. Характеристика принципу гаммування. Криптоаналіз лінійних конгруентних генераторів псевдовипадкових чисел.
курсовая работа [242,4 K], добавлен 01.02.2012Загальна характеристика застосування верстатів з числовим програмним управлінням. Разгляд етапів та особливостей складання керуючої програми. Вимоги до алгоритму розв’язку задачі. Побудова блок-схеми алгоритму. Опис програмного забезпечення, вибір мови.
курсовая работа [1,4 M], добавлен 24.05.2015