FPGA പിന്തുണയോടെ ജോൺ ദി റിപ്പർ 1.9.0-ജംബോ-1

റിലീസ് ചെയ്തു ഏറ്റവും പഴയ പിന്തുണയുള്ള പാസ്‌വേഡ് ഊഹിക്കൽ പ്രോഗ്രാമിന്റെ പുതിയ പതിപ്പ് ജോൺ ദി റിപ്പർ 1.9.0-ജംബോ-1. (1996 മുതൽ പദ്ധതി വികസിപ്പിച്ചുകൊണ്ടിരിക്കുന്നു.) ഓൺ പദ്ധതി പേജ് സ്രോതസ്സുകൾ ഡൗൺലോഡ് ചെയ്യാനും വിൻഡോസിനായുള്ള റെഡിമെയ്ഡ് അസംബ്ലികൾക്കും ലഭ്യമാണ്.

പതിപ്പ് 1.8.0-ജംബോ-1 പുറത്തിറങ്ങി 4.5 വർഷം പിന്നിട്ടിരിക്കുന്നു, ഈ സമയത്ത് 6000-ലധികം ഡെവലപ്പർമാരിൽ നിന്ന് 80-ലധികം മാറ്റങ്ങൾ (ജിറ്റ് കമ്മിറ്റുകൾ) വരുത്തി. ഈ കാലയളവിൽ, ഡവലപ്പർമാർ ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു GitHub-ൽ നിന്നുള്ള നിലവിലെ പതിപ്പ്, നന്ദി വരുത്തിയ മാറ്റങ്ങൾ ഉണ്ടായിരുന്നിട്ടും അതിന്റെ അവസ്ഥ സ്ഥിരമായി നിലനിർത്തി തുടർച്ചയായ സംയോജനം, പല പ്ലാറ്റ്‌ഫോമുകളിലും ഓരോ മാറ്റത്തിന്റെയും പ്രാഥമിക പരിശോധന (പുൾ അഭ്യർത്ഥന) ഉൾപ്പെടുന്നു. സിപിയു, ജിപിയു, സിയോൺ ഫൈ എന്നിവയ്‌ക്ക് പുറമെ എഫ്‌പിജിഎ (എഫ്‌പി‌ജി‌എ) നുള്ള പിന്തുണയും പുതിയ പതിപ്പിന്റെ ഒരു പ്രത്യേക സവിശേഷതയാണ്.


