AES: پرکاربردترین استاندارد رمزنگاری متقارن

AES: پرکاربردترین استاندارد رمزنگاری متقارن
بدون نظر, ۰۶/۰۱/۱۳۹۸, توسط , در موبایل

واحد خبر mobile.ir : پس از پرداختن به مبحث رمزنگاری داده‌ها در دستگاه‌های همراه بهتر دیدیم تا با توجه به اهمیت و کاربرد بالای استاندارد AES در زمینه رمزنگاری داده‌ها، مطلبی را به معرفی و تشریح این الگوریتم اختصاص دهیم. این استاندارد که شامل یک الگوریتم رمزنگاری بلاکی با کلید متقارن می‌شود، سال‌هاست به عنوان الگوریتم رسمی رمزنگاری داده‌ها در دولت فدرال امریکا برای محافظت از اطلاعات حساس مورد استفاده قرار می‌گیرد. هم‌چنین با استقبال بخش خصوصی، امروزه این استاندارد به صورتی گسترده در انواع سیستم‌های ارتباطی، فناوری‌های همراه و شرکت‌های تجاری به کار گرفته می‌شود.

Advanced Encryption Standard aka AES Overview

پیدایش AES

موسسه ملی استانداردها و تکنولوژی امریکا موسوم به NIST در دهه ۷۰ میلادی استاندارد DES را به عنوان راه‌کار رسمی سازمان‌های دولتی این کشور برای رمزنگاری داده‌ها معرفی نمود. این استاندارد که توسط متخصصین شرکت IBM طراحی شده بود، از یک الگوریتم رمزنگاری متقارن با کلیدی به طول ۵۶ بیت بهره می‌گرفت. پیشرفت تدریجی توان پردازشی کامپیوترها و طول نسبتا کوتاه کلید رمزنگاری DES، آسیب‌پذیری این استاندارد را در مقابل حملات مختلف از جمله brute force به دنبال داشت. برای اثبات این موضوع در ژانویه سال ۱۹۹۹ میلادی وب‌سایت distributed.net با همکاری Electronic Frontier Foundation در آزمایشی عمومی موفق به شکستن کلید رمزنگاری DES در کم‌تر از ۲۴ ساعت گردید. برای حل این مشکل در اواخر دهه ۹۰ میلادی به صورت موقت نسخه ارتقا یافته DES با نام ۳DES یا Triple-DES در سطحی گسترده به جای این الگوریتم به کار گرفته شد. در سیستم رمزنگاری Triple-DES برای افزایش امنیت، داده‌ها ۳ مرتبه با استفاده از ۳ کلید متفاوت مورد رمزنگاری قرار می‌گرفت.

همچنین در همان سال‌ها انتخاب جایگزینی مناسب برای استاندارد DES در دستور کار موسسه NIST قرار گرفت. برای این منظور NIST با انتشار بیانیه‌ای عمومی اعلام نمود که فرآیند انتخاب الگوریتم رمزنگاری آینده دولت فدرال امریکا غیرمحرمانه بوده و با کمک متخصصین رمزنگاری از سرتاسر جهان انجام خواهد شد. در این بیانیه تاکید شده بود که این الگوریتم بایستی قادر باشد اطلاعات حساس و محرمانه دولتی را حتی در قرن ۲۱ میلادی به خوبی و با امنیت بالا رمزنگاری نماید. دیگر مشخصه‌های مورد نظر برای این الگوریتم عبارت بود از پیاده‌سازی راحت در سطح نرم‌افزار و سخت‌افزار، امکان استفاده در دستگاه‌های کوچک و مقاومت بالا در برابر انواع حملات. موسسه NIST با انتشار مشخصات و شرایط لازم، از متخصصین رمزنگاری خواست تا الگوریتم‌های پیشنهادی خود را جهت شرکت در رقابت برای کسب عنوان "استاندارد پیشرفته رمزنگاری" یا همان AES – مخفف عبارت Advanced Encryption Standard — معرفی نمایند. در این فراخوان ذکر شده بود که الگوریتم‌های شرکت‌کننده بایستی عملیات رمزنگاری را با کلید متقارن و به صورت بلوکه‌ای انجام دهند. چنین الگوریتم‌هایی به جای آن‌که داده‌ها را کَرَکتِر به کَرَکتِر (character by character) رمزنگاری نمایند، این کار به صورت بلوکه‌ای انجام می‌دهند. شرایط مورد نظر NIST برای الگوریتم AES آن بود که قادر باشد داده‌ها را در قالب بلوکه‌هایی ۱۲۸ بیتی و با استفاده از کلید‌های ۱۲۸، ۱۹۲ و ۲۵۶ بیتی رمزنگاری نماید. برخی دیگر از شرایط الگوریتم‌های شرکت‌کننده در این رقابت عبارت بود از:

