logo

RSA-coderingsalgoritme

RSA-coderingsalgoritme is een type coderingsalgoritme met openbare sleutels. Om RSA beter te begrijpen, moeten we eerst begrijpen wat het coderingsalgoritme met openbare sleutels is.

Versleutelingsalgoritme met openbare sleutel:

Het versleutelingsalgoritme voor openbare sleutels wordt ook wel het asymmetrische algoritme genoemd. Asymmetrische algoritmen zijn die algoritmen waarbij zender en ontvanger verschillende sleutels gebruiken voor codering en decodering. Elke afzender krijgt een paar sleutels toegewezen:

    Publieke sleutel Prive sleutel

De Publieke sleutel wordt gebruikt voor encryptie, en de Prive sleutel wordt gebruikt voor decodering. Decodering kan niet worden uitgevoerd met behulp van een openbare sleutel. De twee sleutels zijn gekoppeld, maar de private sleutel kan niet worden afgeleid van de publieke sleutel. De publieke sleutel is algemeen bekend, maar de private sleutel is geheim en is alleen bekend bij de gebruiker die eigenaar is van de sleutel. Het betekent dat iedereen een bericht naar de gebruiker kan sturen met behulp van de openbare sleutel van de gebruiker. Maar alleen de gebruiker kan het bericht ontsleutelen met zijn privésleutel.

Het algoritme voor de openbare sleutel werkt op de volgende manier:

RSA-coderingsalgoritme
  • De te verzenden gegevens worden per afzender gecodeerd A met behulp van de publieke sleutel van de beoogde ontvanger
  • B decodeert de ontvangen cijfertekst met behulp van zijn privésleutel, die alleen bekend is bij B. B antwoordt op A door zijn bericht te coderen met behulp van de openbare sleutel van A.
  • A decodeert de ontvangen cijfertekst met behulp van zijn privésleutel, die alleen hem bekend is.

RSA-coderingsalgoritme:

RSA is het meest voorkomende algoritme met een publieke sleutel, genoemd naar de uitvinders ervan Rivest, Shamir en Adelman (RSA).

RSA-coderingsalgoritme

Het RSA-algoritme gebruikt de volgende procedure om openbare en privésleutels te genereren:

  • Selecteer twee grote priemgetallen, p en Q .
  • Vermenigvuldig deze getallen om te vinden n = pxq, waar N wordt de modulus voor encryptie en decryptie genoemd.
  • Kies een nummer Het is minder dan N , zodat n relatief priem is (p - 1) x (q -1). Het betekent dat Het is En (p - 1) x (q - 1) hebben geen gemeenschappelijke deler behalve 1. Kies 'e' zo dat 1 ggd (e,d(n)) =1
  • Als n = pxq, dan is de publieke sleutel . Een bericht in platte tekst M wordt versleuteld met een publieke sleutel. Om cijfertekst uit de platte tekst te vinden, wordt de volgende formule gebruikt om cijfertekst C te krijgen.
    C = mHet istegen n
    Hier , M moet kleiner zijn dan N . Een groter bericht (>n) wordt behandeld als een aaneenschakeling van berichten, die elk afzonderlijk worden gecodeerd.
  • Om de privésleutel te bepalen, gebruiken we de volgende formule om de d zo te berekenen dat:
    DHet ismod. {(p - 1) x (q - 1)} = 1
    Of
    DHet ismod φ (n) = 1
  • De privésleutel is . Een cijfertekstbericht C wordt gedecodeerd met behulp van een privésleutel. Om platte tekst te berekenen M uit de cijfertekst c wordt de volgende formule gebruikt om platte tekst m te verkrijgen.
    m = cDtegen n

Laten we een voorbeeld nemen van het RSA-coderingsalgoritme:

Voorbeeld 1:

Dit voorbeeld laat zien hoe we leesbare tekst 9 kunnen versleutelen met behulp van het RSA-versleutelingsalgoritme met openbare sleutel. In dit voorbeeld worden de priemgetallen 7 en 11 gebruikt om de publieke en private sleutels te genereren.

Uitleg:

Stap 1: Selecteer twee grote priemgetallen, p, en Q .

p=7

q = 11

Stap 2: Vermenigvuldig deze getallen om te vinden n = pxq, waar N wordt de modulus voor encryptie en decryptie genoemd.

Eerst berekenen wij

n = p x q

n = 7 x 11

n = 77

Stap 3: Kies een nummer Het is minder van dat N , zodat n relatief priem is (p - 1) x (q -1). Het betekent dat Het is En (p - 1) x (q - 1) hebben geen gemeenschappelijke deler behalve 1. Kies 'e' zo dat 1

Ten tweede berekenen we

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

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

nbsp

φ(n) = 6 x 10

φ(n) = 60

Laten we nu het relatieve priemgetal e van 60 als 7 kiezen.

De publieke sleutel is dus = (7, 77)

Stap 4: Een bericht in platte tekst M wordt versleuteld met een publieke sleutel. Om cijfertekst uit de platte tekst te vinden, wordt de volgende formule gebruikt om cijfertekst C te krijgen.

