1. Ana sayfa
  2. Algoritmalar
  3. Shor ve periyot
  4. Shor algoritması · Qiskit
Çarpanlara ayırma · Qiskit

Shor algoritması

Büyük tamsayıları asal çarpanlarına ayırma, klasik dünyada fiilen güvenlik omurgasıdır (RSA). Shor’un fikri çarpanlara ayırmayı periyot bulmaya indirgemek ve bunu kuantum paralelliği ile görmektir.

  • 1994 · Peter Shor
  • İndirgeme: çarpanlama → periyot
  • Motor: modüler üs + QPE + IQFT
  • Örnek: N = 15 N=15 , a = 7 a=7 , r = 4 r=4

Shor algoritması nedir?

Teorik derinlik · neden tarihî?

Shor algoritması, tamsayıları asal çarpanlarına ayırmak için 1994’te Peter Shor tarafından önerilmiştir. Klasik dünyada bu problem o kadar zordur ki bankacılık ve veri iletiminde RSA gibi sistemler bu zorluğa güvenir.

Algoritmanın “sihri”, doğrudan çarpan aramak yerine yapıyı periyot diline çevirmesidir; kuantum tarafı da bu periyodu bir girişim/faz deseni olarak ortaya çıkarır.

Matematiksel indirgeme

Çarpanlama → periyot bulma

Shor’un kalbi, çarpanlara ayırma problemini şu fonksiyonun periyodunu bulmaya indirgemektir: f ( x ) = a x m o d N f(x)=a^x \bmod N .

  • Klasik adım

    N N (çarpanlarına ayrılacak sayı) ile aralarında asal rastgele bir a a seçilir. Kötü seçimlerde algoritma yeniden denenir.

  • Kuantum adım

    f ( x ) = a x ( m o d N ) f(x)=a^x \pmod N fonksiyonunun periyodu r r bulunur (kuantum motor + klasik son işleme).

  • Sonuç (olasılıksal)

    Bulunan r r çift ise ve bazı ek şartlar sağlanırsa, gcd ( a r / 2 ± 1 , N ) \gcd(a^{r/2}\pm 1, N) çoğu zaman N N ’in doğrudan olmayan çarpanını verir.

Örnek tutarlılığı N = 15 N=15 , a = 7 a=7 için periyot r = 4 r=4 bulunabilir; gcd ( 7 2 ± 1 , 15 ) \gcd(7^2\pm 1,15) ile 3 3 ve 5 5 çıkar. Bu örnek eğitimde sık kullanılır çünkü sayılar küçük ama yapı tipiktir.

Mimari yapı: kuantum motorlarının birleşimi

Shor devresi, sitede işlediğimiz birçok ileri tekniğin bir araya geldiği bir “zirve” örneğidir. Üç blok özellikle öne çıkar.

  • Modüler üs alma

    x x süperpozisyonundayken a x m o d N a^x \bmod N sonucunu üreten ünite; devrenin en ağır, Oracle-benzeri parçasıdır ve N N ile a a ’ya özel tasarlanır.

  • Kuantum faz tahmini (QPE)

    Modüler üs operatörünün içindeki periyot/faz bilgisini precision register’a taşır.

  • Ters QFT (IQFT)

    Faz bilgisini klasik bilgisayarın işleyebileceği bir tamsayı tahminine (periyot ipucuna) dönüştürür.

Klasik bilgisayar her x x için f ( x ) f(x) ’i tek tek hesaplarken periyot arar; Shor ise x x değerlerini süperpozisyonda “tokatlayarak” periyodu bir girişim deseni olarak görünür kılar.

QPE ile bağlantı

Dev bir faz ölçümü sezgisi

Kuantum faz tahmini (QPE) sayfasını okuduysanız, Shor’un özünde yine “üniterin fazını okuyup klasik bitlere çevirme” döngüsünün döndüğünü fark edeceksiniz.

Fark, üniterin kendisidir: burada ünite modüler üs almayı temsil eder ve okunan faz/rasyonel yaklaşımı, sürekli kesirler (continued fractions) ile periyot ve çarpanlara bağlanır.

Qiskit kod iskeleti

Aşağıdaki kod eğitim amaçlı iskelettir: precision Hadamard’ları, modüler üs yer tutucusu ve IQFT gösterir. Gerçek Shor uygulamasında modüler üs bloğu N N ve a a ’ya göre üretilir ve kübit sayısı çok daha büyür.

shor_period_skeleton_qiskit.py Python
from qiskit import QuantumCircuit
from qiskit.circuit.library import QFT
from qiskit_aer import AerSimulator
import numpy as np

def shor_period_finding(n, a):
    # n: Sayıyı temsil eden kübitler,
    # a: Seçilen rastgele sayı (ör. a=7)

    # 2n kübit hassasiyet (toplamda genellikle 3n+ kübit gerekir)
    # Basitleştirilmiş bir gösterim:
    qc = QuantumCircuit(4 + 8, 8)

    # 1. Hazırlık
    qc.h(range(8))  # Precision register
    qc.x(8)         # State register başlangıcı |1>
    qc.barrier()

    # 2. Modüler Üs Alma (U^2^j)
    # Bu kısım her a ve N değerine özel kapı tasarımları gerektirir
    # Örnek: qc.append(modular_exp_gate, ...)

    # 3. Ters QFT
    qc.append(QFT(8).inverse(), range(8))

    # 4. Ölçüm
    qc.measure(range(8), range(8))
    return qc

