logo

RSA titkosítási algoritmus

Az RSA titkosítási algoritmus a nyilvános kulcsú titkosítási algoritmusok egyik típusa. Az RSA jobb megértése érdekében először megértsük, mi az a nyilvános kulcsú titkosítási algoritmus.

Nyilvános kulcsú titkosítási algoritmus:

A nyilvános kulcsú titkosítási algoritmust aszimmetrikus algoritmusnak is nevezik. Az aszimmetrikus algoritmusok azok az algoritmusok, amelyekben a küldő és a fogadó különböző kulcsokat használ a titkosításhoz és a visszafejtéshez. Minden feladóhoz hozzá van rendelve egy kulcspár:

    Nyilvános kulcs Privát kulcs

A Nyilvános kulcs titkosításra szolgál, és a Privát kulcs dekódolásra használják. A visszafejtés nyilvános kulccsal nem végezhető el. A két kulcs össze van kötve, de a privát kulcs nem származtatható a nyilvános kulcsból. A nyilvános kulcs jól ismert, de a privát kulcs titkos, és csak a kulcs tulajdonosa ismeri. Ez azt jelenti, hogy mindenki küldhet üzenetet a felhasználónak a felhasználó nyilvános kulcsával. De csak a felhasználó tudja visszafejteni az üzenetet a privát kulcsával.

hoppá fogalmak java-ban

A nyilvános kulcsú algoritmus a következő módon működik:

RSA titkosítási algoritmus
  • Az elküldendő adatokat a feladó titkosítja A a kívánt vevő nyilvános kulcsának használatával
  • B dekódolja a kapott titkosított szöveget a privát kulcsával, amelyet csak B ismer. B válaszol A-nak, és titkosítja üzenetét A nyilvános kulcsával.
  • A visszafejti a kapott rejtjelezett szöveget a privát kulcsával, amelyet csak ő ismer.

RSA titkosítási algoritmus:

Az RSA a leggyakoribb nyilvános kulcsú algoritmus, amelyet feltalálóiról neveztek el Rivest, Shamir és Adelman (RSA).

RSA titkosítási algoritmus

Az RSA algoritmus a következő eljárást használja a nyilvános és privát kulcsok létrehozásához:

  • Válasszon ki két nagy prímszámot, a p és a q .
  • Szorozd meg ezeket a számokat, hogy megtaláld n = p x q, ahol n titkosítási és visszafejtési modulusnak nevezzük.
  • Válasszon egy számot Ez kevesebb, mint n , így n viszonylag prímje (p-1) x (q-1). Ez azt jelenti Ez és (p - 1) x (q - 1) nincs közös tényező, kivéve az 1-et. Válassza ki az „e”-t úgy, hogy az 1 gcd (e,d(n)) =1
  • Ha n = p x q, akkor a nyilvános kulcs a . Egy egyszerű szöveges üzenet m nyilvános kulccsal titkosítva van. A titkosított szöveg egyszerű szövegből való kereséséhez a következő képletet használjuk a C titkosított szöveg lekéréséhez.
    C = mEzn ellen
    Itt , m kisebbnek kell lennie, mint n . Egy nagyobb üzenetet (>n) a rendszer üzenetek összefűzéseként kezel, amelyek mindegyike külön titkosítva van.
  • A privát kulcs meghatározásához a következő képletet használjuk a d kiszámításához, így:
    DEzmod {(p - 1) x (q - 1)} = 1
    Vagy
    DEzmod φ (n) = 1
  • A privát kulcs a . Rejtjelezett üzenet c titkos kulcs segítségével dekódolják. Egyszerű szöveg kiszámításához m a c rejtjelezett szövegből a következő képletet használjuk az m egyszerű szöveghez.
    m = cdn ellen

Vegyünk néhány példát az RSA titkosítási algoritmusra:

1. példa:

Ez a példa bemutatja, hogyan titkosíthatjuk a 9. egyszerű szöveget az RSA nyilvános kulcsú titkosítási algoritmussal. Ez a példa a 7-es és 11-es prímszámokat használja a nyilvános és privát kulcsok generálásához.

Magyarázat:

1. lépés: Válasszon ki két nagy prímszámot, a p és a q .

p = 7

q = 11

2. lépés: Szorozd meg ezeket a számokat, hogy megtaláld n = p x q, ahol n titkosítási és visszafejtési modulusnak nevezzük.

Először is számolunk

n = p x q

n = 7 x 11

n = 77

3. lépés: Válasszon egy számot Ez kevesebbet n , így n viszonylag prímje (p-1) x (q-1). Ez azt jelenti Ez és (p - 1) x (q - 1) nincs közös tényező, kivéve az 1-et. Válassza ki az „e”-t úgy, hogy az 1

Másodszor számolunk

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

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

φ (n) = 6 x 10

φ (n) = 60

Most válasszuk a 60 e relatív prímjét 7-nek.

Így a nyilvános kulcs = (7, 77)

4. lépés: Egy egyszerű szöveges üzenet m nyilvános kulccsal titkosítva van. A titkosított szöveg egyszerű szövegből való kereséséhez a következő képletet használjuk a C titkosított szöveg lekéréséhez.

