RSA: Asymetrický kryptografický algoritmus
RSA je asymetrický kryptografický systém, a jeho názov je odvodený od prvých písmen priezvisk jeho troch vynálezcov, Ron Rivest, Adi Shamir a Leonard Adleman (Rivest-Shamir-Adleman). RSA kryptografický algoritmus používa dva kľúče: PublicKey={e,N} a PrivateKey={d,N}. Bezpečnosť RSA kryptografického algoritmu je založená na náročnosti rozkladu veľkých celých čísel. Má podrobný proces šifrovania a dešifrovania.
V procese šifrovania RSA kryptografického algoritmu je plaintext M umocnený na e. Potom sa výsledok vydelí N a zvyšok je ciphertext C. V procese dešifrovania sa vydelí N a vezme sa zvyšok, aby sa získal plaintext M.
Kľúč RSA kryptografického algoritmu sa vypočíta nasledovne:
-
Vyberte dve tajné veľké prvočísla p a q.
-
Vypočítajte N = p × q, φN = (p – 1)(q – 1). φN je hodnota Eulerovej funkcie N.
-
Vyberte celé číslo e, také, že 1 < e < φN a gcd(φN, e) = 1.
-
Vypočítajte privátny kľúč tak, aby platila kongruencia d ∙ e ≡ 1 mod φN. d je multiplikatívny inverz e v modulo φN.
-
{e, N} je verejný kľúč a {d, N} je privátny kľúč.
Okrem šifrovania a dešifrovania dát sa RSA kryptografický algoritmus môže použiť aj na podpisovanie dát. Existuje špecifický implementačný proces podpisu a overovania.
Inštitucionálny parameter
Verejný kľúč {e, N} a privátny kľúč {d, N} sú získané podľa procesu výpočtu kľúča RSA algoritmu.
Proces podpisu
Ak je správa M, jej podpis je: S ≡ M^d mod N
Proces overovania
Po tom, čo príjemca dostane správu a podpis S, musí overiť, či je vytvorené M’ ≡ S^e mod N. Ak je vytvorené, podpis je platný.
V praxi sa digitálny podpis generuje šifrovaním súhrnu správy namiesto priameho šifrovania správy.
Záver
Ako medzinárodný štandardný algoritmus je RSA kryptografický algoritmus široko používaný v oblastiach šifrovanej komunikácie, digitálnych podpisov, výmeny kľúčov a mnohých ďalších oblastiach. Z bezpečnostných dôvodov sa odporúča v skutočných aplikáciách zvoliť RSA kľúč o veľkosti 2048 alebo vyšší.