Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
quantum — यह रिपॉजिटरी https://www.projecteleven.com/ द्वारा QDay पुरस्कार चुनौती के लिए कोड और सबमिशन विवरण शामिल करती है। | Kitploit
उपकरण/GitHubGitHub/giancarlolelli/quantum
शोषणक्रिप्टोग्राफीहार्डवेयर सुरक्षापेपर और शोधलर्निंग और शिक्षाबाइनरी शोषण
GitHubgiancarlolelli/quantum

quantum

यह रिपॉजिटरी https://www.projecteleven.com/ द्वारा QDay पुरस्कार चुनौती के लिए कोड और सबमिशन विवरण शामिल करती है।

रिपॉजिटरी देखें
3520125 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Shor का एल्गोरिथम ECDLP के लिए — Q-Day Prize प्रस्तुति

क्वांटम सॉल्वर एलिप्टिक कर्व डिस्क्रीट लॉगरिदम समस्या (ECDLP) के लिए, जो Q-Day Prize Challenge के लिए Project Eleven द्वारा निर्मित है। लक्ष्य: Shor के एल्गोरिथम का उपयोग करके वास्तविक क्वांटम हार्डवेयर पर ECC निजी कुंजियाँ पुनर्प्राप्त करना।

  • लेखक: Giancarlo Lelli
  • संपर्क: [email protected]
  • LinkedIn: https://www.linkedin.com/in/giancarlolelli
  • पृष्ठभूमि: 10+ वर्षों के अनुभव वाले प्रौद्योगिकी नेता, एंटरप्राइज़ सॉफ़्टवेयर, फुल-स्टैक आर्किटेक्चर और क्लाउड-नेटिव डेवलपमेंट में। कंप्यूटर विज्ञान में पृष्ठभूमि, .NET, Python, Rust और Cloud इकोसिस्टम में व्यावहारिक अनुभव। वर्तमान में Cloud GTM विशेषज्ञ के रूप में कार्यरत, समाधान आर्किटेक्चर और सेल्स इंजीनियरिंग पर ध्यान केंद्रित।

दृष्टिकोण

सभी चुनौती वक्र y^2 = x^3 + 7 का उपयोग करते हैं F_p पर (a = 0, b = 7), secp256k1 परिवार से मेल खाते हुए। सॉल्वर ECDLP के लिए Shor के एल्गोरिथम के दो-रजिस्टर वेरिएंट को लागू करता है:

  1. गणना रजिस्टर |j>, |k> को समान अध्यारोपण में तैयार करें (Hadamard)
  2. 2t नियंत्रित बिंदु जोड़ (t = num_counting qubits) के माध्यम से |j>|k>|jG + kQ> की गणना करें
  3. बिंदु रजिस्टर को मापें, इसे किसी समूह तत्व R में संक्षिप्त करें
  4. गणना रजिस्टर पर व्युत्क्रम QFT लागू करें
  5. j, k मापें और संबंध j + kd = r (mod n) से d निकालें

निजी कुंजी d को समूह क्रम n मॉड्यूलो समान रैखिक संबंध को संतुष्ट करने वाले कई (j, k) नमूने एकत्र करके पुनर्प्राप्त किया जाता है। सॉल्वर नियंत्रित बिंदु जोड़ के लिए छह ऑरेकल रणनीतियों का समर्थन करता है, जो वक्र आकार के आधार पर स्वचालित रूप से चुना जाता है या --oracle के माध्यम से मैन्युअल रूप से चुना जाता है।

ऑरेकल रणनीतियाँ

रणनीति 1: डेंस यूनिटरी (n_bits <= 6 के लिए डिफ़ॉल्ट)

~6 बिट तक के समूह क्रम वाले वक्रों के लिए उपयोग किया जाता है। projecteleven.py में कार्यान्वित।

