رمزگذاری تأیید هویت

رمزگذاری تأیید هویت یا رمزگذاری اصالت سنجی شده  یک عملیات از نوع رمز قالبی است که به‌طور همزمان محرمانگی، جامعیت و اصالت سنجی را برای ما تضمین می‌کند. رمزگشایی و ارزیابی جامعیت در یک مرحله انجام می‌شوند.

نیاز به رمزگذاری اصالت‌سنجی شده وقتی به وجود آمد که مشاهده شد که ترکیب امن حالت محرمانگی و اصالت‌سنجی ممکن است به خطا منجر شود و کار دشواری است. این قضیه وقتی بیش‌تر تأیید شد که تعدادی حمله‌های عملی به پروتکل‌ها و برنامه‌هایی که اصالت‌سنجی را نادرست پیاده‌سازی کرده بودند یا حتی آن را پیاده‌سازی نکرده بودند، پیدا شد (مثل SSL/TLS).

شش رمزگذاری اصالت‌سنجی به وسیلهٔ ISO/IEC 19772:2009 استاندارد شده‌اند که عبارتند از OCB, Key Wrap, CCM, EAX, Encrypt-then-MAC و GCM. علاوه بر این‌ها تعداد بیش‌تری رمزگذاری اصالت‌سنجی به درخواست NIST توسعه یافته‌اند.

یک رمزگذاری اصالت‌سنجی باید دارای رابط‌های برنامه‌نویسی زیر باشد:

رمزگذاری:
 ورودی: یک متن، کلید و یک هدر اختیاری در متن که رمز نمی‌شود ولی در اصالت‌سنجی می‌آید.
 خروجی: یک متن رمزی و یک برچسب (تگ) که همان کد اصالت‌سنجی پیام است.

رمزگشایی:
 ورودی: یک متن رمزی، کلید و برچسب اصالت‌سنجی و یک هدر به صورت اختیاری
 خروجی: یک متن یا خطایی مبنی بر این که برچسب اصالت‌سنجی با متن رمزی یا هدر مطابق نیست.

بخش هدر برای این منظور در نظر گرفته می‌شود که اصالت‌سنجی و جامعیت را برای شبکه یا ذخیرهٔ فراداده فراهم کنیم که در آن‌ها نیاز به محرمانگی نیست ولی به اصالت‌سنجی نیاز داریم.

در یک سیستم رمزگذاری اصالت‌سنجی شده شرایط زیر برقرار است:
 در مقابل حملهٔ متن انتخابی دارای امنیت است.
 دارای جامعیت متن رمزی است؛ حمله‌کننده نمی‌تواند یک متن رمزی جدید (که قبلاً نپرسیده‌است) را ایجاد کند که به درستی رمزگشایی شود.

بر همین مبنا یک آزمایش برای امنیت این سیستم طراحی می‌شود:
 حمله‌کننده یک سری متن را به چالش‌گر می‌دهد و چالش‌گر رمز شده آن‌ها را به حمله‌کننده می‌دهد.
 سپس حمله‌کننده یک متن رمزی (که قبلاً آن را نپرسیده) را به چالش‌گر می‌دهد.
 اگر⊥≠ D(k,c) بود چالش‌گر بیت ۱ می‌دهد و اگر نه بیت صفر را بیرون می‌دهد. حمله‌کننده در این آزمون پیروز می‌شود اگر احتمال به دست آوردن ۱ در این آزمایش برایش غیر ناچیز باشد.

در یک سیستم رمزگذاری اصالت‌سنجی شدهٔ امن احتمال موفقیت حمله‌کننده در این آزمایش ناچیز است و سیستم می‌تواند در مقابل رمزهای ساختگی مقاوم باشد و از رمزگشایی آن‌ها خودداری کند. به این وسیله حمله‌کننده نمی‌تواند خودش یک متن رمزی دلخواه درست کند یا یک متن رمزی را عوض کند مگر اینکه از سیستم رمزگذاری اصالت‌سنجی شده برای رمز کردن استفاده کند بنابراین حمله‌کننده نمی‌تواند جامعیت یا اصالت‌سنجی پیام را به چالش بیندازد.

بسیاری از رمزگذاری‌های اصالت‌سنجی شده به وسیلهٔ رمزهای قالبی متقارن توسعه یافته‌اند. اگر چه رمزگذاری اصالت‌سنجی شده را می‌توان به وسیلهٔ ترکیب طرح‌های رمز و کد اصالت سنجی پیام(MAC) ایجاد کرد در صورتی که:
 طرح رمز به صورت معنایی تحت حمله متن انتخابی امن باشد.
 تابع کد اصالت سنجی پیام تحت شرط حملهٔ متن انتخابی غیرقابل تقلب باشد.

دو نفر به نام‌های Bellare و Namprempre در سال ۲۰۰۰ سه ترکیب مختلف این اولیه‌ها (کد اصالت سنجی پیام و رمز قالب متقارن) را تحلیل کردند و نتیجه گرفتند که رمز کردن یک پیام و به دنبال آن اجرای کد اصالت سنجی پیام روی متن رمزی امنیت در برابر حملهٔ متن رمزی انتخابی را فراهم می‌کند (در صورتی که دو ویژگی گفته شده بالا برای این اولیه‌ها برقرار باشد)

در سال ۲۰۱۳ مسابقه‌ای به نام سزار (CAESAR) اعلام شد که هدف آن طراحی رمزگذاری‌های اصالت‌سنجی شده بود و هم‌اکنون نیز ادامه دارد.

رویکردهای رمز گذاری اصالت‌سنجی شده

رمز-بعد-کد اصالت‌سنجی پیام 
طبق استاندارد ISO/IEC 19772:2009 این روشِ استاندارد برای رمزگذاری اصالت‌سنجی شده‌است. این تنها روشی است که بیش‌ترین تعریف امنیت در رمزگذاری اصالت‌سنجی شده را دارا است. البته در صورتی که کد اصالت سنجی پیام (MAC) به کار برده شده به‌طور قوی غیرقابل تقلب باشد. این رو در IPsec به کار برده شده‌است.

رمز و کد اصالت سنجی پیام 
این روش برای مثال در SSH به کار برده شده‌است. اگر چه رمز کردن و اجرای کد اصالت سنجی پیام روی متن اصلی دارای امنیت کافی نیست ولی با یک سری تغییرات می‌توان آن را در کاربرد SSH امن کرد.

کد اصالت‌سنجی پیام و بعد رمز 
این روش برای مثال در SSL/TLS به کار برده شده‌است. مثل حالت قبل گر چه اجرای کد اصالت سنجی پیام روی متن اصلی و رمز کردن روی متن اصلی دارای امنیت کافی نیست ولی در پیاده‌سازی SSL/TLS به خاطر کدگذاری‌ای که در کنار این مکانیسم به کار می‌رود دارای امنیت کافی است.

منابع 
http://en.wikipedia.org/wiki/Authenticated_encryption

Jonathan Katz and Yehuda Lindell (2007). Introduction to Modern Cryptography. CRC Press. .
CORON, J. S. —DODIS, Y. —MALINAUD, C. —PUNIYA, P. : Merkle-Damg˚ard revisited:
How to construct a hash function, in: Advances in Cryptology—CRYPTO ’05, Lecture
Notes in Comput. Sci. , Vol. 3621, Springer-Verlag, 2005

رمزگذاری
کدهای اصالت‌سنجی پیام