Shorův algoritmus

kvantový algoritmus pro faktorizaci čísel From Wikipedia, the free encyclopedia

Remove ads

Shorův algoritmus (čte se Šórův) je kvantový faktorizační algoritmus velmi efektivní při hledání dělitelů velkých čísel. Jedná se o jeden z vůbec nejdůležitějších algoritmů pro kvantové počítače, protože svou rychlostí významně převyšuje všechny dosud známé algoritmy pro klasické počítače.[1] V principu se jedná o implementaci Fermatova algoritmu, která je ale proti své klasické analogii významně urychlena použitím kvantové Fourierovy transformace (KFT).[2][3] Algoritmus byl vytvořen americkým matematikem Peterem Shorem roku 1994.[4]

Shorův objev spolu s Groverovým algoritmem ve své době předznamenaly obnovu zájmu o kvantové počítače[4], protože ukázaly výhodu kvantových počítačů na praktických problémech, které mají i širší použití. Zároveň se nejedná pouze o malou výhodu, protože Shorův algoritmus je (téměř) exponenciálně rychlejší, než nejrychlejší klasické algoritmy prosévání kvadratického tělesa a prosévání obecného tělesa. I malý funkční kvantový počítač by tak byl v této úloze schopen svou rychlostí překonat všechny stávající klasické počítače. Shorův algoritmus získává na kvantových počítačích výhodu díky možnosti použití KFT při řešení úzce souvisejícího problému diskrétního logaritmu.

Remove ads

Postup

Základem pro nalezení netriviálních dělitelů čísla je zde Fermatův algoritmus.[3] Ten spočívá v nalezení dvojice čísel , které v modulární aritmetice splňují vztah

,

ze kterého lze za použití vzorečku pro rozdíl dvou čtverců získat rozklad na násobek dvou čísel

.

Pokud takový výraz vede na netriviální dělitele , je přímo získán výsledek. Místo náhodného hledání dvojice čísel lze postup urychlit, pokud položíme .

Eulerova věta tvrdí, že pro libovolná dvě přirozená nesoudělná čísla lze najít celočíselný exponent , díky kterému je splněna rovnost . Pokud navíc najdeme sudé [pozn. 1], pak právě bylo nalezeno řešení, protože hledanou dvojicí čísel je právě když platí (v takovém případě bychom našli pouze triviální řešení ).[3] Lze ukázat, že pravděpodobnost nalezení vhodného je pro náhodné hodnoty vždy větší než [5], statisticky tak lze očekávat, že neúspěšných pokusů o náhodné nalezení vhodného může být jen několik.

V principu je asymptoticky nejsložitější částí celého postupu nalezení exponentu . To je právě obstaráno pomocí KFT, která stejně jako klasická Fourierova transformace hledá periodu v hodnotách , po které se chová periodicky. Přitom víme, že zde musí být periodickou funkcí, protože pro algoritmem hledané platí

.

Počáteční hodnoty jsou voleny libovolně. Bez předchozí znalosti úspěchu či neúspěchu nelze odhadnout, po kolika opakováních se Shorův algoritmus zastaví, dobu dokončení lze odhadnout pouze dle pravděpodobnosti, kvůli čemuž se Shorův algoritmus řadí mezi algoritmy typu Monte Carlo.

Jak je uvedeno výše, pokud je voleno náhodně, je pravděpodobnost, že pro toto existuje vhodné , větší než . Samotné nalezení ale také není zaručeno, protože KFT může pro jisté hodnoty neuspět (takových hodnot bývá většina). Celkově vychází, že úspěšnost faktorizace čísla při jednom spuštění KFT je .[3] Už po řádově několika stovkách spuštění je ale i s touto šancí pravděpodobné, že se faktorizuje číslo, které je délkou srovnatelné s moderními bezpečnostními klíči RSA.

Remove ads

Asymptotické chování

Algoritmus vykazuje polylogaritmickou asymptotickou složitost .[5] Pro velké celé číslo je tedy Shorův algoritmus schopný získat jeho prvočíselný rozklad v čase, který je proporční číslu .[pozn. 2] [6] Konkrétně je již jednou z existujících verzí dosaženo asymptotiky co se počtu logických operací týče.

Původ asymptotického chování Shorova algoritmu je následující: Pro náhodně vybrané a pevné se spustí Euklidův algoritmus, který spočte jejich největší společný dělitel. Pokud je větší než 1, pak byl získán jeden z dělitelů čísla . Pro výsledek roven 1 jsou nesoudělné a dále se pokračuje dle Fermatova algoritmu. Všechny potřebné algebraické operace i Euklidův algoritmus jsou asymptoticky náročné jako .[5]

Jediný problém nastává při hledání exponentu . Aby šlo spolehlivě určit periodu , je vyžadován počet hodnot alespoň .[5] Na tyto hodnoty se pak aplikuje rychlá Fourierova transformace. Náročnost takové operace je pak u klasických počítačů ,[pozn. 3] ale při použití kvantové verze KFT je náročnost . KFT je tak původcem celého zrychlení procesu.

Dodnes asymptoticky nejrychlejším klasickým faktorizačním algoritmem je prosévání obecného tělesa, jehož náročnost je .[5] Shorův algoritmus tak alespoň teoreticky při hledání dělitelů propůjčuje kvantovým počítačům významné urychlení oproti počítačům klasickým.

Remove ads

Důsledky pro kryptografii

Shorův algoritmus je velmi efektivní při hledání dělitelů velkých čísel, což přímo ohrožuje protokoly s veřejným klíčem, které mohou být prolomeny pomocí vhodného užití KFT, např. RSA nebo ECDSA. První jmenovaný systém přímo pracuje s dešifrováním informací na základě znalosti dělitele velkého čísla.[7] Druhý jmenovaný nepracuje na základě hledání dělitelů, ale závisí na hledání diskrétního logaritmu, což je problém svázaný s postupem využívaným v Shorově algoritmu.

Odkazy

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads