Shorův algoritmus

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 22. června 2021; ověření vyžaduje 1 úpravu .

Shorův algoritmus  je algoritmus kvantové faktorizace (rozklad čísla na prvočinitele), který umožňuje rozložit číslo v čase pomocí logických qubitů .

Shorův algoritmus byl vyvinut Peterem Shorem v roce 1994 . O sedm let později, v roce 2001 , jeho výkon předvedla skupina specialistů IBM . Číslo 15 bylo faktorizováno 3 a 5 pomocí kvantového počítače se 7 qubity .

O algoritmu

Význam algoritmu spočívá v tom, že s jeho pomocí (při použití kvantového počítače s několika tisíci logickými qubity) je možné prolomit kryptografické systémy s veřejným klíčem . Například RSA používá veřejný klíč , který je součinem dvou velkých prvočísel. Jedním ze způsobů, jak prolomit šifru RSA, je najít faktory. Když jsou dostatečně velké, je to téměř nemožné pomocí známých klasických algoritmů . Nejznámější klasické deterministické osvědčené faktorizační algoritmy, jako je Shanksova metoda kvadratické formy a Pollard-Strassenův algoritmus , vyžadují čas objednávky. Také Shanksova metoda kvadratické formy může běžet v pořadí, pokud je Riemannova hypotéza pravdivá . Mezi pravděpodobnostními algoritmy je lídrem faktorizace speciální metoda číselného pole síta , která je schopna najít prvočíselného dělitele s pravděpodobností 1/2 v subexponenciálním čase. Shorův algoritmus je s využitím schopností kvantových počítačů schopen faktorizovat číslo nejen v polynomiálním čase, ale v době, která není o mnoho větší v čase násobení celých čísel (tedy téměř stejně rychle jako samotné šifrování). Implementace škálovatelného kvantového počítače tak ukončí většinu moderní kryptografické ochrany. Nejde jen o schéma RSA, které přímo spoléhá na složitosti faktorizace, ale také o další podobná schémata, která dokáže kvantový počítač rozlousknout podobným způsobem.

Shorův algoritmus má pravděpodobnostní charakter. První zdroj náhodnosti je zabudován do klasické pravděpodobnostní redukce faktorizace na nalezení periody nějaké funkce. Druhý zdroj pochází z potřeby pozorování kvantové paměti, která také dává náhodné výsledky [1] .

Jak funguje Shorův algoritmus

Základ Shorova algoritmu: schopnost informačních jednotek kvantových počítačů – qubitů – nabývat několika hodnot současně a být ve stavu „ kvantového zapletení “. Umožňuje tedy provádět výpočty v podmínkách hospodárnosti qubitů. Princip fungování Shorova algoritmu lze rozdělit na 2 části: první je klasická redukce faktorizace na nalezení periody určité funkce, druhou je kvantové zjištění periody této funkce. Nechat:

 - číslo, které chceme faktorizovat (nemělo by to být celočíselná mocnina lichého čísla);  - velikost použitého paměťového registru (nepočítám výpis). Bitová velikost této paměti je asi 2krát větší než velikost . Přesněji, ;  je náhodný parametr takový, že a (kde  je největší společný dělitel ).

Všimněte si, že , ,  jsou pevné. Shorův algoritmus používá standardní způsob redukce problému rozšíření na problém nalezení periody funkce pro náhodně vybrané číslo [2] .

Klasická část algoritmu

Minimální takové, že je modulo  pořadí

Pořadí je období funkce kde

Jestliže lze efektivně vypočítat jako funkci , pak lze najít jeho vlastního dělitele v čase ohraničeného polynomem z s pravděpodobností pro jakékoli pevné .

Předpokládejme, že za dané období je sudé a splňuje podmínku

Pak

 — vlastní dělitel Funkce je vyčíslitelná v polynomiálním čase.

Pravděpodobnost splnění této podmínky kde  je počet různých lichých prvočíselných dělitelů , tedy v tomto případě. Proto je pravděpodobné, že v pokusech bude nalezena dobrá hodnota. Nejdelší výpočet na jeden pokus je výpočet [3] [4] .

Kvantová část algoritmu

