
مولّد هاش Onion يعمل على GPU
كان Scallion مشروعًا هواية لتعلم OpenCL و RSA. نحن لا نقوم حاليًا بصيانة scallion. لقد تعرض للتآكل البرمجي بطريقتين مهمتين:
مع الاهتمام والجهد الكافيين، سيكون من الممكن التغلب على كلا التحديين المذكورين أعلاه. يمكننا تنفيذ دعم لخوارزمية توليد مفاتيح ECDSA على GPU للحصول على دعم Tor v3. يمكننا تحديث OpenSSL واستبدال دوال الرياضيات بمكتبة مختلفة، أو إنشاء غلاف كود مُدار خاص بنا لمكتبة OpenSSL. ومع ذلك، سيكون من الأفضل على الأرجح إضافة دعم لعناوين Onion v3 إلى مشروع مُصان مثل vanitygen-plus.
يتيح لك Scallion إنشاء مفاتيح GPG مخصصة وعناوين .onion (لـ خدمات Tor المخفية) باستخدام OpenCL.
يعمل 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.
هل يمكنك استخدام ASICs بيتكوين (مثل Jalapeno، KnC) لتسريع هذه العملية؟
للأسف لا. بينما العملية التي يستخدمها Scallion متشابهة من الناحية المفاهيمية (زيادة nonce والتحقق من التجزئة)، فإن التفاصيل مختلفة (SHA-1 مقابل SHA-256 المزدوج لبيتكوين). علاوة على ذلك، ASICs بيتكوين سريعة جدًا لأنها مصممة خصيصًا لتطبيقات تعدين بيتكوين. على سبيل المثال، إليك ورقة البيانات لـ CoinCraft A-1، وهو ASIC لم يصدر أبدًا، ولكن من المحتمل أنه يشير إلى النهج العام. يرسل المتحكم الدقيق العمل في شكل آخر 128 بت من كتلة بيتكوين، والحالة الوسطى للتجزئة للبتات السابقة، وصعوبة الهدف، وأقصى nonce لتجربته. يختار ASIC الموقع لإدراج nonce، ويختار أي الكتل تحقق التجزئة. يتعين على Scallion إدراج nonce في موقع مختلف، ويتحقق من تطابق النمط بدلاً من مجرد "أقل من XXXX".
كيف يمكنك استخدام أجهزة متعددة؟
قم بتشغيل عدة نسخ من Scallion. 😄 عمليات البحث في Scallion احتمالية، لذا لن تكرر العمل مع الجهاز الثاني. الدعم الحقيقي لأجهزة متعددة لن يكون صعبًا للغاية، لكنه أيضًا لن يضيف الكثير. لقد قمت بتشغيل عدة نسخ من scallion في tmux أو screen بنجاح كبير. ستحتاج فقط إلى إنهاء جميع المهام يدويًا عندما يعثر أحدها على نمط (أو كتابة سكربت شل لمراقبة ملف المخرجات وقتلهم جميعًا عند رؤية النتائج).
هل تريد أحدث إصدار ثنائي فقط؟ احصل عليه من هنا.
المتطلبات الأساسية
احصل على أحدث mono لتوزيعة Linux الخاصة بك:
تثبيت التبعيات الشائعة:
sudo apt-get update
sudo apt-get install libssl-dev mono-devel
بناء AMD/مصدر مفتوح
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
توليد تجزئة