2010-10-26 18 views
9

भ्रष्टाचार का पता लगाने के लिए फ़ाइल अखंडता जांच (चेकसम) के लिए सबसे उपयुक्त हैश फ़ंक्शन क्या है?डेटा अखंडता के लिए डेटा भ्रष्टाचार/जांच का पता लगाने के लिए एक उपयुक्त हैश फ़ंक्शन?

फ़ाइल आकार (1 10GB + करने के लिए केबी)
विभिन्न फ़ाइल प्रकारों के बहुत से
फ़ाइलों के बड़े संग्रह (+/- 100 टीबी और बढ़ती) की

वाइड रेंज

:

मैं निम्नलिखित पर विचार करने की जरूरत है

क्या बड़ी फ़ाइलों को उच्च पाचन आकार की आवश्यकता होती है (SHA-1 बनाम SHA 512)?

मुझे लगता है कि एसएचए-परिवार को क्रिप्टोग्राफिक हैश फ़ंक्शन के रूप में जाना जाता है। क्या वे "सामान्य उद्देश्य" उपयोग के लिए अनुपयुक्त हैं जैसे फ़ाइल भ्रष्टाचार का पता लगाना? क्या एमडी 5 या टाइगर की तरह कुछ बेहतर होगा?

यदि दुर्भावनापूर्ण छेड़छाड़ भी चिंता का विषय है, तो क्या आपका उत्तर w.r.t सबसे उपयुक्त हैश फ़ंक्शन बदल जाएगा?

बाहरी पुस्तकालय एक विकल्प नहीं हैं, केवल Win XP SP3 + पर उपलब्ध है।

स्वाभाविक रूप से प्रदर्शन चिंता का भी विषय है।

(यदि यह गलत है तो कृपया मेरी शब्दावली क्षमा करें, इस विषय पर मेरा ज्ञान बहुत सीमित है)।

उत्तर

15

कोई भी क्रिप्टोग्राफ़िक हैश फ़ंक्शन, यहां तक ​​कि टूटा हुआ, आकस्मिक भ्रष्टाचार का पता लगाने के लिए ठीक होगा। एक दिया गया हैश फ़ंक्शन केवल कुछ सीमा तक इनपुट के लिए परिभाषित किया जा सकता है, लेकिन सभी मानक हैश फ़ंक्शन के लिए सीमा कम से कम 2 बिट्स, यानी लगभग 2 लाख टेराबाइट्स हैं। यह काफी बड़ा है।

फ़ाइल प्रकार में कोई भी घटना नहीं है। हैश फ़ंक्शन बिट्स (या बाइट्स) के अनुक्रमों पर काम करते हैं, भले ही उन बिट्स का प्रतिनिधित्व न हो।

हैश फ़ंक्शन प्रदर्शन एक समस्या होने की संभावना नहीं है। यहां तक ​​कि "धीमी" हैश फ़ंक्शंस (जैसे SHA-256) हार्डडिस्क की तुलना में एक सामान्य पीसी पर तेजी से चलेंगे: फ़ाइल को पढ़ने से बाधा होगी, इसे नहीं है (एक 2.4 गीगाहर्ट्ज पीसी हैश डेटा डेटा के साथ SHA-512 एक कोर का उपयोग कर 200 एमबी/एस के करीब)। यदि हैश फ़ंक्शन प्रदर्शन एक मुद्दा है, तो या तो आपका सीपीयू बहुत कमजोर है, या आपकी डिस्क तेजी से एसएसडी हैं (और यदि आपके पास 100 टीबी तेज एसएसडी है तो मैं ईर्ष्यावान हूं)। उस स्थिति में, कुछ हैश फ़ंक्शन अन्य की तुलना में कुछ तेज़ होते हैं, एमडी 5 "तेज़" कार्यों में से एक है (लेकिन MD4 तेज है, और यह इतना आसान है कि बिना किसी परेशानी के किसी भी एप्लिकेशन में इसका कोड शामिल किया जा सके)।

यदि दुर्भावनापूर्ण छेड़छाड़ चिंता का विषय है, तो यह एक सुरक्षा समस्या बन जाती है, और यह अधिक जटिल है। सबसे पहले, आप क्रिप्टोग्राफिक रूप से अखंड हैश फ़ंक्शन में से एक का उपयोग करना चाहेंगे, इसलिए SHA-256 या SHA-512, एमडी 4, एमडी 5 या एसएचए -1 नहीं (एमडी 4, एमडी 5 और एसएचए -1 में मिली कमजोरियों को एक विशिष्ट पर लागू नहीं हो सकता है स्थिति, लेकिन यह एक सूक्ष्म मामला है और सुरक्षित खेलना बेहतर है)। फिर, हैशिंग पर्याप्त है या नहीं हो सकता है, इस पर निर्भर करता है कि हमलावर के पास हैश परिणामों तक पहुंच है या नहीं। संभवतः, आपको MAC का उपयोग करने की आवश्यकता हो सकती है, जिसे एक प्रकार की कुंजी हैश के रूप में देखा जा सकता है। HMAC एक हैश फ़ंक्शन से मैक बनाने का एक मानक तरीका है। अन्य गैर-हैश आधारित मैक भी हैं। इसके अलावा, एक मैक एक गुप्त "सममित" कुंजी का उपयोग करता है, जो उचित नहीं है अगर आप कुछ लोगों को चुप बदलाव करने में सक्षम होने के बिना फ़ाइल अखंडता को सत्यापित करने में सक्षम होना चाहते हैं; उस स्थिति में, आपको डिजिटल हस्ताक्षर का सहारा लेना होगा। संक्षेप में, एक सुरक्षा संदर्भ में, आपको एक स्पष्ट रूप से परिभाषित हमले मॉडल के साथ एक पूर्ण सुरक्षा विश्लेषण की आवश्यकता है।

+0

उत्कृष्ट उत्तर! बहुत बहुत धन्यवाद। – links77

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