Вход

Программа кодирования и декодирования текста при помощи метода RSA

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 295142
Дата создания 01 мая 2014
Страниц 26
Мы сможем обработать ваш заказ (!) 29 марта в 18:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 150руб.
КУПИТЬ

Описание

RSA – метод кодирования текста с помощью двух ключей – открытого и секретного. Метод названный так по начальным буквам фамилий ее изобретателей Rivest, Shamir и Adleman. Наиболее перспективными системами криптографической защиты данных являются системы с открытым ключом. В таких системах для шифрования данных используется один ключ, а для расшифрования другой.
ХНТУ, кафедра КСС, "отлично" ...

Содержание

Введение…………………………………………………………………. 4
1. Постановка задачи………………………………………………………. 7
1.1. Анализ существующих решений поставленной задачи …………. 7
1.2. Обоснование выбора метода решения задачи…………………….. 8
1.3. Математическая модель алгоритма „RSA”........................................9
1.4. Алгоритм метода..................................................................................9
2. Разработка алгоритма решения задачи………………………………… 11
3. Разработка программы…………………………………………………...12
3.1. Описание программы ………………………………………………12
3.1.1. Описание функции main()……………………………………13
3.1.2. Описание функции shifr()..……………….………...……….. 14
3.1.3. Описание функции deshifr()………….………………………14
3.1.4. Описание функции risunok()…………………………………14
3.1.5. Описание функции pow()..………....……………………….. 15
3.1.6.Описание функции prost()..……...………………………….. 15
3.2. Руководство программиста…………………………………….…...15
3.3. Руководство оператора……………………………………………..16
Заключение……………………………………………………………… 17
Список литературы……………………………………………………... 18
Приложение А. Текст программы ………………………………………… 19
Приложение Б. Блок-схемы фунций…….……………………………….... 24
Приложение В. Контрольный пример ……………………………………. 27

Введение

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

Фрагмент работы для ознакомления

