Yangi versiyaning o'ziga xos xususiyati - FPGA-ni qo'llab-quvvatlashning ko'rinishi (CPU, GPU va Xeon Phi-dan tashqari). Plitalar uchun
Bcrypt uchun 119^2 iteratsiyada ("$5b$2") erishilgan ~05k c/s quvvat sarfi taxminan ~27 vatt bo'lgan eng so'nggi GPU-larni har bir plataga, har bir apparat narxiga va vattga sezilarli darajada oshiradi. Shuningdek, qo'llab-quvvatlanadi
Ishni tezlashtirish uchun biz niqob ("-mask" rejimi, shu jumladan boshqa rejimlar bilan birgalikda) va hisoblangan xeshlarni FPGA tomonida yuklanganlar bilan taqqoslashni amalga oshirdik. Amalga oshirish nuqtai nazaridan, ko'pgina dizaynlarda (masalan, uchun
Boshqa muhim o'zgarishlar:
- Klassik parol xeshlarini (masalan, QNX ning yangi versiyalaridan) va kriptovalyuta hamyonlarini, shifrlangan arxivlarni va shifrlangan fayl tizimlarini (masalan, Bitlocker va FreeBSD geli) o'z ichiga olgan ko'plab qo'shimcha turdagi xeshlar, shifrlar va boshqalarni qo'llab-quvvatlash. ), shuningdek, ilgari qo'llab-quvvatlangan formatlarning yangi navlarini qo'llab-quvvatlash (masalan, OpenBSD dasturiy ta'minoti uchun bcrypt-pbkdf qo'llab-quvvatlashi qo'shilgan) va boshqalar. Hammasi bo'lib CPU-ga 80 ta format va OpenCL-ga 47 ta format qo'shilgan. Hozirda protsessorda formatlarning umumiy soni 407 ta (yoki konfiguratsiya fayllaridan tuzilgan “dinamik” formatlarni hisobga olmaganda 262 ta) va OpenCL da 88 ta.
- OpenCL foydasiga CUDA tilini qo'llab-quvvatlashni olib tashlash, bu NVIDIA GPU-dan to'liq foydalanishga hech qanday xalaqit bermaydi (va hatto ikkita format o'rniga GPU ostida har bir formatni bitta amalga oshirishga ishlab chiqish va optimallashtirishga e'tibor qaratish tufayli yordam beradi) oldin amalga oshirilgan).
- Yangi SIMD ko'rsatmalar to'plamlarini qo'llab-quvvatlash - AVX2, AVX-512 (shu jumladan Xeon Phi ikkinchi avlodi uchun) va MIC (birinchi avlod uchun) - shuningdek, SIMD-dan ko'plab formatlarni amalga oshirishda, shu jumladan foydalanishda universal va to'liq foydalanish. x86(-64) da AVX va XOP uchun ilgari qo'llab-quvvatlangan ko'rsatmalar to'plami va
NEON, ASIMD va AltiVec mos ravishda ARM, Aarch64 va POWER da. - Bir vaqtning o'zida ko'p sonli xeshlar bilan samaraliroq ishlash (masalan, GPUga 320 million SHA-1 xeshini yuklash) va xeshni hisoblash tezligini oshirish uchun CPU va OpenCL uchun ko'plab optimallashtirishlar. Ushbu optimallashtirishlarning ba'zilari universaldir, ba'zilari turli xil formatlarni qamrab oladi va ko'plari formatga xosdir.
- (Avtomatik) protsessorda tekshirilgan parollarning optimal buferlanishini sozlash (“-tune=auto —verbosity=5”) va OpenCL da optimal ish o‘lchamlari (sukut bo‘yicha yoqilgan), shu jumladan to‘liq ish chastotasiga sekin tiklanishni hisobga olgan holda NVIDIA GTX seriyali GPU 10xx va undan yangiroq. Bunday avtomatik sozlash uchun haqiqiy yuklangan xeshlardan va tekshirilgan parollarning haqiqiy uzunligidan foydalanish (oldindan ma'lum bo'lganda).
- To'g'ridan-to'g'ri buyruq satrida ko'rsatilgan va yangi gibrid xesh turlarini amalga oshiradigan "dinamik ifodalar" kompilyatorini qo'shish, masalan, protsessorda hisoblangan "--format=dynamic='sha1(md5($p).$s)'", SIMD yordamida. Bunday iboralarning komponentlari sifatida o'nlab tezkor xeshlar (MD5 kabi oddiylaridan tortib, Whirlpool kabi engil ekzotiklargacha), pastki qatorlarni birlashtirish, kodlash va dekodlash, belgilar registrini konvertatsiya qilish, parol havolalari, tuz, foydalanuvchi nomi va satr konstantalari qo'llab-quvvatlanadi.
- Hashcat-dan nomaqbul farqlarni yo'q qilish, shu jumladan, ilgari hashcat-ga xos so'zlar ro'yxati qoida buyruqlarini qo'llab-quvvatlash, ishlash testlari uchun bir xil standart parol uzunligidan (odatda uzunligi 1) foydalanish, 7 dan OpenCL qurilmasini raqamlashga o'tish.
- Buzilgan parollarni yaratish uchun yangi rejimlar (kreking rejimlari), shu jumladan hashcat dan PRINCE (umumiy uzunlik boʻyicha oʻsish tartibida bir nechta soʻzlarni birlashtirish orqali “iboralar” hosil qiladi), kichik toʻplamlar (har xil belgilar yetarli boʻlmagan parollarni olib keladi, garchi bu belgilar quyidagidan kelgan boʻlsa ham. mumkin bo'lganlarning katta to'plami) va gibrid tashqi (C-ga o'xshash tilda konfiguratsiya fayllarida tasvirlangan tashqi rejimlarga boshqa rejimdan olingan har bir asosiy "so'z" asosida ko'plab tekshiriladigan parollarni yaratishga imkon beradi). Bundan tashqari, bir nechta yangi oldindan belgilangan tashqi rejimlar.
- Bir vaqtning o'zida bir nechta rejimlardan foydalanish uchun qo'shimcha funktsiyalar (birining ustiga - stacking), shuningdek, qoidalar to'plamidan bunday foydalanish uchun (so'z ro'yxati qoidalarini stacking).
- Niqob rejimlarini takomillashtirish (niqobni belgilangan uzunlik oralig'ida bosqichma-bosqich cho'zish, niqobni OpenCL qurilmasi yoki FPGA platasining yon tomoniga qo'llash) va bitta yoriq (ko'p sonli xeshlarni parallel ravishda hisoblaydigan qurilmalarda oqilona xatti-harakatlar, ilgari ular ushbu rejimda tekshiriladigan parollar yo'q, shuningdek, xotirani sarflash cheklovlari mavjud emas).
- Turli quyi tizimlarda Unicode va boshqa kodlashlarni qo'llab-quvvatlash bo'yicha ko'plab yaxshilanishlar.
- *2john dasturlarida ko'plab yaxshilanishlar (turli formatdagi fayllarni
john bilan foydalaning), ayniqsa wpapcap2john (WiFi trafigini boshqaradi). - Ko'pgina yangi buyruq qatori opsiyalari, john.conf sozlamalari, skript parametrlarini sozlash va ularga mos keladigan yangi xususiyatlar, bu erda hammasi ham aytib o'tilmagan.
- AddressSanitizer (ilgari) va UndefinedBehaviorSanitizer (qo‘shilgan) yordamida disk raskadrovka tuzilmalarini o‘rnatilgan qo‘llab-quvvatlash, uzluksiz integratsiyani qo‘llash (GSoC 2015 ichida) yordamida kod sifatini yaxshilash (o‘nlab operatsion tizim va kompilyator birikmalari va barcha formatlarni to'g'ri qo'llab-quvvatlash uchun ularni sinovdan o'tkazish).
Manba: opennet.ru