Algoritmo di Shor

In aritmetica modulare e Quantum Computing , l'algoritmo di Shor è un quantum algoritmo progettato da Peter Shor nel 1994, che i fattori di un numero intero naturale N in O tempo e nello spazio .

Molti sistemi crittografici a chiave pubblica , come RSA , diventerebbero vulnerabili se l'algoritmo di Shor fosse mai implementato in un pratico computer quantistico . Un messaggio crittografato con RSA può essere decrittografato prendendo in considerazione la sua chiave pubblica N , che è il prodotto di due numeri primi . Allo stato attuale delle conoscenze, non esiste un algoritmo classico in grado di farlo in tempo per qualsiasi k , quindi, gli algoritmi classici noti diventano rapidamente poco pratici quando N aumenta, a differenza dell'algoritmo di Shor che può rompere l'RSA in tempo polinomiale. È stato anche esteso per attaccare molti altri sistemi crittografici a chiave pubblica.

Come la maggior parte degli algoritmi del computer quantistico, l'algoritmo di Shor è probabilistico: fornisce la risposta corretta con alta probabilità e la probabilità di fallimento può essere ridotta ripetendo l'algoritmo.

L'algoritmo di Shor è stato utilizzato nel 2001 da un gruppo dell'IBM , che ha scomposto 15 in 3 e 5, utilizzando un calcolatore quantistico a 7 qubit .

Procedura

Sia N un numero naturale dato. L'algoritmo di Shor è quello di trovare un'intera pagina tra 2 e divide N .

Consiste di due elementi:

  1. Una riduzione del problema di fattorizzazione in un problema di ricerca dell'ordine , che può essere eseguita su un computer classico.
  2. Un algoritmo quantistico per risolvere il problema della ricerca dell'ordine.

Parte classica

  1. Prendi un numero pseudocasuale a < N
  2. Calcola MCD ( a , N ). Questo può essere fatto usando l'algoritmo di Euclide .
  3. Se MCD ( a , N ) ≠ 1, allora è un fattore non banale di N , che fornisce una soluzione al problema.
  4. Altrimenti, usa la subroutine Trova periodo (sotto) per trovare r , il periodo della funzione , cioè il più piccolo intero r per cui .
  5. Se r è dispari , torna al passaggio 1.
  6. Se un r / 2 ≡ −1 (mod N ), torna al passaggio 1.
  7. I fattori di N sono MCD (a r / 2 ± 1, N ), che risolve il problema.

Parte quantistica: subroutine di ricerca del periodo

  1. Inizia con i registri di input e output di ogni registro 2 N qubit e inizializzali per: dove x va da 0 a N - 1.
  2. Costruisci f ( x ) come una funzione quantistica e applicala allo stato precedente, per ottenere
  3. Applicare la trasformata quantistica di Fourier al registro di ingresso. La trasformata quantistica di Fourier su N punti è definita da: Che dà il seguente stato:
  4. Prendi una misura. Ciò fornisce un certo valore y nel registro di ingresso e nel registro di uscita. Poiché f è periodico, la probabilità di misurare un certo y è data da Il calcolo mostra che questa probabilità è maggiore quando yr / N è vicino a un numero intero.
  5. Metti y / N in forma irriducibile ed estrai il denominatore r ′, che è un candidato per r .
  6. Controlla se f ( x ) = f ( x + r ′). Se è così, è finita.
  7. Altrimenti, ottieni più candidati per r utilizzando valori vicini a y o multipli di r ′. Se un altro candidato cammina, è finita.
  8. Altrimenti, torna al passaggio 1 della routine.

Spiegazione dell'algoritmo

L'algoritmo è composto da due parti. La prima parte trasforma il problema della fattorizzazione in un problema di trovare il periodo di una funzione e può essere implementata in modo classico. La seconda parte trova il periodo utilizzando la trasformata quantistica di Fourier ed è responsabile dell'accelerazione quantistica.

Ottieni fattori dal periodo

Gli interi minori di N e primi con N formano un gruppo finito dotato della moltiplicazione modulo N , che è tipicamente denotata ( Z / N Z ) × . La fine del passaggio 3 rende possibile determinare un intero a in questo gruppo. Poiché il gruppo è finito, a ha (secondo il teorema di Eulero ) un ordine finito r , definito come il più piccolo intero positivo tale che

