Taybetmendiyek taybetî ya guhertoya nû xuyangkirina piştgiriya FPGA ye (ji bilî CPU, GPU û Xeon Phi). Ji bo panelan
Ji bo bcrypt, performansa bidestxistî ya ~119k c/s bi 2^5 dubareyan ("$2b$05") bi xerckirina hêzê ya ~27 watt bi girîngî ji encamên GPU-yên herî dawî yên her panelê, her bihayê hardware, û her watt derbas dibe. . Her weha piştgirî kirin
Ji bo lezkirina xebatê, me karanîna maskek (moda "-maske", tevî modên din jî di nav de) û berhevdana haşeyên hesabkirî bi yên ku li aliyê FPGA ve hatine barkirin, bicîh anîn. Ji perspektîfek pêkanînê, gelek sêwiranan (mînak.
Guhertinên din ên girîng:
- Piştgiriya hejmareke mezin ji celebên din ên haş, şîfre, û hwd., di nav de hem şîfreyên klasîk ên şîfreyê (mînak, ji guhertoyên nû yên QNX), hem jî berîkên diravên krîpto, arşîvên şîfrekirî û pergalên pelan ên şîfrekirî (mînak, Bitlocker û FreeBSD geli), û her weha piştgirî ji bo celebên nû yên formatên ku berê hatine piştgirî kirin (mînak, piştgiriya bcrypt-pbkdf ji bo OpenBSD softraid zêde kir) û hêj bêtir. Bi tevahî, 80 format li CPU û 47 li OpenCL hatine zêdekirin. Hejmara giştî ya formatan naha li ser CPU-yê 407 e (an 262 ne di nav wan de formatên "dînamîk" ên ku ji pelên veavakirinê hatine mîheng kirin) û 88 li OpenCL ye.
- Redkirina piştgirîkirina zimanê CUDA di berjewendiya OpenCL de, ku bi tu awayî destwerdanê li karanîna tevahî GPU-yên NVIDIA nake (û tewra jî dibe alîkar, spas ji ber balkişandina pêşkeftin û xweşbîniyê li ser yek pêkanîna her formatê ji bo GPU-yê li şûna du pêkanînên berê).
- Piştgiriya komên rêwerzên SIMD yên nû - AVX2, AVX-512 (di nav de ji bo nifşa duyemîn Xeon Phi) û MIC (ji bo nifşa yekem) - û her weha karanîna gerdûnî û bêkêmasî ya SIMD-ê di pêkanîna gelek formatan de, tevî karanîna talîmatên ku berê hatine piştgirî kirin AVX û XOP li ser x86 (-64) saz dike û
NEON, ASIMD û AltiVec bi rêzdarî li ser ARM, Aarch64 û POWER. - Gelek xweşbîniyên ji bo CPU û OpenCL, hem ji bo ku bi hevdemî bi hejmareke mezin haşeyan re bi bandortir bixebitin (mînakî, barkirina 320 mîlyon SHA-1 hash li ser GPU hate ceribandin), hem jî ji bo zêdekirina leza hesabên hash. Hin ji van optimîzasyonan gerdûnî ne, hin binkeyên cûda yên formatan vedigirin, û gelek jî ji bo formên kesane taybetî ne.
- (Xweber-) veavakirina tamponkirina herî baş a şîfreyên kontrolkirî yên li ser CPU ("—tune=auto —verbosity=5") û mezinahiyên kar ên çêtirîn li ser OpenCL (ji hêla xwerû ve hatî çalak kirin), di nav de girtina rampa hêdî heya frekansa tevde ya xebatê GPU-yên NVIDIA GTX series 10xx û nûtir. Bikaranîna haşeyên bi rastî barkirî û dirêjahiya rastîn a şîfreyên ku têne kontrol kirin (gava ku ew ji berê ve tê zanîn) ji bo birêkûpêkkirina wusa bixweber bikar bînin.
- Zêdekirina berhevkarek ji bo "îfadekirinên dînamîkî" yên ku rasterast li ser rêza fermanê hatine destnîşan kirin û bicîhkirina celebên hash ên hîbrid ên nû, mînakî "-format=dynamic='sha1(md5($p).$s)'", ku li ser CPU-yê bi karanîna SIMD tê hesibandin. . Wekî hêmanên biwêjên weha, bi dehan heşeyên bilez têne piştgirî kirin (ji yên hevpar ên mîna MD5 bigire heya yên hûrgelî biyanî yên mîna Whirlpool), girêdana binesaziyê, şîfrekirin û deşîfrekirin, veguheztina doza karakterê, referansên şîfre, xwê, navê bikarhêner û berdewamên rêzê.
- Rakirina cûdahiyên nedilxwaz ji hashcat, di nav de piştgirîkirina qaîdeyên berê-hashcat-ê (fermanên rêzika peyvan), derbasbûna ji jimareya cîhaza OpenCL ji 1, karanîna xwerû ya heman dirêjahiya şîfreyê (bi gelemperî dirêjahiya 7) ji bo ceribandinên performansê.
- Modên nû yên ji bo çêkirina şîfreyên verastkirî (modên şikandinê), di nav de PRINCE ji hashcat (bi berhevkirina çend peyvan li gorî dirêjahiya giştî ya zêde "biwêjan" çêdike), jêrkomet (şîfreyên bi hejmareke kêm tîpên cihêreng derdixe, tevî ku ev tîp werin. ji komek mezin a gengaz) û derveyî hybrid (destûrê dide modên derveyî, ku di pelên vesazkirinê de bi zimanek mîna C-yê têne vegotin, li ser bingeha her "peyv"ek bingehîn a ku ji modek din hatî wergirtin, gelek şîfreyên verastkirî biafirînin). Di heman demê de, çend modên derveyî yên nû yên pêş-dîyarkirî.
- Taybetmendiyên pêvek ji bo karanîna çend awayan bi hevdemî (yek li ser ya din - stûnkirin), û her weha ji bo karanîna rêzikên rêzikan (qeydeyên rêzikên peyvan li hev kom kirin).
- Pêşveçûn di modên maskê de (dirêjkirina gav bi gav maskê di navberek diyarkirî de, serîlêdana maskek li kêleka cîhaza OpenCL an panela FPGA) û yek şikestî (tevgera maqûl li ser cîhazên ku hejmareke mezin a heşeyan bi paralel dihesibînin. , ji bo ku berê di vê modê de têra şîfreyên verastkirî tune bûn, û her weha sînorkirinên li ser vexwarina bîranînê jî hebûn).
- Gelek pêşkeftinên ji bo piştgirîkirina Unicode û şîfreyên din ên di bin pergalên cihêreng de.
- Gelek pêşkeftinên bernameyên *2john (ku pelên ji formên cihêreng vediguherînin
bi john re bikar bînin), nemaze wpapcap2john (bi seyrûsefera WiFi ve mijûl dibe). - Di john.conf de gelek vebijarkên rêza fermanê, mîhengên nû, vebijarkên skrîptê mîheng bikin û taybetmendiyên nû yên têkildar hene, ku ne hemî li vir hatine behs kirin.
- Başkirina qalîteya kodê bi saya piştgirîya çêkirî ya ji bo avakirina debug bi AddressSanitizer (berê) û UndefinedBehaviorSanitizer (zêdekirî), lê zêdekirina fuzzerek binavkirî (wek beşek ji GSoC 2015), bi karanîna entegrasyona domdar (ji bo bi dehan pergalên xebitandinê û berhevkar ava dike. kombînasyonan û ceribandina wan ji bo piştgirîya rast ji bo hemî formatan).
Source: opennet.ru