2010-06-11 19 views
12

एमडी 5 और एसएचए -1 हैश की टक्कर के हमलों के खिलाफ कमजोरियां हैं। SHA256 नहीं है लेकिन यह 256 बिट्स आउटपुट करता है। क्या मैं सुरक्षित रूप से पहली या आखिरी 128 बिट्स ले सकता हूं और हैश के रूप में इसका उपयोग कर सकता हूं? मुझे पता है कि यह कमजोर होगा (क्योंकि इसमें कम बिट्स हैं) लेकिन अन्यथा यह काम करेगा?क्या SHA256 हैश को 128 बिट्स में छीनना ठीक है?

मूल रूप से मैं इसे फ़ाइल सिस्टम में फ़ाइलों की विशिष्ट पहचान करने के लिए उपयोग करना चाहता हूं, जिसमें एक दिन में एक ट्रिलियन फाइलें हो सकती हैं। मुझे जन्मदिन की समस्या से अवगत है और एक 128 बिट हैश को ट्रिलियन फाइलों पर ट्रिलियन मौके में 1 के बारे में 1 मिलना चाहिए, जिसमें एक ही हैश के साथ दो अलग-अलग फाइलें होंगी। मैं उन बाधाओं के साथ रह सकता हूं।

मैं जो नहीं रह सकता वह यह है कि अगर कोई आसानी से, जानबूझ कर, एक ही हैश के साथ एक नई फ़ाइल डालें और फ़ाइल के शुरुआती अक्षर के साथ एक नई फ़ाइल डालें। मैं एमडी 5 और एसएचए 1 में विश्वास करता हूं यह संभव है।

+0

मैंने सोचा था जन्मदिन विरोधाभास है कि तुलना में कम अंतर देना होगा, लेकिन विकिपीडिया आप के साथ सहमत हैं: http: //en.wikipedia।संगठन/विकी/जन्मदिन_परडॉक्स # संभाव्यता_टेबल –

+0

संबंधित प्रश्न: http://stackoverflow.com/questions/2256423/truncating-an-md5-hash-how-do-i-calculate-the-odds-of-a-collision-occuring – Shadok

+1

यह भी देखें: http://security.stackexchange.com/questions/18385/does-truncating-the-cryptographic-hash-make-it-impossible-to-crack – Luc

उत्तर

0

हाँ, यह काम करेगा।

रिकॉर्ड के लिए, एमडी 5 के खिलाफ उपयोग टकराव के हमलों में जाना जाता है, लेकिन एसएचए -1 हमले इस बिंदु पर पूरी तरह सैद्धांतिक हैं (कोई SHA-1 टक्कर कभी नहीं मिली है ... अभी तक)।

+2

एसएचए -256 (हैश जो ओपी बात कर रहा है) एसएचए -2 है, हालांकि SHA-1 नहीं - मुझे लगता है? और अब तक SHA-2 के लिए कोई टकराव नहीं मिला है .. सैद्धांतिक रूप से भी नहीं। – user353297

+0

@ ब्लूराजा- पूरी तरह से सच नहीं है। चेक आउट करें: http://people.csail.mit.edu/yiqun/SHA1AttackProceedingVersion.pdf –

+1

@ mrl33t: नहीं; एसएचए -1 में सैद्धांतिक भेद्यताएं हैं, लेकिन SHA-256 (जो SHA-2 सूट का हिस्सा है) में उनको भी नहीं है। SHA-256 हैश के आकार को ध्यान में रखते हुए SHA-1 की तुलना में 2^128 गुना अधिक है, और SHA-2 को सैद्धांतिक रूप से सुरक्षित माना जाता है, ऐसा नहीं लगता कि जल्द ही कोई भी SHA-256 टकराव होगा। –

4

लेकिन क्या यह इसके लायक है? यदि आपके पास प्रत्येक फ़ाइल के लिए हैश है, तो आपके पास अनिवार्य रूप से प्रत्येक फ़ाइल के लिए ओवरहेड है। आइए मान लें कि प्रत्येक फ़ाइल को कम से कम 512 बाइट्स (एक सामान्य डिस्क सेक्टर) लेना चाहिए और यह कि आप इन हैंश को काफी हद तक संग्रहित कर रहे हैं ताकि प्रत्येक हैश हैश आकार से कहीं अधिक न हो।

तो, अगर आपकी सभी फाइलें 512 बाइट्स हैं, तो सबसे छोटी, आप या तो 16/512 = 3.1% या 32/512 = 6.3% बात कर रहे हैं। हकीकत में, मैं शर्त लगाता हूं कि आपका औसत फ़ाइल आकार अधिक है (जब तक कि आपकी सभी फाइलें 1 सेक्टर न हों ...), ताकि ओवरहेड कम हो।

