क्रिप्टोग्राफ़िक हैश फ़ंक्शन: Difference between revisions

From Vigyanwiki
No edit summary
Line 2: Line 2:
{{More citations needed|date=May 2016}}
{{More citations needed|date=May 2016}}
[[Image:Cryptographic Hash Function.svg|thumb|375px|right|काम पर एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन (विशेष रूप से [[SHA-1]])। इनपुट में एक छोटा सा बदलाव (ओवर वर्ड में) आउटपुट (डाइजेस्ट) में काफी बदलाव करता है। यह तथाकथित [[हिमस्खलन प्रभाव]] है।]]
[[Image:Cryptographic Hash Function.svg|thumb|375px|right|काम पर एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन (विशेष रूप से [[SHA-1]])। इनपुट में एक छोटा सा बदलाव (ओवर वर्ड में) आउटपुट (डाइजेस्ट) में काफी बदलाव करता है। यह तथाकथित [[हिमस्खलन प्रभाव]] है।]]
{{SHA-box}}
क्रिप्टोग्राफ़िक हैश फ़ंक्शन (सीएचएफ) यह एक [[हैश एल्गोरिथम]] है (<math>n</math> बिट्स के निश्चित आकार के साथ बाइनरी स्ट्रिंग के लिए एक मनमाना बाइनरी स्ट्रिंग का [[नक्शा (गणित)]] है) जिसमें [[क्रिप्टोग्राफी]] के लिए विशेष गुण होते हैं:{{sfn|Menezes|van Oorschot|Vanstone|2018|p=33}}
एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन (CHF) एक [[हैश एल्गोरिथ्म]] (एक [[नक्शा (गणित)]] है जो एक निश्चित आकार के बाइनरी स्ट्रिंग के लिए एक मनमाना बाइनरी स्ट्रिंग है) <math>n</math> बिट्स) जिसमें [[क्रिप्टोग्राफी]] के लिए वांछनीय विशेष गुण हैं:{{sfn|Menezes|van Oorschot|Vanstone|2018|p=33}}
*एक यादृच्छिक इनपुट स्ट्रिंग ("संदेश") के लिए एक विशेष <math>n</math>-बिट आउटपुट परिणाम ([[हैश मान]]) की संभावना <math>2^{-n}</math> (किसी भी अच्छे हैश की तरह) है, इसलिए हैश मान का उपयोग संदेश के प्रतिनिधि के रूप में किया जा सकता है;
* किसी विशेष की संभावना <math>n</math>एक यादृच्छिक इनपुट स्ट्रिंग (संदेश) के लिए -बिट आउटपुट परिणाम ([[हैश मान]]) है <math>2^{-n}</math> (जैसे किसी अच्छे हैश के लिए), इसलिए हैश मान को संदेश के प्रतिनिधि के रूप में इस्तेमाल किया जा सकता है;
*किसी दिए गए हैश मान (एक पूर्व-छवि) से मेल खाने वाली इनपुट स्ट्रिंग ढूँढना अक्षम्य है, जब तक कि किसी पूर्व-परिकलित ज्ञात शब्दकोश ("[[इंद्रधनुष तालिका]]") से मान का चयन नहीं किया जाता है। ऐसी खोज के प्रतिरोध को सुरक्षा सक्रियता के रूप में परिमाणित किया जाता है, हैश मान को <math>n</math> बिट्स के साथ एक क्रिप्टोग्राफ़िक हैश में <math>n</math> बिट्स की पूर्वप्रतिबिंब प्रतिरोध सक्रियता होने की उम्मीद होती है। एक दूसरी पूर्वप्रतिबिंब प्रतिरोध सक्रियता, समान अपेक्षाओं के साथ, दूसरे संदेश को खोजने की समान समस्या को संदर्भित करती है जब संदेश पहले से ही ज्ञात हो तो वह दिए गए हैश मान से मेल खाती है;
* किसी दिए गए हैश मान (एक पूर्व-छवि) से मेल खाने वाली इनपुट स्ट्रिंग को खोजना संभव नहीं है, जब तक कि किसी ज्ञात पूर्व-परिकलित शब्दकोश ([[इंद्रधनुष तालिका]]) से मान का चयन नहीं किया जाता है। ऐसी खोज के प्रतिरोध को सुरक्षा शक्ति के रूप में परिमाणित किया जाता है, एक क्रिप्टोग्राफ़िक हैश के साथ <math>n</math> हैश वैल्यू के बिट्स की प्रीइमेज रेजिस्टेंस स्ट्रेंथ होने की उम्मीद है <math>n</math> बिट्स। एक समान दूसरी प्रीइमेज रेजिस्टेंस स्ट्रेंथ, समान अपेक्षाओं के साथ, एक दूसरे संदेश को खोजने की समान समस्या को संदर्भित करता है जो दिए गए हैश मान से मेल खाता है जब एक संदेश पहले से ही ज्ञात हो;
*एक ही प्रकार के हैश मान (टकराव) उत्पन्न करने वाले विभिन्न संदेशों के किसी प्रकार के जोड़े को खोजना भी संभव नहीं है, एक क्रिप्टोग्राफ़िक हैश में (जन्मदिन विरोधाभास कम होने के कारण) <math>n/2</math> बिट्स का टकराव प्रतिरोध सक्रियता होने की उम्मीद होती है।
* एक ही हैश मान (टकराव) उत्पन्न करने वाले विभिन्न संदेशों के किसी भी जोड़े को खोजना भी संभव नहीं है, एक क्रिप्टोग्राफ़िक हैश की टकराव प्रतिरोध शक्ति होने की उम्मीद है <math>n/2</math> बिट्स ([[जन्मदिन विरोधाभास]] के कारण कम)।
 
