logo

RSA šifrēšanas algoritms

RSA šifrēšanas algoritms ir publiskās atslēgas šifrēšanas algoritma veids. Lai labāk izprastu RSA, vispirms sapratīsim, kas ir publiskās atslēgas šifrēšanas algoritms.

Publiskās atslēgas šifrēšanas algoritms:

Publiskās atslēgas šifrēšanas algoritmu sauc arī par asimetrisko algoritmu. Asimetriski algoritmi ir tie algoritmi, kuros sūtītājs un saņēmējs izmanto dažādas atslēgas šifrēšanai un atšifrēšanai. Katram sūtītājam ir piešķirts atslēgu pāris:

    Publiskā atslēga Privātā atslēga

The Publiskā atslēga tiek izmantots šifrēšanai, un Privātā atslēga tiek izmantots atšifrēšanai. Atšifrēšanu nevar veikt, izmantojot publisko atslēgu. Abas atslēgas ir saistītas, bet privāto atslēgu nevar iegūt no publiskās atslēgas. Publiskā atslēga ir labi zināma, bet privātā atslēga ir slepena, un to zina tikai lietotājs, kuram pieder atslēga. Tas nozīmē, ka ikviens var nosūtīt ziņojumu lietotājam, izmantojot lietotāja publisko atslēgu. Bet tikai lietotājs var atšifrēt ziņojumu, izmantojot savu privāto atslēgu.

Publiskās atslēgas algoritms darbojas šādi:

RSA šifrēšanas algoritms
  • Nosūtāmos datus šifrē sūtītājs A izmantojot paredzētā uztvērēja publisko atslēgu
  • B atšifrē saņemto šifrēto tekstu, izmantojot savu privāto atslēgu, kas ir zināma tikai B. B atbild uz A, šifrējot savu ziņojumu, izmantojot A publisko atslēgu.
  • A atšifrē saņemto šifrēto tekstu, izmantojot savu privāto atslēgu, kas ir zināma tikai viņam.

RSA šifrēšanas algoritms:

RSA ir visizplatītākais publiskās atslēgas algoritms, kas nosaukts tā izgudrotāju vārdā Rivests, Šamirs un Adelmans (RSA).

RSA šifrēšanas algoritms

RSA algoritms izmanto šādu procedūru, lai ģenerētu publiskās un privātās atslēgas:

  • Izvēlieties divus lielus pirmskaitļus, p un q .
  • Reiziniet šos skaitļus, lai atrastu n = p x q, kur n sauc par šifrēšanas un atšifrēšanas moduli.
  • Izvēlieties numuru Tas ir mazāk nekā n , tā, ka n ir relatīvi galvenais (p - 1) x (q -1). Tas nozīmē, ka Tas ir un (p - 1) x (q - 1) nav kopēja faktora, izņemot 1. Izvēlieties “e”, lai 1 gcd (e,d(n)) =1
  • Ja n = p x q, tad publiskā atslēga ir . Vienkārša teksta ziņa m ir šifrēts, izmantojot publisko atslēgu. Lai atrastu šifrētu tekstu no vienkārša teksta, tiek izmantota šāda formula, lai iegūtu šifrētu tekstu C.
    C = mTas irpret n
    Šeit , m jābūt mazākam par n . Lielāks ziņojums (> n) tiek uzskatīts par ziņojumu savienojumu, no kuriem katrs tiek šifrēts atsevišķi.
  • Lai noteiktu privāto atslēgu, mēs izmantojam šādu formulu, lai aprēķinātu d tā, lai:
    DTas irmod {(p - 1) x (q - 1)} = 1
    Or
    DTas irmod φ (n) = 1
  • Privātā atslēga ir . Šifrēta teksta ziņa c tiek atšifrēts, izmantojot privāto atslēgu. Lai aprēķinātu vienkāršu tekstu m no šifrētā teksta c tiek izmantota šāda formula, lai iegūtu vienkāršu tekstu m.
    m = cdpret n

Ņemsim dažus RSA šifrēšanas algoritma piemērus:

1. piemērs:

Šis piemērs parāda, kā mēs varam šifrēt vienkāršu tekstu 9, izmantojot RSA publiskās atslēgas šifrēšanas algoritmu. Šajā piemērā tiek izmantoti pirmskaitļi 7 un 11, lai ģenerētu publiskās un privātās atslēgas.

Paskaidrojums:

1. darbība: Izvēlieties divus lielus pirmskaitļus, p un q .

p = 7

q = 11

2. darbība: Reiziniet šos skaitļus, lai atrastu n = p x q, kur n sauc par šifrēšanas un atšifrēšanas moduli.

Pirmkārt, mēs aprēķinām

n = p x q

n = 7 x 11

n = 77

3. darbība: Izvēlieties numuru Tas ir mazāk to n , tā, ka n ir relatīvi galvenais (p - 1) x (q -1). Tas nozīmē, ka Tas ir un (p - 1) x (q - 1) nav kopēja faktora, izņemot 1. Izvēlieties “e”, lai 1

Otrkārt, mēs aprēķinām

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

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

φ (n) = 6 x 10

φ (n) = 60

Tagad izvēlēsimies relatīvo pirmskaitļu e no 60 kā 7.

Tādējādi publiskā atslēga ir = (7, 77)

4. darbība: Vienkārša teksta ziņa m ir šifrēts, izmantojot publisko atslēgu. Lai atrastu šifrētu tekstu no vienkārša teksta, tiek izmantota šāda formula, lai iegūtu šifrētu tekstu C.

