ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ FPGA (Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ CPU, GPU ΠΈ Xeon Phi). ΠΠ»Ρ ΠΏΠ»Π°Ρ
ΠΠ»Ρ bcrypt, Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² ~119k c/s ΠΏΡΠΈ 2^5 ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ (Β«$2b$05Β») Ρ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΡΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ ~27 Π²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ΅Π²ΠΎΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΄Π»Ρ Π½ΠΎΠ²Π΅ΠΉΡΠΈΡ
GPU Π² ΡΠ°ΡΡΠ΅ΡΠ΅ Π½Π° ΠΏΠ»Π°ΡΡ, Π½Π° ΡΠ΅Π½Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π° Π²Π°ΡΡ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ
ΠΠ»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠΊΠΈ (ΡΠ΅ΠΆΠΈΠΌ Β«βmaskΒ», Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ) ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΡΡ
Ρ
Π΅ΡΠ΅ΠΉ Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΌΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ FPGA. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΈΠ· Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ
ΠΡΡΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Ρ Π΅ΡΠ΅ΠΉ, ΡΠΈΡΡΠΎΠ² ΠΈ Ρ.ΠΏ., Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Ρ Π΅ΡΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ QNX), ΡΠ°ΠΊ ΠΈ ΠΊΠΎΡΠ΅Π»ΡΠΊΠΈ ΠΊΡΠΈΠΏΡΠΎΠ²Π°Π»ΡΡ, ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π°ΡΡ ΠΈΠ²Ρ ΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Bitlocker ΠΈ FreeBSD geli), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π½ΠΎΠ²ΡΡ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠ΅ΠΉ ΡΠΎΡΠΌΠ°ΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ°Π½Π΅Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° bcrypt-pbkdf Π΄Π»Ρ OpenBSD softraid) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π ΠΎΠ±ΡΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 80 ΡΠΎΡΠΌΠ°ΡΠΎΠ² Π½Π° CPU ΠΈ 47 Π½Π° OpenCL. ΠΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠ΅ΠΏΠ΅ΡΡ 407 Π½Π° CPU (ΠΈΠ»ΠΈ 262 Π½Π΅ Π²ΠΊΠ»ΡΡΠ°Ρ Β«dynamicΒ» ΡΠΎΡΠΌΠ°ΡΡ, Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ) ΠΈ 88 Π½Π° OpenCL.
- Negatio linguae CUDA in favorem OpenCL supportare, quae nullo modo impedit plenum usum NVIDIA GPUs (et etiam adiuvat, per evolutionem et optimizationem in una exsecutione formarum uniuscuiusque formae GPU pro duabus antea instrumentis positis).
- Firmamentum pro nova instructione SIMD ponit - AVX2, AVX-512 (inclusa secunda generatione Xeon Phi) et MIC (pro generatione prima) - tum magis universalis et perfectior usus SIMD in exsequendis multarum formarum usu AVX et XOP supra x86 (-64) et
NEON, ASIMD ΠΈ AltiVec Π½Π° ARM, Aarch64 ΠΈ POWER, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. - Multae optimizationes pro CPU et OpenCL, tum ad efficacius operandum cum magno numero hasulorum simul (exempli gratia, oneratisque 320 decies SHA-1 hashes in GPU probata sunt), et celeritas calculorum Nullam augere. Horum optimizationum aliae sunt universales, aliae variae copiae formarum, et multae singularibus formatis specificae.
- (ΠΠ²ΡΠΎ-)Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π½Π° CPU (Β«βtune=auto βverbosity=5Β») ΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠ΅ΠΉ Π·Π°Π΄Π°Π½ΠΈΡ Π½Π° OpenCL (Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡ ΠΎΠ΄Π° Π½Π° ΠΏΠΎΠ»Π½ΡΡ ΡΠ°Π±ΠΎΡΡΡ ΡΠ°ΡΡΠΎΡΡ GPU ΡΠ΅ΡΠΈΠΈ NVIDIA GTX 10xx ΠΈ Π½ΠΎΠ²Π΅Π΅. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Ρ Π΅ΡΠ΅ΠΉ ΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ (ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° ΠΈΠ·Π²Π΅ΡΡΠ½Π° Π·Π°ΡΠ°Π½Π΅Π΅) Π΄Π»Ρ ΡΠ°ΠΊΠΎΠΉ Π°Π²ΡΠΎ-Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Β«Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉΒ», ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΏΡΡΠΌΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ Π½ΠΎΠ²ΡΠ΅ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠ΅ ΡΠΈΠΏΡ Ρ Π΅ΡΠ΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«βformat=dynamic=βsha1(md5($p).$s)'Β», Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΠ΅ Π½Π° CPU Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SIMD. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ°ΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ Π±ΡΡΡΡΡΡ Ρ Π΅ΡΠ΅ΠΉ (ΠΎΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ Π²ΡΠΎΠ΄Π΅ MD5 Π΄ΠΎ ΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΡΠΊΠ·ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΠΎΠ΄Π΅ Whirlpool), ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊ, ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠ°ΡΠΎΠ»Ρ, ΡΠΎΠ»Ρ, ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ.
- Determinatio differentiarum invitarum ab hashcat, incluso auxilio regularum specialium (verborum regulae mandatorum), transitus ad OpenCL fabrica numerandi ab 1, defectu usus longitudinum eiusdem tesserae (fere VII longitudinis VII) in probatis faciendis.
- Novi modi generandi Tesserae verifiabiles (modis crepuit), PRINCIPI ab hashcat (formas "phrases" componendo plura verba in augendo ordine longitudinis), copiae (tesserae cum insufficiens numero diversorum characterum adductis, etsi hae notae veniunt. e magna copia possibilium possibilium) et externa hybrida (modos externas, in imaginum conformatione in lingua C simili descriptos, permittit, ut plures Tesserae verifiabiles generandi in singulis fundamentalibus "verbis" ex alio modo receptis gignant. Novos etiam plures modos externos praedefinitos.
- Adiectis notis ad plures modos eodem tempore utendi (unum super alterum - positis), tum pro utendo regulas (wordlist regulas positis).
- Improvementa ad modos larva (graduales extensionis larvae in certa extensione longitudinum, applicationis larvae in parte OpenCL fabrica vel FPGA tabulae) et fissurae unius (ratio- mores in machinis quae magnum numerum hashes in parallelis computant. quae antea non satis erant in hoc modo verifiabiles tesserae, et etiam restrictiones in memoria consumptionis).
- Multae emendationes sustentandae sunt pro Unicode et aliis descriptas in variis subsystematibus.
- Multa meliora sunt * 2john programs (convertentes files de diversis formats for
uti cum john), praesertim wpapcap2john (tractat WiFi traffic). - Plures sunt optiones novae mandatorum linearum, occasus in john.conf, scriptionum optionum conformatio et novarum notarum respondentium, de quibus hic non omnes nominantur.
- Improving code quality thanks to built-in support for debug builds with AddressSanitizer (antea) and UndefinedBehaviorSanitizer (addidit), addito fuzzer constructo in formato (ut parte GSoC 2015), integratione continua (aedificat pro justo systematis operandi et compilator. junctiones et probationes ad rectam sustentationem omnium formarum).
Source: opennet.ru