موضوع مقاله: آر سی ۴ | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # آر سی ۴ | مقدمه: یک رمز دنباله‌ای، عناصر ورودی را به‌طور پیوسته پردازش کرده و همین‌طور که جلو می‌رود عناصر متن رمزنگاری شده را تولید می‌کند. | ## بخش 1: آر سی ۴ | اگرچه رمزهای قالبی بسیار متداول‌ترند ولی در برخی کاربردها یک رمز دنباله‌ای گزینه‌ای مناسب‌تراست. مطالعات گسترده‌ای در رابطه با روش‌های حمله به RC4 انجام شده‌است ولی هیچ‌کدام از این روش‌ها برای حمله به RC4 با کلیدی که دارای طول منطقی همچون ۱۲۸ بیت باشد عملی نبوده‌اند. یک مورد جدی در [FLUH1] مطرح شده‌است که در آن محققان نشان دادند پروتکل WEP که برای محرمانگی در شبکه‌های محلی بی‌سیم مورد استفاده قرار می‌گیرد، در برابر نوعی حمله بخصوص آسیب‌پذیر است؛ ولی در واقع مشکل ربطی به RC4 نداشت بلکه به روشی که کلیدها برای استفاده در ورودی RC4 تولید می‌شوند، بستگی داشته‌است. این مشکل در سایر کاربردهایی که از RC4 استفاده می‌کنند مشاهده نشده و در WEP نیز با تغییر روش تولید کلیدها، مشکل حل شده‌است. مهمترین فاکتورهای موفقیت RC4 در محدوده وسیع کاربردهای آن، سادگی و سرعت آن است و اینکه پیاده‌سازی آن هم در سخت‌افزار و هم در نرم‌افزار کارآمد است و همچنین توسعه آن بسیار ساده‌است. تعریف RC4 یک رمز دنباله‌ای با طول کلید متغیر بوده و عملیات آن روی بایت‌ها انجام می‌شود. خروجی تولیدکننده شبه تصادفی که یک دنبالهٔ کلید (keystream) نامیده می‌شود با دنباله متن سادهٔ ورودی به صورت یک بایت در هر زمان و به صورت عمل XOR روی بیت‌ها ترکیب می‌شود. برای تولید دنبالهٔ کلید، کد استفاده از یک حالت داخلی پنهانی را میسر می‌سازد که شامل دو قسمت است: یک جایگشت از همه ۲۵۶ بایت ممکن (در کد زیر با S مشخص شده) دو شاخص اشاره گر هشت بیتی (در کد زیر با i و j مشخص شده) جایگشت با یک طول کلید متغیر آغاز می‌شود که معمولاً بین ۴۰ تا ۲۵۶ بیت است، که با استفاده از الگوریتم زمانبندی کلید (KAS) انجام می‌شود. بعد خاتمه این مرحله، جریانی از بیت‌ها با استفاده از الگوریتم تولید شبه تصادفی (PRGA) تولید می‌شود. الگوریتم زمانبندی کلید الگوریتم زمانبندی کلید با کوته‌نوشت KSA برای مقداردهی اولیه جایگشت در آرایه S استفاده می‌شود. | ## بخش 2: آر سی ۴ | keylength به عنوان تعداد بایت‌های کلید تعریف می‌شود که می‌تواند بین ۱تا ۲۵۶ باشد ولی معمولاً بین ۵ و۱۶ است و به تبع آن، طول کلید نیز معمولاً بین۴۰ و ۱۲۸ بیت خواهد بود. ابتدا آرایه S برای ایجاد جایگشت مقداردهی اولیه شده و سپس S برای ۲۵۶ تکرار در PRGA پردازش می‌شود و هم‌زمان نیز بایت‌های مربوط به کلید را تولید می‌کند. در طراحی RC4 از استفاده از LFSRها پرهیز می‌شود و بنابراین برای پیاده‌سازی نرم‌افزاری ایده‌آل است چرا که فقط نیازمند دستکاری بایت‌ها ست. بردار تست بردارهای تست زیر رسمی نیستند ولی برای تست کردن برنامه‌های RC4 راحت مناسب و راحت هستند. کلیدها و متن‌های اصلی همگی در مد اسکی هستند و دنباله کلید و متون رمزنگاری شده در مد دستگاه اعداد پایه ۱۶ هستند. ملاحظات ملاحظات زیر در طراحی یک رمز دنباله‌ای ذکر شده‌است: دنباله رمز باید دارای دوره تناوب بزرگی باشد. چرا که تولیدکننده اعداد شبه تصادفی از تابعی استفاده می‌کند که دنباله‌ای از بیت‌ها را تولید کرده که نهایتاً بعد از مدتی تکرار می‌شود و هر چقدر دوره تناوب این تکرار طولانی‌ترباشد عمل شکستن رمز سخت‌تر خواهد بود. با یک مولداعداد تصادفی با طرح مناسب، یک رمز دنباله‌ای می‌تواند به هممان ندازه یک رمز قالبی با همان طول کلید، امن باشد. مزیت اصلی رمزهای دنباله‌ای این است که رمزهای دنباله‌ای تقریباً همیشه سریع‌تربوده و نسبت به رمزهای قالبی از حجم برنامه کمتری استفاده می‌کنند. جدول زیر زمان اجرای RC4 را با سه رمز قالبی معروف مقایسه کرده‌است: سرعت(مگابیت بر ثانیه) طول کلید نوع رمز ۹ ۵۶ DES ۳ ۱۶۸ 3DES ۰٫۹ متغیر RC2 ۴۵ متغیر RC4 خوبی یک رمز قالب در این است که می‌توان از کلید رمز بارها استفاده کرد. | ## بخش 3: آر سی ۴ | در رمز دنباله‌ای اگر دو متن ساده با یک کلید یکسان رمزگاری شوند، آنگاه شکستن رمز غالباً بسیار آسان خواهد بود. اگر دو دنباله متن رمزنگاری شده با هم XOR شوند، نتیجه با XOR دو متن ساده نظیر آن‌ها یکسان خواهدبود. حال اگر متن ساده، دنباله کوتاهی همانند کارت‌های اعتباری باشند، عمل شکستن رمز ممکن است موفقیت‌آمیز باشد. برای کارردهایی همچون کانال‌های مخابرهٔ داده یا مرور لینک‌های وب که نیازمند رمزنگاری/رمزگشایی دنباله‌های دیتا دارند، یک رمز دنباله‌ای می‌تواند گزینه بهتری باشد. برای کاربردهایی مانند انتقال فایل، پست الکترونیک و پایگاه داده که با بلوک‌های دیتا سروکار دارند رمزهای قالبی می‌توانند مناسب‌ترباند. امنیت به دلیل اینکه RC4 یک رمزنگاری دنباله‌ای است سازگارتر از رمزهای قالبی است، و در صورتی که با یک کد احراز هویت پیام (MAC) ترکیب نشود رمزنگاری نسبت به حملهٔ تغییر بیت‌ها آسیب‌پذیر خواهد بود. انواع RC4 همان‌طور که در بالا اشاره شد مهم‌ترین نقطه ضعف RC4 از ناکارآمدی زمان کلید ناشی می‌شود به این صورت که اولین بایت خروجی کلید را آشکار می‌کند، که این امر را می‌توان با در نظرنگرفتن بخش ابتدایی جریان خروجی تصحیح کرد. هر زمان که i افزایش داده می‌شود، دو بایت تولید می‌شود: ابتدا الگوریتم پایه RC4 با استفاده از S1 و j1 اجرا می‌شود، اما در مرحله آخر [S1[i]+s1[i1 در S2 جستجو می‌شود. سپس عملیات تکرار می‌شود(بدون افزایش دوباره i) روی S2 و j2 و [S1[S2[i]+S2[j2 به عنوان خروجی در نظر گرفته می‌شود. | ## جمع‌بندی | از زمان‌بندی کلید همانند RC4 استفاده می‌کنند، اما تعداد تکرارهای آن به جای ۲۵۶ بار ۷۶۸ تکرار است.