Jak bylo uvedeno, klasická kryptografie je vzhledem k možnostem počítačů
v této chvíli bezpečnou formou zabezpečení přenosu dat. Jak si ale s problémem
prolomení metody RSA poradí kvantový počítač? Má jednu velkou výhodu -
může totiž využít kvantového paralelismu. Algoritmus Petera Shora na
faktorizaci velkých celých čísel právě tuto vlastnost kvantových systémů
využívá. Na kvantovém počítači tento algoritmus běží v asymptotickém čase
, kde
je
počet bitů faktorizovaného čísla. Vidíme, že čas je omezen shora polynomem.
Místo, aby algoritmus hledal přímo jednotlivé součinitele,
je spíše založen na poznatku, že problém faktorizace čísel se dá převést na
problém hledání periody určité periodické funkce. Je-li dáno číslo
,
které chceme faktorizovat, je potřeba vytvořit periodickou funkci
Příklad: Řekněme, že chceme faktorizovat číslo 21 na součin jeho
prvočinitelů. Pokud je , pak si musíme zvolit
takové, že
. Odpovídající množina čísel
je
{2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20}. Z ní si náhodně zvolíme
například
. Nyní chceme zjistit periodu funkce
.
Vidíme, že funkční hodnoty pro celé
jsou
. To znamená,
že tato funkce má periodu 6. Tato perioda je sudá a nevrací triviální faktory
(Jestliže
, pak chceme ověřit, zda
.
To neplatí, protože
a
. Pokud by se tak stalo,
museli bychom zvolit jiné
.). Na závěr nalezneme faktory pomocí
a
. Všimněme si, že pro
algoritmus neuspěje, protože perioda
. Zajímá nás tedy, zda
a vidíme, že
.
Nyní nám zbývá jediný problém - jak vypočítat efektivně
periodu dané funkce. Tento problém není klasicky řešitelný v polynomiálním
čase. Shor ale ukázal, že na kvantovém počítači periodu efektivně nalézt lze.
Toho dosáhl využitím kvantového paralelismu.
Připravme si kvantový registr, který bude mít 2 části nazvané
a
,
a jehož stav budeme zapisovat
.
krok 1: Zvolíme si náhodně , které je nesoudělné s
. Dále si vybereme
takové, že
.
krok 2: Připravíme kvantový registr do superpozice čísel
tak, že v
máme superpozici čísel 0 až
, a v
samé nuly. Registr
tak přejde do stavu
|
Zdá se, že k odhadu periody z těchto stavů bylo by potřeba první tři kroky několikrát opakovat ke změření několika hodnot. Bohužel to není možné v důsledku různého počátečního offsetu periody u každého výsledku měření. Tento offset nám neumožňuje mít při opakovaných měřeních jistotu, že dosáhneme stejného výsledku a budeme moci periodu určit jednoznačně. To proto, že pravděpodobnosti změření všech 6 výsledků jsou (přibližně10) stejné. Aby bylo možné periodu správně určit, je zapotřebí ji nějakým způsobem zvýraznit tak, aby nebyla závislá na počátečním offsetu.
krok 5: Proto nyní provedeme kvantovou Fourierovu transformaci na
a výsledek vrátíme tamtéž.
krok 6: Nyní registr změříme s výsledkem .
Abychom byli schopni určit periodu, je nutné
kroky 2 - 6 opakovat do chvíle, než máme k dispozici dostatek vzorků, které jsou
s velkou pravděpodobností v okolí různých násobků převrácené periody a které
jednoznačně umožňují určit periodu. Pokud tyto násobky označíme
, pak
je nějakým násobkem
výrazu
, tj.
.
Po úpravě dostaneme
, pro
.
Odhad, jaký násobek
byl naměřen, se provádí rozvojem
do
řetězcového zlomku.
krok 7: Když je známa hodnota , jsou již klasicky Eucleidovým
algoritmem vypočteny největší společné dělitele
a
.
Protože je tento algoritmus pravděpodobnostní povahy, není zaručeno, že
na konci dostaneme dva užitečné faktory, které nás zajímají. Například
špatná volba v prvním bodě algoritmu může vést k dosažení triviálních
řešení rovnice
Vidíme, že Shorův algoritmus je vlastně kombinací dvou metod. Jednak hledání
periody funkce
na kvantovém počítači, a jednak hledání největších
společných dělitelů dvou čísel na klasickém počítači. Běžící časy obou metod se
asymptoticky sčítají pouze na polynomiální složitost. Je možné zhruba odhadnout,
že pokud je složitost řádu
, pak například faktorizace 768 bitového
čísla by při délce jednoho výpočetního kroku kolem 100 cyklů trvalo na 100 MHz
kvantovém počítači řádově jednotky sekund. Je jasné, že pokud by se podařilo
takový algoritmus použít na skutečném kvantovém počítači,
dostali bychom do rukou nástroj na prolamování většiny dnes používaných
kryptoschémat. Není divu, že se již několik let o postup ve vývoji kvantových
počítačů zajímají instituce, jejichž bezpečnostní systémy jsou založeny na
složitosti problémů, jako je faktorizace.
O tom, v jakém stádiu se vývoj kvantových počítačů nachází a o tom, jaké
překážky klade vědcům vlastní implementace kvantového počítače se
zmíníme v závěrečné kapitole. Nyní si ale představme, že žijeme v době, kdy
již není kvantový počítač jen na papíře a uvědomme si, jak by se asi
změnila kryptografie jakou známe s existencí kvantových počítačů. Běžně
by bylo možné výše popsaná kryptoschémata prolomit. Pak by nám nezbývalo nic
jiného, než se pokusit kvantových systémů využít k vytvoření nových bezpečných
komunikačních schémat, která by byla schopná vzdorovat pokusům o jejich
prolomení. Proto zvládnutí kvantové mechaniky pro řešení problémů
faktorizace neznamená konec kryptografie. Pouze to určitým způsobem mění
podstatu používaných mechanizmů. S jedním z nich se seznámíme dále.