کد اصالت‌سنجی پیام

در رمزنگاری، یک کد اصالت سنجی پیام یا کد احراز هویت پیام عبارتست از تکه‌ی کوچکی از اطلاعات که برای اصالت سنجی یک پیام استفاده می‌شود.
یک الگوریتم MAC - که گاهی اوقات تابع درهم ساز رمزنگاری شده نامیده می‌شود - یک کلید رمز و یک پیام دلخواه را به عنوان ورودی برای اصالت سنجی دریافت می‌کند و یک MAC را – که گاهی اوقات از آن به عنوان برچسب نیز یاد می‌شود – به عنوان خروجی تحویل می‌دهد.
مقدار MAC هم‌زمان از صحت داده‌ی پیام و اصالت آن محافظت میکند. بدین ترتیب که فرد دارای کلید رمز می‌تواند هرگونه تغییرات را در محتوای پیام تشخیص دهد.
امنیت
گرچه توابع MAC شبیه به توابع درهم ساز رمزنگاری شده هستند، اما نیازمندی‌های امنیتی متفاوتی دارند. برای امن تلقی شدن، یک تابع MAC باید در برابر جعل واقعیت زیر حملات متن آشکار انتخاب شده مقاوم باشد. بدین معنا که اگر یک مهاجم کلید رمز را دارد و می‌تواند MAC را برای متون انتخاب شده تولید کند ، اما نتواند بدون انجام حجم غیرقابل دستیابی از محاسبات ، MAC را برای پیام‌های دیگر حدس بزند.
الگوریتم MAC با امضای دیجیتال تفاوت دارد ، چرا که مقادیر MAC تولید شده توسط فرستنده و گیرنده با استفاده از تنها یک کلید ایجاد می‌شود. و این بدان معناست که فرستنده و گیرنده باید قبل از برقرار کردن ارتباط ، روی یک کلید یکتا توافق کنند ، همان طور که در رمزگذاری متقارن انجام می‌شود. به همین دلیل ، MAC ویژگی عدم انکار را - که توسط امضای دیجیتال برای کلید رمز به اشتراک گذاشته شده در سطح شبکه ارائه می‌شود، - پشتیبانی نمی‌کند: هر کاربر که بتواند یک MAC را راستی آزمایی کند، قادر است برای دیگر پیام‌ها نیز MAC تولید کند. در مقابل، یک امضای دیجیتال با استفاده از کلید خصوصی تولید می‌شود، که رمزگذاری نامتقارن می‌باشد. از آنجا که به این کلید خصوصی فقط دارنده‌ی آن دسترسی دارد، امضای دیجیتال ثابت می‌کند که یک سند توسط همان دارنده‌ی کلید خصوصی امضا شده است. بنابراین امضای دیجیتال از ویژگی عدم انکار پشتیبانی می‌نماید.
کدهای صحت پیام
عبارت کد صحت پیام ( MIC) اغلب و مخصوصا در ارتباطات – جایی که MAC به عنوان کوته نوشت Media Access Control استفاده می‌شود - به جای MAC به کار برده می‌شود. گرچه برخی از نویسندگان MIC را با معنایی متفاوت از MAC به کار می‌برند؛ در استفاده آن‌ها از عبارت MIC ، از کلیدهای رمز استفاده نمی‌شود. این کمبود بدین معناست که هر MIC مورد نظر برای سنجش صحت پیام باید رمزگذاری شود یا در غیر این صورت در برابر مداخلات محافظت شود. الگوریتم‌های MIC چنین هستند که اگر یک پیام چندین بار به آن‌ها داده شود ، با فرض استفاده از همان الگوریتم، همواره یک MIC تولید می‌شود. برعکس، الگوریتم‌های MAC این‌گونه طراحی شده‌اند که برای یک پیام واحد، همان کلید رمز و همان بردار ارزش دهی اولیه ، همان الگوریتم MAC یکسان تولید کند.
الگوریتم MIC از کلیدهای رمز استفاده نمی‌کند، بنابراین نسبت به MAC قابلیت اعتماد بسیار کمتری برای صحت پیام ایجاد می‌کند.
از آنجا که MAC از کلیدهای رمز استفاده می‌کند، لزوما برای ارائه‌ی همان سطح از اطمینان، نیاز به رمزگذاری ندارد.
پیاده سازی
الگوریتم‌های MAC را می‌توان از روی دیگر بنیان‌های رمزنگاری ایجاد کرد مثل توابع درهم ساز رمزنگاری (HMAC) یا الگوریتم‌های قطعه رمز (OMAC, CBC-MAC , PMAC). اگر چه بسیاری از الگوریتم‌های MAC سریع مانند UMAC و VMAC بر مبنای درهم‌سازی جهانی (universal hashing) ساخته شده‌اند.
استانداردها
استانداردهای گوناگونی وجود دارد که الگوریتم‌های MAC را تعریف می‌کنند.مانند:
FIPS PUB 113 اصالت سنجی داده‌ی کامپیوتری – الگوریتمی بر مبنای DES تعریف می‌کند.
ISO/IEC 9797-1 مکانیزم‌هایی که از یک قطعه رمز استفاده می‌کنند.
ISO/IEC 9797-2 مکانیزم‌هایی که از یک تابع درهم ساز اختصاصی استفاده می‌کنند.
استانداردهای ISO/IEC 9797-1 و ISO/IEC 9797-2 مدل‌ها و الگوریتم‌های عمومی را تعریف می‌کنند که با هر قطعه رمز یا تابع درهم ساز و طیف گسترده‌ای از پارامترهای مختلف ، می‌توانند مورد استفاده قرار گیرند. این مدل‌ها و پارامترها امکانی را فراهم می‌کنند که الگوریتم‌های بسیار دقیق با انتصاب پارامترها تعریف شوند. برای مثال، الگوریتم FIPS PUB 113 از لحاظ عملی برابر است با ISO/IEC 9797-1 ،الگوریتم MAC 1 با روش پوشش 1 و یک الگوریتم قطعه رمز DES.
مراجع
IEEE 802.11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications
Fred B Schneider, Hashes and Message Digests, Cornell University
FIPS PUB 113 Computer Data Authentication
Federal Information Processing Standards Publications, Withdrawn
FIPS Listed by Number
پیام به همراه کد به گیرنده مورد نظر ارسال می‌شود.