
GPU आधारित ओनियन हैश जनरेटर
स्कैलियन (Scallion) OpenCL और RSA सीखने का एक शौक प्रोजेक्ट था। हम वर्तमान में scallion का रखरखाव नहीं कर रहे हैं। यह दो महत्वपूर्ण तरीकों से खराब हो गया है:
पर्याप्त ध्यान और प्रयास के साथ, ऊपर दी गई दोनों चुनौतियों को पार करना संभव होगा। हम Tor v3 समर्थन प्राप्त करने के लिए GPU ECDSA कुंजी उत्पादन एल्गोरिदम के लिए समर्थन लागू कर सकते हैं। हम OpenSSL को अपडेट कर सकते हैं और गणित फ़ंक्शन को किसी अन्य लाइब्रेरी से बदल सकते हैं, या OpenSSL लाइब्रेरी के लिए अपना स्वयं का प्रबंधित कोड रैपर बना सकते हैं। हालांकि, vanitygen-plus जैसे रखरखाव वाले प्रोजेक्ट में v3 प्याज पतों के लिए समर्थन जोड़ना बेहतर होगा।
Scallion आपको OpenCL का उपयोग करके वैनिटी GPG कुंजियाँ और .onion पते (Tor के छिपी सेवाओं के लिए) बनाने देता है।
Scallion Mono (Arch Linux में परीक्षण) और .NET 3.5+ (Windows 7 और Server 2008 पर परीक्षण) पर चलता है।
Scallion वर्तमान में बीटा चरण में है और सक्रिय विकास के अंतर्गत है। फिर भी, हमें लगता है कि यह उपयोग के लिए तैयार है। सुधार मुख्य रूप से प्रदर्शन, यूज़र इंटरफ़ेस और स्थापना में आसानी में अपेक्षित हैं, न कि कुंजियाँ उत्पन्न करने के लिए उपयोग किए जाने वाले समग्र एल्गोरिदम में।
Scallion MIT लाइसेंस के तहत उपलब्ध है। यदि आप अपने प्रोजेक्ट में इस प्रोजेक्ट के कोड का उपयोग करते हैं, तो हम [email protected] पर इसके बारे में सुनना सराहेंगे।
यहाँ कुछ अक्सर पूछे जाने वाले प्रश्न और उनके उत्तर दिए गए हैं:
GPG कुंजियाँ क्यों उत्पन्न करें?
Scallion का उपयोग वेब ऑफ़ ट्रस्ट के मजबूत सेट में हर 32बिट कुंजी आईडी के लिए टकराव खोजने के लिए किया गया था, जो दर्शाता है कि 32बिट कुंजी आईडी कितनी असुरक्षित हैं। DEFCON पर एक वार्ता (वीडियो) थी/है और अतिरिक्त जानकारी https://evil32.com/ पर पाई जा सकती है।
मान्य वर्ण क्या हैं?
Tor .onion पते Base32 का उपयोग करते हैं, जिसमें सभी अक्षर और 2 से 7 तक के अंक शामिल हैं। वे केस-असंवेदनशील हैं।
GPG फ़िंगरप्रिंट हेक्साडेसिमल का उपयोग करते हैं, जिसमें अंक 0-9 और अक्षर A-F शामिल हैं।
क्या आप Bitcoin ASICs (जैसे Jalapeno, KnC) का उपयोग इस प्रक्रिया को तेज करने के लिए कर सकते हैं?
दुर्भाग्य से, नहीं। जबकि Scallion द्वारा उपयोग की जाने वाली प्रक्रिया अवधारणात्मक रूप से समान है (एक नॉन्स बढ़ाएँ और हैश की जाँच करें), विवरण अलग हैं (SHA-1 बनाम Bitcoin के लिए डबल SHA-256)। इसके अलावा, Bitcoin ASICs उतने तेज़ हैं जितने कि वे हैं क्योंकि वे Bitcoin माइनिंग अनुप्रयोगों के लिए अत्यधिक तैयार हैं। उदाहरण के लिए, यहाँ डेटाशीट है CoinCraft A-1 के लिए, एक ASIC जो कभी सामने नहीं आया, लेकिन संभवतः सामान्य दृष्टिकोण का संकेत है। माइक्रोकंट्रोलर एक Bitcoin ब्लॉक के अंतिम 128-बिट, पिछले बिट्स के हैश मिडस्टेट, एक लक्ष्य कठिनाई और प्रयास करने के लिए अधिकतम नॉन्स के रूप में कार्य भेजता है। ASIC नॉन्स डालने के लिए स्थान चुनता है, और वह चुनता है कि कौन से ब्लॉक हैश को पूरा करते हैं। Scallion को नॉन्स को एक अलग स्थान पर डालना होता है, और यह सिर्फ "XXXX से कम" के बजाय एक पैटर्न मैच की जाँच करता है।
आप एकाधिक उपकरणों का उपयोग कैसे कर सकते हैं?
कई Scallion इंस्टेंस चलाएँ। 😄 Scallion खोजें संभाव्य हैं, इसलिए आप दूसरे डिवाइस के साथ काम नहीं दोहराएँगे। वास्तविक बहु-उपकरण समर्थन बहुत कठिन नहीं होगा, लेकिन यह बहुत कुछ नहीं जोड़ेगा। मैंने tmux या screen में कई scallion इंस्टेंस बड़ी सफलता के साथ चलाए हैं। जब कोई एक पैटर्न ढूंढता है तो आपको सभी जॉब्स को मैन्युअल रूप से रोकना होगा (या आउटपुट फ़ाइल की निगरानी करने और परिणाम दिखने पर सभी को मारने के लिए एक शेल स्क्रिप्ट लिखनी होगी)।
सिर्फ नवीनतम बाइनरी संस्करण चाहिए? इसे यहाँ प्राप्त करें।
पूर्वापेक्षाएँ
अपने Linux वितरण के लिए नवीनतम mono प्राप्त करें:
सामान्य निर्भरताएँ स्थापित करें:
sudo apt-get update
sudo apt-get install libssl-dev mono-devel
AMD/OpenSource बिल्ड
sudo apt-get install ocl-icd-opencl-dev
Nvidia बिल्ड
sudo apt-get install nvidia-opencl-dev nvidia-opencl-icd
अंत में
msbuild scallion.sln
nvidia-docker कंटेनर रनटाइम रखें
कंटेनर बनाएँ:
docker build -t scallion -f Dockerfile.nvidia .
चलाएँ:
docker run --runtime=nvidia -ti --rm scallion -l
खोज के दौरान Scallion को पुनरारंभ करने से "प्रगति" नहीं खोएगी। यह एक संभाव्य खोज है और Scallion "प्रगति" नहीं करता है
डिवाइस सूचीबद्ध करें
$ mono scallion/bin/Debug/scallion.exe -l
हैश उत्पन्न करें