Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

4-bit ECDLP Recovery on ibm_fez — QDay Prize Submission

TL;DR

We recover the private scalar (d = 6) of the ECDLP instance (y^2 = x^3 + 7 \pmod{13}) with (G = (11,5)), (P_{\text{pub}} = (11,8)) from real hardware data on IBM's ibm_fez (156-qubit heavy-hex). The result is statistically separated from the uniform-noise null at (p = 0.003) ((2.75\sigma)) and classically confirmed by (6 G = (11,8) = P_{\text{pub}}).

The algorithm is a gauge-protected inverse-protocol ECDLP solver: six short 6-qubit circuits (370–387 CX each, depth ~650), each testing one hypothesis (k \in {1,\ldots,6}) against the public key via the identity [ U_G^{-k} \cdot U_{\text{pub}} \big|_{\mathcal{B}} ;=; I \quad\Longleftrightarrow\quad k = d. ]

  • Job ID: d7l0tr0kj84c73ceepn0 (ibm_fez, 2026-04-23)
  • Qubits: 6
  • CX per circuit: 370–387 (mean ~380, transpiled)
  • Total CX: 2,283 across all 6 circuits
  • Total shots: 49,152
  • Wall time on backend: ~8 minutes
  • Error mitigation: Dynamical Decoupling (XY4) + Pauli Twirling (32×)
  • Recovered key: (\boxed{d = 6})

How to verify (5 minutes, no QPU needed)

cd reproducibility/
pip install -r requirements.txt
python3 verify_math.py              # simulates 6 QASM circuits, confirms target states
python3 count_resources.py          # confirms ~380 CX per circuit, ~650 depth
python3 verify_classical.py         # confirms 6G = P_pub on the curve
python3 run_sim.py                  # confirms noiseless protocol recovers d=6

All four scripts return PASS or raise. No hardware required.

How to replicate on a QPU (optional, ~10 minutes QPU-time)

python3 ecdlp_inverse_protocol.py --submit --backend ibm_fez --shots 8192
python3 analyze_inference.py results/<new_job_id>.json

See CHALLENGE.md for a backend-agnostic replication challenge.

Directory map

qday_submission/
├── README.md                     ← this file
├── CLAIM.md                      ← precise numerical claim
├── METHODOLOGY.md                ← algorithm + inference rule
├── HARDWARE.md                   ← backend, job details, error mitigation
├── RESOURCES.md                  ← CX/depth/shots + comparisons
├── REPRODUCE.md                  ← step-by-step verification guide
├── QDAY_MATH.md                  ← full math appendix (machine-verified)
├── CHALLENGE.md                  ← replicate-on-any-QPU challenge
├── reproducibility/
│   ├── ecdlp_inverse_protocol.py   ← production script (loads QASM, submits, analyzes)
│   ├── circuits/                   ← the 6 pre-transpiled QASM inverse-protocol circuits
│   │   ├── circuit_k1.qasm
│   │   ├── circuit_k2.qasm
│   │   ├── circuit_k3.qasm
│   │   ├── circuit_k4.qasm
│   │   ├── circuit_k5.qasm
│   │   ├── circuit_k6.qasm
│   │   └── metadata.json           ← per-circuit CX/depth metadata
│   ├── verify_math.py              ← simulates QASM noiselessly, verifies target states
│   ├── count_resources.py          ← gate/depth counts direct from QASM
│   ├── verify_classical.py         ← ECDLP classical check
│   ├── run_sim.py                  ← noiseless protocol simulator
│   ├── analyze_inference.py        ← ML inference on saved histograms
│   └── requirements.txt
├── hardware_result/
│   ├── job_id.txt
│   ├── analysis_summary.json
│   └── README.md                    ← instructions to fetch raw BitArray
└── simulation_baseline/
    └── noiseless_expected.json      ← expected counts for priv=6

Rubric compliance at a glance

Metric Where verified
Writeup Clarity §0 claim → §1 algebra → §2 embedding → §3 circuit family → §4 protocol → §5 hardware in QDAY_MATH.md; every number is reproducible
Technical Coherence verify_math.py simulates all 6 QASM circuits and confirms each lands on the expected ECDLP target state; verify_classical.py confirms curve arithmetic
Quantum Hardware Dependency HARDWARE.md names job ID; classical simulation can't fake noise discrimination from the uniform null
Implementation Impact 4-bit ECDLP recovered on utility-scale gate-model QPU; RESOURCES.md shows ~2.7× CX advantage vs Proos-Zalka
Resource Complexity 6 qubits, ~380 CX/circuit, depth ~650, no ancilla QEC — all tabulated in RESOURCES.md

License & IP

  • Code and QASM circuits: © 2026 S. H. Bachani, Merlin Digital. All Rights Reserved. See LICENSE.
  • Platform IP boundary: See NOTICE.md for what is disclosed vs. reserved. Publication of these artifacts does not license, waive, or disclose the underlying compilation procedure, Hamiltonian structure, scaling architecture, or domain-encoding schemes.
  • Patent coverage: US Patent Application 64/027,290 (pending), plus other patent and trade-secret protections on the broader platform.

Verification and reading of this repository for the purpose of assessing the QDay submission is expressly permitted. All other uses require contact with the copyright holder.


All files in this package are self-contained. No external data, no private endpoints, no proprietary dependencies.

About

4-bit ECDLP private-scalar recovery on IBM ibm_fez — QDay Prize submission artifact

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages