روح للمحتوى
MizanStack

جرّب الكمبيوتر الكمي على اللابتوب بتاعك، مجانًا

في الفيديو بتاعنا عن الكمبيوتر الكمي والـRSA عملنا تلات تجارب صغيرة على لابتوب عادي. الصفحة دي فيها كل الخطوات وكل الملفات، عشان تجربهم بنفسك في حوالي 10 دقايق. مجانًا، من غير حساب، ومن غير كمبيوتر كمي: كله بيشتغل في simulator على جهازك.

هتشغل إيه

  • التجربة 1، bell.py: اتنين qubit بيترابطوا (entanglement)، وبعدين بنقيسهم 4096 مرة. حوالي النص بيطلع 00 والنص 11، وعمره ما بيطلع 01 أو 10.
  • التجربة 2، noisy_sim.py: نفس الـcircuit على نسخة simulation من chip حقيقي بتاع IBM (ibm_kingston) بالـnoise بتاعه. حوالي 0.9% من الإجابات بتطلع غلط. وبعدين شور على 15 بنفس الـnoise: حوالي 96% من الـshots بتفضل تقع على الـpeaks الصح.
  • التجربة 3، shor15.py: خوارزمية شور على رقم 15. بتلاقي الـperiod وهو 4، وبحسبة عادية يطلع 15 = 3 × 5.
  • بصراحة: ده simulation على اللابتوب، مش كمبيوتر كمي. والـcircuit بتاعة شور مبسطة لإننا عارفين إجابة 15 من الأول، فهي بتوريك شكل الخوارزمية بس، مش كسر حقيقي. كسر RSA-2048 محتاج حوالي مليون qubit، مش 8.

محتاج إيه

  • لابتوب أو كمبيوتر عليه macOS أو Windows أو Linux، وإنترنت وقت التسطيب.
  • Python 3.11 (اللي جربنا عليه، والإصدارات الأحدث من 3 المفروض تشتغل). نزله من python.org (بيفتح في تاب جديد). على Windows علّم على "Add python.exe to PATH" في التسطيب.
  • حوالي 10 دقايق وحوالي 1 جيجا مساحة فاضية. من غير حساب ومن غير فلوس.

الـterminal هو الشباك اللي بتكتب فيه الأوامر: Terminal على macOS، وPowerShell على Windows، وTerminal على Linux. عشان تلزق أمر: Cmd + V على الماك، Ctrl + V على Windows، Ctrl + Shift + V على Linux.

الخطوة 1: جهّز فولدر نضيف

  1. اعمل فولدر للتجربة وادخل جواه:

    mkdir quantum-demo && cd quantum-demo
  2. على macOS أو Linux: اعمل بيئة Python خاصة (venv) وشغلها:

    python3 -m venv .venv && source .venv/bin/activate
  3. على Windows (PowerShell): اعمل الـvenv، وبعدين شغلها:

    py -m venv .venv
    .venv\Scripts\activate
  4. هتعرف إنها اشتغلت لما السطر في الـterminal يبدأ بـ(.venv). كل الأوامر الجاية بتشتغل جواها.

الخطوة 2: سطّب Qiskit

Qiskit هي أدوات IBM المجانية لكتابة برامج الكمبيوتر الكمي. دي نفس الإصدارات اللي استخدمناها في الفيديو بالظبط:

pip install qiskit==2.6.1 qiskit-aer==0.18.2 qiskit-ibm-runtime==0.51.0

بياخد دقيقة أو اتنين. نفس القايمة موجودة في requirements.txt (بيفتح في تاب جديد). وشرح IBM نفسها للتسطيب: Install Qiskit (بيفتح في تاب جديد).

الخطوة 3: هات التلات ملفات

نزّل التلاتة في الفولدر بأمر واحد (على Windows اكتب curl.exe بدل curl):

curl -O https://mizanstack.com/files/quantum/bell.py -O https://mizanstack.com/files/quantum/noisy_sim.py -O https://mizanstack.com/files/quantum/shor15.py

أو افتحهم في المتصفح واحفظهم: bell.py (بيفتح في تاب جديد)، noisy_sim.py (بيفتح في تاب جديد)، shor15.py (بيفتح في تاب جديد).

الخطوة 4: اربط اتنين qubit

