RSA

El Vikipedio, la libera enciklopedio
Saltu al: navigado, serĉo

RSA estas la unua malsimetria ĉifro, tio signifas, ke oni uzas diversajn ŝlosilojn por ĉifri kaj malĉifri. La sistemo ebligas uzadon de du ŝlosilojn: ŝlosilo publika kaj ŝlosilo kaŝa. PGP estas simpligita, malaltekosta formo de RSA.

Unu nokton en aprilo 1977, Ron Rivest, sendorma pro kapdoloro, inventis la algoritmon de RSA, la unua sukcesa ĉifro de publika ŝlosilo . La nomo "RSA" devenas de la nomoj de la tri inventistoj: Rivest, Shamir kaj Adleman de MIT. Ĝi estis priskribita en septembro 1977 en Scientific American.

RSA uzas du ŝlosilojn, unu publika ŝlosilo kaj unu kaŝa ŝlosilo. Kie ŝlosilo de DES havas maksimume 56 bitojn, la de RES estas senlima, tial pli malrompebla. Sed eĉ kun ŝlosilo de 56 bitoj, RSA estas multe pli sekura ol DES ĉar la kaŝa ŝlosilo ne estas sendita aŭ eĉ sciita de alia. Aliflanke, la algoritmo de RSA estas 1000-oble pli malrapida ol DES.

RSA estas usona patento #4405829, sed neniu, ne eĉ Philip Zimmermann, estis procesita sub la patento, tial ĝi estas neprovita en tribunalo. RSA ne estas patentita ekster Usono kaj Kanado.

Ĉiu TTT-servilo kaj TTT-legilo de Microsoft, Sun, Netscape, Oracle, ktp, uzas RSA-on en ia formo. Netscape 4.0 uzas ĝin por sendi retpoŝton. La legilo de Netscape sendas datumon ĉifritan kiam la bildo de ŝlosilo (en la maldekstra fundo) ne estas rompita.

Algoritmo[redakti | redakti fonton]

Por klarigo de la baza logiko de RSA, legu la jenon:

  1. Elektu du primojn, p kaj q.
  2. n = p x q
  3. j = (p-1)(q-1)
  4. Elektu nombron e, kie e > 3 kaj e < n kaj e estas primo relative al j—t.e., ne ekzistas nombro kiu estas faktoro de e kaj j.
  5. d = (1 mod j) / e
  6. Nun, por ĉifri la mesaĝon, konvertu ĝin al nombro M kaj diru:
    C = Me mod n

    kie C estas la mesaĝo ĉifrita.

  7. Por malĉifri diru:
    M = Cd mod n

La publika ŝlosilo estas (d, n) kaj la kaŝa ŝlosilo estas (e, n). Kiun unu ŝlosilo ĉifras, tiun la alia povas malĉifri. La ĉifrado (#6) kaj malĉifrado (#7) estas relative rapida, sed la kreo de ŝlosiloj (#1-#5) estas malrapida. Aliflanke, La kreo de ŝlosiloj ne ofte okazas.

Ekzemplo: se p=5, q=11 kaj e=7, tiam n=55, j=40 kaj d=23. Tial mesaĝo de 2 estas ĉifrita kiel 18.

Por programi la algoritmon, vi unue bezonos programojn povas:

  • provi primon
  • generi hazardan nombron
  • multipliki, adicii, ktp, grandegajn nombrojn

Por rompi la ĉifron, vi devas kalkuli la kaŝan ŝlosilon el la publika:

e = (1 mod j) / d

Sed j estas (p-1)(q-1), kaj p kaj q estas la primaj faktoroj de n. Sed por n sufiĉe granda, la faktorigado estos praktike nekomputebla. Ekzemple, por faktorigi nombron de 664 bitoj, komputilo, programita laŭ nuna scio, bezonus almenaŭ 1023 da cikloj—t.e., gigaherca komputilo bezonus pli ol miliono da jaroj! Aliflanke, ĉar la rapideco de komputiloj duobliĝas ĉiu 18 monatoj (la Leĝo de Moore), la vulgara komputilo de la jaro 2020 povos faktorigi tiun nombron post kelkaj sekundoj!

Alivorte, RSA funkcias ĉar p x q ⇒ n estas facila, sed la inverso, n ⇒ p x q, estas tre malfacilega por grandega n.

Notu: Se iu eltrovas algoritmon kiu multe faciligas faktorigdon, la sekureco de RSA (kaj PGP) forfandos. Esperu ke la usona registaro ne sekrete eltrovos tian algoritmon.