Pertanto, N | ( a r - 1). Supponiamo che sia possibile determinare r , e che sia pari . Allora

, da dove

r è il più piccolo numero intero positivo tale che N divide ( a r - 1), quindi N non può dividere ( a r / 2 - 1). Se anche N non divide ( a r / 2 + 1), allora N deve avere un fattore comune non banale con ciascuno di ( a r / 2 - 1) e ( a r / 2 + 1).

Dimostrazione: denotano ( un r / 2 - 1) e ( a r / 2 + 1) u e v rispettivamente. N | uv , quindi kN = uv per un numero intero k . Supponiamo che MCD ( u , N ) = 1; quindi mu + nN = 1 per alcuni numeri interi m e n ( identità di Bézout ). Moltiplicando su entrambi i lati per v , troviamo che mkN + nvN = v , quindi N | v . Per contraddizione, MCD ( u , N ) ≠ 1. Con un argomento simile, MCD ( v , N ) ≠ 1.

Ciò fornisce una fattorizzazione N . Se N è il prodotto di due numeri primi, è l' unica possibile fattorizzazione.

Trova il periodo

L'algoritmo di ricerca del periodo di Shor è fortemente correlato alla capacità di un computer quantistico di trovarsi in molti stati contemporaneamente. I fisici chiamano questo comportamento una "  sovrapposizione  " di stati. Per calcolare il periodo di una funzione f , valutiamo la funzione in tutti i suoi punti contemporaneamente.

Eppure la fisica quantistica non ci consente di accedere direttamente a tutte le informazioni. Una misurazione fornirà solo uno di tutti i valori possibili mentre distruggerà tutti gli altri. Quindi dobbiamo trasformare attentamente la sovrapposizione in un altro stato che restituirà la risposta corretta con alta probabilità. Ciò è ottenuto dalla trasformata quantistica di Fourier .

Shor ha quindi dovuto risolvere tre problemi di "implementazione". Tutti loro sono state attuate "rapido", il che significa che possono essere realizzate con un numero di porte logiche quantistiche che è polinomiale in .

  1. Crea una sovrapposizione di stati. Questo può essere fatto applicando le porte Hadamard a tutti i qubit nel registro di input. Un altro approccio potrebbe essere quello di utilizzare la trasformata quantistica di Fourier (vedi sotto).
  2. Implementa la funzione f come trasformazione quantistica. Per ottenere ciò, Shor ha utilizzato l' elevazione al quadrato per la sua trasformazione a esponenziazione modulare.
  3. Esegui una trasformazione quantistica di Fourier. Utilizzando le porte UNControlled e le porte qubit a rotazione singola, Shor ha progettato un circuito per la trasformata quantistica di Fourier che utilizza solo porte.

Dopo tutte queste trasformazioni, una misurazione fornirà un'approssimazione del periodo r . Per semplificare, assicuriamoci che esista un y tale che yr / N sia un numero intero. Allora la probabilità di misurare y è 1. Per vedere questo, nota che quindi per tutti gli interi b . Pertanto, la somma che ci dà la probabilità di misurare y sarà N / r poiché b assume globalmente valori N / r e quindi la probabilità è 1 / r . Esiste r y tale che yr / N sia un numero intero quindi le probabilità sommano 1.

Nota: un altro modo per spiegare l'algoritmo di Shor è notare che è solo l' algoritmo di stima della fase quantistica sotto mentite spoglie.

Note e riferimenti

(fr) Questo articolo è parzialmente o interamente tratto dall'articolo di Wikipedia in inglese intitolato “  Algoritmo di Shor  ” ( vedi la lista degli autori ) .
  1. (in) Michael Ross, "  IBM's Test-Tube Quantum Computer Makes History  " su www-03.ibm.com ,19 dicembre 2001(accessibile il 1 ° agosto 2016 ) .

Appendici

Bibliografia

  • (en) Peter W. Shor, Algoritmi in tempo polinomiale per la fattorizzazione in fattori primi e logaritmi discreti su un computer quantistico . "  Quant-ph / 9508027  " , testo liberamente accessibile, su arXiv .
  • (en) Michael A. Nielsen e Isaac L. Chuang, Quantum Computation and Quantum Information , Cambridge University Press, 2000Un libro generalista sull'informatica quantistica

Articoli Correlati

link esterno

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">