क्रिप्टोग्राफ़िक हैश फ़ंक्शन एक संख्यात्मक फ़ंक्शन है जिसका उपयोग क्रिप्टोग्राफी में किया जाता है। एक्रिप्टोग्राफ़िक हैश फ़ंक्शन सुरक्षा सुविधाओं के साथ हैशफ़ंक्शंस की संदेश-पासिंग क्षमताओं को एकीकृत करता है।
हैश फ़ंक्शन शब्द का उपयोग कंप्यूटर विज्ञान में बहुत बार किया गया है और यह एक ऐसे फ़ंक्शन के रूप में परिभाषित होता है जो मनमाने इनपुट की एक स्ट्रिंग को व्यवस्थित लंबाई की एक स्ट्रिंग में संपीड़ित करता है। हालाँकि अगर यह कुछ और आवश्यकताओं को पूरा करता है, तो इसका उपयोग क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए किया जा सकता है और फिर इसे क्रिप्टोग्राफ़िक हैश फ़ंक्शन कहा जाता है।
क्रिप्टोग्राफ़िक हैश फ़ंक्शंस क्रिप्टोग्राफी के क्षेत्र में सबसे आवश्यक उपकरण हैं और इसका उपयोग कई सुरक्षा उद्देश्यों जैसे प्रामाणिकता, डिजिटल हस्ताक्षर, छद्म संख्या पीढ़ी, डिजिटल स्टेग्नोग्राफ़ी, डिजिटल टाइम स्टैम्पिंग आदि को प्रबंधित करने के लिए किया जाता है।
हैश फ़ंक्शन एक ऐसा फ़ंक्शन है जो किसी भी लंबाई के कुछ संदेश को इनपुट के रूप में लेता है और इसे एक निश्चित-लंबाई वाले आउटपुट में बदल देता है जिसे हैश मान, एक संदेश डाइजेस्ट, एक चेकसम या एक डिजिटल फ़िंगरप्रिंट के रूप में जाना जाता है।
एक हैश फ़ंक्शन एक फ़ंक्शन f:D -> R है, जहां डोमेन D ={0, 1}*, जो परिभाषित करता है कि डोमेन के तत्वों में चर लंबाई की बाइनरी स्ट्रिंग शामिल है; और कुछ n>=1 के लिए R ={0, 1} n को व्यवस्थित करें, जो परिभाषित करता है कि श्रेणी के तत्व निश्चित-लंबाई की बाइनरी स्ट्रिंग हैं। इसलिए, f एक फ़ंक्शन है जो किसी भी आकार के इनपुट एमेजेज M के रूप में बनाता है और आकार n का एक निश्चित-लंबाई हैश परिणाम h बनाता है।
एक हैश फ़ंक्शन f को संपीड़न फ़ंक्शन के रूप में परिभाषित किया जाता है जब उसका डोमेन D परिमित होता है, अर्थात यदि फ़ंक्शन f इनपुट के रूप में एक निश्चित-लंबाई वाला संदेश लेता है और एक छोटा निश्चित-लंबाई आउटपुट बनाता है।
क्रिप्टोग्राफ़िक हैश फ़ंक्शन की संपत्ति
हैश फ़ंक्शन के विभिन्न गुण इस प्रकार हैं -
-
किसी दिए गए डेटा के लिए हैश की गणना करना बेहद सरल है।
-
इसे इनपुट के रूप में किसी भी आकार की जानकारी के ब्लॉक को स्वीकार करना चाहिए।
-
इसे एक निश्चित लंबाई का आउटपुट बनाना चाहिए।
-
नियतात्मक और कुशलतापूर्वक पुनरुत्पादित होने के दौरान इसे यादृच्छिक कार्य की तरह व्यवहार करना चाहिए।
-
इसे किसी भी लम्बाई का इनपुट मिलना चाहिए, और निश्चित लम्बाई के एक यादृच्छिक स्ट्रिंग को आउटपुट करना चाहिए।
-
समान इनपुट के लिए, H को लगातार एक ही आउटपुट बनाना चाहिए।
-
यदि संदेश एम दिया जाता है, तो यह केवल इसके संगत पाचन की गणना करने के लिए हो सकता है; जहाँ h की गणना बहुपद समय O(n) में की जा सकती है जहाँ n इनपुट संदेश की लंबाई है।
-
एक संदेश डाइजेस्ट एच को देखते हुए, एम को खोजने के लिए यह कम्प्यूटेशनल रूप से जटिल है कि एच (एम) =एच। इसे वन-वे या प्री-इमेज रेजिस्टेंस प्रॉपर्टी के रूप में जाना जाता है। यह दिए गए हैश मान से संदेश खोजने के लिए लागू नहीं है।
-
एक संदेश M1 को देखते हुए, H (M1) =H (M2) के साथ एक अन्य संदेश M2 M1 की खोज करना कम्प्यूटेशनल रूप से असंभव है। इसे कमजोर टक्कर प्रतिरोध या दूसरी छवि-पूर्व प्रतिरोध विशेषता के रूप में जाना जाता है।
-
अलग-अलग संदेशों (एम 1, एम 2) के किसी भी सेट को खोजने के लिए कम्प्यूटेशनल रूप से असंभव है जैसे कि एच (एम 1) =एच (एम 2)। इसे मजबूत टक्कर प्रतिरोध संपत्ति के रूप में परिभाषित किया गया है।