Tento článek popisuje podmínky pro použití kryptoalgoritmu veřejného klíče RSA , který zjednodušuje kryptoanalytické útoky [1] , a způsoby, jak tyto stavy eliminovat.
Od roku 2009 je šifrovací systém založený na RSA považován za bezpečný počínaje 1024 bity.
Skupina vědců ze Švýcarska, Japonska, Francie, Nizozemska, Německa a Spojených států úspěšně vypočítala data zašifrovaná pomocí 768bitového kryptografického klíče RSA. [2] Podle výzkumníků lze po jejich práci za spolehlivý šifrovací systém považovat pouze klíče RSA s délkou 1024 bitů a více. Kromě toho by se v příštích třech až čtyřech letech mělo opustit šifrování s klíčem 1024 bitů. [3]
Jak vyplývá z popisu práce, výpočet klíčových hodnot byl proveden metodou obecného číselného pole síta .
První krok (výběr dvojice polynomů stupně 6 a 1) zabral asi půl roku výpočtů na 80 procesorech, což byla asi 3 % času stráveného na hlavní fázi algoritmu (sifting), která byla provedena na stovky počítačů za téměř dva roky. Pokud bychom tuto dobu interpolovali na provoz jednoho procesoru AMD Opteron 2,2 GHz s pamětí 2 GB, pak by to bylo zhruba 1500 let. Zpracování dat po prosévání pro další krok náročný na zdroje (lineární algebra) trvalo na malém počtu procesorů několik týdnů. Poslední krok po nalezení netriviálních řešení OSLU netrval déle než 12 hodin.
Řešení OSLU bylo provedeno Wiedemannovou metodou na několika samostatných shlucích a trvalo o něco méně než 4 měsíce. Zároveň byla velikost řídké matice 192 796 550x192 795 550 s 27 795 115 920 nenulovými prvky (tj. průměrně 144 nenulových prvků na řádek). Uložení matice na pevný disk trvalo asi 105 gigabajtů. Současně bylo zapotřebí asi 5 terabajtů komprimovaných dat k vytvoření této matice.
Výsledkem bylo, že skupina byla schopna vypočítat 232místný klíč, který otevírá přístup k šifrovaným datům.
Výzkumníci jsou přesvědčeni, že pomocí jejich metody faktorizace bude možné prolomit 1024bitový klíč RSA během příští dekády.[ kdy? ] .
Při znalosti expanze modulu na součin dvou prvočísel může protivník snadno najít tajný exponent a rozbít tak RSA. Dosud je však nejrychlejším faktorizačním algoritmem General Number Field Sieve, jehož rychlost pro k-bitové celé číslo je
pro některé ,
neumožňuje rozklad velkého celého čísla v rozumném čase. Zvážíme možné útoky na RSA, které nám umožní prolomit tento systém bez použití přímé expanze modulu n na součin dvou prvočísel.
Podívejme se na několik útoků souvisejících se zneužitím algoritmu RSA.
Pro náhodná prvočísla platí následující dodatečné omezení :
Počáteční data: Aby se zabránilo generování různých modulů pro každého uživatele, zabezpečený server používá k šifrování všech zpráv jediné n. Party používá tento server k přijetí zprávy
Úkol: protivník chce dešifrovat zprávu strany .
Zdálo by se, že šifrovaný text zaslaný straně nemůže být dešifrován, pokud nemá tajný klíč . Strana však může použít své exponenty k rozkladu modulu a poté, s vědomím , vypočítat tajný exponent .
Ochrana: každý uživatel musí používat svůj vlastní modul .
Výchozí údaje: - veřejný klíč notáře. Při pokusu o podepsání zprávy notářem obdrží protivník odmítnutí
Úkol: protivník chce získat podpis notáře na zprávě .
Protivník si vybere libovolnou , vypočítá a odešle tuto zprávu notáři k podpisu.
Pokud notář podepíše tuto zprávu:
pak protivník po vypočítání získá podpis zprávy .
Opravdu,
Ochrana: při podepisování přidejte do zprávy nějaké náhodné číslo (například čas).
Počáteční data: Pro zvýšení rychlosti dešifrování (nebo vytvoření digitálního podpisu) byl snížen počet nenulových bitů binární reprezentace tajného exponentu (viz rychlost algoritmu RSA ).
Úkol: Vypočítejte tajný exponent .
V roce 1990 Michael J. Wiener ukázal, že v případě malé hodnoty je možné prolomit systém RSA, a to:
Wienerova věta:
Nechť , kde Pak, pokud je známo , kde , pak existuje efektivní způsob, jak vypočítat .Ochrana: Pokud má tedy velikost 1024 bitů, musí být alespoň 256 bitů dlouhá.
Pro zvýšení rychlosti šifrování a ověřování digitálních podpisů používejte malé hodnoty otevřeného exponentu . Nejmenší z nich . Aby se však zvýšila kryptografická síla algoritmu RSA, doporučuje se použít
.
Počáteční podmínky: Strana odešle uživatelům šifrovanou zprávu . Každý uživatel má svůj vlastní veřejný klíč a . Strana zašifruje zprávu pomocí veřejného klíče každého uživatele a odešle ji příslušnému příjemci. Protivník naslouchá přenosovému kanálu a shromažďuje přenášené šifrové texty.
Úkol: protivník chce obnovit zprávu .
Nechte , pak se soupeř může zotavit , pokud .
DůkazPokud totiž soupeř obdržel , kde
Předpokládáme, že jsou coprime, jinak by největší společný dělitel jiný než jedna znamenal nalezení dělitele jednoho z . Aplikováním čínské věty o zbytku na , dostaneme ,
Od té doby
To znamená, že protivník může obnovit zprávu výpočtem odmocniny z .
Obecně platí, že pokud jsou všechny otevřené exponenty stejné , protivník se může zotavit při .
Zvažte nejjednodušší obranu proti tomuto útoku. Nechť je zpráva pro každého uživatele nějakou pevnou permutací původní zprávy
— zpráva pro i-tého uživatele.Hastad (Johan Hastad) ukázal, že i v tomto případě dokáže protivník obnovit zprávu s dostatečným počtem uživatelů.
Ochrana: Tento útok je možný pouze s malou hodnotou otevřeného exponentu , v takovém případě lze kryptografické síly systému RSA dosáhnout pomocí libovolné permutace, nikoli fixní, jejíž příklad byl uveden výše.
Počáteční podmínky :
Existují dvě zprávy a
kde je nějaký otevřený polynom.Strana s veřejným klíčem přijímá tyto zprávy od strany , která zprávy jednoduše zašifruje a odešle přijaté šifrované texty .
Úkol: Nepřítel, který ví , chce obnovit .
Matthew K. Franklin a Michael K. Reiter dokázali následující tvrzení:
Nechat 1) je veřejný klíč systému RSA a 2) a , pro nějaký lineární polynom , Pak, když ví , může se protivník zotavit DůkazOpravdu, pro svévolné :
, je kořenem polynomu
ale je také kořenem polynomu
.Rozdělí tedy oba polynomy. A protivník může použít euklidovský algoritmus k výpočtu GCD . Pokud se výsledek ukáže jako lineární polynom, bude nalezen.
Když je gcd lineární polynom, a proto může protivník efektivně vypočítat zprávy .
Ochrana: když je doba prolomení systému RSA úměrná , tak tento útok lze použít pouze s malými hodnotami otevřeného exponentu.
Počáteční podmínky :
Protivník zná část binární reprezentace tajného exponentu .
Úkol: obnovit .
Ukázalo se, že:
Nechť je tajný klíč systému RSA, kde je velikost bitů. Poté, když zná nejméně významné bity čísla , může se protivník zotavit za čas úměrný tomuMožnost cracknutí systému RSA v případě, kdy je otevřený exponent malý, je zřejmá i z následující úvahy:
z definice a : Vzhledem k tomu , je zřejmé . Vzhledem k dané hodnotě může protivník snadno vypočítat Potom v Je tedy dobrá aproximace pro . Protože jsou možné pouze odlišné hodnoty , může protivník sestavit řadu obsahující členy, pro které je binární reprezentace jednoho z jejích prvků stejná jako horní polovina binární reprezentace tajného exponentu .Ochrana: otevřené zvýšení exponentu .
S pomocí kvantového počítače , pokud bude postaven, bude možné prolomit RSA, protože Shorův kvantový algoritmus umožňuje faktorizaci velkých čísel v poměrně krátkém čase. Rozložením modulu n na prvočinitele (toto lze provést v čase pomocí O (log n ) logických Q-bitů ) lze vypočítat tajný exponent d.
Počáteční podmínky:
Představte si čipovou kartu , jejíž mikroprocesor podepisuje zprávy pomocí integrovaného soukromého klíče RSA.
Cíl: Nepřítel chce získat tajného exponenta .
Paul Kocher navrhl útok založený na vysoce přesných měřeních času, který kodér čipových karet potřebuje k provedení určitých operací. Uvažujme tento útok na příkladu systému RSA využívajícího rychlý umocňovací algoritmus :
Protivník získává podpisy čipových karet pro velký počet náhodných zpráv a měří čas potřebný k vygenerování jejich podpisů .
Během útoku se hodnota tajného exponentu obnovuje bit po bitu, počínaje nejméně významným bitem:
Všimněte si, že v případě malého otevřeného exponentu lze použít útok na částečně otevřený tajný exponent . V tomto případě stačí obnovit polovinu bitů tajného exponentu .
Zabezpečení: Musí být přidáno odpovídající zpoždění, aby každý krok algoritmu rychlého umocňování trval pevně stanovenou dobu.
Počáteční podmínky:
Představte si čipovou kartu , jejíž mikroprocesor podepisuje zprávy pomocí integrovaného soukromého klíče RSA. Mikroprocesor karty používá čínskou větu o zbytku k urychlení procesu podepisování. Protivník se snaží způsobit poruchu ve výpočtech mikroprocesoru.
Úkol: protivník chce vypočítat modulo .
Použití čínské věty o zbytku zvyšuje rychlost vytváření digitálního podpisu.
Vlastně výpočtem , kde , kde můžete získat podpis , kde Je zřejmé, že výpočty jsou mnohem rychlejší než umocňování modulo .Nechte akce nepřítele způsobit selhání, které má za následek defekt v jednom bitu podpisu. Pak je alespoň jeden z nebo vypočítán nesprávně. Předpokládejme, že závada je obsažena v .
V tomto případě
ale
Protivník tak může najít rozklad jako výsledek hledání GCD .
Ochrana:
V roce 2021 tým výzkumníků včetně Technologické univerzity v Grazu , Georgia Institute of Technology a neziskového výzkumného centra Lamarr Security Research použil zranitelnost SMT [4] v procesorech AMD s architekturami Zen , Zen 2 a Zen 3 k „ crack" šifrovací klíč RSA -4096 [5] [6] .