Algoritmusok a gyors hatványozáshoz modulo

A Modulo gyors hatványozási  algoritmusok egyfajta modulo hatványozási algoritmusok , amelyeket széles körben használnak különféle kriptorendszerekben a nagy számokkal végzett számítási műveletek felgyorsítására.

A kínai maradéktételt használó módszer

A módszer leírása

Ki kell számítani, hogy hol elég nagyok a számok , és a modulust bontsuk fel prímosztókra . Ezután a modulo gyors hatványozáshoz használhatja a kínai maradéktételt, és megoldhatja az egyenletrendszert (miután korábban a maradékokat Fermat tételével számoltuk ki, ahol ):

A kényelem kedvéért lecserélve a rendszert a következőre vonatkozóan oldjuk meg és kapjuk meg .

Példa

Legyen kötelező kiszámítani

A rendszert a formában ábrázoljuk

Ha az első egyenletből t -t behelyettesítjük a másodikba, azt kapjuk, hogy , akkor , vagy , vagy ;

behelyettesítve akkor t az első egyenletből a harmadikba, figyelembe véve a kifejezést kapunk vagy , akkor ;

akkor tehát, ;

Alkalmazás

Ezzel az algoritmussal jelentős nyereség érhető el a szorzás végrehajtásakor. Ennek az algoritmusnak a használatakor a szorzás kétszer gyorsabban megy végbe.

Számítási összetettség

Ezzel a módszerrel csökkentheti a számítások számát . Legyen kicsit hosszú . A szokásos hatványozással körülbelül modulo szorzások szükségesek. Tegyük fel, hogy ki akarjuk számolni . Csökkentve ezzel a probléma a számításra redukálódik . Ebben a jelölésben minden fokozat hossza . Ezért minden hatványozási művelethez műveletekre lesz szükség . A Total szorzást igényel modulo prímszámmal vagy az eredeti modulo szorzás helyett .

Az ismételt négyzetesítési és szorzási módszer

A módszer leírása

Legyen szükséges kiszámítani . Képzeld el a diplomát , hol

Tegyük formába:

Ezután kiszámítjuk a kifejezés értékét, és végrehajtjuk a helyettesítést a transzformált kifejezésben.

Ezt a műveletet addig hajtják végre, amíg meg nem találják az eredményt.

Példa

Legyen szükséges kiszámítani . Képzeljük a fokot mint . Képviseljük a formában

Alkalmazás

Ha  - prím vagy két nagy prímszám szorzata, akkor általában az ismételt négyzetesítés és szorzás módszerét alkalmazzák. Ha azonban  összetett, akkor ezt a módszert általában a kínai maradéktétellel együtt használják.

Számítási összetettség

Ennek az algoritmusnak az átlagos bonyolultsága megegyezik a két bites számok szorzásának és a bites számok egy bites számmal való osztásának műveleteivel . A -bites és hosszabb számok esetében ez az algoritmus meglehetősen gyorsan végrehajtódik számítógépen.

Montgomery hatványozási módszere

Történelem

Ezt a módszert 1985-ben Peter Montgomery javasolta a moduláris hatványozás felgyorsítására.

A módszer leírása

Ebben a módszerben minden szám egy bizonyos képhez van társítva, és minden számítást a -val hajtunk végre , és a végén megtörténik az átmenet a képről a számra.

Tétel (Montgomery).

Legyen  másodprime pozitív egész számok, és . Ekkor bármely egész szám osztható -val , és -vel . Sőt, ha , akkor a különbség vagy , vagy .

Ez a tétel lehetővé teszi, hogy optimális módon számítsuk ki néhány kényelmesen kiválasztott érték értékét .

Definíció 1. A , , , számok esetében úgy, hogy gcd és ,  a szám maradékát a mennyiségnek nevezzük .

Definíció 2. Két egész szám Montgomery-szorzatát számnak nevezzük

Tétel (Montgomery-szabályok). Legyenek a számok másodprímek és . Aztán és

Vagyis az érthetőség kedvéért írjuk a hatványozás kifejezését :

Algoritmus (Montgomery terméke). Legyen egész számok adott , ahol páratlan, és . Ez az algoritmus visszaadja .

1.[M Montgomery funkció] { ; ; //A tételnek megfelelően (Montgomery) . 2.[Helyes eredmény] ha ; visszatérés ; }

Algoritmus (Montgomery hatványozási módszere). Legyen a , , és számok kiválasztása ugyanúgy, mint az algoritmusnál (Montgomery-szorzat). Ez az algoritmus visszaadja . A bináris biteket -vel jelöljük .

1.[Kezdeti beállítás] ; //Valamilyen osztási módszert használva maradékkal. ; //Valamilyen osztási módszert használva maradékkal. 2.[A hatványozás sémája] for { ; // algoritmus használatával (Montgomery termék) . ha ; } //Most egyenlő . 3.[Végső diploma] ;

Ennek eredményeként kapunk egy képet , amelyből megkapjuk a végeredményt , és a kifejezés előre kiszámításra kerül. Két szám szorzata esetén az eredmény így fog kinézni

Példa

Legyen , és meg akarunk szorozni két számot és (azaz négyzet)

van egy képe

(ellenőrizendő, hogy van-e kép )

A képeket szaporítjuk:

,

A szorzás képéről áttérünk a kívánt előképre

,

,

Ennek megfelelően a prototípus

Alkalmazás

Ez a módszer teljesítményelőnnyel rendelkezik az ismételt négyzetesítési és szorzási módszerrel szemben, mivel két szám modulo szorzása sokkal gyorsabb.

Számítási összetettség

Ezzel a módszerrel csökkentheti (nagy érték esetén ) a függvény kiszámítását két méretszám szorzatára . A Montgomery-szorzás összetettségét a következőre becsüljük .

Algoritmus az "iskola" módszerrel

A módszer leírása

Az érthetőség kedvéért vegyük figyelembe a bázis módszerét , azaz  bináris (vagy bináris, mivel ) számrendszerben végezzük a számításokat . Az alapnak van egy pluszja, hogy az osztás művelete jobbra, a szorzás pedig  balra tolódik el.

Definíció 1. Egy nem negatív egész számrendszerben való ábrázolása bázissal (vagy egy szám jelölésével ) az egész számok legrövidebb sorozata , amelyet a bejegyzés számjegyeinek nevezünk úgy, hogy ezek a számjegyek mindegyike kielégíti az egyenlőtlenséget. , és az egyenlőség

Vegyük például a szorzatból való vétel bináris algoritmusát .

Algoritmus (bináris algoritmus a szorzáshoz és a maradék felvételéhez). Legyen pozitív egész számok adottak úgy, hogy , . Ez az algoritmus egy összetett művelet eredményét adja vissza . Feltételezzük, hogy a szám bináris reprezentációja az 1 definíció szerint van megadva , így a szám bitjei formájúak , és  a legjelentősebb bit.

1.[Kezdeti beállítás] ; 2.[Összes bit konvertálása ]for { ; ha ; ha ; ha ; } visszatérés ;

Ennek a módszernek van egy hátránya: nem használja ki a modern számítógépeken elérhető többbites aritmetika előnyeit. Ezért általában nagy alapokat használnak .

Az "iskola" módszer számítási bonyolultsága

A forma egy kifejezésének számítási bonyolultsági becslése van −

Lásd még

Jegyzetek

Irodalom