• امنیت: قدرت امنیتی الگوریتم‌ها به عنوان مهم‌ترین فاکتور در این رقابت مورد بررسی قرار گرفت. برای این منظور توانایی مقاومت هر الگوریتم در برابر حملات مختلف، با دیگر الگوریتم‌های شرکت‌کننده مقایسه ‌گردید.

• کارایی: الگوریتم‌های کاندید شده از نظر بهینگی در مصرف توان محاسباتی و فضای حافظه‌ مورد ارزیابی قرار گرفتند.

• هزینه: الگوریتم برگزیده در این رقابت با کسب عنوان AES به صورت غیر انحصاری، بدون حق امتیاز و کاملا رایگان در سطح جهانی عرضه می‌گردد.

• پیاده‌سازی: الگوریتم‌های شرکت‌کننده از نظر قابلیت انعطاف و سهولت پیاده‌سازی در سطح نرم‌افزار و سخت‌افزار مورد ارزیابی و مقایسه قرار گرفتند.

Advanced Encryption Standard aka AES Overview

با شروع این رقابت ۱۵ الگوریتم رمزنگاری کلید متقارن برای تحلیل و ارزیابی اولیه توسط جامعه جهانی رمزنگاری انتخاب گردیدند. موسسه NIST در ماه آگوست سال ۱۹۹۹ با اتمام فرآیند ارزیابی اولیه اقدام به معرفی ۵ الگوریتم برگزیده برای شرکت در مرحله دوم این رقابت نمود. الگوریتم‌های انتخاب شده توسط این موسسه عبارت بودند از:

• MARS، توسعه یافته توسط تیم بزرگ تحقیقاتی شرکت IBM امریکا

• RC6، محصول شرکت امنیتی RSA که پیش از آن نیز الگوریتم رمزنگاری موفقی از نوع نامتقارن را با نام RSA توسعه داده بود

• Rijndael، طراحی شده توسط دو متخصص رمزنگاری بلژیکی‌تبار با نام‌های Vincent Rijmen و Joan Daemen

• Serpent، طراحی شده توسط Ross Anderson، Eli Biham و Lars Knudsen

• Twofish، طراحی شده توسط Bruce Schneier و یک تیم بزرگ از محققین Counterpane Internet Security