python bell.py
  • الأول بيرسم الـcircuit: الـH بتحط qubit 0 في superposition (0 و1 في نفس الوقت)، والـCNOT بتربط qubit 1 بيه (entanglement)، وبعدين بنقيس الاتنين.
  • وبعدين بيشغل 4096 shot على simulator مثالي. هيطلعلك حوالي 50% 00 و50% 11. الأرقام بالظبط بتتغير شوية كل مرة، في الفيديو كانت 2027 و2069.
  • عمرك ما هتلاقي 01 أو 10: الاتنين دايمًا متفقين. ده هو الـentanglement.

الخطوة 5: نفس التجربة بـnoise الدنيا الحقيقية

python noisy_sim.py
  • هنا بنستخدم FakeKingston: نسخة من chip الـibm_kingston بتاع IBM بأرقام الـnoise المنشورة بتاعته. بيشتغل من غير إنترنت. وبرضو ده simulation للجهاز ده، مش الجهاز نفسه.
  • الـBell circuit دلوقتي بتطلع حوالي 0.9% إجابات غلط (01 أو 10). الـqubits الحقيقية بتغلط، وده سبب إن الكمبيوترات الكمية الكبيرة صعبة جدًا تتبني.
  • وبعدين شور على 15 بنفس الـnoise: حوالي 96% من الـshots بتقع على الـpeaks الصح (0 و4 و8 و12)، والـperiod برضو بيطلع 4. الرقمين دول بيتكرروا بالظبط، لأن السكريبت مثبّت الـrandom seed.

الخطوة 6: خوارزمية شور على 15

python shor15.py
  • الـcircuit بتدور على الـperiod بتاع 2 أس x باقي القسمة على 15: ‎1، 2، 4، 8، وبعدين 1، 2، 4، 8 تاني. يعني الـperiod هو 4.
  • أقوى الـpeaks هي 0 و4 و8 و12 من 16، كل واحدة حوالي 25%. ومن الـpeak بتاع 12 من 16 السكريبت بيلاقي الـperiod ‏r = 4.
  • وبعدين حسبة عادية: gcd(2^2 - 1, 15) = 3 وgcd(2^2 + 1, 15) = 5، يعني 15 = 3 × 5.
  • بيتر شور (Peter Shor) نشر الخوارزمية دي سنة 1994 (الورقة (بيفتح في تاب جديد))، وIBM شغلتها على 15 لأول مرة سنة 2001 على جهاز فيه 7 qubits (IBM (بيفتح في تاب جديد)).

اختياري: كمبيوتر كمي حقيقي من IBM

الفيديو ما استخدمش جهاز حقيقي. لو عايز تجرب، IBM عندها خطة مجانية فيها وقت صغير على الأجهزة كل شهر:

  1. اعمل حساب مجاني على IBM Quantum Platform واحفظ الـAPI key مرة واحدة، زي ما شرح IBM (بيفتح في تاب جديد) بيقول.

  2. شغّل تجربة Bell على أقل جهاز حقيقي عليه زحمة. ممكن الـjob تستنى في طابور الأول:

    python bell.py --hardware

استنى نسبة غلط كام في المية، أكتر من النسخة الـnoisy، لأن الـcalibration الحقيقية بتتغير خلال اليوم. وخلي الـAPI key سر زي الباسورد.

ليه اللابتوب بيقف عند حوالي 30 qubit

  • الـsimulator بيخزن 2 أس n رقم لـn qubit، كل رقم 16 byte. 30 qubit يعني حوالي 17 جيجا رامات، و35 qubit حوالي 550 جيجا. عشان كده اللابتوب العادي بيقف عند حوالي 30.
  • مفتاح RSA-2048 طوله حوالي 617 خانة. وأكبر رقم RSA اتكسر بالكمبيوترات العادية هو 829 bit ‏(RSA-250، سنة 2020).
  • كريج جيدني (Craig Gidney) من جوجل قدّر سنة 2025 إن أقل من مليون qubit فيهم noise يقدروا يكسروا RSA-2048 في أقل من أسبوع. ده تقدير نظري: مفيش جهاز بالحجم ده موجود النهاردة.
  • والحل بدأ فعلًا: التشفير ما بعد الكم (post-quantum cryptography). Cloudflare بتقول إن حوالي 70% من اتصالات المتصفحات معاها بتستخدمه (29 سبتمبر 2026). والـAES-256 اللي بيحمي البيانات نفسها بيفضل آمن.

المصادر

اتراجع يوم 30 أكتوبر 2026 بتشغيل التلات سكريبتات في تسطيب جديد. Qiskit بتتغير بسرعة، فالتزم بالإصدارات اللي فوق.