Shorin algoritmi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 22. kesäkuuta 2021 tarkistetusta versiosta . vahvistus vaatii 1 muokkauksen .

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ä .

Tietoja algoritmista

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] .

Kuinka Shorin algoritmi toimii

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] .

Algoritmin klassinen osa

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 kvanttiosa

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] :

eli molempien rekisterien tilojen välille muodostuu tietty suhde. jossa Fourier-muunnoksen amplitudilla on muoto Kaksiulotteisessa tasossa Fourier-muunnos vastaa koordinaattiakselien kiertoa 90°, mikä johtaa asteikon muuntamiseen asteikolla . Kolmannessa vaiheessa Fourier-muunnos suoritetaan ensimmäisen rekisterin tilaan, ja se selviää missä  on identiteettioperaattori toisen rekisterin Hilbert - avaruudessa .

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] .

Funktion jakson löytäminen algoritmista

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ä ja

Tä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ä ja

Jos 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] .

Diskreetti logaritmi

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] .

Katso myös

Muistiinpanot

  1. Beckman, Chari, Devabhaktuni et ai., 1996 .
  2. Valiev, 2004 , s. 86-92.
  3. 12 Feynman , 1986 .
  4. 12 Feynman , 1982 .
  5. 12 lyhyt , 1997 .
  6. 1 2 Valiev, 2004 , s. 81-92.
  7. Shor, 1994 .
  8. Shor P. Kvanttilaskennan algoritmit: Diskreetit logaritmit ja faktorointi  // Foundations of Computer Science, 1994 Proceedings . , 35th Annual Symposium on - IEEE , 1994. - S. 124–134. - ISBN 0-8186-6580-7 - doi:10.1109/SFCS.1994.365700

Kirjallisuus

Linkit