Главная страница

Атаки на эллиптические кривые


Скачать 191.67 Kb.
НазваниеАтаки на эллиптические кривые
Дата06.03.2022
Размер191.67 Kb.
Формат файлаdocx
Имя файлаReferat (1).docx
ТипРеферат
#384804
страница12 из 19
1   ...   8   9   10   11   12   13   14   15   ...   19

4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ




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

Выбранные данные представлены в виде таблиц для более удобного сравнения полученных данных.

Исходя из этого, было решено создать приложение, которое может обрабатывать выбранные данные для кривых и анализировать время, потраченное для на обработку вычислений. В качестве среды разработки была выбрана Microsoft Visual Studio 2012, а в качестве языка программирования был выбран – Visual Basic.

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

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


    1. Функция нахождения обратного элемента




Function obratni (ByVal t As BigInteger)

На вход данной функции подается число типа BigInteger
В данной функции нахождение обратного элемента происходит по закону конечного поля. А именно обратным элементом конечного поля является такое число x при котором выполняется следующее равенство (4.1):

𝑋 𝑇 𝑚𝑜𝑑 𝑝 = 1 (4.1)
Где p характеристика выбранного поля,

T – элемент поля, которому необходимо найти обратный элемент Функция реализует этот алгоритм путем перебора всевозможных

значений x пока не будет выполняться условие.
С помощью команды return функция передает вычисленный обратный элемент в поле


    1. Процедура удвоения точки на эллиптической кривой




Sub udvoenie(ByVal x1 As BigInteger, ByVal y1 As BigInteger) На вход данной процедуры подаются числа типа BigInteger
В этой процедуре происходит сложения точки с самой собой по формулам (1.7), (1.8), (1.6) представленных выше. Так как все вычисления происходят в конечном поле, то при вычислении формулы (1.7) необходимо будет воспользоваться функцией нахождения обратного элемента, о которой рассказывалось выше.

При вычислении формулы (1.7) может произойти так, что число, полученное путем деления числителя на знаменатель будет не попадать в выбранное нами поле (например, оно может быть отрицательным). Для этого была создана проверка на принадлежность этого числа полю p. Если число оказывается меньше 0, то мы прибавляем к этому числу характеристику поля p до тех пор, пока оно не станет больше 0. Если же полученное число оказывается больше поля p, то мы просто вычисляем остаток от деления по модулю p.

На выходе процедуры получаются координаты точки, полученные путем сложения выбранной точки с самой собой.


    1. 1   ...   8   9   10   11   12   13   14   15   ...   19


написать администратору сайта