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

Шифр моноалфавітної заміни (шифр Цезаря) Варіант 16

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

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

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

Рік:
2018
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Захист інформації в комп’ютерних системах

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

Міністерство освіти і науки Національний університет „Львівська політехніка” Кафедра EОМ Звіт з лабораторної роботи № 1 з дисципліни: “ Захист інформації в комп’ютерних системах ” Шифр моноалфавітної заміни (шифр Цезаря) Варіант 16 2018 Тема: Шифр моноалфавітної заміни (шифр Цезаря) Мета: Ознайомитись з основами класичної техніки шифрування – шифрами моноалфавітної заміни, та типовим прикладом шифрів даного виду – шифром Цезаря. Завдання: Розробити програму, що реалізує шифрування вихідного повідомлення за допомогою шифру Цезаря. Повідомлення, що необхідно зашифрувати, має бути задано українською мовою. В якості ключа шифрування обирається номер студента у списку групи. Оформити та захистити звіт. Хід роботи: Код реалізації алгоритму #include <iostream> #include <fstream> #include <locale> #include <vector> using namespace std; void encrypt (const vector<char> &alphabet, int n, const char *source, const char *target); void decipher (const vector<char> &alphabet, int n, const char *source, const char *target); int main(int argc, char** argv) { string source; string target; string pick; int key = 3; setlocale(LC_ALL,"Russian_Russia.1251"); vector<char> alphabet = { 'а' , 'б' , 'в' , 'г' , 'ґ' , 'д' , 'е' , 'є' , 'ж' , 'з' , 'и' , 'і' , 'ї' , 'й' , 'к' , 'л' , 'м' , 'н' , 'о' , 'п' , 'р' , 'с' , 'т' , 'у' , 'ф' , 'х' , 'ц' , 'ч' , 'ш' , 'щ' , 'ь' , 'ю' , 'я' }; if(argc == 4){ source = argv[1]; target = argv[2]; pick = argv[3]; } else if (argc == 5){ source = argv[1]; target = argv[2]; pick = argv[3]; key = static_cast<int >(*argv[4]); } else { std::cout << "How to use: <source> <target> <coding/decoding> <key>" << std::endl; return 0; } if(pick == "coding") { encrypt(alphabet, key, source.c_str(), target.c_str()); return 0; } else if ( pick == "decoding"){ decipher(alphabet, key, source.c_str(), target.c_str()); return 0; } else { std::cout << "How to use: <source> <target> <coding/decoding> <key>" << std::endl; return 0; } } void encrypt (const vector<char> &alphabet, int n, const char *source, const char *target) { ifstream from(source); ofstream to(target); from >> std::noskipws; bool flag; bool upperflag; char c; while (from >> c) { flag = false; if(isupper(c)){ c = static_cast<char>(tolower(c)); upperflag = true; } else upperflag = false; vector<char>::size_type i = 0; while(i != alphabet.size() && alphabet[i] != c) i++; if (i != alphabet.size()) { c = alphabet[(i + n) % alphabet.size()]; if(upperflag) c = static_cast<char>(toupper(c)); to << c; flag = true; } if (!flag) to << c; } } void decipher (const vector<char> &alphabet, int n, const char *source, const char *target) { ifstream from(source); ofstream to(target); from >> std::noskipws; bool flag; bool upperflag; char c; while (from >> c) { flag = false; if(isupper(c)){ c = static_cast<char>(tolower(c)); upperflag = true; } else upperflag = false; vector<char>::size_type i = 0; while(i != alphabet.size() && alphabet[i] != c) i++; if (i != alphabet.size()) { c = alphabet[(alphabet.size() + (i - n)) % alphabet.size()]; if(upperflag) c = static_cast<char>(toupper(c)); to << c; flag = true; } if (!flag) to << c; } } / Рис. 1. Зразок тексту для кодування / Рис. 2. Текст після кодування Висновок На даній лабораторній роботі я ознайомився з основами класичної техніки шифрування – шифрами моноалфавітної заміни, та типовим прикладом шифрів даного виду – шифром Цезаря, також я розробив програмну реалізацію даного шифру.
Антиботан аватар за замовчуванням

24.11.2018 18:50

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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