2012-02-11 3 views

उत्तर

27

बीज पैरामीटर हैश फ़ंक्शन को यादृच्छिक बनाने का एक माध्यम है। हैशिंग फ़ंक्शन के उसी एप्लिकेशन में आपको हैशिंग फ़ंक्शन के सभी कॉल के लिए समान बीज मान प्रदान करना चाहिए। हालांकि, आपके आवेदन के प्रत्येक आमंत्रण (यह मानते हुए कि यह एक नई हैश तालिका बना रहा है) एक अलग बीज का उपयोग कर सकते हैं, उदाहरण के लिए, एक यादृच्छिक मान।

यह क्यों प्रदान किया जाता है?

एक कारण यह है कि हमलावर सेवा हमले से इनकार करने के लिए हैश फ़ंक्शन के गुणों का उपयोग कर सकते हैं। वे आपके हैश फ़ंक्शन पर स्ट्रिंग प्रदान करके ऐसा कर सकते हैं कि आपके हैश तालिका के प्रदर्शन को नष्ट करने वाले समान मूल्य के लिए सभी हैश। लेकिन यदि आप अपने कार्यक्रम के प्रत्येक भाग के लिए एक अलग बीज का उपयोग करते हैं, तो हमलावरों के तारों का सेट परिवर्तनों का उपयोग करना चाहिए।

देखें: Effective DoS on web application platform

वहाँ भी एक Twitter tag for #hashDoS

+4

यह [सार्वभौमिक हैशिंग] (http://en.wikipedia.org/wiki/Universal_hashing) के विचार से बिल्कुल संबंधित नहीं है, बल्कि एक हैश फ़ंक्शन होने के बजाय, आपके पास एक संपूर्ण परिवार है (इसमें मामला, मुर्मूरशैश 3 परिवार है, प्रत्येक संभावित बीज मूल्य के साथ आपको उस परिवार के भीतर एक विशेष कार्य देता है)। यदि आपको लगता है कि आपका इनपुट डेटा बुरी तरह वितरित हैश (उदाहरण के लिए, हमले की वजह से) उत्पन्न होता है, तो आप एक नया यादृच्छिक बीज मान चुन सकते हैं और डेटा को फिर से चला सकते हैं; डेटा आपके नए बीज मूल्य के लिए खराब वितरण का उत्पादन करने की संभावना नहीं है, इसलिए आप हमले को हराते हैं। –

0

seed नाम का एक मूल्य यहां नमक के लिए खड़ा है। किसी भी यादृच्छिक लेकिन निजी (आपके लिए ऐप) डेटा प्रदान करें, इसलिए हैश फ़ंक्शन एक ही डेटा के लिए अलग-अलग परिणाम देगा। उदाहरण के लिए इस सुविधा का उपयोग तीसरे व्यक्तियों द्वारा मूल डेटा के संशोधनों का पता लगाने के लिए आपके डेटा का पाचन बनाते हैं। जब तक वे आपके द्वारा उपयोग किए जाने वाले नमक को नहीं जानते हैं, तब तक वे शायद वैध हैश मान को दोहरा सकते हैं।

नमक (या बीज) का उपयोग विभिन्न डेटा के लिए हैश टकराव को रोकने के लिए भी किया जाता है। उदाहरण के लिए, आपका डेटा ब्लॉक ए और बी एक ही हैश उत्पन्न कर सकता है: एच (ए) == एच (बी)। लेकिन यदि आप कुछ प्रकार के अतिरिक्त डेटा प्रदान करते हैं तो आप इस विरोधाभासी स्थिति से बच सकते हैं। टकराव काफी दुर्लभ हैं, लेकिन कभी-कभी नमक डेटा के ठोस सेट के लिए उनसे बचने का एक तरीका है।

+0

वास्तव में यह संदिग्ध है। _non-cryptographic_ हैश फ़ंक्शन के लिए 'सॉल्ट' का उद्देश्य क्या है? – Lol4t0

+2

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

1

दिया प्राप्ति seed में है प्रारंभ वेक्टर के निर्माण में प्रयोग किया जाता है। यह मनमाना मूल्य है, विभिन्न डेटा के लिए अलग-अलग मूल्यों को चुनने से टक्कर दर कम हो जाएगी। लेकिन ध्यान दें, आपको seed - data की जोड़ी जाननी चाहिए।

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