برای بررسی همه‌جانبه الگوریتم‌های نامزد شده، متخصصین جامعه رمزنگاری از سرتاسر دنیا دست به دست هم دادند تا در فرآیندی طولانی و دقیق با انجام آزمایش‌ها، حملات مختلف، بحث‌ و تبادل نظر، نقاط ضعف و آسیب‌پذیری‌های احتمالی این الگوریتم‌ها را شناسایی نموده و بهترین گزینه‌ را انتخاب نمایند. تمامی الگوریتم‌های راه یافته به مرحله نهایی با استفاده از زبان‌های برنامه‌نویسی C و Java پیاده‌سازی گردیده و سپس تحت شرایطی یک‌سان از نظر امنیت کلید، سرعت و سهولت پیاده‌سازی، مقاومت در برابر حملات مختلف، و هم‌چنین کارایی و امنیت در عملیات رمزگذاری و رمزگشایی داده‌ها مورد ارزیابی قرار گرفتند. علاوه بر بررسی نمونه نرم‌افزاری این الگوریتم‌ها، تمامی این آزمایش‌ها و تحلیل‌ها روی نسخه پیاده‌سازی‌شده هر الگوریتم در سطح سخت‌افزار نیز انجام گرفت. سرانجام در اکتبر سال ۲۰۰۰ موسسه NIST با اعلام پایان رقابت میان الگوریتم‌های نامزد شده، الگوریتم Rijndael را پیروز این میدان معرفی نمود. پس از آن، بررسی‌های تکمیلی و انجام اصلاحات مختلف روی این الگوریتم ۲ سال دیگر به طول انجامید. در نهایت الگوریتم Rijndael از سال ۲۰۰۲ میلادی با عنوان "استاندارد پیشرفته رمزنگاری" یا AES به تایید دولت فدرال امریکا، سازمان بین‌المللی استاندارد (ISO) و کمیسیون بین‌المللی الکترونیک (IEC) رسید. در سال ۲۰۰۳ نیز دولت امریکا اعلام نمود که از آن پس آژانس‌هایی دولتی هم‌چون NASA و NSA می‌توانند رمزنگاری اطلاعات محرمانه خود را با استفاده از AES انجام دهند. از آن زمان تا کنون این استاندارد تنها الگوریتم رمزنگاری‌ عمومی است که توسط آژانس امنیت ملی امریکا برای محافظت از اسناد محرمانه در بالاترین سطح مورد تایید قرار دارد.

به‌کارگیری موفقیت‌آمیز این الگوریتم توسط دولت امریکا و تایید آن توسط موسسه‌های مختلف بین‌المللی موجب گردید تا استفاده از آن در سطح جهانی به سرعت گسترش یافت. به‌علاوه، فرآیند شفاف انتخاب و آماده‌سازی این الگوریتم موجب شد تا AES در سطحی بالا مورد اعتماد متخصصین رمزنگاری و امنیت قرار گیرد. چنین شرایطی سبب شد تا این الگوریتم طی مدتی کوتاه به محبوب‌ترین استاندارد رمزنگاری کلیدمتقارن در سطح جهان بدل شود. استاندارد AES از الگوریتم قدرتمند‌تر و کلید‌های طولانی‌تری نسبت به DES و ۳DES بهره‌مند بوده و در نتیجه از امنیت بالاتری برخوردار است. این الگوریتم هم‌چنین عملیات رمزگذاری و رمزگشایی داده‌ها را با سرعت بیش‌تری نسبت به دو استاندارد مذکور انجام می‌دهد. همین خصوصیت AES را به ابزاری ایده‌آل برای رمزنگاری داده‌ها در کاربردهای نرم‌افزاری و سیستم‌های سخت‌افزاری هم‌چون firewallها و routerها که به تاخیر پایین و گذردهی بالا نیازمند هستند بدل می‌سازد. این استاندارد امروزه در انواع سرویس‌های نرم‌افزاری، دستگاه‌های هوشمند و پروتکل‌های ارتباطی مورد استفاده قرار می‌گیرد.

Advanced Encryption Standard aka AES Overview

ماهیت و روش کار AES

