हैशिंग की परिभाषा
हैशिंग एक दी गई कुंजी को कोड में अनुवाद करने की प्रक्रिया है। एक हैश फ़ंक्शन का उपयोग डेटा को नव निर्मित हैश कोड से बदलने के लिए किया जा सकता है। हैश एल्गोरिदम आमतौर पर एक फाइल की सामग्री का डिजिटल फिंगरप्रिंट प्रदान करने के लिए उपयोग किए जाते हैं, जिसका उपयोग अक्सर यह सुनिश्चित करने के लिए किया जाता है कि फाइल को किसी घुसपैठिए या वायरस द्वारा नहीं बदला गया है। हैश फ़ंक्शन कुछ ऑपरेटिंग सिस्टम द्वारा पासवर्ड एन्क्रिप्ट करने के लिए भी नियोजित किए जाते हैं। हैश फ़ंक्शन एक फाइल की अखंडता का माप प्रदान करते हैं।
कार्यप्रणाली
हैशिंग एल्गोरिदम का उपयोग करता है जो एक फाइल से सूचना के ब्लॉकों को एक बहुत छोटे मान या स्थिर लंबाई की कुंजी में परिवर्तित करता है जो उन स्ट्रिंग्स को परिभाषित करता है। परिणामी हैश मान दिए गए फाइल के अंदर प्रत्येक स्ट्रिंग का एक प्रकार का केंद्रित सारांश है, और तब भी बदलने में सक्षम होना चाहिए जब उस फाइल में डेटा का एक व्यक्तिगत बाइट बदल जाता है (हिमस्खलन प्रभाव)।
यह डेटा संपीड़न के संदर्भ में हैशिंग में बड़े लाभ का समर्थन करता है। जबकि हैशिंग संपीड़न नहीं है, यह फाइल संपीड़न की तरह बहुत काम कर सकता है जिसमें यह एक बड़े डेटा सेट को लेता है और इसे अधिक संभव रूप में सिकोड़ता है।
सुरक्षा आवश्यकताएं
सुरक्षा लक्ष्यों के लिए एक अच्छा हैश फ़ंक्शन एक एकदिशात्मक प्रक्रिया होना चाहिए जिसे एक-तरफा हैशिंग एल्गोरिदम की आवश्यकता होती है। इसलिए, हैकर्स केवल हैश को रिवर्स इंजीनियर करके इसे मूल डेटा में वापस बदल सकते हैं, जिससे पहली जगह में एन्क्रिप्शन के लक्ष्य को हराया जा सकता है।
एन्क्रिप्टेड आउटपुट की विशिष्टता बढ़ाने के लिए, हैश फ़ंक्शन के इनपुट में यादृच्छिक जानकारी जोड़ी जा सकती है। इस तकनीक को "साल्टिंग" कहा जाता है और समान इनपुट की विधि में भी अद्वितीय आउटपुट की गारंटी देता है।
क्रिप्टोग्राफिक हैश फ़ंक्शन
एक क्रिप्टोग्राफिक हैश फ़ंक्शन को यथासंभव एक रैंडम फ़ंक्शन की तरह व्यवहार करना चाहिए जबकि अभी भी नियतात्मक और कुशलतापूर्वक गणना योग्य होना चाहिए। एक क्रिप्टोग्राफिक हैश फ़ंक्शन को असुरक्षित माना जाता है यदि निम्नलिखित में से कोई भी कम्प्यूटेशनली संभव है:
- एक दिया गया डाइजेस्ट से मेल खाने वाला (पहले अनदेखा) संदेश ढूंढना।
- "टकराव" ढूंढना, जिसमें दो अलग-अलग संदेशों का समान संदेश डाइजेस्ट हो।
एक हमलावर जो इनमें से कोई भी काम कर सकता है, उदाहरण के लिए, एक अधिकृत संदेश के लिए एक अनधिकृत संदेश को प्रतिस्थापित करने के लिए उनका उपयोग कर सकता है। वैचारिक रूप से, दो संदेशों को ढूंढना भी संभव नहीं होना चाहिए जिनके डाइजेस्ट काफी समान हों; न ही कोई हमलावर केवल इसके डाइजेस्ट को देखते हुए एक संदेश के बारे में कुछ भी लाभकारी समझने में सक्षम होना चाहिए। हमलावर न्यूनतम एक जानकारी सीखता है, डाइजेस्ट ही, जो उदाहरण के लिए हमलावर को क्षमता देता है कि वही संदेश फिर से प्रकट होने पर उसे पहचान सके।
फाइल छेड़छाड़ पहचान
हैशिंग फाइल छेड़छाड़ को रोकने या विश्लेषण करने में भी मूल्यवान है। प्रारंभिक फाइल एक हैश उत्पन्न करेगी जिसे फाइल डेटा के साथ बनाए रखा जाता है। फाइल और हैश भेजे जाते हैं, और प्राप्तकर्ता पार्टी यह जांचने के लिए हैश की जांच करती है कि क्या फाइल से समझौता किया गया है। यदि दस्तावेज़ में कोई बदलाव थे, तो हैश यह प्रदर्शित करेगा।