/ / RSA šifrování. Popis a implementace algoritmu RSA

RSA šifrování. Popis a implementace algoritmu RSA

Šifrování RSA je jedním z prvníchpraktické kryptosystémy veřejného klíče, které jsou široce používány pro bezpečný přenos dat. Jeho hlavní rozdíl od podobných služeb spočívá v tom, že šifrovací klíč je veřejný a liší se od dešifrovacího klíče, který je udržován v tajnosti. V technologii RSA je tato asymetrie založena na praktické složitosti factoringu dvou velkých prvočísel (factoringový problém).

Šifrování RSA

Dějiny stvoření

Název RSA se skládá z počátečních písmen příjmeníRivest, Shamir a Adleman jsou vědci, kteří poprvé veřejně popsali takové šifrovací algoritmy v roce 1977. Clifford Cox, anglický matematik pracující pro britské zpravodajské služby, nejprve vytvořil ekvivalentní systém v roce 1973, ale odtajněn byl až v roce 1997.

Uživatel RSA vytvoří a poté publikujeveřejný klíč založený na dvou velkých prvočíslech spolu s pomocnou hodnotou. Prvočísla musí být tajná. K zašifrování zprávy může kdokoli použít veřejný klíč, ale pokud je dostatečně velký, může ji dekódovat pouze někdo se znalostí prvočísel. Prozrazení šifrování RSA je známé jako hlavní problém: dnes se vede otevřená diskuse o tom, jak spolehlivý je mechanismus.

šifrovací algoritmy

RSA je relativně pomalý algoritmus,z tohoto důvodu není tak široce používán pro přímé šifrování uživatelských dat. Nejběžnějším použitím této metody je šifrování sdílených klíčů pro symetrický šifrovací klíč, který zase může provádět operace hromadného šifrování a dešifrování mnohem vyšší rychlostí.

Kdy se kryptosystém objevil v moderní podobě?

Myšlenka asymetrického klíčového kryptosystémupřipisováno Diffie a Hellmanovi, kteří v roce 1976 publikovali koncept zavádějící digitální podpisy a pokoušející se uplatnit teorii čísel. Jejich formulace používá sdílený tajný klíč generovaný z umocňování nějakého čísla modulo prvočíslo. Problém implementace této funkce však nechali otevřený, protože principy factoringu nebyly v té době dobře pochopeny.

Rivest, Adi Shamir a Adleman v MassachusettsInstitute of Technology učinil během roku několik pokusů o vytvoření jednosměrné funkce, kterou je obtížné dekódovat. Rivest a Shamir (jako počítačoví vědci) navrhli mnoho potenciálních funkcí, zatímco Adleman (jako matematik) hledal slabá místa v algoritmu. Přijali mnoho přístupů a nakonec v dubnu 1977 nakonec vyvinuli systém, který je dnes známý jako RSA.

šifrování informací

EDS a veřejný klíč

Elektronický digitální podpis nebo EDS,je nedílnou součástí dokumentů elektronického typu. Vzniká při určité kryptografické změně dat. Pomocí tohoto atributu je možné zkontrolovat integritu dokumentu, jeho důvěrnost a také zjistit, kdo je jeho vlastníkem. Ve skutečnosti se jedná o alternativu k obvyklému standardnímu podpisu.

Tento kryptosystém (šifrování RSA) nabízíveřejný klíč, jak se liší od symetrického. Princip jeho fungování spočívá v tom, že se používají dva různé klíče - soukromý (šifrovaný) a také veřejný. První se používá ke generování EDS a následně k dešifrování textu. Druhá je pro skutečné šifrování a ověření EDS.

Použití podpisu umožňuje lepší pochopení šifrování RSA, jehož příklad lze uvést jako běžný klasifikovaný dokument „z očí zvědavých očí“.

Co je podstatou algoritmu?

Algoritmus RSA se skládá ze čtyř fází:generování klíčů, jejich distribuce, šifrování a dešifrování. Jak již bylo uvedeno, šifrování RSA zahrnuje veřejný klíč a soukromý klíč. Otevřený může znát každý a používá se k šifrování zpráv. Jeho podstata spočívá ve skutečnosti, že zprávy šifrované pomocí veřejného klíče lze dešifrovat pouze po určitou dobu pomocí tajného klíče.

Příklad šifrování RSA

Z bezpečnostních důvodů by celá čísla měla býtjsou náhodně vybrány a mají stejnou velikost, ale liší se délkou o několik číslic, což ztěžuje factoring. Identická čísla lze efektivně najít pomocí testu jejich jednoduchosti, takže šifrování informací musí být nutně komplikovanější.

Veřejný klíč se skládá z modulu a veřejného exponenta. Soukromé se skládá z modulu a soukromého indikátoru, které je třeba udržovat v tajnosti.

Šifrování a slabosti souborů RSA

