Репозиторий содрежит примеры автоматизации вычислений в конечных полях.
Все примеры реализованы с помощью SageMath. Вы можете установить данное ПО локально по инструкции либо использовать платформу CoCalc. Я воспользовался вторым вариантом, так как на платформе CoCalc есть возможность создать Jupyter Notebook с ядром SageMath и использовать его бесплатно (без доступа в интернет). Для запуска примеров доступ в интернет и не понадобится.
finite_fields_sagemath.ipynb - содержит реализации следующих алогоритмов:
- Вероятностный алгоритм поиска образующего элемента циклической группы
- Поиск примитивного многочлена поля
- Деление многочленов в поле
- Расчет обратного элемента
- Все элементы как степени корня неприводимого многочлена в поле GF(2^4)
- Таблицы сложения и умножения для поля GF(2^4)
- Все элементы как степени корня неприводимого многочлена в поле GF((2^2)^2)
- Таблицы сложения и умножения для поля GF((2^2)^2)
Подробнее об этих алгоритмах можно почитать в моих статьях на Habr:
- Галуа Ч.1: Классы вычетов и группы
- Галуа Ч.2: Кольца и поля. Конечные поля вида GF(p^n)
- Галуа Ч.3: Конечные поля вида GF((p^n)^m). Изоморфизм конечных полей
knapsack_sagemath.ipynb - содержит реализацию рюкзачной криптосистемы Шора-Ривеста.
Подробнее об этой криптосистеме можно почитать в моей статье на Habr: Рюкзачная криптосистема Шора-Ривеста.
Все оригиналы статей в формате pdf есть в моем IT-блоге в Telegram.