快速幂算法

在RSA算法中,核心无论是大素数产生算法还是加密/解密,都关系到大幂运算

考虑模指数,即计算形X^C mod n,的函数,在RSA密码体制中,加密和解密运算都是模指数运算。计算X^C mod n可以通过c-1次模乘来实现,
然而,如果c非常大,其效率会很低下。著名的平方-乘可以把计算所需的模乘的次数降低。以计算 X^24为例:
X24 将指数表示为 二进制形式 X11000 表示为Xb1b2b3b4b5
开始扫描指数的每个Bit:

1:     初始值  x = x^1;                初始化设置,b1 = 1  ,扫描第一个bit时不需要做其他操作

2:      X^2 = X^10                                  b2=1,先平方
        X^2 * X = X^3 =X^11                         再乘以 X

3:     (X3)^2 = X^6 = X^110                    b3= 0,只需要一次平方

4:      (X6)^2  = X^12 = X^1100                 b4 = 0,只需要一次平方

5:     (X12)^2 = X^24 = X^11000                b5 = 0,只需一次平方

算法总结:
通过观察运算过程中指数的二进制表示的变化能更好的理解算法,一次平方操作会让指数向左移一位,并在最右边添加0,而与 X 相乘的操作即在指数的最右边位置上填上 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电子开发攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值