83060

Разработка программы для работы с матрицами

Курсовая

Информатика, кибернетика и программирование

В данной работе путем одного из самых простых методов шифрования – шифровкой с использованием кодового слова, был зашифрован и ,затем расшифрован произвольный текст. Цель работы: Зашифровать и расшифровать текст с использованием кодового слова.

Русский

2015-03-07

71.47 KB

4 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

ФГБОУ ВПО «Брянский государственный технический университет»

КАФЕДРА

«Механика и динамика и прочность машин»

Разработка программы для работы с матрицами

Пояснительная записка к курсовой работе

по информационным технологиям.

Студент гр. 13-ПМ                          Кузора М.С.

Преподаватель:                               Яковлев А.В.

Брянск 2014.

СОДЕРЖАНИЕ:

  1.  Введение……………………………………………………………………………………………………3
  2.  Теоретическая часть……………………………………………………………………………………….4

а).Общие понятия………………………………………………………………………………………….4

б).Виды шифровок…………………………………………………………………………………………5

  1.  Программа…………………………………………………………………………………………….……6
  2.  Результат работы программы………………………………………………………………………….….7
  3.  Заключение…………………………………………………………………………………………………8
  4.  Список литературы………………………………………………………………………………………...9

 

  1.  Введение.

Данная работа предназначена для того, чтобы продемонстрировать возможности шифрования текста методом шифровки с использованием кодового слова. Шифровка производилась при помощи программы Microsoft Visual Studio.

В данной работе путем одного из самых простых методов шифрования – шифровкой с использованием кодового слова, был зашифрован и ,затем расшифрован произвольный текст.

Цель работы: Зашифровать и расшифровать текст с использованием кодового слова.

  1.  Теоретическая часть.

Общие понятия.

Шифрование — обратимое преобразование информации в целях сокрытия от  кого либо, с предоставлением, в это же время, получателю шифра доступа к ней. Главным образом, шифрование служит задачей соблюдения конфиденциальности передаваемой информации. Важной особенностью любого алгоритма шифрования является использование ключа, который утверждает выбор конкретного преобразования из совокупности возможных  для данного алгоритма.

Пользователи являются авторизованными, если они обладают определенным аутентичным ключом. Вся сложность и, собственно, задача шифрования состоит в том, как именно реализован этот процесс. В целом, шифрование состоит из двух составляющих — шифрование и дешифрование.

С помощью шифрования обеспечиваются три состояния безопасности информации:

Конфиденциальность.

Шифрование используется для скрытия информации от неавторизованных пользователей при передаче или при хранении.

Целостность.

Шифрование используется для предотвращения изменения информации при передаче или хранении.

Идентифицируемость.

Шифрование используется для аутентификации источника информации и предотвращения отказа отправителя информации от того факта, что данные были отправлены именно им.

Для того, чтобы прочитать зашифрованную информацию, принимающей стороне необходимы ключ и дешифратор (устройство или код, реализующие алгоритм расшифровывания). Идея шифрования состоит в том, что злоумышленник, перехватив зашифрованные данные и не имея к ним ключа, не может ни прочитать, ни изменить передаваемую информацию.

 Виды  шифровок.

Самый простой шифр - подстановка. В нем каждая буква меняется на определенный символ, обычно на какую-то иную букву. Подстановка бывает и более сложной: диаграммной, трехграммной, многограммной когда вместо одной буквы используют сочетания из двух, трех и более букв.
Иногда при кодировании сообщение делится на группы букв или других символов определенной, фиксированной, длины. И для каждой такой группы применяется одна и та же перестановка.
Сообщения кодируют и перемешанным алфавитом с последующей многократной подстановкой. Работают и с шифром простой подстановки, но производимой с помощью перемешанного алфавита из 25 букв, записанных в виде квадрата - 5 рядов по 5 букв в каждом.
В матричной системе, которую часто применяют в шифровании, буквы нумеруют от 0 до 25 и рассматривают их как элементы своеобразного алгебраического кольца.
Каждому шифру и коду соответствует особый ключ. Так, в матричной системе ключом является определенная матрица. Для некоторых шифров ключ выбирается случайно и независимо среди чисел 0, 1, …, 25.
Бывают шифры, где ключом служит текст, имеющий смысл. Такой шифр называют шифром «бегущего ключа». Бывают шифры с автоключом, т. е. ключом, заложенным в самом шифре. В общем, сколько шифров, столько и способов дешифровки.
Теория секретных систем детально изучает коды и шифры. С ее помощью измеряют количество секретности и объем ключей. Кроме того, эта теория анализирует сложности шифрования и дешифровки, разрастания числа ошибок в сообщении, если, например, допущена ошибка хотя бы в одной букве, увеличение объема секретной информации при шифровании и многие другие вопросы. Среди них очень серьезный - оценка надежности секретной системы и возможность создания идеальных секретных систем.

