快速计算aemod m 的值
例:368mod 809
先将例子中e=68用二进制表示为68=26+22=1000100,2i得到bi为2i对应的系数;
c=0,d=1;
for(i=k;i>=0;i–)
{
c=2c;
d=(d2)mod m
if(bi=1){c=c+1;d=(da)mod m}
}
return d;
i | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
bi | 1 | 0 | 0 | 0 | 1 | 0 | 0 | |
c | 0 | 1 | 2 | 4 | 8 | 17 | 34 | 68 |
d | 1 | 3 | 9 | 81 | 89 | 302 | 596 | 65 |
计算方法如表所示,最后的c即为指数e的值,输出d为最后的结果