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

From Vigyanwiki
No edit summary
No edit summary
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{short description|Hash function that is suitable for use in cryptography}}
{{short description|Hash function that is suitable for use in cryptography}}
{{More citations needed|date=May 2016}}
[[Image:Cryptographic Hash Function.svg|thumb|375px|right|कार्य पर क्रिप्टोग्राफ़िक हैश फ़ंक्शन (विशेष रूप से [[SHA-1|एसएचए-1]])। इनपुट में छोटा सा बदलाव (ओवर वर्ड में) उत्पादन (डाइजेस्ट) में काफी बदलाव करता है। यह तथाकथित [[हिमस्खलन प्रभाव]] है।]]
[[Image:Cryptographic Hash Function.svg|thumb|375px|right|काम पर एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन (विशेष रूप से [[SHA-1]])। इनपुट में एक छोटा सा बदलाव (ओवर वर्ड में) आउटपुट (डाइजेस्ट) में काफी बदलाव करता है। यह तथाकथित [[हिमस्खलन प्रभाव]] है।]]
क्रिप्टोग्राफ़िक हैश फ़ंक्शन (सीएचएफ) यह [[हैश एल्गोरिथम|हैश कलनविधि]] है (<math>n</math> बिट्स के निश्चित आकार के साथ बाइनरी स्ट्रिंग के लिए यादृच्छिक बाइनरी स्ट्रिंग का [[नक्शा (गणित)]] है) जिसमें [[क्रिप्टोग्राफी]] के लिए विशेष गुण होते हैं:{{sfn|Menezes|van Oorschot|Vanstone|2018|p=33}}
क्रिप्टोग्राफ़िक हैश फ़ंक्शन (सीएचएफ) यह एक [[हैश एल्गोरिथम]] है (<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>
== गुण ==
== गुण ==
अधिकांश क्रिप्टोग्राफ़िक हैश फ़ंक्शंस को इनपुट के रूप में किसी भी लम्बाई के [[स्ट्रिंग (कंप्यूटर विज्ञान)]] लेने के लिए डिज़ाइन किया गया है और एक निश्चित-लंबाई हैश मान उत्पन्न करता है।
अधिकांश क्रिप्टोग्राफ़िक हैश फ़ंक्शंस को इनपुट के रूप में किसी भी लम्बाई की [[स्ट्रिंग (कंप्यूटर विज्ञान)]] लेने और निश्चित-लंबाई हैश मान को उत्पन्न करने के लिए डिज़ाइन किया गया है।


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


; पूर्व-छवि प्रतिरोध: एक हैश मान दिया गया {{math|''h''}}, कोई संदेश ढूंढना कठिन होना चाहिए {{math|''m''}} ऐसा है कि {{math|1=''h'' = hash(''m'')}}. यह अवधारणा एक तरफ़ा कार्य से संबंधित है। जिन कार्यों में इस गुण का अभाव होता है, वे प्रीइमेज हमलों के प्रति संवेदनशील होते हैं।
; प्रीइमेज प्रतिरोध: एक हैश मान {{math|''h''}} दिया गया है, किसी भी संदेश {{math|''m''}} को ढूंढना कठिन होता है जैसे कि {{math|1=''h'' = hash(''m'')}}यह अवधारणा एक तरफ़ा कार्य से संबंधित है। जिन कार्यों में इस गुण का अभाव होता है, वे प्रीइमेज अटैक के प्रति संवेदनशील होते हैं।
; दूसरा पूर्व-छवि प्रतिरोध: एक इनपुट दिया गया {{math|''m''{{sub|1}}}}, कोई भिन्न इनपुट खोजना कठिन होना चाहिए {{math|''m''{{sub|2}}}} ऐसा है कि {{math|1=hash(''m''{{sub|1}}) = hash(''m''{{sub|2}})}}. इस संपत्ति को कभी-कभी कमजोर [[टक्कर प्रतिरोध]] कहा जाता है। जिन कार्यों में इस गुण का अभाव होता है, वे प्रीइमेज अटैक|सेकेंड-प्रीइमेज अटैक के प्रति संवेदनशील होते हैं।
; दूसरा प्रीइमेज प्रतिरोध: एक इनपुट {{math|''m''{{sub|1}}}} को देखते हुए, भिन्न इनपुट {{math|''m''{{sub|2}}}} खोजना कठिन होता है जैसे कि {{math|1=hash(''m''{{sub|1}}) = hash(''m''{{sub|2}})}}इस गुण को कभी-कभी कमजोर [[टक्कर प्रतिरोध|संघट्ट प्रतिरोध]] कहा जाता है। ऐसे कार्य जिनमें इस गुण का अभाव होता है, वह द्वितीय-प्रीइमेज अटैक के प्रति संवेदनशील होते हैं।
; टक्कर प्रतिरोध: दो अलग-अलग संदेशों को ढूंढना मुश्किल होना चाहिए {{math|''m''{{sub|1}}}} तथा {{math|''m''{{sub|2}}}} ऐसा है कि {{math|1=hash(''m''{{sub|1}}) = hash(''m''{{sub|2}})}}. ऐसी जोड़ी को क्रिप्टोग्राफ़िक [[हैश टक्कर]] कहा जाता है। इस संपत्ति को कभी-कभी मजबूत टक्कर प्रतिरोध कहा जाता है। इसके लिए पूर्व-छवि प्रतिरोध के लिए आवश्यक हैश मान की तुलना में कम से कम दो बार हैश मान की आवश्यकता होती है; अन्यथा टकराव जन्मदिन के हमले से मिल सकते हैं।{{sfn|Katz|Lindell|2014|pp=155–157, 190, 232}}
; संघट्ट प्रतिरोध: दो भिन्न-भिन्न संदेश {{math|''m''{{sub|1}}}} और {{math|''m''{{sub|2}}}} जैसे {{math|1=hash(''m''{{sub|1}}) = hash(''m''{{sub|2}})}} को ढूंढना कठिन हो जाता है। ऐसी जोड़ी को क्रिप्टोग्राफ़िक [[हैश संघट्ट]] कहा जाता है। इस संपत्ति को कभी-कभी ठोस संघट्ट प्रतिरोध कहा जाता है। इसके लिए प्री-इमेज प्रतिरोध को आवश्यक हैश मान की तुलना में कम से कम दो बार हैश मान की आवश्यकता होती है; अन्यथा संघट्ट बर्थडे अटैक से मिल सकते हैं।{{sfn|Katz|Lindell|2014|pp=155–157, 190, 232}}
टक्कर प्रतिरोध का तात्पर्य दूसरे पूर्व-छवि प्रतिरोध से है, लेकिन पूर्व-छवि प्रतिरोध का अर्थ नहीं है।{{sfn|Rogaway|Shrimpton|2004|loc=in Sec. 5. Implications}} सैद्धांतिक क्रिप्टोग्राफी में हमेशा कमजोर धारणा को प्राथमिकता दी जाती है, लेकिन व्यवहार में, एक हैश-फ़ंक्शन जो केवल दूसरी पूर्व-छवि प्रतिरोधी है, असुरक्षित माना जाता है और इसलिए वास्तविक अनुप्रयोगों के लिए अनुशंसित नहीं है।
संघट्ट प्रतिरोध का तात्पर्य दूसरे प्री-इमेज प्रतिरोध से है, लेकिन प्री-इमेज प्रतिरोध का अर्थ नहीं है।{{sfn|Rogaway|Shrimpton|2004|loc=in Sec. 5. Implications}} सैद्धांतिक क्रिप्टोग्राफी में हमेशा कमजोर धारणा को प्राथमिकता दी जाती है, लेकिन पद्धति में, हैश-फ़ंक्शन जो केवल दूसरा प्री-इमेज प्रतिरोधी है, उसे असुरक्षित माना जाता है और इसलिए यह वास्तविक अनुप्रयोगों के लिए अनुशंसित नहीं है।


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


इन मानदंडों को पूरा करने वाले समारोह में अभी भी अवांछित गुण हो सकते हैं। वर्तमान में, लोकप्रिय क्रिप्टोग्राफ़िक हैश फ़ंक्शंस लंबाई विस्तार हमले | लंबाई-विस्तार हमलों के लिए असुरक्षित हैं: दिया गया {{math|hash(''m'')}} तथा {{math|len(''m'')}} लेकिन नहीं {{math|''m''}}, एक उपयुक्त चुनकर {{math|{{′|''m''}}}} हमलावर गणना कर सकता है {{math|hash(''m'' ∥ {{′|''m''}})}}, जहां ∥ संयोजन को दर्शाता है।<ref name="Y0rF6">{{cite web|url=http://vnhacker.blogspot.com/2009/09/flickrs-api-signature-forgery.html|title=फ़्लिकर की एपीआई हस्ताक्षर जालसाजी भेद्यता|first1=Thai|last1=Duong |first2=Juliano|last2=Rizzo}}</ref> इस संपत्ति का उपयोग हैश कार्यों के आधार पर सहज प्रमाणीकरण योजनाओं को तोड़ने के लिए किया जा सकता है। [[एचएमएसी]] निर्माण इन समस्याओं के आसपास काम करता है।
इन मानदंडों को पूरा करने वाले फ़ंक्शन में अभी भी अवांछित गुण हो सकते हैं। वर्तमान में, लोकप्रिय क्रिप्टोग्राफ़िक हैश फ़ंक्शंस लंबाई-विस्तार अटैक के लिए कमजोर हैं: दिए गए {{math|hash(''m'')}} और {{math|len(''m'')}} लेकिन उपयुक्त {{math|''m''}} 'चुनकर अटैकर हैश की गणना कर सकता है {{math|hash(''m'' ∥ {{′|''m''}})}}, जहां यह चिन्ह ∥ संयोजन को दर्शाता है।<ref name="Y0rF6">{{cite web|url=http://vnhacker.blogspot.com/2009/09/flickrs-api-signature-forgery.html|title=फ़्लिकर की एपीआई हस्ताक्षर जालसाजी भेद्यता|first1=Thai|last1=Duong |first2=Juliano|last2=Rizzo}}</ref> इस संपत्ति का उपयोग हैश कार्यों के आधार पर सहज प्रमाणीकरण योजनाओं को तोड़ने के लिए किया जा सकता है। [[एचएमएसी]] संरचना इन समस्याओं के इर्द-गिर्द कार्य करती है।


व्यवहार में, टक्कर प्रतिरोध कई व्यावहारिक उपयोगों के लिए अपर्याप्त है। टकराव प्रतिरोध के अलावा, एक विरोधी के लिए दो संदेशों को काफी हद तक समान डाइजेस्ट के साथ खोजना असंभव होना चाहिए; या डेटा के बारे में किसी भी उपयोगी जानकारी का अनुमान लगाने के लिए, केवल उसके डाइजेस्ट को देखते हुए। विशेष रूप से, एक हैश फ़ंक्शन को यथासंभव एक यादृच्छिक फ़ंक्शन (अक्सर सुरक्षा के प्रमाण में एक यादृच्छिक ऑरेकल कहा जाता है) की तरह व्यवहार करना चाहिए, जबकि अभी भी निर्धारक और कुशलता से गणना योग्य है। यह [[SWIFFT]] फ़ंक्शन जैसे कार्यों को नियमबद्ध करता है, जो कठोर रूप से टकराव-प्रतिरोधी साबित हो सकता है, यह मानते हुए कि आदर्श लैटिस पर कुछ समस्याएं कम्प्यूटेशनल रूप से कठिन हैं, लेकिन, एक रैखिक फ़ंक्शन के रूप में, इन अतिरिक्त गुणों को संतुष्ट नहीं करता है।{{sfn|Lyubashevsky|Micciancio|Peikert|Rosen|2008| pp=54–72}}
पद्धति में, संघट्ट प्रतिरोध कई प्रायौगिक उपयोगों के लिए अपर्याप्त है। संघट्ट प्रतिरोध के अतिरिक्त, विरोधी के लिए दो संदेशों को काफी सीमा तक सामान्य डाइजेस्ट के साथ खोजना असंभव हो जाता है; या डेटा के बारे में किसी भी उपयोगी जानकारी का अनुमान लगाने के लिए, केवल उसके डाइजेस्ट को देखते है विशेष रूप से, हैश फ़ंक्शन को यथासंभव यादृच्छिक फ़ंक्शन (अधिकांशतः सुरक्षा के प्रमाण में यादृच्छिक ऑरेकल कहा जाता है) की प्रकार पद्धति करनी चाहिए, जबकि ये अभी भी निर्धारक और कुशलता से गणना योग्य है। यह [[एसडब्लूआईआईएफटी]] फ़ंक्शन जैसे कार्यों को नियमबद्ध करता है, जो कठोर रूप से संघट्ट-प्रतिरोधी साबित हो सकता है, यह मानते हुए कि आदर्श लैटिस पर कुछ समस्याएं अभिकलनात्मक रूप से कठिन हैं, लेकिन, रैखिक फ़ंक्शन के रूप में, इन अतिरिक्त गुणों को ये संतुष्ट नहीं करता है।{{sfn|Lyubashevsky|Micciancio|Peikert|Rosen|2008| pp=54–72}}
चेकसम एल्गोरिदम, जैसे [[CRC32]] और अन्य चक्रीय अतिरेक जाँच, बहुत कमजोर आवश्यकताओं को पूरा करने के लिए डिज़ाइन किए गए हैं और आमतौर पर क्रिप्टोग्राफ़िक हैश फ़ंक्शन के रूप में अनुपयुक्त हैं। उदाहरण के लिए, वायर्ड समतुल्य गोपनीयता एन्क्रिप्शन मानक में संदेश अखंडता के लिए एक सीआरसी का उपयोग किया गया था, लेकिन एक हमले की आसानी से खोज की गई थी, जिसने चेकसम की रैखिकता का शोषण किया था।
 
चेकसम कलनविधि, जैसे [[सीआरसी32]] और अन्य चक्रीय अतिरेक जाँच, बहुत कमजोर आवश्यकताओं को पूरा करने के लिए डिज़ाइन किए गए हैं और सामान्यतः क्रिप्टोग्राफ़िक हैश फ़ंक्शन के रूप में अनुपयुक्त हैं। उदाहरण के लिए, डब्लूइपी कूटलेखन मानक में संदेश अखंडता के लिए सीआरसी का उपयोग किया गया था, जो चेकसम की रैखिकता का फायदा उठाते थे।


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


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


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


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


== अनुप्रयोग ==
== अनुप्रयोग ==


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


[[MD5]], SHA-1, या [[SHA-2]] हैश डाइजेस्ट को कभी-कभी वेबसाइटों या फ़ोरम पर प्रकाशित किया जाता है ताकि डाउनलोड की गई फ़ाइलों के लिए अखंडता का सत्यापन किया जा सके,<ref name="e87Bo">{{cite magazine | url=http://www.techrepublic.com/blog/security/use-md5-hashes-to-verify-software-downloads/374 | title=सॉफ़्टवेयर डाउनलोड सत्यापित करने के लिए MD5 हैश का उपयोग करें| magazine=TechRepublic | date=December 5, 2007 | access-date=March 2, 2013 | last = Perrin | first = Chad}}</ref> फ़ाइल साझाकरण जैसे [[मिरर वेबसाइट]] का उपयोग करके पुनर्प्राप्त की गई फ़ाइलें शामिल हैं। यह अभ्यास विश्वास की एक श्रृंखला स्थापित करता है जब तक कि हैश एक विश्वसनीय साइट पर पोस्ट किया जाता है - आमतौर पर मूल साइट - [[HTTPS]] द्वारा प्रमाणित। क्रिप्टोग्राफ़िक हैश और विश्वास की श्रृंखला का उपयोग फ़ाइल में दुर्भावनापूर्ण परिवर्तनों का पता लगाता है। गैर-क्रिप्टोग्राफ़िक त्रुटि-खोज कोड जैसे कि चक्रीय अतिरेक जाँच केवल फ़ाइल के गैर-दुर्भावनापूर्ण परिवर्तनों से बचाती है, क्योंकि एक जानबूझकर स्पूफिंग हमले को टक्कर हमले के मूल्य के लिए आसानी से तैयार किया जा सकता है।
[[MD5|एमडी5]], एसएचए-1, या [[SHA-2|एसएचए-2]] हैश डाइजेस्ट को कभी-कभी वेबसाइटों या फ़ोरम पर प्रकाशित किया जाता है जिससे की डाउनलोड की गई फ़ाइलों के लिए अखंडता का सत्यापन किया जा सके,<ref name="e87Bo">{{cite magazine | url=http://www.techrepublic.com/blog/security/use-md5-hashes-to-verify-software-downloads/374 | title=सॉफ़्टवेयर डाउनलोड सत्यापित करने के लिए MD5 हैश का उपयोग करें| magazine=TechRepublic | date=December 5, 2007 | access-date=March 2, 2013 | last = Perrin | first = Chad}}</ref> फ़ाइल साझाकरण जैसे [[मिरर वेबसाइट]] का उपयोग करके पुनर्प्राप्त की गई फ़ाइलें सम्मलित हैं। यह अभ्यास विश्वास की श्रृंखला को स्थापित करता है जब तक कि हैश विश्वसनीय साइट पर पोस्ट किया जाता है - सामान्यतः मूल साइट - [[HTTPS|एचटीटीपी]][[SHA-2|एस]] द्वारा प्रमाणित की जाती है। क्रिप्टोग्राफ़िक हैश और विश्वास की श्रृंखला का उपयोग फ़ाइल में मैलिसियस परिवर्तनों का पता लगाता है। गैर-क्रिप्टोग्राफ़िक त्रुटि-खोज कोड जैसे कि चक्रीय अतिरेक जाँच केवल फ़ाइल के गैर-मैलिसियस परिवर्तनों से बचाती है, क्योंकि अभिप्रायपूर्वक स्पूफिंग अटैक को संघट्ट अटैक के मूल्य के लिए इसे सरलता से तैयार किया जा सकता है।


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


=== पासवर्ड सत्यापन ===
=== पासवर्ड सत्यापन ===
{{main | Password hashing }}
{{main |पासवर्ड हैशिंग}}
पासवर्ड सत्यापन आमतौर पर क्रिप्टोग्राफ़िक हैश पर निर्भर करता है। यदि पासवर्ड फ़ाइल से समझौता किया जाता है, तो सभी उपयोगकर्ता पासवर्ड को स्पष्ट टेक्स्ट के रूप में संग्रहीत करने से बड़े पैमाने पर सुरक्षा उल्लंघन हो सकता है। इस खतरे को कम करने का एक तरीका केवल प्रत्येक पासवर्ड के हैश डाइजेस्ट को स्टोर करना है। एक उपयोगकर्ता को प्रमाणित करने के लिए, उपयोगकर्ता द्वारा प्रस्तुत पासवर्ड को हैश किया जाता है और संग्रहीत हैश के साथ तुलना की जाती है। पासवर्ड हैशिंग करते समय पासवर्ड रीसेट विधि की आवश्यकता होती है; संग्रहीत हैश मान से मूल पासवर्ड की पुनर्गणना नहीं की जा सकती।
 
पासवर्ड सत्यापन सामान्यतः क्रिप्टोग्राफ़िक हैश पर निर्भर करता है। यदि पासवर्ड फ़ाइल से समझौता किया जाता है, तो सभी उपयोगकर्ता पासवर्ड को स्पष्ट टेक्स्ट के रूप में संग्रहीत करने से बड़े पैमाने पर सुरक्षा में उल्लंघन हो सकता है। इस खतरे को कम करने की विधी केवल प्रत्येक पासवर्ड के हैश डाइजेस्ट को स्टोर करना है। उपयोगकर्ता को प्रमाणित करने के लिए, उपयोगकर्ता द्वारा प्रस्तुत पासवर्ड को हैश किया जाता है और संग्रहीत हैश के साथ तुलना की जाती है। पासवर्ड हैशिंग करते समय पासवर्ड रीसेट विधि की आवश्यकता होती है; संग्रहीत हैश मान से मूल पासवर्ड की पुनर्गणना नहीं की जा सकती है।
 
मानक क्रिप्टोग्राफ़िक हैश फ़ंक्शंस को जल्दी से गणना करने के लिए डिज़ाइन किया गया है, और इसके परिणामस्वरूप, उच्च दरों पर अनुमानित पासवर्ड का प्रयास करना संभव है। सामान्य [[ग्राफ़िक्स प्रोसेसिंग युनिट]] प्रत्येक सेकंड में अरबों संभावित पासवर्ड को परख सकते हैं पासवर्ड हैश फ़ंक्शंस जो [[कुंजी खींचना|कुंजी तनन]] करते हैं - जैसे [[PBKDF2|पीबीकेडीएफ2]], [[scrypt|स्क्रिप्ट]] या [[Argon2|आर्गन2]] - सामान्यतः क्रिप्टोग्राफ़िक हैश के बार-बार इनवोकेशन का उपयोग समय (और कुछ स्थितियों में कंप्यूटर मेमोरी) को बढ़ाने के लिए संग्रहीत पासवर्ड हैश डाइजेस्ट पर ब्रूट-फोर्स अटैक करने के लिए आवश्यक है। पासवर्ड हैश के लिए बड़े यादृच्छिक, गैर-गुप्त [[नमक (क्रिप्टोग्राफी)|सॉल्ट (क्रिप्टोग्राफी)]] मान के उपयोग की आवश्यकता होती है जिसे पासवर्ड हैश के साथ संग्रहीत किया जा सकता है। सॉल्ट पासवर्ड हैश के उत्पादन को यादृच्छिक करता है, जिससे विरोधी के लिए पासवर्ड की सूची और [[पूर्वगणना]] हैश मूल्य को स्टोर करना असंभव हो जाता है जिससे पासवर्ड हैश डाइजेस्ट की तुलना की जा सकती है।


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


=== काम का सबूत ===
एक प्रूफ-ऑफ़-वर्क प्रणाली (या प्रोटोकॉल, या फ़ंक्शन) आर्थिक उपाय है, जो सेवा अनुरोधकर्ता से कुछ कार्य की आवश्यकता के द्वारा नेटवर्क पर सेवा के इनकार और अन्य सेवा दुरुपयोग जैसे स्पैम को रोकने के लिए होता है, सामान्यतः प्रसंस्करण समय का अर्थ कंप्यूटर होता है। इन योजनाओं की प्रमुख विशेषता उनकी विषमता है: अनुरोधकर्ता की ओर से कार्य मध्यम रूप से कठिन (लेकिन पद्धति्य) होना चाहिए लेकिन सेवा प्रदाता के लिए जाँच करना सरल होना चाहिए। लोकप्रिय प्रणाली - [[बिटकॉइन खनन]] और [[हशकाश]] में उपयोग की जाती है - यह साबित करने के लिए आंशिक हैश व्युत्क्रम का उपयोग करती है कि बिटकॉइन में खनन इनाम को अनलॉक करने के लिए कार्य किया गया था, और हैशकैश में ई-मेल भेजने के लिए सद्भावना टोकन के रूप में होती हैं। प्रेषक को संदेश खोजने की आवश्यकता होती है जिसका हैश मान कई शून्य बिट्स से शुरू होता है। वैध संदेश खोजने के लिए प्रेषक को जो औसत कार्य करने की आवश्यकता होती है, वह हैश मान में आवश्यक शून्य बिट्स की संख्या में घातीय होता है, जबकि प्राप्तकर्ता एकल हैश फ़ंक्शन को निष्पादित करके संदेश की वैधता को सत्यापित कर सकता है। उदाहरण के लिए, हैशकैश में, प्रेषक को शीर्षलेख उत्पन्न करने के लिए कहा जाता है जिसका 160-बिट एसएचए-1 हैश मान शून्य के रूप में पहले 20 बिट होता है। प्रेषक को वैध शीर्षलेख खोजने के लिए औसतन {{math|2<sup>19</sup>}} बार प्रयास करना होता है।
{{ main | Proof of work }}
एक प्रूफ-ऑफ़-वर्क सिस्टम (या प्रोटोकॉल, या फ़ंक्शन) एक आर्थिक उपाय है, जो सेवा अनुरोधकर्ता से कुछ काम की आवश्यकता के द्वारा नेटवर्क पर सेवा के इनकार और अन्य सेवा दुरुपयोग जैसे स्पैम को रोकने के लिए होता है, आमतौर पर प्रसंस्करण समय का अर्थ होता है एक कंप्यूटर। इन योजनाओं की एक प्रमुख विशेषता उनकी विषमता है: अनुरोधकर्ता की ओर से कार्य मध्यम रूप से कठिन (लेकिन व्यवहार्य) होना चाहिए लेकिन सेवा प्रदाता के लिए जाँच करना आसान होना चाहिए। एक लोकप्रिय प्रणाली - [[बिटकॉइन खनन]] और [[हशकाश]] में उपयोग की जाती है - यह साबित करने के लिए आंशिक हैश व्युत्क्रम का उपयोग करती है कि बिटकॉइन में खनन इनाम को अनलॉक करने के लिए काम किया गया था, और हैशकैश में एक ई-मेल भेजने के लिए एक सद्भावना टोकन के रूप में। प्रेषक को एक संदेश खोजने की आवश्यकता होती है जिसका हैश मान कई शून्य बिट्स से शुरू होता है। एक वैध संदेश खोजने के लिए प्रेषक को जो औसत कार्य करने की आवश्यकता होती है, वह हैश मान में आवश्यक शून्य बिट्स की संख्या में घातीय होता है, जबकि प्राप्तकर्ता एकल हैश फ़ंक्शन को निष्पादित करके संदेश की वैधता को सत्यापित कर सकता है। उदाहरण के लिए, हैशकैश में, एक प्रेषक को एक शीर्षलेख उत्पन्न करने के लिए कहा जाता है जिसका 160-बिट SHA-1 हैश मान शून्य के रूप में पहले 20 बिट होता है। भेजने वाले को औसतन कोशिश करनी होगी {{math|2<sup>19</sup>}} एक वैध शीर्षलेख खोजने के लिए बार।


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


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


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


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


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


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


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


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


=== मर्कल-डैमगार्ड निर्माण ===
=== मर्कल-डैमगार्ड निर्माण ===
{{Main|Merkle–Damgård construction}}
{{Main|मेर्कले-डमगार्ड निर्माण}}
[[Image:Merkle-Damgard hash big.svg|thumb|450px|right|मेर्कले-डेमगार्ड हैश निर्माण]]
[[Image:Merkle-Damgard hash big.svg|thumb|450px|right|मेर्कले-डेमगार्ड हैश निर्माण]]
<!--This section is largely duplicated in [[one-way compression function]]. Both should be moved to [[Merkle–Damgård construction]]-->
हैश फ़ंक्शन निश्चित-लंबाई वाले उत्पादन में मनमाने-लंबाई वाले संदेश को संसाधित करने में सक्षम होना चाहिए। इसे सामान्य आकार के ब्लॉकों की श्रृंखला में इनपुट को तोड़कर और एक तरफ़ा संपीड़न फ़ंक्शन का उपयोग करके अनुक्रम में संचालित करके प्राप्त किया जा सकता है। संपीड़न फ़ंक्शन या तो विशेष रूप से हैशिंग के लिए डिज़ाइन किया जा सकता है या फिर ब्लॉक सिफर से बनाया जा सकता है। मेर्कले-डैमगार्ड निर्माण के साथ निर्मित हैश फ़ंक्शन संघट्ट के लिए प्रतिरोधी है क्योंकि इसका संपीड़न कार्य है; पूर्ण हैश फ़ंक्शन के लिए किसी भी संघट्ट को संपीड़न फ़ंक्शन में संघट्ट के लिए वापस देखा जा सकता है।
एक हैश फ़ंक्शन एक निश्चित-लंबाई वाले आउटपुट में एक मनमाना-लंबाई वाले संदेश को संसाधित करने में सक्षम होना चाहिए। इसे समान आकार के ब्लॉकों की एक श्रृंखला में इनपुट को तोड़कर और एक तरफ़ा संपीड़न फ़ंक्शन का उपयोग करके अनुक्रम में संचालित करके प्राप्त किया जा सकता है। संपीड़न समारोह या तो विशेष रूप से हैशिंग के लिए डिज़ाइन किया जा सकता है या ब्लॉक सिफर से बनाया जा सकता है। मेर्कले-डैमगार्ड निर्माण के साथ निर्मित एक हैश फ़ंक्शन टकराव के लिए प्रतिरोधी है क्योंकि इसका संपीड़न कार्य है; पूर्ण हैश फ़ंक्शन के लिए किसी भी टक्कर को संपीड़न फ़ंक्शन में टकराव के लिए वापस देखा जा सकता है।
 
संसाधित किया गया अंतिम ब्लॉक भी स्पष्ट रूप से [[पैडिंग (क्रिप्टोग्राफी)]] होना चाहिए; यह इस निर्माण की सुरक्षा के लिए महत्वपूर्ण है। इस निर्माण को मेर्कले-डैमगार्ड निर्माण कहा जाता है। एसएचए-1 और एमडी5 सहित अधिकांश सामान्य क्लासिकल हैश फ़ंक्शंस, यह फ़ॉर्म लेते हैं।


संसाधित किया गया अंतिम ब्लॉक भी स्पष्ट रूप से [[पैडिंग (क्रिप्टोग्राफी)]] होना चाहिए; यह इस निर्माण की सुरक्षा के लिए महत्वपूर्ण है। इस निर्माण को मेर्कले-डैमगार्ड निर्माण कहा जाता है। SHA-1 और MD5 सहित अधिकांश सामान्य क्लासिकल हैश फ़ंक्शंस, यह फ़ॉर्म लेते हैं।
===वाइड पाइप बनाम संकीर्ण पाइप ===
मेर्कले-डैमगार्ड निर्माण का सीधा अनुप्रयोग, जहां हैश उत्पादन का आकार आंतरिक राज्य आकार (प्रत्येक संपीड़न चरण के बीच) के बराबर होता है, परिणाम संकीर्ण-पाइप हैश डिज़ाइन में होता है। यह डिज़ाइन कई अंतर्निहित खामियों का कारण बनता है, लंबाई-विस्तार, बहु-संघट्ट,<ref name="LkIref">{{Cite journal|last=Lucks|first=Stefan|date=2004|title=इटरेटेड हैश फ़ंक्शंस के लिए डिज़ाइन सिद्धांत|url=https://eprint.iacr.org/2004/253|journal=Cryptology ePrint Archive |id=Report 2004/253}}</ref> लंबे संदेश अटैक,{{sfn|Kelsey|Schneier|2005|pp=474–490}} जनरेट-एंड-पेस्ट अटैक, और समानांतर भी नहीं किया जा सकता है। परिणाम स्वरुप, आधुनिक हैश फ़ंक्शंस चौड़े-पाइप निर्माणों पर बनाए गए हैं जिनका बड़ा आंतरिक राज्य आकार है - जो मेर्कले-डैमगार्ड निर्माण के बदलावों से लेकर है।<ref name="LkIref" /> [[स्पंज निर्माण]] और हाइफ़ा निर्माण जैसे नए निर्माणों के लिए।<ref name="EjaBK">{{Cite conference|last1=Biham|first1=Eli|last2=Dunkelman|first2=Orr|date=24 August 2006|title=ए फ्रेमवर्क फॉर इटरेटिव हैश फंक्शंस - हाइफा|url=https://eprint.iacr.org/2007/278|conference=Second NIST Cryptographic Hash Workshop|work=Cryptology ePrint Archive |id=Report 2007/278}}</ref> एनआईएसटी हैश फंक्शन प्रतियोगिता में प्रवेश करने वालों में से कोई भी प्रतिष्ठित मेर्कले-डैमगार्ड निर्माण का उपयोग नहीं करता है।{{sfn|Nandi|Paul|2010}}


==={{Anchor|wide pipe|narrow pipe}}वाइड पाइप बनाम संकीर्ण पाइप ===
इस बीच, एसएचए-512/256 में उपयोग किए जाने वाले लंबे हैश के उत्पादन को छोटा करना भी इन अटैक में से कई को हरा देता है।<ref name="ZY8I9">{{Cite report|last1=Dobraunig|first1=Christoph|last2=Eichlseder|first2=Maria|last3=Mendel |first3=Florian |date=February 2015|title=SHA-224, SHA-512/224, और SHA-512/256 का सुरक्षा मूल्यांकन|url=http://www.cryptrec.go.jp/estimation/techrep_id2401.pdf}}</ref>
मेर्कले-डैमगार्ड निर्माण का एक सीधा अनुप्रयोग, जहां हैश आउटपुट का आकार आंतरिक राज्य आकार (प्रत्येक संपीड़न चरण के बीच) के बराबर होता है, परिणाम एक संकीर्ण-पाइप हैश डिज़ाइन में होता है। यह डिज़ाइन कई अंतर्निहित खामियों का कारण बनता है, जिसमें लंबाई विस्तार पर हमला | लंबाई-विस्तार, बहु-टकराव,<ref name="LkIref">{{Cite journal|last=Lucks|first=Stefan|date=2004|title=इटरेटेड हैश फ़ंक्शंस के लिए डिज़ाइन सिद्धांत|url=https://eprint.iacr.org/2004/253|journal=Cryptology ePrint Archive |id=Report 2004/253}}</ref> लंबे संदेश हमले,{{sfn|Kelsey|Schneier|2005|pp=474–490}} जनरेट-एंड-पेस्ट हमले,{{Citation needed|date=July 2017}} और समानांतर भी नहीं किया जा सकता है। नतीजतन, आधुनिक हैश फ़ंक्शंस चौड़े-पाइप निर्माणों पर बनाए गए हैं जिनका एक बड़ा आंतरिक राज्य आकार है - जो मेर्कले-डैमगार्ड निर्माण के बदलावों से लेकर है।<ref name="LkIref" />[[स्पंज निर्माण]] और हाइफ़ा निर्माण जैसे नए निर्माणों के लिए।<ref name="EjaBK">{{Cite conference|last1=Biham|first1=Eli|last2=Dunkelman|first2=Orr|date=24 August 2006|title=ए फ्रेमवर्क फॉर इटरेटिव हैश फंक्शंस - हाइफा|url=https://eprint.iacr.org/2007/278|conference=Second NIST Cryptographic Hash Workshop|work=Cryptology ePrint Archive |id=Report 2007/278}}</ref> एनआईएसटी हैश फंक्शन प्रतियोगिता में प्रवेश करने वालों में से कोई भी शास्त्रीय मेर्कले-डैमगार्ड निर्माण का उपयोग नहीं करता है।{{sfn|Nandi|Paul|2010}}
== अन्य क्रिप्टोग्राफ़िक पूर्वग बनाने में उपयोग करें ==
इस बीच, SHA-512/256 में उपयोग किए जाने वाले लंबे हैश के आउटपुट को छोटा करना भी इन हमलों में से कई को हरा देता है।<ref name="ZY8I9">{{Cite report|last1=Dobraunig|first1=Christoph|last2=Eichlseder|first2=Maria|last3=Mendel |first3=Florian |date=February 2015|title=SHA-224, SHA-512/224, और SHA-512/256 का सुरक्षा मूल्यांकन|url=http://www.cryptrec.go.jp/estimation/techrep_id2401.pdf}}</ref>
अन्य क्रिप्टोग्राफ़िक पूर्वग बनाने के लिए हैश फ़ंक्शंस का उपयोग किया जा सकता है। इन अन्य पूर्वगों को क्रिप्टोग्राफ़िक रूप से सुरक्षित होने के लिए, उन्हें सही प्रकार से बनाने के लिए रख-रखाव किया जाना चाहिए।


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


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


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


जिस तरह ब्लॉक सिफर का इस्तेमाल हैश फंक्शन बनाने के लिए किया जा सकता है, उसी तरह हैश फंक्शन का इस्तेमाल ब्लॉक सिफर बनाने के लिए किया जा सकता है। यदि अंतर्निहित हैश फ़ंक्शन सुरक्षित है, तो हैश फ़ंक्शंस का उपयोग करके [[Luby-Rackoff]] निर्माण काफी सुरक्षित हो सकता है। इसके अलावा, कई हैश फ़ंक्शंस (SHA-1 और SHA-2 सहित) एक-तरफ़ा संपीड़न फ़ंक्शन #Davies–Meyer|Davies–Meyer या अन्य निर्माण में एक विशेष-उद्देश्य ब्लॉक सिफर का उपयोग करके बनाए गए हैं। उस सिफर का उपयोग ऑपरेशन के पारंपरिक मोड में भी किया जा सकता है, बिना समान सुरक्षा गारंटी के; उदाहरण के लिए, [[SHACAL]], BEAR (सिफर) और LION (सिफर)।
कुछ हैश फ़ंक्शंस, जैसे [[स्केन (हैश फ़ंक्शन)]], केकक, और रेडियोगैटन, मनमाने ढंग से लंबी स्ट्रीम का उत्पादन करते हैं और [[स्ट्रीम सिफर]] के रूप में उपयोग किया जा सकता है, और स्ट्रीम सिफर को निश्चित-लंबाई डाइजेस्ट हैश फ़ंक्शंस से भी बनाया जा सकता है। अधिकांशतः यह पहले [[क्रिप्टोग्राफिक आदिम|क्रिप्टोग्राफिक पूर्वग]] से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर का निर्माण करके और फिर यादृच्छिक बाइट्स की धारा को [[keystream|कीस्ट्रीम]] के रूप में उपयोग करके किया जाता है। एसइएएल (सिफर) स्ट्रीम सिफर है जो आंतरिक सूचीओं को उत्पन्न करने के लिए एसएचए-1 का उपयोग करता है, जो तब हैश कलनविधि से कम या ज्यादा असंबंधित कीस्ट्रीम जनरेटर में उपयोग किया जाता है। एसइएएल को एसएचए-1 जितना ठोस (या कमजोर) होने की गारंटी नहीं है। इसी प्रकार, एचसी-128 और [[एचसी-256]] स्ट्रीम सिफर का प्रमुख विस्तार [[SHA-256|एसएचए-256]] हैश फ़ंक्शन का भारी उपयोग करता है।


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


कुछ हैश फ़ंक्शंस, जैसे [[स्केन (हैश फ़ंक्शन)]], केकेक, और रेडियोगैटन, एक मनमाने ढंग से लंबी स्ट्रीम का उत्पादन करते हैं और एक [[स्ट्रीम सिफर]] के रूप में इस्तेमाल किया जा सकता है, और स्ट्रीम सिफर को निश्चित-लंबाई डाइजेस्ट हैश फ़ंक्शंस से भी बनाया जा सकता है। अक्सर यह पहले एक [[[[क्रिप्टोग्राफिक आदिम]] से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर]] का निर्माण करके और फिर यादृच्छिक बाइट्स की धारा को [[keystream]] के रूप में उपयोग करके किया जाता है। SEAL (सिफर) एक स्ट्रीम सिफर है जो आंतरिक तालिकाओं को उत्पन्न करने के लिए SHA-1 का उपयोग करता है, जो तब हैश एल्गोरिथम से कम या ज्यादा असंबंधित कीस्ट्रीम जनरेटर में उपयोग किया जाता है। SEAL को SHA-1 जितना मजबूत (या कमजोर) होने की गारंटी नहीं है। इसी तरह, [[HC-256]]|HC-128 और HC-256 स्ट्रीम सिफर का प्रमुख विस्तार [[SHA-256]] हैश फ़ंक्शन का भारी उपयोग करता है।
एकाधिक हैश फ़ंक्शंस से कॉन्टेनेशन उत्पादन संघट्ट प्रतिरोध प्रदान करते हैं जो समेकित परिणाम में सम्मलित कलनविधि सबसे ठोस होती हैं।{{Citation needed|date=May 2016}} उदाहरण के लिए, ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस) और सिक्योर सॉकेट्स लेयर (एसएसएल) के पुराने संस्करणों में संयोजित एमडी5 और एसएचए-1 रकम का उपयोग किया जाता है।{{sfn|Mendel|Rechberger|Schläffer|2009|p=145|ps= :Concatenating ... is often used by implementors to "hedge bets" on hash functions. A combiner of the form MD5|SHA-1 as used in SSL3.0/TLS1.0 ... is an example of such a strategy.}}{{sfn|Harnik|Kilian|Naor|Reingold|2005|p=99|ps=: the concatenation of hash functions as suggested in the TLS... is guaranteed to be as secure as the candidate that remains secure.}} यह सुनिश्चित करता है कि हैश फ़ंक्शंस में से किसी में संघट्ट खोजने का विधी दोनों हैश फ़ंक्शंस द्वारा संरक्षित डेटा को पराजित नहीं करता है।{{Citation needed|date=May 2016}}


== संयोजन ==
मेर्कले-डैमगार्ड निर्माण हैश फ़ंक्शंस के लिए, समेकित फ़ंक्शन संघट्ट-प्रतिरोधी के रूप में इसके सबसे ठोस घटक के रूप में है, लेकिन अधिक संघट्ट-प्रतिरोधी नहीं है।{{Citation needed|date=May 2016}} [[एंटोनी जौक्स]] ने देखा कि 2-संघट्ट का कारण बनता है {{math|''n''}}-संघट्ट: यदि अटैकर के लिए ही एमडी5 हैश के साथ दो संदेशों को ढूंढना संभव है, तो वे उसी एमडी5 हैश के साथ जितने चाहें उतने अतिरिक्त संदेश पा सकते हैं, बिना किसी बड़ी कठिनाई के।{{sfn|Joux|2004}} उनके बीच {{math|''n''}} सामान्य एमडी5 हैश वाले संदेश, एसएचए-1 में संघट्ट होने की संभावना है। एसएचए-1 संघट्ट (घातीय बर्थडे खोज से परे) खोजने के लिए आवश्यक अतिरिक्त कार्य के लिए केवल बहुपद समय की आवश्यकता होती है।<ref name="urlGmane">{{cite web |url=http://article.gmane.org/gmane.comp.encryption.general/5154 |title=हैश फ़ंक्शंस के साथ अधिक समस्याएं|first=Hal |last=Finney |author-link=Hal Finney (computer scientist) |date=August 20, 2004 |work=The Cryptography Mailing List |access-date=May 25, 2016 |archive-url=https://web.archive.org/web/20160409095104/http://article.gmane.org/gmane.comp.encryption.general/5154 |archive-date=April 9, 2016 |url-status=dead}}</ref>{{sfn|Hoch|Shamir|2008|pp=616–630}}
== क्रिप्टोग्राफ़िक हैश कलनविधि ==


एकाधिक हैश फ़ंक्शंस से कॉन्टेनेशन आउटपुट टकराव प्रतिरोध प्रदान करते हैं जो समेकित परिणाम में शामिल एल्गोरिदम के सबसे मजबूत होते हैं।{{Citation needed|date=May 2016}} उदाहरण के लिए, [[परिवहन परत सुरक्षा]]|ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) और सिक्योर सॉकेट्स लेयर (SSL) के पुराने संस्करणों में संयोजित MD5 और SHA-1 रकम का उपयोग किया जाता है।{{sfn|Mendel|Rechberger|Schläffer|2009|p=145|ps= :Concatenating ... is often used by implementors to "hedge bets" on hash functions. A combiner of the form MD5|SHA-1 as used in SSL3.0/TLS1.0 ... is an example of such a strategy.}}{{sfn|Harnik|Kilian|Naor|Reingold|2005|p=99|ps=: the concatenation of hash functions as suggested in the TLS... is guaranteed to be as secure as the candidate that remains secure.}} यह सुनिश्चित करता है कि हैश फ़ंक्शंस में से किसी एक में टकराव खोजने का तरीका दोनों हैश फ़ंक्शंस द्वारा संरक्षित डेटा को पराजित नहीं करता है।{{Citation needed|date=May 2016}}
कई क्रिप्टोग्राफ़िक हैश कलनविधि हैं; यह खंड कुछ कलनविधि सूचीबद्ध करता है जिन्हें अपेक्षाकृत अधिकांशतः संदर्भित किया जाता है। [[क्रिप्टोग्राफ़िक हैश फ़ंक्शंस की तुलना]] वाले पृष्ठ पर अधिक विस्तृत सूची पाई जा सकती है।
मेर्कले-डैमगार्ड निर्माण हैश फ़ंक्शंस के लिए, समेकित फ़ंक्शन टक्कर-प्रतिरोधी के रूप में इसके सबसे मजबूत घटक के रूप में है, लेकिन अधिक टक्कर-प्रतिरोधी नहीं है।{{Citation needed|date=May 2016}} [[एंटोनी जौक्स]] ने देखा कि 2-टकराव का कारण बनता है {{math|''n''}}-टकराव: यदि एक हमलावर के लिए एक ही MD5 हैश के साथ दो संदेशों को ढूंढना संभव है, तो वे उसी MD5 हैश के साथ जितने चाहें उतने अतिरिक्त संदेश पा सकते हैं, बिना किसी बड़ी कठिनाई के।{{sfn|Joux|2004}} उनके बीच {{math|''n''}} समान MD5 हैश वाले संदेश, SHA-1 में टक्कर होने की संभावना है। SHA-1 टक्कर (घातीय जन्मदिन खोज से परे) खोजने के लिए आवश्यक अतिरिक्त कार्य के लिए केवल बहुपद समय की आवश्यकता होती है।<ref name="urlGmane">{{cite web |url=http://article.gmane.org/gmane.comp.encryption.general/5154 |title=हैश फ़ंक्शंस के साथ अधिक समस्याएं|first=Hal |last=Finney |author-link=Hal Finney (computer scientist) |date=August 20, 2004 |work=The Cryptography Mailing List |access-date=May 25, 2016 |archive-url=https://web.archive.org/web/20160409095104/http://article.gmane.org/gmane.comp.encryption.general/5154 |archive-date=April 9, 2016 |url-status=dead}}</ref>{{sfn|Hoch|Shamir|2008|pp=616–630}}


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


== क्रिप्टोग्राफ़िक हैश एल्गोरिदम ==
=== एसएचए-1===
{{Main |एसएचए-1 }}
एसएचए-1 को अमेरिकी सरकार की [[कैपस्टोन (क्रिप्टोग्राफी)]] परियोजना के हिस्से के रूप में विकसित किया गया था। कलनविधि का मूल विनिर्देश - जिसे अब सामान्यतः एसएचए-0 कहा जाता है - 1993 में अमेरिकी सरकार की मानक एजेंसी एनआईएसटी (राष्ट्रीय मानक और प्रौद्योगिकी संस्थान) द्वारा सिक्योर हैश स्टैंडर्ड, एफआईपीएस पीयूबी 180 शीर्षक के तहत प्रकाशित किया गया था। इसे प्रकाशन के तुरंत बाद एनएसऐ द्वारा वापस ले लिया गया था और 1995 में एफआईपीएस पीयूबी 180-1 में प्रकाशित संशोधित संस्करण और सामान्यतः एसएचए-1 नामित किया गया था। पूर्ण एसएचए-1 कलनविधि के विरुद्ध संघट्ट एसएचए-1 एसएचएटीटीट्रड का उपयोग करके उत्पन्न किया जा सकता है - पहली सार्वजनिक संघट्ट और हैश फ़ंक्शन को टूटा हुआ माना जाना चाहिए। एसएचए-1 160 बिट्स (20 बाइट्स) का हैश डाइजेस्ट पैदा करता है।


कई क्रिप्टोग्राफ़िक हैश एल्गोरिदम हैं; यह खंड कुछ एल्गोरिदम सूचीबद्ध करता है जिन्हें अपेक्षाकृत अक्सर संदर्भित किया जाता है। [[क्रिप्टोग्राफ़िक हैश फ़ंक्शंस की तुलना]] वाले पृष्ठ पर एक अधिक विस्तृत सूची पाई जा सकती है।
दस्तावेज़ एसएचए-1 को केवल एसएचए के रूप में संदर्भित कर सकते हैं, भले ही यह एसएचए-0, एसएचए-2 और एसएचए-3 जैसे अन्य सुरक्षित हैश कलनविधि के साथ संघर्ष कर सकता है।


=== एमडी 5 ===
===आरआईपीईएमडी-160===
{{ Main | MD5 }}
{{Main | आरआईपीईएमडी-160 }}
MD5 को [[रोनाल्ड रिवेस्ट]] द्वारा 1991 में पहले के हैश फ़ंक्शन, MD4 को बदलने के लिए डिज़ाइन किया गया था, और 1992 में RFC 1321 के रूप में निर्दिष्ट किया गया था। MD5 के विरुद्ध टकराव की गणना सेकंड के भीतर की जा सकती है जो एल्गोरिथ्म को अधिकांश उपयोग मामलों के लिए अनुपयुक्त बनाता है जहाँ क्रिप्टोग्राफ़िक हैश की आवश्यकता होती है। MD5 128 बिट्स (16 बाइट्स) का डाइजेस्ट उत्पन्न करता है।
 
आरआईपीईएमडी (आरएसीइ इंटीग्रिटी प्रिमिटिव्स इमूल्यएशन मैसेज डाइजेस्ट) क्रिप्टोग्राफ़िक हैश फ़ंक्शंस का परिवार है जिसे ल्यूवेन, बेल्जियम में हैंस डोबबर्टिन, एंटून बॉससेलर्स और बार्ट प्रेनील द्वारा कैथोलिएके यूनिवर्सिटीइट ल्यूवेन में सीएसओआईसी रिसर्च ग्रुप में विकसित किया गया था, और पहली बार 1996 में प्रकाशित किया गया था। आरआईपीईएमडी एमडी4 में उपयोग किए गए डिजाइन सिद्धांतों पर आधारित था और यह अधिक लोकप्रिय एसएचए-1 के प्रदर्शन के सामान्य है। चूंकि, आरआईपीईएमडी-160 तोड़ा नहीं गया है। जैसा कि नाम से ही स्पष्ट है, आरआईपीईएमडी-160 (20 बाइट्स) 160 बिट्स का हैश डाइजेस्ट उत्पन्न करता है।


=== SHA-1===
=== व्हर्लपूल ===
{{ Main | SHA-1 }}
{{Main |व्हर्लपूल (हैश फंकशन) }}
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 बाइट्स) का हैश डाइजेस्ट पैदा करता है।
व्हर्लपूल क्रिप्टोग्राफ़िक हैश फ़ंक्शन है जिसे विन्सेंट रिजमेन और पाउलो एस.एल.एम. बैरेटो द्वारा डिज़ाइन किया गया है, जिन्होंने पहली बार 2000 में इसका वर्णन किया था। व्हर्लपूल उन्नत कूटलेखन स्टैंडर्ड (एईएस) के काफी संशोधित संस्करण पर आधारित है। व्हर्लपूल 512 बिट्स (64 बाइट्स) का हैश डाइजेस्ट उत्पन्न करता है।


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


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


=== भँवर ===
एसएचए-2 में मूल रूप से दो हैश कलनविधि होते हैं: एसएचए-256 और एसएचए-512 एसएचए-224, एसएचए-256 का भिन्न प्रारंभिक मान और छोटा उत्पादन के साथ प्रकार है। एसएचए-384 और कम ज्ञात एसएचए-512/224 और एसएचए-512/256 सभी एसएचए-512 के प्रकार हैं। एसएचए-512, एसएचए-256 की तुलना में अधिक सुरक्षित है और सामान्यतः 64-बिट मशीनों जैसे X86-64 पर एसएचए-256 से तेज़ है।
{{ Main | Whirlpool (hash function) }}
व्हर्लपूल एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन है जिसे विन्सेंट रिजमेन और पाउलो एस.एल.एम. बैरेटो द्वारा डिज़ाइन किया गया है, जिन्होंने पहली बार 2000 में इसका वर्णन किया था। व्हर्लपूल उन्नत एन्क्रिप्शन स्टैंडर्ड (एईएस) के काफी संशोधित संस्करण पर आधारित है। व्हर्लपूल 512 बिट्स (64 बाइट्स) का हैश डाइजेस्ट उत्पन्न करता है।


=== SHA-2===
बिट्स में उत्पादन आकार एसएचए नाम के विस्तार द्वारा दिया गया है, इसलिए एसएचए-224 का उत्पादन आकार 224 बिट्स (28 बाइट्स) है; एसएचए-256, 32 बाइट्स; एसएचए-384, 48 बाइट्स; और एसएचए-512, 64 बाइट्स है।
{{ Main | 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 से तेज़ है।
=== एसएचए-3===
{{Main  |एसएचए-3}}


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


=== SHA-3===
एसएचएकेइ-128 और एसएचएकेइ-256 फ़ंक्शंस का उपयोग करके कॉन्फ़िगर करने योग्य उत्पादन आकार भी प्राप्त किए जा सकते हैं। यहां -128 और -256 नाम के विस्तार बिट्स में उत्पादन आकार के अतिरिक्त फ़ंक्शन की सुरक्षा सक्रियता का संकेत देते हैं।
{{ Main  | 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===
{{Main |ब्लेक2 }}


===ब्लैक2===
ब्लेक2, ब्लेक का उन्नत संस्करण, 21 दिसंबर, 2012 को घोषित किया गया था। इसे जीन-फिलिप ऑमसन, सैमुअल नेव्स, ज़ूको विलकॉक्स-ओ'हर्न और क्रिश्चियन विनरलीन द्वारा व्यापक रूप से उपयोग किए जाने वाले लेकिन टूटे हुए एमडी5 को बदलने के लक्ष्य के साथ बनाया गया था। एसएचए-1 कलनविधि। जब 64-बिट एक्स64 और ऐआरएम आर्किटेक्चर पर चलाया जाता है, तो ब्लेक2बी एसएचए-3, एसएचए-2, एसएचए-1 और एमडी5 से तेज़ होता है। चूंकि ब्लेक और ब्लेक2 को एसएचए-3 के रूप में मानकीकृत नहीं किया गया है, ब्लेक2 का उपयोग आर्गन2 पासवर्ड हैश सहित कई प्रोटोकॉल में किया गया है, उच्च दक्षता के लिए जो यह आधुनिक सीपीयू पर प्रदान करता है। चूंकि ब्लेक एसएचए-3 के लिए अपेक्षावार था, ब्लेक और ब्लेक2 दोनों ही एसएचए-3 के सामान्य उत्पादन आकार प्रदान करते हैं - विन्यास योग्य उत्पादन आकार सहित।
{{ Main | BLAKE2 }}
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 के समान आउटपुट आकार प्रदान करते हैं - एक विन्यास योग्य आउटपुट आकार सहित।


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


== क्रिप्टोग्राफिक हैश एल्गोरिदम पर हमले ==
== क्रिप्टोग्राफिक हैश कलनविधि पर अटैक ==


क्रिप्टोग्राफ़िक हैश फ़ंक्शंस की एक लंबी सूची है लेकिन कई असुरक्षित पाए गए हैं और उनका उपयोग नहीं किया जाना चाहिए। उदाहरण के लिए, NIST ने 51 हैश फ़ंक्शंस का चयन किया<ref name="UNudB">Andrew Regenscheid, Ray Perlner, Shu-Jen Chang, John Kelsey, Mridul Nandi, Souradyuti Paul, [https://nvlpubs.nist.gov/nistpubs/Legacy/IR/nistir7620.pdf Status Report on the First Round of the SHA-3 Cryptographic Hash Algorithm Competition]</ref> SHA-3 हैश प्रतियोगिता के पहले दौर के उम्मीदवारों के रूप में, जिनमें से 10 को टूटा हुआ माना गया और 16 ने महत्वपूर्ण कमजोरियां दिखाईं और इसलिए अगले दौर में जगह नहीं बनाई; अधिक जानकारी NIST हैश फंक्शन प्रतियोगिताओं के बारे में मुख्य लेख में पाई जा सकती है।
क्रिप्टोग्राफ़िक हैश फ़ंक्शंस की लंबी सूची होती है लेकिन उनमे से कई असुरक्षित पाए गए हैं और उनका उपयोग नहीं किया जाना चाहिए। उदाहरण के लिए, एनआईएसटी ने 51 हैश फ़ंक्शंस का चयन किया<ref name="UNudB">Andrew Regenscheid, Ray Perlner, Shu-Jen Chang, John Kelsey, Mridul Nandi, Souradyuti Paul, [https://nvlpubs.nist.gov/nistpubs/Legacy/IR/nistir7620.pdf Status Report on the First Round of the SHA-3 Cryptographic Hash Algorithm Competition]</ref> एसएचए-3 हैश प्रतियोगिता के पहले दौर के अपेक्षावारों के रूप में, जिनमें से 10 को टूटा हुआ माना गया और 16 ने महत्वपूर्ण कमजोरियां दिखाईं और इसलिए अगले दौर में जगह नहीं बनाई; अधिक जानकारी एनआईएसटी हैश फंक्शन प्रतियोगिताओं के बारे में मुख्य लेख में पाई जा सकती है।


यहां तक ​​​​कि अगर हैश फ़ंक्शन कभी नहीं तोड़ा गया है, तो एक क्रिप्टोग्राफ़िक हमला # कमजोर संस्करण के खिलाफ हमलावर को उपलब्ध जानकारी विशेषज्ञों के विश्वास को कम कर सकती है। उदाहरण के लिए, अगस्त 2004 में MD5 सहित कई तत्कालीन लोकप्रिय हैश फ़ंक्शंस में टकराव पाए गए।<ref name="Mpt5q">XiaoyunWang, Dengguo Feng, Xuejia Lai, Hongbo Yu, [https://eprint.iacr.org/2004/199.pdf Collisions for Hash Functions MD4, MD5, HAVAL-128, and RIPEMD]</ref> इन कमजोरियों ने कमजोर हैश कार्यों से प्राप्त मजबूत एल्गोरिदम की सुरक्षा पर सवाल उठाया - विशेष रूप से, SHA-1 (SHA-0 का एक मजबूत संस्करण), RIPEMD-128, और RIPEMD-160 (RIPEMD के दोनों मजबूत संस्करण)।<ref name="R7ASX">{{Citation|last1=Alshaikhli|first1=Imad Fakhri|title=Cryptographic Hash Function|date=2015|work=Handbook of Research on Threat Detection and Countermeasures in Network Security|pages=80–94|publisher=IGI Global |isbn=978-1-4666-6583-5|last2=AlAhmad|first2=Mohammad Abdulateef|doi=10.4018/978-1-4666-6583-5.ch006}}</ref>
यहां तक ​​​​कि यदि हैश फ़ंक्शन कभी नहीं तोड़ा गया है, तो क्रिप्टोग्राफ़िक अटैक कमजोर संस्करण के खिलाफ अटैकर को उपलब्ध जानकारी विशेषज्ञों के विश्वास को कम कर सकती है। उदाहरण के लिए, अगस्त 2004 में एमडी5 सहित कई तत्कालीन लोकप्रिय हैश फ़ंक्शंस में संघट्ट पाए गए।<ref name="Mpt5q">XiaoyunWang, Dengguo Feng, Xuejia Lai, Hongbo Yu, [https://eprint.iacr.org/2004/199.pdf Collisions for Hash Functions MD4, MD5, HAVAL-128, and RIPEMD]</ref> इन कमजोरियों ने कमजोर हैश कार्यों से प्राप्त ठोस कलनविधि की सुरक्षा पर सवाल उठाया - विशेष रूप से, एसएचए-1 (एसएचए-0 का ठोस संस्करण), आरआईपीईएमडी-128, और आरआईपीईएमडी-160 (आरआईपीईएमडी के दोनों ठोस संस्करण)।<ref name="R7ASX">{{Citation|last1=Alshaikhli|first1=Imad Fakhri|title=Cryptographic Hash Function|date=2015|work=Handbook of Research on Threat Detection and Countermeasures in Network Security|pages=80–94|publisher=IGI Global |isbn=978-1-4666-6583-5|last2=AlAhmad|first2=Mohammad Abdulateef|doi=10.4018/978-1-4666-6583-5.ch006}}</ref>
12 अगस्त 2004 को, जौक्स, कैरिबॉल्ट, लेमुएल और जल्बी ने पूर्ण SHA-0 एल्गोरिथम के लिए टक्कर की घोषणा की।{{sfn|Joux|2004}} जौक्स एट अल। चाबाउद और जौक्स हमले के सामान्यीकरण का उपयोग करके इसे पूरा किया। उन्होंने पाया कि टक्कर में जटिलता थी {{math|2<sup>51</sup>}} और 256 [[इटेनियम 2]] प्रोसेसर वाले [[सुपर कंप्यूटर]] पर लगभग 80,000 सीपीयू घंटे लगे - सुपरकंप्यूटर के 13 दिनों के पूर्णकालिक उपयोग के बराबर।{{Citation needed|date=May 2016}}
फरवरी 2005 में, SHA-1 पर एक हमले की सूचना मिली थी जो लगभग 2 में टकराएगा<sup>69</sup> हैशिंग ऑपरेशंस, 2 के बजाय<sup>80</sup> 160-बिट हैश फ़ंक्शन के लिए अपेक्षित है। अगस्त 2005 में, SHA-1 पर एक और हमले की सूचना मिली थी जो 2 में टक्करों को खोजेगा<sup>63</sup> संचालन। SHA-1 की अन्य सैद्धांतिक कमजोरियां ज्ञात हैं:<ref name="NhaRr">Xiaoyun Wang, [[Yiqun Lisa Yin]], and Hongbo Yu, [http://people.csail.mit.edu/yiqun/SHA1AttackProceedingVersion.pdf Finding Collisions in the Full SHA-1]</ref><ref name="CmkOx">Bruce Schneier, [http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html Cryptanalysis of SHA-1] (summarizes Wang et al. results and their implications)</ref> और फरवरी 2017 में Google ने SHA-1 में टक्कर की घोषणा की।<ref name="xW1m9">{{Cite news |url=https://www.forbes.com/sites/thomasbrewster/2017/02/23/google-sha-1-hack-why-it-matters/#3f73df04c8cd |title=Google ने एक पुराने क्रिप्टो एल्गोरिथम को 'चकनाचूर' कर दिया - यही कारण है कि वेब सुरक्षा के लिए यह बहुत बड़ा है|last=Fox-Brewster|first=Thomas|newspaper=Forbes|access-date=2017-02-24}}</ref> सुरक्षा शोधकर्ता अनुशंसा करते हैं कि नए एप्लिकेशन SHA-2 जैसे SHA परिवार के बाद के सदस्यों का उपयोग करके या यादृच्छिक हैशिंग जैसी तकनीकों का उपयोग करके इन समस्याओं से बच सकते हैं।<ref name="MrThfd">Shai Halevi and Hugo Krawczyk, [http://webee.technion.ac.il/~hugo/rhash/ Randomized Hashing and Digital Signatures]</ref> जिसे टक्कर प्रतिरोध की आवश्यकता नहीं है।


एक सफल, व्यावहारिक हमले ने 2008 में ट्रांसपोर्ट लेयर सिक्योरिटी के प्रमाणपत्रों के भीतर उपयोग किए गए MD5 को तोड़ दिया।<ref name="bVltK">Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik, Benne de Weger, [http://www.win.tue.nl/hashclash/rogue-ca/ MD5 considered harmful today: Creating a rogue CA certificate], accessed March 29, 2009.</ref>
12 अगस्त 2004 को, जौक्स, कैरिबॉल्ट, लेमुएल और जल्बी ने पूर्ण एसएचए-0 कलनविधि के लिए संघट्ट की घोषणा की।{{sfn|Joux|2004}} जौक्स एट अल चाबाउद और जौक्स अटैक के सामान्यीकरण का उपयोग करके इसे पूरा किया था। उन्होंने पाया कि संघट्ट में जटिलता थी {{math|2<sup>51</sup>}} और 256 [[इटेनियम 2]] प्रोसेसर वाले [[सुपर कंप्यूटर]] पर अधिकतर 80,000 सीपीयू घंटे लगे - जो सुपरकंप्यूटर के 13 दिनों के पूर्णकालिक उपयोग के बराबर है।{{Citation needed|date=May 2016}}
कई क्रिप्टोग्राफ़िक हैश मेर्कले-डेमगार्ड निर्माण पर आधारित हैं। सभी क्रिप्टोग्राफ़िक हैश जो सीधे मेर्कले-डैमगार्ड निर्माण के पूर्ण आउटपुट का उपयोग करते हैं, लंबाई विस्तार के हमलों के लिए कमजोर हैं। यह MD5, SHA-1, RIPEMD-160, व्हर्लपूल, और SHA-256 / SHA-512 हैश एल्गोरिथम को इस विशिष्ट हमले के लिए असुरक्षित बनाता है। SHA-3, BLAKE2, BLAKE3, और छोटे SHA-2 वेरिएंट इस प्रकार के हमले के लिए असुरक्षित नहीं हैं।{{cit|date=April 2020}}


फरवरी 2005 में, एसएचए-1 पर अटैक की सूचना मिली थी जो अधिकतर 2 में टकराएगा<sup>69</sup> हैशिंग ऑपरेशंस, 2 के अतिरिक्त<sup>80</sup> 160-बिट हैश फ़ंक्शन के लिए अपेक्षित है। अगस्त 2005 में, एसएचए-1 पर और अटैक की सूचना मिली थी जो 2 में संघट्टों को खोजेगा<sup>63</sup> संचालन। एसएचए-1 की अन्य सैद्धांतिक कमजोरियां ज्ञात हैं:<ref name="NhaRr">Xiaoyun Wang, [[Yiqun Lisa Yin]], and Hongbo Yu, [http://people.csail.mit.edu/yiqun/SHA1AttackProceedingVersion.pdf Finding Collisions in the Full SHA-1]</ref><ref name="CmkOx">Bruce Schneier, [http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html Cryptanalysis of SHA-1] (summarizes Wang et al. results and their implications)</ref> और फरवरी 2017 में गूगल ने एसएचए-1 में संघट्ट की घोषणा की।<ref name="xW1m9">{{Cite news |url=https://www.forbes.com/sites/thomasbrewster/2017/02/23/google-sha-1-hack-why-it-matters/#3f73df04c8cd |title=Google ने एक पुराने क्रिप्टो एल्गोरिथम को 'चकनाचूर' कर दिया - यही कारण है कि वेब सुरक्षा के लिए यह बहुत बड़ा है|last=Fox-Brewster|first=Thomas|newspaper=Forbes|access-date=2017-02-24}}</ref> सुरक्षा शोधकर्ता अनुशंसा करते हैं कि नए अनुप्रयोग एसएचए-2 जैसे एसएचए परिवार के बाद के सदस्यों का उपयोग करके या यादृच्छिक हैशिंग जैसी तकनीकों का उपयोग करके इन समस्याओं से बच सकते हैं।<ref name="MrThfd">Shai Halevi and Hugo Krawczyk, [http://webee.technion.ac.il/~hugo/rhash/ Randomized Hashing and Digital Signatures]</ref> जिसे संघट्ट प्रतिरोध की आवश्यकता नहीं है।


== हैश किए गए पासवर्ड पर हमला ==
एक सफल, प्रायोगिक अटैक ने 2008 में ट्रांसपोर्ट लेयर सिक्योरिटी के प्रमाणपत्रों के भीतर उपयोग किए गए एमडी5 को तोड़ दिया था।<ref name="bVltK">Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik, Benne de Weger, [http://www.win.tue.nl/hashclash/rogue-ca/ MD5 considered harmful today: Creating a rogue CA certificate], accessed March 29, 2009.</ref>
{{main|Password cracking}}
पासवर्ड प्रमाणीकरण डेटा को संग्रहीत करने के लिए हैश का एक सामान्य उपयोग है। उपयोगकर्ता पासवर्ड के सादे पाठ को संग्रहीत करने के बजाय, एक नियंत्रित एक्सेस सिस्टम फ़ाइल या डेटाबेस में प्रत्येक उपयोगकर्ता के पासवर्ड के हैश को संग्रहीत करता है। जब कोई एक्सेस का अनुरोध करता है, तो उनके द्वारा सबमिट किया गया पासवर्ड हैश किया जाता है और संग्रहीत मान से तुलना की जाती है। यदि डेटाबेस चोरी हो गया है (एक बहुत ही लगातार घटना<ref name="jjUS1">{{cite news|url=https://www.csoonline.com/article/2130877/the-biggest-data-breaches-of-the-21st-century.html|title=21वीं सदी के 15 सबसे बड़े डेटा उल्लंघन|first= Dan |last=Swinhoe |publisher=CSO Magazine| date=April 17, 2020}}</ref>), चोर के पास केवल हैश वैल्यू होगी, पासवर्ड नहीं।


हालाँकि, अधिकांश लोग पूर्वानुमानित तरीकों से पासवर्ड चुनते हैं। सामान्य पासवर्डों की सूची व्यापक रूप से परिचालित की जाती है और कई पासवर्ड इतने छोटे होते हैं कि अगर तेजी से हैश का उपयोग किया जाता है तो सभी संभावित संयोजनों का परीक्षण किया जा सकता है।<ref name="2tECU">{{cite web | url=https://arstechnica.com/information-technology/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/ | title=25-जीपीयू क्लस्टर हर मानक विंडोज पासवर्ड को <6 घंटे में क्रैक करता है| date=2012-12-10 | first=Dan | last=Goodin | publisher=[[Ars Technica]] | access-date=2020-11-23}}</ref> नमक (क्रिप्टोग्राफी) का उपयोग कुछ हमलों को रोकता है, जैसे प्रीकंप्यूटिंग हैश वैल्यू की फाइलें बनाना, उदा। इंद्रधनुष टेबल। लेकिन हाई-एंड [[ग्राफिक्स प्रोसेसर]] के साथ प्रति सेकंड 100 बिलियन परीक्षण के क्रम में खोज संभव है, जिससे नमक के साथ भी सीधा हमला संभव हो जाता है।<ref name="28vy8">{{Cite web|url=https://www.theregister.co.uk/2019/02/14/password_length/|title=8-चार Windows NTLM पासवर्ड का उपयोग करें? मत। हर एक को 2.5 घंटे के अंदर क्रैक किया जा सकता है|last= Claburn |first=Thomas|date=February 14, 2019|website=www.theregister.co.uk|language=en|access-date=2020-11-26}}</ref>
कई क्रिप्टोग्राफ़िक हैश मेर्कले-डेमगार्ड निर्माण पर आधारित हैं। सभी क्रिप्टोग्राफ़िक हैश जो सीधे मेर्कले-डैमगार्ड निर्माण के पूर्ण उत्पादन का उपयोग करते हैं, लंबाई विस्तार के अटैक के लिए कमजोर हैं। यह एमडी5, एसएचए-1, आरआईपीईएमडी-160, व्हर्लपूल, और एसएचए-256 / एसएचए-512 हैश कलनविधि को इस विशिष्ट अटैक के लिए असुरक्षित बनाता है। एसएचए-3, ब्लेक2, ब्लेक3, और छोटे एसएचए-2 वेरिएंट इस प्रकार के अटैक के लिए असुरक्षित नहीं हैं।{{cit|date=April 2020}}
<ref name="TbJcd">{{cite web|url=https://improsec.com/tech-blog/mind-blowing-gpu-performance|title=दिमाग उड़ाने वाला जीपीयू प्रदर्शन|publisher=Improsec|date=January 3, 2020}}</ref>
== हैश किए गए पासवर्ड पर अटैक ==
युनाइटेड स्टेट्स [[मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान]] विशेष हैश का उपयोग करके पासवर्ड संग्रहीत करने की सिफारिश करता है जिसे प्रमुख व्युत्पन्न कार्य (केडीएफ) कहा जाता है जो कि क्रूर बल खोजों को धीमा करने के लिए बनाया गया है।<ref name="sp800-63B">{{cite book | title = SP 800-63B-3 - डिजिटल पहचान दिशानिर्देश, प्रमाणीकरण और जीवनचक्र प्रबंधन| publisher = NIST | date = June 2017 | doi=10.6028/NIST.SP.800-63b | author=Grassi Paul A.}}</ref>{{rp|5.1.1.2}} स्लो हैश में [[pbkdf2]], [[bcrypt]], scrypt, argon2, [[Balloon hashing]] और [[तहखाना (सी)]]C) के कुछ हालिया मोड शामिल हैं। निष्पादन को धीमा करने के लिए कई हैश करने वाले KSF के लिए, NIST 10,000 या अधिक की पुनरावृत्ति संख्या की अनुशंसा करता है।<ref name="sp800-63B" />{{rp|5.1.1.2}}
{{main|पासवर्ड क्रैकिंग}}


पासवर्ड प्रमाणीकरण डेटा को संग्रहीत करने के लिए हैश का सामान्य उपयोग होता हैं। उपयोगकर्ता पासवर्ड के सादे पाठ को संग्रहीत करने के अतिरिक्त, नियंत्रित एक्सेस प्रणाली फ़ाइल या डेटाबेस में प्रत्येक उपयोगकर्ता के पासवर्ड के हैश को संग्रहीत करता है। जब कोई एक्सेस का अनुरोध करता है, तो उनके द्वारा सबमिट किया गया पासवर्ड हैश किया जाता है और संग्रहीत मान से तुलना की जाती है। यदि डेटाबेस चोरी हो गया है (एक बहुत ही लगातार घटना<ref name="jjUS1">{{cite news|url=https://www.csoonline.com/article/2130877/the-biggest-data-breaches-of-the-21st-century.html|title=21वीं सदी के 15 सबसे बड़े डेटा उल्लंघन|first= Dan |last=Swinhoe |publisher=CSO Magazine| date=April 17, 2020}}</ref>), तो चोर के पास केवल हैश मूल्य होता है, ना की पासवर्ड होता है।
चूंकि, अधिकांश लोग पूर्वानुमानित तरीकों से पासवर्ड चुनते हैं। सामान्य पासवर्डों की सूची व्यापक रूप से परिचालित की जाती है और कई पासवर्ड इतने छोटे होते हैं कि यदि तेजी से हैश का उपयोग किया जाता है तो सभी संभावित संयोजनों का परीक्षण किया जा सकता है।<ref name="2tECU">{{cite web | url=https://arstechnica.com/information-technology/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/ | title=25-जीपीयू क्लस्टर हर मानक विंडोज पासवर्ड को <6 घंटे में क्रैक करता है| date=2012-12-10 | first=Dan | last=Goodin | publisher=[[Ars Technica]] | access-date=2020-11-23}}</ref> सॉल्ट (क्रिप्टोग्राफी) का उपयोग कुछ अटैक को रोकता है, जैसे प्रीकंप्यूटिंग हैश मूल्य की फाइलें बनाना रेनबो सूची लेकिन हाई-एंड [[ग्राफिक्स प्रोसेसर]] के साथ प्रति सेकंड 100 बिलियन परीक्षण के क्रम में खोज संभव है, जिससे सॉल्ट के साथ भी सीधा अटैक संभव हो जाता है।<ref name="28vy8">{{Cite web|url=https://www.theregister.co.uk/2019/02/14/password_length/|title=8-चार Windows NTLM पासवर्ड का उपयोग करें? मत। हर एक को 2.5 घंटे के अंदर क्रैक किया जा सकता है|last= Claburn |first=Thomas|date=February 14, 2019|website=www.theregister.co.uk|language=en|access-date=2020-11-26}}</ref><ref name="TbJcd">{{cite web|url=https://improsec.com/tech-blog/mind-blowing-gpu-performance|title=दिमाग उड़ाने वाला जीपीयू प्रदर्शन|publisher=Improsec|date=January 3, 2020}}</ref> युनाइटेड स्टेट्स [[मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान]] विशेष हैश का उपयोग करके पासवर्ड संग्रहीत करने की अनुरोध करता है जिसे प्रमुख व्युत्पन्न कार्य (केडीएफ) कहा जाता है जो कि क्रूर बल की खोजों को धीमा करने के लिए बनाया गया है।<ref name="sp800-63B">{{cite book | title = SP 800-63B-3 - डिजिटल पहचान दिशानिर्देश, प्रमाणीकरण और जीवनचक्र प्रबंधन| publisher = NIST | date = June 2017 | doi=10.6028/NIST.SP.800-63b | author=Grassi Paul A.}}</ref>{{rp|5.1.1.2}} स्लो हैश में [[pbkdf2|पीबीकेडीएफ2]], [[bcrypt|बीक्रिप्ट]], स्क्रिप्ट, आर्गन2, [[Balloon hashing|बैलून हैशिंग]] और यूनिक्स क्रिप्ट के कुछ हालिया मोड सम्मलित हैं। केएसएफएस के लिए जो निष्पादन को धीमा करने के लिए कई हैश करते हैं, एनआईएसटी 10,000 या अधिक की पुनरावृत्ति गणना की अनुरोध करता है।<ref name="sp800-63B" />{{rp|5.1.1.2}}


== यह भी देखें ==
== यह भी देखें ==
Line 180: Line 184:
* [[हैश चेन]]
* [[हैश चेन]]
* लंबाई विस्तार हमला
* लंबाई विस्तार हमला
* [[MD5CRK]]
* [[एमडी5सीआरके]]
* संदेश प्रमाणीकरण कोड
* संदेश प्रमाणीकरण कोड
* [[कंकाल]]
* [[कंकाल]]
Line 220: Line 224:


{{Cryptography navbox|hash}}
{{Cryptography navbox|hash}}
{{Cryptocurrencies}}
{{Cryptographic software}}


{{DEFAULTSORT:Cryptographic Hash Function}}[[Category: क्रिप्टोग्राफी]]
{{DEFAULTSORT:Cryptographic Hash Function}}
[[Category:क्रिप्टोग्राफ़िक आदिम]]
 
[[Category:All articles with unsourced statements|Cryptographic Hash Function]]
[[Category:Articles with hatnote templates targeting a nonexistent page|Cryptographic Hash Function]]
[[Category:Articles with unsourced statements from May 2016|Cryptographic Hash Function]]
[[Category:CS1 English-language sources (en)]]
[[Category:Citation Style 1 templates|M]]
[[Category:Collapse templates|Cryptographic Hash Function]]
[[Category:Created On 16/12/2022|Cryptographic Hash Function]]
[[Category:Lua-based templates|Cryptographic Hash Function]]
[[Category:Machine Translated Page|Cryptographic Hash Function]]
[[Category:Multi-column templates|Cryptographic Hash Function]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists|Cryptographic Hash Function]]
[[Category:Pages using div col with small parameter|Cryptographic Hash Function]]
[[Category:Pages with script errors|Cryptographic Hash Function]]
[[Category:Short description with empty Wikidata description|Cryptographic Hash Function]]
[[Category:Sidebars with styles needing conversion|Cryptographic Hash Function]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready|Cryptographic Hash Function]]
[[Category:Templates based on the Citation/CS1 Lua module]]
[[Category:Templates generating COinS|Cite magazine]]
[[Category:Templates generating microformats|Cryptographic Hash Function]]
[[Category:Templates that add a tracking category|Cryptographic Hash Function]]
[[Category:Templates that are not mobile friendly|Cryptographic Hash Function]]
[[Category:Templates that generate short descriptions|Cryptographic Hash Function]]
[[Category:Templates using TemplateData|Cryptographic Hash Function]]
[[Category:Templates using under-protected Lua modules|Cryptographic Hash Function]]
[[Category:Wikipedia fully protected templates|Div col]]
[[Category:Wikipedia metatemplates|Cryptographic Hash Function]]
[[Category:क्रिप्टोग्राफ़िक आदिम|Cryptographic Hash Function]]
[[Category:क्रिप्टोग्राफ़िक हैश फ़ंक्शंस| ]]
[[Category:क्रिप्टोग्राफ़िक हैश फ़ंक्शंस| ]]
[[Category: हैशिंग]]
[[Category:क्रिप्टोग्राफी|Cryptographic Hash Function]]
 
[[Category:हैशिंग|Cryptographic Hash Function]]
 
[[Category: Machine Translated Page]]
[[Category:Created On 16/12/2022]]

Latest revision as of 10:00, 24 January 2023

कार्य पर क्रिप्टोग्राफ़िक हैश फ़ंक्शन (विशेष रूप से एसएचए-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 'चुनकर अटैकर हैश की गणना कर सकता है hash(mm), जहां यह चिन्ह ∥ संयोजन को दर्शाता है।[5] इस संपत्ति का उपयोग हैश कार्यों के आधार पर सहज प्रमाणीकरण योजनाओं को तोड़ने के लिए किया जा सकता है। एचएमएसी संरचना इन समस्याओं के इर्द-गिर्द कार्य करती है।

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

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

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

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

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

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

चित्रण

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

अनुप्रयोग

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

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

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

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

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

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

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

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

कार्य का प्रमाण

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

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

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

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

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

ब्लॉक सिफर पर आधारित हैश फ़ंक्शन

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

सामान्यतः कूटलेखन के लिए उपयोग किए जाने वाले परिचालन के ब्लॉक सिफर मोड के सामान्य प्रकार हैं। एमडी4, एमडी5, एसएचए-1 और एसएचए-2 सहित कई जाने-माने हैश फ़ंक्शंस, इस उद्देश्य के लिए डिज़ाइन किए गए ब्लॉक-सिफर-जैसे घटकों से बनाए गए हैं, यह सुनिश्चित करने के लिए फीडबैक के साथ कि परिणामी फ़ंक्शन उलटा नहीं है। एनआईएसटी हैश फंक्शन प्रतियोगिता एसएचए-3 फाइनलिस्ट में ब्लॉक-सिफर जैसे घटकों (जैसे, स्केन हैश फ़ंक्शन, ब्लेक (हैश फंक्शन)) के साथ फंक्शन सम्मलित थे, चूंकि फंक्शन को अंत में चुना गया, केकेक, इसके अतिरिक्त स्पंज फ़ंक्शन पर बनाया गया था।

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

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

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

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

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

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

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

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

इस बीच, एसएचए-512/256 में उपयोग किए जाने वाले लंबे हैश के उत्पादन को छोटा करना भी इन अटैक में से कई को हरा देता है।[12]

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

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

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

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

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

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

संयोजन

एकाधिक हैश फ़ंक्शंस से कॉन्टेनेशन उत्पादन संघट्ट प्रतिरोध प्रदान करते हैं जो समेकित परिणाम में सम्मलित कलनविधि सबसे ठोस होती हैं।[citation needed] उदाहरण के लिए, ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस) और सिक्योर सॉकेट्स लेयर (एसएसएल) के पुराने संस्करणों में संयोजित एमडी5 और एसएचए-1 रकम का उपयोग किया जाता है।[13][14] यह सुनिश्चित करता है कि हैश फ़ंक्शंस में से किसी में संघट्ट खोजने का विधी दोनों हैश फ़ंक्शंस द्वारा संरक्षित डेटा को पराजित नहीं करता है।[citation needed]

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

क्रिप्टोग्राफ़िक हैश कलनविधि

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

एमडी 5

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

एसएचए-1

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

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

आरआईपीईएमडी-160

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

व्हर्लपूल

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

एसएचए-2

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

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

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

एसएचए-3

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

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

ब्लेक2

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

पैच

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

क्रिप्टोग्राफिक हैश कलनविधि पर अटैक

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

यहां तक ​​​​कि यदि हैश फ़ंक्शन कभी नहीं तोड़ा गया है, तो क्रिप्टोग्राफ़िक अटैक कमजोर संस्करण के खिलाफ अटैकर को उपलब्ध जानकारी विशेषज्ञों के विश्वास को कम कर सकती है। उदाहरण के लिए, अगस्त 2004 में एमडी5 सहित कई तत्कालीन लोकप्रिय हैश फ़ंक्शंस में संघट्ट पाए गए।[19] इन कमजोरियों ने कमजोर हैश कार्यों से प्राप्त ठोस कलनविधि की सुरक्षा पर सवाल उठाया - विशेष रूप से, एसएचए-1 (एसएचए-0 का ठोस संस्करण), आरआईपीईएमडी-128, और आरआईपीईएमडी-160 (आरआईपीईएमडी के दोनों ठोस संस्करण)।[20]

12 अगस्त 2004 को, जौक्स, कैरिबॉल्ट, लेमुएल और जल्बी ने पूर्ण एसएचए-0 कलनविधि के लिए संघट्ट की घोषणा की।[15] जौक्स एट अल चाबाउद और जौक्स अटैक के सामान्यीकरण का उपयोग करके इसे पूरा किया था। उन्होंने पाया कि संघट्ट में जटिलता थी 251 और 256 इटेनियम 2 प्रोसेसर वाले सुपर कंप्यूटर पर अधिकतर 80,000 सीपीयू घंटे लगे - जो सुपरकंप्यूटर के 13 दिनों के पूर्णकालिक उपयोग के बराबर है।[citation needed]

फरवरी 2005 में, एसएचए-1 पर अटैक की सूचना मिली थी जो अधिकतर 2 में टकराएगा69 हैशिंग ऑपरेशंस, 2 के अतिरिक्त80 160-बिट हैश फ़ंक्शन के लिए अपेक्षित है। अगस्त 2005 में, एसएचए-1 पर और अटैक की सूचना मिली थी जो 2 में संघट्टों को खोजेगा63 संचालन। एसएचए-1 की अन्य सैद्धांतिक कमजोरियां ज्ञात हैं:[21][22] और फरवरी 2017 में गूगल ने एसएचए-1 में संघट्ट की घोषणा की।[23] सुरक्षा शोधकर्ता अनुशंसा करते हैं कि नए अनुप्रयोग एसएचए-2 जैसे एसएचए परिवार के बाद के सदस्यों का उपयोग करके या यादृच्छिक हैशिंग जैसी तकनीकों का उपयोग करके इन समस्याओं से बच सकते हैं।[24] जिसे संघट्ट प्रतिरोध की आवश्यकता नहीं है।

एक सफल, प्रायोगिक अटैक ने 2008 में ट्रांसपोर्ट लेयर सिक्योरिटी के प्रमाणपत्रों के भीतर उपयोग किए गए एमडी5 को तोड़ दिया था।[25]

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

हैश किए गए पासवर्ड पर अटैक

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

चूंकि, अधिकांश लोग पूर्वानुमानित तरीकों से पासवर्ड चुनते हैं। सामान्य पासवर्डों की सूची व्यापक रूप से परिचालित की जाती है और कई पासवर्ड इतने छोटे होते हैं कि यदि तेजी से हैश का उपयोग किया जाता है तो सभी संभावित संयोजनों का परीक्षण किया जा सकता है।[27] सॉल्ट (क्रिप्टोग्राफी) का उपयोग कुछ अटैक को रोकता है, जैसे प्रीकंप्यूटिंग हैश मूल्य की फाइलें बनाना रेनबो सूची लेकिन हाई-एंड ग्राफिक्स प्रोसेसर के साथ प्रति सेकंड 100 बिलियन परीक्षण के क्रम में खोज संभव है, जिससे सॉल्ट के साथ भी सीधा अटैक संभव हो जाता है।[28][29] युनाइटेड स्टेट्स मानक और प्रौद्योगिकी का राष्ट्रीय संस्थान विशेष हैश का उपयोग करके पासवर्ड संग्रहीत करने की अनुरोध करता है जिसे प्रमुख व्युत्पन्न कार्य (केडीएफ) कहा जाता है जो कि क्रूर बल की खोजों को धीमा करने के लिए बनाया गया है।[30]: 5.1.1.2  स्लो हैश में पीबीकेडीएफ2, बीक्रिप्ट, स्क्रिप्ट, आर्गन2, बैलून हैशिंग और यूनिक्स क्रिप्ट के कुछ हालिया मोड सम्मलित हैं। केएसएफएस के लिए जो निष्पादन को धीमा करने के लिए कई हैश करते हैं, एनआईएसटी 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.

बाहरी संबंध