Разработка программы шифрования
Аспекты безопасности информации, предотвращение внедрения программных закладок. Проектирование и разработка программы шифрования данных по заданной таблице из 160 символов. Дешифровка и вывод результата приложения. Его программный код и тестирование.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 05.05.2016 |
Размер файла | 163,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Введение
Общеизвестно, что любое фундаментальное техническое или технологическое новшество, предоставляя возможности для решения одних социальных проблем и открывая широкие перспективы их развития, всегда вызывает обострение других или порождает новые, ранее неизвестные проблемы, становится для общества источником новых потенциальных опасностей. Если в должной мере не позаботиться о нейтрализации сопутствующих прогрессу негативных факторов, то эффект от внедрения новейших достижений науки и техники может оказаться в целом отрицательным. Иными словами, без должного внимания к вопросам обеспечения безопасности последствия перехода общества к новым технологиям могут быть катастрофическими для него и его граждан. Именно так обстоит дело в области атомных, химических и других экологически опасных технологий, в сфере транспорта. Аналогично обстоит дело и с информатизацией общества.
Бурное развитие средств вычислительной техники открыло перед человечеством небывалые возможности по автоматизации умственного труда и привело к созданию большого числа разного рода автоматизированных информационных и управляющих систем, к возникновению принципиально новых, так называемых, информационных технологий.
Неправомерное искажение или фальсификация, уничтожение или разглашение определенной части информации, равно как и дезорганизация процессов ее обработки и передачи в информационно-управляющих системах наносят серьезный материальный и моральный урон многим субъектам (государству, юридическим и физическим лицам), участвующим в процессах автоматизированного информационного взаимодействия.
Жизненно важные интересы этих субъектов, как правило, заключаются в том, чтобы определенная часть информации, касающаяся их безопасности, экономических, политических и других сторон деятельности, конфиденциальная коммерческая и персональная информация, была бы постоянно легко доступна и в то же время надежно защищена от неправомерного ее использования: нежелательного разглашения, фальсификации, незаконного тиражирования или уничтожения.
Острота проблемы обеспечения безопасности субъектов информационных отношений, защиты их законных интересов при использовании информационных и управляющих систем, хранящейся и обрабатываемой в них информации все более возрастает и это стало причиной выбора моей темы курсовой работы.
Аспекты безопасности информации
Одним из важнейших аспектов проблемы обеспечения безопасности компьютерных систем является выявление, анализ и классификация возможных путей реализации угроз безопасности, то есть возможных каналов несанкционированного доступа к системе с целью нарушения ее работоспособности или доступа к критической информации, а также оценка реальности реализации угроз безопасности и наносимого при этом ущерба.
Предотвратить внедрение программных закладок можно только путем создания замкнутой программной среды, в которой должна быть исключена возможность использования инструментальных программ, с помощью которых можно было бы осуществить корректировку данных и программ на носителях и в памяти. Не должно быть программирующих пользователей, способных создать свои инструментальные средства (разработка и отладка программ должна производиться на компьютерах, не входящих в состав защищенной системы). Все используемые программы должны проходить предварительную сертификацию на предмет отсутствия в них закладок (с анализом всех исходных текстов, документации и т.д.). Все доработки программ также должны проходить сертификацию на безопасность. Целостность и неискаженность программ должна периодически проверяться путем проверки его характеристик (длины, контрольной суммы). Должен осуществляться постоянный контроль, исключающий внедрение программных закладок и распространение вирусов.
Известно большое число как традиционных, так и специфических для распределенных систем путей проникновения и НСД к информации. Нет никаких гарантий невозможности изобретения принципиально новых путей.
На аппаратно-программном уровне (уровне операционных систем) сложнее всего защититься от целенаправленных действий высококвалифицированных в области вычислительной техники и программирования злоумышленников, но именно к этому надо стремиться.
Как строить систему защиты, какие методы и средства можно при этом использовать?
Все известные меры защиты компьютерных систем подразделяются на: законодательные, морально - этические, административные, физические и технические (аппаратурные и программные). Все они имеют свои достоинства и недостатки.
Наилучшие результаты достигаются при системном подходе к вопросам безопасности компьютерных систем и комплексном использовании различных методов и средств их защиты на всех этапах жизненного цикла систем.
Проектирование и разработка программы шифрования
Данная программа может шифровать и дешифровать данные по заданной таблице. В таблице шифрования имеется 160 символов и он внедрен в программу.
Общая структура моей программы имеет следующий вид:
Рис. 1 - Структура программы
Программный код
Программу шифрования я создал следующим образом:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
char Al[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя!@\"#№$;%^:&?*()-_+={}[]\/<>.,~`0123456789";
char MyText[] = "";
char Key[] = "";
char R[10][16];
char ResText[] = "";
char Pust[] = "";
char Resh[10][16];
char Alphabet[]="";
char txt[]="";
void CreateR() {
int p=0;
for (int i=0;i<10;i++)
for (int j=0;j<16;j++)
{Resh[i][j]=Al[p]; p++;}
for (int i=0;i<10;i++) { printf("\n");
for (int j=0;j<16;j++) printf("%c ",Resh[i][j]); }
}
void EditText()
{
int Len = strlen(MyText);
if (Len % 2 != 0)
strcat(MyText,Pust);
}
void Encrypt()
{
int ind_x1 = 0;
int ind_y1 = 0;
int ind_x2 = 0;
int ind_y2 = 0;
int k = 0;
char txt[20]="\0";
for (int d=0; d<strlen(MyText); d++)
txt[d]=MyText[d];
for (int d=0;d<strlen(ResText);d++)
ResText[d]=' ';
if (strlen(txt)%2!=0)
xt[strlen(txt)]=Pust[0];
while (k<strlen(txt))
{
for (int l=0; l<10; l++)
for (int m=0; m<16; m++)
{
if (txt[k] == Resh[l][m])
{
ind_x1 = l;
ind_y1 = m;
}
if (txt[k+1] == Resh[l][m])
{
ind_x2 = l;
ind_y2 =m;
}
}
if (ind_x1 == ind_x2)
{
if (ind_y1 == 15)
{
ResText[k]=Resh[ind_x1][0];
ResText[k+1]=Resh[ind_x2][ind_y2+1];
}
else
if (ind_y2 == 15)
{
ResText[k]=Resh[ind_x1][ind_y1+1];
ResText[k+1]=Resh[ind_x2][0];
}
else
{
ResText[k]=Resh[ind_x1][ind_y1+1];
ResText[k+1]=Resh[ind_x2][ind_y2+1];
}
}
if (ind_y1 == ind_y2)
{
if (ind_x1 == 9)
{
ResText[k]=Resh[0][ind_y1];
ResText[k+1]=Resh[ind_x2+1][ind_y2];
}
else
if (ind_x2 == 9)
{
ResText[k]=Resh[ind_x1+1][ind_y1];
ResText[k+1]=Resh[0][ind_y2];
}
else
{
ResText[k]=Resh[ind_x1+1][ind_y1];
ResText[k+1]=Resh[ind_x2+1][ind_y2];
}
}
if ((ind_x1 != ind_x2) && (ind_y1 != ind_y2))
{
ResText[k]=Resh[ind_x1][ind_y2];
ResText[k+1]=Resh[ind_x2][ind_y1];
}
k = k + 2;
}
}
void Decrypt()
{
int ind_x1 = 0;
int ind_y1 = 0;
int ind_x2 = 0;
int ind_y2 = 0;
int k = 0;
char txt[20]="\0";
for (int d=0; d<strlen(ResText); d++)
txt[d]=ResText[d];
for (int d=0;d<strlen(txt);d++)
ResText[d]=' ';
while (k<strlen(txt))
{
for (int n=0; n<10; n++)
for (int o=0; o<16; o++)
{
if (txt[k] == Resh[n][o])
{
ind_x1 = n;
ind_y1 = o;
}
if (txt[k+1] == Resh[n][o])
{
ind_x2 = n;
ind_y2 = o;
}
}
if (ind_x1 == ind_x2)
{
if (ind_y1 == 0)
{
ResText[k]=Resh[ind_x1][15];
ResText[k+1]=Resh[ind_x2][ind_y2-1];
}
else
if (ind_y2 == 0)
{
ResText[k]=Resh[ind_x1][ind_y1-1];
ResText[k+1]=Resh[ind_x2][15];
}
else
{
ResText[k]=Resh[ind_x1][ind_y1-1];
ResText[k+1]=Resh[ind_x2][ind_y2-1];
}
}
if (ind_y1 == ind_y2)
{
if (ind_x1 == 0)
{
ResText[k]=Resh[9][ind_y1];
ResText[k+1]=Resh[ind_x2-1][ind_y2];
}
else
if (ind_x2 == 0)
{
ResText[k]=Resh[ind_x1-1][ind_y1];
ResText[k+1]=Resh[9][ind_y2];
}
else
{
ResText[k]=Resh[ind_x1-1][ind_y1];
ResText[k+1]=Resh[ind_x2-1][ind_y2];
}
}
if ((ind_x1 != ind_x2) && (ind_y1 != ind_y2))
{
ResText[k]=Resh[ind_x1][ind_y2];
ResText[k+1]=Resh[ind_x2][ind_y1];
}
k = k + 2;
}
}
void main()
{
int d;
L1:
printf("\n\nVveditekomandu:\n1-Sozdanie tabliciperekodirovki\n2-Vvod teksta\n3-Shivrovanie i vivod\n4-Deshifrovanie i vivod\n0-Vihod\n");
scanf("%d",&d);
switch (d) {
case 1:
CreateR();
printf("\n DONE!");
goto L1;
case 2:
printf("Vveditetekst: ");
scanf("%s",&MyText);
void EditText();
goto L1;
case 3:
Encrypt();
printf("\n%s",ResText);
goto L1;
case 4:
Decrypt();
printf("\n%s",ResText);
gotoL1;
default:
break;
}
}
Тестирование программы
После отладки программы на экране появляется окно, в котором содержится список основных режимов работы. Главное окно моей программы показан на рис.1.
Рис. 2 - Главное меню программы
безопасность программа шифрование данные
Создание таблицы шифрования
Ввод исходного текста
Результат программы
Дешифровка текста
Заключение
К сожалению, как и почти любое достижение человеческого гения, компьютер, решая одни экономические и социальные проблемы, одновременно порождает и другие, порою не менее сложные. Сегодня, когда масштабы выпуска и применения средств вычислительной техники в нашей стране должны резко увеличиться, к решению возможных в будущем проблем надо готовиться загодя, чтобы они не застали врасплох.
Организационные меры должны выступать в качестве обеспечения эффективного применения других методов и средств защиты в части, касающейся регламентации действий людей.
Защиту, надо везде, где только можно, усиливать соответствующими более надежными современными физическими и техническими средствами. Именно поэтому тема моей курсовой работы является актуальной и своевременной. С помощью моей созданной программы можно обеспечить защиту информации в средней степени. Хотя в программе использованы не самые лучшие методы защиты, в будущем я хочу исправить это и разработать алгоритм защиты данных современными методами.
Литература
Программирование и основы алгоритмизации. В.Г. Давыдов. Высшая школа 2003.
Основы паралельного программирования. К.Ю. Богачев. Бином 2003
C/C++ и Borland C++ builder для начинающихПахомов Б.И.СПб.: БХВ-Петербург2005
C/C++ и Borland C++ Builder для студента. Пахомов Б.И.СПб.: БХВ-Петербург2006
C/C++ и Borland C++Builder 2006. Самоучитель.Пахомов Б.И.СПб.: БХВ-Петербург2006
C/C++. Алгоритмы и приемы программированияФридман А.,Кландер Л.,Михаэлис М.,Шильдт Х.М.: Бином. Лаборатория знаний2003
Размещено на Allbest.ru
Подобные документы
Проблема скрытия и защиты информации от несанкционированного использования. История создания шифра. Решения задачи шифрования текста и кодирования данных. Тестирование полученного приложения и анализ работы программы с точки зрения пользователя.
курсовая работа [3,0 M], добавлен 24.11.2013Схема работы и требования к программам шифрования и дешифрования. Алгоритмы и тексты программы шифрования и программы дешифрования, выполненные на языке программирования C/C++. Содержание файла с исходным текстом, с шифротекстом, с дешифрованным текстом.
курсовая работа [24,7 K], добавлен 20.10.2014Разработка программы, реализующей процедуры шифрования и расшифрования текста по стандарту DES (Data Encryption Standard). Структура алгоритма шифрования, схема выработки ключевых элементов. Использование криптографического программного средства.
курсовая работа [1,7 M], добавлен 15.06.2013Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.
курсовая работа [795,7 K], добавлен 02.12.2014Разработка в среде Delphi приложения "Записная книжка" для ввода и корректировки информации, поиска данных. Выбор состава технических и программных средств. Текст программы, ее описание и тестирование. Основные условия программы, требования к компьютеру.
курсовая работа [565,7 K], добавлен 08.12.2011Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.
курсовая работа [101,1 K], добавлен 09.03.2009Этапы разработки программных продуктов. Основные понятия и методы программирования. Разработка обучающей программы по технике безопасности при работе на ПК. Постановка и разработка модели задачи. Проектирование. Отладка и тестирование программы.
курсовая работа [3,8 M], добавлен 04.10.2008История появления и развития шифрования текста. Проблема шифрования и дешифрования текстовых сообщений в современности. Создание программы для зашифровки и расшифровки вводимого текста пятью методами: Атбаш, Цезаря, Полибия, Гронсфельда и Винжера.
курсовая работа [923,6 K], добавлен 26.12.2011Разработка приложения для шифрования данных с помощью алгоритма DES5: процесс шифрования, расшифрования, получение ключей. Спецификация программы, процедуры и функции; описание интерфейса пользователя. Реализация задачи в среде программирования DELPHI.
курсовая работа [812,6 K], добавлен 27.03.2012Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.
курсовая работа [314,2 K], добавлен 27.01.2015