प्रत्येक नियंत्रित बिंदु जोड़ "add S" को 2^(n+1) x 2^(n+1) क्रमचय मैट्रिक्स के रूप में प्रस्तुत किया जाता है, जिसे qc.unitary() के माध्यम से लागू किया जाता है। मैट्रिक्स पूर्ण समूह क्रिया को एन्कोड करता है: ऊपरी-बाएँ ब्लॉक पहचान है (नियंत्रण=0), निचला-दाएँ ब्लॉक मानचित्र P -> P+S (नियंत्रण=1) के अनुसार आधार अवस्थाओं को क्रमचयित करता है।

  • एन्कोडिंग: समूह सूचकांक (0..n-1)
  • मेमोरी: O(2^{2n}) प्रति मैट्रिक्स
  • क्यूबिट्स: 2t + n (दो गणना रजिस्टर + बिंदु रजिस्टर)
  • सीमा: Qiskit का यूनिटरी अपघटन O(4^n) है, जो ~6-बिट से परे अव्यावहारिक बनाता है

रणनीति 2: कुशल क्रमचय अपघटन (n_bits > 6 के लिए डिफ़ॉल्ट)

बड़े वक्रों के लिए उपयोग किया जाता है। quantum_arithmetic.py में कार्यान्वित।

घने मैट्रिक्स बनाने के बजाय, प्रत्येक "add S" क्रमचय को ट्रांसपोज़िशन में चक्र-विघटित किया जाता है। प्रत्येक ट्रांसपोज़िशन (दो आधार अवस्थाओं |a> <-> |b> की अदला-बदली) को लागू किया जाता है:

  1. CNOT कमी -- पिवट बिट से अन्य सभी भिन्न बिट्स तक CNOT, मल्टी-बिट अंतर को एकल-बिट अंतर में कम करता है
  2. मल्टी-नियंत्रित X -- पिवट बिट पर एक MCX गेट, लक्ष्य पैटर्न से मेल खाने वाले अन्य सभी बिट्स पर शर्त लगाता है
  3. CNOT को पूर्ववत करें -- गैर-पिवट बिट्स को बहाल करने के लिए चरण 1 को उल्टा करें

MCX समर्पित एंसिला क्वबिट्स के साथ V-चेन अपघटन का उपयोग करता है, जो एंसिला के बिना O(n^2) की तुलना में प्रति MCX O(n) Toffoli गेट देता है। प्रत्येक नियंत्रित जोड़ को एक पृथक उप-सर्किट के रूप में बनाया गया है और एक एकल अपारदर्शी गेट के रूप में जोड़ा गया है, Qiskit में द्विघात DAG वृद्धि से बचा।

  • एन्कोडिंग: समूह सूचकांक (0..n-1)
  • मेमोरी: O(N) प्रति जोड़ (N = समूह क्रम)
  • क्यूबिट्स: 2t + n + (n-2) एंसिला
  • गेट प्रति जोड़: O(N * n)

