Algoritmus RSA leží v základech asymetrické kryptografie. RSA – je
kryptografický systém otevřeného klíče zabezpečující takové mechanizmy ochrany,
jako šifrování a digitální podpis (autenticita – ověření původnosti).
Kryptosystém RSA byl vytvořen v roce 1977 a byl pojmenován na počest vývojářů
Ronalda Rivesta, Adi Shamira a Leonarda Adlemana.
První etapou libovolného asymetrického algoritmu je vytvoření dvojice klíčů:
otevřeného a zavřeného a rozšíření otevřeného klíče "na celém světě“. Druhou
etapou je vlastně sam proces šifrování.
Etapa generování klíče
Pro algoritmus RSA se etapa vytvoření klíčů sestává z následujících operací:
Rychlost práce algoritmu RSA.
Rychlost činnosti realizace RSA je přibližně 1000 krát nižší než rychlost
činnosti přístrojové realizace DES. Rychlost činnosti VLSI (Very Large Scale
Integration) - realizace RSA s 512-bitovým modulem – 64 Kb/s. Programová
realizace DES je asi 100 krát rychlejší než programová realizace RSA. Tato
hodnocení se mohou nepatrně měnit v závislosti na použité technologii, ale RSA
nikdy nedosáhne produktivity symetrických algoritmů.
Krypto odolnost RSA
RSA mnohá léta odolává intenzivní kryptoanalýze. Kryptoodolnost RSA je založena
na obtížnosti rozložení na násobky (faktorizaci) velkých čísel. Otevřený a tajný
klíč jsou funkcemi dvou velkých (100 – 200 dvojkových výbojů nebo i více)
prostých čísel. Předpokládá se, že úloha obnovení otevřeného textu z šifrovaného
textu a otevřenému klíči je ekvivalentní úloha faktorizace. Avšak, nikdy nebylo
matematicky dokázáno, že je nutné rozložit n na násobky, aby se obnovilo m podle
? a ?. Není vyloučeno, že může být odhalen úplně nový způsob kryptoanalýzy RSA.
Přičemž, jestliže nový způsob umožní kryptoanalytikovi získat d, tak může být
použit pro rozložení na násobky velkých čísel. Také je možné zaútočit na RSA,
odhadnuv hodnotu (p-1)(q-1). Avšak tato metoda není jednodušší než rozložení na
násobky. Otevření dokonce několika bitů informací z šifrovaného textu není lehčí
než dešifrování celé zprávy. Nejzřejmějším útokem na RSA se jeví rozložení na
násobky. Libovolný protivník může získat otevřený klíč e a modul n. Aby mohl
najít dešifrovací klíč d, musí protivník rozložit n na násobky. Kryptoanalytik
může probírat všechny možné d, dokud nevybere správnou hodnotu. Ale podobný
silový útok je mnohem méně účinný než pokus rozložení n na násobky.
Podotýkáme, že je nedostatečné použít kryptoodolný algoritmus; bezpečným musí
být celý kryptosystém zahrnujíc i kryptografický protokol. Slabé místo
kteréhokoliv z těchto tří komponentů udělá systém nebezpečným.