अब, आपके पास मौजूद फाइलों की संख्या के साथ हैश स्केल के लिए आवश्यक स्थान की मात्रा। क्या है कि के अतिरिक्त अतिरिक्त स्थान है? भले ही आपने अपनी उल्लिखित ट्रिलियन फाइलें हों - यह 1 000 000 000 000 * 16 = ~29 TiB है, जो बहुत सी जगह है, लेकिन ध्यान रखें: आपका डेटा 1 000 000 000 000 * 512 = 465 TiB होगा। संख्याएं बेकार हैं, वास्तव में, क्योंकि यह अभी भी 3% या 6% ओवरहेड है। लेकिन इस स्तर पर, जहां आपके पास स्टोरेज का आधा पेटबाइट है, 15 टेराबाइट्स मायने रखता है? किसी भी स्तर पर, 3% बचत का मतलब कुछ भी है? और याद रखें, अगर वे बड़े हैं, तो आप कम बचाते हैं। (जो, वे शायद हैं: उस हार्ड डिस्क आकार पर 512 बाइट सेक्टर आकार प्राप्त करने के लिए शुभकामनाएं।)

तो, यह 3% या सुरक्षा में संभावित जोखिम के कम डिस्क बचत है। (जो मैं अनुत्तरित छोड़ दूंगा, क्योंकि यह चाय का प्याला नहीं है।)

वैकल्पिक रूप से, क्या आप कुछ तार्किक फैशन में समूह फ़ाइलों को एक साथ कह सकते हैं, ताकि आपके पास कम फाइलें हों? (मेरा मतलब है, अगर आप 512 बाइट फ़ाइलों के अरबों है, आप वास्तव में डिस्क पर हर बाइट हैश करने के लिए करना चाहते हैं?)

+2

वास्तव में सवाल का जवाब नहीं देता है। क्या यह? – ALOToverflow

+5

@ALOToverflow: नहीं, यह नहीं है। लेकिन इसका मतलब यह नहीं है कि यह प्रासंगिक नहीं है: कभी-कभी प्रश्न के आधार पर पूछताछ करने से पोस्टर के लिए बेहतर समाधान हो सकता है, सामान्य दर्शक Google के माध्यम से बाद में प्रश्न पढ़ रहे हैं, या दोनों: SO यहां सहायक होने के लिए है, इसलिए मैं इस तरह के पदों को सार्थक मानता हूं। मुझे शायद सुरक्षा पहलू को कड़ी मेहनत करनी चाहिए: मेरे अनुभव में, क्रिप्टोग्राफी से निपटने वाली अधिकांश चीजों में, यदि आप पीटा पथ से विचलित हो जाते हैं, तो अजीब (और आमतौर पर खराब) चीजें होती हैं। डिस्क में थोड़ी सी बचत के लायक है? (यह हो सकता है, लेकिन यह उपयोग-मामले पर निर्भर करता है।) – Thanatos

7

हाँ कि काम करेंगे। सैद्धांतिक रूप से यह बेहतर है दो हिस्सों को एक साथ XOR के लिए लेकिन फिर भी छोटा कर दिया SHA256 MD5 अधिक मजबूत है। तुम अब भी परिणाम एक 256 बिट हैश हालांकि एक 128 बिट हैश के बजाय विचार करना चाहिए।

इस विशेष मामले में मेरी विशेष सिफारिश की दुकान और संदर्भ HASH + uniquifier जहां uniquifier कितने अलग फ़ाइलों आप इस हैश के साथ पहले देखा है की गिनती है का उपयोग कर रहा है। यदि कोई SHA256 के लिए भविष्य में खोज किए गए टकराव वैक्टर को स्टोर करने का प्रयास करता है तो इस तरह आप बिल्कुल नीचे गिर नहीं जाते हैं।

+10

मुझे कोई संदर्भ नहीं मिल सकता है जो कहता है कि यह एक्सओआर के साथ सैद्धांतिक रूप से बेहतर है, और मुझे संदेह है कि यह है। Uniquifier के साथ दिलचस्प विचार। –

+0

ग्रेग्स: एमडी 5 पर शुरुआती हमलों में से कुछ ने एक या दो कोशिकाओं के साथ अधिकांश हैश पर टकराव किया। – Joshua

+0

@ जोशुआ यह अपने अनुभवजन्य (सैद्धांतिक रूप से) बेहतर नहीं लगता है। मुझे इस संदर्भ में भी रूचि है कि एक्सओआर बेहतर क्यों होगा। – Drux

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