क्रिप्टोग्राफिक हैश फ़ंक्शन
एक क्रिप्टोग्राफिक हैश फ़ंक्शन मनमाने इनपुट को एक छोटे निश्चित-लंबाई वाले डाइजेस्ट में इस तरह से संपीड़ित करता है जो एकतरफा और टकराव-प्रतिरोधी होता है, जो अखंडता, प्रमाणीकरण और कई उच्च-स्तरीय प्रोटोकॉल के लिए एक बुनियादी निर्माण खंड के रूप में कार्य करता है।
Definition
एक क्रिप्टोग्राफिक हैश फ़ंक्शन एक नियतात्मक फ़ंक्शन है जो मनमानी लंबाई के इनपुट को एक निश्चित-लंबाई वाले आउटपुट (डाइजेस्ट) में मैप करता है ताकि प्रीइमेज, सेकंड प्रीइमेज, या एक ही आउटपुट उत्पन्न करने वाले किन्हीं दो अलग-अलग इनपुट को खोजना असंभव हो।
Scope
यह विषय हैश फ़ंक्शन के सुरक्षा गुणों (प्रीइमेज, सेकंड-प्रीइमेज और टकराव प्रतिरोध), उनके आंतरिक निर्माण (मर्कल-डैमगार्ड, स्पंज), मानकीकृत परिवार SHA-2 और SHA-3, और अखंडता सत्यापन, पासवर्ड भंडारण, प्रतिबद्धता और प्रूफ-ऑफ-वर्क जैसे अनुप्रयोगों को शामिल करता है। यह जन्मदिन सीमा और MD5 और SHA-1 के भंग सहित क्रिप्टैनालिटिक हमलों को संबोधित करता है। इसमें कुंजीबद्ध प्रमाणीकरण कोड शामिल नहीं हैं, जिन्हें संदेश प्रमाणीकरण कोड के तहत माना जाता है, हालांकि कई MAC हैश फ़ंक्शन से बने होते हैं।
Core questions
- एक क्रिप्टोग्राफिक हैश फ़ंक्शन एक साधारण चेकसम या हैश टेबल फ़ंक्शन से किस प्रकार भिन्न है?
- प्रीइमेज, सेकंड-प्रीइमेज और टकराव प्रतिरोध अलग-अलग क्यों हैं, और वे कैसे संबंधित हैं?
- जन्मदिन विरोधाभास डाइजेस्ट लंबाई के आधे पर टकराव प्रतिरोध को क्यों बांधता है?
- मर्कल-डैमगार्ड और स्पंज निर्माण एक निश्चित आकार के संपीड़न को मनमानी इनपुट तक कैसे विस्तारित करते हैं?
- हैश फ़ंक्शन का उपयोग डेटा के प्रति प्रतिबद्धता, अखंडता को सत्यापित करने और पासवर्ड संग्रहीत करने के लिए कैसे किया जाता है?
Key concepts
- संदेश डाइजेस्ट
- प्रीइमेज प्रतिरोध
- सेकंड-प्रीइमेज प्रतिरोध
- टकराव प्रतिरोध
- जन्मदिन हमला
- मर्कल-डैमगार्ड निर्माण
- स्पंज निर्माण (केकाक)
- लंबाई-विस्तार हमला
- प्रूफ-ऑफ-वर्क
Key theories
- टकराव प्रतिरोध और जन्मदिन सीमा
- जन्मदिन विरोधाभास के कारण, एक n-बिट हैश पर एक सामान्य टकराव-खोज हमला लगभग 2^(n/2) कार्य में सफल होता है; इसलिए टकराव प्रतिरोध के लिए डाइजेस्ट को वांछित सुरक्षा स्तर से लगभग दोगुना (उदाहरण के लिए, 128-बिट सुरक्षा के लिए 256 बिट) की आवश्यकता होती है।
- पुनरावृत्त और स्पंज निर्माण
- मर्कल-डैमगार्ड प्रतिमान संदेश ब्लॉक पर एक निश्चित-इनपुट संपीड़न फ़ंक्शन को दोहराकर एक पूर्ण हैश बनाता है; SHA-3 (केकाक) द्वारा उपयोग किया जाने वाला स्पंज निर्माण एक बड़ी क्रमपरिवर्तन स्थिति से इनपुट को अवशोषित करता है और आउटपुट को निचोड़ता है, जिससे लंबाई-विस्तार की कमजोरियों से बचा जा सकता है।
Mechanisms
एक मर्कल-डैमगार्ड हैश संदेश को पैड करता है, इसे ब्लॉक में विभाजित करता है, और एक संपीड़न फ़ंक्शन को पुनरावृत्त रूप से लागू करता है जो प्रत्येक ब्लॉक को एक चल रहे चेनिंग मान में मिलाता है, अंतिम मान को डाइजेस्ट के रूप में आउटपुट करता है। SHA-3 का स्पंज निर्माण इसके बजाय संदेश ब्लॉक को Keccak-f फ़ंक्शन द्वारा अनुमत एक बड़ी स्थिति के हिस्से में XOR करके अवशोषित करता है, फिर डाइजेस्ट बिट्स को निचोड़ता है, जो सादे मर्कल-डैमगार्ड में निहित लंबाई-विस्तार संपत्ति से बचाता है।
Clinical relevance
हैश फ़ंक्शन सर्वव्यापी हैं: वे सॉफ़्टवेयर-डाउनलोड अखंडता को सत्यापित करते हैं, डिजिटल हस्ताक्षर को एंकर करते हैं (जो पूरे दस्तावेज़ को नहीं, बल्कि एक हैश पर हस्ताक्षर करते हैं), गिट और सामग्री-वितरण नेटवर्क में सामग्री को अनुक्रमित करते हैं, धीमी कुंजी-व्युत्पत्ति फ़ंक्शन (bcrypt, Argon2) के माध्यम से पासवर्ड भंडारण को सुरक्षित करते हैं, और ब्लॉकचेन के अंतर्निहित प्रूफ-ऑफ-वर्क और मर्कल ट्री प्रदान करते हैं। MD5 और SHA-1 टकराव प्रतिरोध के व्यावहारिक भंग ने इंटरनेट पर SHA-2 में प्रवासन को मजबूर किया।
Evidence & guidelines
SHA-2 (SHA-256, SHA-512) FIPS 180-4 में और SHA-3 FIPS 202 में निर्दिष्ट है; दोनों NIST-अनुमोदित हैं। MD5 और SHA-1 को प्रदर्शित टकराव हमलों (2017 का SHAttered SHA-1 टकराव एक मील का पत्थर है) के बाद सुरक्षा उपयोग के लिए बहिष्कृत कर दिया गया है। पासवर्ड भंडारण के लिए, मानक सादे हैशिंग के बजाय Argon2 जैसे मेमोरी-हार्ड फ़ंक्शन की सलाह देते हैं।
History
MD परिवार (रिवेस्ट का MD4 और MD5) और NSA-डिज़ाइन किया गया SHA-0/SHA-1 ने 1990 के दशक पर हावी रहा। ज़ियाओयुन वांग के टकराव हमलों (2004-2005) ने MD5 को भंग कर दिया और SHA-1 को कमजोर कर दिया, जिससे NIST की खुली SHA-3 प्रतियोगिता (2007-2012) को बढ़ावा मिला, जिसे बर्टोनी, डेमेन, पीटर्स और वैन एस्चे के केकाक स्पंज डिज़ाइन ने जीता। SHA-1 को 2017 में SHAttered टकराव द्वारा व्यावहारिक रूप से भंग कर दिया गया था।
Key figures
- Ralph Merkle
- Ivan Damgaard
- Guido Bertoni
- Joan Daemen
- Xiaoyun Wang
Related topics
Seminal works
- nist2015sha3
- katz2020
- menezes1996
Frequently asked questions
- मैं केवल पासवर्ड को हैश करके डाइजेस्ट क्यों नहीं संग्रहीत कर सकता?
- सादे क्रिप्टोग्राफिक हैश तेज़ होते हैं, जिससे हमलावर चोरी किए गए डेटाबेस के खिलाफ प्रति सेकंड अरबों अनुमान लगा सकते हैं। पासवर्ड भंडारण इसके बजाय जानबूझकर धीमे, सॉल्टेड, मेमोरी-हार्ड फ़ंक्शन (bcrypt, scrypt, Argon2) का उपयोग करता है ताकि प्रत्येक पासवर्ड को क्रूर-बल से तोड़ना महंगा हो।
- क्या SHA-256 अब टूट गया है क्योंकि SHA-1 टूट गया है?
- नहीं। SHA-1 और SHA-256 अलग-अलग एल्गोरिदम हैं; SHA-1 पर टकराव के हमले SHA-2 में स्थानांतरित नहीं होते हैं। SHA-256 अभी भी अटूट है और SHA-3 के साथ-साथ अनुशंसित सामान्य-उद्देश्य वाला हैश है।