استاندارد AES از یک الگوریتم رمزنگاری بلوکه‌ای با کلید متقارن بهره می‌گیرد که قادر است داده‌ها را در قالب بلوکه‌های ۱۲۸ بیتی و با استفاده از کلیدهایی به طول ۱۲۸، ۱۹۲ یا ۲۵۶ بیت رمزنگاری نماید. الگوریتم اصلی Rijndael به شکلی طراحی شده بود تا بتواند از اندازه بلاک‌ها و کلیدهای مختلف پشتیبانی نماید. اما در جریان فرآیند استانداردسازی و به منظور حفظ انسجام، از این قابلیت چشم‌پوشی شده و در استاندارد AES به یک اندازه بلاک ثابت و سه طول کلید مشخص اکتفا گردید. هم‌چون ۳DES که داده‌ها را در ۳ نوبت رمزنگاری می‌نماید، الگوریتم AES نیز از یک فرآیند چندمرحله‌ای برای این منظور بهره‌ می‌گیرد. با این تفاوت که تعداد مراحل رمزنگاری داده‌ها در AES به مراتب بیش‌تر بوده و بسته به طول کلید مورد استفاده، متغیر است. به این ترتیب که داده‌ها هنگام استفاده از کلیدهای ۱۲۸، ۱۹۲ و ۲۵۶ بیتی به ترتیب طی ۱۰، ۱۲ و ۱۴ مرحله رمزنگاری می‌گردند. متن ساده پیام به صورت بلوکه-به-بلوکه وارد رمزنگار گردیده و در هر یک از مراحل رمزنگاری دست‌خوش تغییراتی هم‌چون جابجایی، تعویض و ترکیب کَرَکتِرها (حروف، اعداد و علامت‌ها) می‌شود.

AES از جمله سیستم‌های رمزنگاری با کلید متقارن محسوب می‌شود. در این نوع الگوریتم‌ها از کلیدی واحد برای عملیات رمزگذاری و رمزگشایی داده‌ها استفاده می‌شود. بنابراین فرستنده و گیرنده بایستی از یک کلید مشترک برای تبادل پیام‌های رمزنگاری‌شده بهره گیرند. در طرف فرستنده پیام عادی طی ۱۰ تا ۱۴ مرحله رمزنگاری شده و به مجموعه‌ای به‌هم‌ریخته و نامفهوم از حروف، اعداد و علامت‌ها تبدیل می‌گردد. سپس گیرنده قادر خواهد بود تا با کمک کلید رمزنگاری که پیش‌تر با او به اشتراک گذاشته شده است، این متن نامفهوم را به پیام اصلی تبدیل نماید. استفاده از کلیدهای بزرگ‌تر امنیت بالاتری را برای داده‌ها به ارمغان می‌آورد. به عنوان نمونه، اسناد محرمانه آژانس‌های دولتی امریکا به کمک AES-192 و AES-256 رمزنگاری می‌شوند.

Advanced Encryption Standard aka AES Overview

کاربردهای AES

اگرچه AES توسط موسسه استاندارد و فناوری امریکا برای به‌کارگیری به عنوان الگوریتم رسمی رمزنگاری اسناد محرمانه دولتی آن کشور استانداردسازی گردید، اما از همان ابتدا به عنوان یک الگوریتم متن‌باز و غیرانحصاری در اختیار عموم قرار دارد. امنیت و کارایی مناسب در کنار مقبولیت گسترده آن در میان متخصصین رمزنگاری موجب شده است تا بسیاری از سازمان‌های دولتی، نهادهای امنیتی و نظامی، شرکت‌های خصوصی و کاربران عادی در سرتاسر دنیا از استاندارد AES برای رمزنگاری داده‌های حساس و محرمانه خود بهره گیرند. امروزه کاربران عادی می‌توانند به راحتی از طریق وب به ابزارهای رمزنگاری AES دسترسی پیدا کنند. به عنوان مثال در وب‌سایت AES Encryption کاربران می‌توانند به راحتی با وارد کردن متن پیام و کلید رمزنگاری دل‌خواه خود در جعبه‌های متنی مربوطه، طول کلید رمزنگاری را مشخص نموده و با کلیک روی یک دکمه اقدام به رمزگذاری یا رمزگشایی پیام مورد نظر نمایند. بدون شک این نوع رمزنگاری از طریق یک رابط تحت وب راهکار امن و مطلوبی برای سازمان‌های دولتی و شرکت‌های تجاری نبوده و آن‌ها به طور معمول ابزار رمزنگاری مورد نیاز خود را به صورت داخلی بر مبنای استاندارد AES پیاده‌سازی می‌نمایند.

