83060

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

Курсовая

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

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

Русский

2015-03-07

71.47 KB

3 чел.

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

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

КАФЕДРА

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

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

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

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

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

 


 

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

30382. Разработка математических моделей при проектировании технологии 164 KB
  Методы получения моделей элементов Получение моделей элементов моделирование элементов в общем случае процедура неформализованная. В то же время такие операции как расчет численных значений параметров модели определение областей адекватности и др. Поэтому моделирование элементов обычно выполняется специалистами конкретных технических областей с помощью традиционных средств экспериментальных исследований и средств САПР. Далее происходит определение соответствующего этим закономерностям математического описания обоснование и принятие...
30383. Математические модели РЭС на метауровне 159.5 KB
  При моделировании на ЭВМ технологического процесса происходит воспроизведение явлений с сохранением их логической структуры и расположения во времени. Это позволяет получать наиболее точные характеристики процесса проектирования техническую производительность время проведения отдельных технологических операций и т. Цель моделирования технологического процесса заключается в проектном расчете технической производительности и других показателей экономической эффективности с учетом заданного варианта структуры каждой операции технологического...
30384. Анализ, верификация и оптимизация проектных решений средствами САПР 218 KB
  На основе производственной информации формируется конфигурация виртуальной производственной системы ВПС. Представлена структура процесса формирования конфигурации ВПС. Рассматривается генерация вариантов определения конфигурации ВПС на основе эволюционного метода использующего генетические алгоритмы. Технологическое оборудование имеющее фонд свободного времени является ресурсами производственных систем ПС необходимыми для функционирования виртуальных производственных систем ВПС.
30385. Информационные технологии — новая отрасль знаний 125 KB
  Их значение быстро увеличивается за счет того что ИТ: активизируют и повышают эффективность использования информационных ресурсов обеспечивают экономию сырья энергии полезных ископаемых материалов и оборудования людских ресурсов социального времени; реализуют наиболее важные и интеллектуальные функции социальных процессов; занимают центральное место в процессе интеллектуализации общества в развитии системы образования культуры новых экранных форм искусства популяризации шедевров мировой культуры и истории развития...
30386. Сущность автоматизированного проектирования конструкций и технологических процессов производства РЭС 218 KB
  Лекция: Основы автоматизированного проектирования конструкций и технологических процессов производства РЭС В лекции объясняется сущность процесса проектирования РЭС и системного подхода к задаче автоматизированного проектирования РЭС. Излагаются задачи проектирования по степени новизны проектируемых изделий. Рассматривается сущность системного подхода к проектированию Основное назначение лекции: показать сущность процесса проектирования РЭС принципы проектирования и основной принцип проектирования системный подход 2. Сущность процесса...
30387. Основы автоматизированного проектирования конструкций и технологических процессов производства РЭС 197.5 KB
  Лекция: Основы автоматизированного проектирования конструкций и технологических процессов производства РЭС окончание Рассматривается сущность системного подхода к проблеме автоматизированного проектирования РЭС. Системный подход к задаче автоматизированного проектирования технологического процесса Системный подход к задачам автоматизированного проектирования требует реализации совместного проектирования технологического процесса ТП и автоматизированной системы управления этим процессом АСУТП. Традиционное раздельное рассмотрение задач...
30388. Системы автоматизированного проектирования (САПР) РЭС 147 KB
  Лекция: Системы автоматизированного проектирования САПР РЭС В лекции приводятся основные определения назначение и принципы систем автоматизированного проектирования САПР. Даются сущность и схема функционирования САПР. Показано место САПР РЭС среди других автоматизированных систем. Рассматриваются структура и разновидности САПР.
30389. Технические средства САПР и их развитие. Требования, предъявляемые к техническому обеспечению 260 KB
  Лекция: Технические средства САПР и их развитие Формулируются требования предъявляемые к техническому обеспечению САПР. Рассматриваются структура и состав технического обеспечения САПР. Основное назначение лекции дать общее представление о техническом обеспечении САПР: предъявляемых к нему требованиях структуре составе и архитектуре 5. Требования предъявляемые к техническому обеспечению Используемые в САПР технические средства должны обеспечивать: выполнение всех необходимых проектных процедур для которых имеется соответствующее...
30390. Основные особенности и достижения глобальной раннеклассовой цивилизации 37.74 KB
  Возникновение частной собственности разделение общества на классы появление социальных институтов Переход от общинной собственности к частной передаваемой по наследству членам своей семьи преодоление принципа уравнительного распределения возможность обособленного присвоения средств и результатов производства – все это вызвало экономический интерес к приумножению собственности на благо отдельной личности а значит открылась возможность повышать производительность труда. социальных групп людей занимавших свое место в системе...