Программная реализация методов симметричного шифрования
Автор: Julia1122 • Октябрь 16, 2019 • Реферат • 1,266 Слов (6 Страниц) • 518 Просмотры
СОДЕРЖАНИЕ
1. Задание 3
2. Описание выбранного метода шифрования 4
3. Листинг программы 5
4. Пример реализации 6
- Задание
- Ознакомиться с теоритической частью.
- Выбрать любой из симметричных шифров, реализовать его программно, используя любой язык программирования.
- Оформить практическую работу в виде отчёта, согласно шаблону.
2) Описание выбранного метода шифрования
Опишите как можно подробнее выбранный метод с математическими выкладками, иллюстрациями, ссылками на источники литературы. Ссылки на источники оформите по ГОСТ 7.1-2003
В данной лабораторной работе нами был использован методов симметричного шифрования, так называемый «тарабарская грамота». Данный метод широко использовался в древнерусских рукописях, В исходном методе шифрования все гласные буквы оставлялись на прежних местах, а согласные буквы заменялись по следующей, приведенной ниже схеме.
б | в | г | д | ж | з | к | л | м | н |
щ | ш | ч | ц | х | ф | т | с | р | п |
То есть, все согласные буквы делились на две равные части, вторая часть записывалась под первой с обратной стороны (первой букве из первой части соответствовала последняя буква из второй и т.д.).
В нашем случае используются латинские буквы, и первой букве из первой части также соответствует последняя буква из второй (b -> z т.д.).
b | c | d | f | g | h | j | k | l | m |
z | x | w | v | t | s | r | q | p | n |
- Листинг программы
Приводится исходный код программы с комментариями
#pragma hdrstop
#pragma argsused
#include
#include
#include
#include
#include
char* rus(const char* text)
{ char* buffRus=new char[strlen(text)];
CharToOem(text, buffRus);
return buffRus;}
using namespace std;
int main(void)
{cout<
printf("\n");
{
{int size; // задается переменная размера массива
cout<
cin >>size; // ввод размерности массива с клавиатуры
char *p_darr = new char[size]; //задание массива с размерностью, введенной ранее
cout <
for (int i=0; i
cin>> p_darr[i];
for (int i=0; i
{
if (p_darr[i]=='a'||p_darr[i]=='A') {cout<<"a";}
if (p_darr[i]=='b'||p_darr[i]=='B') {cout<<"z";}
if (p_darr[i]=='c'||p_darr[i]=='C') {cout<<"x";}
if (p_darr[i]=='d'||p_darr[i]=='D') {cout<<"w";}
...