این استاندارد هم‌چنین به شکلی گسترده برای انتقال امن فایل‌ها و پیام‌های کاربران روی بستر اینترنت مورد استفاده قرار می‌گیرد. به عنوان مثال هنگامی که از طریق پروتکل HTTPS – نسخه امن پروتکل وب HTTP — اقدام به باز کردن صفحات وب می‌کنید، برای انتقال فایل‌ها و اطلاعات مربوطه از رمزنگاری AES استفاده می‌شود تا بدین ترتیب ارتباط برقرار شده در مقابل آسیب‌های امنیتی مختلف به ویژه حملات man-in-the-middle یا "فرد میان‌جی" مقاوم باشد. این استاندارد در تامین امنیت روترهای وای-فای که امروزه همه‌جا مورد استفاده قرار می‌گیرند نیز نقشی کلیدی ایفا می‌کند. AES در کنار پروتکل محبوب WPA2 وظیفه تایید هویت و تشخیص کاربران مجاز را برای متصل شدن به وای-فای بر عهده می‌گیرد. اگر پیش از این اقدام به راه‌اندازی و تنظیم روترهای وای-فای نموده باشید، به احتمال فراوان این قابلیت را تحت عنوان AES/WPA2 مشاهده نموده‌اید. علاوه بر این، اغلب استانداردها و نرم‌افزارهای فشرده‌سازی فایل‌ها از جمله WinZip، WinRAR و ۷-Zip برای حفظ امنیت داده‌های فشرده‌شده از استاندارد AES بهره می‌گیرند.

AES در بسیاری از پروتکل‌های انتقال فایل معروف و پرکاربرد هم‌چون FTPS ،SFTP ،OFTP،  AS2 و WebDAVS به شکل‌های مختلف مورد استفاده قرار می‌گیرد. بسیاری از این پروتکل‌ها برای رمزنگاری امن و سریع داده‌ها از یک الگوریتم رمزنگاری نامتقارن یا کلید-عمومی در کنار الگوریتم AES بهره می‌گیرند. بر خلاف سیستم‌های رمزنگاری متقارن که از کلیدی واحد برای رمزگذاری و رمزگشایی پیام‌ها استفاده می‌نمایند، سیستم‌های رمزنگاری متقارن از دو کلید عمومی و خصوصی برای انجام عملیات رمزنگاری برخوردارند. در این روش پیام ارسالی در مبدا با استفاده از کلید عمومی کامپیوتر مقصد رمزگذاری گردیده و تنها به کمک کلید خصوصی متناظر با آن (کلید خصوصی مقصد) قابل رمزگشایی خواهد بود. الگوریتم‌های رمزنگاری متقارن و نامتقارن نقاط قوت و ضعف خاص خود را دارند. روش‌های رمزنگاری متقارن هم‌چون AES نسبت به انواع نامتقارن از سرعت و کارایی بالاتری در عملیات رمزگذاری و رمزگشایی برخوردار بوده و در عوض به دلیل استفاده از کلید رمزنگاری اشتراکی امنیت و قابلیت اطمینان پایین‌تری دارند. به همین دلیل بسیاری از روش‌های امن انتقال داده‌ها در بستر اینترنت که مبتنی بر پروتکل‌های SSL/TLS و SSH هستند، از استاندارد AES برای رمزگذاری و رمزگشایی پیام اصلی استفاده نموده و از یک الگوریتم رمزنگاری نامتقارن برای انتقال امن کلید AES بهره می‌گیرند.

Advanced Encryption Standard aka AES Overview

مقاومت AES در برابر حملات