Existuje však řada hackerských mechanismů.jednoduchý RSA. V šifrování s nízkými hodnotami a nízkými hodnotami čísel lze šifru snadno prolomit výběrem kořene šifrovacího textu přes celá čísla.

rsa šifrování c

Protože šifrování RSA jeS deterministickým algoritmem (tj. Bez náhodné komponenty) může útočník úspěšně zahájit vybraný útok prostého textu na kryptosystém šifrováním pravděpodobného holého textu pod veřejným klíčem a kontrolou, zda se rovnají šifrovacímu textu. Kryptosystém se nazývá sémanticky zabezpečený, pokud útočník nedokáže rozlišit dvě šifry od sebe, i když zná odpovídající texty ve zveřejněné podobě. Jak je popsáno výše, RSA není sémanticky zabezpečená, pokud není doplněna dalšími službami.

Další algoritmy šifrování a ochrany

Aby se předešlo výše uvedeným problémům, kdyžPraktické implementace RSA obvykle obsahují nějakou formu strukturovaného, ​​náhodného odsazení před šifrováním. Tím je zajištěno, že obsah nespadá do rozsahu nebezpečného prostého textu a že zprávu nelze odhalit náhodou.

šifrování souborů rsa

Zabezpečení a šifrování kryptosystému RSAinformace jsou založeny na dvou matematických problémech: problému factoringu velkých čísel a problému RSA samotného. Úplné zveřejnění šifrovacího textu a EDS v RSA je považováno za nepřijatelné za předpokladu, že oba tyto problémy nelze vyřešit společně.

Nicméně kvůli možnosti zotaveníjednoduché faktory, může útočník vypočítat tajnou postavu z veřejného klíče a poté dešifrovat text pomocí standardního postupu. Navzdory skutečnosti, že dnes nebyla nalezena žádná existující metoda pro faktorizaci velkých čísel na klasickém počítači, nebylo prokázáno, že neexistuje.

Automatizace

Nástroj zvaný Yafu může býtslouží k optimalizaci tohoto procesu. Automatizace v YAFU je moderní funkce, která kombinuje faktorizační algoritmy v inteligentní a adaptivní metodice, která minimalizuje čas na nalezení faktorů libovolných vstupních čísel. Většina implementací algoritmu je vícevláknová, což Yafu umožňuje plně využívat vícejádrové nebo vícejádrové procesory (včetně SNFS, SIQS a ECM). Nejprve je to nástroj spravovaného příkazového řádku. Čas potřebný k nalezení faktoru šifrování pomocí Yafu na běžném počítači lze zkrátit na 103,1746 sekundy. Nástroj zpracovává binární soubory s kapacitou 320 bitů nebo více. Jedná se o velmi složitý software, který vyžaduje určité množství technických dovedností pro instalaci a konfiguraci. Šifrování RSA C by tedy mohlo být zranitelné.

šifrování prstem rsa

Pokusy o hackerství v moderní době

V roce 2009 Benjamin Moody používal bitKlíč RSA-512 pracoval na dešifrování kryptotextu po dobu 73 dnů s použitím pouze známého softwaru (GGNFS) a průměrného stolního počítače (dvoujádrový procesor Athlon64 při frekvenci 1 900 MHz). Jak ukazuje tato zkušenost, pro proces „prosévání“ to trvalo o něco méně než 5 gigabajtů disku a přibližně 2,5 gigabajtu paměti RAM.

Od roku 2010 bylo největší faktorizované číslo RSA dlouhé 768 bitů (232 desetinných míst nebo RSA-768). Jeho zveřejnění trvalo dva roky na několika stovkách počítačů současně.

V praxi jsou klíče RSA dlouhé -obvykle 1024 až 4096 bitů. Někteří odborníci se domnívají, že 1024bitové klíče by se v blízké budoucnosti mohly stát nespolehlivými nebo dokonce již mohly být napadeny docela dobře financovaným útočníkem. Málokdo by však tvrdil, že v dohledné budoucnosti by bylo možné odhalit i 4096bitové klíče.

Perspektivy

Proto se obecně předpokládá, že RSAje bezpečné, pokud jsou čísla dostatečně velká. Pokud je hlavní číslo 300 bitů nebo méně, lze šifrovací text a EDS rozložit během několika hodin na osobním počítači pomocí softwaru, který je již volně k dispozici. Bylo prokázáno, že 512bitové klíče lze prolomit již v roce 1999 pomocí několika stovek počítačů. To je dnes možné několik týdnů pomocí veřejně dostupného hardwaru. Je tedy docela možné, že v budoucnu bude šifrování RSA snadno odhaleno na prstech a systém bude beznadějně zastaralý.

Oficiálně v roce 2003 byla zpochybněna bezpečnost 1024bitových klíčů. V současné době se doporučuje mít délku alespoň 2048 bitů.