Om cijfertekst uit de platte tekst te vinden, wordt de volgende formule gebruikt om cijfertekst C te krijgen.

C = mHet istegen n

C = 97tegen 77

C = 37

Stap 5: De privésleutel is . Om de privésleutel te bepalen, gebruiken we de volgende formule d zodat:

DHet ismod. {(p - 1) x (q - 1)} = 1

7d mod 60 = 1, wat d = 43 oplevert

De privésleutel is = (43, 77)

Stap 6: Een cijfertekstbericht C wordt gedecodeerd met behulp van een privésleutel. Om platte tekst te berekenen M uit de cijfertekst c wordt de volgende formule gebruikt om platte tekst m te verkrijgen.

m = cDtegen n

m = 3743tegen 77

m = 9

In dit voorbeeld is platte tekst = 9 en de cijfertekst = 37

Voorbeeld 2:

In een RSA-cryptosysteem gebruikt een bepaalde A twee priemgetallen, 13 en 17, om de publieke en private sleutels te genereren. Als de publieke sleutel van A 35 is. Dan is de private sleutel van A ……………?.

Uitleg:

Stap 1: selecteer in de eerste stap twee grote priemgetallen, P En Q .

p = 13

q = 17

Stap 2: Vermenigvuldig deze getallen om te vinden n = pxq, waar N wordt de modulus voor encryptie en decryptie genoemd.

Eerst berekenen wij

n = p x q

wat maakt een pc snel

n = 13 x 17

n = 221

Stap 3: Kies een nummer Het is minder van dat N , zodat n relatief priem is (p - 1) x (q -1). Het betekent dat Het is En (p - 1) x (q - 1) hebben geen gemeenschappelijke deler behalve 1. Kies 'e' zo dat 1

Ten tweede berekenen we

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

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

φ(n) = 12 x 16

φ(n) = 192

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

Stap 3: Om de privésleutel te bepalen, gebruiken we de volgende formule om de d zo te berekenen dat:

Bereken d = dHet ismod φ (n) = 1

d = d x 35 mod 192 = 1

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

Zet k = 0

d = (1 + 0 x 192)/35

d = 1/35

Stel k = 1

d = (1 + 1 x 192)/35

d = 193/35

Stel k = 2

d = (1 + 2 x 192)/35

d = 385/35

d=11

De privésleutel is = (11, 221)

Daarom is de privésleutel d.w.z. d = 11

Java sorteert een arraylist

Voorbeeld 3:

Een RSA-cryptosysteem gebruikt twee priemgetallen 3 en 13 om de publieke sleutel = 3 en de private sleutel = 7 te genereren. Wat is de waarde van gecodeerde tekst voor platte tekst?

Uitleg:

Stap 1: Selecteer in de eerste stap twee grote priemgetallen, P En Q .

p=3

q = 13

Stap 2: Vermenigvuldig deze getallen om te vinden n = pxq, waar N wordt de modulus voor encryptie en decryptie genoemd.

Eerst berekenen wij

n = p x q

n = 3 x 13

n = 39

Java-naamgevingsconventies

Stap 3: Als n = pxq, dan is de publieke sleutel . Een bericht in platte tekst M wordt versleuteld met een publieke sleutel. De publieke sleutel is dus = (3, 39).

Om cijfertekst uit de platte tekst te vinden, wordt de volgende formule gebruikt om cijfertekst C te krijgen.

C = mHet istegen n

C = 53richting 39

C = 125 versus 39

C = 8

Daarom is de cijfertekst gegenereerd uit platte tekst, C = 8.

Voorbeeld 4:

Een RSA-cryptosysteem gebruikt twee priemgetallen, 3 en 11, om een ​​privésleutel = 7 te genereren. Wat is de waarde van de cijfertekst voor een platte tekst 5 met behulp van het RSA-coderingsalgoritme voor openbare sleutels?

Uitleg:

Stap 1: selecteer in de eerste stap twee grote priemgetallen, P En Q .

p=3

q = 11

Stap 2: Vermenigvuldig deze getallen om te vinden n = pxq, waar N wordt de modulus voor encryptie en decryptie genoemd.

Eerst berekenen wij

n = p x q

n = 3 x 11

n = 33

Stap 3: Kies een nummer Het is minder van dat N , zodat n relatief priem is (p - 1) x (q -1). Het betekent dat Het is En (p - 1) x (q - 1) hebben geen gemeenschappelijke deler behalve 1. Kies 'e' zo dat 1

Ten tweede berekenen we

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

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

parafraseer indien door Rudyard Kipling

φ (n) = 2 x 10

φ(n) = 20

Stap 4: Om de publieke sleutel te bepalen, gebruiken we de volgende formule om de d zo te berekenen dat:

Bereken e x d = 1 mod φ (n)

e x 7 = 1 tegen 20

e x 7 = 1 tegen 20

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

Zet k = 0

e = (1 + 0 x 20) / 7

e = 1/7

Stel k = 1

e = (1 + 1 x 20) / 7

e = 21/7

e = 3

De publieke sleutel is = (3, 33)

Daarom is de publieke sleutel d.w.z. e = 3