Shorin algoritmi on kvanttifaktorointialgoritmi (joka hajottaa luvun alkutekijöiksi), jonka avulla voit hajottaa luvun ajassa käyttämällä loogisia kubitteja .
Peter Shor kehitti Shorin algoritmin vuonna 1994 . Seitsemän vuotta myöhemmin, vuonna 2001 , ryhmä IBM :n asiantuntijoita osoitti sen suorituskyvyn . Luku 15 kerrottiin 3:lla ja 5:llä käyttämällä kvanttitietokonetta 7 qubitillä .
Algoritmin merkitys on siinä, että sen avulla (käytettäessä useiden tuhansien loogisten kubittien kvanttitietokonetta) on mahdollista murtaa julkisen avaimen salausjärjestelmät . Esimerkiksi RSA käyttää julkista avainta , joka on kahden suuren alkuluvun tulos. Yksi tapa rikkoa RSA-salaus on löytää tekijät. Riittävän suurilla se on lähes mahdotonta tehdä tunnetuilla klassisilla algoritmeilla . Tunnetuimmat klassiset deterministiset todistetut faktorointialgoritmit, kuten Shanksin neliömuotomenetelmä ja Pollard-Strassen-algoritmi vaativat järjestysaikaa. Myös Shanksin neliömuotomenetelmä voi toimia järjestysajassa, jos Riemannin hypoteesi on totta . Probabilistisista algoritmeista tekijöiden jakamisen johtajana on erityinen lukukenttäseulamenetelmä , joka pystyy löytämään alkujakajan todennäköisyydellä 1/2 subeksponentiaalisessa ajassa. Shorin algoritmi kvanttitietokoneiden kykyjä käyttäen pystyy jakamaan luvun. ei vain polynomiajassa, vaan ajassa, joka ei ole paljon suurempi kokonaisluvun kertolaskuaika (eli melkein yhtä nopea kuin itse salaus). Siten skaalautuvan kvanttitietokoneen käyttöönotto tekee lopun suurimmasta osasta nykyaikaista kryptografista suojausta. Tämä ei koske vain RSA-järjestelmää, joka perustuu suoraan tekijöiden jakamisen monimutkaisuuteen, vaan myös muista vastaavista järjestelmistä, joita kvanttitietokone voi murtaa samalla tavalla.
Shorin algoritmilla on todennäköisyyspohjainen luonne. Ensimmäinen satunnaisuuden lähde on rakennettu klassiseen todennäköisyyteen perustuvaan faktorisoinnin pelkistykseen jonkin funktion periodin löytämiseksi. Toinen lähde tulee tarpeesta tarkkailla kvanttimuistia, joka antaa myös satunnaisia tuloksia [1] .
Shorin algoritmin perusta: kvanttitietokoneiden tietoyksiköiden - kubittien - kyky ottaa useita arvoja samanaikaisesti ja olla " kvanttikietoutumisessa ". Siksi se mahdollistaa laskelmien suorittamisen kubittien taloudellisuuden olosuhteissa. Shor-algoritmin toimintaperiaate voidaan jakaa kahteen osaan: ensimmäinen on klassinen faktorisoinnin pelkistys tietyn funktion periodin löytämiseksi, toinen on tämän funktion jakson kvanttilöytö. Päästää:
- luku, jonka haluamme kertoa (se ei saa olla parittoman luvun kokonaislukupotenssi); - käytetyn muistirekisterin koko (lukuun ottamatta dumppia). Tämän muistin bittikoko on noin 2 kertaa suurempi kuin . Tarkemmin sanottuna ; on satunnaisparametri siten, että ja (missä on suurin yhteinen jakaja ).Huomaa, että , , ovat kiinteät. Shorin algoritmi käyttää tavanomaista tapaa pelkistää laajennusongelma ongelmaksi löytää funktion jakso satunnaisesti valitulle luvulle [2] .
Minimi , joka on modulo - järjestys
Järjestys on funktion jakso jossa
Jos voidaan laskea tehokkaasti funktiona , niin voidaan löytää oma jakaja ajassa, jota rajoittaa polynomi : n todennäköisyydellä mille tahansa kiinteälle .
Oletetaan, että tietylle ajanjaksolle on tasainen ja täyttää ehdon
Sitten
— oma jakaja Funktio on laskettavissa polynomiajassa.Tämän ehdon täyttymisen todennäköisyys missä on erilaisten parittomien alkujakajien määrä , siis tässä tapauksessa. Siksi hyvä arvo löytyy todennäköisesti yrityksissä. Pisin laskenta yhdellä yrityksellä on laskutoimitus [3] [4] .
Algoritmin kvanttiosan toteuttamiseksi laskentapiiri on kvanttirekisteri ja . Aluksi jokainen niistä koostuu joukosta kubitteja nollassa loogisessa tilassa
Rekisteriä käytetään funktion argumenttien sijoittamiseen Rekisteriä (apu) käytetään sijoittamaan funktion arvot laskettavalla jaksolla .
Kvanttilaskenta koostuu 4 vaiheesta [5] :
Tämän seurauksena se osoittautuu todennäköisyydellä [6]
Loput ajosta suoritetaan perinteisellä tietokoneella:
Jossain määrin funktion jakson määrittäminen Fourier-muunnoksen avulla on samanlaista kuin kidehilavakioiden mittaaminen röntgen- tai neutronidiffraktiolla. Jakson määrittämiseksi ei tarvitse laskea kaikkia arvoja. Tässä mielessä ongelma on samanlainen kuin Deutsch - tehtävä, jossa ei ole tärkeää tietää kaikkia funktion arvoja, vaan vain osa sen arvoista. ominaisuudet [6] .
Antaa olla funktio, jonka jakso on tuntematon
Jakson määrittämiseksi tarvitaan kaksi rekisteriä, joissa on koot ja kubitit, joiden on aluksi oltava tilassa
Ensimmäisessä vaiheessa suoritetaan ensimmäisen rekisterin kaikkien kantavektoreiden yksipuolinen superpositio käyttämällä seuraavan muotoista operaattoria:
, missä jaTässä käytetään Hadamardin pseudomuunnosa . Nykyiseen tilaan sovellettaessa saamme:
Toisen rekisterin mittaaminen tuloksella mihin johtaa tilan
missäTilan mittauksen jälkeen ensimmäinen rekisteri koostuu vain kantavektoreista, joiden muoto on sellainen, että sillä on siis diskreetti homogeeninen spektri. Pistettä tai sen kerrannaista on mahdotonta saada suoraan mittaamalla ensimmäistä rekisteriä, koska tässä on satunnaismuuttuja. Tässä käytetään muodon diskreettiä Fourier-muunnosta
rekisterissä, koska spektrin todennäköisyys muunnetussa tilassa on muuttumaton siirtymän suhteen (vain vaiheet voidaan muuntaa, ei amplitudien absoluuttisia arvoja). missä jaJos on monikerta , niin jos on monikerta ja muuten. Vaikka ei potenssi 2, spektri näyttää yksittäisiä huippuja, joiden piste on koska
Ensimmäisessä rekisterissä käytetään kubitteja, kun koska tämä takaa vähintään alkiot annetussa summassa ja siten huippujen leveys on luokkaa
Jos nyt lasketaan ensimmäinen rekisteri, saadaan arvo, joka on lähellä kohtaa Se voidaan kirjoittaa muodossa Tämä tiivistyy siihen, että löydetään likiarvo missä tietylle binääripisteen määrälle . Tämän ongelman ratkaisemiseksi käytetään jatkuvia murtolukuja.
Koska rationaaliluvun muoto ei ole yksiselitteinen, u määritellään ikään kuin todennäköisyys, että sekä luvut että ovat alkulukuja, on suurempi kuin siksi, jotta onnistumisen todennäköisyys olisi lähellä yhtä, tarvitaan vain yrityksiä [7] [5] .
Toinen matemaattinen ongelma, diskreetti logaritmi , jota usein käytetään luomaan epäsymmetrisiä salausjärjestelmiä, on myös haavoittuvainen Shorin samassa artikkelissa ehdottaman kvanttialgoritmin suhteen [8] .
Kvanttialgoritmit | |
---|---|
kvanttiinformatiikka | |||||||||
---|---|---|---|---|---|---|---|---|---|
Yleiset käsitteet |
| ||||||||
kvanttiviestintä |
| ||||||||
Kvanttialgoritmit |
| ||||||||
Kvanttikompleksiteoria |
| ||||||||
Kvanttilaskentamallit |
| ||||||||
Epäkoherenssin ehkäisy |
| ||||||||
Fyysiset toteutukset |
|