Orosz dokumentumok titkosítási algoritmus nyilvános kulcsú RSA

Adat titkosító algoritmus
az RSA nyilvános kulcs

Data Encryption algoritmus nyilvános kulcs a leginkább ígéretes pillanatában (RSA - Rivest, Shamir és Aldeman - feltalálói).

Prime - osztható csak az 1. és önmagában;

Kölcsönösen prostym- nincs közös osztója 1-től eltérő;

Az eredmény i művelet mod j - fennmaradó osztás az i-től j.

Ahhoz, hogy használni az RSA algoritmus, először létre kell hoznia egy nyilvános és titkos kulcsokat az alábbi lépéseket:

1) Válassza ki a két nagyon nagy prímszám p és q.

2) Határozza meg n, megszorozzuk p Q (n = p * q).

3) Válassza nagy véletlen szám, amely az úgynevezett d. Ez a szám azt elsődleges, hogy az eredmény a szorzás (p-1) * (q-1).

4) meghatároz egy e szám, amelyre a következő összefüggés igaz (e * d) mod ((p-1) * (q-1)) = 1.

5) Hazovem nyilvános kulcs számokat E és n, és egy titkos kulcsot - chmsla d és n.

Most, hogy titkosítja az adatokat az ismert kulcs, tegye a következőket:

- szünet kódolt szöveg blokkokra, amelyek mindegyike lehet formájában M (i) = 0,1,2. N-1 (azaz, csak a legfeljebb n-1).

- titkosítja a szöveg tekinthető egy számsor M (i) általános képletű C (i) = (M (I) ^ e) mod n.

Ahhoz, hogy dekódolni az adatokat a titkos kulcs végre kell hajtania a következő számításokat: M (i) = (C (i) ^ d) mod n. Az eredmény akkor kapnánk, ha több szám M (i), amely képviseli a forráskódot.

Nos, hogy világosabban bemutatni az RSA algoritmus a következő példákat:

Titkosítani és visszafejteni az üzenetet „SAV” RSA algoritmus. Az egyszerűség kedvéért fogom használni kisszámú (a gyakorlatban - szükség van, hogy sokkal nagyobb).

1) kiválasztása p = 3 és q = 11.

2) Határozza meg n = 3 * 11 = 33.

3) Keressük (p-1) * (q-1) = 20. Így, d egyenlő, például 3: (d = 3).

4) válasszuk ki a telefonszámot e szerint a következő képlet: (E * 3) mod 20 = 1. Ennélfogva F egyenlő 7, például: (e = 7).

5) képviseli a titkosított üzenetet, mint egy számsorozat tartományban 0-32 (emlékezetes, hogy véget ér az n-1). Letter A = 1, B = 2, C = 3.

Most az üzenet titkosítására a nyilvános kulcs

C1 = (3 * 7) mod 2187 = 33 mod 33 = 9;

C2 = (1 * 7) mod 33 = 33 MOD 1 = 1;

C3 = (2 ^ 7) mod 33 = 128 mod 33 = 29;

Most dekódolni az adatokat privát kulccsal.

M1 = (9 * 3) mod 33 = 729 mod 33 = 3 (C);

M2 = (1 ^ 3) mod 33 = 33 MOD 1 = 1 (A);

M3 = (29 * 3) mod 33 = 24389 MOD 33 = 2 (V);

Minden adat kódolva.

Titkosító algoritmus RSA azon a feltételezésen alapul, hogy rendkívül nehéz meghatározni a titkos kulcsot az ismert, mert szükséges, hogy megoldja a problémát, hogy létezik a osztója egész. Ez a probléma NP-teljes, és ennek következtében ez a tény nem teszi lehetővé ceychas hatékony (polinom) megoldások. Sőt, az a kérdés, hogy létezik a hatékony algoritmusok megoldására NP-teljes problémák sokkal nyitva. Ha ön használ álló számot 200 számjegy (ilyen és fel kell használni, amikor adatok titkosítására), a jogosulatlan dekódolás kell generálni hatalmas műveletek száma (mintegy 10 ^ 23).


P.S / fenti adatok nem használható illegális célokra!

[Hiba történt a feldolgozás ezen irányelv]

Kapcsolódó cikkek