Данная программа называется «RSA» (исполняемый файл) и предназначена для выполнения кодирования/декодирования текстов с помощью алгоритма метода RSA. Программа предназначена для работы на IBM совместимых компьютерах семейства х86, начиная с 286 и выше, в операционной системе типа MS-DOS 3.0 и выше. Так же возможна работа в командной строке операционных систем Windows 2K и XP.
Программа написана на языке программирования Си. Она рассчитана для работы на IBM совместимых компьютерах, имеет оригинальный текстовый интерфейс, достаточное быстродействие.
Преимущество этой программы в том, что она написана на языке Си, а это значит, что она сможет работать в любой среде. Программа будет работать на любом компьютере, т.к. не является требовательной к его параметрам.
Программа содержит 6 функций - main(), risunok(), pow(), prost(), shifr(), deshifr(). В программе есть как локальные так и глобальные переменные.
Программа реализована в текстовом режиме и использует стандартные ввод и вывод информации. Ввод осуществляется с помощью клавиатуры либо чтением из файла. Полученный результат сохраняется в исходном файле.
Так же программа содержит стандартные функции языка Си, которые содержаться в библиотеках <stdio.h>, <conio.h>, <stdlib.h>. Ниже перечислены библиотеки с функциями и дано краткое описание использованных в программе стандартных функций.
Из библиотеки <stdio.h>
printf() – эта функция осуществляет вывод строки на экран с выводом чисел или отдельный вывод чисел.
scanf() – эта функция осуществляет ввод данных в программу.
fopen() – функция открытия файла.
fclose() – функция закрытия файла.
fprintf() – функция записи в файл.
fscanf() – функция чтения из файла.
Из библиотеки <conio.h>
clrscr() – функция очищения экрана. Используется перед выводом меню, вводом чисел и выводом результата.
getch() – функция которая получает символ вводимый с клавиатуры.
gets() – функция которая получает строку вводимую с клавиатуры.
Из библиотеки <stdlib.h>
exit() – функция которая позволяет закончить программу в любом указанном месте (либо выйти из цикла и т.д.).
Из библиотеки <string.h>
strcat() – функция предназначенная для соединения двух строк.
3.1.1. Прототип функции: void main()
Функция main() является равноправной функцией программ на Си. Ее единственным отличием является то, что она вызывается не из другой функции, а из ОС, т.к. с нее начинается выполнение программы. Функция main() имеет тип void и используется для вызова всех остальных функций.
Функция имеет одну локальную переменную (ind), имеющую тип int.
Переменная ind хранит в себе значение определяющее выбор пользователя.
В этой функции производится работа с пользователем и чтение информации, после чего данные передаются в другие функции для дальнейшей обработки.
Так же в этой функции выводится вопрос об повторном выполнении программы. Если введено число не отвечающее заданному – программа прекращает свою работу. Алгоритм работы функции представлен в виде блок-схемы в приложении B (1 блок-схема).
3.1.2. Прототип функции: void shifr().
Данная функция используется для кодирования текста передаваемого ей из функции main() в качестве параметра, и сохранения полученого закодированного текста в исходный файл (test.dat). Алгоритм работы функции представлен в виде блок-схемы в приложении B (2 блок-схема).
3.1.3. Прототип функции: void deshifr()
Данная функция используется для декодирования текста передаваемого ей из функции main() в качестве параметра, и сохранения полученного декодированного текста в исходный файл (test.dat). Алгоритм работы функции представлен в виде блок-схемы в приложении B (3 блок-схема).
3.1.4. Прототип функции: void risunok()
Функция risunok() также типа void. Её применение лишь для улучшения интерфейса программы (выполняет функцию приветствия).
3.1.5. Прототип функции: long int pow()
Эта функция используется для возведения целого числа в целую степень; данные она получает из функций shifr() либо deshifr(). Эту функцию пришлось реализовывать связи с тем, что стандартная функция pow() библиотеки <math.h> выводит результат типа real, что было не приемлемо для нашей задачи.
3.1.6. Прототип функции: int prost()
Эта функция определяет: является ли число простым; данные она получает из функций shifr() или deshifr().
3.2. Руководство программиста
Программа предусмотрена в режиме работы консоли.
Запуск программы осуществляется с помощью исполняемого файла. Ввод значений выполняется через чтение из файла. Ответ также сохранятся в создаваемый файл. Программа работает только с цифрами (0-9). Данный недостаток программы связан с тем, что метод кодирования информации использует слишком большие целые числа. Так как при кодировании текста используется ASCII код символа, который нужно зашифровать, затем это число нужно возвести в довольно большую степень (например код символа А=65, ключ с помощью которого будет кодироваться/декодироваться информация =11 - данное число выходит за рамки long int).
В программе используется текстовый интерфейс, что значительно облегчает работу с ней.
Листинг программы приведен в Приложении А.
3.3. Руководство оператора
Главной задачей программы «RSA» является выполнение кодирования и декодирования текста с помощью алгоритма метода RSA.
Программа состоит из одного исполняемого файла. Программа для нормальной работы требует лишь установленную операционную систему типа DOS и, возможно, наличие среды разработки Borland C/C++. Она не требует установки на компьютер, каких бы то ни было специфических аппаратных средств.
Программа работает только в интерактивном режиме, требуя выбор действия и ввод необходимых данных. Из-за того, что она не является особо требовательной к параметрам системы, программа сможет работать быстро на любом IBM совместимом компьютере, начиная от 286, и имеющего установленной ОС MS-DOS версии 3.0 и выше.
После загрузки программы, оператор увидит меню, приглашающее его сделать выбор нужного ему действия путем ввода номера, соответствующего номеру желаемого действия. Затем оператор нажав нужную клавишу либо кодирует текст, либо декодирует. Потом программа сохраняет кодированный/декодированный текст в первоначальный файл.
Затем Программа задаст вопрос о желании оператора провести кодирование (декодирование) еще раз. При утвердительном ответе
программа вернется к выбору действия. Если отрицательный, то при нажатии любой клавиши выполнится выход из программы.
Контрольный пример программы приведен в Приложении В.
ЗАКЛЮЧЕНИЕ
Программа, созданная и описанная в курсовом проекте, создана в самой распространённой интегрированной среде разработки для DOS Turbo C++ 3.0. Программа обладает высоким параметром быстродействия, маленьким размером и не требовательна к системным ресурсам компьютера.
К недостаткам программы можно отнести то, что она работает только с цифрами, а не с буквами.
Программу можно усовершенствовать, исправив её недостаток (то есть сделать так, чтоб она могла кодировать символы по их ASCII коду), а так же можно улучить интерфейс.
СПИСОК ЛИТЕРАТУРЫ
1. Конспект лекций и лабораторных работ по программированию на Си.
2. Г.П.Котлинская, О.И.Галиновский Программирование на языке Си. - Минск: «Вышейшая школа», 1991г. -156с.
3. А.Крупник Изучаем Си: -Питер, 2001г. – 257с.
4. Язык программирования С. Лекции и упражнения: Пер. с англ./Стивен Прата – К.: Издательство «ДиаСофт», 2000. – 432 с.
5. Корниенко М.М., Иванова И.Д. Основы информатики: -Х.: Торсинг, 2000.- 144 с.
6. Дейтел Х., Дейтел П. Как программировать на С: Третье издание. – М.: Бином-Пресс, 2002г. – 1168с.
Приложение А
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
int p,q,d,e,n,i,k,mas[100];FILE *f;char c;char *filename;
void risunok()
{clrscr(); int j;
for (j=1;j<20;j++)
printf("\n");
for (j=1;j<80;j++)

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

1. Конспект лекций и лабораторных работ по программированию на Си.
2. Г.П.Котлинская, О.И.Галиновский Программирование на языке Си. - Минск: «Вышейшая школа», 1991г. -156с.
3. А.Крупник Изучаем Си: -Питер, 2001г. – 257с.
4. Язык программирования С. Лекции и упражнения: Пер. с англ./Стивен Прата – К.: Издательство «ДиаСофт», 2000. – 432 с.
5. Корниенко М.М., Иванова И.Д. Основы информатики: -Х.: Торсинг, 2000.- 144 с.
6. Дейтел Х., Дейтел П. Как программировать на С: Третье издание. – М.: Бином-Пресс, 2002г. – 1168с.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00448
© Рефератбанк, 2002 - 2024