IBM Quantum backend’ini /dev/urandom ile değiştirmek
(github.com/yuvadm)- Yalnızca IBM Quantum backend’i
os.urandomile değiştirilmiş durumda bile, devre yapısı, oracle, çıkarım hattı ved·G == Qdoğrulayıcısı aynen korunarak özel anahtar kurtarmanın yeniden üretilebildiği gösteriliyor - Değişiklik kapsamı
projecteleven.pyiçinde yalnızca 59 satırlık değişiklik ile sınırlı; backend çalıştırma ve sonuç toplama kaldırılıyor, bunun yerine classical register genişliğine uyan eş dağılımlı rastgele bit dizilerishotssayısı kadar üretilip mevcut ardıl işleme veriliyor - 4 bitten 10 bite kadar
/dev/urandomçalıştırması, raporlanan donanım sonuçlarıyla bayt düzeyinde aynıddeğerlerini kurtardı; 16 bit ve 17 bitte de sırasıyla 5 denemenin 4’ünde ve 5 denemenin 2’sinde kurtarma başarılı oldu - Çıkarma mantığı, her shot’ta hesaplanan
d_cand = (r − j)·k⁻¹ mod ndeğerini yalnızca klasik doğrulayıcıyı geçtiğinde kabul ediyor; belgede/dev/urandombaşarı oranıP(≥1 verified hit in S shots) = 1 − (1 − 1/n)^Sile açıklanıyor - Altı farklı oracle, heavy-hex eşlemesi, semiclassical phase estimation gibi önemsiz olmayan mühendislik korunuyor; ancak belgedeki eleştirinin kapsamı kriptoanaliz iddiasıyla sınırlı ve donanım çalıştırma sonuçlarının kuantum kurtarma değil, klasik doğrulama ile de yeniden üretilebildiğini gösteriyor
diff
projecteleven.pyiçin toplam değişiklik −29 / +30 satır ölçeğinde; IBM Quantum servis başlatma, backend çalıştırma, sampler çağrısı ve iş sonucu toplama bölümleri kaldırılıp yerlerine rastgelelik tabanlıcountsüretimi ekleniyor- Eklenen kod, devrenin classical register uzunluğunu okuyup aynı bit sayısında eş dağılımlı rastgele bit dizilerini
shotskadar üretiyor, bunlarıCounterile sayıp mevcut ardıl işleme aynen aktarıyornbits = qc.num_clbitsbpb = (nbits + 7) // 8mask = (1 << nbits) - 1- Her shot için değer
int.from_bytes(_os.urandom(bpb), "big") & maskile oluşturulup belirtilen genişlikte ikili dizgeye dönüştürülüyor
- Tüm 59 satırlık değişiklik listesi
git diff mainüzerinden görülebilir
Sonuçlar: Yamanmış durumda yazarın CLI çalıştırmaları
- Donanım yerine yalnızca
/dev/urandomtarafından sağlanan sonuçlarla, aynı CLI komutları değiştirilmeden kullanılarak özel anahtar kurtarmanın olup olmadığı kontrol edildi - Belgede verilen tablo, yazarın raporladığı
ddeğerleri ile/dev/urandomile kurtarılanddeğerlerini doğrudan karşılaştırıyor -
Küçük challenge’lar, her biri 1 deneme, 8.192 shots
- Çalıştırma komutu
python projecteleven.py --challenge <N> --shots 8192 - Tam çıktı
urandom_runs/urandom_challenge_4.txtdosyasından_10.txtdosyasına kadar uzanıyor - 4 bitten 10 bite kadar tüm girdilerde
/dev/urandomile kurtarıland, yazarın raporladığı donanım sonucu ile bayt düzeyinde aynı- 4-bit: 6 → 6, ilk denemede doğrulama geçti
- 6-bit: 18 → 18, ilk denemede doğrulama geçti
- 8-bit: 103 → 103, ilk denemede doğrulama geçti
- 9-bit: 135 → 135, ilk denemede doğrulama geçti
- 10-bit: 165 → 165, ilk denemede doğrulama geçti
- Belgeye göre her challenge bir kez,
/dev/urandomda bir kez çalıştırıldı ve iki taraf da başarılı oldu
- Çalıştırma komutu
-
Amiral gemisi challenge’lar, her biri 5 deneme, 20.000 shots, ripple-carry oracle
- Çalıştırma komutu
python projecteleven.py --challenge <N> --oracle ripple --shots 20000 - Tüm çıktı
urandom_runs/urandom_challenge_16_17_flagship.txtiçinde derlenmiş durumda - 16 bit challenge’da yazarın raporladığı
d = 20,248değeri/dev/urandomtarafından 5 denemenin 4’ünde kurtarıldı - 17 bit challenge’da yazarın raporladığı
d = 1,441değeri/dev/urandomtarafından 5 denemenin 2’sinde kurtarıldı - Belgede 17 bit sonucu 1 BTC alınan girdi olarak geçiyor ve
/dev/urandom’un bunu bir dizüstü bilgisayarda çalıştırmaların yaklaşık %40’ında kurtardığı yazıyor - Belgede ayrıca yazarın bu girdiyi IBM
ibm_fezüzerinde bir kez çalıştırıp sonucu kuantum çıktısı olarak sunduğu belirtiliyor - 17 bit çalıştırmasına ait terminal çıktısı örneği de aynen veriliyor
- Eğri:
y^2 = x^3 + 0x + 7 (mod 65647) - Grup mertebesi:
n = 65173 - Üreteç:
G = (12976, 52834) - Hedef nokta:
Q = (477, 58220) - Strateji:
ripple-carry modular addition (CDKM) - Backend:
/dev/urandom - classical register genişliği:
49 bits 20000 shotsiçindeUnique outcomes: 20000- Sonuç:
d = 1441 - Doğrulama:
1441*G = (477, 58220) [OK] VERIFIED,[OK] SUCCESS: Recovered correct secret key
- Eğri:
- Çalıştırma komutu
Bu sonuçlar neden çıkıyor
- Çıkarma mantığı,
ripple_carry_shor.py:197-240veprojecteleven.py:264temelinde her shot’ın(j, k, r)değerlerini alıpd_cand = (r − j)·k⁻¹ mod nhesaplıyor, ardından bunu yalnızca klasik doğrulayıcıd_cand · G == Qkoşulunu geçerse kabul ediyor - Belgede, eş dağılımlı gürültü altında
d_canddeğerinin[0, n)aralığında eş dağılımlı olduğu varsayılıyor veSshots içinde en az bir doğrulanmış başarının gelme olasılığı şu formülle veriliyorP(≥1 verified hit in S shots) = 1 − (1 − 1/n)^S
- Bu formüle belgede verilen
(n, S)değerleri yerleştirildiğinde, teorik/dev/urandombaşarı oranları şöyle oluyor- 4-bit:
n = 7,shots = 8,192,100.00% - 6-bit:
n = 31,shots = 8,192,100.00% - 8-bit:
n = 139,shots = 8,192,100.00% - 9-bit:
n = 313,shots = 8,192,100.00% - 10-bit:
n = 547,shots = 1,024,84.65% - 16-bit:
n = 32,497,shots = 20,000,45.96% - 17-bit:
n = 65,173,shots = 20,000,26.43%
- 4-bit:
- Belgede, yukarıda ölçülen
/dev/urandomampirik başarı oranlarının bu teorik değerlerle uyuştuğu belirtiliyor - Aynı depodaki
README.md:210içinde şu cümlenin zaten yer aldığı da aktarılıyor"When shots >> n, random noise alone can recover d with high probability."
- 4 bitten 10 bite kadar tüm çalıştırmalarda
shots / noranı 1,9× ile 1.170× arasında; belgeye göre bu aralığın tamamı, yazarın da klasik bölge olarak tanımladığı koşullara giriyor
Nasıl yeniden üretilir
- Sonuçlar aynı branch ve ortamda aşağıdaki adımlarla yeniden üretilebilir
git checkout urandom-reproduces-qpuuv venv .venv && . .venv/bin/activateuv pip install qiskit qiskit-ibm-runtime
- Çalıştırma örnekleri şöyle
python projecteleven.py --challenge 4 --shots 8192python projecteleven.py --challenge 10 --shots 8192python projecteleven.py --challenge 17 --oracle ripple --shots 20000 # may need 2-3 tries
- Belgede IBM hesabı, token, kuantum donanımı ve ağ bağlantısı gerekmediği belirtiliyor
İpuçları ve kapsam
- Depodaki uygulamanın kendisi gerçek ve önemsiz olmayan bir mühendislik olarak değerlendiriliyor
- Altı farklı oracle varyantı içeriyor
- CDKM ripple-carry toplayıcısını heavy-hex topolojisine eşliyor
- mid-circuit measurement içeren semiclassical phase estimation kullanıyor
- Eleştirinin kapsamı kriptoanaliz iddiası ile sınırlı
- Belgenin vardığı sonuç, bu donanım çalıştırmasının kuantum bilgisayar aracılığıyla ECDLP anahtar kurtarma değil, eş dağılımlı rastgele adaylar üzerinde klasik doğrulama olduğu; bu branch’in de gösterdiği gibi kuantum donanımı olmadan da birebir yeniden üretilebildiği yönünde
1 yorum
Hacker News yorumları
Bu yüzden dışarıdan bakınca “doğru sonuç” üretiyor gibi görünse bile nedeni tamamen yanlış olabilir. Tam da bu nedenle küçük tamsayı çarpanlara ayırma ya da küçük ECDLP örnekleri, kuantum bilişimdeki ilerlemeyi ölçmek için uygun benchmark’lar değil.
Bunun olacağı konusunda project11 tarafını uyarmıştım. Sonunda, kuantum bilgisayarın katkıda bulunmadığı gerçeğini en iyi gizleyen kişiye bitcoin verileceğini düşünüyordum; gönderimi yapan kişinin de muhtemelen kendisini kandırmış olabileceğini sanıyordum. Galiba bunu ciddiye almadılar.
[1]: https://sigbovik.org/2025/proceedings.pdf#page=146
/dev/urandomile değiştirince de anahtar aynı şekilde kurtarılıyorÖzgeçmişinde enterprise software, full-stack architecture, cloud native, solution architecture ve sales engineering var; commit geçmişine bakınca da bu iş neredeyse tam bir vibe coded vakası gibi görünüyor: https://github.com/GiancarloLelli/quantum
17 bitlik ECC anahtarını kurtarmak bugün klasik bilgisayarlarda brute force ile hiç zor değil
Mükemmel
Ben mi başka bir şeye bakıyorum bilmiyorum ama bu bayağı
quan(tumslop)içindekitgibi duruyorBu gerçekten sanat
Biraz iğrenç
Yakın zamanda çıkan başka dequantized sonuçlar da var: https://arxiv.org/abs/2604.21908
Kuantum bilgisayar kritik olsaydı, RNG ile değiştirildiğinde doğru cevap çıkmamalıydı ya da en azından yakınsama hızı düşmeliydi. Ama sonuç tamamen aynı olduğuna göre, gerçek mantığın tamamı klasik taraftaymış ve QC yalnızca gürültü eklemiş
Sonuç istatistiksel olarak tahminden ayırt edilemiyorsa, sonunda sadece karmaşık bir Rube Goldberg düzeneği kurulmuş gibi görünüyor
Dolandırıcılar ya çökmüş eski coin’leri yeniden ortaya çıkarıyor ya da yeni coin’ler yaratıyor; sonra bunları toplayıp ya da ihraç edip üstüne ML-DSA ekleyerek kuantuma dayanıklı diye pazarlıyor, böylece shitcoin’i pump edip sonra boşaltabiliyorlar
Günün birinde bilgi seviyesi düşük bireysel yatırımcılar da bunu fark edecektir ama açıkçası şu anda bunun tam olarak kimde karşılık bulduğunu ben de bilmiyorum
Google bile kendi kuantum bilgisayarlarının düzgün çalıştığını kanıtlayamadı; algoritmalar da aşırı derecede zayıflatılıp elde 17 bit gibi şeylerle kalındı
https://blog.google/innovation-and-ai/technology/research/quantum-echoes-willow-verifiable-quantum-advantage/
Ortalıkta ne olduğu belirsiz 10 milyar dolarlık rastgele sayı üreteçlerine akıl dışı paralar saçıldığını görebiliriz