Uuden version erityispiirre on FPGA-tuen ilmeneminen (prosessorin, GPU:n ja Xeon Phin lisäksi). Laudoille
Bcryptissä saavutettu suorituskyky ~119 2 c/s 5^2 iteraatiolla ("05b$27") ja virrankulutus ~XNUMX wattia ylittää merkittävästi uusimpien GPU:iden tulokset korttia, laitteistohintaa ja wattia kohti. . Myös tuettu
Työn nopeuttamiseksi otettiin käyttöön maskin käyttö ("—mask"-tila, myös yhdessä muiden tilojen kanssa) ja laskettujen hajautusarvojen vertailu FPGA-puolelle ladattuihin. Toteutuksen näkökulmasta monet suunnitelmat (esim.
Muita tärkeitä muutoksia:
- Tuki suurelle määrälle lisätiivistetyyppejä, salauksia jne., mukaan lukien sekä klassiset salasanatiivisteet (esimerkiksi QNX:n uusista versioista), että kryptovaluuttalompakot, salatut arkistot ja salatut tiedostojärjestelmät (esim. Bitlocker ja FreeBSD geli), samoin kuin tuki uusille aiemmin tuetuille formaateille (esimerkiksi lisätty tuki bcrypt-pbkdf OpenBSD softraidille) ja paljon muuta. Yhteensä 80 formaattia on lisätty CPU:lle ja 47 OpenCL:lle. Formaattien kokonaismäärä on nyt 407 CPU:ssa (tai 262 ilman "dynaamisia" muotoja, jotka on määritetty asetustiedostoista) ja 88 OpenCL:ssä.
- Kieltäytyminen tukemasta CUDA-kieltä OpenCL:n hyväksi, mikä ei millään tavalla häiritse NVIDIA-grafiikkasuorittimien täysimääräistä käyttöä (ja jopa auttaa, koska kehitys ja optimointi keskitetään yhteen GPU-muodon toteutukseen kahden aikaisemman toteutuksen sijaan).
- Tuki uusille SIMD-käskysarjoille - AVX2, AVX-512 (mukaan lukien toisen sukupolven Xeon Phi) ja MIC (ensimmäiselle sukupolvelle) - sekä SIMD:n universaalimpi ja täydellisempi käyttö monien muotojen toteutuksissa, mukaan lukien aiemmin tuetut ohjeasetukset AVX:ään ja XOP:iin asti x86(-64) ja
NEON, ASIMD ja AltiVec vastaavasti ARM:ssa, Aarch64:ssä ja POWER:ssä. - Lukuisia optimointeja CPU:lle ja OpenCL:lle, sekä tehokkaampaan työskentelyyn useiden hajautusten kanssa samanaikaisesti (esimerkiksi 320 miljoonan SHA-1-tiivisteen lataamista GPU:lle testattiin) että hash-laskennan nopeuden lisäämiseksi. Jotkut näistä optimoinneista ovat universaaleja, jotkut kattavat eri muotojen osajoukkoja ja monet ovat erityisiä yksittäisille muodoille.
- (Automaattinen) konfigurointi suorittimen tarkistettujen salasanojen optimaalisen puskuroinnin ("—tune=auto —verbosity=5") ja optimaalisten työkokojen OpenCL:ssä (oletusarvoisesti käytössä), mukaan lukien hitaan nousun huomioon ottaminen täyteen toimintataajuuteen NVIDIA GTX -sarjan näytönohjainten 10xx ja uudempia. Käytä todella ladattuja tiivisteitä ja tarkistettavien salasanojen todellista pituutta (kun se tiedetään etukäteen) tällaiseen automaattiseen viritykseen.
- Kääntäjän lisääminen suoraan komentorivillä määritetyille "dynaamisille lausekkeille" ja uusien hybridihajautustyyppien käyttöönotto, esimerkiksi "-format=dynamic='sha1(md5($p).$s)'", joka lasketaan CPU:ssa SIMD:n avulla . Tällaisten lausekkeiden komponentteina tuetaan kymmeniä nopeita tiivisteitä (yleisistä, kuten MD5, kohtalaisen eksoottisiin, kuten Whirlpool), osamerkkijonojen yhdistäminen, koodaus ja dekoodaus, kirjainkokomuunnos, viittaukset salasanaan, suola, käyttäjätunnus ja merkkijonovakiot.
- Ei-toivottujen erojen poistaminen hashcatista, mukaan lukien tuki aiemmin hashcat-spesifisille säännöille (sanalistasääntökomennot), siirtyminen OpenCL-laitenumerointiin 1:stä, oletusarvoisesti samojen salasanapituuksien (yleensä pituus 7) käyttö suorituskykytesteissä.
- Uusia tiloja todennettavien salasanojen luomiseen (krakkaustilat), mukaan lukien PRINCE hashcatista (muodostaa "lauseita" yhdistämällä useita sanoja kasvavassa järjestyksessä kokonaispituuden mukaan), osajoukot (saa esiin salasanoja, joissa on riittämätön määrä eri merkkejä, vaikka näitä merkkejä tulisikin suuresta joukosta mahdollisia) ja hybridi ulkoinen (sallii ulkoisten tilojen, jotka on kuvattu konfiguraatiotiedostoissa C-kaltaisella kielellä, luoda useita todennettavissa olevia salasanoja kunkin toisesta tilasta vastaanotetun perus "sanan" perusteella). Lisäksi useita uusia ennalta määritettyjä ulkoisia tiloja.
- Lisäominaisuudet useiden tilojen samanaikaiseen käyttöön (yksi päällekkäin - pinoaminen) sekä sääntöjoukkojen käyttöön (sanalistan sääntöjen pinoaminen).
- Parannuksia maskitiloihin (maskin asteittainen venyttely tietyillä pituuksilla, maskin asettaminen OpenCL-laitteen tai FPGA-levyn kylkeen) ja yksittäinen halkeama (kohtuullinen käyttäytyminen laitteissa, jotka laskevat suuren määrän hajautusarvoja rinnakkain , joille aiemmin ei ollut tarpeeksi tarkistettavia salasanoja tässä tilassa, ja myös muistinkulutuksen rajoituksia).
- Monet parannukset tukemaan Unicodea ja muita koodauksia eri alijärjestelmissä.
- Monet parannukset *2john-ohjelmiin (jotka muuntavat eri muotoisia tiedostoja
käytä johnin kanssa), erityisesti wpapcap2john (käsittelee WiFi-liikennettä). - Siellä on monia uusia komentorivivaihtoehtoja, asetuksia john.conf-tiedostossa, konfigurointikomentosarjan asetuksia ja vastaavia uusia ominaisuuksia, joita kaikkia ei ole mainittu tässä.
- Koodin laadun parantaminen AddressSanitizerin (aiemmin) ja UndefinedBehaviorSanitizerin (lisätty) avulla tehdyn virheenkorjauskoontituen ansiosta, sisäänrakennetun muotofuzzerin lisäämisen (osa GSoC 2015:tä) jatkuvan integroinnin avulla (koontiversiot kymmenille käyttöjärjestelmille ja kääntäjälle) yhdistelmiä ja testaamalla niiden oikean tuen kaikille muodoille).
Lähde: opennet.ru