Přeskočit na obsah

RSA

Z Wikipedie, otevřené encyklopedie
Možná hledáte:Jihoafrická republika.
Adi Šamir(2009), jeden ze tří spoluautorů algoritmu RSA

RSA(iniciály autorůRivest,Shamir,Adleman) ješifra s veřejným klíčem,jedná se o prvníalgoritmus,který je vhodný jak propodepisování,takšifrování.Používá se i dnes, přičemž při dostatečné délceklíčeje považován za bezpečný.

Bezpečnost RSA je postavena na předpokladu, že rozložit velké číslo na součinprvočísel(faktorizace) je velmi obtížná úloha. Z číslaje tedy v rozumném čase prakticky nemožné zjistit činitelea,neboť není znám žádný algoritmus faktorizace, který by pracoval v polynomiálním čase vůči velikosti binárního zápisu čísla.Naproti tomu násobení dvou velkých čísel je elementární úloha.

Popis činnosti algoritmu

[editovat|editovat zdroj]

Alice a Bobchtějí komunikovat prostřednictvím otevřeného (nezabezpečeného) kanálu a Bob by chtěl Alici poslat soukromou zprávu.

Tvorba klíčového páru

[editovat|editovat zdroj]

Nejprve si bude Alice muset vyrobit pár veřejného a soukromého klíče:

  1. Zvolí dvě různá velkánáhodnáprvočíslaa.
  2. Spočítá jejich součin.
  3. Spočítá hodnotuEulerovy funkce.
  4. Zvolícelé číslomenší než,které je snesoudělné.
  5. Nalezne číslotak, aby platilo,kde symbolznačíkongruenci zbytkových tříd.
  6. Jestlije prvočíslo, tak,kde

Veřejným klíčem je dvojice,přičemžse označuje jakomodul,jakošifrovacíčiveřejný exponent.Soukromým klíčem je dvojice,kdese označuje jakodešifrovacíčisoukromý exponent.V praxi se klíče uchovávají v mírně upravené formě, která umožňuje rychlejší zpracování. Veřejný klíč poté Alice uveřejní, respektive zcela otevřeně pošle Bobovi. Soukromý klíč naopak uchová v tajnosti.

V bodě 5 je použitrozšířený Eukleidův algoritmusnaa,čímž naleznemeado rovnice.

Zašifrování zprávy

[editovat|editovat zdroj]

Bob nyní chce Alici zaslat zprávu.Tuto zprávu převede nějakým dohodnutým postupem na číslo(). Šifrovým textem odpovídajícím této zprávě pak je číslo

Tento šifrový text poté zašle nezabezpečeným kanálem Alici.

Dešifrování zprávy

[editovat|editovat zdroj]

Alice od Boba získá šifrovaný text.Původní zprávuzíská následujícím výpočtem:

Fakt, že je výsledek tohoto výpočtu původní zprávou, je důsledek následující rovnosti:

A jelikoža,díkymalé Fermatově větěplatí, že

a zároveň

Jelikožajsou různá prvočísla, pomocíčínské věty o zbytcíchje dáno

Tudíž

Hodnotyanise při dešifrování nepočítají, slouží pouze pro důkaz správnosti dešifrování spolu s čínskou větou o zbytcích. Kongruence platí i proa.

V tomto příkladu jsou pro jednoduchost použita extrémně malá čísla, v praxi se používají o mnoho řádů větší.

  • ;(dvě náhodná prvočísla, soukromá)
  • (modul, veřejný)
  • (veřejný, šifrovací exponent – číslo menší a nesoudělné s)
  • (soukromý, dešifrovací exponent – tak aby)

Pro zašifrování zprávy 123 probíhá výpočet:

Pro dešifrování pak:

Útoky proti RSA

