కొత్త వెర్షన్ యొక్క ప్రత్యేక లక్షణం FPGA మద్దతు (CPU, GPU మరియు జియాన్ ఫైతో పాటు) కనిపించడం. బోర్డుల కోసం
bcrypt కోసం, ~119 వాట్ల విద్యుత్ వినియోగంతో 2^5 పునరావృత్తులు (“$2b$05”)తో ~27k c/s సాధించిన పనితీరు ప్రతి బోర్డ్, హార్డ్వేర్ ధర మరియు వాట్కు తాజా GPUల ఫలితాలను గణనీయంగా మించిపోయింది. . మద్దతు కూడా ఇచ్చారు
పనిని వేగవంతం చేయడానికి, మేము మాస్క్ని (“—మాస్క్” మోడ్, ఇతర మోడ్లతో కలిపి) ఉపయోగించడం మరియు FPGA వైపు లోడ్ చేయబడిన వాటితో లెక్కించిన హాష్ల పోలికను అమలు చేసాము. అమలు కోణం నుండి, అనేక డిజైన్లు (ఉదా.
ఇతర ముఖ్యమైన మార్పులు:
- క్లాసిక్ పాస్వర్డ్ హాష్లు (ఉదాహరణకు, QNX యొక్క కొత్త వెర్షన్ల నుండి), అలాగే క్రిప్టోకరెన్సీ వాలెట్లు, ఎన్క్రిప్టెడ్ ఆర్కైవ్లు మరియు ఎన్క్రిప్టెడ్ ఫైల్ సిస్టమ్లు (ఉదాహరణకు, బిట్లాకర్ మరియు FreeBSD geli), అలాగే మునుపు మద్దతు ఉన్న కొత్త రకాల ఫార్మాట్లకు మద్దతు (ఉదాహరణకు, OpenBSD సాఫ్ట్రైడ్ కోసం bcrypt-pbkdf కోసం మద్దతు జోడించబడింది) మరియు మరిన్ని. మొత్తంగా, CPUలో 80 మరియు OpenCLలో 47 ఫార్మాట్లు జోడించబడ్డాయి. CPUలో మొత్తం ఫార్మాట్ల సంఖ్య ఇప్పుడు 407 (లేదా కాన్ఫిగరేషన్ ఫైల్ల నుండి కాన్ఫిగర్ చేయబడిన "డైనమిక్" ఫార్మాట్లతో సహా 262 కాదు) మరియు OpenCLలో 88.
- ఓపెన్సిఎల్కు అనుకూలంగా CUDA భాషకు మద్దతు ఇవ్వడానికి నిరాకరించడం, ఇది NVIDIA GPUల పూర్తి వినియోగానికి ఏ విధంగానూ ఆటంకం కలిగించదు (మరియు గతంలో రెండు అమలులకు బదులుగా GPU కోసం ప్రతి ఫార్మాట్లో ఒక అమలుపై అభివృద్ధి మరియు ఆప్టిమైజేషన్ను కేంద్రీకరించినందుకు ధన్యవాదాలు).
- కొత్త SIMD సూచనల సెట్లకు మద్దతు - AVX2, AVX-512 (రెండవ తరం జియాన్ ఫైతో సహా) మరియు MIC (మొదటి తరం కోసం) - అలాగే అనేక ఫార్మాట్ల అమలులో SIMD యొక్క మరింత సార్వత్రిక మరియు పూర్తి ఉపయోగం, ఉపయోగంతో సహా x86(-64)పై AVX మరియు XOP వరకు మునుపు మద్దతు ఉన్న సూచనల సెట్లు మరియు
వరుసగా ARM, Aarch64 మరియు POWERపై NEON, ASIMD మరియు AltiVec. - CPU మరియు OpenCL కోసం అనేక ఆప్టిమైజేషన్లు, ఎక్కువ సంఖ్యలో హాష్లతో ఏకకాలంలో మరింత సమర్థవంతంగా పని చేయడానికి (ఉదాహరణకు, GPUలో 320 మిలియన్ SHA-1 హ్యాష్లను లోడ్ చేయడం పరీక్షించబడింది) మరియు హాష్ లెక్కల వేగాన్ని పెంచడానికి. ఈ ఆప్టిమైజేషన్లలో కొన్ని సార్వత్రికమైనవి, కొన్ని ఫార్మాట్ల యొక్క విభిన్న ఉపసమితులను కవర్ చేస్తాయి మరియు చాలా వ్యక్తిగత ఫార్మాట్లకు ప్రత్యేకమైనవి.
- (ఆటో-) CPUలో తనిఖీ చేయబడిన పాస్వర్డ్ల యొక్క సరైన బఫరింగ్ యొక్క కాన్ఫిగరేషన్ (“—tune=auto —verbosity=5”) మరియు OpenCLలో సరైన జాబ్ సైజులు (డిఫాల్ట్గా ప్రారంభించబడింది), పూర్తి ఆపరేటింగ్ ఫ్రీక్వెన్సీ వరకు స్లో రాంప్ను పరిగణనలోకి తీసుకోవడంతో సహా NVIDIA GTX సిరీస్ GPUలు 10xx మరియు కొత్తవి. అటువంటి ఆటో-ట్యూనింగ్ కోసం వాస్తవానికి లోడ్ చేయబడిన హ్యాష్లు మరియు పాస్వర్డ్ల వాస్తవ పొడవు తనిఖీ చేయబడుతున్నాయి (అది ముందుగానే తెలిసినప్పుడు).
- కమాండ్ లైన్లో నేరుగా పేర్కొన్న "డైనమిక్ ఎక్స్ప్రెషన్స్" కోసం కంపైలర్ని జోడించడం మరియు కొత్త హైబ్రిడ్ హాష్ రకాలను అమలు చేయడం, ఉదాహరణకు "-format=dynamic='sha1(md5($p).$s)'", SIMDని ఉపయోగించి CPUలో లెక్కించబడుతుంది. . అటువంటి వ్యక్తీకరణల యొక్క భాగాలుగా, డజన్ల కొద్దీ ఫాస్ట్ హ్యాష్లు (MD5 వంటి సాధారణ వాటి నుండి వర్ల్పూల్ వంటి మధ్యస్తంగా అన్యదేశమైన వాటి వరకు), సబ్స్ట్రింగ్ సంయోగం, ఎన్కోడింగ్ మరియు డీకోడింగ్, క్యారెక్టర్ కేస్ కన్వర్షన్, పాస్వర్డ్, ఉప్పు, వినియోగదారు పేరు మరియు స్ట్రింగ్ స్థిరాంకాల సూచనలు.
- హాష్క్యాట్ నుండి అవాంఛిత వ్యత్యాసాలను తొలగించడం, మునుపు హాష్క్యాట్-నిర్దిష్ట నియమాలకు మద్దతు (వర్డ్లిస్ట్ రూల్ కమాండ్లు), 1 నుండి ఓపెన్సిఎల్ పరికర నంబరింగ్కు మారడం, పనితీరు పరీక్షల కోసం అదే పాస్వర్డ్ పొడవులను (సాధారణంగా పొడవు 7) డిఫాల్ట్ ఉపయోగించడం.
- హ్యాష్క్యాట్ నుండి PRINCEతో సహా ధృవీకరించదగిన పాస్వర్డ్లను (క్రాకింగ్ మోడ్లు) రూపొందించడానికి కొత్త మోడ్లు (మొత్తం పొడవును పెంచే క్రమంలో అనేక పదాలను కలపడం ద్వారా “పదబంధాలను” ఏర్పరుస్తుంది), ఉపసమితులు (ఈ అక్షరాలు వచ్చినప్పటికీ, వివిధ అక్షరాలు తగినంత సంఖ్యలో లేని పాస్వర్డ్లను తెస్తుంది సాధ్యమయ్యే వాటి యొక్క పెద్ద సెట్ నుండి) మరియు హైబ్రిడ్ ఎక్స్టర్నల్ (C-లాంటి భాషలోని కాన్ఫిగరేషన్ ఫైల్లలో వివరించబడిన బాహ్య మోడ్లను అనుమతిస్తుంది, మరొక మోడ్ నుండి స్వీకరించబడిన ప్రతి ప్రాథమిక “పదం” ఆధారంగా అనేక ధృవీకరించదగిన పాస్వర్డ్లను రూపొందించడానికి). అలాగే, అనేక కొత్త ముందే నిర్వచించిన బాహ్య మోడ్లు.
- అనేక మోడ్లను ఏకకాలంలో ఉపయోగించడం కోసం అదనపు లక్షణాలు (ఒకదానిపై ఒకటి - స్టాకింగ్), అలాగే నియమాల సెట్లను ఉపయోగించడం కోసం (వర్డ్లిస్ట్ నియమాలు స్టాకింగ్).
- మాస్క్ మోడ్లకు మెరుగుదలలు (నిర్దిష్ట శ్రేణిలో మాస్క్ని క్రమంగా సాగదీయడం, OpenCL పరికరం లేదా FPGA బోర్డ్ వైపు మాస్క్ని ఉపయోగించడం) మరియు సింగిల్ క్రాక్ (పెద్ద సంఖ్యలో హాష్లను సమాంతరంగా లెక్కించే పరికరాల్లో సహేతుకమైన ప్రవర్తన , దీని కోసం గతంలో ఈ మోడ్లో తగినంత ధృవీకరించదగిన పాస్వర్డ్లు లేవు మరియు మెమరీ వినియోగంపై కూడా పరిమితులు ఉన్నాయి).
- వివిధ ఉపవ్యవస్థలలో యూనికోడ్ మరియు ఇతర ఎన్కోడింగ్లకు మద్దతు ఇవ్వడానికి అనేక మెరుగుదలలు.
- *2john ప్రోగ్రామ్లకు అనేక మెరుగుదలలు (వివిధ ఫార్మాట్ల ఫైల్లను మారుస్తాయి
జాన్తో ఉపయోగించండి), ముఖ్యంగా wpapcap2john (WiFi ట్రాఫిక్ను నిర్వహిస్తుంది). - అనేక కొత్త కమాండ్ లైన్ ఎంపికలు ఉన్నాయి, john.confలో సెట్టింగ్లు, స్క్రిప్ట్ ఎంపికలను కాన్ఫిగర్ చేయండి మరియు సంబంధిత కొత్త ఫీచర్లు అన్నీ ఇక్కడ పేర్కొనబడలేదు.
- AddressSanitizer (గతంలో) మరియు UndefinedBehaviorSanitizer (జోడించబడింది)తో డీబగ్ బిల్డ్లకు అంతర్నిర్మిత మద్దతు కారణంగా కోడ్ నాణ్యతను మెరుగుపరచడం, నిరంతర ఇంటిగ్రేషన్ (డజన్ల కొద్దీ ఆపరేటింగ్ సిస్టమ్ మరియు కంపైలర్ల కోసం రూపొందించబడింది) ఉపయోగించి, అంతర్నిర్మిత ఫార్మాట్ ఫజర్ను (GSoC 2015లో భాగంగా) జోడించడం కలయికలు మరియు అన్ని ఫార్మాట్లకు సరైన మద్దతు కోసం వాటిని పరీక్షించడం).
మూలం: opennet.ru