模块化指数快速方式

时间:2014-01-28 23:45:44

标签: performance rsa modular exponentiation

我正在进行RSA任务。由于数字越来越大,因此使用InfInt biginter库。现在,我面临的问题是,如果数字太大,就像6-7位输入一样,则指数函数需要花费太多时间。

InfInt modPow(InfInt base, InfInt exp, InfInt n)
{

base = base%n;

if (exp == 0)
    return 1;

else if (exp == 1)
    return base;

else if (exp%2 == 0)
    return modPow(base*base%n, exp/2, n);

else
    return base*modPow(base, exp-1, n)%n;
}

无论如何,我可以提高速度吗?我读过Euler的方法和其他方法,但不能理解。如果有人能解释如何加快这个功能,那将会很棒。

由于

0 个答案:

没有答案