موضوع مقاله: استاندارد رمزنگاری داده‌ها | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # استاندارد رمزنگاری داده‌ها | مقدمه: این الگوریتم این‌گونه عمل می‌کند که رشته‌ای از متن اصلی با طول ثابت را به عنوان ورودی می‌گیرد و پس از انجام یک سری اعمال پیچیده روی آن خروجی را که طولی برابر طول ورودی دارد تولید می‌کند. | ## بخش 1: استاندارد رمزنگاری داده‌ها | DES هم چنین از یک کلید برای ایجاد رمز استفاده می‌کند و تنها کسانی قادر به رمزگشایی خواهند بود که مقدار کلید را می‌دانند. اگرچه تحلیل‌هایی که دربارهٔ DES انجام شده است از هر روش رمز قطعه‌ای دیگری بیشتر است ولی عملی‌ترین حمله علیه این الگوریتم جستجوی جامع فضای کلید است. سه حمله تئوریکی برای این الگوریتم وجود دارند که زمان کمتری نسبت به جستجوی جامع فضای کلید نیاز دارند ولی این روشها در عمل امکان‌پذیر نیستند. با شکسته شدن الگوریتمDES این استاندارد در سال ۱۹۹۸ تمدید نشد و در سال ۲۰۰۱، الگوریتم AES به عنوان استاندارد جایگزین آن تصویب شد. این الگوریتم مانند DES یک الگوریتم رمزقطعه‌ای است ولی بر خلاف DES از ساختار فیستل استفاده نمی‌کند. در ژوئن سال ۲۰۰۳ دولت آمریکا اعلام کرد که از AES می‌توان برای حفاظت از اطلاعات رده‌بندی شده و سری نیز استفاده کرد. برای اطلاعات فوق سری و محرمانه باید از کلیدهایی با طول ۱۹۲ یا ۲۵۶ بیت استفاده کرد. در سال ۱۹۷۲ مؤسسه بین‌المللی استاندارد و فناوری آمریکا اعلام کرد که به یک الگوریتم برای حفاظت از اطلاعات دسته‌بندی نشده خود نیاز دارد. در سال ۱۹۷۳،NIST فراخوانی برای چنین الگوریتمی اعلام نمود ولی هیچ‌یک از الگوریتم‌هایی که در پاسخ به این فراخوان ارائه شدند شرایط لازم را نداشتند. دومین فراخوان در سال ۱۹۷۴ مطرح شد در این زمان IBM الگوریتم خود را مطرح نمود که به نظر می‌رسید می‌تواند نیازهای NIST را بر طرف کند. این الگوریتم به عنوان یک استاندارد فدرال در سال ۱۹۷۶ تصویب شد و در سال ۱۹۷۷ منتشر شد. با امکان‌پذیر شدن حمله جستجوی جامع فضای کلید برای این الگوریتم، سازمان ملی استاندارد و فناوری آمریکا در آغاز سال ۱۹۹۷اعلام کرد که برای تدوین استاندارد پیشرفته رمزنگاری تلاشی را آغاز کرده است. در سپتامبر همان سال این سازمان به‌طور رسمی فراخوانی را برای ارائه الگوریتم‌های رمزنگاری اعلام نمود. در کنفرانس اول، AES-1، ۱۵ الگوریتم کاندیدا انتخاب شدند، NIST از تمام دانشمندان و مؤسسه‌های علمی خواست که نظرات خود را در مورد این الگوریتم‌ها ارائه دهند. هم چنین NIST با کمک جامعه بین‌المللی رمزنگاری و تشکیل کمیته‌هایی، اقدام به بررسی قابلیتها و توانایی‌های الگوریتم‌های ارائه شده نمود. در اوت سال بعد، در سمینار دوم، AES-2، پنج الگوریتم انتخاب و برای رقابت نهایی معرفی شدند. کلید نیز شامل ۶۴ بیت است ولی در عمل تنها از ۵۶ بیت آن استفاده می‌شود و از ۸ بیت دیگر فقط برای چک کردن parity استفاده می‌شود. سپس یک سری اعمال پیچیده وابسته به کلید روی آن انجام می‌شود و در نهایت در معرض یک جایگشت نهایی (FP) قرار می‌گیرد. IP,FP معکوس هم هستند FP عملی که توسط IP انجام شده است را خنثی می‌کند؛ بنابراین از جنبه رمزنگاری اهمیت چندانی ندارند و برای تسهیل نمودن بار کردن قطعات داده در سخت‌افزارهای دهه ۱۹۷۰ استفاده شدند ولی اجرای DES در نرم‌افزار را کند کردند. قبل از دور اصلی، داده به دو بخش ۳۲ بیتی تقسیم می‌شود که این دو نیمه به‌طور متناوب مورد پردازش قرار می‌گیرند این تقاطع به عنوان شکل فیستل شناخته می‌شود. ساختار فیستل تضمین می‌کند که رمزگذاری و رمزگشایی دو رویه کاملاً مشابه هم هستند و تنها تفاوت آنها این است که زیر کلیدها در زمان رمزگشایی در جهت معکوس رمزگذاری به کار برده می‌شوند؛ و بقیه الگوریتم درهر دو یکسان است که این امر پیاده‌سازی رابه خصوص در سخت‌افزار بسیار آسان می‌کند و دیگر نیازی به الگوریتم‌های متفاوت برای رمزگذاری و رمزگشایی نیست. تابعی که خروجی IP را می‌گیرد وپس از شانزده مرحله ورودی FP را فراهم می‌کند تابع F نامیده می‌شود. این تابع یک ورودی ۳۲ بیتی و یک ورودی ۴۸ بیتی دارد و یک خروجی ۳۲ بیتی تولید می‌کند. بلاک ورودی شامل ۳۲ بیت که نیمه سمت چپ را تشکیل می‌دهد و با L نشان داده می‌شود و به دنبال آن ۳۲ بیت دیگر که نیمه راست را تشکیل می‌دهد و با R نمایش داده می‌شود است. اگر K یک بلاک ۴۸ بیتی باشد که از کلید اصلی ۶۴ بیتی مشتق شده است و خروجی یک دور با ورودی LR و خروجی L1R1 به صورت زیر تعریف می‌شود. | ## بخش 2: استاندارد رمزنگاری داده‌ها | کلید شانزدهم در مرحله اول، کلید پانزدهم در مرحله دوم و به همین ترتیب کلید اول در مرحله شانزدهم مورد استفاده قرار می‌گیرد. جایگزینی: بعد از ترکیب کلید هر قطعه داده به هشت بخش ۶ بیتی تقسیم می‌شود) قبل از پردازش توسط جعبه‌های جایگزینی (هر کدام از s-boxها ورودی ۶ بیتی خود را با استفاده از یک تبدیل غیر خطی که به شکل یک جدول look up است به یک خروجی ۴ بیتی تبدیل می‌کند S-boxها قلب DES هستند و بدون آنها رمز خطی خواهد بود و در نتیجه قابل شکستن خواهد شد. درابتدا ۵۶ بیت از ۶۴ بیت کلید توسط انتخاب جایگشت1 (PC1)انتخاب می‌شوند و ۸ بیت باقی‌مانده یا دور ریخته می‌شوند یا به عنوان parityبرای چک کردن مورد استفاده قرار می‌گیرند سپس این ۵۶ بیت به دو نیمه ۲۸ تایی تقسیم می‌شوند و پس از آن با هر نیمه به‌طور مستقل رفتار می‌شود. با استفاده از انتقال در هر زیر کلید مجموعه متفاوتی از بیتها مورد استفاده قرار می‌گیرد. الگوریتم key schedule در رمزگشایی مانند رمزگذاری است ولی زیر کلیدها در مقایسه با رمزگذاری در جهت معکوس هستند به غیر از این تغییر، بقیه الگوریتم مانند رمزگذاری انجام می‌شود. امنیت DES اساسی‌ترین حمله برای هر رمزی، امتحان کردن کلیه مقادیر ممکن، برای کلید است. طول کلید، تعداد مقادیر ممکن برای کلید و هم چنین عملی بودن این روش را مشخص می‌کند. تردیدی که از ابتدا و حتی قبل از اینکه DES به عنوان استاندارد شناخته شود در مورد DES وجود داشت کافی بودن طول کلید بود. NSA ,IBM را به کاهش طول کلید از ۱۲۸ بیت به ۶۴ بیت و سپس به ۵۶ بیت متقاعد نمود و این نشان می‌دهد که NSA حتی در آن زمان نیز، قادر به شکستن کلیدهایی با طول ۵۶ بیت بوده است. در سال Wiener ،۱۹۹۳ یک ماشین جستجوی کلید را پیشنهاد داد که یک میلیون دلار قیمت داشت و قادر بود کلید را در مدت هفت ساعت پیدا کند؛ ولی هیچ‌یک ازاین طرحهای ابتدایی پیاده‌سازی نشد و هیچ پیاده‌سازی ای مورد تأیید قرار نگرفت. این ماشین قیمتی حدود دویست و پنجاه هزار دلار داشت و انگیزه این تیم برای اختراع این ماشین، این بود که نشان دهند که DES همچنان که از لحاظ تئوری قابل شکست است، از لحاظ عملی نیز می‌توان آن را شکست. این ماشین، کلید را با استفاده از روش جستجوی جامع فضای کلید در طی مدت زمان کمی بیش از دو روز پیدا می‌کند. استفاده از سخت‌افزارهای قابل پیکربندی دوباره، سبب می‌شود که این ماشین برای شکستن کدهای دیگر نیز، قابل استفاده باشد. یکی از جنبه‌های جالب این ماشین، فاکتور هزینه آن است این ماشین با ده هزار دلار می‌تواند ساخته شود. کاهش هزینه با ضریب ۲۵ نسبت به EFF نشان دهنده پیشرفتهای متوالی در زمینه سخت‌افزارهای دیجیتالی است. بیشتر این الگوریتم‌ها مانند DES روی قطعه‌های داده با طول ۶۴ بیت کار می‌کردند و می‌توانستند جایگزین DES شوند. مشخصات عمومی الگوریتم رایندال رایندال، یک الگوریتم رمز قطعه‌ای متقارن، با طول قالب داده ۱۲۸، ۱۹۲ و ۲۵۶ بیت است. رایندال دارای ساختاری برای بسط کلید است که از روی کلید اصلی بسته به تعداد دورها، تعدادی زیر کلید تولید می‌کند که در هر دور به قالب داده اضافه می‌شوند. هم چنین چون با افزایش طول کلید تعداد دورهای الگوریتم افزایش می‌یابد، زمان اجرا و سرعت الگوریتم به طول کلید وابسته است. تعاریف Nb - تعداد چهاربایتی‌های موجود در قالب داده است به عنوان مثال برای قالب داده ۱۲۸ بیتی Nb=۴ است. Nk - نیز تعداد آرایه‌های ۴ بایتی موجود در کلید است برای کلیدهای ۱۲۸، ۱۹۲ و ۲۵۶ بیتی Nk به ترتیب ۴، ۶ و ۸ خواهد بود. آرایه حالت یک آرایه دو بعدی با ابعاد ۴*Nb از بایتها است بنابراین تعداد بایتهای آرایه حالت برابر تعداد بایتهای قالب داده خواهد بود در ابتدای الگوریتم متن اصلی بایت به بایت از بالا به پایین و از چپ به راست در جدول حالت چیده می‌شود. آرایه کلید بسط یافته - آرایه‌ای از کلمات ۴ بایتی است که کلید بسط یافته‌ای راکه تابع بسط کلید تولید کرده در خود ذخیره می‌کند این آرایه از (Nb*(Nr+1 کلمه ۴ بایتی تشکیل شده که (1+Nr) کلید دورهای مختلف را در خود ذخیره می‌کند. تعداد دورهای الگوریتم رایندال را با Nr نشان می‌دهیم که به طول قالب داده و کلید بستگی دارد بدین ترتیب که اگر هر کدام از Nb یا Nk، برابر ۶ باشد، خواهیم داشت، Nr=۱۲ و اگر هر کدام برابر ۸ باشد، خواهیم داشت، Nr=۱۴. تبدیلها و توابع مورد استفاده هر کدام از توابع و تبدیلهای زیر، روی آرایه حالت عمل کرده و آن را به نحوی تغییر می‌دهند. | ## بخش 3: استاندارد رمزنگاری داده‌ها | تابع SubByte این تابع یک تابع غیرخطی است که به‌طور مستقل روی بایتهای آرایه حالت عمل کرده و به جای هر بایت به کمک جدول S-box یک بایت جدید قرار می‌دهد این تبدیل معکوس پذیر است و از دو تبدیل زیر تشکیل شده است: ۱- ابتدا معکوس ضربی بایت مورد نظر محاسبه می‌شود. برای اولین سطر، r=۰، انتقالی انجام نمی‌شود تعداد انتقال دورانی در سه سطر آخر بستگی به Nb دارد به این ترتیب که برای Nb=۸ انتقالهای سه سطر آخر به ترتیب برابر ۱٬۳ و ۴ و برای Nb<8 برار ۱٬۲ و ۳ خواهد بود. هر ستون به عنوان یک چندجمله‌ای در میدان دو به توان هشت در نظر گرفته می‌شود و در چند جمله‌ای ثابت (a(x ضرب می‌شود و به پیمانه x4 ۱ محاسبه می‌گردد. از آنجا که هر کدام از کلیدهای دوری از Nb کلمه ۴ بایتی تشکیل شده‌اند، جمعاً (Nb*(Nr+1 کلمه ۴ بایتی به عنوان کلید بسط یافته از روی کلید اصلی تولید می‌شود. کلیدهای تولید شده، یک آرایه خطی تشکیل می‌دهند که هر کلید با [W[i نشان داده می‌شود. قبل از توصیف نحوه بسط کلید، ابتدا توابع زیر را تعریف می‌کنیم: SubWord -1 این تابع ر وی یک بردار ۴ بایتی عمل می‌کند به این صورت که S-box رایندال را روی تک تک بایتهای بردار اعمال کرده و بردار چهار بایتی جدیدی می‌سازد. الگوریتم به این صورت است که ابتدا کلید اصلی، داخل آرایه کلمات قرار می‌گیرد و سپس هر کلمه جدید، [w[i، از XOR کلمه قبل، [w[i-1، و کلمه Nk مرتبه قبل، [w[i-Nk، به دست می‌آید. توجه به این نکته ضروری است که الگوریتم تولید کلید، برای کلیدهایی با طول ۲۵۶ بیت، با الگوریتم مربوط به تولید کلید برای کلیدهای ۱۲۸ و ۱۹۲ بیتی، اندکی متفاوت است. آژانس ملی امنیت آمریکا (NSA) هر پنج الگوریتمی را که به مرحله نهایی راه یافتند را بررسی کرد و پس از بررسی، اعلام نمود که همه این الگوریتم‌ها برای حفاظت اطلاعات غیر سری آمریکا، به اندازه کافی، امنیت را فراهم می‌کنند. در ژوئن سال ۲۰۰۳ دولت آمریکا اعلام کرد که از AES می‌توان برای حفاظت از اطلاعات رده‌بندی شده و سری نیز استفاده کرد. برای اطلاعات فوق سری و محرمانه باید از کلیدهایی با طول ۱۹۲ یا ۲۵۶ بیت استفاده کرد. این اولین بار بود که NSA یک روش رمزنگاری را برای رمزگذاری اطلاعات فوق محرمانه در اختیار عموم قرار می‌داد. رایج‌ترین راه برای حمله به رمز قطعه‌ای امتحان کردن حملات متنوع، روی نسخه‌های رمز با تعداد کاهش یافته‌ای «دور» است. AES برای کلیدهای ۱۲۸ بیتی ۱۰ دور، برای کلیدهای ۱۹۲ بیتی ۱۲ دور و برای کلیدهای ۲۵۶ بیتی ۱۴ دور دارد. تا سال ۲۰۰۶ بهترین حمله با استفاده از ۷ دور برای کلیدهای ۱۲۸ بیتی، ۸ دور برای کلیدهای ۱۹۲ بیتی و ۹ دور برای کلیدهای ۲۵۶ بیتی بوده است. برخی از رمزنگاران در مورد امنیت AES اظهار نگرانی می‌کنند آنها معتقدند که حاشیه امنیت (فاصله بین دورهای الگوریتم و دورهای لازم برای شکستن رمز کم است. هم چنین این خطر وجود دارد که با پیشرفت الگوریتم‌های ذکر شده این الگوریتم‌ها بتوانند رمز را با زمانی کمتر از زمان لازم برای جستجوی جامع در فضای کلید بشکنند. شکستن یک کلید ۱۲۸ بیتی به ۲۱۲۰ عمل نیاز دارد که در مقایسه با ۲۱۲۸ بسیار کم است که امروزه کاملاً غیرممکن و غیر عملی است. بزرگ‌ترین حمله که با استفاده از جستجوی جامع روی فضای کلید صورت گرفته است منجر به شکستن کلید RC5 شصت و چهار بیتی شده است. ولی برخی از محققان می‌گویند که ایجاد یک رمز بر مبنای فرضیات سخت جدید، به دور از ریسک نیست. چندین متخصص رمزشناسی مشکلاتی را درساختار ریاضی حمله پیشنهاد شده، کشف کردند و اعلام کردند که مخترعان این حمله احتمالاً در تخمین‌های خود دچار اشتباه شده‌اند. اینکه آیا حمله XSL می‌تواند علیه AES عمل کند یا نه، سؤالی است که هنوز به آن پاسخی داده نشده است؛ ولی احتمال اینکه این حمله بتواند در عمل انجام شود بسیار کم است حمله کانال جانبی حمله کانال جانبی به رمز صدمه‌ای نمی‌رساند ولی به پیاده‌سازی رمز روی سیستم، حمله می‌کند و باعث فاش شدن داده‌ها می‌شود. چندین حمله برای برخی از پیاده‌سازیهای خاص AES شناخته شده است که در اینجا، مورد اشاره قرار می‌گیرند. برخی معتقدند که این حمله با فاصله یک و بیش از یک hop در اینترنت امکان‌پذیر نیست. یکی از این حمله‌ها قادر بود که کلید را پس از ۸۰۰ عمل و در مدت ۵۶ میلی ثانیه به دست آورد ولی برای انجام این حمله، حمله کننده باید برنامه را روی همان سیستمی که از AES استفاده می‌کند به اجرا در بیاورد. | ## جمع‌بندی | مهاجری، "مقایسه الگوریتم‌های رتبه اول و آخر در گزینش نهایی AES " در مجموعه مقالات اولین کنفرانس رمز ایران، ص۲۶۶–۲۵۳ ی.