Расчет pow (a, b) mod n

Я хочу вычислить b mod n для использования в расшифровке RSA. Мой код (ниже) возвращает неправильные ответы. Что с этим не так?

unsigned long int decrypt2(int a,int b,int n)
{
    unsigned long int res = 1;

    for (int i = 0; i < (b / 2); i++)
    {
        res *= ((a * a) % n);
        res %= n;
    }

    if (b % n == 1)
        res *=a;

    res %=n;
    return res;
}
19
задан Pops 13 December 2011 в 21:21
поделиться