Skip to main content

Учебный проект для сложения точек эллиптической кривой

Project description

Elliptic Curve

Учебный проект реализующий сложение точек на эллептической кривой и произведение точки на скаляр.

Все операции проводятся на двумя типами полей:

  • Конечное поле с характеристикой 2
  • Кольцо вычетов по модулю

Установка

Из исходников:

cd project_path
pip3 install -e '.'

С помощью wheel:

cd wheel_dir_path
pip3 install elliptic_curve-0.0.1-py3-none-any.whl

NOTE: Версия может отличаться от примера в README

Как пользоваться:

После установки в консоле станет доступна команда elliptic-curve

Для получения справки:

elliptic-curve --help

Для запуска скрипта:

elliptic-curve --src <input_dir> --dst <output_dir>

Также можно определить систему счисления для всех выходных файлов с помощью опции --base:

elliptic-curve --src <input_dir> --dst <output_dir> --base 2

Доступны следующие системы счисления: 2, 8, 10. 16

Формат входного файла

NOTE: формат описывает значения по-строчно

Кольцо вычетов по модулю

Z_p
p  # порядок поля
a  # параметр эллиптической кривой
b  # параметр эллиптической кривой
a (x1, y1) (x2, y2)  # сложение двух точек
m <scalar> (x1, y1)  # умножение точки на число

Конечно поле

GF(2^m)
p | m: <степень>  # порядок - неприводимый многочлен или степень неприводимого многочлена
a1  # параметр эллиптической кривой
a2  # параметр эллиптической кривой
a3  # параметр эллиптической кривой
a4  # параметр эллиптической кривой
a5  # параметр эллиптической кривой
a (x1, y1) (x2, y2)  # сложение двух точек
m <scalar> (x1, y1)  # умножение точки на число

Для конечно поля порядок - неприводимый многочлен, также можно его не указывать, а задать лишь степень, тогда скрипт сам возьмет нужный неприводимый многочлен

Форматы чисел

Все числа могут быть заданы с разной системой счисления. Для указания системы счисления необходимо указать ее с помощью префикса:

  • 0x - 16-ная
  • 0b - 2-ная
  • 0o - 8-ная
  • без префикса - 10-ная

Примеры

Смотреть в папке examples

Формат выходного файла

Выходной файл будет содержать результаты на строки-задания (например, a (1, 2) (2, 1)) из входного файла

Для сложения выходная строка будет: (x1, y1) + (x2, y2) = (x3, y3) Для умножения выходная строка будет: <scalar> * (x2, y2) = (x3, y3)

NOTE: система счисления выходного файла может быть определена с помошью опции --base. Если опция не будет указана, то система счисления подберется на основе входного файла по принципу наиболее часто встречаемой системы счисления входа

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

elliptic-curve-0.1.2.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

elliptic_curve-0.1.2-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file elliptic-curve-0.1.2.tar.gz.

File metadata

  • Download URL: elliptic-curve-0.1.2.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for elliptic-curve-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6b8d62760631c8e4be7c65dd3c40c4ab60e47efa99ad0cb4e74af28a268f7015
MD5 234963f6c0de4f5a7b662170068de2d9
BLAKE2b-256 86271049545db0ced33686fcd11769264662153e091cb119f44e5686b56ec0aa

See more details on using hashes here.

File details

Details for the file elliptic_curve-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: elliptic_curve-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for elliptic_curve-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 38bf3c43e6b616755bba521c428402e7d92dc7d297f0fe46837031bce917ee60
MD5 088bb212fec2d2cffefc7e106f7f5a2d
BLAKE2b-256 cfb80520a603c2d09d2c68065e89d37236993f76192845aa03e4d55ab5e49ad0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page