模逆运算快速算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模逆运算快速算法——扩展的Euclid 算法与扩展的Stein 算法

(1)扩展的Euclid 算法

求模逆的传统算法是扩展的Euclid 算法,该算法是在用Euclid 算法求取二个数的最大公因子时,若最大公因子为1,说明二个数互素,则可同时得出二者的乘法逆元。

算法描述如下:

输入:二个整数a 、b ,设b a >

输出:a 与b 的最大公因子;若二者互素,同时得出乘法逆元

Step 1: ),0,1(),,(321a X X X ←,),1,0(),,(321N Y Y Y ← Step 2: if 03=Y then return ),gcd(3b a X =,no inverse

Step 3: if 13=Y then return ),gcd(3b a Y =,a Y b m od 21

=-,b b Y a m od )(11+=-

Step 4: ⎣⎦33Y X Q =

Step 5: ),,(),,(332211321QY X QY X QY X T T T ---← Step 6: ),,(),,(321321Y Y Y X X X ← Step 7: ),,(),,(321321T T T Y Y Y ←

Step 8: goto Step 2 (2)扩展的Stein 算法

较之扩展的Euclid 算法,扩展的Stein 算法可以得到更高的执行效率。 Stein 算法基于以下求取二个数公因子的基本性质: 1)若a 与b 都是偶数,则)2,2gcd(2),gcd(b a b a = 2)若a 为偶数、b 为奇数,则),2gcd(),gcd(b a b a = 3)若a 与b 都是奇数,则),2)(gcd(),gcd(b b a b a -=

由于除2在二进制运算中仅做一次移位操作,因此可以说Stein 算法主要只用到了减法,通过计算复杂性分析可知,在最坏情况下,Stein 算法所需减法次数为)13()(-+lb a lb 。

使用扩展的Stein 算法处理模逆运算的流程如下图所示。

图处理模逆运算的Stein算法

相关文档
最新文档