A Montgomery-algoritmus egy olyan technika, amely lehetővé teszi a szorzási és négyzetesítési műveletek felgyorsítását, amikor egy számot teljesítménymodulussá emelünk, amikor a modulus nagy (több száz bites nagyságrendben). 1985-ben Peter Montgomery javasolta .
Adott a, b < n , r , GCD egész számok esetén a Montgomery algoritmus kiszámítja
Alkalmazásokban általában ezt veszik , mivel ebben az esetben a maradékkal való osztás és az algoritmuson belüli szorzás gyors.
Határozzuk meg a szám n - maradékát ( n - maradékát) így .
A Montgomery-algoritmus azt a tulajdonságot használja, hogy a halmaz egy teljes maradékrendszer , azaz minden számot tartalmaz 0 - tól n-1- ig .
A MonPro kiszámolja . Az eredmény az n-maradék , mivel
Határozzuk meg úgy, hogy . és kiszámítható a kiterjesztett euklideszi algoritmus segítségével .
Funkció
1. 2. 3. míg 4. visszaAmikor a szorzást és az osztást nagyon gyorsan hajtják végre, mivel ezek csak biteltolások, és amikor a 3. sorban lévő ciklus legfeljebb egyszer kerül végrehajtásra. Így a Montgomery-algoritmus gyorsabb, mint a szokásos számítás , amely n-nel való osztással jár. Az n' számítása és a számok n-es maradékmá alakítása és fordítva azonban időigényes műveletek, aminek következtében két szám egyszeri szorzatának kiszámításakor indokolatlannak tűnik a Montgomery-algoritmus alkalmazása.
A Montgomery-algoritmus használata igazolja magát, amikor egy számot hatványmodulra emelünk .
Funkció
1. 2. 3. i=j-1 esetén 0-ra ha akkor 4. visszaEgy szám k bithosszúságú hatványra emelése a „négyzet és szorzás” algoritmussal k-tól 2k-ig terjedő szorzást tartalmaz, ahol k száz vagy több ezer bit nagyságrendje. A Montgomery hatványozási algoritmus használatakor a további számítások mennyisége rögzített (számítások , , elején és végén), és a MonPro művelet gyorsabb, mint a szokásos modulo szorzás [1] , így a Montgomery hatványozási algoritmus egy teljesítménynövekedés a "négyzet és szorzás" algoritmushoz képest .