logo

RSA-krypteringsalgoritme

RSA-krypteringsalgoritme er en type offentlig-nøgle-krypteringsalgoritme. For bedre at forstå RSA, lad os først forstå, hvad der er offentlig nøglekrypteringsalgoritme.

Offentlig nøgle krypteringsalgoritme:

Offentlig nøglekrypteringsalgoritme kaldes også den asymmetriske algoritme. Asymmetriske algoritmer er de algoritmer, hvor afsender og modtager bruger forskellige nøgler til kryptering og dekryptering. Hver afsender er tildelt et par nøgler:

    Offentlig nøgle Privat nøgle

Det Offentlig nøgle bruges til kryptering, og Privat nøgle bruges til dekryptering. Dekryptering kan ikke udføres ved hjælp af en offentlig nøgle. De to nøgler er forbundet, men den private nøgle kan ikke udledes fra den offentlige nøgle. Den offentlige nøgle er velkendt, men den private nøgle er hemmelig, og den er kun kendt af brugeren, der ejer nøglen. Det betyder, at alle kan sende en besked til brugeren ved hjælp af brugerens offentlige nøgle. Men kun brugeren kan dekryptere beskeden ved hjælp af sin private nøgle.

Den offentlige nøglealgoritme fungerer på følgende måde:

RSA-krypteringsalgoritme
  • De data, der skal sendes, er krypteret af afsender EN ved at bruge den tilsigtede modtagers offentlige nøgle
  • B dekrypterer den modtagne chiffertekst ved hjælp af dens private nøgle, som kun er kendt af B. B svarer til A, der krypterer sin besked ved hjælp af A's offentlige nøgle.
  • A dekrypterer den modtagne chiffertekst ved hjælp af dens private nøgle, som kun er kendt af ham.

RSA krypteringsalgoritme:

RSA er den mest almindelige public-key algoritme, opkaldt efter dens opfindere Rivest, Shamir og Adelman (RSA).

RSA-krypteringsalgoritme

RSA-algoritmen bruger følgende procedure til at generere offentlige og private nøgler:

  • Vælg to store primtal, p og q .
  • Gang disse tal for at finde n = p x q, hvor n kaldes modulet for kryptering og dekryptering.
  • Vælg et tal det er Mindre end n , sådan at n er relativt prime til (p-1) x (q-1). Det betyder at det er og (p - 1) x (q - 1) har ingen fælles faktor undtagen 1. Vælg 'e' således, at 1 gcd (e,d(n)) =1
  • Hvis n = p x q, så er den offentlige nøgle . En besked i klartekst m er krypteret med offentlig nøgle. For at finde chiffertekst fra almindelig tekst bruges følgende formel til at få chiffertekst C.
    C = mdet ermod n
    Her , m skal være mindre end n . En større meddelelse (>n) behandles som en sammenkædning af meddelelser, som hver er krypteret separat.
  • For at bestemme den private nøgle bruger vi følgende formel til at beregne d, således at:
    Ddet ermod {(p - 1) x (q - 1)} = 1
    Eller
    Ddet ermod φ (n) = 1
  • Den private nøgle er . En krypteret tekstbesked c er dekrypteret ved hjælp af privat nøgle. For at beregne almindelig tekst m fra chifferteksten c bruges følgende formel til at få almindelig tekst m.
    m = cdmod n

Lad os tage nogle eksempler på RSA-krypteringsalgoritme:

Eksempel 1:

Dette eksempel viser, hvordan vi kan kryptere almindelig tekst 9 ved hjælp af RSA public-key krypteringsalgoritmen. Dette eksempel bruger primtal 7 og 11 til at generere de offentlige og private nøgler.

Forklaring:

Trin 1: Vælg to store primtal, p og q .

p = 7

q = 11

matematik pow java

Trin 2: Gang disse tal for at finde n = p x q, hvor n kaldes modulet for kryptering og dekryptering.

Først beregner vi

n = p x q

n = 7 x 11

n = 77

Trin 3: Vælg et tal det er mindre det n , sådan at n er relativt prime til (p-1) x (q-1). Det betyder at det er og (p - 1) x (q - 1) har ingen fælles faktor undtagen 1. Vælg 'e' således, at 1

For det andet beregner vi

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

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

φ (n) = 6 x 10

φ (n) = 60

Lad os nu vælge relativ primtal e af 60 som 7.

Den offentlige nøgle er altså = (7, 77)

Trin 4: En besked i klartekst m er krypteret med offentlig nøgle. For at finde chiffertekst fra almindelig tekst bruges følgende formel til at få chiffertekst C.

