संदेश प्रमाणीकरण कोड (मैसेज ऑथेंटिकेशन कोड)

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

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

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

एक सुरक्षित संदेश प्रमाणीकरण संहिता को ज्ञात-या चुने-संदेश की शर्तों के तहत मनमाने ढंग से, चयन या सभी संदेशों के लिए जाली उपनाम के लिए एक विरोधी द्वारा प्रयासों का विरोध करना चाहिए। कुंजी के ज्ञान के बिना दिए गए संदेश के वैध उपनाम की गणना करने के लिए संगणनात्मक रूप से अक्षम होना चाहिए, भले ही सबसे खराब स्थिति के लिए, हम मानते हैं कि विरोधी किसी भी संदेश के उपनाम को जानता है लेकिन प्रश्न में एक है। औपचारिक रूप से, एक संदेश प्रमाणीकरण संहिता (मैक) प्रणाली कुशल का एक तिहाई है कलन विधि (जी, एस, वी) संतोषजनक:
 * G (कुंजी-जनित्र) निविष्ट 1n पर कुंजी k देता है। जहाँ n सुरक्षा मापदंड है।
 * S (हस्ताक्षर) कुंजी k और निविष्ट श्रृंखला x पर एक उपनाम t निर्गत करता है।
 * V (सत्यापन) निविष्ट पर स्वीकृत या अस्वीकृत निर्गत: कुंजी k, श्रृंखला x और उपनाम t।

S और V को निम्नलिखित को पूरा करना चाहिए:


 * Pr [k ← G (1n), V ( k, x, S (k, x)) = स्वीकृत] = 1।

एक मैक अक्षम्य है अगर हर कुशल विरोधी A के लिए


 * Pr ['k ← G(1n), (x, t) ←, AS(k, · )(1n) x∉ प्रश्नचिह्न AS(k, · )(1n) V(k, x, t) = स्वीकृत] < उपेक्षा (n),

जहाँ एकS(k, · ) दर्शाता है कि A की भविष्यवाणी S(k, · ), और प्रश्नचिह्न (A) तक पहुंच है। एस(के, ·), 1 n) S पर A द्वारा किए गए प्रश्नों की स्थिति को दर्शाता है, जो n जानता है। स्पष्ट रूप से हमें आवश्यकता है कि कोई भी विरोधी सीधे श्रृंखला x को S पर प्रश्नचिह्न नहीं कर सकता है, अन्यथा उस विरोधी द्वारा एक वैध उपनाम आसानी से प्राप्त किया जा सकता है।

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

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

कार्यान्वयन
मैक कलन विधि को अन्य कूटलेखन आदिम से बनाया जा सकता है, जैसे कूटलेखन द्रुतान्वेषण फलन (HMAC के प्रकरण में) या बंद संकेताक्षर कलन विधि (OMAC, CCM, और PMAC) से। हालांकि यूएमएसी-वीएमएसी और पॉली1305-एईएस जैसे कई सबसे तेज मैक कलन विधि सार्वभौमिक द्रुतान्वेषण के आधार पर बनाए गए हैं। आंतरिक रूप से बंद द्रुतान्वेषण कलन विधि जैसे कि SipHash परिभाषा मैक द्वारा भी हैं; वे सार्वभौमिक-द्रुतान्वेषण आधारित एमएसीएस से भी तेज हो सकते हैं। इसके अतिरिक्त, मैक कलन विधि जानबूझकर दो या दो से अधिक कूटलेखन आदिम को जोड़ सकता है, ताकि सुरक्षा को बनाए रखा जा सके, भले ही बाद में उनमें से एक को असुरक्षित पाया गया हो। उदाहरण के लिए, ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) में, निविष्ट डेटा को हिस्सों में विभाजित किया जाता है, जिनमें से प्रत्येक को एक अलग द्रुतान्वेषण आदिम (SHA-1 और SHA-2) के साथ संसाधित किया जाता है, फिर मैक को निर्गत करने के लिए एक साथ XORed किया जाता है।

एक बार का मैक
सार्वभौमिक द्रुतान्वेषण और विशेष रूप से जोड़ीदार स्वतंत्र द्रुतान्वेषण फलन एक सुरक्षित संदेश प्रमाणीकरण संहिता प्रदान करते हैं जब तक कि कुंजी का उपयोग एक बार किया जाता है। इसे प्रमाणीकरण के लिए एक-समय निवास स्थान के रूप में देखा जा सकता है। सरलतम ऐसे जोड़ीदार स्वतंत्र द्रुतान्वेषण फलन को यादृच्छिक कुंजी द्वारा परिभाषित किया गया है,, और संदेश m के लिए MAC उपनाम की गणना इस रूप में की जाती है , जहां p प्रमुख है।

सामान्यतः, k-स्वतंत्र द्रुतान्वेषण फलन एक सुरक्षित संदेश प्रमाणीकरण संकेत प्रदान करते हैं, जब तक कि K-वे स्वतंत्र द्रुतान्वेषण कार्यों के लिए कुंजी का उपयोग k-बार से कम किया जाता है।

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

मानक
विभिन्न मानक मौजूद हैं जो मैक एल्गोरिदम को परिभाषित करते हैं। इसमे शामिल है: ISO/IEC 9797-1 और -2 सामान्य प्रतिरूप और कलन विधि को परिभाषित करते हैं जिनका उपयोग किसी भी बंद संकेताक्षर या द्रुतान्वेषण फलन और विभिन्न प्रकार के विभिन्न मापदंडों के साथ किया जा सकता है। ये प्रतिरूप और मापदंड को नामांकित करके अधिक विशिष्ट कलन विधि को परिभाषित करने की अनुमति देते हैं। उदाहरण के लिए, FIPS PUB 113 कलन विधि कार्यात्मक रूप से ISO/IEC 9797-1 मैक कलन विधि 1 के समतुल्य है जिसमें प्रसेचन विधि 1 और DES का बंद संकेताक्षर कलन विधि है । मैक के उपयोग का एक उदहारण
 * FIPS पब 113 कंप्यूटर डेटा प्रमाणीकरण, 2002 में वापस ले लिया, डेटा प्रमाणीकरण मानक के आधार पर एक कलन विधि को परिभाषित करता है।
 * FIPS PUB 198-1 कुंजी-द्रुतान्वेषण संदेश प्रमाणीकरण संकेत (HMAC)
 * NIST SP800-185 SHA-3 व्युत्पन्न कार्य: cSHAKE, KMAC, TupleHash, और ParallelHash
 * ISO/IEC 9797-1 तंत्र एक बंद संकेताक्षर का उपयोग कर
 * समर्पित द्रुतान्वेषण-फलन का उपयोग करके मानकीकरण के लिए अंतर्राष्ट्रीय संगठन/IEC 9797-2 तंत्र
 * मानकीकरण के लिए अंतर्राष्ट्रीय संगठन/IEC 9797-3 तंत्र एक सार्वभौमिक द्रुतांवेषण-फलन का उपयोग कर
 * मानकीकरण के लिए अंतर्राष्ट्रीय संगठन/आईईसी 29192-6 प्रभावहीन कूटलेखन - संदेश प्रमाणीकरण संकेत

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

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

बाहरी संबंध

 * RSA Laboratories entry on MACs
 * Ron Rivest lecture on MACs