Digitální a kvantové počítače, část 2

Porovnání digitálních a kvantových počítačů, část 2: Faktorizace

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.

Algoritmus RSA a 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.

M(n) \approx \left( 8 \bullet \exp\left( 3,4 \bullet n^{\frac{1}{3}} \bullet \left( \ln n \right)^{\frac{2}{3}} \right) \right)

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í:


  • AKS (Agrawal–Kayal–Saxena primality test, cyclotomic AKS test), který se z důvodu vysoké výpočetní náročnosti používá jenom u menších bitových rozsahů. Pro čísla nad 256b je tento test nepraktický. Výhodou je jeho deterministický výstup, test má složitostí přibližně O(n6)
  • Baillie-PSW je založen na testu Miller-Rabin a doplňkovém Lukasově testu. Nemá omezení rozsahu, jedná se o heuristický test se složitostí přibližně O(n log n log[log n]).
  • ECPP (Elliptic Curve Primality Proving/Elliptic Curve Primality testing) testy jsou založené na práci Shafi Goldwassera a jsou použitelné do rozsahu 105+1 bit. Jedná se opět o deterministický test se složitostí O(n4)
  • Miller-Rabin je pravděpodobnostní test, použitelný s klíči zhruba do velikosti 4kb. Problémem je pravděpodobnostní výstup, pro zajištění odpovídající průkaznosti je nutné realizovat vyšší desítky testů. Zpravidla se používá 40-100 průchodů, celková složitost algoritmu je O(kn log2n log[log n]) kde k je počet bází.


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ě:


M(n) \approx \left( 8 \bullet \exp\left( 3,4 \bullet n^{\frac{1}{3}} \bullet \left( \ln n \right)^{\frac{2}{3}} \right) \right)


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-bitSložitostFaktorizaceInstrukcíPaměť (B)Doba (roků)Energie (J)
512275.21.757∙10192.19∙10216.75∙10126.96∙1052.19∙1015
10242101.61.316∙10261.64∙10282.58∙10175.21∙10121.64∙1022
20482136.41.533∙10351.91∙10372.86∙10236.07∙10211.91∙1031
25402149.33.527∙10384.40∙10404.99∙10251.39∙10254.40∙1035
30722161.75.805∙10417.25∙10436.95∙10272.30∙10287.25∙1037
40962182.21.289∙10471.61∙10492.55∙10315.11∙10331.61∙1043
71682229.32.539∙10593.17∙10614.01∙10391.00∙10463.17∙1055
81922242.15.708∙10627.13∙10646.88∙10412.26∙10497.13∙1058
135502296.91.178∙10771.47∙10792.40∙10514.66∙10631.47∙1073
371002444.23.952∙101154.94∙101171.16∙10771.56∙101024.94∙10111
766082591.41.342∙101541.67∙101565.64∙101025.32∙101401.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:


  • 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 střed 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.
  • 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 výkonem 1017 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 je schopná poskytnout 1029 W a celá galaxie zhruba 1037 W. Je vidět, že ani tyto zdroje nejsou dostatečné.


Pokračování bude v části Algoritmy využívající problém diskrétního logaritmu

Reference:

  1. Sage Math script - Faktorizace RSA
    Zdroj: https://cryptosession.info/ke-stazeni
  2. A Tale of Two Sieves
    Zdroj: https://www.ams.org/
  3. On Polynomila Selection for the General Number Field Sieve
    Zdroj: https://www.ams.org/

Autor článku:

Jan Dušátko
Jan Dušátko

