ααααααααΈαααααααα·ααΈααΆαααααααααΆαααααααΆααααα αΆααααΆααα (αααααααααααααΌαααΆαα’αα·ααααααΆααααΈααααΆα 1996)α 1.8.0 ααααΆαααΆαααααααα»ααα α αΆααααΆααααΈααΆαα ααααααΆααααααα»α 1-jumbo-4.5 αααα»αα’αα‘α»αααααααααΆαααααΆααααααΌαα αααΎαααΆα 6000 (git commits) ααααΌαααΆαααααΎα‘αΎαααΈα’αααα’αα·ααααααααΆα 80 α α’ααα»αβα αααα ααααα½ααααα αΌαααΆααααα½ααα·αα·ααααααααααΆαααααΆααααααΌαααΈαα½αα (ααααΎααΆα) αα ααΎαααα·ααΆααΆα αααΎα αααα»αα’αα‘α»ααααααα α’αααα’αα·ααααααααΆααααααα’αα»ααΆαααα±ααααααΎ ααααΆαααΆααααααααΌαααΆααααααΆαααα·αααΆα αααααΈααΆααΆαααΆααααααααααααα ααΌαααααααααααΆαα αα αααααα’αΆααααΆααααα GPLv2+ α αΎααααααΌααααααΆαααΆαα»αα½αα ααα½ααααα·ααα αααααα’αΆααααΆααααα BSD α
αα»αααΆααα·αααααααααααααΈααΊααΆαααα α‘αΎαααααΆαααΆαααα FPGA (ααααααααΎ CPU, GPU αα·α Xeon Phi) α αααααΆααααααΆα , Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΡ ΠΏΠΎ 4 ΡΠΈΠΏΠ° FPGA ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡ ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ ΠΌΠ°ΠΉΠ½ΠΈΠ½Π³Π° Bitcoin, ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ 7 ΡΠΈΠΏΠΎΠ² Ρ Π΅ΡΠ΅ΠΉ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ: bcrypt, ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ descrypt (Π²ΠΊΠ»ΡΡΠ°Ρ bigcrypt), sha512crypt, sha256crypt, md5crypt (Π²ΠΊΠ»ΡΡΠ°Ρ Apache apr1 ΠΈ AIX smd5), Drupal7 ΠΈ phpass (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π² WordPress). ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π° FPGA Π²ΠΏΠ΅ΡΠ²ΡΠ΅.
αααααΆαα bcrypt ααααΎαααΆαααααααααα ααΆααα ~119k c/s ααΆαα½αααΉα 2^5 ααααα ("$2b$05") ααΆαα½αααΉαααΆαααααΎααααΆααααΆααα ~27 αααΆαα ααΎαααΈαααααααααααΆαα GPU α α»αααααααααα»ααααα»ααα½αααααα ααααααααααααΉα αα·ααααα»ααα½ααααΆααα . ααΆαααΆαααααααααα ααααΆαααααααααααα αααααααΌαααΆαααΆααααααα αΌαααα 16 ααααα (64 FPGA chips) ααααααααααααααΈ Raspberry Pi 2 αααα½αα αα»αααΆα John the Ripper ααααααΆααααΌαααΆαααΆαααα αα½αααΆααααααααΆαααααααααΆααααΆααα’αα αα·αααΆαααΆαααααααΆαααααΆααα ααα½α hashes ααΆα αααΎα .
ααΎααααΈαααααΎαααααΏαααΆαααΆα ααΎαααΆαα’αα»ααααααΆαααααΎααααΆαααααΆαααα»α (αααα ββαααΆααβ αα½αααΆααααΆααα½αααααααΆαα½ααααααααααααα) αα·αααΆααααααααααααααααΆαααααΆαααααΆααΆαα½αααΉαα’αααααααααα»ααα ααΎααααα FPGA α ααΆαααααααααααΆαα’αα»αααα ααΆααα ααΆααΆα αααΎα (α§. ) αααα»ααααααΆαααααΌαααααΎαααΆαα αααΎααααα (ααααΌααααΈααΈααΌααα) α’ααααααααααΆαα½αααααΌαααααΈαααααΌαα·α ααααΌαααΆαααααΎα ααΆαα’αα·αααααααα»αααΆααααααααΌαααΆαααΉαααΆαααα Denis Burykin αααα»αααΆααααααααααα½αααΆαα½αα’αααα’αα·αααααα jumbo ααααααααα
ααΆαααααΆααααααΌαααααΆαααααααααααα
- ααΆαβααΆααααβαα½αβα ααα½αβααβααβααααααβααααααβαα hashes, ciphers, etc. αα½αβααΆααβ hashes ααΆαααβαααααΆααβαα»ααΆα (α§ααΆα ααα ααΈβααααβααααΈβαα QNX) ααααβααΆααβααΆααΌα cryptocurrency, encrypted archives αα·α encrypted file systems (α§ααΆα ααα Bitlocker αα·α FreeBSD geli) ααααΌα ααΆααΆαααΆαααααααααΆααααααααααααΈαααααααααααααΆαααΆααααααΈαα»α (α§ααΆα ααα ααααααααΆαααΆαααααααααΆαα bcrypt-pbkdf αααααΆαα OpenBSD softraid) αα·αα αααΎααααα ααα»ααα αααααααααΆα 80 ααααΌαααΆααααααααα ααΎ CPU αα·α 47 αα ααΎ OpenCL α α ααα½αααα»ααααααααααααΆαα₯α‘αΌααααααΊ 407 αα ααΎαααΈααΈααΌ (α¬ 262 αα·αααΆαααααα αΌααααααααααΆα "ααΆααααα" αααααΆαααααααα ααΆααααααααααΈα―αααΆαααααααα ααΆαααααααα) αα·α 88 αα ααΎ OpenCL α
- ααΆαααα·ααααα·αααΆααααααΆααΆ CUDA αααα»αααΆααααα α·αααα αααα OpenCL ααααα·αααΆαααΆαααααΆααααααΆαααααΎααααΆαα NVIDIA GPUs αααααααα (α αΎααααααΆααα’αΆα αα½αααΆα αααααΆαααΆαααααααα ααΎααΆαα’αα·αααααα αα·αααΆααααααΎαααααα·αααααΆαααΎααΆαα’αα»αααααα½αααααααααααΈαα½αααααααΆαα GPU αααα½αα±ααααΆαα’αα»ααααααΈαααΈαα»α)α
- ααΆαααΆαααααααααΆαααααα»αααΆαααααΆααααΈαααΈααααΈ - AVX2, AVX-512 (αα½αααΆαααααααΆαα Xeon Phi ααααΆααααΈααΈα) αα·α MIC (αααααΆααααααΆααααΈαα½α) - ααααΌα
ααΆααΆαααααΎααααΆαααααΈαααΈααΆααα αα·αααααααααααααααααααα»αααΆαα’αα»ααααααααααααΆα
αααΎα αα½αααΆααααΆαααααΎααααΆαα ααΆαααααΆααααααΆαααΆααααααΈαα»αααααααα
AVX αα·α XOP αα
ααΎ x86(-64) αα·α
NEON, ASIMD αα·α AltiVec αα ααΎ ARM, Aarch64 αα·α POWER αααααααΆα - ααΆααααααΎαααααα·αααααΆαααΆα αααΎααααααΆαα CPU αα·α OpenCL ααΆααααΈαααΎααααΈααααΎαααΆαααΆααααααΆαααααα·αααααΆαααΆαα½αααΉαα ααα½α hash ααα αααΎααααα»ααααααααΆαααααΆ (α§ααΆα ααα ααΆααααα»α 320 ααΆα SHA-1 hashes αα ααΎ GPU ααααΌαααΆαααΆααααα) αα·αααΎααααΈαααααΎαααααΏαααααΆαααααΆ hash α ααΆααααααΎαααααα·αααααΆαααΆαααααααααααΆαααααααααΆααα ααααααααααααααααΎαααα»αααααααααααααΆαααααααα αα·αααΆα αααΎαααΊααΆααααΆααα ααααααααααααΈαα½ααα
- (Auto-)ααΆαααααααα ααΆααααααααααααΆαααααααα’αΆααααααα’αααα»αααααΆααααααααΆαααααααΆααα·αα·ααααα ααΎ CPU (ββtune=auto βverbosity=5β) αα·αααα αααΆαααΆαααααα’αααααΎααα ααΎ OpenCL (ααΆαααΎαααααΎαααΆαααΆαααααΆαααΎα) αα½αααΆααααΆααα·αααΌαααΈααΆαααΎαα‘αΎαααΊααα αΌαααααααααααααααα·ααααα·ααΆαααααααα αα NVIDIA GTX series GPUs 10xx αα·αααααΈααΆααααα ααΆαααααΎ hashes αααααΆααααα»ααααΆααα·αααααΆαα αα·ααααααααα·αααααΆααααααΆααααααααΆααααααααα»αααααΌαααΆααα·αα·ααα (αα ααααααααΆααααΌαααΆαααααααΆααααΆαα»α) αααααΆααααΆααααααααΌααααααααααααααααα·ααααααα
- ααΆααααααααααααα·ααΈα ααααααααααΆαα "ααααααααΆααααα" αααααΆααααααΆαααααααααΆαααα ααΎαααααΆααααΆααααααααΆ αα·αααΆαα’αα»αααααααααααααααΆααΌαααΆααααααΈ α§ααΆα ααα "-format=dynamic='sha1(md5($p.$s)'" αααααααΆαα ααΎαααΈααΈααΌαααααααΎαααΈαααΈ . ααΆααΆαα»αααααααααααααααααα αααααΆαα ααααΆαααα·αααααΌαααΆαααΆαααα (ααΈααΆαααααΆααααααΌα ααΆ MD5 αα ααΆαααααα·αα’αααααααααα·ααααααααΌα ααΆ Whirlpool) ααΆαααααΆααααααα’αααααα ααΆαααααααα αα·αααΆααα·ααΌα ααΆαααααααααα½α’αααα ααα ααααΈααααα ααααααααΆαα α’ααα·α αααααα’αααααααΎααααΆαα αα·ααααααααα’ααααα
- ααΆααα»αααααΆααααΆααα»αααααΆααααα·αα ααααΆαααΈ hashcat αα½αααΆααααΆαααΆαααααααααΆααα αααΆααααΆααααΆαααα hashcat ααΈαα»α (ααΆααααααααΆα αααΆαααααααΈααΆααα) ααΆαααααΆααααααΌααα αααα§ααααα OpenCL ααΈααα 1 ααΆαααααΎααααΆααααααΆαααΎαααααααααααΆααααααααΆααααΌα ααααΆ (ααΆααααααΆαααααα 7) αααααΆααααΆαααααΎαααααααααΎαααΆαα
- ααααααααΈαααααΆαααααααΎαααΆααααααααΆαααααα’αΆα αααααααααΆααααΆα (ααααααααα) αα½αααΆαα PRINCE ααΈ hashcat (αααααΎαααΆ "ααααΆ" ααααα½ααααα αΌαααααΆααΌαααΆαααααΆα αααΎααααα»αααααΆααααααααααααα»α) αααα»ααα (ααΆαααααΌαααΆααααααααΆαααααααΆαα ααα½ααα·ααααααααααΆαααααα½α’αααααααααααααΆ αααααΈααΆαα½α’ααααααΆααααααααααααα ααΈαααα»αααα αααΎααααα’αΆα ααααΎαα ααΆα) αα·αααΌαααΆααααΆααααα (α’αα»ααααΆαα±ααααααααααΆααααα αααααΆααα·αααααΆαα αααα»αα―αααΆαααααααα ααΆααααααααααΆααΆααΆ C-like ααΎααααΈαααααΎαααΆααααααααΆαααααα’αΆα αααααααααΆααααΆαααΆα αααΎααααααα’ααααΎ "ααΆααα" ααΌαααααΆαααΈαα½αααααααα½αααΆαααΈαααααα½ααααααααα) α ααααα ααααααΆααααα αααααΆααααααααΆαα»αααααΈααΆα αααΎαα
- αααααααα·ααααααααααααααΆααααΆαααααΎααααΆααααααααΆα αααΎααααα»ααααααααΆαααααΆ (αα½ααα ααΎααααΌααααααααααα - ααΆαααΆααααα) ααααΌα ααΆαααααΆααααΆαααααΎααααΆαααααα»αααα αααΆαα (ααΆαααΆααααααααα½ααααααΈααΆααα) α
- ααΆααααααα’αααααααΆαααα»α (ααΆαααΆααααααΉαααααα·α αααα α αααααΆαααααα»ααα½αααααααααΆααααΆαα ααΆαα’αα»αααααααΆαααα αααααααααΆαααα§ααααα OpenCL α¬ααααα FPGA) αα·αααΆααααααααΆααααα½α (α’αΆαααααα·αα·ααΆααα ααα»ααααΎα§ααααααααααααΆα ααα½ααααα αααΎαααααααααΆ αααααΈαα»ααα·αααΆαααΆααααααααΆαααααα’αΆα αααααααααΆααααΆααααααααααΆαααα αααα»αααααααα α αΎαααααΆαααΆαααΉααααααΉαααΎααΆαααααΎααααΆααα’αααα αα αΆαααααα)α
- ααΆααααααα’ααΆα αααΎαα ααααααΆαααΆαααααααααΆααααΌααΈααΌα αα·αααΆαα’αα·αααΌααααααααααα αααα»αααααααααααααααααααααΆα
- ααΆααααααα’ααΆα
αααΎαα
αααααααααα·ααΈ *2john (ααΆααααααααα―αααΆαααααααααααααααααααΆαααααΆαα
ααααΎααΆαα½α john) ααΆαα·ααα wpapcap2john (αααααααΆαα ααΆα ααααααΆαα αααΆα) α - ααΆααααααΎααααααΆααααΆααααααααΆααααΈααΆα αααΎα ααΆαααααααα αααα»α john.conf ααααααα ααΆαααααααααααααΎαααααααΈα αα·ααα»αααΆαααααΈαααααααΌαααααΆ αα·ααααααΆααα’αααααααααΌαααΆαααΎαα‘αΎααα ααΈαααααα
- ααΆααααααα’αα»αααΆαααΌααααα’ααα»αα ααααααΆαααΆαααααααααααΆααααααΆαα½ααααααΆααααΆααααααΎαααααΆααααα α»αααΆαα½α AddressSanitizer (ααΈαα»α) αα·α UndefinedBehaviorSanitizer (αααααα) ααΆααααααα fuzzer αααααααααααααΆααααααΆαα½α (ααΆααααααα GSoC 2015) αααααααΎααΆααα½ααααα αΌαααΆαααααααααΆαα (αααααΎααααααΆααααααααααααααα·ααααα·ααΆα αα·ααααααα·ααΈα αααααααΆαααα·αα ααααα αα·αααΆααααααα½αααΆαααααΆααααΆαααΆααααααααΉαααααΌααααααΆααααααααααΆααα’αα)α
ααααα: opennet.ru