For at finde chiffertekst fra almindelig tekst bruges følgende formel til at få chiffertekst C.

C = mdet ermod n

C = 97mod 77

C = 37

Trin 5: Den private nøgle er . For at bestemme den private nøgle bruger vi følgende formel d, således at:

Ddet ermod {(p - 1) x (q - 1)} = 1

7d mod 60 = 1, hvilket giver d = 43

Den private nøgle er = (43, 77)

Trin 6: En krypteret tekstbesked c er dekrypteret ved hjælp af privat nøgle. For at beregne almindelig tekst m fra chifferteksten c bruges følgende formel til at få almindelig tekst m.

m = cdmod n

m = 3743mod 77

m = 9

I dette eksempel er almindelig tekst = 9 og chifferteksten = 37

Eksempel 2:

I et RSA-kryptosystem bruger et bestemt A to primtal, 13 og 17, til at generere de offentlige og private nøgler. Hvis offentligheden af ​​A er 35. Så er A's private nøgle ……………?.

Forklaring:

Trin 1: i det første trin skal du vælge to store primtal, s og q .

p = 13

q = 17

Trin 2: Gang disse tal for at finde n = p x q, hvor n kaldes modulet for kryptering og dekryptering.

Først beregner vi

n = p x q

n = 13 x 17

n = 221

Trin 3: Vælg et tal det er mindre det n , sådan at n er relativt prime til (p-1) x (q-1). Det betyder at det er og (p - 1) x (q - 1) har ingen fælles faktor undtagen 1. Vælg 'e' således, at 1

For det andet beregner vi

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

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

φ (n) = 12 x 16

φ (n) = 192

strsep c

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

Trin 3: For at bestemme den private nøgle bruger vi følgende formel til at beregne d, således at:

Beregn d = ddet ermod φ (n) = 1

d = d x 35 mod 192 = 1

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

Sæt k = 0

d = (1 + 0 x 192)/35

d = 1/35

Sæt k = 1

d = (1 + 1 x 192)/35

d = 193/35

Sæt k = 2

d = (1 + 2 x 192)/35

d = 385/35

d = 11

Den private nøgle er = (11, 221)

Derfor er privat nøgle, dvs. d = 11

Eksempel 3:

Et RSA-kryptosystem bruger to primtal 3 og 13 til at generere den offentlige nøgle= 3 og den private nøgle = 7. Hvad er værdien af ​​chiffertekst for en almindelig tekst?

Forklaring:

Trin 1: I det første trin skal du vælge to store primtal, s og q .

p = 3

q = 13

Trin 2: Gang disse tal for at finde n = p x q, hvor n kaldes modulet for kryptering og dekryptering.

Først beregner vi

n = p x q

n = 3 x 13

n = 39

Trin 3: Hvis n = p x q, så er den offentlige nøgle . En besked i klartekst m er krypteret med offentlig nøgle. Den offentlige nøgle er altså = (3, 39).

For at finde chiffertekst fra almindelig tekst bruges følgende formel til at få chiffertekst C.

C = mdet ermod n

C = 53mod 39

C = 125 mod 39

C = 8

Derfor er chifferteksten genereret fra almindelig tekst, C = 8.

Eksempel 4:

Et RSA-kryptosystem bruger to primtal, 3 og 11, til at generere privat nøgle = 7. Hvad er værdien af ​​krypteringstekst for en almindelig tekst 5, der bruger RSA public-key krypteringsalgoritmen?

Forklaring:

Trin 1: i det første trin skal du vælge to store primtal, s og q .

p = 3

q = 11

Trin 2: Gang disse tal for at finde n = p x q, hvor n kaldes modulet for kryptering og dekryptering.

Først beregner vi

n = p x q

n = 3 x 11

n = 33

Trin 3: Vælg et tal det er mindre det n , sådan at n er relativt prime til (p-1) x (q-1). Det betyder at det er og (p - 1) x (q - 1) har ingen fælles faktor undtagen 1. Vælg 'e' således, at 1

For det andet beregner vi

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

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

φ (n) = 2 x 10

φ (n) = 20

Trin 4: For at bestemme den offentlige nøgle bruger vi følgende formel til at beregne d, således at:

Beregn e x d = 1 mod φ (n)

e x 7 = 1 mod 20

e x 7 = 1 mod 20

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

Sæt k = 0

e = (1 + 0 x 20) / 7

e = 1/7

Sæt k = 1

e = (1 + 1 x 20) / 7

e = 21/7

e = 3

Den offentlige nøgle er = (3, 33)

Derfor er offentlig nøgle, dvs. e = 3


string.format java