Fitur khusus tina versi énggal nyaéta penampilan dukungan FPGA (sajaba CPU, GPU sareng Xeon Phi). Pikeun papan
Pikeun bcrypt, prestasi kahontal ~119k c/s kalawan 2^5 iterasi ("$2b$05") kalayan konsumsi kakuatan ~27 watt nyata ngaleuwihan hasil pikeun GPUs panganyarna per dewan, per harga hardware, sarta per watt. . Ogé dirojong
Pikeun nyepetkeun pagawéan, kami ngalaksanakeun pamakean masker (mode "-mask", kalebet dina kombinasi sareng modeu sanés) sareng ngabandingkeun hashes anu diitung sareng anu dimuat dina sisi FPGA. Tina sudut pandang palaksanaan, seueur desain (contona.
Parobahan penting séjén:
- Rojongan pikeun sajumlah ageung jinis tambahan hashes, ciphers, sareng sajabana, kalebet hashes sandi klasik (contona, tina versi QNX énggal), ogé dompet cryptocurrency, arsip énkripsi sareng sistem file énkripsi (contona, Bitlocker sareng FreeBSD geli), kitu ogé rojongan pikeun tipe anyar format saméméhna dirojong (contona, ditambahkeun rojongan pikeun bcrypt-pbkdf pikeun OpenBSD softraid) jeung leuwih. Dina total, 80 format geus ditambahkeun kana CPU jeung 47 on OpenCL. Jumlah total format ayeuna aya 407 dina CPU (atanapi 262 henteu kalebet format "dinamis" anu dikonpigurasi tina file konfigurasi) sareng 88 dina OpenCL.
- Panolakan pikeun ngarojong basa CUDA dina ni'mat OpenCL, nu di no way interferes jeung pamakéan pinuh NVIDIA GPUs (komo mantuan, hatur nuhun kana fokus ngembangkeun sarta optimasi dina hiji palaksanaan unggal format pikeun GPU tinimbang dua palaksanaan saméméhna).
- Rojongan pikeun susunan instruksi SIMD anyar - AVX2, AVX-512 (kaasup pikeun generasi kadua Xeon Phi) jeung MIC (pikeun generasi kahiji) - kitu ogé pamakéan leuwih universal tur lengkep SIMD dina palaksanaan loba format, kaasup pamakéan instruksi saméméhna dirojong susunan nepi ka AVX na XOP on x86 (-64) jeung
NEON, ASIMD sareng AltiVec dina ARM, Aarch64 sareng POWER, masing-masing. - Seueur optimasi pikeun CPU sareng OpenCL, duanana langkung éfisién damel sareng sajumlah ageung hashes sakaligus (contona, ngamuat 320 juta hashes SHA-1 dina GPU diuji), sareng ningkatkeun laju itungan hash. Sababaraha optimasi ieu universal, sababaraha nutupan subset format béda, sarta loba anu husus pikeun format individu.
- (Otomatis-) Konfigurasi panyangga optimal tina kecap akses anu dipariksa dina CPU ("—tune=auto —verbosity=5") sareng ukuran padamelan anu optimal dina OpenCL (diaktipkeun sacara standar), kalebet nganggap tanjakan anu laun dugi ka frékuénsi operasi pinuh. tina NVIDIA GTX runtuyan GPUs 10xx tur leuwih anyar. Ngagunakeun hashes sabenerna dimuat jeung panjang sabenerna kecap akses keur dipariksa (lamun geus dipikawanoh sateuacanna) pikeun auto-tuning misalna.
- Nambahkeun hiji kompiler pikeun "ekspresi dinamis" dieusian langsung dina garis paréntah sarta ngalaksanakeun tipe hash hibrid anyar, contona "-format = dinamis = 'sha1 (md5 ($ p). $ s)'", diitung dina CPU ngagunakeun SIMD. . Salaku komponén tina éksprési sapertos kitu, puluhan hash gancang dirojong (tina anu biasa sapertos MD5 dugi ka anu aheng sapertos Whirlpool), concatenation substring, encoding sareng decoding, konversi kasus karakter, rujukan kana kecap akses, uyah, nami pangguna sareng konstanta string.
- Ngaleungitkeun béda nu teu dihoyongkeun tina hashcat, kaasup rojongan pikeun aturan hashcat-spésifik saméméhna (paréntah aturan wordlist), transisi ka OpenCL alat panomeran ti 1, pamakéan standar tina panjang sandi sarua (biasana panjangna 7) pikeun tés kinerja.
- Modeu anyar pikeun ngahasilkeun kecap akses anu tiasa diverifikasi (modus cracking), kalebet PRINCE tina hashcat (ngawangun "frasa" ku ngagabungkeun sababaraha kecap dina ningkatkeun total panjangna), subsets (nyangking kecap konci kalayan jumlah karakter anu henteu cekap, sanaos karakter ieu sumping. ti set badag tina mungkin) jeung hibrid éksternal (ngamungkinkeun mode éksternal, digambarkeun dina file konfigurasi dina basa C-kawas, pikeun ngahasilkeun loba kecap akses verifiable dumasar kana unggal dasar "kecap" narima ti modeu sejen). Ogé, sababaraha modeu éksternal anu tos siapkeun anyar.
- Fitur tambahan pikeun ngagunakeun sababaraha modus sakaligus (hiji dina luhureun séjén - stacking), kitu ogé pikeun ngagunakeun susunan aturan (wordlist aturan stacking).
- Perbaikan mode topéng (laun manjang tina topéng dina rentang panjang anu ditangtukeun, aplikasi topéng di sisi alat OpenCL atanapi papan FPGA) sareng retakan tunggal (kalakuan anu wajar dina alat anu ngitung sajumlah ageung hashes paralel. , nu saméméhna teu cukup kecap akses verifiable dina modeu ieu, sarta ogé larangan dina konsumsi memori).
- Seueur perbaikan pikeun ngadukung Unicode sareng panyandian sanésna dina sababaraha subsistem.
- Seueur perbaikan kana program *2john (anu ngarobih file tina format anu béda pikeun
make jeung john), utamana wpapcap2john (handles lalulintas WiFi). - Aya loba pilihan garis paréntah anyar, setélan dina john.conf, ngonpigurasikeun pilihan Aksara jeung fitur anyar pakait, teu sakabéh nu disebutkeun di dieu.
- Ningkatkeun kualitas kode berkat dukungan anu diwangun pikeun debug ngawangun sareng AddressSanitizer (saméméhna) sareng UndefinedBehaviorSanitizer (ditambahkeun), nambihan fuzzer format anu diwangun (salaku bagian tina GSoC 2015), ngagunakeun integrasi kontinyu (diwangun pikeun puluhan sistem operasi sareng kompiler. kombinasi jeung nguji aranjeunna pikeun rojongan bener pikeun sakabéh format).
sumber: opennet.ru