Я пытаюсь реализовать протокол SRP для безопасной проверки подлинности. Моя проблема в том, что когда мне приходится вычислять ModPow отрицательного числа, он также возвращает отрицательное число. Я знаю, что это может быть названо остатком, а не модулем, но мне действительно нужно получить положительный модуль, чтобы создать правильный хеш.C# BigIntegers получить положительный modPow
Как я мог это сделать?
Почему вы вычисляете ModPow отрицательного числа? Я не думаю, что SRP когда-либо делает эту операцию. –
Потому что я получил отрицательное число после подзаголовка. B - k * pow (g, x, N). Это отрицательное значение для меня. – stomseven
Вы должны добавить N, пока он не станет отрицательным. 2 часа - 3 часа - 11 часов, а не 1 час. Вы можете сделать результат mod N, чтобы убедиться, что он находится в одном добавлении N из 0. –