Есть ли библиотека или другой способ выполнения 128-битных математических операций?
Я пишу криптографическое приложение и мне нужно работать с 128-битными целыми числами.
В дополнение к стандартным сложениям, вычитаниям, умножению, делению и сравнениям, мне также нужна функция мощности и модуля.
Кто-нибудь знает библиотеку или другую реализацию, которая может сделать это? Если не 128-битный, есть ли 64-битный вариант?
4 ответа
gcc поддерживает 128-битное целое число uint128_t, хотя и не очень переносимое.
Поскольку я не знаю ни одной криптосистемы основного потока, использующей 128-битную модульную арифметику, мне интересно, какую схему вы реализуете.
Большинство современных компиляторов предоставляют 64-битную версию за счет использования long long
тип.
Ищите алгоритмы Монтгомери для умножения и степеней в конечном поле. Я не знаю ни одной библиотеки, но я уверен, что есть.