Ko tetahi ahuatanga motuhake o te putanga hou ko te ahua o te tautoko FPGA (i tua atu i te CPU, GPU me Xeon Phi). Mo nga papa
Mo te bcrypt, ko nga mahi i tutuki o ~119k c/s me te 2^5 iterations (“$2b$05”) me te kohi hiko o ~27 watts ka nui ake i nga hua mo nga GPU hou mo ia papa, mo ia utu taputapu, mo ia watt. . Ka tautokohia ano
Hei tere ake i te mahi, i whakatinanahia e matou te whakamahi i te kanohi (te aratau "—mask", tae atu ki te whakakotahi me etahi atu momo) me te whakataurite o nga tohu kua tohua me nga mea kua utaina ki te taha FPGA. Mai i te tirohanga whakatinanatanga, he maha nga hoahoa (hei tauira.
Ko etahi atu huringa nui:
- Tautoko mo te maha atu o nga momo momo hashes, ciphers, me etahi atu, tae atu ki nga hashes kupuhipa matarohia e rua (hei tauira, mai i nga putanga hou o QNX), tae atu ki nga putea cryptocurrency, nga purongo whakamunatia me nga punaha konae whakamunatia (hei tauira, Bitlocker me FreeBSD geli), me te tautoko mo nga momo whakatakotoranga hou i tautokohia i mua (hei tauira, taapiri tautoko mo te bcrypt-pbkdf mo OpenBSD softraid) me te maha atu. Hui katoa, 80 nga whakatakotoranga kua taapirihia ki te PTM me te 47 ki OpenCL. Ko te tapeke o nga whakatakotoranga he 407 inaianei i runga i te PTM (kaore ranei e 262 nga whakatakotoranga "kaha" i whirihorahia mai i nga konae whirihoranga) me te 88 ki OpenCL.
- Ko te whakahē ki te tautoko i te reo CUDA mo OpenCL, e kore rawa e pokanoa ki te whakamahi katoa o NVIDIA GPUs (me te awhina ano hoki, he mihi ki te arotahi ki te whakawhanaketanga me te arotautanga ki tetahi whakatinanatanga o ia whakatakotoranga mo te GPU hei utu mo nga whakatinanatanga e rua o mua).
- Tautoko mo nga huinga tohutohu SIMD hou - AVX2, AVX-512 (tae atu ki te reanga tuarua o Xeon Phi) me te MIC (mo te reanga tuatahi) - me te whakamahi ake i te ao katoa me te whakamahi katoa o te SIMD i roto i nga whakatinanatanga o nga whakatakotoranga maha, tae atu ki te whakamahi Ko nga tohutohu i tautokohia i mua ki te AVX me te XOP i runga i te x86(-64) me te
NEON, ASIMD me AltiVec i runga i ARM, Aarch64 me POWER, ia. - He maha nga arotautanga mo te PTM me te OpenCL, kia pai ake te mahi me te maha o nga hashes i te wa kotahi (hei tauira, i whakamatauria te uta 320 miriona SHA-1 i runga i te GPU), me te whakanui ake i te tere o te tatauranga o te hash. Ko etahi o enei arotautanga kei te ao katoa, ko etahi ka hipoki i nga momo waahanga rereke o nga whakatakotoranga, he maha nga mea motuhake mo nga whakatakotoranga takitahi.
- (Aunoa-) te whirihoranga o te tino pai o te buffering o nga kupuhipa kua takina i runga i te PTM (“—tune=auto —verbosity=5”) me nga rahi mahi tino pai i runga i te OpenCL (whakahohea ma te taunoa), tae atu ki te whai whakaaro ki te pikinga puhoi ki te auau mahi katoa. o NVIDIA GTX raupapa GPUs 10xx me te hou. Ma te whakamahi i nga hashes kua utaina me te roa tonu o nga kupuhipa e tirohia ana (ka mohiohia i mua atu) mo te whakatika-aunoa.
- Ko te taapiri i te kaikohi mo "whakapuaki hihiri" kua tohua tika ki runga i te raina whakahau me te whakatinana i nga momo hash ranu hou, hei tauira "-format=dynamic='sha1(md5($p).$s)'", kua tatauhia ki te PTM ma te whakamahi i te SIMD . Ko nga waahanga o aua korero, he maha nga hashes tere e tautokohia ana (mai i nga mea noa penei i te MD5 tae noa ki nga mea rereke penei i a Whirlpool), te whakakotahitanga o nga aho, te whakawaehere me te wetewete, te hurihanga o nga keehi, nga tohutoro ki te kupuhipa, te tote, te ingoa kaiwhakamahi me te aho tonu.
- Ko te whakakore i nga rereketanga e kore e hiahiatia mai i te hashcat, tae atu ki te tautoko mo nga ture motuhake-hashcat o mua (nga whakahau ture rarangi kupu), te whakawhiti ki te taputapu OpenCL mai i te 1, te whakamahi taunoa o nga roa o te kupuhipa (te nuinga o te waa 7) mo nga whakamatautau mahi.
- Ko nga tikanga hou mo te whakaputa i nga kupuhipa ka taea te manatoko (nga kapiti aratau), tae atu ki a PRINCE mai i te hashcat (ka hangaia he "kianga" ma te whakakotahi i nga kupu maha kia nui ake te roanga o te roa), nga huinga-iti (ka puta nga kupuhipa he iti rawa te maha o nga momo ahua, ahakoa ka tae mai enei tohu. mai i te huinga maha o nga mea ka taea) me te ranu o waho (whakaaetia nga ahuatanga o waho, e whakaahuatia ana i roto i nga konae whirihoranga i roto i te reo C-rite, ki te whakaputa i te maha o nga kupu huna kua whakamanahia i runga i ia "kupu" taketake i riro mai i tetahi atu aratau). Ano hoki, he maha nga ahuatanga hou o waho kua tautuhia.
- Ko etahi atu waahanga mo te whakamahi i nga momo momo rereke i te wa kotahi (kotahi ki runga ake o tetahi - tapae), me te whakamahi i nga huinga ture (whakapae ture rarangi kupu).
- Te whakapai ake i nga tikanga whakakikorua (te toronga o te kanohi kanohi i roto i te awhe o te roa kua tohua, te whakamahi i te kanohi kanohi ki te taha o te taputapu OpenCL, te papa FPGA ranei) me te kapiti kotahi (te whanonga whaitake i runga i nga taputapu e tatau ana i te maha o nga tohu whakarara. , i mua kaore i te nui nga kupuhipa e taea te whakamana i tenei aratau, me nga here mo te kai mahara).
- He maha nga whakapainga hei tautoko mo Unicode me etahi atu whakawaehere i roto i nga punaha iti rereke.
- He maha nga whakapainga ki te *2john papatono (e huri ana i nga konae rerekee nga whakatakotoranga mo
whakamahia me john), ina koa ko te wpapcap2john (te whakahaere i nga waka WiFi). - He maha nga whiringa raina whakahau hou, tautuhinga kei john.conf, whirihora i nga whiringa tuhinga me nga ahuatanga hou e rite ana, kaore katoa i whakahuahia i konei.
- Ko te whakapai ake i te kounga o te waehere he mihi ki te tautoko i hangaia mo te hanga patuiro me te AddressSanitizer (i mua atu) me te UndefinedBehaviorSanitizer (kua taapirihia), me te taapiri i te whakatakotoranga fuzzer kua hangaia (hei waahanga o GSoC 2015), ma te whakamahi i te whakauru tonu (hanga mo te maha o nga punaha whakahaere me te whakahiato. nga huinga me te whakamatautau mo te tautoko tika mo nga whakatakotoranga katoa).
Source: opennet.ru