Есть ли библиотека или другой способ выполнения 128-битных математических операций?

Я пишу криптографическое приложение и мне нужно работать с 128-битными целыми числами.

В дополнение к стандартным сложениям, вычитаниям, умножению, делению и сравнениям, мне также нужна функция мощности и модуля.

Кто-нибудь знает библиотеку или другую реализацию, которая может сделать это? Если не 128-битный, есть ли 64-битный вариант?

4 ответа

Решение

gcc поддерживает 128-битное целое число uint128_t, хотя и не очень переносимое.

Поскольку я не знаю ни одной криптосистемы основного потока, использующей 128-битную модульную арифметику, мне интересно, какую схему вы реализуете.

Большинство современных компиляторов предоставляют 64-битную версию за счет использования long long тип.

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

Другие вопросы по тегам