22、双核中模幂运算的实现

双核中模幂运算的实现

1. 引言

高效实现模幂运算(ME)和模乘运算(MM)能够提升RSA算法的性能。为了增强ME计算的性能,有两种主要方法:一是减少所需的模乘次数,从而节省时钟周期;二是提高处理器的时钟周期速度。Montgomery提出了一种在硬件中改进MM过程评估的方法。此后,许多算法技术使用从左到右的模幂算法进行了修改和实现,但通过从右到左的模幂运算进行的工作较少。这为选择从右到左的方法提供了灵感,因为该方法中的平方和乘法过程可以并行执行。为了提高MM过程的吞吐量,采用了高基数Montgomery乘法,它减少了操作周期数,提高了频率并减少了时钟周期数。

2. 高基数Montgomery乘法

为了最小化每次模乘的指令数量,在Montgomery乘法中采用了高基数方法。在高基数表示中,为了使用普通的θ - 位 × θ - 位乘法器,需要将一个k - 位整数划分为η个θ - 位块(即k = η.θ)。整数X可以用θ - 位字xi(0 ≤ i ≤ η - 1)表示为:
[X = \sum_{i = 0}^{\eta - 1} {x_i.2^{i.\theta}} = x_{\eta - 1}.2^{\theta(\eta - 1)} + x_{\eta - 2}.2^{\theta(\eta - 2)} + \cdots + x_1.2^h + x_0]
然后,Montgomery乘法(C = XY2^{-\sigma} \pmod{m})可以通过重复操作(C = (C + x_i.Y)/2^h) \pmod{m}) η次来执行。

ME在双核处理器上的实现需要对Montgomery乘法方法进行一些修改,以提高利用率并满足双核处理器的要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值