4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ АЛГОРИТМА
Представленный выше алгоритм шифрования был реализован с помощью интегрированного пакета фирмы Borland Delphi 5.0. Выбор данного языка программирования обоснован тем что, он предоставляет такие возможности, как объектно-ориентированный подход к программированию, основанный на формах, интеграция с программированием для Windows и компонентная технология. Среду визуального программирования Delphi 5 позволяет с помощью компонентного подхода к созданию приложений, быстро и качественно "собрать" интерфейс программы и большую часть времени использовать именно на реализацию составленного алгоритма.
Программа построена по технологии клиент/сервер, т.е. клиент передает по сети данные из стандартного потока ввода (с клавиатуры), предварительно зашифровав, сервер, получая поток данных, автоматически его расшифровывает.
Программный продукт состоит из двух приложений. Первое приложение представляет собой программу генерации ключей. Она выводит все простые числа заданного диапазона, из которых потом выбираются числа и . Там же находятся открытый и закрытый ключи, которые сохраняются на диске. Второе приложение, основная программа, производит соединение между двумя компьютерами и, отправляя сообщение, шифрует его. Это приложение клиент. Приложение сервер получает сообщение и расшифровывает его. Так же во второй программе содержится небольшая база данных абонентов, хранящая в себе имена абонентов, IP адреса и их открытые ключи.
4.1. Реализованные алгоритмы
В программном продукте были реализованы основные алгоритмы схемы RSA. Функция ModDegree производит вычисление . Функция Prost находит все простые числа заданного диапазона. Функция Evklid реализует алгоритм Евклида и находит закрытый ключ . Функция HOD производит вычисление наибольшего общего делителя и находит открытый ключ . Вышеперечисленные функции представлены в приложении 1.
4.2. Анализ результатов
Результатом работы созданной программы являются зашифрованные и расшифрованные сообщения.
Для тестирования программы использовался пример приведенный в [11] , , и . Также и .
5. ВЫВОДЫ
Перейдем к обсуждению выводов после детального просмотра специфики метода, реализованного программного продукта на основе построенного алгоритма, а также представленного анализа результатов по обработанному материалу.
5.1 Алгоритм
Использованный алгоритм RSA имеет ряд преимуществ:
1) алгоритм RSA является ассиметричным, т.е. он основывается на распространении открытых ключей в сети. Это позволяет нескольким пользователям обмениваться информацией, посылаемой по незащищенным каналам связи;
2) пользователь сам может менять как числа , , так и открытый и закрытый ключ по своему усмотрению, только потом он должен распространить открытый ключ в сети. Это позволяет добиваться пользователю нужной ему криптостойкости.
При всех этих преимуществах данный алгоритм имеет существенный недостаток – невысокая скорость работы. Алгоритм RSA работает более чем в тысячу раз медленнее симметричного алгоритма DES.
Из всего вышесказанного можно заключить, что данный алгоритм шифрования, хотя довольно медленный, но он ассиметричный и позволяет добиваться нужной криптостойкости, что делает его незаменимым при работе в незащищенных каналах связи.
5.2 Алгоритм и программа
Исходя из проработанных данных, по построенному алгоритму и созданному программному продукту сделаны следующие выводы:
1) построенный алгоритм, а соответственно и созданный на его базе программный продукт, полностью реализует базовые механизмы схемы RSA и, таким образом удовлетворяют основным поставленным задачам;
2) данный программный продукт построен по технологии клиент/сервер и предназначен сохранять конфиденциальность передачи информации в сети.
Таким образом, по выводам о построенном алгоритме и созданном программном продукте можно заключить, что он подходит для решения проблем шифрования информации, связанных с передачей данных по сети.
ЗАКЛЮЧЕНИЕ
В рамках данного дипломного проектирования перед студентом Малышевым А.А. была поставлена задача: на основе алгоритма RSA для шифрования блоков данных, построить алгоритм и реализовать программный продукт для шифрования потоков данных.
В результате выполнения дипломного проектирования был составлен принципиальный алгоритм для решения поставленной задачи. Далее он был детализован и реализован на ЭВМ. В конце, был проведён анализ полученных результатов, и сделаны необходимые выводы.
За основу построения алгоритма был принят алгоритм RSA для шифрования блоков данных, изучена соответствующая литература по алгоритму, и был построен алгоритм и реализован программный продукт в среде визуального программирования Delphi 5 под ОС типа Windows для IBM PC-совместимых компьютеров.
Созданный программный продукт позволяет решить поставленную задачу и, дополнительно, содержит в себе небольшую базу данных абонентов. Т.е. в результате выполнения программы исходное сообщение шифруется и передается по сети, где оно расшифровывается. Также можно указать о том, что программа имеет интуитивно понятный интерфейс, что дополнительно помогает пользователю с наибольшей результативностью использовать всю ресурсную базу.
В заключении, после анализа полученных результатов были сделаны выводы, согласно которым алгоритм работает и применим для поставленной задачи.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Ященко В. В. Основные понятия криптографии // Математическое просвещение. Сер. 3. №2. 1998. С. 53-70.
2. Виноградов И. М. Основы теории чисел. М.: Наука. 1972.
3. Карацуба А. А. Основы аналитической теории чисел. М.: Наука. 1983 г.
4. Кнут Д. Искусство программирования на ЭВМ. Т.2: Получисленные алгоритмы. М.: Мир. 1977.
5. Ахо А.. Хопкрофт Дж.. Ульман Дж. Построение и анализ вычислительных алгоритмов. М.: Мир. 1979.
6. Варновский Н. П. Криптография и теория сложности // Математическое просвещение. Сер. 3. №2. 1998. С. 71-86.
7. Василенко О. Н. Современные способы проверки простоты чисел // Кибернетический сборник, вып. 25. 1988. С. 162-188.
8. Прахар К. Распределение простых чисел. М.: Мир. 1967.
9.Боревич З.И. Шафаревич И.Р. Теория чисел. М.: Наука. 1964.
10. Кострикин А.И. Введение в алгебру. М.: Наука. 1977.
11. Брассар Дж. Современная криптология. Мир ПК. №3. 1997.
ПРИЛОЖЕНИЕ 1
Листинг программы
Модуль Key.pas
Function Prost(n:integer):Boolean;
var k:Boolean;
i:integer;
begin
k:=true;
if n2 then
for i:=2 to trunc(sqrt(n))+1 do
if (n/i)=trunc(n/i) then
begin
k:=False;
Break;
end;
Prost:=k;
end;
{________________________________________________________}
Function Evklid(Num1,Num2:integer):integer;
var r,q1,p1:array of integer;
i,n,k:integer;
begin
if Num1>=Num2 then
begin
SetLength(r,10);
r[0]:=Num1;
r[1]:=Num2;
end
else
begin
SetLength(r,10);
r[0]:=Num2;
r[1]:=Num1;
end;
i:=1;
while r[i]0 do
begin
inc(i);
r[i]:=r[i-2] mod r[i-1];
end;
n:=i-2;
SetLength(q1,n+1);
for i:=0 to n do
q1[i]:=r[i] div r[i+1];
SetLength(p1,n+2);
p1[0]:=1;
p1[1]:=q1[0];
k:=length(q1);
if k>1 then
for i:=2 to k do
p1[i]:=q1[i-1]*p1[i-1]+p1[i-2];
Result:=trunc(power(-1,k-1))*p1[k-1] mod Num2;
end;
{________________________________________________________}
Function HOD(Num1,Num2:integer):integer;
var r:array of integer;
i:integer;
begin
if Num1>=Num2 then
begin
SetLength(r,Num2);
r[0]:=Num1;
r[1]:=Num2;
end
else
begin
SetLength(r,Num1);
r[0]:=Num2;
r[1]:=Num1;
end;
i:=1;
While r[i]0 do
begin
inc(i);
r[i]:=r[i-2] mod r[i-1];
end;
Result:=r[i-1];
end;
{________________________________________________________}
Function ModDegree(Num,Degree,n:integer):integer;
var x:array of integer;
i:integer;
begin
SetLength(x,n);
x[1]:=Num mod n;
for i:=2 to Degree do
x[i]:=x[i-1]*Num mod n;
Result:=x[Degree];
end;
ПРИЛОЖЕНИЕ 2
Главная форма программы
ПРИЛОЖЕНИЕ 3
Форма базы данных абонентов
ПРИЛОЖЕНИЕ 4
Форма нахождения простых чисел и генерации ключей
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
АМУРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет математики и информатики
Кафедра математического анализа и моделирования
Специальность 010200 – “прикладная математика”
ДОПУСТИТЬ К ЗАЩИТЕ
Зав. кафедрой ____________________
___________Т.В.Труфанова
«____»_____________2002 г.
ДИПЛОМНАЯ РАБОТА
на тему Применение алгоритма RSA при шифровании потоков данных
Исполнитель
студент группы 752 А. А. Малышев
Руководитель
к.ф.-м.н., доцент А.Н. Семочкин
Нормоконтроль
к.т.н., доцент А.Н. Гетман
Рецензент
к.ф.-м.н., доцент Е.Ф. Алутина
Благовещенск 2002
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
АМУРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет математики и информатики
Кафедра математического анализа и моделирования
Утверждаю:
Зав. кафедрой
_______________________
подпись И.О.Фамилия
«__»_____________ 200_г.
ЗАДАНИЕ
К дипломной работе студента Малышева Андрея Александровича
1. Тема дипломной работы Применение алгоритма RSA при шифровании потоков данных
(утверждено приказом от ____ №___________)
2. Срок сдачи студентом законченной работы ________________________
3. Исходные данные к дипломной работе ___________________________
4. Содержание дипломной работы (перечень подлежащих разработке вопросов)
Исследовать современные методы шифрования и их приложимость к шифрованию потоков данных. Разработать собственную библиотеку алгоритмов шифрования и программный продукт, демонстрирующий работу этих алгоритмов при передаче данных в сети.
5. Дата выдачи задания « » ____________2002 г.
Руководитель дипломной работы Семочкин Александр Николаевич к.ф.-м.н., доцент кафедры МАиА.
Задание принял к исполнению _____________________________________
РЕФЕРАТ
Дипломная работа 48 стр., 11 источников, 4 приложения.
АЛГОРИТМ RSA, ФУНКЦИЯ ЭЙЛЕРА, ВЗАИМНО ПРОСТЫЕ ЧИСЛА
В данном дипломном проекте рассматривается задача анализа алгоритма шифрование в потоках данных RSA. Для этого построен алгоритм и реализован программный продукт. Программный продукт создан в среде визуального программирования Delphi 5.0, отлажен и протестирован. На основании анализа полученных результатов сделаны выводы, указаны замечания и рекомендации исследователю по практическому использованию программы, а также по дальнейшему улучшению алгоритма и программного продукта в
... в тайне. Исходный текст шифруется открытым ключом адресата и передается ему. Зашифрованный текст в принципе не может быть расшифрован тем же открытым ключом. Дешифрование сообщение возможно только с использованием закрытого ключа, который известен только самому адресату. Криптографические системы с открытым ключом используют так называемые необратимые или ...
... . Так как система с открытыми ключами позволяет распределять ключи и в симметричных системах, можно объединить в системе передачи защищенной информации асимметричный и симметричный алгоритмы шифрования. С помощью первого рассылать ключи, вторым же - собственно шифровать передаваемую информацию Обмен информацией можно осуществлять следующим образом: · получатель вычисляет открытый и ...
... схема устройства для аппаратного шифрования информации, которая соответствует приведенным выше требованиям, изображена на рисунке 1.9. Рис. 1.9 – Структурная схема устройства аппаратного шифрования 2. РАЗРАБОТКА СХЕМОТЕХНИЧЕСКОЙ РЕАЛИЗАЦИИ АППАРАТНОГО ШИФРАТОРА 2.1 Выбор элементной базы для шифратора Согласно техническому заданию, элементная база для аппаратного шифратора должна ...
... не к ключам!) и поэтому может зашифровывать и дешифровывать любую информацию; 2.7 Выводы по разделу 2. Подводя итоги вышесказанного, можно уверенно заявить, что криптографическими системами защиты называються совокупность различных методов и средств, благодаря которым исходная информация кодируеться, передаеться и расшифровываеться. Существуют различные криптографические системы защиты, ...
0 комментариев