Разработка программы шифрования
Введение
Общеизвестно, что любое фундаментальное
техническое или технологическое новшество, предоставляя возможности для решения
одних социальных проблем и открывая широкие перспективы их развития, всегда
вызывает обострение других или порождает новые, ранее неизвестные проблемы,
становится для общества источником новых потенциальных опасностей. Если в
должной мере не позаботиться о нейтрализации сопутствующих прогрессу негативных
факторов, то эффект от внедрения новейших достижений науки и техники может оказаться
в целом отрицательным. Иными словами, без должного внимания к вопросам
обеспечения безопасности последствия перехода общества к новым технологиям
могут быть катастрофическими для него и его граждан. Именно так обстоит дело в
области атомных, химических и других экологически опасных технологий, в сфере
транспорта. Аналогично обстоит дело и с информатизацией общества.
Бурное развитие средств вычислительной техники
открыло перед человечеством небывалые возможности по автоматизации умственного
труда и привело к созданию большого числа разного рода автоматизированных
информационных и управляющих систем, к возникновению принципиально новых, так
называемых, информационных технологий.
Неправомерное искажение или фальсификация,
уничтожение или разглашение определенной части информации, равно как и
дезорганизация процессов ее обработки и передачи в информационно-управляющих
системах наносят серьезный материальный и моральный урон многим субъектам
(государству, юридическим и физическим лицам), участвующим в процессах
автоматизированного информационного взаимодействия.
Жизненно важные интересы этих субъектов, как
правило, заключаются в том, чтобы определенная часть информации, касающаяся их
безопасности, экономических, политических и других сторон деятельности, конфиденциальная
коммерческая и персональная информация, была бы постоянно легко доступна и в то
же время надежно защищена от неправомерного ее использования: нежелательного
разглашения, фальсификации, незаконного тиражирования или уничтожения.
Острота проблемы обеспечения безопасности
субъектов информационных отношений, защиты их законных интересов при
использовании информационных и управляющих систем, хранящейся и обрабатываемой
в них информации все более возрастает и это стало причиной выбора моей темы курсовой
работы.
Аспекты безопасности информации
Одним из важнейших аспектов проблемы обеспечения
безопасности компьютерных систем является выявление, анализ и классификация
возможных путей реализации угроз безопасности, то есть возможных каналов несанкционированного
доступа к системе с целью нарушения ее работоспособности или доступа к
критической информации, а также оценка реальности реализации угроз безопасности
и наносимого при этом ущерба.
Предотвратить внедрение программных закладок
можно только путем создания замкнутой программной среды, в которой должна быть
исключена возможность использования инструментальных программ, с помощью
которых можно было бы осуществить корректировку данных и программ на носителях
и в памяти. Не должно быть программирующих пользователей, способных создать
свои инструментальные средства (разработка и отладка программ должна
производиться на компьютерах, не входящих в состав защищенной системы). Все
используемые программы должны проходить предварительную сертификацию на предмет
отсутствия в них закладок (с анализом всех исходных текстов, документации и
т.д.). Все доработки программ также должны проходить сертификацию на
безопасность. Целостность и неискаженность программ должна периодически
проверяться путем проверки его характеристик (длины, контрольной суммы). Должен
осуществляться постоянный контроль, исключающий внедрение программных закладок
и распространение вирусов.
Известно большое число как традиционных, так и
специфических для распределенных систем путей проникновения и НСД к информации.
Нет никаких гарантий невозможности изобретения принципиально новых путей.
На аппаратно-программном уровне (уровне
операционных систем) сложнее всего защититься от целенаправленных действий
высококвалифицированных в области вычислительной техники и программирования
злоумышленников, но именно к этому надо стремиться.
Как строить систему защиты, какие методы и
средства можно при этом использовать?
Все известные меры защиты компьютерных систем
подразделяются на: законодательные, морально - этические, административные,
физические и технические (аппаратурные и программные). Все они имеют свои
достоинства и недостатки.
Наилучшие результаты достигаются при системном
подходе к вопросам безопасности компьютерных систем и комплексном использовании
различных методов и средств их защиты на всех этапах жизненного цикла систем.
Проектирование и разработка программы шифрования
Данная программа может шифровать и дешифровать
данные по заданной таблице. В таблице шифрования имеется 160 символов и он внедрен
в программу.
Общая структура моей программы имеет следующий
вид:
Рис. 1 - Структура программы
Программный код
Программу шифрования я создал следующим образом:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>Al[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя!@\"#№$;%^:&?*()-_+={}[]\/<>.,~`0123456789";MyText[]
= ""; Key[] = ""; R[10][16]; ResText[] = "";
Pust[] = ""; Resh[10][16]; Alphabet[]="";txt[]="";CreateR()
{p=0;(int i=0;i<10;i++)(int j=0;j<16;j++)
{Resh[i][j]=Al[p]; p++;}(int i=0;i<10;i++) {
printf("\n");(int j=0;j<16;j++) printf("%c
",Resh[i][j]); }
}EditText()
{Len = strlen(MyText);(Len % 2 !=
0)(MyText,Pust);
}Encrypt()
{ind_x1 = 0;ind_y1 = 0;ind_x2 = 0;ind_y2 = 0;k =
0;txt[20]="\0";(int d=0; d<strlen(MyText); d++) [d]=MyText[d];(int
d=0;d<strlen(ResText);d++)[d]='
';(strlen(txt)%2!=0)[strlen(txt)]=Pust[0];(k<strlen(txt))
{(int l=0; l<10; l++)(int m=0; m<16; m++)
{(txt[k] == Resh[l][m])
{_x1 = l;_y1 = m;
}(txt[k+1] == Resh[l][m])
{_x2 = l;_y2 =m;
}
}(ind_x1 == ind_x2)
{(ind_y1 == 15)
{[k]=Resh[ind_x1][0];[k+1]=Resh[ind_x2][ind_y2+1];
}(ind_y2 == 15)
{[k]=Resh[ind_x1][ind_y1+1];[k+1]=Resh[ind_x2][0];
}
{[k]=Resh[ind_x1][ind_y1+1];[k+1]=Resh[ind_x2][ind_y2+1];
}
}(ind_y1 == ind_y2)
{(ind_x1 == 9)
{[k]=Resh[0][ind_y1];[k+1]=Resh[ind_x2+1][ind_y2];
}(ind_x2 == 9)
{[k]=Resh[ind_x1+1][ind_y1];[k+1]=Resh[0][ind_y2];
}
{[k]=Resh[ind_x1+1][ind_y1];[k+1]=Resh[ind_x2+1][ind_y2];
}
}((ind_x1 != ind_x2) &&
(ind_y1 != ind_y2))
{[k]=Resh[ind_x1][ind_y2];[k+1]=Resh[ind_x2][ind_y1];
}= k + 2;
}
}Decrypt()
{ind_x1 = 0;ind_y1 = 0;ind_x2 =
0;ind_y2 = 0;k = 0;txt[20]="\0";(int d=0; d<strlen(ResText); d++)
[d]=ResText[d];(int d=0;d<strlen(txt);d++)[d]=' ';(k<strlen(txt))
{(int n=0; n<10; n++)(int o=0;
o<16; o++)
{(txt[k] == Resh[n][o])
{_x1 = n;_y1 = o;
}(txt[k+1] == Resh[n][o])
{_x2 = n;_y2 = o;
}
}(ind_x1 == ind_x2)
{(ind_y1 == 0)
{[k]=Resh[ind_x1][15];[k+1]=Resh[ind_x2][ind_y2-1];
}(ind_y2 == 0)
{[k]=Resh[ind_x1][ind_y1-1];[k+1]=Resh[ind_x2][15];
}
{[k]=Resh[ind_x1][ind_y1-1];[k+1]=Resh[ind_x2][ind_y2-1];
}(ind_y1 == ind_y2)
{(ind_x1 == 0)
{[k]=Resh[9][ind_y1];[k+1]=Resh[ind_x2-1][ind_y2];
}(ind_x2 == 0)
{[k]=Resh[ind_x1-1][ind_y1];[k+1]=Resh[9][ind_y2];
}
{[k]=Resh[ind_x1-1][ind_y1];[k+1]=Resh[ind_x2-1][ind_y2];
}
}((ind_x1 != ind_x2) &&
(ind_y1 != ind_y2))
{[k]=Resh[ind_x1][ind_y2];[k+1]=Resh[ind_x2][ind_y1];
}= k + 2;
}
}main()
{d;:("\n\nVveditekomandu:\n1-Sozdanie
tabliciperekodirovki\n2-Vvod teksta\n3-Shivrovanie i vivod\n4-Deshifrovanie i
vivod\n0-Vihod\n");("%d",&d);(d) {1:();("\n
DONE!");L1;2:("Vveditetekst:
");("%s",&MyText);EditText();L1;3:();("\n%s",ResText);L1;4:();("\n%s",ResText);
gotoL1;:;
}
}
Тестирование программы
После отладки программы на экране появляется
окно, в котором содержится список основных режимов работы. Главное окно моей
программы показан на рис.1.
Рис. 2 - Главное меню программы
безопасность программа
шифрование данные
Создание таблицы шифрования
Ввод исходного текста
Результат программы
Дешифровка текста
Заключение
К сожалению, как и почти любое достижение
человеческого гения, компьютер, решая одни экономические и социальные проблемы,
одновременно порождает и другие, порою не менее сложные. Сегодня, когда
масштабы выпуска и применения средств вычислительной техники в нашей стране
должны резко увеличиться, к решению возможных в будущем проблем надо готовиться
загодя, чтобы они не застали врасплох.
Организационные меры должны выступать в качестве
обеспечения эффективного применения других методов и средств защиты в части,
касающейся регламентации действий людей.
Защиту, надо везде, где только можно, усиливать
соответствующими более надежными современными физическими и техническими
средствами. Именно поэтому тема моей курсовой работы является актуальной и
своевременной. С помощью моей созданной программы можно обеспечить защиту
информации в средней степени. Хотя в программе использованы не самые лучшие
методы защиты, в будущем я хочу исправить это и разработать алгоритм защиты
данных современными методами.
Литература
Программирование
и основы алгоритмизации. В.Г. Давыдов. Высшая школа 2003.
Основы
паралельного программирования. К.Ю. Богачев. Бином 2003 /C++ и Borland C++
builder для начинающихПахомов Б.И.СПб.: БХВ-Петербург2005/C++ и Borland C++
Builder для студента. Пахомов Б.И.СПб.: БХВ-Петербург2006
C/C++
и
Borland C++Builder 2006. Самоучитель.Пахомов Б.И.СПб.:
БХВ-Петербург2006/C++. Алгоритмы и приемы программированияФридман А.,Кландер
Л.,Михаэлис М.,Шильдт Х.М.: Бином. Лаборатория знаний2003