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 Úvodu se můžeme podívat na problém faktorizace.
Začneme problémem faktorizace. Nejlepší způsob, jak zaútočit na tento
algoritmus poskytuje takzvané GNFS (General Number Field Sieve – tedy
obecné celočíselné síto). To poskytuje seznam dvojic čísel. Pokud tato
čísla vzájemně vynásobíme, měli by jsme získat požadovaný součin.
Následně je potřeba uvedené číselné dvojice otestovat na jejich
prvočíselnost. Pokud chceme zjistit přibližný počet operací, potřebujeme
znát složitost vlastního GNFS algoritmu, kterou je možné dopočítat na
základě informací o délce n faktorizovaného čísla. Tuto délku
uvádíme v bitech.
Důležitou součástí je zjištění počtu číselných dvojic. Tento údaj je zpravidla v jednotkách dvojic,
výjimkou je situace, kdy by při generování z nějakého důvodu selhalo ověření prvočíselnosti. Tedy
tento údaj pracuje jako jakýsi indikátor. Uvedený indikátor na základě dalších testů může upozornit
například na nevhodnou volbou testovacího algoritmu. Tedy v ideálním případě získáme jeden jeden
výsledek, případně výsledků pět. Pokud jich je více než deset, pravděpodobně došlo někde k selhání
a je vhodné zkontrolovat celý mechanismus.
V jakémkoliv z těchto případů následuje test prvočíselnost předpokládaných dvojic. Protože je počet
testů nízký, nedochází k výrazné změně složitosti. Důležitá je ale správná volba testovacích
algoritmů. Z použitelných se jedná o následující:
Víme tedy, kolik je potřeba logických operací, ale jak uvedené převést na instrukce pro 64b CPU?
Na základě požadavků je potřeba vyřešit tvorbu matice (120 instrukcí na jeden krok) a následně
analýza obsahu matice (5 instrukcí na jeden krok). Poté se musí výsledky otestovat na prvočíselnost.
Tento výpočet platí pro čísla, která se vejdou do registrů procesoru. Jakmile jsou prvočísla
větší, začíná se výpočet komplikovat. Samozřejmě obdobným způsobem narůstá počet operací pro tvorbu
a nepatrně i pro analýzu matice. Z toho je možné přibližně určit celkový počet instrukcí.
Obdobným způsobem můžeme hledat i celkovou náročnost na paměť. Rozsah paměti potřebné pro
tvorbu GNFS matice je přibližně:
Na základě uvedených přibližných výpočtů máme odhady, které můžeme použít pro výpočty potřebného strojového času, k tomu vztaženému příkonu a objemu paměti potřebnému ke splnění zadaného úkolu. Úkolem bude faktorizace klíče s cílem zjistit, co je v silách jednotlivců, organizací nebo naší civilizace, případně co je zcela mimo naše možnosti. Pro vlastní výpočet budeme uvažovat hypotetický počítač s 10 jádry na frekvenci 1GHz, bez hyperthreadingu, příkon tohoto počítače bude ideálních 100 W. Na základě předchozích informací pak vychází:
| n-bit | Složitost | Faktorizace | Instrukcí | Paměť (B) | Doba (roků) | Energie (J) |
| 512 | 275.2 | 1.757∙1019 | 2.19∙1021 | 6.75∙1012 | 6.96∙105 | 2.19∙1015 |
| 1024 | 2101.6 | 1.316∙1026 | 1.64∙1028 | 2.58∙1017 | 5.21∙1012 | 1.64∙1022 |
| 2048 | 2136.4 | 1.533∙1035 | 1.91∙1037 | 2.86∙1023 | 6.07∙1021 | 1.91∙1031 |
| 2540 | 2149.3 | 3.527∙1038 | 4.40∙1040 | 4.99∙1025 | 1.39∙1025 | 4.40∙1035 |
| 3072 | 2161.7 | 5.805∙1041 | 7.25∙1043 | 6.95∙1027 | 2.30∙1028 | 7.25∙1037 |
| 4096 | 2182.2 | 1.289∙1047 | 1.61∙1049 | 2.55∙1031 | 5.11∙1033 | 1.61∙1043 |
| 7168 | 2229.3 | 2.539∙1059 | 3.17∙1061 | 4.01∙1039 | 1.00∙1046 | 3.17∙1055 |
| 8192 | 2242.1 | 5.708∙1062 | 7.13∙1064 | 6.88∙1041 | 2.26∙1049 | 7.13∙1058 |
| 13550 | 2296.9 | 1.178∙1077 | 1.47∙1079 | 2.40∙1051 | 4.66∙1063 | 1.47∙1073 |
| 37100 | 2444.2 | 3.952∙10115 | 4.94∙10117 | 1.16∙1077 | 1.56∙10102 | 4.94∙10111 |
| 76608 | 2591.4 | 1.342∙10154 | 1.67∙10156 | 5.64∙10102 | 5.32∙10140 | 1.67∙10150 |
Bohužel realita bude extrémně odlišná. Pokud nebude stačit paměť, bude přístup k datům v průběhu
výpočtu zpomalen z důvodu potřeby přístupu k úložišti dat. Jedná se o rozšíření v řádu 103
pro NVMe disky, 104 pro SSD disky a 107 pro HDD – točivé 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á obrovskou velikost, se data nevejdou do cache paměti procesoru. To vede
k takzvaným cache-miss, tedy jedná se o paměťově intenzivní operace. Jenže jakýkoliv takový přístup
potřebuje znovu načíst obsah paměti do cache, spolu s problémy s predikcí skoků v kódu (branch
prediction) to bude znamenat ztrátu zhruba 200 cyklů. V tuto dobu nebudou prováděny žádné výpočty.
Celkově tak může dojít ke zpomalení o zhruba o 5 řádů (105 až 109
dle použitých technologií).
Jsme schopní takový útok provést? Můžeme to vzít z několika hledisek:
Pokračování bude v části Algoritmy využívající problém diskrétního logaritmu
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.