रणनीति 3: निर्देशांक-आधारित क्वांटम ऑरेकल (--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 बुनियादी ढाँचे का उपयोग करके ट्रांसपोज़िशन में चक्र-विघटित किया जाता है।

  • एन्कोडिंग: (x, y, id_flag) निर्देशांक
  • क्यूबिट्स: 2t + 2f_bits + 1 + max(0, 2f_bits - 1) एंसिला
  • गेट प्रति जोड़: O(N * f_bits)

रणनीति 4: अंकगणितीय ऑरेकल (--oracle arithmetic)

बहुपद-स्केलिंग बिंदु जोड़ के लिए ढाँचा। quantum_oracle.py और quantum_arithmetic.py में कार्यान्वित।

पूर्ण अंकगणितीय बिंदु जोड़ की ओर निर्माण खंड के रूप में QFT-आधारित मॉड्यूलर अंकगणितीय प्रिमिटिव के साथ निर्देशांक एन्कोडिंग (रणनीति 3 के समान) का उपयोग करता है। कोडबेस में कार्यान्वित और परीक्षित शामिल हैं:

  • Beauregard मॉड्यूलर एडर -- QFT-आधारित (लक्ष्य + स्थिरांक) mod p उचित एंसिला अनकंप्यूट के साथ
  • क्वांटम-क्वांटम मॉड्यूलर गुणा -- |a>|b>|0> -> |a>|b>|a*b mod p> शिफ्ट-एंड-एड और स्पष्ट मॉड्यूलर दोगुना, O(n^3) गेट
  • मॉड्यूलर व्युत्क्रम क्रमचय -- |x> -> |x^{-1} mod p> लुकअप टेबल ट्रांसपोज़िशन के माध्यम से
  • नियंत्रित क्वांटम-क्वांटम मॉड्यूलर जोड़ -- नियंत्रित |a> -> |a + b mod p> Beauregard कमी के साथ

अंकगणितीय प्रिमिटिव प्रति बिंदु जोड़ O(n^3) स्केलिंग प्राप्त करते हैं जबकि क्रमचय दृष्टिकोण O(N*n) होता है। हालाँकि, QFT-आधारित संचालन ~150x बड़ा स्थिरांक कारक रखते हैं, जिससे अंकगणितीय दृष्टिकोण केवल ~20-बिट समूह क्रम से ऊपर के वक्रों के लिए अधिक कुशल होता है। वर्तमान चुनौती आकारों (12-बिट तक) के लिए, क्रमचय-आधारित एडर तेज़ रहता है और डिफ़ॉल्ट रूप से उपयोग किया जाता है।

रणनीति 5: Google अर्ध-शास्त्रीय चरण अनुमान (--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 sizeStandard qubitsSemiclassical qubitsSavingsHardware verified
4-bit (n=7)11555%Yes
6-bit (n=31)17759%Yes
7-bit (n=79)26 + anc1446%Yes
8-bit (n=139)25 + anc10 + anc60%No (QPU sync overhead)
10-bit (n=547)31 + anc12 + anc61%No (QPU sync overhead)
  • एन्कोडिंग: अंतर्निहित रणनीति के समान (समूह सूचकांक)
  • क्यूबिट्स: 2 + n_bits + एंसिला (बनाम 2t + n_bits + एंसिला)
  • ट्रेड-ऑफ़: गतिशील सर्किट की आवश्यकता होती है (मध्य-सर्किट माप, रीसेट, शास्त्रीय रूप से वातानुकूलित गेट)। 7-बिट तक IBM Heron r2 पर काम करता है; 8-बिट+ पर शास्त्रीय फीडबैक सिंक्रोनाइज़ेशन ओवरहेड QPU समय बजट से अधिक हो जाता है

रणनीति 6: रिपल-कैरी मॉड्यूलर एडिशन (--oracle ripple)

ripple_carry_shor.py में कार्यान्वित। नियंत्रित बिंदु जोड़ के लिए CDKM रिपल-कैरी एडर्स (Cuccaro et al. 2004) का उपयोग करता है, जो डेंस यूनिटरी मैट्रिसेस और चक्र-विघटित ट्रांसपोज़िशन सर्किट दोनों को प्रतिस्थापित करता है।

समूह-सूचकांक एन्कोडिंग में, बिंदु P = kG को चक्रीय समूह में इसके सूचकांक k द्वारा दर्शाया जाता है। S = sG जोड़ना शास्त्रीय स्थिरांक s का मॉड्यूलर जोड़ (mod n) बन जाता है। मुख्य अंतर्दृष्टि: प्रत्येक नियंत्रित बिंदु जोड़ ज्ञात स्थिरांक के एक नियंत्रित मॉड्यूलर जोड़ में कम हो जाता है, जो Qiskit के CDKMRippleCarryAdder और IntegerComparator के माध्यम से कार्यान्वित होता है।

टूल डाउनलोड करें