از زمان نهایی شدن فرآیند انتخاب الگوریتم AES در سال ۲۰۰۰، فعالیت‌های تحقیقاتی زیادی با تمرکز بر شناسایی آسیب‌‌پذیری‌های این استاندارد و طراحی حملات مختلف روی آن صورت گرفته است. اما تاکنون هیچ‌یک از این حملات موفقیتی قابل توجهی در رمزگشایی داده‌های رمزشده با استاندارد AES به دست نیاورده‌اند. آخرین و بزرگ‌ترین حمله موفقیت‌آمیز از نوع brute-force که به صورت علنی روی یک الگوریتم رمزنگاری بلوکه‌ای انجام گرفت، در سال ۲۰۰۶ میلادی توسط distributed.net و علیه الگوریتم RC5 با کلید رمزنگاری ۶۴ بیتی بوده است. لازم به توضیح است که در حملاتی از نوع brute-force با تولید پی‌در‌پی تمامی حالت‌های ممکن برای کلید رمزنگاری تلاش می‌شود تا یک بلوکه رمزگذاری شده از داده‌ها را با هر یک از این کلیدهای تولید شده رمزگشایی نمود تا در نهایت به کلید اصلی دست یافت. در حال حاضر اغلب متخصصین علم رمزنگاری توافق دارند که با فناوری سخت‌افزاری موجود در دنیای کامپیوتر یک حمله brute-force موفق روی بلوکه‌های رمزگذاری شده با الگوریتم AES، حتی در حالت استفاده از کلید رمزنگاری ۱۲۸ بیتی، میلیاردها سال به طول خواهد انجامید. البته در سال ۲۰۱۱ چند محقق با انتشار مقاله‌ای نشان دادند که با به‌کارگیری روشی به نام حمله Biclique (بیکلیک) می‌توان کلید رمزنگاری AES را در حدود ۱ تا ۲ درصد سریع‌تر از حمله‌های brute-force به دست آورد. اما هم‌چنان با توجه به زمان بسیار زیاد مورد نیاز و پیچیدگی محاسباتی بالا برای دست یافتن به کلید رمزنگاری، این روش نیز در عمل تهدیدی برای این استاندارد به شمار نمی‌رود. بنابراین در شرایط کنونی چنان‌چه استاندارد AES به درستی پیاده‌سازی شود، هیچ روش شناخته‌شده‌ای برای حمله موفق و دست‌یابی به اطلاعات رمزنگاری شده توسط این الگوریتم وجود ندارد.

Advanced Encryption Standard aka AES Overview

اگرچه ممکن است با توجه به محدودیت‌های سخت‌افزاری موجود، این الگوریتم روی کاغذ غیر قابل نفوذ به نظر برسد اما این بدان معنی نیست که هر سیستم مبتنی بر AES به طور کامل امن خواهد بود. حملاتی از نوع side-channel قادرند تا با بهره‌گیری از نقاط ضعف مربوط به پیاده‌سازی این استاندارد در محصولات مختلف، کلید مورد استفاده برای رمزنگاری داده‌ها را به‌دست آورند. چنین حملاتی سعی می‌کنند با شناسایی نقاط آسیب‌پذیر احتمالی در سخت‌افزار و نرم‌افزار یک محصول مشخص، به سیستم رمزنگاری نفوذ پیدا کنند. برخی از این نوع حملات از راه اندازه‌گیری زمان مورد نیاز برای انجام پردازش‌های مختلف، تغییر در مصرف برق سخت‌افزار در زمان انجام پردازش‌ها و حتی از طریق جذب تشعشعات الکترومغناطیسی نشت شده از سخت‌افزار سیستم، اطلاعات مورد نیاز خود را کسب می‌کنند. البته بسیاری از پردازنده‌های امروزی با برخورداری از دستورالعمل‌‌های سخت‌افزاری درون‌سازی‌شده برای رمزنگاری AES امکان محافظت در مقابل حملات side-channel مبتنی بر زمان‌بندی را فراهم می‌آورند. 

برچسب ها :
mobile.ir

درباره آریا پارسا

چند ساله که برنامه نویسی می کنم. به دنیای دیجیتال و وب بسیار علاقه مندم و سعی می کنم هر روز در دیجی وبی مطالب مفیدی را برای شما دوستان ارسال کنم.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *