logo

Algoritem šifriranja RSA

Šifrirni algoritem RSA je vrsta šifrirnega algoritma z javnim ključem. Da bi bolje razumeli RSA, najprej razumemo, kaj je algoritem šifriranja z javnim ključem.

Algoritem šifriranja javnega ključa:

Algoritem šifriranja javnega ključa se imenuje tudi asimetrični algoritem. Asimetrični algoritmi so tisti algoritmi, pri katerih pošiljatelj in prejemnik uporabljata različne ključe za šifriranje in dešifriranje. Vsakemu pošiljatelju je dodeljen par ključev:

    Javni ključ Zasebni ključ

The Javni ključ se uporablja za šifriranje in Zasebni ključ se uporablja za dešifriranje. Dešifriranja ni mogoče izvesti z javnim ključem. Oba ključa sta povezana, vendar zasebnega ključa ni mogoče izpeljati iz javnega ključa. Javni ključ je dobro poznan, zasebni ključ pa je tajen in ga pozna le uporabnik, ki je lastnik ključa. To pomeni, da lahko vsak pošlje uporabniku sporočilo z uporabo uporabnikovega javnega ključa. Toda le uporabnik lahko dešifrira sporočilo s svojim zasebnim ključem.

Algoritem javnega ključa deluje na naslednji način:

Algoritem šifriranja RSA
  • Podatke za pošiljanje šifrira pošiljatelj A uporabo javnega ključa predvidenega prejemnika
  • B dešifrira prejeto šifrirano besedilo s svojim zasebnim ključem, ki ga pozna samo B. B odgovori A-ju s šifriranjem njegovega sporočila z A-jevim javnim ključem.
  • A dešifrira prejeto šifrirano besedilo s svojim zasebnim ključem, ki je znan samo njemu.

RSA šifrirni algoritem:

RSA je najpogostejši algoritem javnega ključa, poimenovan po svojih izumiteljih Rivest, Shamir in Adelman (RSA).

Algoritem šifriranja RSA

RSA algoritem uporablja naslednji postopek za ustvarjanje javnih in zasebnih ključev:

  • Izberite dve veliki praštevili, p in q .
  • Pomnožite te številke, da jih najdete n = p x q, kje n se imenuje modul za šifriranje in dešifriranje.
  • Izberite številko je manj kot n , tako da je n relativno praštevilsko (p - 1) x (q -1). To pomeni, da je in (p - 1) x (q - 1) nimajo skupnega faktorja razen 1. Izberite 'e' tako, da je 1 gcd (e,d(n)) =1
  • če n = p x q, potem je javni ključ . Sporočilo v navadnem besedilu m je šifriran z javnim ključem. Če želite poiskati šifrirano besedilo iz navadnega besedila, uporabite naslednjo formulo za pridobitev šifriranega besedila C.
    C = mjeproti n
    Tukaj , m mora biti manj kot n . Večje sporočilo (>n) se obravnava kot veriženje sporočil, od katerih je vsako ločeno šifrirano.
  • Za določitev zasebnega ključa uporabimo naslednjo formulo za izračun d tako, da:
    Djemod {(p - 1) x (q - 1)} = 1
    oz
    Djemod φ (n) = 1
  • Zasebni ključ je . Sporočilo s šifriranim besedilom c se dešifrira z zasebnim ključem. Za izračun navadnega besedila m iz šifriranega besedila c se uporabi naslednja formula za pridobivanje navadnega besedila m.
    m = cdproti n

Vzemimo nekaj primerov šifrirnega algoritma RSA:

Primer 1:

Ta primer prikazuje, kako lahko šifriramo navadno besedilo 9 z algoritmom šifriranja javnega ključa RSA. Ta primer uporablja praštevili 7 in 11 za ustvarjanje javnih in zasebnih ključev.

Pojasnilo:

Korak 1: Izberite dve veliki praštevili, p in q .

p = 7

q = 11

2. korak: Pomnožite te številke, da jih najdete n = p x q, kje n se imenuje modul za šifriranje in dešifriranje.

Najprej izračunamo

n = p x q

n = 7 x 11

n = 77

3. korak: Izberite številko je manj to n , tako da je n relativno praštevilsko (p - 1) x (q -1). To pomeni, da je in (p - 1) x (q - 1) nimajo skupnega faktorja razen 1. Izberite 'e' tako, da je 1

Drugič, izračunamo

φ (n) = (p - 1) x (q-1)

φ (n) = (7 - 1) x (11 - 1)

φ (n) = 6 x 10

φ (n) = 60

Zdaj izberimo relativno praštevilo e od 60 kot 7.

Tako je javni ključ = (7, 77)

4. korak: Sporočilo v navadnem besedilu m je šifriran z javnim ključem. Če želite poiskati šifrirano besedilo iz navadnega besedila, uporabite naslednjo formulo za pridobitev šifriranega besedila C.

Če želite poiskati šifrirano besedilo iz navadnega besedila, uporabite naslednjo formulo za pridobitev šifriranega besedila C.