# N=15, a=7 için simülasyonun mantığı
# r=4 bulunması beklenir. gcd(7^(4/2) ± 1, 15) -> 3 ve 5 çarpanlarını verir.
Gerçekçi devre: modüler üs + kübit bütçesi bu iskeletten çok daha büyüktür. Qiskit · AerSimulator hazır

Kod analizi

İskeletin rolü

QuantumCircuit boyutu · neden 4+8?

Örnekte 8 kübit precision, 4 kübit ise state tarafı için yer tutucudur — gerçek bir N N için hem precision hem modüler aritmetik genişler; “ 2 n 2n precision” ve “toplamda O ( n ) \mathcal{O}(n) kübit” tartışması teorik düzeydedir.

qc.h(range(8))

Üst register’a Hadamard, QPE’nin başlangıç süperpozisyonunu kurar: faz bilgisini hangi kombinasyonların taşıyacağı burada belirlenir.

qc.x(8)

Modüler çarpan için uygun üniterin özvektör hazırlığı genelde 1 |1\rangle ile başlar; tam devrede register yerleşimi ve endianness Qiskit ölçüm eşlemesiyle birlikte düşünülür.

Modüler üs bloğu (yorum)

Gerçek kodda burada kontrollü a 2 j m o d N a^{2^j}\bmod N uygulamaları gelir; bu, devrenin kalori ve derinliğinin kaynağıdır. Ortak kitaplık kapısı yerine çoğu zaman özel sentez gerekir.

QFT(8).inverse()

IQFT, precision’daki fazı bit desenine çevirir — Shor’da “periyot ipucu”nun klasik tarafa sızdığı adım.

Ölçüm ve klasik devam

Ölçülen bitlerden rasyonel yaklaşım + sürekli kesirler ile r r tahmini yapılır; ardından gcd \gcd adımı klasik çalışır. Bu yüzden Shor da Simon gibi hibrittir.

Devre ve doğrulama

Şema, Shor’un “periyot bulma” çekirdeğini blok düzeyinde özetler: precision hazırlığı, modüler üs (Oracle-benzeri), IQFT ve ölçüm. Gerçek modüler üs içi kapılar özetlenmez.

Shor periyot iskelesi · blok diyagram H → modüler üs → IQFT → ölçüm
p0… state precision a^x mod N H H H modüler üs alma kontrollü U^(2^j) · U|x⟩ = |ax mod N⟩ IQFT faz → bit M M M

Şemayı adım adım oku

  1. Precision kübitleri süperpozisyona alınır; QPE’nin “ölçüm alanı” hazırlanır.

  2. Modüler üs bloğu, üniteyi kontrollü kuvvetlerle uygular; periyot bilgisi fazda kodlanır (Oracle-benzeri en ağır kısım).

  3. IQFT, fazı klasik olarak işlenebilir bit kalıbına çevirir.

  4. Klasik sürekli kesirler ve gcd \gcd ile çarpan adayları çıkarılır; başarısızlıkta a a yeniden seçilir.

Doğrulama

Örnek: N = 15 N=15 , a = 7 a=7 r = 4 r=4 beklenir; gcd ( 7 2 ± 1 , 15 ) { 3 , 5 } \gcd(7^2\pm 1,15)\in\{3,5\} .

  • bloklar: modüler üs + QPE + IQFT
  • kod: modüler üs doldurulmalı
  • hibrit: kuantum + klasik CF/gcd

Teknik notlar ve sektörel etki

Grand finale · dökümantasyon tonu

Shor sayfasını “son bölüm” gibi düşünebiliriz: önceki QFT, QPE ve Simon hatları burada birleşir.

  • Kübit ihtiyacı

    L L bitlik bir sayı için kusursuz bir makinede kabaca O ( L ) \mathcal{O}(L) kübit ve çok daha derin devreler konuşulur; RSA-2048 gibi pratik hedefler için hatasız kübit sayısı milyonlar mertebesinde tartışılır — bugünün NISQ donanımı bu rejimden uzaktır.

  • Girişim filtresi

    IQFT, periyodik olmayan bileşenleri zayıflatarak gerçek periyoda karşılık gelen frekansın genliğinin öne çıkmasına yardım eder (idealized resim).

  • Hibrit doğa

    Kuantum periyot/faz bilgisini çıkarır; klasik işlemci sürekli kesirler ve gcd \gcd ile asıl çarpanlara bağlar.

Neden şimdi kırılamıyor? Gürültülü, sınırlı derinlikli (NISQ) cihazlar büyük modüler üs devrelerini güvenilir şekilde çalıştırmakta uzaktır; hata düzeltme ve ölçek henüz RSA’yı tehdit edecek seviyede değildir. Teori ile pratik arasındaki bu boşluk, alanın ana motivasyonlarından biridir.

QPE ile bağlantıyı pekiştirmek için Kuantum faz tahmini (QPE) · Qiskit.