
यह रिपॉजिटरी https://www.projecteleven.com/ द्वारा QDay पुरस्कार चुनौती के लिए कोड और सबमिशन विवरण शामिल करती है।
क्वांटम सॉल्वर एलिप्टिक कर्व डिस्क्रीट लॉगरिदम समस्या (ECDLP) के लिए, जो Q-Day Prize Challenge के लिए Project Eleven द्वारा निर्मित है। लक्ष्य: Shor के एल्गोरिथम का उपयोग करके वास्तविक क्वांटम हार्डवेयर पर ECC निजी कुंजियाँ पुनर्प्राप्त करना।
सभी चुनौती वक्र y^2 = x^3 + 7 का उपयोग करते हैं F_p पर (a = 0, b = 7), secp256k1 परिवार से मेल खाते हुए। सॉल्वर ECDLP के लिए Shor के एल्गोरिथम के दो-रजिस्टर वेरिएंट को लागू करता है:
निजी कुंजी d को समूह क्रम n मॉड्यूलो समान रैखिक संबंध को संतुष्ट करने वाले कई (j, k) नमूने एकत्र करके पुनर्प्राप्त किया जाता है। सॉल्वर नियंत्रित बिंदु जोड़ के लिए छह ऑरेकल रणनीतियों का समर्थन करता है, जो वक्र आकार के आधार पर स्वचालित रूप से चुना जाता है या के माध्यम से मैन्युअल रूप से चुना जाता है।
--oracle~6 बिट तक के समूह क्रम वाले वक्रों के लिए उपयोग किया जाता है। projecteleven.py में कार्यान्वित।
प्रत्येक नियंत्रित बिंदु जोड़ "add S" को 2^(n+1) x 2^(n+1) क्रमचय मैट्रिक्स के रूप में प्रस्तुत किया जाता है, जिसे qc.unitary() के माध्यम से लागू किया जाता है। मैट्रिक्स पूर्ण समूह क्रिया को एन्कोड करता है: ऊपरी-बाएँ ब्लॉक पहचान है (नियंत्रण=0), निचला-दाएँ ब्लॉक मानचित्र P -> P+S (नियंत्रण=1) के अनुसार आधार अवस्थाओं को क्रमचयित करता है।
बड़े वक्रों के लिए उपयोग किया जाता है। quantum_arithmetic.py में कार्यान्वित।
घने मैट्रिक्स बनाने के बजाय, प्रत्येक "add S" क्रमचय को ट्रांसपोज़िशन में चक्र-विघटित किया जाता है। प्रत्येक ट्रांसपोज़िशन (दो आधार अवस्थाओं |a> <-> |b> की अदला-बदली) को लागू किया जाता है:
MCX समर्पित एंसिला क्वबिट्स के साथ V-चेन अपघटन का उपयोग करता है, जो एंसिला के बिना O(n^2) की तुलना में प्रति MCX O(n) Toffoli गेट देता है। प्रत्येक नियंत्रित जोड़ को एक पृथक उप-सर्किट के रूप में बनाया गया है और एक एकल अपारदर्शी गेट के रूप में जोड़ा गया है, Qiskit में द्विघात DAG वृद्धि से बचा।
--oracle coordinate)~6-बिट तक के वक्रों के लिए उपलब्ध। quantum_oracle.py में कार्यान्वित।
समूह सूचकांक के रूप में बिंदुओं को एन्कोड करने के बजाय, क्वांटम रजिस्टर बाइनरी में वास्तविक (x, y) फ़ील्ड-तत्व निर्देशांक और एक पहचान फ़्लैग रखता है। बिंदु रजिस्टर लेआउट है:
x_reg: f_bits क्वबिट्स (f_bits = ceil(log2(p)))y_reg: f_bits क्वबिट्सid_flag: 1 क्वबिट (1 = अनंत पर बिंदु)प्रत्येक नियंत्रित "add S" की गणना सभी मान्य निर्देशांक एन्कोडिंग पर EC जोड़ सूत्र से की जाती है, जो निर्देशांक रजिस्टर पर एक क्रमचय उत्पन्न करता है। इस क्रमचय को रणनीति 2 के समान CNOT-कमी + MCX बुनियादी ढाँचे का उपयोग करके ट्रांसपोज़िशन में चक्र-विघटित किया जाता है।
--oracle arithmetic)बहुपद-स्केलिंग बिंदु जोड़ के लिए ढाँचा। quantum_oracle.py और quantum_arithmetic.py में कार्यान्वित।
पूर्ण अंकगणितीय बिंदु जोड़ की ओर निर्माण खंड के रूप में QFT-आधारित मॉड्यूलर अंकगणितीय प्रिमिटिव के साथ निर्देशांक एन्कोडिंग (रणनीति 3 के समान) का उपयोग करता है। कोडबेस में कार्यान्वित और परीक्षित शामिल हैं:
अंकगणितीय प्रिमिटिव प्रति बिंदु जोड़ O(n^3) स्केलिंग प्राप्त करते हैं जबकि क्रमचय दृष्टिकोण O(N*n) होता है। हालाँकि, QFT-आधारित संचालन ~150x बड़ा स्थिरांक कारक रखते हैं, जिससे अंकगणितीय दृष्टिकोण केवल ~20-बिट समूह क्रम से ऊपर के वक्रों के लिए अधिक कुशल होता है। वर्तमान चुनौती आकारों (12-बिट तक) के लिए, क्रमचय-आधारित एडर तेज़ रहता है और डिफ़ॉल्ट रूप से उपयोग किया जाता है।
--oracle google)google_semiclassical.py में कार्यान्वित। Griffiths & Niu (1996) से क्विट-रीसाइकल फेज़ एस्टीमेशन तकनीक से प्रेरित, Babbush et al. (2026) में secp256k1 ECDLP संसाधन अनुमानों के लिए स्केल पर लागू। Babbush et al. पेपर 30 मार्च, 2026 को प्रकाशित हुआ था।
दो मल्टी-क्विट गणना रजिस्टर (j, k) और बल्क व्युत्क्रम QFT को दो एकल रीसाइकल क्वबिट्स और शास्त्रीय रूप से वातानुकूलित चरण सुधारों से बदलता है। प्रत्येक गणना रजिस्टर बिट को क्रमिक रूप से संसाधित किया जाता है: |+> में तैयार करें, नियंत्रित बिंदु जोड़ लागू करें, पहले मापे गए सभी बिट्स के आधार पर चरण सुधारें, फिर मापें। Qiskit में reset और if_test डायनामिक सर्किट प्रिमिटिव IBM क्वांटम हार्डवेयर पर इसे सक्षम करते हैं।
नियंत्रित बिंदु जोड़ के लिए ऑरेकल मौजूदा बुनियादी ढाँचे (<= 6-बिट के लिए डेंस यूनिटरी, > 6-बिट के लिए कुशल क्रमचय) को सौंपा गया है, इसलिए क्विट बचत पूरी तरह से गणना रजिस्टरों को समाप्त करने से आती है।
| Curve size | Standard qubits | Semiclassical qubits | Savings | Hardware verified |
|---|---|---|---|---|
| 4-bit (n=7) | 11 | 5 | 55% | Yes |
| 6-bit (n=31) | 17 | 7 | 59% | Yes |
| 7-bit (n=79) | 26 + anc | 14 | 46% | Yes |
| 8-bit (n=139) | 25 + anc | 10 + anc | 60% | No (QPU sync overhead) |
| 10-bit (n=547) | 31 + anc | 12 + anc | 61% | No (QPU sync overhead) |
--oracle ripple)ripple_carry_shor.py में कार्यान्वित। नियंत्रित बिंदु जोड़ के लिए CDKM रिपल-कैरी एडर्स (Cuccaro et al. 2004) का उपयोग करता है, जो डेंस यूनिटरी मैट्रिसेस और चक्र-विघटित ट्रांसपोज़िशन सर्किट दोनों को प्रतिस्थापित करता है।
समूह-सूचकांक एन्कोडिंग में, बिंदु P = kG को चक्रीय समूह में इसके सूचकांक k द्वारा दर्शाया जाता है। S = sG जोड़ना शास्त्रीय स्थिरांक s का मॉड्यूलर जोड़ (mod n) बन जाता है। मुख्य अंतर्दृष्टि: प्रत्येक नियंत्रित बिंदु जोड़ ज्ञात स्थिरांक के एक नियंत्रित मॉड्यूलर जोड़ में कम हो जाता है, जो Qiskit के CDKMRippleCarryAdder और IntegerComparator के माध्यम से कार्यान्वित होता है।
ऑरेकल में 2m नियंत्रित मॉड्यूलर जोड़ (प्रति गणना रजिस्टर m) होते हैं, जहाँ प्रत्येक नियंत्रित मॉड-एड प्रदर्शन करता है:
सर्किट निर्माण में निजी कुंजी d के किसी ज्ञान का उपयोग नहीं किया जाता है। G-शक्तियों के लिए समूह सूचकांक की गणना 2^i mod n (सार्वजनिक) के रूप में की जाती है। Q-शक्तियों के लिए समूह सूचकांक G द्वारा उत्पन्न चक्रीय समूह के सार्वजनिक गणना से प्राप्त होते हैं — बिंदु Q इस गणना में देखा जाता है।
| Curve size | Qubits | 2Q Gates (transpiled) | Hardware verified |
|---|---|---|---|
| 4-bit (n=7) | 17 | 1,824 | Yes (simulation) |
| 8-bit (n=139) | 37 | 11,224 | — |
| 10-bit (n=547) | 45 | 17,204 | — |
| 12-bit (n=2143) | 53 | 24,304 | — |
| 16-bit (n=32497) | 65 | 98,049 | Yes |
| 17-bit (n=65173) | 69 | 111,816 | Yes |
| Metric | Dense Unitary | Efficient Permutation | Coordinate Oracle | Arithmetic Oracle | Semiclassical PE | Ripple-Carry |
|---|---|---|---|---|---|---|
| Point encoding | Group index | Group index | (x, y, id_flag) | (x, y, id_flag) | Group index | Group index |
| Scaling per addition | O(4^n) decomp. | O(N * n) | O(N * f_bits) | O(n^3) asymptotic | O(N * n) | O(m^2) |
| Qubits (4-bit) | 11 | 13 | 24 | 24 | 5 | 17 |
| Qubits (6-bit) | 17 | 21 | 36 | 36 | 9 | 25 |
| 2Q gates (4-bit) | 774 | ~1,200 | 6,449 | 6,449 | ~1,200 | 1,824 |
| 2Q gates (6-bit) | 23,471 | ~38,000 | 95,254 | 95,254 | ~38,000 | 4,582 |
| Practical range | <= 6-bit | <= ~16-bit | <= 6-bit | >= 20-bit (future) | <= ~16-bit | <= ~20-bit |
कोडबेस में 256-बिट पर पूर्ण अंकगणितीय निर्देशांक-एन्कोडिंग की ओर आधार के रूप में QFT-आधारित मॉड्यूलर अंकगणितीय निर्माण खंड (Beauregard/Draper एडर्स, क्वांटम-क्वांटम मॉड्यूलर गुणा, मॉड्यूलर व्युत्क्रम/निषेध) शामिल हैं। ये प्रिमिटिव p=13 तक के प्राइम के लिए स्टेटवेक्टर सिमुलेशन के माध्यम से सही सत्यापित किए गए हैं।
17-बिट तक के चुनौती वक्रों के लिए IBM क्वांटम हार्डवेयर पर निजी कुंजियाँ सफलतापूर्वक पुनर्प्राप्त की गईं:
| Challenge | p | n | Strategy | Qubits | 2Q Gates | Transpiled Depth | Shots | Backend | Recovered d | Job ID |
|---|---|---|---|---|---|---|---|---|---|---|
| 4-bit | 13 | 7 | Dense unitary | 11 | 774 | 2,425 | 8,192 | ibm_torino | 6 | d73u28kvllmc73anvi90 |
| 4-bit | 13 | 7 | Coordinate oracle | 24 | 6,449 | 13,125 | 8,192 | ibm_kingston | 6 | d74ht798qmgc73fm32c0 |
| 4-bit | 13 | 7 | Arithmetic oracle | 24 | 6,477 | 13,452 | 8,192 | ibm_torino | 6 | d75648lbjrds73ec0eng |
| 4-bit | 13 | 7 | Semiclassical PE | 5 | 747 | 2,522 | 256 | ibm_kingston | 6 | d75p1ftbjrds73ecne3g |
| 6-bit | 43 | 31 | Dense unitary | 17 | 23,471 | 72,475 | 8,192 | ibm_torino | 18 | d73u2l5koquc73e24u8g |
| 6-bit | 43 | 31 | Coordinate oracle | 36 | 95,254 | 169,766 | 8,192 | ibm_kingston | 18 | d74hu918qmgc73fm33g0 |
| 6-bit | 43 | 31 | Semiclassical PE | 7 | 23,256 | 73,183 | 256 | ibm_kingston | 18 | d75p1unq1anc738cmr6g |
| 7-bit | 67 | 79 | Semiclassical PE | 14 | 127,918 | 266,122 | 256 | ibm_kingston | 56 | d75p3sq3qcgc73fs2fpg |
| 8-bit | 163 | 139 | Efficient permutation | 32 | 294,628 | 599,517 | 8,192 | ibm_kingston | 103 | d73ui15koquc73e25e4g |
| 9-bit | 349 | 313 | Efficient permutation | 36 | 887,544 | 1,764,266 | 8,192 | ibm_torino | 135 | d73ua2h8qmgc73flei9g |
| 10-bit | 547 | 547 | Efficient permutation |
सभी रन IBM क्वांटम ओपन-इंस्टेंस प्लान पर निष्पादित किए गए, जो प्रति माह 10 मिनट मुफ्त क्वांटम कंप्यूटेशन प्रदान करता है। पूर्ण निष्पादन लॉग executions/ फ़ोल्डर में हैं।
रिपल-कैरी रणनीति (रणनीति 6) ने एक बड़ी छलांग सक्षम की: 10-बिट (40 क्वबिट्स, 2M गेट) से 17-बिट (69 क्वबिट्स, 112K गेट) तक — 18x दो-क्वबिट गेट गणना में कमी के साथ 7-बिट कुंजी आकार में वृद्धि। CDKM ऐडर की निकटतम-पड़ोसी गेट संरचना IBM के भारी-हेक्स टोपोलॉजी पर कुशलतापूर्वक मैप होती है, रूटिंग ओवरहेड को ~1x के पास रखती है।
अर्ध-शास्त्रीय रणनीति (--oracle google) ने IBM Heron r2 प्रोसेसर पर गतिशील सर्किट (मध्य-सर्किट reset, शास्त्रीय रूप से वातानुकूलित p गेट if_test के माध्यम से) का उपयोग करके 4-बिट, 6-बिट और 7-बिट पर कुंजियाँ सफलतापूर्वक पुनर्प्राप्त कीं। 7-बिट पर, सर्किट केवल 14 क्वबिट्स (मानक क्रमचय दृष्टिकोण के लिए 26 बनाम) का उपयोग करता है, जबकि ट्रांसपाइलेशन के बाद तुलनीय 2Q गेट गणना उत्पन्न करता है।
8-बिट और उससे ऊपर, अर्ध-शास्त्रीय दृष्टिकोण वर्तमान IBM हार्डवेयर पर अव्यावहारिक हो जाता है। यद्यपि if_else और reset Heron r2 पर समर्थित हैं (बैकएंड लक्ष्य निरीक्षण के माध्यम से पुष्टि की गई), प्रत्येक शास्त्रीय फीडबैक बिंदु पर पूर्ण QPU सिंक्रोनाइज़ेशन की आवश्यकता होती है — सभी 156 भौतिक क्वबिट्स को निष्क्रिय रहना चाहिए जबकि शास्त्रीय नियंत्रक ~16 सक्रिय क्वबिट्स के लिए सशर्त प्रक्रिया करता है। 16+ फीडबैक बिंदुओं पर विभाजित ~295K CZ गेट के साथ, प्रति-शॉट निष्पादन ओवरहेड QPU समय बजट से अधिक हो जाता है। मानक क्रमचय दृष्टिकोण, जो समान गेट गणना को गतिशील सर्किट के बिना एक ही सतत बैच के रूप में चलाता है, इस पैमाने पर सफलतापूर्वक पूरा होता है।
एक अनुमानित QFT ट्रंकेशन (max_corrections पैरामीटर) if_else ब्लॉकों की संख्या को O(n^2) से O(n) तक कम करता है, प्रति माप चरण निकटतम k चरण सुधारों को बनाए रखते हुए (k से परे कोण हार्डवेयर शोर फ़्लोर से नीचे, < pi/2^{k+1} योगदान करते हैं)। max_corrections=1 के साथ, 8-बिट सर्किट में 16 if_else ब्लॉक हैं — फिर भी इस गेट गणना पर IBM हार्डवेयर पर टाइमआउट का कारण बनने के लिए पर्याप्त है।
लगभग ~99.5% की विशिष्ट IBM क्वांटम दो-क्वबिट (CX) गेट निष्ठा मानते हुए, अनुमानित सर्किट निष्ठा गेट गणना के साथ घातांकीय रूप से गिरती है:
| Challenge | Strategy | 2Q Gates | Est. Circuit Fidelity | Unique Outcomes | Total Shots | Signal Regime |
|---|---|---|---|---|---|---|
| 4-bit | Dense | 774 | ~2.1% | 1,869 / 2,048 | 8,192 | Weak signal |
| 6-bit | Dense | 23,471 | ~10^{-51} | 3,776 / 131,072 | 8,192 | Noise-dominated |
| 8-bit | Permutation | 294,628 | ~10^{-644} | 8,128 / 4.3B | 8,192 | Noise-dominated |
| 9-bit | Permutation | 887,544 | ~10^{-1,939} | 8,168 / 68.7B | 8,192 | Noise-dominated |
| 10-bit | Permutation | 2,049,138 | ~10^{-4,477} | 1,024 / 1.1T | 1,024 | Noise-dominated |
| 16-bit | Ripple-carry | 98,049 | ~10^{-214} | 20,000 / 2^65 | 20,000 | Noise-dominated |
| 17-bit | Ripple-carry | 111,816 | ~10^{-244} | 20,000 / 2^69 | 20,000 | Noise-dominated |
सर्किट निष्ठा की गणना F ≈ (0.995)^{CX_count} के रूप में की जाती है। 4-बिट से परे सब कुछ के लिए, अनुमानित निष्ठा खगोलीय रूप से छोटी है — आउटपुट वितरण अत्यधिक शोर-प्रभावित है।
8-बिट और उससे ऊपर के लिए, प्रत्येक शॉट लगभग अद्वितीय बिटस्ट्रिंग उत्पन्न करता है (8,192 शॉट्स में से 8,128 अद्वितीय परिणाम 8-बिट पर; 16-बिट और 17-बिट पर सभी 20,000 अद्वितीय)। आउटपुट बिटस्ट्रिंग स्तर पर समान यादृच्छिक नमूने से अप्रभेद्य है। फिर भी एल्गोरिथम अभी भी सही निजी कुंजी को पुनर्प्राप्त करता है।
मुख्य अंतर्दृष्टि यह है कि Shor का पोस्ट-प्रोसेसिंग शोर के प्रति मजबूत है, जैसा कि कच्चा बिटस्ट्रिंग विश्लेषण नहीं है। प्रत्येक शॉट एक (j, k, r) माप ट्रिपल उत्पन्न करता है। निष्कर्षण d_cand = (r - j) · k^{-1} mod n की गणना करता है और d_cand · G == Q के माध्यम से सत्यापित करता है। केवल सच्चा d EC सत्यापन पास करता है, इसलिए हजारों शोर शॉट्स के बीच एक भी सही उम्मीदवार पर्याप्त है।
एक विशुद्ध यादृच्छिक (j, k, r) ट्रिपल ~1/n संभावना के साथ सही d_cand उत्पन्न करता है। S शॉट्स के साथ, अकेले शोर से सत्यापित हिट की अपेक्षित संख्या ~S/n है। 17-बिट (n=65,173, S=20,000) पर, यह ~0.3 अपेक्षित शोर हिट देता है — इस पैमाने पर कोई भी सफल पुनर्प्राप्ति शास्त्रीय शोर फ़्लोर से परे क्वांटम सिग्नल का सबूत प्रदान करती है।
छोटे वक्रों के लिए जहाँ शॉट्स >> n (जैसे, 547 के n और 1,024 शॉट्स के साथ 10-बिट), शोर फ़्लोर ~1,024/547 ≈ 1.9 वोट प्रति उम्मीदवार है। यहां तक कि मुट्ठी भर सिग्नल-युक्त शॉट्स सही d को शोर फ़्लोर से ऊपर धकेलते हैं। यह बताता है कि कैसे एल्गोरिथम सर्किट निष्ठाओं के बावजूद सफल होता है जो गणना को असंभव बना देंगे।
खिलौना पैमाने पर, निष्कर्षण का सत्यापन चरण (d_cand * G == Q) एक फिल्टर के रूप में कार्य करता है जो केवल सच्चे d को स्वीकार करता है। इसका मतलब है कि यहां तक कि विशुद्ध यादृच्छिक (j, k, r) ट्रिपल प्रति रन लगभग shots / n की दर से मान्य उम्मीदवार उत्पन्न करेंगे। जब shots >> n होता है, तो अकेले यादृच्छिक शोर उच्च संभावना के साथ d को पुनर्प्राप्त कर सकता है।
यह परीक्षण करने के लिए कि क्या क्वांटम सर्किट इस शास्त्रीय शोर फ़्लोर से परे सिग्नल का योगदान करता है, हमने ibm_kingston पर 6-बिट चुनौती (n=31) को केवल 8 शॉट्स (समूह क्रम से काफी नीचे) के साथ 10 बार चलाया:
| Run | Job ID | Result |
|---|---|---|
| 1 | d75qrrq3qcgc73fs4hn0 | FAIL |
| 2 | d75qs3e8faus73f0ep6g | FAIL |
| 3 | d75qsafq1anc738coujg | FAIL |
| 4 | d75qsie8faus73f0eplg | d = 18 |
| 5 | d75qsq23qcgc73fs4ing | d = 18 |
| 6 | d75qt168faus73f0eq50 | FAIL |
| 7 | d75qt7vq1anc738covf0 | d = 18 |
| 8 | d75qthu8faus73f0eqmg | FAIL |
| 9 | d75qtodbjrds73ecpk80 | d = 18 |
| 10 | d75qtvi3qcgc73fs4jsg | FAIL |
परिणाम: 4/10 सफलताएँ (40%) बनाम ~20% की शास्त्रीय शोर आधार रेखा (मोंटे कार्लो सिमुलेशन के माध्यम से गणना: सत्यापन के माध्यम से फ़िल्टर किए गए (r-j)*k_inv mod 31 के साथ 8 यादृच्छिक बिटस्ट्रिंग)। एक-पूंछ वाला द्विपद परीक्षण: P(X >= 4 | n=10, p=0.20) = 0.121, शोर फ़्लोर पर 2x सुधार का संकेत देता है। हालांकि व्यक्तिगत रूप से p < 0.05 (जिसके लिए 5+ सफलताओं की आवश्यकता होगी) पर सांख्यिकीय रूप से महत्वपूर्ण नहीं है, देखी गई दर यादृच्छिक मौका प्रदान करने से परे प्रति रन लगभग 1-2 अतिरिक्त मान्य (j, k) जोड़े का योगदान करने वाले क्वांटम सिग्नल के अनुरूप है।
यह परिणाम शास्त्रीय शोर फ़्लोर और सैद्धांतिक क्वांटम लाभ क्षेत्र के बीच बैठता है। बड़े वक्र आकारों पर जहाँ n >> शॉट्स होता है, शोर आधार रेखा 1% से नीचे गिर जाती है और कोई भी सफल कुंजी पुनर्प्राप्ति क्वांटम गणना का मजबूत सबूत बन जाती है।
git clone https://github.com/GiancarloLelli/quantum.git cd quantum
python -m venv . Scripts\Activate.ps1 # For Windows only
pip install -r requirements.txt
### कैसे चलाएं
आपको एक [IBM Quantum](https://quantum.ibm.com/) खाते की आवश्यकता है। पहली बार चलाने पर अपना API टोकन दें और यह स्थानीय रूप से सहेज लिया जाएगा:```bash
# Solve the 4-bit challenge curve:
python projecteleven.py --challenge 4 --token YOUR_IBM_TOKEN --backend ibm_marrakesh
# Subsequent runs (token already saved):
python projecteleven.py --challenge 4 --backend ibm_marrakesh
# Use the coordinate-based quantum oracle:
python projecteleven.py --challenge 4 --oracle coordinate --backend ibm_marrakesh
# Use the arithmetic oracle (coordinate encoding + QFT primitives):
python projecteleven.py --challenge 4 --oracle arithmetic --backend ibm_marrakesh
# Use ripple-carry modular addition (CDKM — best for 8-bit+):
python projecteleven.py --challenge 16 --oracle ripple --backend ibm_fez --shots 20000
# Use Google semiclassical phase estimation (qubit-recycled):
python projecteleven.py --challenge 4 --oracle google --backend ibm_marrakesh
# Use a specific IBM Quantum instance:
python projecteleven.py --challenge 4 --instance ibm-q/open/main --backend ibm_marrakesh
# Verify curve parameters without quantum execution:
python projecteleven.py --curve curve_4 --verify-only
| फ़्लैग | विवरण | डिफ़ॉल्ट |
|---|---|---|
--challenge N | N-बिट चैलेंज वक्र को हल करें input_curves.json से | — |
--curve NAME | एक अंतर्निर्मित परीक्षण वक्र का उपयोग करें (curve_4) | — |
--token TOKEN | IBM Quantum API टोकन (पहली बार उपयोग पर स्थानीय रूप से सहेजा जाता है) | — |
--backend NAME | IBM Quantum बैकएंड | ibm_marrakesh |
--instance ID | IBM Quantum इंस्टेंस | open-instance |
--shots N | माप शॉट्स की संख्या | 8192 |
--oracle TYPE | Oracle रणनीति: dense, permutation, coordinate, arithmetic, google, या ripple | auto |
--optimization-level N | Qiskit ट्रांसपिलेशन ऑप्टिमाइज़ेशन स्तर (0-3) | 3 |
--d N | परीक्षण के लिए ज्ञात गुप्त कुंजी (--curve के साथ) | — |
--verify-only | वक्र पैरामीटर सत्यापित करें और बाहर निकलें | — |
projecteleven.py # Shor solver — dense unitary approach + CLI entry point quantum_arithmetic.py # Efficient permutation decomposition + QFT arithmetic primitives quantum_oracle.py # Coordinate-based oracle + arithmetic oracle framework google_semiclassical.py # Google semiclassical PE — qubit-recycled phase estimation ripple_carry_shor.py # Ripple-carry modular addition oracle (CDKM) — best for 8-bit+ input_curves.json # Challenge curves (4-bit to 30-bit) problem/curves.py # Curve generation utility requirements.txt # qiskit, qiskit-ibm-runtime
## सन्दर्भ
- P. Shor, ["क्वांटम गणना के लिए एल्गोरिथम: असतत लघुगणक और गुणनखंडन"](https://arxiv.org/abs/quant-ph/9508027) (1994)
- S. Beauregard, ["2n+3 क्विबिट का उपयोग करके शोर के एल्गोरिथम के लिए सर्किट"](https://arxiv.org/abs/quant-ph/0205095) (2003)
- S. A. Cuccaro, T. G. Draper, S. A. Kutin, D. P. Moulton, ["एक नया क्वांटम रिपल-कैरी योग सर्किट"](https://arxiv.org/abs/quant-ph/0410184) (2004)
- M. Roetteler, M. Naehrig, K. Svore, K. Lauter, ["अण्डाकार वक्र असतत लघुगणक की गणना के लिए क्वांटम संसाधन अनुमान"](https://arxiv.org/abs/1706.06752) (2017)
- R. Griffiths, C.-S. Niu, ["क्वांटम गणना के लिए अर्धशास्त्रीय फूरियर रूपांतरण"](https://arxiv.org/abs/quant-ph/9511007) (1996)
- R. Babbush et al., ["क्वांटम कमजोरियों के विरुद्ध अण्डाकार वक्र क्रिप्टोकरेंसी को सुरक्षित करना: संसाधन अनुमान और शमन"](https://quantumai.google/static/site-assets/downloads/cryptocurrency-whitepaper.pdf) (2026)
## लाइसेंस
यह प्रोजेक्ट Q-Day Prize Challenge के लिए एक सबमिशन है, जो [MIT LICENSE](https://github.com/giancarlolelli/quantum/blob/main/LICENSE) के तहत जारी किया गया है।
| 40 |
| 2,049,138 |
| 3,948,250 |
| 1,024 |
| ibm_torino |
| 165 |
| d752vfu8faus73evhovg |
| 16-bit | 32,803 | 32,497 | Ripple-carry | 65 | 98,049 | 202,994 | 20,000 | ibm_fez | 20,248 | d790j2hq1efs73d2979g |
| 17-bit | 65,647 | 65,173 | Ripple-carry | 69 | 111,816 | 231,475 | 20,000 | ibm_fez | 1,441 | d790krrc6das739idasg |