Hardware

IBM Quantum orqasi o'rniga /dev/urandom: Ochiq manba yondashuvi va uning imkoniyatlari

25-aprel, 2026, 04:1411 ko'rish4 daqiqa o'qish
IBM Quantum orqasi o'rniga /dev/urandom: Ochiq manba yondashuvi va uning imkoniyatlari

Quantum hisoblash texnologiyasi so'nggi yillarda katta e'tibor qozondi. IBM Quantum kabi bulut platformalari foydalanuvchilarga haqiqiy kvant protsessorlariga kirish imkonini beradi. Biroq, ba'zi tadqiqotchilar va dasturchilar bu platformalarning cheklovlari, narxi yoki kirish imkoniyatlari bilan qoniqmasliklari sababli muqobil yechimlar izlaydilar. Ushbu maqolada /dev/urandom faylini IBM Quantum backendini o'rnini bosuvchi tasodifiy sonlar generatori sifatida ishlatish g'oyasi, uning texnik asoslari va amaliy foydalari ko'rib chiqiladi.

1. /dev/urandom nima?

/dev/urandom — Linux operatsion tizimida mavjud bo'lgan, kriptografik darajada tasodifiy sonlar ishlab chiqaruvchi virtual qurilma. U tizimning entropiya manbalaridan foydalangan holda, deyarli cheksiz uzunlikdagi tasodifiy oqimni ta'minlaydi. Bu oqimni oddiy fayl sifatida o'qish orqali, har qanday dasturga tasodifiy ma'lumotlar kirita olish mumkin.

-    if token:
-        service = QiskitRuntimeService(...)
-    ...
-    backend = service.backend(backend_name)
-    ...
-    qc_t = transpile(qc, backend, optimization_level=optimization_level)
-    ...
-    sampler = SamplerV2(mode=backend)
-    job = sampler.run([qc_t], shots=shots)
-    ...
-    result = job.result()
-    pub_result = result[0]
-    counts = pub_result.data.cr.get_counts()
+    # /dev/urandom patch: generate `shots` uniform-random bitstrings of the
+    # same length as the circuit's classical register. Everything downstream
+    # of `counts` is the author's code, unchanged.
+    import os as _os
+    from collections import Counter as _Counter
+
+    nbits = qc.num_clbits
+    bpb = (nbits + 7) // 8
+    mask = (1 << nbits) - 1
+
+    _bitstrings = []
+    for _ in range(shots):
+        v = int.from_bytes(_os.urandom(bpb), "big") & mask
+        _bitstrings.append(format(v, f"0{nbits}b"))
+    counts = dict(_Counter(_bitstrings))

2. IBM Quantum backendini almashtirish sabablari

  • Qulaylik — /dev/urandom bilan ishlash uchun maxsus obuna yoki hisob qaydnomasini yaratish shart emas.
  • Narx — IBM Quantum xizmatlari ko'pincha pullik bo'lib, kichik loyihalar yoki eksperimentlar uchun qimmatga tushishi mumkin.
  • Erkinlik — Ochiq manba yondashuvi dasturchilarga kodni o'zgartirish, test qilish va o'z ehtiyojlariga moslashtirish imkonini beradi.

3. Texnik yondashuv

IBM Quantum API orqali yuboriladigan kvant buyruqlari odatda JSON formatida bo'ladi va backendga yuborilgandan so'ng, kvant chipida bajariladi. /dev/urandom ni ishlatish uchun quyidagi bosqichlar amalga oshiriladi:

Curve: y^2 = x^3 + 0x + 7 (mod 65647)
Group order: n = 65173
Generator: G = (12976, 52834)
Target: Q = (477, 58220)
Strategy: ripple-carry modular addition (CDKM)

Backend: /dev/urandom  (quantum hardware replaced with os.urandom)
Classical register width: 49 bits  (20000 shots)

Unique outcomes: 20000

============================================================
RESULT: d = 1441
Verification: 1441*G = (477, 58220)
[OK] VERIFIED
============================================================

[OK] SUCCESS: Recovered correct secret key
  1. API so'rovini yaratish va kerakli kvant darajasini (qubit soni, operatsiyalar) belgilash.
  2. So'rovning shots (tajribalar soni) parametrini /dev/urandom orqali olingan tasodifiy son bilan almashtirish.
  3. Natijaviy tasodifiy sonlarni kvant holatlari (0 yoki 1) sifatida interpretatsiya qilish.
  4. Olingan natijalarni klassik statistik usullar bilan tahlil qilish.

Bu yondashuvda haqiqiy kvant chipi ishlatilmaydi, lekin tasodifiylik darajasi yuqori bo'lgani uchun, ba'zi eksperimentlar uchun yetarli bo'lishi mumkin.

P(≥1 verified hit in S shots)  =  1 − (1 − 1/n)^S

4. Xavfsizlik va ishonchlilik masalalari

Quantum hisoblashda tasodifiylik muhim rol o'ynaydi, ayniqsa kvant kriptografiyasida. /dev/urandom kriptografik tasodifiylikni ta'minlasa-da, u haqiqiy kvant tasodifiylik (quantum randomness) bilan bir xil emas. Shuning uchun, xavfsizlik talab qiladigan ilovalarda bu usulni sinov maqsadida yoki prototip sifatida ishlatish tavsiya etiladi, lekin ishlab chiqarish muhitida haqiqiy kvant backendga tayanish zarur.

git checkout urandom-reproduces-qpu
uv venv .venv && . .venv/bin/activate
uv pip install qiskit qiskit-ibm-runtime

python projecteleven.py --challenge 4  --shots 8192
python projecteleven.py --challenge 10 --shots 8192
python projecteleven.py --challenge 17 --oracle ripple --shots 20000   # may need 2-3 tries

5. Amaliy foydalari va cheklovlari

Bu metodning asosiy afzalliklari quyidagilardan iborat:

  • Tez va bepul test muhitini yaratish.
  • Kvant algoritmlarini prototiplashda vaqtni tejash.
  • Ochiq manba kodini o'rganish va o'zlashtirish imkoniyati.

Cheklovlari esa:

  • Haqiqiy kvant interferensiyasi va superpozitsiyani qayta yaratib bo'lmasligi.
  • Kvant xatoliklarni modellashtirishning noaniqligi.
  • Ba'zi algoritmlarda (masalan, Shor algoritmi) natijalar noto'g'ri bo'lishi ehtimoli.

6. Xulosa

/dev/urandom ni IBM Quantum backendini almashtiruvchi vosita sifatida ishlatish, dasturchilar va tadqiqotchilar uchun qiziqarli eksperiment bo'lishi mumkin. Bu yondashuv yordamida kvant kodini tezda sinab ko'rish, xatoliklarni aniqlash va prototiplarni yaratish mumkin. Ammo, haqiqiy kvant hisoblashning barcha afzalliklarini olish uchun, oxir-oqibatda IBM Quantum yoki boshqa haqiqiy kvant platformalariga murojaat qilish zarur. Ushbu metodni “test‑first” strategiyasi sifatida qabul qilish, texnik hamjamiyatda yangi g'oyalar va ochiq manba hamkorliklarini rivojlantirishga yordam beradi.

Manba: Hacker News
#quantum computing #IBM Quantum #/dev/urandom #open source #tasodifiylik
Telegram da muhokama qilish