
GPU-त्वरित SHA-256 रेनबो टेबल कार्यान्वयन जो CDP (Cyclic Digit-sum Projection) संरचनात्मक विश्लेषण पर आधारित है। AMD RX 9070 XT, OpenCL + Vulkan।
SHA-256 के लिए CDP संरचनात्मक विश्लेषण फ्रेमवर्क का GPU-त्वरित रेनबो टेबल कार्यान्वयन।
CDP पेपर (DOI: 10.5281/zenodo.20627240) के निष्कर्षों पर निर्मित, यह रिपॉजिटरी AMD RDNA4 हार्डवेयर को लक्षित करते हुए OpenCL बिल्ड कर्नेल और Vulkan कम्प्यूट क्वेरी/वेरिफाई पाइपलाइनों के साथ CDP-आधारित रेनबो चेन टेबल का एक पूर्ण, कार्यशील कार्यान्वयन प्रदान करती है।
CDP (साइक्लिक डिजिट-सम प्रोजेक्शन) SHA-256 के लिए एक संरचनात्मक विश्लेषण फ्रेमवर्क है जो हैश फ़ंक्शन के आउटपुट वितरण के पहले अप्रलेखित गणितीय गुणों को प्रकट करता है।
मुख्य अवलोकन: किसी भी SHA-256 आउटपुट का हेक्स-डिजिट योग W(H), जब f(w) = W(SHA256(str(w))) के माध्यम से पुनरावृत्त रूप से पुनः-हैश किया जाता है, नियतात्मक रूप से ठीक दो बंद चक्रों में अभिसरित होता है:
C1: 476 ↔ 438 (2-चक्र)
C2: 471 → 472 → 525 → 537 → 414 → 417 → 546 → 518 → 471 (8-चक्र)
यह चक्रीय संरचना, एक बहु-घटक फिंगरप्रिंट F(H) = (W, Wvec₁₆, cycle_entry, W₂–W₅, max_nibble, min_nibble) के साथ मिलकर, बाधित इनपुट स्पेस पर एक द्विअर्थी मैपिंग उत्पन्न करती है — जिसमें शून्य रिडक्शन-फ़ंक्शन टकरावों के साथ O(1) प्रीइमेज लुकअप रेनबो टेबल के माध्यम से संभव होता है।
सिद्ध मुख्य गुण:
Σnibble(W₀) = 38π_B = 17.00%, K[i], H₀, और इनपुट वर्ग से स्वतंत्रW(H₀) = 502 — NIST आरंभीकरण स्थिरांकों का पता लगाने योग्य संरचनात्मक हस्ताक्षर (संतुलन से +22.2 ऊपर)CDP SHA-256 को तोड़ता नहीं है। प्रीइमेज और कोलिजन प्रतिरोध प्रभावित नहीं होते हैं। पेपर की धारा 12 देखें।
SHA256-CDP/
├── cdp_chain_builder.py # मुख्य प्रवेश बिंदु — बिल्ड, क्रैक, क्वेरी CLI
├── cdp_query.comp # Vulkan GLSL कम्प्यूट शेडर (क्वेरी कर्नेल)
├── cdp_verify.comp # Vulkan GLSL कम्प्यूट शेडर (वेरिफाई कर्नेल)
├── vulkan_query.py # Vulkan Python इंजन (ACO बैकएंड)
└── paper/
└── cdp_v3.pdf # CDP पेपर v3
pip install pyopenclpip install numpypip install vulkan + Vulkan SDKनोट: सही क्वेरी प्रदर्शन के लिए Vulkan आवश्यक है। इसके बिना, सिस्टम CPU मल्टीप्रोसेसिंग पर वापस आ जाता है (काफी धीमा)। OpenCL क्वेरी कर्नेल में gfx1201 पर एक ज्ञात AMD PAL-LLVM ऑप्टिमाइज़र बग है जो
-cl-fast-relaxed-mathके साथ गलत परिणाम उत्पन्न करता है; Vulkan ACO बैकएंड में यह समस्या नहीं है।
Windows उपयोगकर्ता: GPU मेमोरी एक्सेस ब्लॉक को टेबल ऑपरेशनों के दौरान रोकने के लिए Windows Defender नियंत्रित फ़ोल्डर एक्सेस व्हाइटलिस्ट में
python.exe,clinfo.exe, औरexplorer.exeजोड़ें।
git clone https://github.com/JM00NJ/SHA256-CDP
cd SHA256-CDP
pip install pyopencl numpy vulkan
GPU पहचान सत्यापित करें:
python cdp_chain_builder.py --validate
# एकल तालिका (लोअरकेस 8-अक्षर, chain_len=300,000)
python cdp_chain_builder.py --build --charset lower --length 8 --chain-len 300000 --output cdp_8.bin
# एकाधिक तालिकाएँ (उच्च कवरेज)
# n=1: 66.7% n=2: 88.9% n=3: 96.3% n=5: 99.3%
python cdp_chain_builder.py --build-multi 3 --prefix cdp_8_bin --length 8 --chain-len 300000
# एकल हैश
python cdp_chain_builder.py --crack <sha256_hash> \
--tables cdp_8_bin_1.bin,cdp_8_bin_2.bin,cdp_8_bin_3.bin \
--length 8 --chain-len 300000
# हैश सूची (बैच मोड — तालिकाएँ एक बार लोड होती हैं)
python cdp_chain_builder.py --crack-list hashes.txt \
--tables cdp_8_bin_1.bin,cdp_8_bin_2.bin,cdp_8_bin_3.bin \
--length 8 --chain-len 300000
python cdp_chain_builder.py --self-test --length 7
python cdp_chain_builder.py --validate
python cdp_chain_builder.py --validate-query <sha256_hash>
AMD Radeon RX 9070 XT (gfx1201, 32 CUs), Windows 11, ड्राइवर 3679.0 (PAL,LC) पर परीक्षित:
| संक्रिया | थ्रूपुट |
|---|---|
| तालिका निर्माण (ILP2 कर्नेल) | ~2.5 GH/s |
| क्वेरी — पहला बैच (उथला) | ~14 GH/s |
| क्वेरी — सभी बैचों का औसत | ~5 GH/s |
| GPU सत्यापन (Vulkan ACO) | ~2s प्रति 88k उम्मीदवार |
7-अक्षर लोअरकेस, 3 तालिकाएँ (96.3% कवरेज):
कर्नेल मोड:
--mode ilp2 — 2 चेन/थ्रेड, ILP के लिए इंटरलीव्ड SHA256 (डिफ़ॉल्ट, AMD RDNA पर सबसे तेज़)--mode vec4 — uint4 अंकगणित का उपयोग करके 4 चेन/थ्रेड--mode scalar — 1 चेन/थ्रेड (आधार रेखा)Windows (gfx1201) पर OpenCL द्वारा उपयोग किया जाने वाला AMD PAL-LLVM कंपाइलर बैकएंड एक प्रलेखित ऑप्टिमाइज़र बग रखता है: चर-प्रारंभ लूप (for step=pos; step<N) -cl-fast-relaxed-math के साथ गलत परिणाम उत्पन्न करते हैं। वर्कअराउंड (-O0) शुद्धता बहाल करता है लेकिन थ्रूपुट को ~3-4× कम कर देता है। Vulkan ACO बैकएंड एक पूरी तरह से अलग कंपाइलर पाइपलाइन है और इसमें यह समस्या नहीं है। क्वेरी और वेरिफाई कर्नेल Vulkan का उपयोग करते हैं; बिल्ड कर्नेल OpenCL का उपयोग करते हैं (बग से प्रभावित नहीं)।
मानक PCG-बीजित कमी फ़ंक्शन digest[0:2] से 64 बिट एन्ट्रॉपी का उपयोग करता है। CDP-इंजेक्टिव कमी बीज को पूर्ण फिंगरप्रिंट (W, Wvec₁₆, max_nibble, min_nibble) से बनाता है — वही घटक जो CDP द्विअर्थी प्रमेय द्वारा SHA256(X) पर इंजेक्टिव सिद्ध हुए हैं। यह कमी फ़ंक्शन से ही शून्य चेन मर्ज की गारंटी देता है; शेष मर्ज जन्मदिन-विरोधाभास एंडपॉइंट टकराव हैं (~33% प्रति तालिका, अपेक्षित 66.7% कवरेज से मेल खाता है)।
तालिकाएँ एक कॉम्पैक्ट बाइनरी प्रारूप (CDP1 मैजिक, 39 बाइट्स/एंट्री) का उपयोग करती हैं — JSON से लगभग 3.4× छोटा। मौजूदा JSON तालिकाओं को रूपांतरित करने के लिए --convert का उपयोग करें:
python cdp_chain_builder.py --convert table.json --output table.bin
| नाम | अक्षर | स्पेस (8-अक्षर) |
|---|---|---|
lower | a–z (26) | 2.1 × 10¹¹ |
alnum |
© 2026 एरेने ओज़कन (JM00NJ / Vesqer)
यह प्रोजेक्ट कॉमन्स क्लॉज़ के साथ GNU Affero General Public License v3.0 (AGPL-v3) के अंतर्गत लाइसेंस प्राप्त है।
कॉमन्स क्लॉज़ के तहत, आप इस सॉफ़्टवेयर को बेच नहीं सकते हैं या लेखक से स्पष्ट लिखित अनुमति के बिना इसे किसी वाणिज्यिक उत्पाद या सेवा के भाग के रूप में उपयोग नहीं कर सकते हैं।
AGPL-v3 शर्तों के तहत ओपन सोर्स उपयोग, अनुसंधान और गैर-वाणिज्यिक अनुप्रयोगों की अनुमति है — संशोधनों को उसी लाइसेंस के तहत प्रकाशित किया जाना चाहिए।
वाणिज्यिक लाइसेंसिंग पूछताछ के लिए: netacoding.com
पूर्ण शर्तों के लिए LICENSE देखें।
द्वारा निर्मित JM00NJ — netacoding.com
| a–z, 0–9 (36) |
| 2.8 × 10¹² |
full | a–z, A–Z, 0–9, प्रतीक (70) | 5.8 × 10¹⁴ |