[editovat|editovat zdroj]
  • Pokud je pro šifrování použita nízká hodnota exponentu(např.) a nízké hodnotyje výsledeknižší než.V tomto případě může být dešifrovaná hodnota (například text rezprezentovaný číselně) získána jako-tá odmocnina zašifrované hodnoty (textu).
  • Pokud je stejná nezašifrovaná zpráva po zašifrování poslánanebo více příjemcům a příjemci mají stejné,ale jiné,,a tím pádem i,potom je možné původní zprávu snadno dešifrovat pomocíČínské věty o zbytcích.Johan Hastadzjistil, že tento útok je možný i v případě, že zprávy nejsou stejné, ale útočník zná lineární vztah mezi nimi. Tento útok byl dále vylepšenDonem Coppersmithem.
  • Protože šifra RSA je deterministický šifrovací algoritmus (tj. nemá žádnou náhodnou část) útočník může zkusit generovat pravděpodobný text zprávy, následně jej zašifruje pomocí veřejného klíče a porovná jej se zašifrovaným textem. Šifra je nazývánasémanticky bezpečnou,pokud útočník není schopen rozlišit od sebe dva zašifrované texty i když zná (nebo zkouší) původní text. Šifra RSA bez náhodného doplnění není sémanticky bezpečná.
  • Vlastností RSA je, že násobek dvou zašifrovaných hodnot (textů) je roven zašifrování násobku dvou jejich původních hodnot (textů). Tedy.Kvůli této vlastnosti je možný útok pomocí luštění se znalostí vybraných původních hodnot (textů). Tj. útočník, který chce zjistit obsah zašifrovaného textumůže požádat držitele soukromého klíče aby odšifroval nevině vypadající zašifrovaný textpro nějakou hodnotuvybranou útočníkem. Kvůli této vlastnostije zašifrování.Tedy pokud je útočník při tomto útoku úspěšný, dozví se,z čehož může odvodit zprávunásobenímmodulární inverzímodulo.
  • Pseudonáhodná čísla nejsou náhodná. Ovlivněnímgenerátoru pseudonáhodných čísellze dosáhnout prolomení.[zdroj?]

Schéma doplnění

[editovat|editovat zdroj]

Aby se předešlo problémům, tak se v praktické implementaci RSA používají nějaké strukturované náhodné posunutí hodnotynež je zašifrována. Toto posunutí zaručuje, ženebude spadat do rozsahu nebezpečných původních textů, a že se daná zpráva po posunutí zašifruje do různých možných zašifrovaných textů.

Standardy jakoPKCS#1byly pečlivě navrženy, aby bezpečně posunuly zprávu před RSA zašifrováním. Protože tato schémata posunují nezašifrovaný textnějakým množstvím přidaných bitů, velikost neposunuté zprávymusí být o tolik menší. Schémata pro RSA posunutí musí být pečlivě navržena, aby zabránila sofistikovaným útokům, které by mohly být založené na předvídatelné struktuře zprávy. Rané verze standardu PKCS#1 (do verze 1.5) užívaly konstrukci, která vypadala jako sémanticky bezpečná, ale na Eurokriptu 2000 Coron et al. ukázal, že pro některé typy zpráv toto doplnění neposkytuje dostatečnou úroveň zabezpečení. Navíc na Crypto 1998 Bleichenbacher ukázal, že tato verze je náchylná k praktickému adaptivnímu útoku se znalostí vybraných otevřených textů. Pozdější verze používají Optimal Asymmetric Encryption Padding (OAEP), aby předešly tomuto typu útoku. Z toho důvodu by OAEP mělo být použito ve všech nových aplikacích a PKCS#1 v1.5 doplňování by mělo být nahrazeno kdekoli je to možné. PKCS#1 standard také obsahuje schémata navržená tak, aby poskytovala dodatečnou bezpečnost pro RSA podpisy.

Vygenerování chybného klíče

[editovat|editovat zdroj]

Hledání velkých prvočíselase provádí testováním náhodných čísel správné velikosti pomocíTestů prvočíselnosti(např.Millerův-Rabinův), které rychle eliminují prakticky všechna neprvočísla.

Číslaaby neměla být „příliš blízko “, jinak jeFermatova faktorizaceproúspěšná, pokud,například je méně než(což i pro malé 1024bitové hodnotyje) řešení proaje triviální. Navíc, pokudnebojsou násobky pouze malých prvočísel,může být rychle rozloženoPollardovýmalgoritmem,a tyto hodnotyneboby tedy neměly být použity. Nejsou známy žádné útoky proti malé hodnotě veřejného exponentu jako např.,pokud je použito správné doplnění. Ale pokud doplnění použito není nebo je špatně implementováno, malý veřejný exponent způsobuje větší riziko. Běžně používaná hodnotaje 65537, což je považováno za kompromis mezi ochranou proti potenciálnímu útoku proti malému exponentu a efektivitou šifrování (nebo podpisu).

Digitální podpis

[editovat|editovat zdroj]

Algoritmus RSA lze snadno využít prodigitální podpis.Základním principem takového využití je „opačné “použití šifry – pokud Alice chce poslat Bobovi podepsanou zprávu, připojí k ní číslo získané „dešifrováním “hašesvé zprávy pomocí svého soukromého klíče. Bob poté jakoby zpětně „zašifruje “tento podpis pomocí Alicina veřejného klíče a porovná výsledek s hašem zprávy. Pokud zpráva nebyla změněna, vyjde stejná hodnota, neboť algoritmus je z hlediska šifrování i dešifrování symetrický (lze zaměnita). Jelikož jediný, kdo zná tajný klíč Alice, je Alice, je tím zaručeno, že ho zašifrovala Alice.


Související články

[editovat|editovat zdroj]

Externí odkazy

[editovat|editovat zdroj]