Laske a^b mod n
Syötä kantaluku, eksponentti ja jakaja kokonaislukuina. Suuretkin eksponentit lasketaan nopeasti.
Laske modulaarinen potenssi a^b mod n nopealla neliöi-ja-kerro-menetelmällä – toimii myös erittäin suurilla eksponenteilla.
Syötä kantaluku, eksponentti ja jakaja kokonaislukuina. Suuretkin eksponentit lasketaan nopeasti.
Modulaarisen potenssin laskuri laskee lausekkeen a^b mod n eli potenssin a^b jakojäännöksen luvulla n. Laskuri käyttää neliöi-ja-kerro-menetelmää, joka toimii nopeasti myös erittäin suurilla eksponenteilla – juuri tätä operaatiota tarvitaan esimerkiksi RSA-salauksessa. Tulos lasketaan tarkasti suurillakin luvuilla.
Modulaarinen potenssi yhdistää tavallisen potenssiin korottamisen ja jäännöslaskennan. Lauseke kirjoitetaan muodossa:
tulos = a^b mod n
Se kertoo, mikä on a^b:n jakojäännös jaettaessa n:llä. Tulos on aina väliltä 0 … n−1. Esimerkiksi 3⁴ mod 5 = 81 mod 5 = 1.
Jos potenssi a^b laskettaisiin ensin kokonaan ja vasta sitten otettaisiin jakojäännös, luku kasvaisi valtavan suureksi. Esimerkiksi salauksessa eksponentti voi olla satoja numeroita pitkä, jolloin a^b ei mahtuisi mihinkään muistiin. Ratkaisu on ottaa jakojäännös jokaisen välivaiheen jälkeen, jolloin luvut pysyvät pieninä.
Tehokkain tapa perustuu eksponentin binääriesitykseen. Tulosta neliöidään joka askeleella, ja kun binääriluvussa on ykkönen, tulokseen kerrotaan kantaluku – aina modulo n:
x² mod n ja (x · a) mod n
Menetelmä tarvitsee vain noin log₂(b) vaihetta, joten sen nopeus on aivan eri luokkaa kuin b:n yksittäisen kertolaskun ketju.
Lasketaan 4¹³ mod 497. Eksponentti 13 on binäärinä 1101.
Tarkistus: 4¹³ = 67 108 864, ja 67 108 864 mod 497 = 445. Sama tulos saadaan siis murto-osassa askeleita ilman, että käsitellään kahdeksannumeroista lukua.
Modulaarinen potenssi on monien julkisen avaimen salausmenetelmien perusta. RSA-salauksessa viesti salataan ja puretaan nostamalla se potenssiin modulo suuri luku n. Diffie–Hellman-avaintenvaihdossa osapuolet laskevat saman jaetun salaisuuden modulaaristen potenssien avulla. Menetelmän turvallisuus perustuu siihen, että vaikka potenssi on helppo laskea, käänteinen operaatio (diskreetti logaritmi) on käytännössä mahdoton suurilla luvuilla.