Jan Dušátko se počítačům a počítačové bezpečnosti věnuje již skoro čtvrt století. V oblasti kryptografie spolupracoval s předními odborníky např. s Vlastimilem Klímou, či Tomášem Rosou. V tuto chvíli pracuje jako bezpečnostní konzultant, jeho hlavní náplní jsou témata související s kryptografií, bezpečností, e-mailovou komunikací a linuxovými systémy.

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“).
1.2. Smluvními stranami ve všeobecných obchodních podmínkách jsou míněni školitel a objednatel, kdy objednatel může být zároveň zprostředkovatelem smluvního vztahu.
1.3. Záležitosti, které nejsou upravené těmito obchodními podmínkami, se řeší podle Občanského zákoníků, tj. zákon č. 89/2012 Sb.

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.
2.2. Odesláním přihlášky objednatel souhlasí s těmito všeobecnými podmínkami a prohlašuje, že se s nimi seznámil.
2.3. Přihláška se považuje za přijatou momentem potvrzení (stadnardně do 2 pracovních dní) školitelem nebo zprostředkovatelem. Toto potvrzení je zasláno do datové schránky nebo na kontaktní e-mail.
2.4. Standardní doba pro přihlášení je nejpozději 14 pracovních dní před konáním vzdělávací akce, pokud není uvedeno jinak. V případě fyzické nepodnikající osoby musí být objednávka alespoň 28 pracovních dní před konáním vzdělávací akce.
2.5. Na jednu přihláškou lze přihlásit i více než jednoho účastníka.
2.6. Pokud je více než 10 účastníků od jednoho objednatele, je možné se domluvit na školení v místě sídla zprostředkovatele nebo objednatele.
2.7. Přihlášky jsou přijímány a zpracovávány v pořadí, v jakém došly poskytovateli. Poskytovatel neprodleně informuje objednatele o všech skutečnostech. Těmi se míní naplnění kapacity, příliš nízký počet účastníků, nebo jiný závažný důvod, jako je nemoc lektora nebo zásah vyšší moci. Objednateli bude v tomto případě nabídnut nový termín, případně účast na jiné vzdělávací akci. V případě, že objednatel nebude s přesunutím či účastí na jiné nabídnuté vzdělávací akci souhlasit, poskytovatel mu vrátí účastnický poplatek. Nedostatečný účastníků je oznámen objednateli alespoň 14 dní před začátkem plánovaného termínu.
2.8. Smlouva mezi poskytovatelem a objednatelem vzniká odesláním potvrzení poskytovatelem objednateli.
2.9. Smlouvu lze změnit nebo zrušit pouze za splnění zákonných předpokladů a pouze písemně.

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.
3.2. Zákazník má právo stornovat svoji přihlášku na kurz 14 dní před konáním kurzu bez jakýchkoliv poplatků. Pokud se jedná o kratší dobu, dochází k následné změně. V intervalu 7-13 dní je účtován administrativní poplatek 10%, storno účasti v kratším intervalu než 7 dní pak poplatek 25%. V případě storna přihlášky nebo objednávky ze strany zákazníka je nabízena možnost účasti zákazníka v náhradním termínu bez dalšího poplatku. Právo na zrušení přihlášky zaniká realizací objednaného školení.
3.3. Při zrušení přihlášky školitelem náleží objednateli plná náhrada za neuskutečněnou akci.
3.4. Objednatel má právo žádat náhradní termín nebo náhradní školení. V takovém případě bude objednatel informován o všech otevřených kurzech. Náhradní termín si nelze vymáhat ani vynucovat, závisí na aktuální dostupnosti kurzu. Pokud má náhradní školení nižší cenu, objednatel doplatí rozdíl. Pokud má náhradní školení nižší cenu, školitel vrátí rozdíl cen školení objednateli.

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.
4.2. V případě více účastníků přihlášených jednou přihláškou je možná sleva.
4.3. Účastnický poplatek musí být uhrazen na bankovní účet společnosti vedený u Komerční banky č. 78-7768770207/0100. Při platbě je nutné uvést variabilní symbol, který je uveden na faktuře, odeslané objednateli školitelem.
4.4. Účastnický poplatek zahrnuje náklady poskytovatele včetně školicích materiálů. Poskytovatel je plátce DPH.
4.5. Účastnický poplatek je objednatel povinen uhradit do 14 pracovních dní od přijetí faktury, pokud nebylo samostatnou smlouvou uvedeno jinak.
4.6. Pokud se přihlášená osoba neúčastní školení a nedošlo k jiné domluvě, je její neúčast považována za storno příhlášku v intervalu kratším než 7 dní, tj. školiteli náleží odměna ve výši 25% z ceny kurzu. Přeplatek je vrácen do 14 dní na platební účet odesílatele, ze kterého byly prostředky odeslány. Platba na jiné číslo účtu není možná.
4.7. Nejdéle do 5 pracovních dní od začátku školení bude školitelem vystavena faktura, která bude dle dohody odeslána e-mailem nebo datovou schránkou.

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.
5.2. Pokud objednatel není studentem kurzu, je povinnen zajistit distribuci těchto informací koncovým účastníkům. Za nesplnění těchto podmínek školitel nenese odpovědnost.
5.2. Standardně školení probíhá v čase od 9:00 do 17:00 na předem určeném místě.
5.3. Školitel může být dle aktuálních podmínek k dispozici od 8:00 do 9:00 a následně od 17:00 do 18:00 pro dotazy účastníků.
5.4. Na konci školení je koncovým uživatelům předán certifikát o absolovování.
5.5. Na konci školení koncoví uživatelé vyhodnocují přístup lektora a mají se vyjádřit k ohodnocení jeho prezentace, způsobu přednesení a ohodnotit významn poskytnutých informací.

