2010-05-04 3 views
8

विषय "Is MD5 really that bad" पढ़ने के बाद, मैं हैश उत्पन्न करने के लिए एक बेहतर समाधान के बारे में सोच रहा था। क्या Adler, CRC32 या SHA1 जैसे बेहतर समाधान हैं? या वे भी टूटे हैं?यदि एमडी 5 टूटा हुआ है, तो बेहतर समाधान क्या है?

+5

क्या उद्देश्य के लिए हैश? – Gumbo

+0

@ गम्बो अच्छा बिंदु, क्योंकि सुरक्षा अनुप्रयोग टकराव के साथ भी हमेशा सार्थक नहीं होते हैं। उदाहरण के लिए टकराव एचएमएसी की अखंडता को प्रभावित नहीं करते हैं। SHA-3 प्रतियोगिता का उल्लेख करने के लिए – rook

उत्तर

9

सीआरसी 32 शायद सबसे खराब चीज है जिसे आप संभवतः पासवर्ड के लिए उपयोग कर सकते हैं (शायद crc16 :) के अलावा। चक्रीय रिडंडेंसी जांच यह पता लगाने के लिए है कि क्या प्राकृतिक कारणों से एक संदेश क्षतिग्रस्त हो गया है, बीजगणित से अधिक कुछ भी नहीं कर टकराव उत्पन्न करना तुच्छ है। SHA0 और SHA1 भी टूटा हुआ है, हालांकि एमडी 5() के विपरीत किसी ने भी SHA1 टकराव उत्पन्न नहीं किया है, लेकिन ऐसा माना जाता है कि यह हमारी वर्तमान तकनीक के साथ कम्प्यूटेशनल रूप से व्यवहार्य है।

SHA-2 परिवार के किसी भी सदस्य का उपयोग किया जाना चाहिए। शा -256 अच्छा है, SHA-512 शायद आपकी आवश्यकता से अधिक है। NIST अभी SHA-3 प्रतियोगिता कर रहा है और यह 2012 में कुछ समय के अंतिम रूप दिया जाएगा (जीत के लिए अंटी!)

+0

+1 ... मुझे स्केन के बारे में कुछ संदेह हैं ..;) [अस्वीकरण: मुझे पूर्वाग्रह हो सकता है!] – Krystian

+0

@ क्रिस्टियन आपकी दाहिनी स्कीन ने कुछ बाधाओं को मारा है और इसे पैच किया गया है। मैं यह देखने के लिए उत्सुक हूं कि यह कैसे खेलता है। – rook

+0

प्रदर्शन-वार, स्कीन 64-बिट प्लेटफार्मों पर काफी तेज़ है, लेकिन यह 32-बिट सिस्टम पर बेकार है, खासतौर पर उन एम्बेडेड सिस्टम जहां प्रदर्शन सबसे महत्वपूर्ण है (जैसे राउटर या टैपर-प्रतिरोधी भुगतान टर्मिनलों)। बीएमडब्लू और शैबल कोड के आकार पर कठोर बाधाओं वाले सिस्टम के लिए बहुत तेज और अधिक अनुकूल लगते हैं। –

4

आप देख रहे हैं एक क्रिप्टोग्राफिक हैश समारोह के लिए, एडलर और CRC32 वास्तव में बुरा विचार हैं। SHA-1 पहले ही टूटा हुआ है, लेकिन MD5 से बहुत कम खतरनाक तरीके से। हालांकि, यह शायद भविष्य में बदल जाएगा।

अभी एकमात्र समझदार विकल्प SHA-256 का उपयोग करना प्रतीत होता है, संभवतः वांछित लंबाई में पाचन को कम करना।

+0

-1 छंटनी एक बुरा विचार है। यद्यपि यह शा -512 से शा -384 बनाया गया है और शा -224 फॉर्म शा -256 बनाया गया है। यह केवल कुछ बाइट्स को बचाने के दौरान गणना का अपशिष्ट है। – rook

+2

@ द रूक: यह सामान्य रूप से सच है, लेकिन मेरे मन में कुछ विशिष्ट मामले थे। यदि आप पूर्ण हैश संग्रहित कर सकते हैं, तो यह सबसे अच्छा विकल्प है और यह किया जाना चाहिए। लेकिन अगर आपको डाइजेस्ट के 160 बिट्स (कुछ गैर-लचीली कोडबेस में SHA-1 को प्रतिस्थापित करने की आवश्यकता है) की आवश्यकता है, तो SHA-1 छोड़ने के बजाय छंटनी वाले SHA-2 का उपयोग करना बेहतर है। – Krystian

+0

मैं उस कथन से सहमत हूं। यह दो बुराइयों में से कम है। – rook

2

SHA1 में कुछ सैद्धांतिक हमले हैं लेकिन AFAIK अभी भी कुछ भी व्यावहारिक नहीं है जो आपको अभी तक इसे तोड़ने देगा।

SHA2 अब के लिए स्थिर है।

संबंधित मुद्दे