MAC (Message Authentication Code) एक सुरक्षा कोड या टैग है जिसे प्रेषक द्वारा प्राप्तकर्ता को भेजे गए संदेश में जोड़ा जाता है ताकि संदेश प्रमाणीकरण और अखंडता (संदेश में कोई संशोधन नहीं) सुनिश्चित की जा सके।
MAC की विशेषताएं
- MAC मैसेज डाइजेस्ट (MD) के समान है, सिवाय इसके कि यह संदेश को प्रमाणित करने के लिए सममित कुंजी क्रिप्टोग्राफी प्रक्रिया की आवश्यकता होती है, यानी वही कुंजी प्रेषक और प्राप्तकर्ता के बीच साझा की जाती है।
- इसे कीड हैश फंक्शन (Keyed Hash Function) या क्रिप्टोग्राफिक चेकसम (Cryptographic Checksum) भी कहा जाता है।
- MAC एल्गोरिदम संदेश और एक गुप्त कुंजी (जो केवल प्रेषक और प्राप्तकर्ता को ज्ञात होती है) को इनपुट के रूप में लेता है और MAC को आउटपुट के रूप में उत्पन्न करता है।
- MAC प्राप्तकर्ता को संदेश की अखंडता और प्रामाणिकता जांचने में सक्षम बनाता है (यानी, यह सही प्रेषक से आ रहा है या नहीं)।
- MAC नॉन-रिप्यूडिएशन (Non-Repudiation) प्रदान नहीं करता।
MAC के तीन मुख्य एल्गोरिदम
- कुंजी उत्पादन एल्गोरिदम (Key Generation Algorithm): यादृच्छिक रूप से एक कुंजी का चयन करता है।
- हस्ताक्षर एल्गोरिदम (Signing Algorithm): कुंजी और संदेश दिए जाने पर एक टैग उत्पन्न करता है।
- सत्यापन एल्गोरिदम (Verifying Algorithm): कुंजी और टैग दिए जाने पर संदेश की प्रामाणिकता जांचता है। यदि संदेश और टैग प्रामाणिक और मेल खाते हैं तो "स्वीकृत" लौटाता है, अन्यथा "अस्वीकृत"।
MAC की आवश्यकताएं
- डिजिटल फंड ट्रांसफर (EFT) में अखंडता: MAC का उपयोग आमतौर पर EFT में सूचना अखंडता सुनिश्चित करने के लिए किया जाता है। यह मान्य करता है कि संदेश प्रामाणिक है, यानी यह वास्तव में घोषित प्रेषक से आया है और रास्ते में इसमें कोई परिवर्तन नहीं हुआ है।
- सत्यापनकर्ता द्वारा परिवर्तन पहचान: कुंजी रखने वाला एक सत्यापनकर्ता प्रश्न में संदेश के तत्व में परिवर्तनों को पहचानने के लिए इसका उपयोग कर सकता है।
- वित्तीय खाता पहुंच: किसी भी प्रकार के वित्तीय खाते तक पहुंच के लिए आमतौर पर MAC की आवश्यकता होती है। बैंक, ब्रोकरेज फर्म, ट्रस्ट संगठन और अन्य जमा, निवेश या बीमा संगठन जो ऑनलाइन पहुंच प्रदान करते हैं, इन कोड का उपयोग करते हैं।
- कम्प्यूटेशनल असंभवता: यदि कोई विरोधी M और C(K, M) देखता है, तो उसके लिए कम्प्यूटेशनली असंभव होना चाहिए कि वह एक संदेश M' बना सके जैसे कि C(K, M') = C(K, M)।
- समान वितरण: C(K, M) को इस अर्थ में समान रूप से वितरित किया जाना चाहिए कि यादृच्छिक रूप से चयनित संदेश M और M' के लिए, संभावना है कि C(K, M) = C(K, M') 2⁻ⁿ है, जहां n MAC में बिट्स की संख्या है।
- ज्ञात परिवर्तन पर प्रतिरोध: मान लें कि M' M पर किसी ज्ञात परिवर्तन के बराबर है, यानी M' = f(M)। उदाहरण के लिए, f में एक या अधिक विशिष्ट बिट्स को इनवर्ट करना शामिल हो सकता है। उस स्थिति में, Pr[C(K, M) = C(K, M')] = 2⁻ⁿ।