A titkosított szöveg egyszerű szövegből való kereséséhez a következő képletet használjuk a C titkosított szöveg lekéréséhez.

C = mEzn ellen

C = 9777 ellen

C=37

5. lépés: A privát kulcs a . A privát kulcs meghatározásához a következő d képletet használjuk, így:

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

7d mod 60 = 1, ami d = 43-at ad

A privát kulcs = (43, 77)

6. lépés: Rejtjelezett üzenet c titkos kulcs segítségével dekódolják. Egyszerű szöveg kiszámításához m a c rejtjelezett szövegből a következő képletet használjuk az m egyszerű szöveghez.

m = cdn ellen

m = 374377 ellen

m = 9

Ebben a példában az egyszerű szöveg = 9 és a titkosított szöveg = 37

2. példa:

Az RSA kriptorendszerben egy adott A két prímszámot, a 13-at és a 17-et használ a nyilvános és a privát kulcsok generálására. Ha A nyilvános értéke 35. Akkor A privát kulcsa ……………?.

Magyarázat:

1. lépés: első lépésben válasszon ki két nagy prímszámot, p és q .

p = 13

q = 17

2. lépés: Szorozd meg ezeket a számokat, hogy megtaláld n = p x q, ahol n titkosítási és visszafejtési modulusnak nevezzük.

Először is számolunk

n = p x q

n = 13 x 17

n = 221

3. lépés: Válasszon egy számot Ez kevesebbet n , így n viszonylag prímje (p-1) x (q-1). Ez azt jelenti Ez és (p - 1) x (q - 1) nincs közös tényező, kivéve az 1-et. Válassza ki az „e”-t úgy, hogy az 1

Másodszor számolunk

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

mekkora ez a monitor

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

φ (n) = 12 x 16

φ (n) = 192

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

3. lépés: A privát kulcs meghatározásához a következő képletet használjuk a d kiszámításához, így:

Számítsd ki d = dEzmod φ (n) = 1

d = d x 35 mod 192 = 1

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

Tegye k = 0-t

d = (1 + 0 x 192)/35

d = 1/35

Tegye k = 1-et

d = (1 + 1 x 192)/35

d = 193/35

Tegye k = 2-t

do while ciklus java

d = (1 + 2 x 192)/35

d = 385/35

d = 11

A privát kulcs = (11, 221)

Ezért a privát kulcs, azaz d = 11

3. példa:

Az RSA kriptorendszer két prímszámot (3 és 13) használ a nyilvános kulcs = 3 és a privát kulcs = 7 generálásához. Mi a titkosított szöveg értéke egyszerű szöveg esetén?

Magyarázat:

1. lépés: Első lépésben válasszon ki két nagy prímszámot, p és q .

p = 3

q = 13

2. lépés: Szorozd meg ezeket a számokat, hogy megtaláld n = p x q, ahol n titkosítási és visszafejtési modulusnak nevezzük.

Először is számolunk

n = p x q

n = 3 x 13

n = 39

3. lépés: Ha n = p x q, akkor a nyilvános kulcs a . Egy egyszerű szöveges üzenet m nyilvános kulccsal titkosítva van. Így a nyilvános kulcs = (3, 39).

A titkosított szöveg egyszerű szövegből való kereséséhez a következő képletet használjuk a C titkosított szöveg lekéréséhez.

C = mEzn ellen

C = 5339 felé

C = 125 vs. 39

C = 8

Ezért az egyszerű szövegből generált rejtjelezett szöveg, C = 8.

4. példa:

Egy RSA titkosítási rendszer két prímszámot, 3-at és 11-et használ a privát kulcs = 7 generálásához. Mi a titkosított szöveg értéke egy egyszerű szövegnél 5 az RSA nyilvános kulcsú titkosítási algoritmus használatával?

Magyarázat:

1. lépés: első lépésben válasszon ki két nagy prímszámot, p és q .

p = 3

q = 11

2. lépés: Szorozd meg ezeket a számokat, hogy megtaláld n = p x q, ahol n titkosítási és visszafejtési modulusnak nevezzük.

Először is számolunk

n = p x q

n = 3 x 11

n = 33

3. lépés: Válasszon egy számot Ez kevesebbet n , így n viszonylag prímje (p-1) x (q-1). Ez azt jelenti Ez és (p - 1) x (q - 1) nincs közös tényező, kivéve az 1-et. Válassza ki az „e”-t úgy, hogy az 1

Másodszor számolunk

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

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

φ (n) = 2 x 10

φ (n) = 20

4. lépés: A nyilvános kulcs meghatározásához a következő képletet használjuk a d kiszámításához úgy, hogy:

Számítsa ki e x d = 1 mod φ (n)

rendfa bejárás

e x 7 = 1 a 20 ellenében

e x 7 = 1 a 20 ellenében

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

Tegye k = 0-t

e = (1 + 0 x 20) / 7

e = 1/7

Tegye k = 1-et

e = (1 + 1 x 20) / 7

e = 21/7

e = 3

A nyilvános kulcs = (3, 33)

Ezért a nyilvános kulcs, azaz e = 3