Každého v oblasti IT zajímá, jak velkou hrozbou pro kryptografii jsou kvantové počítače a jak se s daným problémem vyrovnat. Tato série článků se snaží populární formou tento problém vysvětlit. Po Problému faktorizace se můžeme podívat na problém diskrétního logaritmu.
V současnosti využíváme algoritmy založené na problému diskrétního logaritmu ve dvou hlavních skupinách. V první z těchto skupin je klasický a stále ještě používaný Diffie-Hellman (DH), dále dnes již výběhový algoritmus DSA (Digital Signature Algorithm), algoritmus ElGamal a Schnorrův podpis. Jedná se zde o nejznámější algoritmy, nikoliv celkový přehled. Uvedená skupina algoritmů pracuje nad omezenou skupinou celých čísel (operace modulo prvočíslo). Tato skupina používá klíče o velikosti jednotek kilobitů, což má dopady na rychlost. Jakékoliv operace s takto velkými čísly jsou poměrně složité. Druhou skupinou jsou algoritmy ECDH (Elliptic Curve Diffie-Hellman), ECDSA (Elliptic Curve DSA), ale take EdDSA (Edwards curve DSA). Ty pracují v několika variantách. Buď se jedná o body eliptické křivky nad číselným tělesem, omezené opět nějakým prvočíslem. Dále se může jednat o body eliptické křivky nad polynomy, omezené ireducibilním polynomem, případně jako poslední varianta se používají rozšíření těles. Klíče pro dosažení stejné úrovně bezpečnosti jsou o řád menší než u algoritmu RSA a zpravidla mají velikost maximálně stovek bitů. Teoreticky je možné používat i další přístupy založené na problému diskrétního logaritmu, ale o praktickém nasazení nevím, proto se jim zde nebudu věnovat.
Jsou tu tedy skupiny systémů, které mají podobné vlastnosti, ale stejně jako u algoritmu RSA, jaké jsou možnosti útoku? Co je a není v našich silách?
Pro útok na klasický Diffie-Hellman, DSA, ElGamal i Schnorr je možné použít NFS-DL (Number Field Sieve – Discrete Logarithm). První část výpočtu je třídění, používá řádově desítky tisíc instrukcí na krok s obtížnou predikcí větvení (branch prediction), jedná se zároveň o paměťově intenzivní operace. Dochází tedy často k situaci, kdy se potřebná data nenachází v cache. Dalším krokem je filtrování s náročností okolo 500 instrukcí na krok, opět paměťově intenzivní. Poslední částí je vyhodnocení, které používá sice málo instrukcí, zhruba 50 na krok, ale je opět paměťově intenzivní. Celkovou složitost algoritmu je možné vyjádřit následujícím způsobem.
Zatížení paměti je u číselného síta je také docela výrazné, s vyjádřením
Vlastní útok na problém diskrétního logaritmu nad eliptickými křivkami dodnes vychází z algoritmu Pollard 𝜌 (Pollard rho). U něj je možné definovat složitost následujícím způsobem
V tomto vzorci je n bitová šířka klíče a m je hodnota automorfismu. Z používaných křivek mají Weierstrassovy křivky (NIST P-256, NIST P-384 a NIST P-521, dále brainpoolP256r1, brainpoolP384r1, brainpoolP521r1) automorfismus m=2, komunitní křivky používající Twisted Edwards (Ed25519 a Ed448) mají hodnotu m=8. Pro řešení je nutné použít zhruba 4000 instrukcí na jeden krok, navíc velice často dochází k problémům s branch prediction. To znamená zahození fronty instrukcí a pozastavení výpočtu na několik desítek až nižších stovek cyklů.V případě útoku pomocí Pollard 𝜌 je na druhou stranu výhodou extrémně nízké zatížení paměti.
| Algoritmus | Složitost | Operací | Instrukcí | Paměť (B) | Doba (roků) | Energie (J) |
| DSA1024 | 248.7 | 1.21∙1014 | 1.81∙1018 | 1.21∙1014 | 5.76∙100 | 5.05∙106 |
| DSA2048 | 262.8 | 8.09∙1018 | 1.21∙1023 | 8.09∙1018 | 3.84∙105 | 3.37∙1011 |
| DH1024 | 246.7 | 1.21∙1014 | 1.81∙1018 | 1.21∙1014 | 5.76∙100 | 5.05∙106 |
| DH2048 | 262.8 | 8.09∙1018 | 1.21∙1023 | 8.09∙1018 | 3.84∙105 | 3.37∙1011 |
| DH3072 | 274.4 | 2.54∙1022 | 3.81∙1026 | 2.54∙1022 | 1.20∙109 | 1.05∙1015 |
| DH4096 | 283.8 | 1.76∙1025 | 2.64∙1029 | 1.76∙1025 | 8.36∙1011 | 7.33∙1017 |
| DH6144 | 299.0 | 6.77∙1029 | 1.01∙1034 | 6.77∙1029 | 3.21∙1016 | 2.82∙1022 |
| DH8192 | 2111.4 | 3.55∙1033 | 5.33∙1037 | 3.55∙1033 | 1.68∙1020 | 1.48∙1026 |
| brainpoolP256r1 | 2127.5 | 2.40∙1038 | 9.62∙1041 | 1 | 3.05∙1024 | 1.0∙1010 |
| brainpoolP384r1 | 2191.5 | 4.43∙1057 | 1.77∙1061 | 1 | 5.62∙1043 | 4.93∙1049 |
| brainpoolP521r1 | 2260.0 | 1.85∙1078 | 7.41∙1081 | 1 | 2.34∙1064 | 2.05∙1070 |
| NIST P-256 | 2127.5 | 2.40∙1038 | 9.62∙1041 | 1 | 3.05∙1024 | 1.0∙1010 |
| NIST P-384 | 2191.5 | 4.43∙1057 | 1.77∙1061 | 1 | 5.62∙1043 | 4.93∙1049 |
| NIST P-521 | 2260.0 | 1.85∙1078 | 7.41∙1081 | 1 | 2.34∙1064 | 2.05∙1070 |
| Curve25519 | 2126.0 | 8.50∙1037 | 3.40∙1041 | 1 | 1.07∙1024 | 9.45∙1029 |
| Curve448 | 2222.5 | 9.35∙1066 | 3.81∙1070 | 1 | 1.20∙1053 | 1.05∙1059 |
Opět, jedná se o ideální podmínky. V případě útoků na DH a DSA bude realita bude extrémně odlišná. Paměť je zde opět úzké místo, proto bude přístup k datům v průběhu výpočtu omezen rychlostí úložišť. Jedná se o prodloužení výpočtu v řádu 103 pro NVMe disky, 104 pro SSD disky a 107 pro HDD (magnetické disky). Přitom paměť v řádu TB je potřeba už pro samotné 512b číslo. Samotné paměti mají spotřebu, která odpovídá dalším cca 100 W na 1,5 TB. To odpovídá drobnému zvýšení příkonu na desetinných místech. Dále, zvláště při analýze matice, která má opět obrovský rozsah, budou častým jevem cache miss. Protože se jedná o paměťově intenzivní operace, data se nevejdou do cache procesoru. Přístup k paměti bude díky tomu často pozastaven na zhruba 200 cykly, kdy nebude prováděn výpočet a dojde k opětovnému načtení paměti do cache. To znamená zpomalení o zhruba o 5 řádů (105 až 109 dle použitých technologií). V případě eliptických křivek je problémem pouze branch prediction, zpomalující výpočet až o tři řády (103).
Jak je vidět, z hlediska možností je útok na DSA1024, DSA2048, DH1024 a DH2048 v našich možnostech. V případě 1024b klíčů a menších se jedná o schopnosti dostupné i jednotlivcům, pro 2048b klíče pak schopnosti dostupné velkým společnostem nebo státním aktérům. Co se týká větších klíčů nebo v současnosti stále ještě používaných eliptických křivek, zde už není situace až tak jednoduchá. Otázkou opět je, jsme schopní takový útok provést i pro tyto algoritmy? Můžeme to vzít z několika hledisek:
Pokud budeme uvažovat čas a schopnost vyrobit dostatečné množství počítačů? Společnosti Intel a AMD za celou svou historii (můžeme uvažovat 50 let) vyrobili odhadem miliardy procesorů, tedy pohybujeme se v řádu 109. Protože první procesory měly po několik dekád jedno jádro a až po roce 2006 došlo k využívání více jader, je možné uvažovat 2,5 jádra na procesor. Uvažovaný dostupný výkon odpovídajícím způsobem sníží čas, ale v celkovém rozsahu tento výkon spíše odstraní drobný výkyv, způsobený problémy s dostupností velkých dat v cache procesoru.
Pokud budeme uvažovat čistě jenom čas, tak vesmír vznikl před 18 miliardami let. To odpovídá řádu 1010, tedy nejsme schopní takový výpočet provést dostatečně rychle. Výjimkou jsou zde algoritmy DSA a algoritmy DH do velikosti klíčů 3072b.
Pokud uvažujeme čistě jenom potřebný příkon, můžeme uvažovat následovně. Celá lidská civilizace měla v roce 2025 elektrický příkon okolo 30 000 TWh, tedy v řádu 1016 Wh. Slunce nám poskytuje zdroj s kapacitou s výkonem 1018 W (co přijímáme na zemském povrchu), takže pokud bychom chtěli zmrznout, můžeme uvedenou energii použít. V případě zapřažení celého slunce se bavíme o zdroji s výkonem 1026 W. Centrální černá díra naší galaxie pak dává 1029 W a celá galaxie potom zhruba 1037W. Je vidět, že ani tyto zdroje nejsou dostatečné.
Pokračování bude v části Útok pomocí kvantových počítačů (2.března 2026)
1. Úvodní ustanovení
1.1. Tyto všeobecné obchodní podmínky jsou, není-li ve smlouvě písemně dohodnuto jinak, nedílnou součástí všech smluv týkajících školení, pořádaných nebo poskytovaných školitelem, Jan Dušátko, IČ 434 797 66, DIČ 7208253041, se sídlem Pod Harfou 938/58, Praha 9, zapsané u Úřadu městské části Praha 9 (dále jen „školitel“).2. Vznik smlouvy přihlášením ke kurzu
2.1. Přihláškou se rozumí jednostranný úkon objednatele adresovaný školiteli prostřednictvím datové schránky s identifikací euxesuf, e-mailu na adresu register@cryptosession.cz nebo register@cryptosession.info, internetových stránek cryptosession.cz, cryptosession.info nebo kontaktním telefonem +420 602 427 840.3. Zánik smlouvy zrušením přihlášky
3.1. Přihláška může být objednatelem zrušena pomocí e-mailu, nebo pomocí datové schránky.4. Cena a platební podmínky
4.1. Odesláním přihlášky objednatel akceptuje smluvní cenu (dále jen účastnický poplatek) uvedenou u daného kurzu.5. Podmínky školení
5.1. Školitel je povinnen informovat objednatele 14 dní dopředu o místě a času školení, včetně termínu zahájení a ukončení denního programu.6. Reklamace
6.1. Pokud je účastník hrubě nespokojen s průběhem kurzu, je školitel o této informaci vyrozuměn.7. Autorská práva k poskytnutým materiálům
7.1. Školicí materiály poskytnuté školitelem v rámci konání školení splňují znaky autorského díla dle zákona č. 121/2000 Sb.8. Zodpovědnost
8.1. Školitel nepřebírá odpovědnost za nedostatky ve službách kterékoliv třetí strany, kterou využívá při školeních.9. Platnost podmínek
9.1 Tyto všeobecné obchodní podmínky jsou platné a účinné od 1. října 2024.Informace o sběru a zpravování osobních údajů
Zpracovatel Jan Dušátko (dále jen „Správce“), dle nařízení Evropského parlamentu a Rady (EU) č. 2016/679 o ochraně fyzických osob v souvislosti se zpracováním osobních údajů a o volném pohybu těchto údajů a o zrušení směrnice 95/46/ES (obecné nařízení o ochraně osobních údajů, dále jen „Nařízení“) zpracovává osobní údaje. Dále jsou rozepsané jednotlivé osobní údaje, které jsou součástí zpracování při konkrétních aktivitách u této webové prezentace a v rámci obchodního styku.Informace o záznamech přístupu na webovou prezentaci
Tento web nesbírá žádné cookies. Stránka nepoužívá ani žádné analytické scripty třetích stran (sociální sítě, cloud provideři). Z těchto důvodů je také nabízena volba pro zobrazení mapy formou odkazu, kde primárním zdrojem je OpenStreet a alternativy pak často používané Mapy společnosti Seznam, a.s., případně Google Maps společnosti Google LLC Inc. Využití jakéhokoliv z těchto zdrojů je zcela na libovůli uživatelů těchto stránek. Správce nenese odpovědnost za sběr dat realizovaný těmito společnostmi, neposkytuje jim data o uživatelích a na sběru dat nespolupracuje.Informace o kontaktování provozovatele stránek
Formulář pro kontaktování provozovatele stránek (správce) obsahuje následující osobní údaje: jméno, příjmení, e-mail. Tyto údaje jsou určeny jen a pouze pro tuto komunikaci, odpovídající oslovení uživatele a jsou udržovány po dobu nezbytnou k naplnění účelu, maximálně pak po dobu jednoho roku, pokud si uživatel neurčí jinak.Informace o objednávkovém formuláři
Pro případ zájmu o objednávku formulář obsahuje více údajů, tj. jméno, příjmení, e-mail a kontaktní údaje na organizaci. Tyto údaje jsou určeny jen a pouze pro tuto komunikaci, odpovídající oslovení uživatele a jsou udržovány po dobu jednoho roku, pokud si uživatel neurčí jinak. V případě, kdy na základě této objednávky dojde k uzavření obchodního vztahu, budou nadále správcem udržovány pouze informace vyžadované českými zákony na základě obchodních vztahů (název a adresa společnosti, číslo bankovního účtu, typ kurzu a jeho cena).Informace o dokumentu o absolovování kurzu
V rámci kurzu je vydán zpracovatelem dokument o absolovování kurzu. Tento dokument obsahuje následující údaje: jméno a příjmení studenta, název a datum absolovování kurzu a jméno zaměstnavatele. Uvedené informace se následně používají pro tvorbu lineárního stromu hashí (nemodifikovatelný záznam). Tato databáze obsahuje pouze informace o poskytnutých jménech a názvech společností, které mohou a a nemusí odpovídat realitě a je udržován zpracovatelem pro případné opětovné vystavení nebo ověření vydání dokumentu.Práva subjektu osobních údajů
Zákazník nebo návštěvník tohoto webu má možnost požádat o informace o zpracování osobních údajů, právo požadovat přístup k osobním údajům, případně právo požádat o opravu nebo výmaz veškerých dat, které by o něm byly vedeny. V případě výmazu tento požadavek není možné splnit pouze pokud se nejedná o data nezbytně nutná v rámci obchodního styku. Zákazník nebo návštěvník webu má dále právo na vysvětlení týkající se zpracování jeho osobních údajů, pokud tento zjistí nebo se domnívá, že zpracování je prováděno v rozporu s ochranou jeho soukromého a osobního života nebo v rozporu s platnými právními předpisy a právo požadovat odstranění takto vzniklého stavu a zajištění nápravy.