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]