6. Reklamace

6.1. Pokud je účastník hrubě nespokojen s průběhem kurzu, je školitel o této informaci vyrozuměn.
6.2. Důvody nespokojenosti jsou ten samý den zapsány do protokolu ve dvou kopiích. Jedna je předána objednateli a jednu má školitel.
6.3. Vyjádření k reklamaci bude podáno e-mailem do dvou týdnů. Následně do jednoho týdne bude domluven způsob řešení.
6.4. Nespokojenost zákazníka může být důvodem k rozvázání další spolupráce, nebo finanční kompenzaci až do výše ceny školení po odečtení nákladů.

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.
7.2. Žádný ze školicích materiálů ani jeho část nesmí být bez předchozího písemného souhlasu školitele jakýmkoli způsobem dále zpracovávána, rozmnožována, rozšiřována nebo využívána k dalším prezentacím nebo školením.

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.
8.2. Školitel nepřebírá odpovědnost za zranění, škody a ztráty, vzniklé účastníkům vzdělávacích akcí, nebo které byly účastníky způsobeny. Takové náklady, způsobené uvedenými okolnostmi, ponese výhradně účastník vzdělávací akce.

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.
Přestože je sběr dat všudypřítomný, provoz tohoto webu si zakládá na právu na soukromí každého uživatele. Z uvedeného důvodu sběr informací o uživatelích probíhá v naprosto nezbytné míře a to jen v případě, kdy se uživatel rozhodne kontaktovat provozovatele. Jakýkoliv další sběr a zpracování dat považujeme za neetický.

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.
Logování přístupů probíhá pouze na úrovni systému, důvodem je identifikace případných technických nebo bezpečnostních problémů. Dalšími důvody jsou přehledové statistiky přístupů. V této oblasti se nesbírají ani nesledují žádné konkrétní údaje a všechny záznamy o přístupech jsou po třech měsících mazány.

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.
Zákazník/návštěvník tohoto webu dále může požadovat omezení zpracování nebo vznést námitku proti zpracování údajů a má právo kdykoliv písemně svůj souhlas se zpracováním osobních údajů odvolat, aniž by tím byla dotčena zákonnost jejich zpracování předcházející takovému odvolání. Pro tyto účel slouží kontaktní e-mail adresa support@cryptosession.cz
Zákazník/návštěvník má právo podat stížnost proti zpracování osobních údajů u dozorového úřadu, kterým je Úřad pro ochranu osobních údajů.