C = mjeproti n

C = 97proti 77

C = 37

5. korak: Zasebni ključ je . Za določitev zasebnega ključa uporabimo naslednjo formulo d, tako da:

Djemod {(p - 1) x (q - 1)} = 1

7d mod 60 = 1, kar daje d = 43

Zasebni ključ je = (43, 77)

6. korak: Sporočilo s šifriranim besedilom c se dešifrira z zasebnim ključem. Za izračun navadnega besedila m iz šifriranega besedila c se uporabi naslednja formula za pridobivanje navadnega besedila m.

m = cdproti n

m = 3743proti 77

m = 9

V tem primeru je navadno besedilo = 9 in šifrirano besedilo = 37

Primer 2:

V kriptosistemu RSA določen A uporablja dve praštevili, 13 in 17, za ustvarjanje javnega in zasebnega ključa. Če je javnost A 35. Potem je zasebni ključ A ……………?.

Pojasnilo:

Korak 1: v prvem koraku izberite dve veliki praštevili, str in q .

v java regex

p = 13

q = 17

2. korak: Pomnožite te številke, da jih najdete n = p x q, kje n se imenuje modul za šifriranje in dešifriranje.

Najprej izračunamo

n = p x q

n = 13 x 17

n = 221

3. korak: Izberite številko je manj to n , tako da je n relativno praštevilsko (p - 1) x (q -1). To pomeni, da je in (p - 1) x (q - 1) nimajo skupnega faktorja razen 1. Izberite 'e' tako, da je 1

Drugič, izračunamo

φ (n) = (p - 1) x (q-1)

φ (n) = (13 - 1) x (17 - 1)

φ (n) = 12 x 16

φ (n) = 192

g.c.d (35, 192) = 1

3. korak: Za določitev zasebnega ključa uporabimo naslednjo formulo za izračun d tako, da:

Izračunajte d = djemod φ (n) = 1

d = d x 35 mod 192 = 1

d = (1 + k.φ (n))/e [naj bo k =0, 1, 2, 3………………]

Postavite k = 0

d = (1 + 0 x 192)/35

d = 1/35

Postavite k = 1

d = (1 + 1 x 192)/35

d = 193/35

Postavite k = 2

d = (1 + 2 x 192)/35

d = 385/35

d = 11

Zasebni ključ je = (11, 221)

Zato je zasebni ključ, tj. d = 11

Primer 3:

Kriptosistem RSA uporablja dve praštevili 3 in 13 za ustvarjanje javnega ključa = 3 in zasebnega ključa = 7. Kakšna je vrednost šifriranega besedila za golo besedilo?

Pojasnilo:

Korak 1: V prvem koraku izberite dve veliki praštevili, str in q .

p = 3

q = 13

2. korak: Pomnožite te številke, da jih najdete n = p x q, kje n se imenuje modul za šifriranje in dešifriranje.

Najprej izračunamo

n = p x q

n = 3 x 13

n = 39

3. korak: če n = p x q, potem je javni ključ . Sporočilo v navadnem besedilu m je šifriran z javnim ključem. Tako je javni ključ = (3, 39).

Če želite poiskati šifrirano besedilo iz navadnega besedila, uporabite naslednjo formulo za pridobitev šifriranega besedila C.

C = mjeproti n

C = 53proti 39

C = 125 proti 39

C = 8

Zato je šifrirano besedilo, ustvarjeno iz navadnega besedila, C = 8.

Primer 4:

Kriptosistem RSA uporablja dve praštevili, 3 in 11, za ustvarjanje zasebnega ključa = 7. Kakšna je vrednost šifriranega besedila za golo besedilo 5 z uporabo algoritma za šifriranje javnega ključa RSA?

Pojasnilo:

Korak 1: v prvem koraku izberite dve veliki praštevili, str in q .

p = 3

q = 11

2. korak: Pomnožite te številke, da jih najdete n = p x q, kje n se imenuje modul za šifriranje in dešifriranje.

Najprej izračunamo

n = p x q

n = 3 x 11

n = 33

3. korak: Izberite številko je manj to n , tako da je n relativno praštevilsko (p - 1) x (q -1). To pomeni, da je in (p - 1) x (q - 1) nimajo skupnega faktorja razen 1. Izberite 'e' tako, da je 1

Drugič, izračunamo

φ (n) = (p - 1) x (q-1)

φ (n) = (3 - 1) x (11 - 1)

φ (n) = 2 x 10

φ (n) = 20

4. korak: Za določitev javnega ključa uporabimo naslednjo formulo za izračun d tako, da:

Izračunajte e x d = 1 mod φ (n)

e x 7 = 1 proti 20

e x 7 = 1 proti 20

e = (1 + k. φ (n))/ d [naj bo k =0, 1, 2, 3………………]

Postavite k = 0

e = (1 + 0 x 20) / 7

e = 1/7

Postavite k = 1

e = (1 + 1 x 20) / 7

e = 21/7

e = 3

Javni ključ je = (3, 33)

Torej je javni ključ, tj. e = 3