ബോർഡുകൾക്കായി ZTEX 1.15y, 4 FPGA ചിപ്പുകൾ ഉൾപ്പെടെ, പ്രധാനമായും ബിറ്റ്‌കോയിൻ ഖനനത്തിനായി ഉപയോഗിച്ചിരുന്ന, 7 തരം പാസ്‌വേഡ് ഹാഷുകൾ ഇപ്പോൾ നടപ്പിലാക്കി: bcrypt, ക്ലാസിക് ഡീസ്‌ക്രിപ്റ്റ് (ബിഗ്‌ക്രിപ്റ്റ് ഉൾപ്പെടെ), sha512crypt, sha256crypt, md5crypt (Apache apr1, AIX എന്നിവയുൾപ്പെടെ), , പ്രത്യേകിച്ച് വേർഡ്പ്രസിൽ). അവയിൽ ചിലത് ആദ്യമായി FPGA-യിൽ നടപ്പിലാക്കുന്നു. Bcrypt-നെ സംബന്ധിച്ചിടത്തോളം, ഏകദേശം 5 വാട്ട് വൈദ്യുതി ഉപഭോഗമുള്ള 7^119 ആവർത്തനങ്ങളോടെ ("$2b$5") നേടിയ ~2k c/s-ന്റെ പ്രകടനം, ഓരോ ബോർഡിനും, ഓരോ ഹാർഡ്‌വെയർ വിലയ്ക്കും ഓരോ വാട്ടിനുമുള്ള ഏറ്റവും പുതിയ GPU-കൾക്കായുള്ള ഫലങ്ങൾ ഗണ്യമായി കവിയുന്നു. പിന്തുണയും നൽകി ക്ലസ്റ്ററുകൾ ഒരു റാസ്‌ബെറി പൈ 16-ൽ നിന്ന് 64 ബോർഡുകൾ (2 എഫ്‌പിജിഎകൾ) വരെ പരീക്ഷിച്ചിട്ടുള്ള ഇത്തരത്തിലുള്ള ബോർഡുകൾ. എല്ലാ പാസ്‌വേഡ് ഊഹിക്കൽ മോഡുകളും ഒരേസമയം ധാരാളം ഹാഷുകൾ ഡൗൺലോഡ് ചെയ്യുന്നതും ഉൾപ്പെടെ സാധാരണ ജോൺ ദി റിപ്പർ പ്രവർത്തനക്ഷമത പിന്തുണയ്ക്കുന്നു. ജോലി വേഗത്തിലാക്കാൻ, ഞങ്ങൾ ഒരു മാസ്‌കിന്റെ ഉപയോഗവും ("--മാസ്ക്" മോഡ്, മറ്റ് മോഡുകളുമായി സംയോജിപ്പിച്ച് ഉൾപ്പെടെ) FPGA വശത്ത് ലോഡുചെയ്തിരിക്കുന്നവയുമായി കണക്കാക്കിയ ഹാഷുകളുടെ താരതമ്യവും നടപ്പിലാക്കി. ഒരു നടപ്പിലാക്കൽ വീക്ഷണകോണിൽ, പല ഡിസൈനുകളും (ഉദാ. sha512crypt ഉം Drupal7 ഉം) ക്രിപ്‌റ്റോഗ്രാഫിക് കോറുകളുമായി സംവദിക്കുന്ന മൾട്ടി-ത്രെഡഡ് പ്രോസസർ കോറുകൾ (സോഫ്റ്റ് സിപിയു കോറുകൾ) അടങ്ങുന്ന ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നു. മറ്റ് ജംബോ ഡെവലപ്പർമാരുമായി ഏകോപിപ്പിച്ച് ഡെനിസ് ബുറികിൻ ആണ് ഈ പ്രവർത്തനത്തിന്റെ വികസനം നയിച്ചത്.