Таким образом, существует очень много различных видов шифрования, разные по степени надежности , сложности и составу.

  1.  ПРОГРАММА.

#include <iostream>

#include <conio.h>

#include <string>

using namespace std;

void main()

{

   string alphabet = "abcdefghijklmnopqrstuvwxyz ";//исходный алфавит.

   string shifrAlphabet="";//алфавит, после подстановки ключевого слова.

   string keyPhrase="";//ключ-слово.

   string text="";//вводимый текст.

   string encoder = "",//зашифрованный текст.

   decoder="";//расшифрованныый текст.

   bool notPovt;//чтобы не было повторений в ключе-слове.

cout<<"input text: ";

getline(cin,text);//вводим текст с пробелами.

   do

   {

       cout<<"input key-phrase: ";//вводим ключ фразу.

       cin>>keyPhrase;

       notPovt = true;//предполагаем, что повторов букв в слове нет.

 for (unsigned int i = 0; i < keyPhrase.length() - 1; i++)

 for (unsigned int j = i + 1; j < keyPhrase.length(); j++)

           if (keyPhrase[i] == keyPhrase[j])//если повторы находим

                   //,то необходимо переввести.

               {

                   notPovt = false;

    i=keyPhrase.length();

                   break;

               }

       if (notPovt == false)

           cout<<"Input without repeat"<<endl;

   }

   while (notPovt == false);//пока не введём без повторов.

   shifrAlphabet = keyPhrase;//начало алфавита - это ключ фраза.

 for (unsigned int i = 0; i < alphabet.length(); i++)

 // потом дописываем в

 // конец нового алфавита

 // все буквы из исходного

 // по порядкую.

 

 // За исключением тех, которые уже у нас есть.

 if (shifrAlphabet.find(alphabet[i]) >alphabet.length())

       shifrAlphabet += alphabet[i];

 //выводим алфавиты

cout<<endl<<"alphabet: "<<alphabet<<endl<<endl;

cout<<"shifrAlphabet: "<<shifrAlphabet<<endl<<endl;

           

 //шифрация.

 for (unsigned int i = 0; i < text.length(); i++)

 //ищем позицию буквы

 //в нормальном алфавите

 //и берём букву из другого алфавита

 // на этой же позиции.

 encoder += shifrAlphabet[alphabet.find(text[i])];

 //дешифрация.

 for (unsigned int i = 0; i < encoder.length(); i++)

 //здесь, как в шифрации ,

 //только позицию ищем в другом алфавите,

 //а букву берём из нормального .

       decoder+=alphabet[shifrAlphabet.find(encoder[i])];

 //выводим то ,что получилось.

   cout<<"encoder text: "<<encoder<<endl<<endl;

   cout<<"decoder text: "<<decoder<<endl<<endl;

   system("pause");

}

  1.  Результат работы программы:

  1.  Заключение.

Итак, мы ознакомились с методом шифровки с использованием кодового слова.

Этот пример наглядно показывает возможности данного метода шифровки, его преимущества и недостатки. Мы убедились, что данный метод действительно достаточно простой по своему алгоритму и структуре, и отлично подойдет для шифрования текстов, или отдельных фраз.

Главный недостаток заключается в его невысокой степени надежности, и поэтому не безопасно шифровать таким способом важную конфиденциальную информацию.

  1.  Список литературы:

  1.  Яковлев, А. В. Основы программирования на C++: учебное пособие / А. В. Яковлев, - Брянск: БГТУ, 2013. – 263 с.

  1.  Шевченко, К. В. Основы программирования на C++: лаб. практикум / К. В. Шевченко, А. В. Яковлев, - Брянск: БГТУ, 2011. – 236с.

  1.  Интернет статьи.

 


 

