RSA

Iš testwiki.
Pereiti į navigaciją Jump to search

RSA (Rivest–Shamir–Adleman abreviatūra) – viešojo rakto kriptosistema, kurios algoritmą 1977 metais sukūrė Ronald Rivest, Adi Shamir ir Leonard Adleman.

Raktų parinkimo algoritmas

Pasirenkame du pirminius skaičius p ir q (jie turi būti pakankamai ilgi), pq; sudauginame juos: n=pq. Pasirenkame natūralųjį skaičių e=eA taip, kad jis būtų santykinai pirminis su ϕ(n)=(p1)(q1), t. y. (e,ϕ(n))=1.

Naudojantis Euklido algoritmu surandame skaičių d=dA, kad būtų de1(modϕ(n)).

Sudarome raktus: viešąjį Kv=(e,n) ir privatųjį Kp=(d).

Šifravimas/Dešifravimas

Pranešimai, kuriuos norime siųsti yra aibės M^={1,2,...,n} skaičiai. Šifravimas apibrėžiamas lygybe:

C=e(M,eA)=MeA(modn),

C – pranešimo M šifras C (M yra skaičius iš aibės M^, tad M<n)

Dešifravimo algoritmas visiškai toks pat, kaip ir šifravimo:

M=d(C,dA)=CdA(modn)

RSA Iššūkis

Duotajam n surasti pirminius p ir q, kad n=pq, laikoma labai sunkia matematine užduotimi. Visas RSA kriptosistemos saugumas remiasi šiuo faktu. RSA Laboratories paskelbė konkursą, kurio esmė yra surasti p ir q duotajam n. Pavyzdžiui, surasti p ir q skaičiui

n=13506641086599522334960321627880596993888147560566702752448514385152
651060485953383394028715057190944179820728216447155137368041970396419174
304649658927425623934102086438320211037295872576235850964311056407350150
818751067659462920556368552947521350085287941637732853390610975054433499
9811150056977236890927563.

Nuo 2007 m. RSA Laboratories šių konkursų neberengia.

Nuorodos