-
Před 2000 lety Eukleides dokázal,
-
že každé číslo má jedinečný
prvočíselný rozklad,
-
který si můžeme představit
jako tajný klíč.
-
Ukazuje se, že prvočíselný rozklad
je složitý problém.
-
Vyjasníme si, co myslíme pojmy
"snadný" a "složitý"
-
pomocí tzv. časové složitosti algoritmu.
-
Všichni umíme násobit čísla
-
a každý z nás pro urychlení
používá svůj vlastní postup.
-
Pokud naprogramujeme počítač,
aby násobil čísla,
-
tak to může provádět
mnohem rychleji než člověk.
-
Zde je graf, který ukazuje kolik času potřebuje
počítač, aby vypočetl násobek dvou čísel.
-
Potřebný čas pro získání výsledku
se zvyšuje s rostoucími čísly.
-
Všimněte si, že čas pro výpočet se drží
pod 1s i s poměrně vysokými čísly.
-
Proto je snadné provádět násobení.
-
Teď to porovnejte
s prvočíselným rozkladem.
-
Pokud by vám někdo řekl,
abyste našli prvočíselný rozklad čísla 589,
-
tak si hned všimnete,
že se příklad zdá být těžší.
-
Bez ohledu na vaši strategii to bude
vyžadovat použití metody pokus-omyl,
-
dokud nenajdete číslo,
kterým lze 589 dělit.
-
Až s tím dozápasíte, tak zjistíte,
že prvočíselný rozklad je (19 krát 31).
-
Pokud byste měli najít
prvočíselný rozklad čísla 437231,
-
tak byste to pravděpodobně
vzdali a vzali si na pomoc počítač.
-
Tohle funguje dobře pro malá čísla,
-
ale pokud zkusíme rozkládat větší čísla,
tak výsledek nebude spočítán "v rozumném čase".
-
Čas potřebný k výpočtu rapidně
roste s přírůstkem potřebných kroků.
-
A jak čísla rostou, tak počítač
potřebuje minuty a pak i hodiny.
-
Nakonec bude potřebovat stovky nebo tisíce let
pro prvočíselný rozklad obrovských čísel.
-
Proto říkáme, že je to těžký problém.
Kvůli nárůstu času potřebného k řešení.
-
Takže prvočíselný rozklad je to, co Cocks použil
pro vytvoření řešení se zadními vrátky.
-
Krok 1:
-
Alice náhodně vygeneruje prvočíslo
přes 150 číslic dlouhé. Nazveme ho P1.
-
Potom vygeneruje druhé náhodné prvočíslo
o zhruba stejné velikosti. Říkejme mu P2.
-
Pak vynásobí tyto dvě prvočísla,
-
aby dostala složené číslo N,
které má více než 300 číslic.
-
Tento krok s násobením
zabere méně než sekundu.
-
Zvládli byste to provést dokonce
i ve svém webovém prohlížeči.
-
Potom vezme prvočíselný rozklad N,
(P1 krát P2), a schová ho.
-
I kdyby se teď N dostalo
ke komukoliv jinému,
-
tak by mu trvalo roky, než by na počítači
nalezl prvočíslený rozklad N.
-
Krok 2:
-
Cocks potřeboval nalézt funkci, která závisí
na znalosti prvočíselného rozkladu N.
-
Kvůli tomu se podíval
do práce z roku 1760,
-
jejímž autorem byl švýcarský
matematik Leonhard Euler.