А также другие работы, которые могут Вас заинтересовать

1389. Основы гидравлики 1.82 MB
  Общие сведения о жидкости. Жидкость как физическое тело. Растворимость газов в капельных жидкостях. Неньютоновские жидкости. Сила давления на криволинейную поверхность, погружённую в жидкость. Истечение жидкости из отверстий и насадков.
1390. Лингвистические аспекты теории перевода 1.89 MB
  Р. Якобсон О лингвистических аспектах перевода. М. А.К.Хэллидей Сопоставление языков. Основы теории закономерных соответствий. Грамматические трансформации и перевод некоторых синтаксических конструкций. К вопросу о типах межъязыковых лексических соответствий. П. Рикер Парадигма перевода.
1391. Стратегический менеджмент: целевое управление персоналом организаций 1.92 MB
  Механизм управления персоналом организаций в сфере материального производства на основе применения сверхдемократичной и одновременно сверхжесткой квалиметрической оценки персонала предприятия.
1392. Лекции по общей патологической анатомии 2.08 MB
  ВВЕДЕНИЕ В КУРС ПАТОЛОГИЧЕСКОЙ АНАТОМИИ. ЭТАПЫ РАЗВИТИЯ ПАТОЛОГИЧЕСКОЙ АНАТОМИИ. СОДЕРЖАНИЕ, ЗАДАЧИ, ОБЪЕКТЫ И МЕТОДЫ ИССЛЕДОВАНИЯ. ВОСПАЛЕНИЕ: ОПРЕДЕЛЕНИЕ, СУЩНОСТЬ, БИОЛОГИЧЕСКОЕ ЗНАЧЕНИЕ. МЕДИАТОРЫ ВОСПАЛЕНИЯ. МЕСТНОЕ И ОБЩЕЕ ПРОЯВЛЕНИЯ ВОСПАЛЕНИЯ. ОСТРОЕ ВОСПАЛЕНИЕ: ЭТИОЛОГИЯ, ПАТОГЕНЕЗ. МОРФОЛОГИЧЕСКОЕ ПРОЯВЛЕНИЕ ЭКССУДАТИВНОГО ВОСПАЛЕНИЯ. ИСХОДЫ ОСТРОГО ВОСПАЛЕНИЯ.
1393. Международный маркетинг, книга 2.21 MB
  ПРЕДПОСЫЛКИ СТАНОВЛЕНИЯ И РАЗВИТИЯ МЕЖДУНАРОДНОГО МАРКЕТИНГА. Основные факторы глобализации мировой экономики. Локальный и глобальный товарный знак. ВЛИЯНИЕ ИНТЕРНЕТА НА ЦЕНОВУЮ ПОЛИТИКУ НА ВНЕШНЕМ РЫНКЕ. Специфические особенности международной рекламы.
1394. Математика управления капиталом Методы анализа риска для трейдеров и портфельных менеджеров 2.36 MB
  Некоторые распространенные ложные концепции. Измерение степени пригодности системы для реинвестирования посредством. Характеристики торговли фиксированной долей и полезные методы. Параметрическое оптимальное f при нормальном распределении.
1395. Общая физика 2.36 MB
  Вектора углового перемещения, угловой скорости и ускорения. Производная единичного вектора (при его повороте). Нормальное и касательное ускорения. Центр инерции системы тел. Теорема о движении центра инерции. Закон сохранения импульса. Работа. Кинетическая энергия. Закон сохранения кинетической энергии. Мощность. Следствия из преобразований Лоренца: длины тел и промежутки времени.
1396. Advanced Animation with DirectX 2.43 MB
  Simulating Cloth and Soft Body Mesh Animation. Using Particles in Animation. Blending Morphing Animations. Timing in Animation and Movement. The source filter uses a single interface to represent a collage of filter objects.
1397. Маркетинговое исследование Компании the Сoca-Сola company 286.03 KB
  Получившийся напиток был запатентован как лекарственное средство «от любых нервных расстройств» и начал продаваться через автомат в крупнейшей городской аптеке Джекоба в Атланте. Интересно, что производство «Кока-Колы» в первый год было убыточным, но постепенно популярность «Кока-Колы»