हैश कल्लिसिओं

कंप्यूटर विज्ञान में, हैश टकराव या हैश टकराव यह तब होता है जब हैश तालिका में डेटा के दो टुकड़े समान हैश मान साझा करते हैं। इस मामले में हैश मान एक हैश फंकशन से प्राप्त होता है जो डेटा इनपुट लेता है और बिट्स की एक निश्चित लंबाई लौटाता है। हालाँकि हैश एल्गोरिदम टकराव प्रतिरोध के इरादे से बनाए गए हैं, फिर भी वे कभी-कभी एक ही हैश में अलग-अलग डेटा को मैप कर सकते हैं (पिजनहोल सिद्धांत के आधार पर)। दुर्भावनापूर्ण उपयोगकर्ता इसका फायदा उठाकर डेटा की नकल कर सकते हैं, उस तक पहुंच बना सकते हैं या उसमें बदलाव कर सकते हैं। डेटा प्रबंधन और कंप्यूटर सुरक्षा (विशेष रूप से, क्रिप्टोग्राफ़िक हैश फ़ंक्शन) में हैश टकराव के संभावित नकारात्मक अनुप्रयोगों के कारण, टकराव से बचाव कंप्यूटर सुरक्षा में एक महत्वपूर्ण विषय बन गया है।

पृष्ठभूमि
किसी सेट में ऑब्जेक्ट की संख्या के आधार पर हैश टकराव अपरिहार्य हो सकता है और जिस बिट स्ट्रिंग पर उन्हें मैप किया गया है वह लंबाई में काफी लंबी है या नहीं। जब n वस्तुओं का एक सेट होता है, यदि n |R| से बड़ा है, जो इस मामले में R हैश मान की सीमा है, तो हैश टकराव होने की संभावना 1 है, जिसका अर्थ है कि ऐसा होने की गारंटी है। किसी समय में हैश टकराव की संभावना का एक अन्य कारण गणित में जन्मदिन की समस्या के विचार से उत्पन्न होता है। यह समस्या n संख्या वाले लोगों में से यादृच्छिक रूप से चुने गए दो लोगों के समूह का जन्मदिन समान होने की संभावना को देखती है। इस विचार के कारण ही जन्मदिन का हमला कहा गया। इस हमले का आधार यह है कि ऐसा जन्मदिन ढूंढना मुश्किल है जो विशेष रूप से आपके जन्मदिन या किसी विशिष्ट जन्मदिन से मेल खाता हो, लेकिन मेल खाने वाले जन्मदिन वाले किन्हीं दो लोगों का एक सेट खोजने की संभावना बहुत बढ़ जाती है। ख़राब अभिनेता इस दृष्टिकोण का उपयोग करके किसी विशिष्ट मान की खोज करने के बजाय किसी अन्य हैश मान से टकराने वाले हैश मानों को ढूंढना आसान बना सकते हैं। टकरावों का प्रभाव अनुप्रयोग पर निर्भर करता है। जब हैश फ़ंक्शंस और फ़िंगरप्रिंट का उपयोग समान डेटा की पहचान करने के लिए किया जाता है, जैसे कि होमोलॉजी (जीव विज्ञान) डीएनए अनुक्रम या समान ऑडियो फ़ाइलें, तो फ़ंक्शंस को स्थानीय-संवेदनशील हैशिंग जैसी तकनीकों का उपयोग करके अलग-अलग लेकिन समान डेटा के बीच टकराव की संभावना को अधिकतम करने के लिए डिज़ाइन किया गया है।. दूसरी ओर, अंततः,  को बहुत अलग इनपुट के बीच टकराव की परवाह किए बिना, समान इनपुट के बीच टकराव की संभावना को कम करने के लिए डिज़ाइन किया गया है। ऐसे उदाहरण जहां बुरे अभिनेता हैश टकराव बनाने या खोजने का प्रयास करते हैं उन्हें टकराव हमले के रूप में जाना जाता है। व्यवहार में, सुरक्षा-संबंधित एप्लिकेशन क्रिप्टोग्राफ़िक हैश एल्गोरिदम का उपयोग करते हैं, जो इतने लंबे होते हैं कि यादृच्छिक मिलान की संभावना नहीं होती है, इतना तेज़ होता है कि उन्हें कहीं भी उपयोग किया जा सकता है, और इतना सुरक्षित होता है कि टकराव ढूंढना बेहद कठिन होगा।

घटित होने की प्रायिकता
हैश टकराव संयोग से हो सकता है और कई हैश एल्गोरिदम के लिए जानबूझकर बनाया जा सकता है। इस प्रकार हैश टकराव की संभावना एल्गोरिदम के आकार, हैश मानों के वितरण पर निर्भर करती है, और यह विशिष्ट टकराव बनाने के लिए गणितीय रूप से ज्ञात और कम्प्यूटेशनल रूप से व्यवहार्य है या नहीं।

निम्नलिखित हैश एल्गोरिदम को ध्यान में रखें - CRC-32, MD5, और SHA-1। ये टकराव के जोखिम के विभिन्न स्तरों के साथ सामान्य हैश एल्गोरिदम हैं।

