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.  Интернет статьи.

 


 

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

28855. Развитие отраслей психологии в конце 19 века 65.5 KB
  Факторы эволюции: Изменчивость наследственность и естественный отбор причины многообразия видов растений и животных их единство и генетическая связь. Его учение отвергло теорию постоянства видов и точку зрения о божественном происхождении животных и человека. Преемственность психической организации животных связь психики животных и человека В работах Выражение эмоций у человека и животных Происхождение человека и половой отбор показал наличие общих генетических корней в психических способностях человека и животных оскал сжатые...
28856. Политико-правовые учения эпохи Просвещения 64.5 KB
  Он не только создал своеобразную философию права и государства но и активно защищал свои идеи на практике за неоднократно подвергался гонениям прежде всего за свои антирелигиозные нападки на католическую церковь и религиозный фанатизм. Свое учение о происхождении общества государства и права В. разделяет мысль о договорном характере государства предложенную его предшественниками но при этом отрицает реальную возможность заключения такого договора. В основе государства с его т.
28858. Учения о государстве и праве в Германии конца ХVІІІ - начала ХІХ ст. 110.5 KB
  Философское обоснование права и государства в философии права Георга Гегеля. Теоретическая доктрина исторической школы права. Телеологическая концепция права Рудольфа Иеринга. Система философии права Канта не поддается такому простому изложению как система Локка Гоббса Руссо и Спинозы.
28859. Учения о государстве и праве в Западной Европе в 19 ст. 53.5 KB
  Утилитаристская теория права Дж. на смену идеям естественного права приходит юридический позитивизм характерной чертой которого является отрицание существования иного права кроме позитивного. Утилитаристская теория права Дж. Основной задачей юридической науки является критический анализ дейтвующего права с целью его совершенствования.
28860. Учения о государстве и праве в Западной Европе в 19 ст. 92.5 KB
  Одновременно также складывалось консервативное и социологическое направление в исследовании государства. Среди ведущих представителей политикоправовой мысли во Франции этого периода необходимо назвать: Жозефа де Местра представитель консервативного направления Бенжамена Констана и Алексиса де Токвиля либеральнодемократическое направление Огюста Конта основатель социологического направления в понимании государства и права. Происхождение и сущность государства: Необходимость и одновременно предназначение государства М. Сущность...
28861. Становление правовой науки в Российском государстве 99.5 KB
  Однако собственно теории права тогда еще не было. Все теоретическое знание о праве формировалось в рамках самостоятельной дисциплины философии права. Последняя исследовала не столько теоретические основы позитивного права сколько право каким оно должно быть с точки зрения тех или иных идеальных критериев т. имело своим предметом то что исторически получило название естественного права.
28862. Учения о государстве и праве в Украине в 19первой половине 20 ст. 72 KB
  Философия права Панфила Юркевича. Что же касается собственно проблем осмысления и развития права то в силу приоритетности вопросов национальногосударственного самоопределения они оказываются на периферии внимания крупных ученых. Концептуальное значение для понимания права и автономности личности в учении Сковороды имеют идея сродности и природного равенства людей.1 Философия права Панфила Юркевича.
28863. Современные учения о государстве и праве 75 KB
  Неопозитивистские теории права Ганс Кельзен Герберт Харт. Социологические теории права Евгений Эрлих Роско Паунд. Психологическая теория права Лев Петражицкий. Это обусловлено с одной стороны тем что природа права такова что оно пронизывает все сверы человеческой жизнедеятельности и отражает как явление сложные экономические политические и социальные отношения.