Pro implementaci kvantové části algoritmu je výpočetním obvodem kvantový registr a . Zpočátku se každý z nich skládá ze sady qubitů v nulovém booleovském stavu

Registr se používá k umístění argumentů funkce Registr (pomocný) se používá k umístění hodnot funkce s periodou , která se má vypočítat.

Kvantové počítání se skládá ze 4 kroků [5] :

to znamená, že mezi stavy obou registrů vzniká určitý vztah. kde amplituda Fourierovy transformace má tvar Ve dvourozměrné rovině odpovídá Fourierova transformace otočení souřadnicových os o 90°, což vede k transformaci měřítka na měřítko . Ve třetím kroku se provede Fourierova transformace na stavu prvního registru a ukáže se kde  je operátor identity na Hilbertově prostoru druhého registru .

V důsledku toho se ukazuje s pravděpodobností [6]

Zbytek běhu běží na klasickém počítači:

Stanovení periody funkce pomocí Fourierovy transformace je do jisté míry podobné měření konstant krystalové mřížky pomocí rentgenové nebo neutronové difrakce. Pro určení periody není nutné počítat všechny hodnoty. V tomto smyslu je problém podobný německému problému , ve kterém je důležité znát ne všechny hodnoty funkce, ale pouze některé její vlastnosti [6] .

Nalezení periody funkce v algoritmu

Nechť  je funkce s neznámou periodou

Pro určení periody jsou zapotřebí dva registry s velikostmi a qubity, které musí být zpočátku ve stavu

V první fázi se provede jednostranná superpozice všech bázových vektorů prvního registru pomocí operátoru v následujícím tvaru:

, kde a

Zde je použita Hadamardova pseudo- transformace . Aplikováním na aktuální stav dostaneme:

Měření druhého registru s výsledkem , kam vede stát

kde

Po změření stavu se první registr skládá pouze z bázových vektorů takové formy , že pro všechny má tedy diskrétní homogenní spektrum. Je nemožné přímo získat periodu nebo její násobek měřením prvního registru, protože zde  je náhodná veličina. Zde použijeme diskrétní Fourierovu transformaci formuláře

na registru, protože pravděpodobnost spektra v transformovaném stavu je neměnná s ohledem na posun (lze transformovat pouze fáze, nikoli absolutní hodnoty amplitud). kde a

If je násobkem , pak if je násobkem a jinak. I když to není mocnina 2, spektrum ukazuje jednotlivé vrcholy s tečkou, protože

Pro první registr se qubity používají, protože to zaručuje alespoň prvků v daném součtu, a tedy šířka píků bude řádově

Pokud nyní vypočítáme první registr, dostaneme hodnotu blízkou tomu, kde to může být zapsáno jako Toto se scvrkává na nalezení aproximace kde pro konkrétní číslo binárního bodu .K vyřešení tohoto problému se používají pokračující zlomky.

Vzhledem k tomu, že tvar racionálního čísla není jednoznačný, pak u jsou definovány tak, jako kdyby pravděpodobnost, že obě čísla a jsou prvočísla, je větší než proto, aby se pravděpodobnost úspěchu blížila jedné, stačí pouze pokusy [7] [5] .

Diskrétní logaritmus

Další matematický problém, diskrétní logaritmus , často používaný k vytvoření asymetrických kryptografických systémů, je také zranitelný vůči kvantovému algoritmu navrženému Shorem ve stejném článku [8] .

Viz také

Poznámky

  1. Beckman, Chari, Devabhaktuni a kol., 1996 .
  2. Valijev, 2004 , str. 86-92.
  3. 12 Feynman , 1986 .
  4. 12 Feynman , 1982 .
  5. 12 Shor , 1997 .
  6. 1 2 Valijev, 2004 , str. 81-92.
  7. Shor, 1994 .
  8. Shor P. Algorithms for Quantum Computation: Discrete Logarithms and Factoring  // Základy počítačové vědy, sborník z roku 1994. , 35. výroční sympozium o - IEEE , 1994. - S. 124–134. - ISBN 0-8186-6580-7 - doi:10.1109/SFCS.1994.365700

Literatura

Odkazy