Исследование современных методов шифрования

Характеристика системы шифрования RSA. Установление больших простых чисел. Исследование алгоритма нахождения делителей многочлена в кольце. Проверка большого числа на простоту. Особенность использования среды визуального программирования Delphi 5.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 11.04.2018
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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.

ПРИЛОЖЕНИЕ

Листинг программы

Модуль Key.pas

Function Prost(n:integer):Boolean;

var k:Boolean;

i:integer;

begin

k:=true;

if n<>2 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;

Главная форма программы

Форма базы данных абонентов

Форма нахождения простых чисел и генерации ключей

В данном дипломном проекте рассматривается задача анализа алгоритма шифрование в потоках данных RSA. Для этого построен алгоритм и реализован программный продукт. Программный продукт создан в среде визуального программирования Delphi 5.0, отлажен и протестирован. На основании анализа полученных результатов сделаны выводы, указаны замечания и рекомендации исследователю по практическому использованию программы, а также по дальнейшему улучшению алгоритма и программного продукта в целом.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.