RSA (cryptosystem) (Čeština)
Použití Čínské zbytek algorithmEdit
Pro účinnost mnoha populárních kryptografických knihoven (jako je OpenSSL, Java a .NET) použijte následující optimalizace pro dešifrování a podepisování na základě Čínská věta o zbytcích. Následující hodnoty jsou precomputed a uloženy jako součást soukromý klíč:
Tyto hodnoty umožňují, aby příjemce pro výpočet umocňování m = cd (mod pq) efektivněji takto:
Toto je více efektivní než výpočetní umocňování tím srovnat, i když dva modulární exponentiations muset být počítán., Důvodem je, že tyto dvě modulární exponenciace používají menší exponent a menší modul.
Číslo faktorizace a RSA problemEdit
bezpečnost šifrovacího systému RSA je založena na dvou matematických problémů: problém rozklad velkých čísel a RSA problém. Úplné dešifrování šifry RSA je považováno za nemožné za předpokladu, že oba tyto problémy jsou těžké, tj. neexistuje žádný efektivní algoritmus pro jejich řešení., Zajištění bezpečnosti proti částečnému dešifrování může vyžadovat přidání bezpečného polstrování.
RSA problém je definován jako úkol, přičemž eth kořeny modulo složené n: obnovení hodnoty m takové, že c ≡ (mod n), kde (n, e) je RSA veřejný klíč a c je RSA šifra. V současné době nejslibnější přístup k řešení RSA problém je faktor modul n. Se schopností obnovit hlavní faktory, útočník může počítat tajný exponent d z veřejného klíče (n, e), a pak dešifrovat c pomocí standardního postupu., K dosažení tohoto cíle, útočník faktory n do p a q a vypočítá lcm(p − 1, q − 1), který umožňuje určení d z e. Ne polynomial-time metody pro rozklad velkých čísel na klasickém počítači dosud nebyl nalezen, ale to nebylo prokázáno, že žádná neexistuje. Viz celočíselná faktorizace pro diskusi o tomto problému.
Vícenásobné polynomiální kvadratické síto (MPQ) lze použít k faktoru veřejného modulu n.,
první faktorizace RSA-512 v roce 1999 používala stovky počítačů a vyžadovala ekvivalent 8 400 MIPS let, Během uplynulého času přibližně sedm měsíců. Do roku 2009, Benjamin Moody mohl faktorem RSA-512 bitový klíč v 73 dní, s použitím pouze veřejné software (GGNFS) a jeho počítače (dual-core Athlon64 s 1,900 MHz cpu). Bylo zapotřebí méně než pět gigabajtů diskového úložiště a asi 2, 5 gigabajtů paměti RAM pro proces prosévání.,
Rivest, Shamir a Adleman poznamenal, že Miller ukázal, že – za předpokladu, že pravdu o Rozšířené Riemannovy Hypotézy – nalezení d z n a e je stejně těžké jako factoring n do p a q (až na polynomiální časový rozdíl). Nicméně, Rivest, Shamir, a Adleman poznamenal, v oddíle IX/D jejich papíru, že nenašli důkaz, že inverze RSA je stejně těžké jako factoring.
od roku 2020 bylo největším veřejně známým faktorovaným číslem RSA 829 bitů (250 desetinných číslic, RSA-250). Jeho faktorizace pomocí nejmodernější distribuované implementace trvala přibližně 2700 CPU let., V praxi jsou klíče RSA obvykle dlouhé 1024 až 4096 bitů. V roce 2003 společnost RSA Security odhadla, že 1024bitové klíče budou pravděpodobně prasklé do roku 2010. Od roku 2020 není známo, zda mohou být tyto klíče prasklé, ale minimální doporučení se přesunula na nejméně 2048 bitů. Obecně se předpokládá, že RSA je bezpečná, pokud je n dostatečně velká, mimo kvantové výpočty.
Pokud je n 300 bitů nebo kratší, může být za několik hodin v osobním počítači zapracován pomocí softwaru, který je již volně k dispozici., Klíče 512 bitů bylo prokázáno, že být prakticky nerozbitné v roce 1999, kdy RSA-155 byl rozložen pomocí několika stovek počítačů, a ty jsou nyní zohledněny v několika týdnech používání společné hardware. Exploity používající 512bitové certifikáty s podpisem kódu, které mohly být faktorovány, byly hlášeny v roce 2011. Teoretické hardwarové zařízení jménem TOČIT, popsal Shamir a Tromer v roce 2003, zpochybněna bezpečnost 1024 bitové klíče.,
V roce 1994 Peter Shor ukázal, že kvantové počítače – pokud se jeden mohl někdy být prakticky vytvořen pro účel – by měl být schopen faktor v polynomiálním čase, lámání RSA; viz Shor“s algoritmu.
vadný klíč generationEdit
Najít zdroje: „RSA“ cryptosystem – novinky · denní tisk · knihy · vědec · JSTOR (říjen 2017) (Učit se, jak a kdy odstranit tuto šablonu zprávy)
Nalezení velkých prvočísel p a q je obvykle provádí testování náhodných čísel správné velikosti s pravděpodobnostní testy prvočíselnosti, které se rychle eliminovat prakticky všechny nonprimes.
čísla p A q by neměla být“ příliš blízko“, aby Fermatova faktorizace pro n nebyla úspěšná., Pokud p − q je menší než 2n1/4 (n = p * q, což i pro malé 1024-bitové hodnoty n je 3×1077) řešení pro p a q je triviální. Dále, pokud se buď p − 1 nebo q − 1 má jen malé hlavní faktory, n mohou být zapracovány rychle Pollard“s p − 1 algoritmus, a proto tyto hodnoty p nebo q by měl být zlikvidován.
je důležité, aby soukromý exponent d byl dostatečně velký. Michael J. Wiener ukázal, že pokud p je mezi q a 2q (což je poměrně typické) a d < n1/4/3, pak d můžeme vypočítat efektivně z n a e.,
neexistuje žádný známý útok proti malým veřejným exponentům, jako je e = 3, za předpokladu, že je použito správné polstrování. Coppersmith útok má mnoho aplikací v útoku RSA konkrétně v případě, že veřejný exponent e je malý a v případě, že šifrovaná zpráva je krátká a není polstrovaný. 65537 je běžně používaná hodnota pro e; tuto hodnotu lze považovat za kompromis mezi zamezení případné malé exponent útoky a stále umožňuje efektivní šifrování (nebo ověření podpisu)., NIST Zvláštní Zveřejnění na Zabezpečení Počítače (SP 800-78 Rev 1, srpen 2007) neumožňuje veřejné exponenty e menší než 65537, ale neuvádí důvod pro toto omezení.
V říjnu 2017, tým výzkumníků z Masarykovy Univerzity oznámil ROCA zranitelnost, která ovlivňuje RSA klíče generované algoritmem zakotvena v knihovně od Infineon, známé jako RSALib. Ukázalo se, že bylo ovlivněno velké množství čipových karet a modulů důvěryhodné platformy (TPMs). Zranitelné klíče RSA lze snadno identifikovat pomocí testovacího programu, který tým vydal.,
Význam silný náhodné číslo generationEdit
kryptograficky silný náhodné číslo generátor, který byl správně nasazené s dostatečnou entropii, musí být použit pro generování prvočísel p a q. Analýza srovnání miliony veřejných klíčů, shromážděné z Internetu, byla provedena na začátku roku 2012 tím, že Arjen K. Lenstra, James P. Hughes, Maxime Augier, Joppe W. Bos, Thorsten Kleinjung a Christophe Wachter. Byli schopni faktor 0,2% klíčů pomocí pouze Euclidův algoritmus.
využili slabost jedinečnou pro kryptosystémy založené na celočíselné faktorizaci., Pokud n = pq je jeden veřejný klíč a n ‚= p’q ‚je jiný, pak pokud náhodou p = p ‚(ale q se nerovná q‘), pak jednoduchý výpočet GCD(n, n‘) = p faktory jak n, tak n‘, což zcela ohrožuje oba klíče. Lenstra et al. všimněte si, že tento problém lze minimalizovat použitím silného náhodného osiva bitové délky dvojnásobku zamýšlené úrovně zabezpečení nebo použitím deterministické funkce pro výběr Q daného p, namísto výběru P A q nezávisle.
Nadia Heninger byla součástí skupiny, která provedla podobný experiment. Použili nápad Daniela J., Bernstein pro výpočet GCD každého RSA klíč n proti produktem všechny ostatní klávesy n‘ našli (729 milionů místné číslo), místo computing každý gcd(n,n‘) samostatně, a tím dosáhnout velmi výrazné zrychlení, protože po jedné velké divize, GCD problém je v normální velikosti.
Heninger říká ve svém blogu, že špatné klíče došlo téměř výhradně v embedded aplikace, včetně „firewally, routery, sítě VPN, vzdálený server pro správu zařízení, tiskárny, projektory, a VOIP telefony“ od více než 30 výrobců., Heninger vysvětluje, že jeden-sdílené-prime problém odhalili dvě skupiny, výsledky ze situace, kdy pseudorandom number generator je špatně nasazený zpočátku, a pak je přesazoval mezi generaci z prvního a druhého prvočísla. Pomocí semena dostatečně vysoké entropie získané z klíčových mrtvice časování nebo elektronické dioda hluku nebo atmosférického šumu z radiového přijímače naladěn mezi stanicemi by měla vyřešit problém.
silné generování náhodných čísel je důležité v každé fázi kryptografie veřejného klíče., Například, pokud je slabý generátor použit pro symetrické klíče, které jsou distribuovány RSA, pak odposlouchávač by mohl obejít RSA a uhodnout symetrické klíče přímo.
Načasování attacksEdit
Kocher popsán nový útok na RSA v roce 1995: pokud útočník Eva ví, Alice“s hardware dostatečně podrobně a je schopen měřit dešifrování časy pro několik známých ciphertexts, Eva lze odvodit dešifrovací klíč d rychle. Tento útok lze také použít proti systému podpisu RSA., V roce 2003, Boneh a Brumley prokázala více praktické útoku schopen zotavuje RSA faktorizace přes připojení k síti (např. od Secure Sockets Layer (SSL)-povoleno webserver) Tento útok využívá informace unikly Čínská věta o zbytcích optimalizace používá mnoho RSA implementace.
Jeden způsob, jak zmařit tyto útoky je zajistit, aby dešifrování operace vyžaduje konstantní množství času pro každý ciphertext. Tento přístup však může výrazně snížit výkon., Místo toho většina implementací RSA používá alternativní techniku známou jako kryptografické oslepování. RSA oslepující využívá multiplikativní vlastnosti RSA. Namísto výpočetního cd (mod n) si Alice nejprve vybere tajnou náhodnou hodnotu r a vypočítá (rec)d (mod n). Výsledkem tohoto výpočtu, po použití Eulerovy věty, je rcd (mod n), A tak efekt r může být odstraněn vynásobením jeho inverzní. Pro každou šifru je zvolena nová hodnota r. S oslepující použita dešifrování době již není v korelaci s hodnotou na vstupu ciphertext, a tak načasování útok selže.,
Adaptivní zvolené ciphertext attacksEdit
V roce 1998, Daniel Bleichenbacher popsal první praktické adaptivní zvolené ciphertext útok proti RSA-šifrované zprávy pomocí PKCS #1 v1 polstrování režimu (polstrování systém náhodně a dodává strukturu RSA-šifrované zprávy, takže je možné určit, zda dešifrovat poselství je platné). Vzhledem k nedostatkům se schématem PKCS #1 byl Bleichenbacher schopen připojit praktický útok proti implementacím RSA protokolu Secure Socket Layer a obnovit klíče relace., Jako výsledek této práce, kryptografové nyní doporučujeme použití prokazatelně bezpečné polstrování programů, jako Optimální Asymetrického Šifrování Odsazení a RSA Laboratories vydala nové verze PKCS #1, které nejsou citlivé na tyto útoky.
útoky na analýzu postranních kanálůedit
byl popsán útok bočního kanálu pomocí analýzy predikce větví (BPA). Mnoho procesorů používá prediktor větve k určení, zda je pravděpodobné, že bude přijata podmíněná větev v instrukčním toku programu nebo ne. Často tyto procesory také implementují simultánní multithreading (SMT)., Útoky na analýzu predikcí větví používají špionážní proces k objevování (statisticky) soukromého klíče při zpracování s těmito procesory.
Simple Branch Prediction Analysis (SBPA) tvrdí, že zlepšit BPA v non-statistickým způsobem. Ve své knize, „Na Sílu Jednoduché Branch Prediction Analysis“, autoři SBPA (Onur Aciicmez a Cetin Kaya Koc) tvrdí, že mají objevena před 508 z 512 bitů RSA klíč v 10 iterací.
v roce 2010 byl popsán výpadek napájení na implementaci RSA., Autor obnovil klíč změnou napájecího napětí CPU mimo limity; to způsobilo více poruch napájení na serveru.