सीआरसी-32
चक्रीय अतिरेक जांच|सीआरसी-32 हैश टकराव के लिए सबसे अधिक जोखिम पैदा करता है। यह हैश फ़ंक्शन आमतौर पर उपयोग के लिए अनुशंसित नहीं है। यदि किसी हब में 77,163 हैश मान हों, तो हैश टकराव होने की संभावना 50% है, जो अन्य तरीकों की तुलना में बहुत अधिक है।

एमडी5
MD5 सबसे अधिक उपयोग किया जाता है और जब अन्य दो हैश फ़ंक्शंस की तुलना की जाती है, तो यह हैश टकराव जोखिम के मामले में मध्य मार्ग का प्रतिनिधित्व करता है। हैश टकराव होने की 50% संभावना प्राप्त करने के लिए, हब में 5.06 बिलियन से अधिक रिकॉर्ड होने चाहिए।

एसएचए-1
SHA-1 हैश टकराव के लिए सबसे कम जोखिम प्रदान करता है। SHA-1 फ़ंक्शन के लिए हैश टकराव की 50% संभावना होने के लिए, 1.42 × 10 होना चाहिए$24$ हब में रिकॉर्ड। ध्यान दें, इन उदाहरणों में उल्लिखित रिकॉर्ड की संख्या एक ही हब में होनी चाहिए।

कम संख्या में रिकॉर्ड वाला हब होने से इन सभी हैश फ़ंक्शंस में हैश टकराव की संभावना कम हो सकती है, हालांकि हमेशा एक मामूली जोखिम मौजूद रहेगा, जो अपरिहार्य है, जब तक कि टकराव रिज़ॉल्यूशन तकनीकों का उपयोग नहीं किया जाता है।

टकराव समाधान
चूँकि हैश टकराव अपरिहार्य हैं, हैश तालिकाओं में उनसे निपटने के तंत्र होते हैं, जिन्हें टकराव समाधान के रूप में जाना जाता है। सबसे आम रणनीतियों में से दो हैं खुला संबोधन  और अलग चेनिंग। कैश-सचेत टकराव रिज़ॉल्यूशन एक और रणनीति है जिस पर स्ट्रिंग हैश तालिकाओं के लिए अतीत में चर्चा की गई है।



खुला संबोधन
हैश तालिका में कोशिकाओं को इस विधि में तीन स्थितियों में से एक सौंपा गया है - कब्जा कर लिया गया है, खाली किया गया है, या हटा दिया गया है। यदि हैश टकराव होता है, तो रिकॉर्ड को एक वैकल्पिक सेल में ले जाने के लिए तालिका की जांच की जाएगी जिसे खाली बताया गया है। जब हैश टकराव होता है तो विभिन्न प्रकार की जांच होती है और इस पद्धति को लागू किया जाता है। जांच के कुछ प्रकार रैखिक जांच, डबल हैशिंग और द्विघात जांच हैं। ओपन एड्रेसिंग को क्लोज्ड हैशिंग के नाम से भी जाना जाता है।

अलग शृंखला
यह रणनीति हैश तालिका की कोशिकाओं में एक से अधिक रिकॉर्ड को जोड़ने की अनुमति देती है। यदि दो रिकॉर्ड एक ही सेल में निर्देशित किए जा रहे हैं, तो दोनों एक लिंक्ड सूची के रूप में उस सेल में जाएंगे। यह कुशलतापूर्वक हैश टकराव को होने से रोकता है क्योंकि समान हैश मान वाले रिकॉर्ड एक ही सेल में जा सकते हैं, लेकिन इसके अपने नुकसान हैं। इतनी सारी सूचियों पर नज़र रखना कठिन है और जो भी उपकरण उपयोग किया जा रहा है वह बहुत धीमा हो सकता है। अलग चेनिंग को ओपन हैशिंग के रूप में भी जाना जाता है।

कैश-सचेत टकराव संकल्प
हालाँकि पिछले दो की तुलना में बहुत कम उपयोग किया गया है, ने 2005 में कैश (कंप्यूटिंग)-सचेत टकराव समाधान विधि प्रस्तावित की है। यह अलग-अलग श्रृंखलाबद्ध तरीकों के समान विचार है, हालांकि इसमें तकनीकी रूप से श्रृंखलाबद्ध सूचियाँ शामिल नहीं हैं। इस मामले में, श्रृंखलाबद्ध सूचियों के बजाय, हैश मानों को वस्तुओं की एक सन्निहित सूची में दर्शाया जाता है। यह स्ट्रिंग हैश तालिकाओं के लिए बेहतर उपयुक्त है और संख्यात्मक मानों के लिए उपयोग अभी भी अज्ञात है।

यह भी देखें

 * हैश फ़ंक्शंस की सूची
 * यूनिवर्सल वन-वे हैश फ़ंक्शन
 * क्रिप्टोग्राफी
 * यूनिवर्सल हैशिंग
 * उत्तम हैश फ़ंक्शन