What is HMAC (Hash-based Message Authentication Code)

What is HMAC (Hash-based Message Authentication Code):-

 यह traditional रूप से मैक बनाने का सबसे आम तरीका रहा है। क्रिप्टोग्राफ़िक हैश फ़ंक्शन से प्राप्त Mac evolved करने में रुचि बढ़ी है।  
1. क्रिप्टोग्राफ़िक हैश फ़ंक्शंस जैसे MD5 और SHA आमतौर पर सॉफ्टवेयर में डेस जैसे symmetric block cipher की तुलना में तेज़ी से execution होते हैं। 
2. क्रिप्टोग्राफ़िक हैश फ़ंक्शंस के लिए library code comprehensive रूप से उपलब्ध है।
AES के development और एन्क्रिप्शन एल्गोरिदम के लिए कोड की अधिक availability के साथ, ये विचार कम महत्वपूर्ण हैं, लेकिन hash-based mac रूप से उपयोग किया जा रहा है।
SHA जैसे हैश फ़ंक्शन को MAC (Message Authentication Codes) के रूप में उपयोग के लिए डिज़ाइन नहीं किया गया था और सीधे उस purpose के लिए उपयोग नहीं किया जा सकता है, क्योंकि यह एक secret key पर निर्भर नहीं करता है। इसमें एक secret key को शामिल करने के लिए हैं। एक हैश एल्गोरिथ्म वह है HMAC [BELL96a, BELL96b]। HMAC को RFC 2104 के रूप में जारी किया गया है, IP protection के लिए Implementation MAC के रूप में चुना गया है, और SSL जैसे अन्य इंटरनेट प्रोटोकॉल्स में उपयोग किया जाता है। HMAC को NIST standard (FIPS 198) के रूप में भी जारी किया गया है।

HMAC Design Objectives:-

• modifications के बिना, उपलब्ध हैश फ़ंक्शन का उपयोग करने के लिए। हैश फ़ंक्शन का उपयोग करने के लिए जो सॉफ़्टवेयर में अच्छा performance करते हैं और जिसके लिए code free रूप से उपलब्ध है। 
 • significant drop के बिना हैश फ़ंक्शन के मूल प्रदर्शन को protected करने के लिए। 
• सरल तरीके से keys का उपयोग करने और उन्हें संभालने के लिए। 
• Suitable के base पर authentication mechanism की ताकत का एक अच्छी तरह से समझने वाला Cryptographic analysis करने के लिए एम्बेडेड हैश फ़ंक्शन के बारे में assumptions।

HMAC की acceptance के लिए पहले दो object महत्वपूर्ण हैं। HMAC हैश फ़ंक्शन को "ब्लैक बॉक्स" के रूप में मानता है। इससे दो फायदे होते हैं। सबसे पहले, हैश फ़ंक्शन के मौजूदा implementation को HMAC को लागू करने में मॉड्यूल के रूप में उपयोग किया जा सकता है। इस तरह, HMAC कोड का बड़ा हिस्सा पहले से पैक किया जाता है और बिना किसी modifications के उपयोग के लिए तैयार होता है। 
 दूसरा, यदि किसी दिए गए हैश फ़ंक्शन को HMAC implementation में बदलने की इच्छा होती है, तो केवल मौजूदा हैश फ़ंक्शन मॉड्यूल को हटाने और नए मॉड्यूल में ड्रॉप करने की आवश्यकता होती है। यह तब किया जा सकता है जब एक तेज हैश फंक्शन desired हो। अधिक महत्वपूर्ण, यदि एम्बेडेड हैश फ़ंक्शन की सुरक्षा से compromise किया गया था, तो HMAC की सुरक्षा को केवल एम्बेडेड हैश फ़ंक्शन को अधिक सुरक्षित (जैसे, SHA को SHA के साथ बदलना) के साथ बदलकर बनाए रखा जा सकता है।
अंतिम डिजाइन purpose, अन्य प्रस्तावित हैश-based plans पर HMAC का मुख्य लाभ है। 

टिप्पणियाँ