Lai atrastu šifrētu tekstu no vienkārša teksta, tiek izmantota šāda formula, lai iegūtu šifrētu tekstu C.

C = mTas irpret n

C = 97pret 77

C = 37

5. darbība: Privātā atslēga ir . Lai noteiktu privāto atslēgu, mēs izmantojam šādu formulu d, lai:

DTas irmod {(p - 1) x (q - 1)} = 1

7d mod 60 = 1, kas dod d = 43

Privātā atslēga ir = (43, 77)

6. darbība: Šifrēta teksta ziņa c tiek atšifrēts, izmantojot privāto atslēgu. Lai aprēķinātu vienkāršu tekstu m no šifrētā teksta c tiek izmantota šāda formula, lai iegūtu vienkāršu tekstu m.

m = cdpret n

m = 3743pret 77

m = 9

Šajā piemērā vienkāršais teksts = 9 un šifrētais teksts = 37

2. piemērs:

RSA kriptosistēmā konkrētais A izmanto divus pirmskaitļus, 13 un 17, lai ģenerētu publisko un privāto atslēgu. Ja A publiskā ir 35. Tad A privātā atslēga ir ……………?.

Paskaidrojums:

1. darbība: pirmajā solī atlasiet divus lielus pirmskaitļus, lpp un q .

p = 13

q = 17

2. darbība: Reiziniet šos skaitļus, lai atrastu n = p x q, kur n sauc par šifrēšanas un atšifrēšanas moduli.

Pirmkārt, mēs aprēķinām

n = p x q

javascript ielādes skripts

n = 13x17

n = 221

3. darbība: Izvēlieties numuru Tas ir mazāk to n , tā, ka n ir relatīvi galvenais (p - 1) x (q -1). Tas nozīmē, ka Tas ir un (p - 1) x (q - 1) nav kopēja faktora, izņemot 1. Izvēlieties “e”, lai 1

Otrkārt, mēs aprēķinām

φ (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. darbība: Lai noteiktu privāto atslēgu, mēs izmantojam šādu formulu, lai aprēķinātu d tā, lai:

Aprēķināt d = dTas irmod φ (n) = 1

d = d x 35 mod 192 = 1

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

Ielieciet k = 0

d = (1 + 0 x 192)/35

d = 1/35

Ielieciet k = 1

d = (1 + 1 x 192)/35

d = 193/35

Ielieciet k = 2

d = (1 + 2 x 192)/35

d = 385/35

d = 11

Privātā atslēga ir = (11, 221)

Tādējādi privātā atslēga, t.i., d = 11

3. piemērs:

RSA kriptosistēma izmanto divus pirmskaitļus 3 un 13, lai ģenerētu publisko atslēgu = 3 un privāto atslēgu = 7. Kāda ir šifrētā teksta vērtība vienkāršam tekstam?

Paskaidrojums:

1. darbība: Pirmajā darbībā atlasiet divus lielus pirmskaitļus, lpp un q .

p = 3

q = 13

2. darbība: Reiziniet šos skaitļus, lai atrastu n = p x q, kur n sauc par šifrēšanas un atšifrēšanas moduli.

Pirmkārt, mēs aprēķinām

n = p x q

n = 3 x 13

n = 39

3. darbība: Ja n = p x q, tad publiskā atslēga ir . Vienkārša teksta ziņa m ir šifrēts, izmantojot publisko atslēgu. Tādējādi publiskā atslēga ir = (3, 39).

Lai atrastu šifrētu tekstu no vienkārša teksta, tiek izmantota šāda formula, lai iegūtu šifrētu tekstu C.

C = mTas irpret n

C = 53uz 39

C = 125 pret 39

C = 8

Tādējādi šifrētais teksts, kas ģenerēts no vienkārša teksta, C = 8.

4. piemērs:

RSA kriptosistēma izmanto divus pirmskaitļus — 3 un 11, lai ģenerētu privāto atslēgu = 7. Kāda ir šifrētā teksta vērtība vienkāršam tekstam 5, izmantojot RSA publiskās atslēgas šifrēšanas algoritmu?

Paskaidrojums:

1. darbība: pirmajā solī atlasiet divus lielus pirmskaitļus, lpp un q .

p = 3

q = 11

2. darbība: Reiziniet šos skaitļus, lai atrastu n = p x q, kur n sauc par šifrēšanas un atšifrēšanas moduli.

Pirmkārt, mēs aprēķinām

n = p x q

n = 3 x 11

n = 33

3. darbība: Izvēlieties numuru Tas ir mazāk to n , tā, ka n ir relatīvi galvenais (p - 1) x (q -1). Tas nozīmē, ka Tas ir un (p - 1) x (q - 1) nav kopēja faktora, izņemot 1. Izvēlieties “e”, lai 1

Otrkārt, mēs aprēķinām

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

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

φ (n) = 2 x 10

φ (n) = 20

4. darbība: Lai noteiktu publisko atslēgu, mēs izmantojam šādu formulu, lai aprēķinātu d tā, lai:

Aprēķināt e x d = 1 mod φ (n)

e x 7 = 1 pret 20

e x 7 = 1 pret 20

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

Ielieciet k = 0

e = (1 + 0 x 20)/7

e = 1/7

Ielieciet k = 1

e = (1 + 1 x 20) / 7

e = 21/7

e = 3

Publiskā atslēga ir = (3, 33)

Tādējādi publiskā atslēga, t.i., e = 3