Сама библиотека представляет собой по сути 3 класса: PolinomOverSimpleField, FiniteField, FiniteFieldsElement.
Первый позволяет работать с многочленами над конечными полями
Второй является по сути исключительно служебным, хранит в себе всю информацию о поле, с которым работаем (по сути всего 3 переменные
Третий представляет собой элементы этого поля с реализованными операциями.
Все арифметические операции представлены в наиболее простой и интуитивной форме.
// создание полинома q = x^8 + x^4 + x^3 + x + 1 над простым полем F_2
var q = new PolinomOverSimpleField(new int[] {1, 1, 0, 1, 1, 0, 0, 0, 1}, 2);
// создание поля F_{2^8}
var Field = new FiniteField(2, 8, q);
// получение 1 из этого поля
var one = Field.GetOne();
// сложение двух единиц
var result = one + one;
Так же в библиотеке есть отдельный инструмент для работы над полем
var GF256 = new BinaryFiniteField(8, q);
// преобразование числа в байты
var Byte = GF256.FromNumberToElement(200);
// и наоборот
var Number = GF256.FromElementToNumber(Byte);