RSA Kryptering

Dette innlegget har allerede blitt vist 2363 ganger!

RSA er et krypteringssystem som benytter seg av offentlig nøkkel-kryptografi. Det vil si at den har to «nøkler»; én offentlig for å kryptere, og én privat for å dekryptere. En melding som er kryptert med en offentlig nøkkel kan kun bli dekryptert av den private nøkkelen.

Kort forklart fungerer RSA på følgende måte. Man velger seg to store primtall p og q. Så setter man n = pq, og veler et tall e < n. Da er den offentlige nøkkelen (n,e) – for å kryptere en melding m beregner man følgende: c = me mod n. For å dekryptere den krypterte meldingen c må man opphøye det i et annet tall modulo n: m = cd mod n.

Det viser seg at tallet d er det samme som inversen til e modulo φ(n). Siden vi vet p og q er det lett å finne φ(n) (φ(n) = φ(pq) = φ(p)*φ(q) = (p-1)(q-1)).

Vi har altså to funksjoner, f(m) for å kryptere meldingen m, og g(c) for å dekryptere meldingen c. f(m) = me mod n, og g(c) = cd mod n. Det vi ser nå er at g(f(m)) = f(g(m)) = m.

Det som er viktig når man skal velge p og q er at de er veldig store, men samtidig ikke for nærme hverandre på tallrekka. Samtidig må man sørge for at de holdes hemmelig. Det som gjør RSA så sikkert er nemlig at det er utrolig tidkrevende og vanskelig å faktorisere et stort nok tall, og rent praktisk umulig.