Skip to content

Проект создания цифровой подписи на основе эллиптической кривой

Notifications You must be signed in to change notification settings

Unproductive-Lab/sign-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 

Repository files navigation

Static Badge Static Badge Codacy Badge

Проект создания цифровой подписи на основе эллиптической кривой

Требования - библиотека boost (но ты можешь просто везде понатыкать longint и прописать свои функции)

Кр. теория

Референс материал
Эллиптические кривые - это кривые, похожие на графике на сосочки, которые делают свою магию.

Константы эллиптической кривой

Fair warning - в этом проекте представлена кривая Р-256. Это ДАЛЕКО не единственная кривая в мире, и если вы хотите чтобы у вас был шанс на коммерческое использование, присмотритесь, например, к кривой ГОСТ 34.10-2012 или её родне.

Параметр Тип Description
P cpp_int (boost) Модуль, по которому выполняются вычисления.
Он определяет конечное поле GF(p) , в котором определяются точки эллиптической кривой
a & b cpp_int (boost) Эти параметры задают уравнение эллиптической кривой в форме
y^2=x^3+ax+by 2=x 3 + ax + b (mod p).
m cpp_int (boost) aka. порядок группы. Это количество точек на эллиптической кривой, включая "нулевую" точку
Gx & Gy cpp_int (boost) Координаты базовой точки.
Такой, что есть порядок q; q*P[Gx, Gy] = O, где O - нулевая точка
n cpp_int (boost) Порядок точки [Gx, Gy]

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

line 193 : Text.open("D://Message.txt", ios::in);

About

Проект создания цифровой подписи на основе эллиптической кривой

Resources

Stars

Watchers

Forks

Languages