മറ്റ് പ്രധാന മാറ്റങ്ങൾ:

  • ക്ലാസിക് പാസ്‌വേഡ് ഹാഷുകൾ (ഉദാഹരണത്തിന്, ക്യുഎൻഎക്‌സിന്റെ പുതിയ പതിപ്പുകളിൽ നിന്ന്), അതുപോലെ ക്രിപ്‌റ്റോകറൻസി വാലറ്റുകൾ, എൻക്രിപ്റ്റ് ചെയ്‌ത ആർക്കൈവുകൾ, എൻക്രിപ്റ്റ് ചെയ്‌ത ഫയൽ സിസ്റ്റങ്ങൾ (ഉദാഹരണത്തിന്, ബിറ്റ്‌ലോക്കർ കൂടാതെ FreeBSD geli), കൂടാതെ മുമ്പ് പിന്തുണച്ചിരുന്ന പുതിയ തരം ഫോർമാറ്റുകൾക്കുള്ള പിന്തുണയും (ഉദാഹരണത്തിന്, OpenBSD സോഫ്റ്റ്‌ട്രെയിഡിനായി bcrypt-pbkdf-നുള്ള പിന്തുണ ചേർത്തു) കൂടാതെ മറ്റു പലതും. മൊത്തത്തിൽ, സിപിയുവിൽ 80 ഫോർമാറ്റുകളും OpenCL-ൽ 47 ഫോർമാറ്റുകളും ചേർത്തിട്ടുണ്ട് (പുതിയതും കാലഹരണപ്പെട്ടതുമായവയുമായി സംയോജിപ്പിച്ച് പഴയവയുടെ ചെറിയ എണ്ണം നീക്കം ചെയ്തിട്ടുണ്ട്). സിപിയുവിൽ ആകെ ഫോർമാറ്റുകളുടെ എണ്ണം ഇപ്പോൾ 407 ആണ് (അല്ലെങ്കിൽ 262 കോൺഫിഗറേഷൻ ഫയലുകളിൽ നിന്ന് കോൺഫിഗർ ചെയ്ത "ഡൈനാമിക്" ഫോർമാറ്റുകൾ ഉൾപ്പെടുന്നില്ല) കൂടാതെ OpenCL-ൽ 88 ആണ്.
  • ഓപ്പൺസിഎല്ലിന് അനുകൂലമായ CUDA ഭാഷയെ പിന്തുണയ്‌ക്കാനുള്ള വിസമ്മതം, ഇത് NVIDIA GPU-കളുടെ പൂർണ്ണമായ ഉപയോഗത്തെ ഒരു തരത്തിലും തടസ്സപ്പെടുത്തുന്നില്ല (കൂടാതെ, GPU-യ്‌ക്ക് മുമ്പുള്ള രണ്ട് നടപ്പിലാക്കലുകൾക്ക് പകരം ഓരോ ഫോർമാറ്റിന്റെയും ഒരു വികസനത്തിലും ഒപ്റ്റിമൈസേഷനിലും ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നതിന് നന്ദി).
  • പുതിയ SIMD ഇൻസ്ട്രക്ഷൻ സെറ്റുകൾക്കുള്ള പിന്തുണ - AVX2, AVX-512 (രണ്ടാം തലമുറ Xeon Phi ഉൾപ്പെടെ), MIC (ആദ്യ തലമുറയ്ക്ക്) - കൂടാതെ ഉപയോഗം ഉൾപ്പെടെ നിരവധി ഫോർമാറ്റുകൾ നടപ്പിലാക്കുന്നതിൽ SIMD-ന്റെ കൂടുതൽ സാർവത്രികവും പൂർണ്ണവുമായ ഉപയോഗവും x86(-64) എന്നിവയിലെ AVX, XOP എന്നിവയിലേക്ക് മുമ്പ് പിന്തുണയ്‌ക്കുന്ന ഇൻസ്ട്രക്ഷൻ സെറ്റുകൾ
    നിയോൺ, ASIMD, AltiVec എന്നിവ യഥാക്രമം ARM, Aarch64, POWER എന്നിവയിൽ. (ഭാഗികമായി GSoC 2015 ന്റെ ഭാഗമായി.)
  • CPU, OpenCL എന്നിവയ്‌ക്കായുള്ള നിരവധി ഒപ്റ്റിമൈസേഷനുകൾ, ഒരേസമയം ധാരാളം ഹാഷുകൾ ഉപയോഗിച്ച് കൂടുതൽ കാര്യക്ഷമമായി പ്രവർത്തിക്കാൻ (ഉദാഹരണത്തിന്, GPU-വിൽ 320 ദശലക്ഷം SHA-1 ഹാഷുകൾ ലോഡുചെയ്യുന്നത് പരീക്ഷിച്ചു), കൂടാതെ ഹാഷ് കണക്കുകൂട്ടലുകളുടെ വേഗത വർദ്ധിപ്പിക്കാനും. ഈ ഒപ്റ്റിമൈസേഷനുകളിൽ ചിലത് സാർവത്രികമാണ്, ചിലത് ഫോർമാറ്റുകളുടെ വ്യത്യസ്ത ഉപസെറ്റുകൾ ഉൾക്കൊള്ളുന്നു, കൂടാതെ പലതും വ്യക്തിഗത ഫോർമാറ്റുകൾക്ക് പ്രത്യേകമാണ്.
  • (Auto-) CPU-ൽ പരിശോധിച്ച പാസ്‌വേഡുകളുടെ ഒപ്റ്റിമൽ ബഫറിംഗിന്റെ കോൺഫിഗറേഷനും (“—tune=auto —verbosity=5”) OpenCL-ലെ ഒപ്റ്റിമൽ ജോബ് സൈസുകളും (ഡിഫോൾട്ടായി പ്രവർത്തനക്ഷമമാക്കിയത്), NVIDIA GTX-ന്റെ സ്ലോ റാംപ്-അപ്പ് കണക്കിലെടുക്കുന്നത് ഉൾപ്പെടെ പൂർണ്ണ പ്രവർത്തന ആവൃത്തിയിലുള്ള 10xx-ലേക്കുള്ള സീരീസ് GPU-കൾ. അത്തരം യാന്ത്രിക-ട്യൂണിംഗിനായി യഥാർത്ഥത്തിൽ ലോഡ് ചെയ്ത ഹാഷുകളും പരിശോധിക്കപ്പെടുന്ന പാസ്‌വേഡുകളുടെ യഥാർത്ഥ ദൈർഘ്യവും (അത് മുൻകൂട്ടി അറിയുമ്പോൾ) ഉപയോഗിക്കുന്നു.
  • കമാൻഡ് ലൈനിൽ നേരിട്ട് വ്യക്തമാക്കിയ "ഡൈനാമിക് എക്സ്പ്രഷനുകൾ"ക്കായി ഒരു കംപൈലർ ചേർക്കുകയും പുതിയ ഹൈബ്രിഡ് ഹാഷ് തരങ്ങൾ നടപ്പിലാക്കുകയും ചെയ്യുന്നു, ഉദാഹരണത്തിന് "-format=dynamic='sha1(md5($p).$s)'", SIMD ഉപയോഗിച്ച് CPU-ൽ കണക്കാക്കുന്നു . അത്തരം എക്സ്പ്രഷനുകളുടെ ഘടകമെന്ന നിലയിൽ, ഡസൻ കണക്കിന് ഫാസ്റ്റ് ഹാഷുകൾ പിന്തുണയ്ക്കുന്നു (എംഡി5 പോലെയുള്ള പൊതുവായവ മുതൽ വേൾപൂൾ പോലെയുള്ള മിതമായ എക്സോട്ടിക് വരെ), സബ്‌സ്ട്രിംഗ് കോൺകറ്റനേഷൻ, എൻകോഡിംഗും ഡീകോഡിംഗും, പ്രതീക കേസ് പരിവർത്തനം, പാസ്‌വേഡിലേക്കുള്ള റഫറൻസുകൾ, ഉപ്പ്, ഉപയോക്തൃനാമം, സ്ട്രിംഗ് സ്ഥിരാങ്കങ്ങൾ.
  • ഹാഷ്‌കാറ്റിൽ നിന്നുള്ള അനാവശ്യ വ്യത്യാസങ്ങൾ ഇല്ലാതാക്കൽ, മുമ്പ് ഹാഷ്‌കാറ്റ്-നിർദ്ദിഷ്ട നിയമങ്ങൾക്കുള്ള പിന്തുണ (വേഡ്‌ലിസ്റ്റ് റൂൾ കമാൻഡുകൾ), 1-ൽ നിന്ന് OpenCL ഉപകരണ നമ്പറിംഗിലേക്കുള്ള മാറ്റം, പ്രകടന പരിശോധനകൾക്കായി ഒരേ പാസ്‌വേഡ് ദൈർഘ്യത്തിന്റെ സ്ഥിര ഉപയോഗം (സാധാരണയായി നീളം 7).
  • ഹാഷ്‌കാറ്റിൽ നിന്നുള്ള PRINCE ഉൾപ്പെടെയുള്ള വേരിഫൈ ചെയ്യാവുന്ന പാസ്‌വേഡുകൾ (ക്രാക്കിംഗ് മോഡുകൾ) സൃഷ്‌ടിക്കാനുള്ള പുതിയ മോഡുകൾ (മൊത്തം ദൈർഘ്യത്തിന്റെ ക്രമത്തിൽ നിരവധി വാക്കുകൾ സംയോജിപ്പിച്ച് “പദങ്ങൾ” രൂപപ്പെടുത്തുന്നു), ഉപസെറ്റുകൾ (വ്യത്യസ്‌ത പ്രതീകങ്ങളുടെ അപര്യാപ്തമായ എണ്ണം പാസ്‌വേഡുകൾ കൊണ്ടുവരുന്നു, ഈ പ്രതീകങ്ങൾ വന്നാലും സാധ്യമായ ഒരു വലിയ കൂട്ടത്തിൽ നിന്ന്) കൂടാതെ ഹൈബ്രിഡ് എക്‌സ്‌റ്റേണൽ (മറ്റൊരു മോഡിൽ നിന്ന് ലഭിക്കുന്ന ഓരോ അടിസ്ഥാന “വാക്കിനെയും” അടിസ്ഥാനമാക്കി സ്ഥിരീകരിക്കാവുന്ന നിരവധി പാസ്‌വേഡുകൾ സൃഷ്ടിക്കാൻ സി പോലുള്ള ഭാഷയിലെ കോൺഫിഗറേഷൻ ഫയലുകളിൽ വിവരിച്ചിരിക്കുന്ന ബാഹ്യ മോഡുകളെ അനുവദിക്കുന്നു). കൂടാതെ, നിരവധി പുതിയ മുൻനിശ്ചയിച്ച ബാഹ്യ മോഡുകൾ.
  • ഒരേസമയം നിരവധി മോഡുകൾ ഉപയോഗിക്കുന്നതിനുള്ള അധിക സവിശേഷതകൾ (ഒന്നിനു മുകളിൽ മറ്റൊന്ന് - സ്റ്റാക്കിംഗ്), അതുപോലെ നിയമങ്ങളുടെ കൂട്ടം ഉപയോഗിക്കുന്നതിനുള്ള (വേഡ്‌ലിസ്റ്റ് നിയമങ്ങൾ സ്റ്റാക്കിംഗ്).
  • മാസ്ക് മോഡുകളുടെ മെച്ചപ്പെടുത്തലുകൾ (നിർദ്ദിഷ്‌ട ശ്രേണിയിൽ മാസ്‌ക് ക്രമേണ നീട്ടൽ, ഓപ്പൺസിഎൽ ഉപകരണത്തിന്റെയോ എഫ്‌പിജിഎ ബോർഡിന്റെയോ വശത്ത് മാസ്‌ക് പ്രയോഗിക്കൽ), സിംഗിൾ ക്രാക്ക് (സമാന്തരമായി ധാരാളം ഹാഷുകൾ കണക്കാക്കുന്ന ഉപകരണങ്ങളിൽ ന്യായമായ പെരുമാറ്റം) , ഇതിന് മുമ്പ് ഈ മോഡിൽ വേണ്ടത്ര പരിശോധിക്കാവുന്ന പാസ്‌വേഡുകൾ ഇല്ലായിരുന്നു, കൂടാതെ മെമ്മറി ഉപഭോഗത്തിൽ നിയന്ത്രണങ്ങളും).
  • വ്യത്യസ്ത ഉപസിസ്റ്റങ്ങളിലെ യൂണികോഡിനും മറ്റ് എൻകോഡിംഗുകൾക്കുമുള്ള പിന്തുണയ്‌ക്കായി നിരവധി മെച്ചപ്പെടുത്തലുകൾ.
  • *2john പ്രോഗ്രാമുകളിലേക്ക് നിരവധി മെച്ചപ്പെടുത്തലുകൾ (വിവിധ ഫോർമാറ്റുകളുടെ ഫയലുകൾ പരിവർത്തനം ചെയ്യുന്നു
    ജോണിനൊപ്പം ഉപയോഗിക്കുക), പ്രത്യേകിച്ച് wpapcap2john (വൈഫൈ ട്രാഫിക് കൈകാര്യം ചെയ്യുന്നു).
  • നിരവധി പുതിയ കമാൻഡ് ലൈൻ ഓപ്‌ഷനുകൾ ഉണ്ട്, john.conf-ലെ ക്രമീകരണങ്ങൾ, സ്‌ക്രിപ്റ്റ് ഓപ്‌ഷനുകൾ കോൺഫിഗർ ചെയ്യുക, അനുബന്ധ പുതിയ സവിശേഷതകൾ എന്നിവയെല്ലാം ഇവിടെ പരാമർശിച്ചിട്ടില്ല.
  • അഡ്രസ്സാനിറ്റൈസറും (മുമ്പ്) ഡീബഗ് ബിൽഡുകൾക്കുള്ള ബിൽറ്റ്-ഇൻ പിന്തുണയ്‌ക്ക് നന്ദി, കോഡ് നിലവാരം മെച്ചപ്പെടുത്തുന്നു, തുടർച്ചയായ സംയോജനം ഉപയോഗിച്ച് (ജിഎസ്ഒസി 2015-ന്റെ ഭാഗമായി) ഒരു ബിൽറ്റ്-ഇൻ ഫോർമാറ്റ് ഫസ്സർ ചേർക്കുന്നു (ഡസൻ കണക്കിന് ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിനും കംപൈലറുകൾക്കുമായി നിർമ്മിക്കുന്നു എല്ലാ ഫോർമാറ്റുകൾക്കുമുള്ള ശരിയായ പിന്തുണയ്‌ക്കായി കോമ്പിനേഷനുകളും അവ പരിശോധിക്കുന്നതും).

അവലംബം: linux.org.ru

ഒരു അഭിപ്രായം ചേർക്കുക