Разработка программы шифрования - Курсовая работа

бесплатно 0
4.5 60
Аспекты безопасности информации, предотвращение внедрения программных закладок. Проектирование и разработка программы шифрования данных по заданной таблице из 160 символов. Дешифровка и вывод результата приложения. Его программный код и тестирование.


Аннотация к работе
Общеизвестно, что любое фундаментальное техническое или технологическое новшество, предоставляя возможности для решения одних социальных проблем и открывая широкие перспективы их развития, всегда вызывает обострение других или порождает новые, ранее неизвестные проблемы, становится для общества источником новых потенциальных опасностей. Неправомерное искажение или фальсификация, уничтожение или разглашение определенной части информации, равно как и дезорганизация процессов ее обработки и передачи в информационно-управляющих системах наносят серьезный материальный и моральный урон многим субъектам (государству, юридическим и физическим лицам), участвующим в процессах автоматизированного информационного взаимодействия. Жизненно важные интересы этих субъектов, как правило, заключаются в том, чтобы определенная часть информации, касающаяся их безопасности, экономических, политических и других сторон деятельности, конфиденциальная коммерческая и персональная информация, была бы постоянно легко доступна и в то же время надежно защищена от неправомерного ее использования: нежелательного разглашения, фальсификации, незаконного тиражирования или уничтожения. Острота проблемы обеспечения безопасности субъектов информационных отношений, защиты их законных интересов при использовании информационных и управляющих систем, хранящейся и обрабатываемой в них информации все более возрастает и это стало причиной выбора моей темы курсовой работы. Предотвратить внедрение программных закладок можно только путем создания замкнутой программной среды, в которой должна быть исключена возможность использования инструментальных программ, с помощью которых можно было бы осуществить корректировку данных и программ на носителях и в памяти.К сожалению, как и почти любое достижение человеческого гения, компьютер, решая одни экономические и социальные проблемы, одновременно порождает и другие, порою не менее сложные. Организационные меры должны выступать в качестве обеспечения эффективного применения других методов и средств защиты в части, касающейся регламентации действий людей.

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

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

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

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

Острота проблемы обеспечения безопасности субъектов информационных отношений, защиты их законных интересов при использовании информационных и управляющих систем, хранящейся и обрабатываемой в них информации все более возрастает и это стало причиной выбора моей темы курсовой работы.

Аспекты безопасности информации

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

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

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

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

Как строить систему защиты, какие методы и средства можно при этом использовать?

Все известные меры защиты компьютерных систем подразделяются на: законодательные, морально - этические, административные, физические и технические (аппаратурные и программные). Все они имеют свои достоинства и недостатки.

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

Проектирование и разработка программы шифрования

Данная программа может шифровать и дешифровать данные по заданной таблице. В таблице шифрования имеется 160 символов и он внедрен в программу.

Общая структура моей программы имеет следующий вид:

Рис. 1 - Структура программы

Программный код

Программу шифрования я создал следующим образом: #include "stdafx.h"

#include

#include

#include 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("

");

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("

\NVVEDITEKOMANDU:

1-Sozdanie tabliciperekodirovki

2-Vvod teksta

3-Shivrovanie i vivod

4-Deshifrovanie i vivod

0-Vihod

");

scanf("%d",&d);

switch (d) { case 1: CREATER();

printf("

DONE!");

goto L1;

case 2: printf("Vveditetekst: ");

scanf("%s",&MYTEXT);

void EDITTEXT();

goto L1;

case 3: Encrypt();

printf("

%s",RESTEXT);

goto L1;

case 4: Decrypt();

printf("

%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

Размещено на .ru
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?