क्रिप्टोग्राफिक हैश फ़ंक्शंस में कई [[सूचना सुरक्षा]] हैं। सूचना-सुरक्षा अनुप्रयोग, विशेष रूप से डिजिटल हस्ताक्षर, [[संदेश [[प्रमाणीकरण]] कोड]] (एमएसीएस) और प्रमाणीकरण के अन्य रूपों में। उनका उपयोग साधारण हैश फ़ंक्शंस के रूप में, [[हैश टेबल]] में डेटा इंडेक्स करने के लिए, फ़िंगरप्रिंट (कंप्यूटिंग) के लिए, डुप्लिकेट डेटा का पता लगाने या विशिष्ट रूप से फ़ाइलों की पहचान करने के लिए, और आकस्मिक डेटा भ्रष्टाचार का पता लगाने के लिए [[अंततः,]] के रूप में भी किया जा सकता है। दरअसल, सूचना-सुरक्षा संदर्भों में, क्रिप्टोग्राफ़िक हैश मान को कभी-कभी (डिजिटल) फ़िंगरप्रिंट, चेकसम, या केवल हैश मान कहा जाता है, भले ही ये सभी शब्द अलग-अलग गुणों और उद्देश्यों के साथ अधिक सामान्य कार्यों के लिए खड़े हों।<ref name="wjryW">{{cite web|last1=Schneier|first1=Bruce|author-link1=Bruce Schneier|title=MD5 और SHA का क्रिप्ट विश्लेषण: एक नए मानक के लिए समय|url=https://www.schneier.com/essays/archives/2004/08/cryptanalysis_of_md5.html|url-status=dead|archive-url=https://web.archive.org/web/20160316114109/https://www.schneier.com/essays/archives/2004/08/cryptanalysis_of_md5.html|archive-date=2016-03-16|access-date=2016-04-20|website=Computerworld|quote=एन्क्रिप्शन एल्गोरिदम से कहीं अधिक, एक तरफ़ा हैश फ़ंक्शन आधुनिक क्रिप्टोग्राफी के वर्कहॉर्स हैं।}}</ref>
 


संदेश [[प्रमाणीकरण]] कोड (एमएसीएस) और प्रमाणीकरण के अन्य रूपों में क्रिप्टोग्राफिक हैश फ़ंक्शंस में कई [[सूचना सुरक्षा]] अनुप्रयोग हैं, विशेष रूप से डिजिटल हस्ताक्षर। उनका उपयोग साधारण हैश फ़ंक्शंस के रूप में, [[हैश टेबल]] में डेटा इंडेक्स करने के लिए, फ़िंगरप्रिंटिंग के लिए, डुप्लिकेट डेटा का पता लगाने के लिए या विशिष्ट रूप से फ़ाइलों की पहचान करने के लिए और आकस्मिक डेटा भ्रष्टाचार का पता लगाने के लिए चेकसम के रूप में भी किया जा सकता है। वास्तव में, सूचना-सुरक्षा संदर्भों में, क्रिप्टोग्राफ़िक हैश मान को कभी-कभी (डिजिटल) फ़िंगरप्रिंट, चेकसम, या केवल हैश मान कहा जाता है, भले ही ये सभी शब्द अलग-अलग गुणों और उद्देश्यों के साथ अधिक सामान्य कार्यों के लिए खड़े हों।<ref name="wjryW">{{cite web|last1=Schneier|first1=Bruce|author-link1=Bruce Schneier|title=MD5 और SHA का क्रिप्ट विश्लेषण: एक नए मानक के लिए समय|url=https://www.schneier.com/essays/archives/2004/08/cryptanalysis_of_md5.html|url-status=dead|archive-url=https://web.archive.org/web/20160316114109/https://www.schneier.com/essays/archives/2004/08/cryptanalysis_of_md5.html|archive-date=2016-03-16|access-date=2016-04-20|website=Computerworld|quote=एन्क्रिप्शन एल्गोरिदम से कहीं अधिक, एक तरफ़ा हैश फ़ंक्शन आधुनिक क्रिप्टोग्राफी के वर्कहॉर्स हैं।}}</ref>
== गुण ==
== गुण ==
अधिकांश क्रिप्टोग्राफ़िक हैश फ़ंक्शंस को इनपुट के रूप में किसी भी लम्बाई के [[स्ट्रिंग (कंप्यूटर विज्ञान)]] लेने के लिए डिज़ाइन किया गया है और एक निश्चित-लंबाई हैश मान उत्पन्न करता है।
अधिकांश क्रिप्टोग्राफ़िक हैश फ़ंक्शंस को इनपुट के रूप में किसी भी लम्बाई के [[स्ट्रिंग (कंप्यूटर विज्ञान)]] लेने के लिए डिज़ाइन किया गया है और एक निश्चित-लंबाई हैश मान उत्पन्न करता है।
Line 29: Line 26:


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


संदेशों के एक सीमित सेट से चुने गए संदेशों के लिए, उदाहरण के लिए [[पासवर्ड]] या अन्य छोटे संदेश, सेट में सभी संभावित संदेशों को आज़माकर हैश को उल्टा करना संभव हो सकता है। क्योंकि क्रिप्टोग्राफ़िक हैश फ़ंक्शंस को आमतौर पर जल्दी से गणना करने के लिए डिज़ाइन किया गया है, विशेष कुंजी व्युत्पत्ति फ़ंक्शंस जिन्हें अधिक कंप्यूटिंग संसाधनों की आवश्यकता होती है, विकसित किए गए हैं जो ऐसे क्रूर-बल हमलों को और अधिक कठिन बनाते हैं।
संदेशों के एक सीमित सेट से चुने गए संदेशों के लिए, उदाहरण के लिए [[पासवर्ड]] या अन्य छोटे संदेश, सेट में सभी संभावित संदेशों को आज़माकर हैश को उल्टा करना संभव हो सकता है। क्योंकि क्रिप्टोग्राफ़िक हैश फ़ंक्शंस को आमतौर पर जल्दी से गणना करने के लिए डिज़ाइन किया गया है, विशेष कुंजी व्युत्पत्ति फ़ंक्शंस जिन्हें अधिक कंप्यूटिंग संसाधनों की आवश्यकता होती है, विकसित किए गए हैं जो ऐसे क्रूर-बल हमलों को और अधिक कठिन बनाते हैं।
Line 141: Line 138:
SHA-3 (सिक्योर हैश एल्गोरिथम 3) NIST द्वारा 5 अगस्त, 2015 को जारी किया गया था। SHA-3 व्यापक क्रिप्टोग्राफ़िक आदिम परिवार Keccak का एक उपसमूह है। केकेक एल्गोरिथम गुइडो बर्टोनी, जोन डेमन, माइकल पीटर्स और गाइल्स वान असचे का काम है। केकेक एक स्पंज निर्माण पर आधारित है जिसका उपयोग अन्य क्रिप्टोग्राफ़िक प्रिमिटिव जैसे स्ट्रीम सिफर बनाने के लिए भी किया जा सकता है। SHA-3, SHA-2: 224, 256, 384 और 512 बिट्स के समान आउटपुट आकार प्रदान करता है।
SHA-3 (सिक्योर हैश एल्गोरिथम 3) NIST द्वारा 5 अगस्त, 2015 को जारी किया गया था। SHA-3 व्यापक क्रिप्टोग्राफ़िक आदिम परिवार Keccak का एक उपसमूह है। केकेक एल्गोरिथम गुइडो बर्टोनी, जोन डेमन, माइकल पीटर्स और गाइल्स वान असचे का काम है। केकेक एक स्पंज निर्माण पर आधारित है जिसका उपयोग अन्य क्रिप्टोग्राफ़िक प्रिमिटिव जैसे स्ट्रीम सिफर बनाने के लिए भी किया जा सकता है। SHA-3, SHA-2: 224, 256, 384 और 512 बिट्स के समान आउटपुट आकार प्रदान करता है।


SHAKE-128 और SHAKE-256 फ़ंक्शंस का उपयोग करके कॉन्फ़िगर करने योग्य आउटपुट आकार भी प्राप्त किए जा सकते हैं। यहां -128 और -256 नाम के विस्तार बिट्स में आउटपुट आकार के बजाय फ़ंक्शन की सुरक्षा शक्ति का संकेत देते हैं।
SHAKE-128 और SHAKE-256 फ़ंक्शंस का उपयोग करके कॉन्फ़िगर करने योग्य आउटपुट आकार भी प्राप्त किए जा सकते हैं। यहां -128 और -256 नाम के विस्तार बिट्स में आउटपुट आकार के बजाय फ़ंक्शन की सुरक्षा सक्रियता का संकेत देते हैं।


===ब्लैक2===
===ब्लैक2===

Revision as of 22:31, 29 December 2022

काम पर एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन (विशेष रूप से SHA-1)। इनपुट में एक छोटा सा बदलाव (ओवर वर्ड में) आउटपुट (डाइजेस्ट) में काफी बदलाव करता है। यह तथाकथित हिमस्खलन प्रभाव है।

क्रिप्टोग्राफ़िक हैश फ़ंक्शन (सीएचएफ) यह एक हैश एल्गोरिथम है ( बिट्स के निश्चित आकार के साथ बाइनरी स्ट्रिंग के लिए एक मनमाना बाइनरी स्ट्रिंग का नक्शा (गणित) है) जिसमें क्रिप्टोग्राफी के लिए विशेष गुण होते हैं:[1]

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

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

गुण

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

एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन को सभी ज्ञात क्रिप्ट विश्लेषण # क्रिप्ट एनालिटिक हमले के प्रकारों का सामना करने में सक्षम होना चाहिए। सैद्धांतिक क्रिप्टोग्राफी में, क्रिप्टोग्राफिक हैश फ़ंक्शन के सुरक्षा स्तर को निम्नलिखित गुणों का उपयोग करके परिभाषित किया गया है:

पूर्व-छवि प्रतिरोध
एक हैश मान दिया गया h, कोई संदेश ढूंढना कठिन होना चाहिए m ऐसा है कि h = hash(m). यह अवधारणा एक तरफ़ा कार्य से संबंधित है। जिन कार्यों में इस गुण का अभाव होता है, वे प्रीइमेज हमलों के प्रति संवेदनशील होते हैं।
दूसरा पूर्व-छवि प्रतिरोध
एक इनपुट दिया गया m1, कोई भिन्न इनपुट खोजना कठिन होना चाहिए m2 ऐसा है कि hash(m1) = hash(m2). इस संपत्ति को कभी-कभी कमजोर टक्कर प्रतिरोध कहा जाता है। जिन कार्यों में इस गुण का अभाव होता है, वे प्रीइमेज अटैक|सेकेंड-प्रीइमेज अटैक के प्रति संवेदनशील होते हैं।
टक्कर प्रतिरोध
दो अलग-अलग संदेशों को ढूंढना मुश्किल होना चाहिए m1 तथा m2 ऐसा है कि hash(m1) = hash(m2). ऐसी जोड़ी को क्रिप्टोग्राफ़िक हैश टक्कर कहा जाता है। इस संपत्ति को कभी-कभी मजबूत टक्कर प्रतिरोध कहा जाता है। इसके लिए पूर्व-छवि प्रतिरोध के लिए आवश्यक हैश मान की तुलना में कम से कम दो बार हैश मान की आवश्यकता होती है; अन्यथा टकराव जन्मदिन के हमले से मिल सकते हैं।[3]

टक्कर प्रतिरोध का तात्पर्य दूसरे पूर्व-छवि प्रतिरोध से है, लेकिन पूर्व-छवि प्रतिरोध का अर्थ नहीं है।[4] सैद्धांतिक क्रिप्टोग्राफी में हमेशा कमजोर धारणा को प्राथमिकता दी जाती है, लेकिन व्यवहार में, एक हैश-फ़ंक्शन जो केवल दूसरी पूर्व-छवि प्रतिरोधी है, असुरक्षित माना जाता है और इसलिए वास्तविक अनुप्रयोगों के लिए अनुशंसित नहीं है।

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

इन मानदंडों को पूरा करने वाले समारोह में अभी भी अवांछित गुण हो सकते हैं। वर्तमान में, लोकप्रिय क्रिप्टोग्राफ़िक हैश फ़ंक्शंस लंबाई विस्तार हमले | लंबाई-विस्तार हमलों के लिए असुरक्षित हैं: दिया गया hash(m) तथा len(m) लेकिन नहीं m, एक उपयुक्त चुनकर m हमलावर गणना कर सकता है hash(mm), जहां ∥ संयोजन को दर्शाता है।[5] इस संपत्ति का उपयोग हैश कार्यों के आधार पर सहज प्रमाणीकरण योजनाओं को तोड़ने के लिए किया जा सकता है। एचएमएसी निर्माण इन समस्याओं के आसपास काम करता है।

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

कठिनाई की डिग्री

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

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

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

चित्रण

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

अनुप्रयोग

संदेशों और फाइलों की अखंडता का सत्यापन

सुरक्षित हैश का एक महत्वपूर्ण अनुप्रयोग संदेश अखंडता का सत्यापन है। ट्रांसमिशन से पहले और बाद में गणना किए गए संदेश डाइजेस्ट (संदेश पर हैश डाइजेस्ट) की तुलना करना यह निर्धारित कर सकता है कि संदेश या कम्प्यूटर फाइल में कोई बदलाव किया गया है या नहीं।

MD5, SHA-1, या SHA-2 हैश डाइजेस्ट को कभी-कभी वेबसाइटों या फ़ोरम पर प्रकाशित किया जाता है ताकि डाउनलोड की गई फ़ाइलों के लिए अखंडता का सत्यापन किया जा सके,[7] फ़ाइल साझाकरण जैसे मिरर वेबसाइट का उपयोग करके पुनर्प्राप्त की गई फ़ाइलें शामिल हैं। यह अभ्यास विश्वास की एक श्रृंखला स्थापित करता है जब तक कि हैश एक विश्वसनीय साइट पर पोस्ट किया जाता है - आमतौर पर मूल साइट - HTTPS द्वारा प्रमाणित। क्रिप्टोग्राफ़िक हैश और विश्वास की श्रृंखला का उपयोग फ़ाइल में दुर्भावनापूर्ण परिवर्तनों का पता लगाता है। गैर-क्रिप्टोग्राफ़िक त्रुटि-खोज कोड जैसे कि चक्रीय अतिरेक जाँच केवल फ़ाइल के गैर-दुर्भावनापूर्ण परिवर्तनों से बचाती है, क्योंकि एक जानबूझकर स्पूफिंग हमले को टक्कर हमले के मूल्य के लिए आसानी से तैयार किया जा सकता है।

हस्ताक्षर निर्माण और सत्यापन

लगभग सभी डिजिटल हस्ताक्षर योजनाओं को संदेश पर गणना करने के लिए क्रिप्टोग्राफ़िक हैश की आवश्यकता होती है। यह हस्ताक्षर गणना को अपेक्षाकृत छोटे, स्थिर आकार के हैश डाइजेस्ट पर निष्पादित करने की अनुमति देता है। संदेश को प्रामाणिक माना जाता है यदि हस्ताक्षर सत्यापन संदेश पर हस्ताक्षर और पुनर्गणना किए गए हैश डाइजेस्ट को सफल बनाता है। इसलिए क्रिप्टोग्राफ़िक हैश की संदेश अखंडता संपत्ति का उपयोग सुरक्षित और कुशल डिजिटल हस्ताक्षर योजनाएँ बनाने के लिए किया जाता है।

पासवर्ड सत्यापन

पासवर्ड सत्यापन आमतौर पर क्रिप्टोग्राफ़िक हैश पर निर्भर करता है। यदि पासवर्ड फ़ाइल से समझौता किया जाता है, तो सभी उपयोगकर्ता पासवर्ड को स्पष्ट टेक्स्ट के रूप में संग्रहीत करने से बड़े पैमाने पर सुरक्षा उल्लंघन हो सकता है। इस खतरे को कम करने का एक तरीका केवल प्रत्येक पासवर्ड के हैश डाइजेस्ट को स्टोर करना है। एक उपयोगकर्ता को प्रमाणित करने के लिए, उपयोगकर्ता द्वारा प्रस्तुत पासवर्ड को हैश किया जाता है और संग्रहीत हैश के साथ तुलना की जाती है। पासवर्ड हैशिंग करते समय पासवर्ड रीसेट विधि की आवश्यकता होती है; संग्रहीत हैश मान से मूल पासवर्ड की पुनर्गणना नहीं की जा सकती।

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

काम का सबूत

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

फ़ाइल या डेटा पहचानकर्ता

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

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

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

== ब्लॉक सिफर == पर आधारित हैश फ़ंक्शन क्रिप्टोग्राफ़िक हैश फ़ंक्शन, विशेष रूप से एक तरफ़ा संपीड़न फ़ंक्शन बनाने के लिए ब्लॉक सिफर का उपयोग करने के कई तरीके हैं।

आमतौर पर एन्क्रिप्शन के लिए उपयोग किए जाने वाले ऑपरेशन के ब्लॉक सिफर मोड के समान तरीके। MD4, MD5, SHA-1 और SHA-2 सहित कई जाने-माने हैश फ़ंक्शंस, इस उद्देश्य के लिए डिज़ाइन किए गए ब्लॉक-सिफर-जैसे घटकों से बनाए गए हैं, यह सुनिश्चित करने के लिए फीडबैक के साथ कि परिणामी फ़ंक्शन उलटा नहीं है। NIST हैश फंक्शन प्रतियोगिता | SHA-3 फाइनलिस्ट में ब्लॉक-सिफर जैसे घटकों (जैसे, स्केन हैश फ़ंक्शन, BLAKE (हैश फंक्शन)) के साथ फंक्शन शामिल थे, हालाँकि फंक्शन को अंत में चुना गया, केकेक, इसके बजाय स्पंज समारोह पर बनाया गया था।

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

हैश फ़ंक्शन डिज़ाइन

मर्कल-डैमगार्ड निर्माण

मेर्कले-डेमगार्ड हैश निर्माण

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

संसाधित किया गया अंतिम ब्लॉक भी स्पष्ट रूप से पैडिंग (क्रिप्टोग्राफी) होना चाहिए; यह इस निर्माण की सुरक्षा के लिए महत्वपूर्ण है। इस निर्माण को मेर्कले-डैमगार्ड निर्माण कहा जाता है। SHA-1 और MD5 सहित अधिकांश सामान्य क्लासिकल हैश फ़ंक्शंस, यह फ़ॉर्म लेते हैं।

वाइड पाइप बनाम संकीर्ण पाइप

मेर्कले-डैमगार्ड निर्माण का एक सीधा अनुप्रयोग, जहां हैश आउटपुट का आकार आंतरिक राज्य आकार (प्रत्येक संपीड़न चरण के बीच) के बराबर होता है, परिणाम एक संकीर्ण-पाइप हैश डिज़ाइन में होता है। यह डिज़ाइन कई अंतर्निहित खामियों का कारण बनता है, जिसमें लंबाई विस्तार पर हमला | लंबाई-विस्तार, बहु-टकराव,[8] लंबे संदेश हमले,[9] जनरेट-एंड-पेस्ट हमले,[citation needed] और समानांतर भी नहीं किया जा सकता है। नतीजतन, आधुनिक हैश फ़ंक्शंस चौड़े-पाइप निर्माणों पर बनाए गए हैं जिनका एक बड़ा आंतरिक राज्य आकार है - जो मेर्कले-डैमगार्ड निर्माण के बदलावों से लेकर है।[8]स्पंज निर्माण और हाइफ़ा निर्माण जैसे नए निर्माणों के लिए।[10] एनआईएसटी हैश फंक्शन प्रतियोगिता में प्रवेश करने वालों में से कोई भी शास्त्रीय मेर्कले-डैमगार्ड निर्माण का उपयोग नहीं करता है।[11] इस बीच, SHA-512/256 में उपयोग किए जाने वाले लंबे हैश के आउटपुट को छोटा करना भी इन हमलों में से कई को हरा देता है।[12]


अन्य क्रिप्टोग्राफ़िक आदिम बनाने में उपयोग करें

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

संदेश प्रमाणीकरण कोड (MACs) (जिसे कीड हैश फ़ंक्शंस भी कहा जाता है) अक्सर हैश फ़ंक्शंस से बनाए जाते हैं। HMAC ऐसा MAC है।

जिस तरह ब्लॉक सिफर का इस्तेमाल हैश फंक्शन बनाने के लिए किया जा सकता है, उसी तरह हैश फंक्शन का इस्तेमाल ब्लॉक सिफर बनाने के लिए किया जा सकता है। यदि अंतर्निहित हैश फ़ंक्शन सुरक्षित है, तो हैश फ़ंक्शंस का उपयोग करके Luby-Rackoff निर्माण काफी सुरक्षित हो सकता है। इसके अलावा, कई हैश फ़ंक्शंस (SHA-1 और SHA-2 सहित) एक-तरफ़ा संपीड़न फ़ंक्शन #Davies–Meyer|Davies–Meyer या अन्य निर्माण में एक विशेष-उद्देश्य ब्लॉक सिफर का उपयोग करके बनाए गए हैं। उस सिफर का उपयोग ऑपरेशन के पारंपरिक मोड में भी किया जा सकता है, बिना समान सुरक्षा गारंटी के; उदाहरण के लिए, SHACAL, BEAR (सिफर) और LION (सिफर)।

हैश फ़ंक्शन का उपयोग करके छद्म यादृच्छिक संख्या जनरेटर (PRNG) का निर्माण किया जा सकता है। यह एक (गुप्त) यादृच्छिक बीज को एक काउंटर के साथ जोड़कर और इसे हैश करके किया जाता है।

कुछ हैश फ़ंक्शंस, जैसे स्केन (हैश फ़ंक्शन), केकेक, और रेडियोगैटन, एक मनमाने ढंग से लंबी स्ट्रीम का उत्पादन करते हैं और एक स्ट्रीम सिफर के रूप में इस्तेमाल किया जा सकता है, और स्ट्रीम सिफर को निश्चित-लंबाई डाइजेस्ट हैश फ़ंक्शंस से भी बनाया जा सकता है। अक्सर यह पहले एक [[क्रिप्टोग्राफिक आदिम से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर]] का निर्माण करके और फिर यादृच्छिक बाइट्स की धारा को keystream के रूप में उपयोग करके किया जाता है। SEAL (सिफर) एक स्ट्रीम सिफर है जो आंतरिक तालिकाओं को उत्पन्न करने के लिए SHA-1 का उपयोग करता है, जो तब हैश एल्गोरिथम से कम या ज्यादा असंबंधित कीस्ट्रीम जनरेटर में उपयोग किया जाता है। SEAL को SHA-1 जितना मजबूत (या कमजोर) होने की गारंटी नहीं है। इसी तरह, HC-256|HC-128 और HC-256 स्ट्रीम सिफर का प्रमुख विस्तार SHA-256 हैश फ़ंक्शन का भारी उपयोग करता है।

संयोजन

एकाधिक हैश फ़ंक्शंस से कॉन्टेनेशन आउटपुट टकराव प्रतिरोध प्रदान करते हैं जो समेकित परिणाम में शामिल एल्गोरिदम के सबसे मजबूत होते हैं।[citation needed] उदाहरण के लिए, परिवहन परत सुरक्षा|ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) और सिक्योर सॉकेट्स लेयर (SSL) के पुराने संस्करणों में संयोजित MD5 और SHA-1 रकम का उपयोग किया जाता है।[13][14] यह सुनिश्चित करता है कि हैश फ़ंक्शंस में से किसी एक में टकराव खोजने का तरीका दोनों हैश फ़ंक्शंस द्वारा संरक्षित डेटा को पराजित नहीं करता है।[citation needed] मेर्कले-डैमगार्ड निर्माण हैश फ़ंक्शंस के लिए, समेकित फ़ंक्शन टक्कर-प्रतिरोधी के रूप में इसके सबसे मजबूत घटक के रूप में है, लेकिन अधिक टक्कर-प्रतिरोधी नहीं है।[citation needed] एंटोनी जौक्स ने देखा कि 2-टकराव का कारण बनता है n-टकराव: यदि एक हमलावर के लिए एक ही MD5 हैश के साथ दो संदेशों को ढूंढना संभव है, तो वे उसी MD5 हैश के साथ जितने चाहें उतने अतिरिक्त संदेश पा सकते हैं, बिना किसी बड़ी कठिनाई के।[15] उनके बीच n समान MD5 हैश वाले संदेश, SHA-1 में टक्कर होने की संभावना है। SHA-1 टक्कर (घातीय जन्मदिन खोज से परे) खोजने के लिए आवश्यक अतिरिक्त कार्य के लिए केवल बहुपद समय की आवश्यकता होती है।[16][17]


क्रिप्टोग्राफ़िक हैश एल्गोरिदम

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

एमडी 5

MD5 को रोनाल्ड रिवेस्ट द्वारा 1991 में पहले के हैश फ़ंक्शन, MD4 को बदलने के लिए डिज़ाइन किया गया था, और 1992 में RFC 1321 के रूप में निर्दिष्ट किया गया था। MD5 के विरुद्ध टकराव की गणना सेकंड के भीतर की जा सकती है जो एल्गोरिथ्म को अधिकांश उपयोग मामलों के लिए अनुपयुक्त बनाता है जहाँ क्रिप्टोग्राफ़िक हैश की आवश्यकता होती है। MD5 128 बिट्स (16 बाइट्स) का डाइजेस्ट उत्पन्न करता है।

SHA-1

SHA-1 को अमेरिकी सरकार की कैपस्टोन (क्रिप्टोग्राफी) परियोजना के हिस्से के रूप में विकसित किया गया था। एल्गोरिथम का मूल विनिर्देश - जिसे अब आमतौर पर SHA-0 कहा जाता है - 1993 में अमेरिकी सरकार की मानक एजेंसी NIST (राष्ट्रीय मानक और प्रौद्योगिकी संस्थान) द्वारा सिक्योर हैश स्टैंडर्ड, FIPS PUB 180 शीर्षक के तहत प्रकाशित किया गया था। इसे प्रकाशन के तुरंत बाद NSA द्वारा वापस ले लिया गया था और 1995 में FIPS PUB 180-1 में प्रकाशित संशोधित संस्करण और आमतौर पर SHA-1 नामित किया गया था। पूर्ण SHA-1 एल्गोरिथ्म के विरुद्ध टकराव SHA-1#SHATttered का उपयोग करके उत्पन्न किया जा सकता है - पहली सार्वजनिक टक्कर और हैश फ़ंक्शन को टूटा हुआ माना जाना चाहिए। SHA-1 160 बिट्स (20 बाइट्स) का हैश डाइजेस्ट पैदा करता है।

दस्तावेज़ SHA-1 को केवल SHA के रूप में संदर्भित कर सकते हैं, भले ही यह SHA-0, SHA-2 और SHA-3 जैसे अन्य सुरक्षित हैश एल्गोरिदम के साथ संघर्ष कर सकता है।

RIPEMD-160

RIPEMD (RACE इंटीग्रिटी प्रिमिटिव्स इवैल्यूएशन मैसेज डाइजेस्ट) क्रिप्टोग्राफ़िक हैश फ़ंक्शंस का एक परिवार है जिसे ल्यूवेन, बेल्जियम में हैंस डोबबर्टिन, एंटून बॉससेलर्स और बार्ट प्रेनील द्वारा कैथोलिएके यूनिवर्सिटीइट ल्यूवेन में COSIC रिसर्च ग्रुप में विकसित किया गया था, और पहली बार 1996 में प्रकाशित किया गया था। RIPEMD MD4 में उपयोग किए गए डिजाइन सिद्धांतों पर आधारित था और यह अधिक लोकप्रिय SHA-1 के प्रदर्शन के समान है। हालांकि, RIPEMD-160 तोड़ा नहीं गया है। जैसा कि नाम से ही स्पष्ट है, RIPEMD-160 160 बिट्स (20 बाइट्स) का हैश डाइजेस्ट उत्पन्न करता है।

भँवर

व्हर्लपूल एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन है जिसे विन्सेंट रिजमेन और पाउलो एस.एल.एम. बैरेटो द्वारा डिज़ाइन किया गया है, जिन्होंने पहली बार 2000 में इसका वर्णन किया था। व्हर्लपूल उन्नत एन्क्रिप्शन स्टैंडर्ड (एईएस) के काफी संशोधित संस्करण पर आधारित है। व्हर्लपूल 512 बिट्स (64 बाइट्स) का हैश डाइजेस्ट उत्पन्न करता है।

SHA-2

SHA-2 (सिक्योर हैश एल्गोरिथम 2) संयुक्त राज्य अमेरिका की राष्ट्रीय सुरक्षा एजेंसी (NSA) द्वारा डिज़ाइन किए गए क्रिप्टोग्राफ़िक हैश फ़ंक्शंस का एक सेट है, जो पहली बार 2001 में प्रकाशित हुआ था। वे एक तरफ़ा संपीड़न फ़ंक्शन से मर्कल-डैमगार्ड संरचना का उपयोग करके बनाए गए हैं। एक (वर्गीकृत) विशेष ब्लॉक सिफर से डेविस-मेयर संरचना का उपयोग करके स्वयं बनाया गया।

SHA-2 में मूल रूप से दो हैश एल्गोरिदम होते हैं: SHA-256 और SHA-512। SHA-224, SHA-256 का भिन्न प्रारंभिक मान और छोटा आउटपुट के साथ एक प्रकार है। SHA-384 और कम ज्ञात SHA-512/224 और SHA-512/256 सभी SHA-512 के प्रकार हैं। SHA-512, SHA-256 की तुलना में अधिक सुरक्षित है और आमतौर पर 64-बिट मशीनों जैसे X86-64 पर SHA-256 से तेज़ है।

बिट्स में आउटपुट आकार SHA नाम के विस्तार द्वारा दिया गया है, इसलिए SHA-224 का आउटपुट आकार 224 बिट्स (28 बाइट्स) है; SHA-256, 32 बाइट्स; SHA-384, 48 बाइट्स; और SHA-512, 64 बाइट्स।

SHA-3

SHA-3 (सिक्योर हैश एल्गोरिथम 3) NIST द्वारा 5 अगस्त, 2015 को जारी किया गया था। SHA-3 व्यापक क्रिप्टोग्राफ़िक आदिम परिवार Keccak का एक उपसमूह है। केकेक एल्गोरिथम गुइडो बर्टोनी, जोन डेमन, माइकल पीटर्स और गाइल्स वान असचे का काम है। केकेक एक स्पंज निर्माण पर आधारित है जिसका उपयोग अन्य क्रिप्टोग्राफ़िक प्रिमिटिव जैसे स्ट्रीम सिफर बनाने के लिए भी किया जा सकता है। SHA-3, SHA-2: 224, 256, 384 और 512 बिट्स के समान आउटपुट आकार प्रदान करता है।

SHAKE-128 और SHAKE-256 फ़ंक्शंस का उपयोग करके कॉन्फ़िगर करने योग्य आउटपुट आकार भी प्राप्त किए जा सकते हैं। यहां -128 और -256 नाम के विस्तार बिट्स में आउटपुट आकार के बजाय फ़ंक्शन की सुरक्षा सक्रियता का संकेत देते हैं।

ब्लैक2

BLAKE2, BLAKE का एक उन्नत संस्करण, 21 दिसंबर, 2012 को घोषित किया गया था। इसे जीन-फिलिप ऑमसन, सैमुअल नेव्स, ज़ूको विलकॉक्स-ओ'हर्न और क्रिश्चियन विनरलीन द्वारा व्यापक रूप से उपयोग किए जाने वाले लेकिन टूटे हुए MD5 को बदलने के लक्ष्य के साथ बनाया गया था। SHA-1 एल्गोरिदम। जब 64-बिट x64 और ARM आर्किटेक्चर पर चलाया जाता है, तो BLAKE2b SHA-3, SHA-2, SHA-1 और MD5 से तेज़ होता है। हालांकि BLAKE और BLAKE2 को SHA-3 के रूप में मानकीकृत नहीं किया गया है, BLAKE2 का उपयोग Argon2 पासवर्ड हैश सहित कई प्रोटोकॉल में किया गया है, उच्च दक्षता के लिए जो यह आधुनिक CPU पर प्रदान करता है। चूंकि BLAKE SHA-3 के लिए एक उम्मीदवार था, BLAKE और BLAKE2 दोनों ही SHA-3 के समान आउटपुट आकार प्रदान करते हैं - एक विन्यास योग्य आउटपुट आकार सहित।

पैच

BLAKE3, BLAKE2 का एक उन्नत संस्करण, 9 जनवरी, 2020 को घोषित किया गया था। इसे जैक ओ'कॉनर, जीन-फिलिप ऑमसन, सैमुअल नेव्स और ज़ूको विलकॉक्स-ओ'हर्न द्वारा बनाया गया था। BLAKE3 एक एकल एल्गोरिथम है, BLAKE और BLAKE2 के विपरीत, जो कई वेरिएंट वाले एल्गोरिथम परिवार हैं। BLAKE3 कंप्रेशन फ़ंक्शन BLAKE2s पर बारीकी से आधारित है, जिसमें सबसे बड़ा अंतर यह है कि राउंड की संख्या 10 से घटाकर 7 कर दी गई है। आंतरिक रूप से, BLAKE3 एक मर्कल ट्री है, और यह BLAKE2 की तुलना में समानता के उच्च स्तर का समर्थन करता है।

क्रिप्टोग्राफिक हैश एल्गोरिदम पर हमले

क्रिप्टोग्राफ़िक हैश फ़ंक्शंस की एक लंबी सूची है लेकिन कई असुरक्षित पाए गए हैं और उनका उपयोग नहीं किया जाना चाहिए। उदाहरण के लिए, NIST ने 51 हैश फ़ंक्शंस का चयन किया[18] SHA-3 हैश प्रतियोगिता के पहले दौर के उम्मीदवारों के रूप में, जिनमें से 10 को टूटा हुआ माना गया और 16 ने महत्वपूर्ण कमजोरियां दिखाईं और इसलिए अगले दौर में जगह नहीं बनाई; अधिक जानकारी NIST हैश फंक्शन प्रतियोगिताओं के बारे में मुख्य लेख में पाई जा सकती है।

यहां तक ​​​​कि अगर हैश फ़ंक्शन कभी नहीं तोड़ा गया है, तो एक क्रिप्टोग्राफ़िक हमला # कमजोर संस्करण के खिलाफ हमलावर को उपलब्ध जानकारी विशेषज्ञों के विश्वास को कम कर सकती है। उदाहरण के लिए, अगस्त 2004 में MD5 सहित कई तत्कालीन लोकप्रिय हैश फ़ंक्शंस में टकराव पाए गए।[19] इन कमजोरियों ने कमजोर हैश कार्यों से प्राप्त मजबूत एल्गोरिदम की सुरक्षा पर सवाल उठाया - विशेष रूप से, SHA-1 (SHA-0 का एक मजबूत संस्करण), RIPEMD-128, और RIPEMD-160 (RIPEMD के दोनों मजबूत संस्करण)।[20] 12 अगस्त 2004 को, जौक्स, कैरिबॉल्ट, लेमुएल और जल्बी ने पूर्ण SHA-0 एल्गोरिथम के लिए टक्कर की घोषणा की।[15] जौक्स एट अल। चाबाउद और जौक्स हमले के सामान्यीकरण का उपयोग करके इसे पूरा किया। उन्होंने पाया कि टक्कर में जटिलता थी 251 और 256 इटेनियम 2 प्रोसेसर वाले सुपर कंप्यूटर पर लगभग 80,000 सीपीयू घंटे लगे - सुपरकंप्यूटर के 13 दिनों के पूर्णकालिक उपयोग के बराबर।[citation needed] फरवरी 2005 में, SHA-1 पर एक हमले की सूचना मिली थी जो लगभग 2 में टकराएगा69 हैशिंग ऑपरेशंस, 2 के बजाय80 160-बिट हैश फ़ंक्शन के लिए अपेक्षित है। अगस्त 2005 में, SHA-1 पर एक और हमले की सूचना मिली थी जो 2 में टक्करों को खोजेगा63 संचालन। SHA-1 की अन्य सैद्धांतिक कमजोरियां ज्ञात हैं:[21][22] और फरवरी 2017 में Google ने SHA-1 में टक्कर की घोषणा की।[23] सुरक्षा शोधकर्ता अनुशंसा करते हैं कि नए एप्लिकेशन SHA-2 जैसे SHA परिवार के बाद के सदस्यों का उपयोग करके या यादृच्छिक हैशिंग जैसी तकनीकों का उपयोग करके इन समस्याओं से बच सकते हैं।[24] जिसे टक्कर प्रतिरोध की आवश्यकता नहीं है।

एक सफल, व्यावहारिक हमले ने 2008 में ट्रांसपोर्ट लेयर सिक्योरिटी के प्रमाणपत्रों के भीतर उपयोग किए गए MD5 को तोड़ दिया।[25] कई क्रिप्टोग्राफ़िक हैश मेर्कले-डेमगार्ड निर्माण पर आधारित हैं। सभी क्रिप्टोग्राफ़िक हैश जो सीधे मेर्कले-डैमगार्ड निर्माण के पूर्ण आउटपुट का उपयोग करते हैं, लंबाई विस्तार के हमलों के लिए कमजोर हैं। यह MD5, SHA-1, RIPEMD-160, व्हर्लपूल, और SHA-256 / SHA-512 हैश एल्गोरिथम को इस विशिष्ट हमले के लिए असुरक्षित बनाता है। SHA-3, BLAKE2, BLAKE3, और छोटे SHA-2 वेरिएंट इस प्रकार के हमले के लिए असुरक्षित नहीं हैं।[citation needed]


हैश किए गए पासवर्ड पर हमला

पासवर्ड प्रमाणीकरण डेटा को संग्रहीत करने के लिए हैश का एक सामान्य उपयोग है। उपयोगकर्ता पासवर्ड के सादे पाठ को संग्रहीत करने के बजाय, एक नियंत्रित एक्सेस सिस्टम फ़ाइल या डेटाबेस में प्रत्येक उपयोगकर्ता के पासवर्ड के हैश को संग्रहीत करता है। जब कोई एक्सेस का अनुरोध करता है, तो उनके द्वारा सबमिट किया गया पासवर्ड हैश किया जाता है और संग्रहीत मान से तुलना की जाती है। यदि डेटाबेस चोरी हो गया है (एक बहुत ही लगातार घटना[26]), चोर के पास केवल हैश वैल्यू होगी, पासवर्ड नहीं।

हालाँकि, अधिकांश लोग पूर्वानुमानित तरीकों से पासवर्ड चुनते हैं। सामान्य पासवर्डों की सूची व्यापक रूप से परिचालित की जाती है और कई पासवर्ड इतने छोटे होते हैं कि अगर तेजी से हैश का उपयोग किया जाता है तो सभी संभावित संयोजनों का परीक्षण किया जा सकता है।[27] नमक (क्रिप्टोग्राफी) का उपयोग कुछ हमलों को रोकता है, जैसे प्रीकंप्यूटिंग हैश वैल्यू की फाइलें बनाना, उदा। इंद्रधनुष टेबल। लेकिन हाई-एंड ग्राफिक्स प्रोसेसर के साथ प्रति सेकंड 100 बिलियन परीक्षण के क्रम में खोज संभव है, जिससे नमक के साथ भी सीधा हमला संभव हो जाता है।[28] [29] युनाइटेड स्टेट्स मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान विशेष हैश का उपयोग करके पासवर्ड संग्रहीत करने की सिफारिश करता है जिसे प्रमुख व्युत्पन्न कार्य (केडीएफ) कहा जाता है जो कि क्रूर बल खोजों को धीमा करने के लिए बनाया गया है।[30]: 5.1.1.2  स्लो हैश में pbkdf2, bcrypt, scrypt, argon2, Balloon hashing और तहखाना (सी)C) के कुछ हालिया मोड शामिल हैं। निष्पादन को धीमा करने के लिए कई हैश करने वाले KSF के लिए, NIST 10,000 या अधिक की पुनरावृत्ति संख्या की अनुशंसा करता है।[30]: 5.1.1.2 


यह भी देखें


संदर्भ

उद्धरण

  1. Menezes, van Oorschot & Vanstone 2018, p. 33.
  2. Schneier, Bruce. "MD5 और SHA का क्रिप्ट विश्लेषण: एक नए मानक के लिए समय". Computerworld. Archived from the original on 2016-03-16. Retrieved 2016-04-20. एन्क्रिप्शन एल्गोरिदम से कहीं अधिक, एक तरफ़ा हैश फ़ंक्शन आधुनिक क्रिप्टोग्राफी के वर्कहॉर्स हैं।
  3. Katz & Lindell 2014, pp. 155–157, 190, 232.
  4. Rogaway & Shrimpton 2004, in Sec. 5. Implications.
  5. Duong, Thai; Rizzo, Juliano. "फ़्लिकर की एपीआई हस्ताक्षर जालसाजी भेद्यता".
  6. Lyubashevsky et al. 2008, pp. 54–72.
  7. Perrin, Chad (December 5, 2007). "सॉफ़्टवेयर डाउनलोड सत्यापित करने के लिए MD5 हैश का उपयोग करें". TechRepublic. Retrieved March 2, 2013.
  8. 8.0 8.1 Lucks, Stefan (2004). "इटरेटेड हैश फ़ंक्शंस के लिए डिज़ाइन सिद्धांत". Cryptology ePrint Archive. Report 2004/253.
  9. Kelsey & Schneier 2005, pp. 474–490.
  10. Biham, Eli; Dunkelman, Orr (24 August 2006). ए फ्रेमवर्क फॉर इटरेटिव हैश फंक्शंस - हाइफा. Second NIST Cryptographic Hash Workshop. Cryptology ePrint Archive. Report 2007/278.
  11. Nandi & Paul 2010.
  12. Dobraunig, Christoph; Eichlseder, Maria; Mendel, Florian (February 2015). SHA-224, SHA-512/224, और SHA-512/256 का सुरक्षा मूल्यांकन (PDF) (Report).
  13. Mendel et al., p. 145:Concatenating ... is often used by implementors to "hedge bets" on hash functions. A combiner of the form MD5
  14. Harnik et al. 2005, p. 99: the concatenation of hash functions as suggested in the TLS... is guaranteed to be as secure as the candidate that remains secure.
  15. 15.0 15.1 Joux 2004.
  16. Finney, Hal (August 20, 2004). "हैश फ़ंक्शंस के साथ अधिक समस्याएं". The Cryptography Mailing List. Archived from the original on April 9, 2016. Retrieved May 25, 2016.
  17. Hoch & Shamir 2008, pp. 616–630.
  18. Andrew Regenscheid, Ray Perlner, Shu-Jen Chang, John Kelsey, Mridul Nandi, Souradyuti Paul, Status Report on the First Round of the SHA-3 Cryptographic Hash Algorithm Competition
  19. XiaoyunWang, Dengguo Feng, Xuejia Lai, Hongbo Yu, Collisions for Hash Functions MD4, MD5, HAVAL-128, and RIPEMD
  20. Alshaikhli, Imad Fakhri; AlAhmad, Mohammad Abdulateef (2015), "Cryptographic Hash Function", Handbook of Research on Threat Detection and Countermeasures in Network Security, IGI Global, pp. 80–94, doi:10.4018/978-1-4666-6583-5.ch006, ISBN 978-1-4666-6583-5
  21. Xiaoyun Wang, Yiqun Lisa Yin, and Hongbo Yu, Finding Collisions in the Full SHA-1
  22. Bruce Schneier, Cryptanalysis of SHA-1 (summarizes Wang et al. results and their implications)
  23. Fox-Brewster, Thomas. "Google ने एक पुराने क्रिप्टो एल्गोरिथम को 'चकनाचूर' कर दिया - यही कारण है कि वेब सुरक्षा के लिए यह बहुत बड़ा है". Forbes. Retrieved 2017-02-24.
  24. Shai Halevi and Hugo Krawczyk, Randomized Hashing and Digital Signatures
  25. Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik, Benne de Weger, MD5 considered harmful today: Creating a rogue CA certificate, accessed March 29, 2009.
  26. Swinhoe, Dan (April 17, 2020). "21वीं सदी के 15 सबसे बड़े डेटा उल्लंघन". CSO Magazine.
  27. Goodin, Dan (2012-12-10). "25-जीपीयू क्लस्टर हर मानक विंडोज पासवर्ड को <6 घंटे में क्रैक करता है". Ars Technica. Retrieved 2020-11-23.
  28. Claburn, Thomas (February 14, 2019). "8-चार Windows NTLM पासवर्ड का उपयोग करें? मत। हर एक को 2.5 घंटे के अंदर क्रैक किया जा सकता है". www.theregister.co.uk (in English). Retrieved 2020-11-26.
  29. "दिमाग उड़ाने वाला जीपीयू प्रदर्शन". Improsec. January 3, 2020.
  30. 30.0 30.1 Grassi Paul A. (June 2017). SP 800-63B-3 - डिजिटल पहचान दिशानिर्देश, प्रमाणीकरण और जीवनचक्र प्रबंधन. NIST. doi:10.6028/NIST.SP.800-63b.


स्रोत

  • Menezes, Alfred J.; van Oorschot, Paul C.; Vanstone, Scott A. (7 December 2018). "Hash functions". एप्लाइड क्रिप्टोग्राफी की पुस्तिका. CRC Press. pp. 33–. ISBN 978-0-429-88132-9.

बाहरी संबंध