Süper yoğun kodlama — tek kübitle iki klasik bit
Klasik bir kanalda her fiziksel taşıyıcı yalnızca tek bir bit taşır. Süper yoğun kodlama, önceden paylaşılmış bir Bell çifti yardımıyla bu sınırı kırar: Alice tek bir kübit gönderir, Bob iki klasik bit okur. Sayfa boyunca protokolün matematiksel çekirdeğini, dört mesaj için Alice'in kapı seçim tablosunu, Bob'un Bell-baz ölçümünü ve "yolda çalınan kübit" senaryosunda doğal güvenliğin nasıl çalıştığını inceliyoruz.
Süper Yoğun Kodlama Nedir? ( Derinlemesine Analiz )
Süper yoğun kodlama (Bennett ve Wiesner, 1992), iki klasik bitlik bir mesajı — dört olasılıktan birini — paylaşılmış bir Bell çiftinin Alice tarafına uygun Pauli kapılarıyla kodlamak ve Bob’un iki kübit üzerinde Bell bazında yapacağı ölçümle dört birbirine dik Bell durumunu ayırt etmek üzerine kurulu bir iletişim düzenidir. Özetle mesaj, “hangi Bell çiftinde olduğumuz?” sorusunun cevabına sıkıştırılır.
“Tek kübit, iki klasik bit” ifadesi çoğu zaman şunu kasteder: mesajın gönderildiği turda kuantum kanalında yalnızca bir kübit fiziksel olarak taşınır; yine de klasik dünyada tek başına bir kübit üzerinden beklenen klasik bilgi üst sınırı (Holevo çizgisi), paylaşılmış dolanık kaynak olmadan geçerlidir. Süper yoğun kodlamada asıl numara, Bob’un tarafında mesajdan önce hazır duran dolanık eş kübittir — iki bitlik seçim bu ortak kaynak sayesinde tek taşıyıcı turuna sığdırılır; tam hesap tablosu ve Bell-baz fikri bir sonraki bölümde açılır. Ön şartlar, yerellik ve teleportasyonla ters düşen simetri ise çakışmadan Temel kurallar altında toplanır.
Temel kurallar
Önceden paylaşılmış dolanıklık şarttır Protokol çalışmadan önce Alice ve Bob bir Bell çifti () paylaşmış olmalıdır — kübitlerin biri Alice'te, diğeri Bob'ta. Bu paylaşım, mesaj gönderiminden çok önce yapılabilir; örneğin geceden hazırlanır, sabah kullanılır. Mesaj anına kadar kübitler atıl bekler.
Yerel işlem, kollektif sonuç Alice mesajını kodlarken yalnızca kendi kübitine kapı uygular — Bob'un kübitine dokunmaz, sinyal göndermez. Buna rağmen tüm sistemin Bell durumu değişir; çünkü dolanık iki kübit tek bir kuantum nesnesi gibi davranır. Alice'in yerel hamlesi, Bob'un kübitine "uzaktan" değil, sistemin bütününe yapılır.
Teleportasyonun aynası Kuantum teleportasyonda iki klasik bit kullanarak bir kübit taşırız; süper yoğun kodlamada ise bir kübit kullanarak iki klasik bit taşırız. İki protokol birbirinin tersidir — ikisi de aynı kaynağı (Bell çifti) farklı yönde harcar. Bu simetri, kuantum bilgi teorisinin en şık denklemlerinden biri olan kanal kapasite ilişkisinin temelidir.
Mesaj → Bell Durumu Eşlemesi
Alice'in dört olası mesajı için () yapacağı tek şey kendi kübitine doğru Pauli kapısını uygulamak. Her kapı, Bell çiftini farklı bir Bell durumuna döndürür; dört Bell durumu birbirine ortogonal olduğu için Bob bunları ayırt edebilir. İşte protokolün tüm kalbi.
Dört kapı, dört durum
(kimlik) Alice hiçbir şey yapmaz; sistem |Φ⁺⟩ = (|00⟩ + |11⟩)/√2 olarak kalır. Klasik mesajın "olmaması" da fiziksel bir bilgidir.
(bit-flip) Alice kendi kübitine uygular; sistem |Ψ⁺⟩ = (|01⟩ + |10⟩)/√2 haline gelir.
(faz-flip) Alice uygular; sistem |Φ⁻⟩ = (|00⟩ − |11⟩)/√2 olur. Görünürdeki olasılık dağılımı ile aynıdır; aradaki tek fark fazda saklı.
(her ikisi) Alice önce sonra uygular (eşdeğer olarak ); sistem |Ψ⁻⟩ = (|01⟩ − |10⟩)/√2 haline gelir. Bu dört Bell durumu Hilbert uzayında birbirine dik (ortonormal) olduğu için Bob hangisi olduğunu tek bir Bell-baz ölçümünde bulabilir.
Algoritmanın Mantığı ( Dört Aşama )
Süper yoğun kodlama dört net aşamadan oluşur: Dolanıklık Hazırlığı, Alice'in Kodlaması, Kübitin Gönderilmesi ve Bob'un Kod Çözmesi. Her adım devrenin görünür bir parçasına karşılık gelir.
Aşama 1Dolanıklık Hazırlığı
Önceden kurulmuş Bell çifti Bir aracı (ya da Alice) standart Bell üretimini çalıştırır: H ve zincirleme CNOT ile iki kübitlik sistem durumuna getirilir (EPR çifti). Birinci kübit Alice'e, ikincisi Bob'a düşer. Bu aşama mesajın içeriğinden tamamen bağımsızdır — dolanıklık rezervi gibi önceden stoklanabilir; mesaj geldiğinde yalnızca Alice'in tarafı üzerinde işlem yapılacaktır.
Neden önemli? Çift kübitlik durum bir bütün olarak tanımlıdır; tek tek kübitlere indirgenince her iki taraf da yerelde tam karışım görür. Süper yoğun kodlamanın hammaddesi işte bu ortak kuantum yapıdır.
Aşama 2Alice'in Kodlaması
Bir kapı, dört seçenek Alice göndermek istediği iki klasik bite bakar ve Mesaj → Bell durumu tablosuna göre yalnızca kendi kübitine bir Pauli uygular: , , veya (çoğu anlatımda önce sonra ). İşlem tamamen yereldir — Alice Bob'a klasik veya kuantum sinyal göndermez; yine de iki kübitlik ortak durum dolanık uzayda dört ortogonal Bell vektöründen birine döner, çünkü Pauli dönüşümleri Bell bazında etiket değiştirir.
Aşama 3Kübitin Gönderilmesi
Tek fiziksel taşıyıcı Kodlamayı tamamlayan Alice, artık mesajı taşıyan kendi kübitini kuantum kanalıyla Bob'a iletir — fiber, foton, tuzaklı iyon vb. hangi fiziksel ortam kullanılıyorsa tek bir kuantum nesnesi yol alır. Bu, protokolün klasik paket gönderimine en çok benzeyen adımıdır; pratikte gürültü ve dekoherens tam burada mesaja zarar verebilir.
Bütçe dili Mesaj turunda kanal kapasitesinden “bir kübitlik gönderim” düşülür; iki klasik bitlik seçim ise önceki Bell paylaşımı sayesinde bu tek gönderime sığdırılmış olur.
Aşama 4Bob'un Kod Çözmesi
Bell-bazdan klasik bite Bob'un elinde artık iki kübit vardır: baştan beri tuttuğu yarı ile Alice'ten gelen yarı. Bell hazırlayan devrenin “tersine” benzer bir düzen — çoğu kurulumda önce CNOT (Alice kübiti kontrol, Bob kübiti hedef), sonra Alice kübitinde H, ardından her iki çizgide standart Z ölçümü — ortak iki kübitlik durumu tekrar hesaplama tabanına projeler. İki klasik sonuç satırı bir araya gelince Alice'in iki bitlik mesajı okunur; ideal koşullarda mesaj tek bir ölçüm turunda çıkar.
-
Aracı (ya da Alice) bir Bell çifti hazırlar (H + zincirleme CNOT) ve kübitlerden birini Alice'e, diğerini Bob'a teslim eder.
-
Alice mesajına göre kendi kübitine Pauli kapısı uygular: , , , .
-
Alice kendi kübitini Bob'a fiziksel olarak gönderir (kuantum kanal üzerinden).
-
Bob Bell-baz ölçümü yapar: önce CNOT (kontrol: Alice'ten gelen kübit, hedef: kendi kübiti), sonra H (Alice'ten gelen kübitte), ardından her ikisini ölçer.
-
Klasik kayıttaki iki bit doğrudan Alice'in mesajıdır. İdeal ortamda %100 sadakatle eşleşir.
Qiskit ile Uygulama
Aşağıdaki örnek tek bir mesaj için süper yoğun kodlama devresini parametrik bir fonksiyon olarak kurar. Devre üç bölümden oluşur — Bell çifti hazırlığı, Alice'in mesaj-temelli kodlaması ve Bob'un Bell-baz ölçümü. "00", "01", "10" ve "11" mesajlarını sırayla deneyebilirsiniz; histogramda her seferinde tek bir kombinasyon yükselir.
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
def create_superdense_coding(message):
qc = QuantumCircuit(2, 2)
# 1. Adım: Bell çifti oluştur (Alice ve Bob arasında paylaştırıldı)
qc.h(0)
qc.cx(0, 1)
qc.barrier()
# 2. Adım: Alice'in kodlaması (mesaja göre kapı uygula)
if message == "00":
pass # Identity
elif message == "01":
qc.x(0)
elif message == "10":
qc.z(0)
elif message == "11":
qc.z(0)
qc.x(0)
qc.barrier() # Alice kübitini Bob'a gönderir
# 3. Adım: Bob'un kod çözmesi (Bell ölçümü)
qc.cx(0, 1)
qc.h(0)
qc.barrier()
# 4. Adım: Ölçüm
qc.measure([0, 1], [0, 1])
return qc
# "11" mesajını gönderelim
message = "11"
qc = create_superdense_coding(message)
# Çalıştırma
simulator = AerSimulator()
job = simulator.run(qc, shots=1024)
result = job.result().get_counts()
print(f"\nAlice'in gönderdiği mesaj: {message}")
print(f"Bob'un aldığı sonuç: {result}")
Kod analizi · satır satır
Importlar Yalnızca QuantumCircuit ve AerSimulator; bu örnekte numpy'a ihtiyaç yok çünkü tüm kapılar sabit Pauli'leri.
create_superdense_coding(message) Devreyi parametrik bir fonksiyon olarak yazmak protokolün esnekliğini taşır; aynı şablonu dört mesaj için ayrı ayrı çağırarak hepsini doğrulayabilirsiniz. message "00", "01", "10" veya "11" olabilir.
qc.h(0) + qc.cx(0, 1) Bell çiftini kuran iki kapı. Burada bir simülasyon kolaylığı kullandık: Alice ve Bob'un kübitleri aynı devrenin parçası gibi görünüyor; gerçek bir uygulamada bu adım üçüncü bir tarafın yaptığı, sonra fiziksel olarak iki tarafa dağıttığı bir sürece karşılık gelir.
Birinci qc.barrier() "Bell çifti hazır, mesaj kodlamasına geçiyoruz" görsel ayracı. Aynı zamanda transpiler'ın kodlama kapılarını Bell hazırlık kapılarıyla karıştırmasını engeller — Pauli kapılarının yerini değiştirmesi sonucu tamamen bozar.
if message == "00": pass "Hiçbir şey yapma" da bilinçli bir kuantum işlemidir. kapısı bir kübite uygulanması gereken yasal bir matematiksel operasyondur; sonucu değiştirmez ama protokol sözlüğünde "" mesajına karşılık gelir. Sistem olarak kalır.
qc.x(0) ve qc.z(0) Alice'in tüm yetenekleri sadece kendi kübiti üzerinde Pauli kapıları; iki kübitlik bir kapıya ihtiyaç duymadığı için protokol fiziksel olarak son derece "ucuzdur". Bell çifti hazırlığı pahalı, ama kodlama anı mininaldir.
"11" dalı: qc.z(0); qc.x(0) Önce sonra uygulanır. Sırayı değiştirirseniz devre yine çalışır ama küresel bir faz farkı kalır; yani qc.x(0); qc.z(0) da aynı ölçüm istatistiğini verir (genel faz gözlemlenemezdir). Yine de bilinçli sıralama, kodu okuyan herkesin protokolü doğru anlamasına yardım eder.
İkinci qc.barrier() "Alice kübitini Bob'a gönderdi" sahnesinin sınırı. Pratik bir simülasyonda bu satır görünmüyor olabilir, ama mantıksal olarak orada; gerçek bir laboratuvarda fiziksel bir transferin (foton uçuşu vs.) tam yeri.
qc.cx(0, 1) + qc.h(0) Bob'un Bell-baz ölçümü. Bell çifti hazırlığının tersi kapı sırası uygulanır: önce CNOT, sonra Hadamard. Bu kombinasyon dört Bell durumunu klasik dört bitlik etikete (00, 01, 10, 11) eşler. Tek bir standart Z-baz ölçümü artık yeterlidir.
qc.measure([0, 1], [0, 1]) İki kübit klasik bitlere yazılır. İdeal simülatörde sonuç her atışta Alice'in mesajıyla bire bir aynıdır; histogramda yalnızca tek bir sütun (mesajla aynı) yükselir. Bu, klasik bir gönderim/alım kanalında görmeyi beklediğimiz davranış ama gönderici tarafta tek bir kübit harcadık.
İkinci bir mini test: bu kez Bell çifti kalsın, ama Alice'in kodlama kısmını (if message ...) kaldırın. Bob artık her zaman aynı Bell durumunu çözer ve çıktınız mesajdan bağımsız tek bir etikete “kilitlenir” — yani gönderim yoktur.
Çalıştırma için tek bir Python ortamında qiskit ve qiskit-aer paketleri yeterlidir; kurulumun tek bakışta özeti ana sayfadaki IDE ve çalıştırma bölümündedir. Gerçek donanımda denemek için AerSimulator() satırını QiskitRuntimeService().backend("ibm_brisbane") gibi bir IBM cihazıyla değiştirin; süper yoğun kodlama, dolanıklık ve Bell-baz ölçümünün birlikte çalıştığı bir "uçtan uca" testtir, donanım sadakat ölçütü olarak da kullanılabilir.
Aynı Devre (İki Temsil)
Örnek olarak kodda message = "11" seçilmiştir; Qiskit metin çıktısı bu mesaja göre transpile edilen kapıları gösterir. Başka bir klasik bit çifti seçildiğinde Alice kodlama sütunu (Z/X) değişir; terminal düzeni benzer kalır. ░ sütunları barrier() ile ölçüm/bölüm arası ayraçları işaret eder. Sağdaki SVG aynı iki kübit akışını kolon kolon okunur kılar.
print(qc) çıktısı · mesaj "11"
┌───┐ ░ ┌───┐┌───┐ ░ ┌───┐ ░ ┌─┐
q_0: ┤ H ├──■───░─┤ Z ├┤ X ├─░───■──┤ H ├─░─┤M├───
└───┘┌─┴─┐ ░ └───┘└───┘ ░ ┌─┴─┐└───┘ ░ └╥┘┌─┐
q_1: ─────┤ X ├─░────────────░─┤ X ├──────░──╫─┤M├
└───┘ ░ ░ └───┘ ░ ║ └╥┘
c: 2/════════════════════════════════════════╩══╩═
0 1
Moment 0 · Bell (H · CNOT) Moment 1 · bariyer · Alice Z·X Moment 2 · bariyer · Bell ölçümü Moment 3 · ölçüm
Premium devre çizimi
renk · kapı / taşıma bandı kesik hat · klasik
Aşağıdaki blok, üstteki terminal ve SVG ile aynı protokolün kapı sırasını doğrulanmış JSON ile çizer; histogram örnek bir 1024 shot sayımıdır (tarayıcıda simülatör çalışmaz).
circuit-viz · Bell → Z·X → Bell ölçümü
Örnek mesaj 11 → Z ve X; diğer mesajlarda Pauli sütunu değişir. Moment düğmeleri JSON kolonlarını vurgular.
Örnek sayım · iki klasik bit
Gerçek sayım kod ve transpile ayarına bağlıdır; burada yalnızca ölçüm çıktısı formatını gösteririz.
Bu canlı devre. İki kübitlik süper yoğun kodlama çekirdeği: paylaşılan Bell çifti (H, CNOT), mesaj 11 için Alice kodlaması (Z, X), Bell-baz ölçümü (CNOT, H) ve klasik kayda ölçüm.
Neden sadeleştirildi? Üst panelde barrier() (░) ayraçları, farklı message değerleri için değişen Pauli seçimi ve SVG’deki taşıma bandı anotasyonları vardır; canlı devre yalnızca bu sayfadaki örnek mesajın kapı sırasını gösterir.
Üst panelle fark. Terminal ve premium SVG moment etiketleri, renk kodları ve tek kübit iletim sezgisi içerir; canlı panel ortak circuit-viz motorudur — tam devre kopyası değil, öğretim odaklı JSON çizimidir.
Devre ve Doğrulama
Bu şema, 5 · Aynı Devre (İki Temsil) bölümündeki akışı korur; "11" mesajının süper yoğun kodlamasını uçtan uca görselleştirir. Sol uçta Bell çifti hazırlığı; ortada Alice'in ve kodlaması (kesikli mor çizgi Alice → Bob fiziksel taşımayı simgeler); sağ tarafta Bob'un Bell-baz ölçümü (CNOT + H) ve son ölçüm.
"11" örneğinde Alice ve uyguladığı için sistem Bell durumuna geçer; Bob'un Bell-baz ölçümü bu durumu doğrudan "11" klasik etiketine eşler. İdeal simülatörde 1024 atışın tamamı "11" çıkar; diğer üç kombinasyon sıfırdır. Diğer mesajlar () için de aynı %100 belirlilik geçerlidir.
- 11 ≈ %100
- diğer 3 anahtar ≈ 0
Şemayı adım adım oku
-
Solda H ardından CNOT ile Bell çifti hazırlanır.
-
Alice, mesajına göre kendi kübitine kodlama kapılarını uygular. Bu örnekte "11" için Z ve X görülür.
-
Mor kesikli çizgi, Alice’in kübitinin Bob’a tek fiziksel taşıyıcı olarak iletilmesini temsil eder.
-
Sağ tarafta Bob, CNOT + H ile Bell-baz ölçümünü standart ölçüme çevirir.
-
En sonda iki kübit ölçülür ve sonuç doğrudan iki bitlik mesaja (örn. "11") karşılık gelir.
Her mesaj bir Bell çiftini "tüketir". 1000 mesaj göndermek için 1000 önceden hazırlanmış Bell çifti gerekir. Pratikte bu çiftler önceden üretilip "kuantum hafıza"da saklanır; mesaj anında çekilip kullanılır.
Süper yoğun kodlama, hem Bell çifti hazırlığı, hem de Bell-baz ölçümünü aynı devrede içerdiği için donanımın iki temel yetkinliğini birden test eder. NISQ cihazlarında ham sadakat ~%85–%95 aralığında kalır; hata azaltma uygulanırsa %98+'a çıkar.
Kuantum bilgi teorisinde "n kübit en fazla n klasik bit taşır" üst sınırı vardır (Holevo sınırı). Süper yoğun kodlama bu sınıra ulaşır: 1 kübit + 1 önceden paylaşılmış dolanık kübit ile tam 2 klasik bit gönderilir. 3 katı bilgi göndermek için ek dolanıklık gerekir; bedavaya bilgi yoktur.
Mesaj, Alice'in kübitine yazılmış gibi görünse de anlam çiftin ortak kuantum durumundadır. Yoldaki bir dinleyici yalnızca gönderilen tek kübiti yakalarsa, Bob'un elindeki eş kübit ve doğru çözüm devresi olmadan iki klasik biti güvenilir biçimde okuması genelde mümkün değildir. Tam tehdit modeli ve kriptografik güvenlik kanıtı ayrı konudur; burada yalnızca protokolün doğal koruma sezgisi vurgulanır.