بخشی از مقاله
*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***
بررسی الگوریتم رمزنگاری RC4 و مشکلات حاکم بر این الگوریتم
چکیده
داده ها در هنگام انتقال در شبکه، آسیب پذیر هستند و به همین دلیل رمزنگاری نقش عمده ای در حفاظت از داده ها از طریق رمزگذاری ایفاء می کند. امنیت اطلاعات به مکانیزم های مختلف کنترل دسترسی وابسته است و به وسیله رمزنگاری و رمزگشایی کنترل می شود. یکی از مهمترین الگوریتم های رمزنگاری متقارن، رمزنگاری جریانیRC4 نام دارد، که دارای مزایای رمزگذاری و رمزگشایی سریع، استفاده کمتر از منابع، سهولت درک و پیاده سازی، پیچیدگی زمانی و فضایی کم، در مقایسه با سایر الگوریتم ها می باشد.
واژه های کلیدی: رمزنگاری، الگوریتم RC4، رمزنگاری جریانی.
3-3معرفی رمز نگاری و انواع آن
محدوده شبکه و ارتباطات، بسیار وسیع می باشد. شبکه های انواع مختلفی دارند. هدف اولیه این شبکه ها تنها ارتباط از طریق انتقال داده و اطلاعات می باشد. با ظهور و ارتباط داده و اطلاعات نیاز به امنیت روی شبکه احساس شد. این نیاز با ظهور تجارت الکترونیک و بانکداری اینترنتی خیلی بیشتر از قبل ملموس گردید. بنابر این، مسئله بعدی تامین امنیت داده و اطلاعات روی شبکه بود. این موضوع موجب ایجاد مبحث شبکه و امنیت شد. رمزنگاری، اصلی است که سطوح مختلف امنیت را ایجاد می کند. یکی از سرویس های امنیت داده ها و اطلاعات، تامین محرمانگی می باشد. محرمانگی به معنای امن سازی داده ها و اطلاعات و محافظت از آنها در مقابل دسترسی های غیر مجاز می باشد.[1]
رمزنگاری یا کریپتوگرافی از یک لغت یونانی گرفته شده است که بـه معنای نوشتن به صورت پنهانی است.
رمزنگاری عمدتاً در سخت افزار و نرم افزار بـا سـاختارهای گسسـته انجام می گیرد. امنیت، ادغام شبکه با رمزنگـاری بـرای فـراهم آوری ارتباطی ایمن بین شبکه های قابل اطمینان و غیرقابل اطمینان مـی باشد. مکانیزم های رمزنگاری کارآمد، یک روش ابتدائی محافظـت از اطلاعات ارزشمند الکترونیکی می باشند. فرآیند رمزنگاری باید پویـا باشد تا بتواند در مقابل خطرات و روش هـای پیشـرفته رمـز شـکنی مقابله کند. [2]
رمزنگاری هر سه محور اصلی در مباحث مربوط بـه امنیـت را در بـر می گیرد که عبارتند از:
-3محرمانگی رمزنگـاری یـک شـیوه بسـیار خـوب بـرای حفـظ اطلاعات به صورت محرمانه است. حتی اگر اطلاعات رمزنگاری شـده به سرقت روند، پی بردن به محتویات فایلهای رمزنگاری شده بسـیار مشکل خواهد بود.
-7تمامیت
رمزنگاری روشی بسیار خوب برای اطمینان از صحت یا تمامیت اطلاعات است. برخی از الگوریتم های رمزنگاری علاوه بر حفظ محرمانگی اطلاعات، از آنها در برابر دستکاری اطلاعات نیز محافظت به عمل می آورند. این قبیل پردازشها قدرت تشخیص تغییرات جزئی یا غیرعمدی در اطلاعات را دارا هستند. در حالی که بسیاری از کاربران نظامی، اطلاعاتی یا تجاری بسیار به محرمانه ماندن اطلاعات اهمیت می دهند، کاربران مؤسسات مالی برای صحت و دقت اطلاعات اهمیت بسیاری قائل هستند .
-1تأیید هویت
رمزنگاری یک روش موفق در فهمیـدن موثـق بـودن اطلاعـات است. در واقع با رمزنگاری می توان مطمئن شد که اطلاعات از همان جایی که ادعا می کنند، می آیند. برخی تکنیکهای خاص رمزنگـاری به کاربر امکان می دهد تا مشخص کند دقیقاً چه کسـی یـک بسـته اطلاعاتی را ارسال کرده است .
برای خارج نمودن متن رمزشده از حالت رمز و قابل استفاده مجـدد بودن، نیاز به انجام فرآیند رمزگشایی می باشد که این عمـل عمومـاً بر عکس فرآیند رمز نگاری است و عکس عملیات در انجام می گیرد .
رمزنگاری دو جزء اصلی دارد، یک الگوریتم و یک کلید. الگوریتم یک مبدل یا فرمول ریاضـی اسـت. تعـدادی از الگـوریتم هـای قدرتمنـد بعنوان استاندارد منتشر ناخته شده است یا میتواند کشف شود و این کلید است کـه بایـد مخفی نگاه داشته شود و در هر مرحله پیادهسازی تغییر میکند.
الگوریتم های رمزنگاری به دو دسته متقارن و نامتقارن تقسیم می شوند. در رمزنگاری متقارن، که رمزنگاری کلید خصوصی هم نامیده می شوند و از یک کلید برای رمزنگـاری و رمزگشـایی اسـتفاده مـی شود. در الگوریتم های نامتقارن که رمزنگاری با کلیـد عمـومی هـم نامیده می شوند، از جفت کلید برای رمزنگاری و رمزگشایی استفاده می شود. الگوریتم های رمزنگـاری متقـارن بعلـت سـریع تـر بـودن اهمیت بالاتری از الگوریتم های رمزنگاری نامتقارن دارند.
روش هــای کلــی رمزنگــاری و رمزگشــایی بــه دو دســته رمزنگــاری جریانی و رمزنگاری بلوکی تقسیم می شوند. در روش جریـانی مـتن ساده بصورت بایـت بـه بایـت رمـز مـی شـود ولـی در روش بلـوکی الگوریتم روی بیش از یک بایت می تواند اعمال شود. الگوریتم هـای جریانی منابع سخت افزاری کمتر و زمان کمتری در مقایسه با مـدل های بلوکی صرف می کنند. [1]
با یک مولد اعداد شبه تصادفی با طرح مناسب، یک رمـز جریـانیمی تواند به همان اندازه یک رمز قالبی با همان طول کلید، امـن باشـد و مزیت اصلی یک رمز جریانیـاین اسـت کـه رمـز هـایجریانیتقریبـاً همیشه سریعتر بوده و نسبت به قالبی حجم برنامه کمتـری اسـتفاده می کنند. در شکل 1 مراحـل رمزنگـاری و رمـز گشـایی یـک رمـز جریانی را می توان مشاهده کرد.
برای کاربردهایی که مانند کانال های مخابره داده ها و یا مرور لینک های وب که نیاز به رمزنگاری/رمزگشایی دنباله های دیتا دارند، یـک رمز دنباله ای می تواند گزینه بهتری باشد. برای کاربردهایی همچون انتقال فایل، پست الکترونیک و پایگاه داده که با بلوک های دیتا سر و کار دارند، رمزهای قالبی می توانند مناسب تر باشند. با وجود ایـن هر دو نوع رمز تقریباً در هر کاربردی قابل استفاده اند.
7-3 معرفی الگوریتم رمزنگاریRC4
RC4 یک الگوریتم رمزنگاری متقـارن جریـانی اسـت، کـه در سال 1891 توسـط Ron Rivest بـرای شـرکت RSA ecurityطراحی شد. این الگوریتم از سال 1891 تا 1881 از لحـاظ تجـاری بصورت پنهان نگه داشته شد و در سال 1881 روی اینترنت منتشـر شکل .2 الگوریتم [3] KSA شد. بعد از انتشار این الگوریتم، محققان زیادی روی آن کار کردنـد و نقاط ضعف و قوت آن معرفی و شناسائی شد. [1]
الگوریتم های رمزنگاری با پیاده سازی سریع، حجم پایین، پیچیدگی کم و امنیت بالا برای ابزارهایی با منابع محدود، ماننـد ابزارهـای بـی سیم بسیار ضروری می باشند. بیشتر الگوریتم های رمزنگاری متداول پیچیدگی بالایی دارند و انرژی زیادی را مصرف می کننـد RC4 .در مقایسه با سایر الگوریتم ها سریع تر می باشد و پیاده سـازی سـخت افزاری ساده ای دارد. برای مثال سرعت اجرای الگـوریتمRC4 پـنج برابر الگوریتم رمزنگاری استاندارد DES و پـانزده برابـر DES سـه تایی می باشد. [3]
الگوریتم رمزنگاری جریانیRC4 ، برای تـامین اطمینـان در شـبکه های مختلف بکار مـی رود. شـبکه هـای مختلفـی ماننـد، سنسـور، بیسیم، اینترنت، موبایل و غیره برای امن سازی داده در طی انتقال از این الگوریتم استفاده می کنند. [1]
الگوریتم RC4 بر مبنای استفاده از یک جایگشت تصادفی بنا نهاده شدهاســت ویــک جریــان شــبه تصــادفی از بیتهــا تولیــد میکنــد. اینالگوریتم تلاش می کند به بالاترین سطح تصادفی بودن دست یابد و طول کلید های متفاوتی دارد کـه از 0 تـا 222 بایـت متغیـر مـی باشـد. الگـوریتم رمزنگـاری RC4 از دو بخـش KSA و PRGA تشکیل شده است، که بدنبال هم اجرا مـی شـوند. کلیـد رمزنگـاری توسط KSA تولید می شود و PRGA الگوریتم تولید رشـته شـبه تصادفی می باشد، خروجی PRGA با متن ساده XOR می شود تا متن رمز شده بدست بیاید .
کد الگوریتمRC4 استاندارد در شکل های شماره 2 و 3 آمده است . mطول پیام در متن ساده، Lطول کلید به بایت، i و j اشـاره گـر های آرایه هستند. [3]
کلید رمزگشایی به همان روش تولید کلید رمزنگاری تولید می شـود و خروجی با متن رمز شده XOR می شود تا متن ساده بدست آید[2].
همانطور که از شکل 1 مشخص است، در مرحله الـف، مقـادیر 0 تـا 222 بصورت صعودی در آرایه S قرار می گیرند. آرایه مـوقتی T بـا استفاده از کلید، مقداردهی می شود. در صورتی که طول کلید کمتر از 222 بیت باشد، عناصر کلید در ایـن آرایـه تکـرار مـی شـوند. در مرحله ب، از آرایه T برای جایگشت آرایه S استفاده مـی گـردد. در مرحله ج، وقتی که آرایـه S جایگشـت یافـت دیگـر از کلیـد ورودی استفاده نمی شود و با استفاده از خود این آرایه کار ادامه می یابد .
1-3 مقایسه الگوریتم های رمزنگاری
در مقایسه رمزنگـاری الگـوریتم هـای متقـارن و الگوریتمهـای نامتقارن بحثهای زیادی شده، که کدام یک از ایـن الگوریتمهـا بهتـر هستند. به طور کلی الگوریتم های متقارن الگوریتمهای بهینـه تـری هستند. وقتی که بحث امنیت پیش می آید، الگوریتمهـای نامتقـارن کارایی بیشتر دارند. الگوریتم هـای متقـارن و نامتقـارن کاربردهـای متفاوتی دارند، در رمزنگاری هایی که حجم داده بسیار زیاد اسـت، از الگوریتم های متقارن اسـتفاده مـی شـود، زیـرا داده هـا بـا سـرعت بالاتری رمزنگاری و رمزگشایی می شـوند. امـا در برخـی از پروتکـل هایی که در اینترنت استفاده می شود، برای رمزنگاری کلیدهایی کـه نیاز به مدیریت دارند، از الگوریتم های نامتقارن استفاده می شود .
در این بخش نتـایج شـبیه سـازی بـرای الگـوریتم هـای رمزنگـاری جریانی بیان می شوند. شکل 2 نشان دهنده ی زمان رمزنگاری برای شش الگوریتم انتخاب شده بر پایه ی روش های رمزگذاری پایـه 21 در شرایط اجرایی یکسان می باشد. نتایج نشان می دهد که بین توان عملیاتی و اندازه فایل رمز شده رابطه خطـی وجـود دارد. بـر اسـاس نتایج می توان مشاهده کرد که RC4 سریع ترین الگوریتم بر اساس زمان اجرا در این مقایسه می باشد [1].
شکل 9 نشان دهنده ی توان عملیاتی برای الگـوریتم هـای مختلـف می باشد. نتایج شاهد این موضوع می باشند که RC4 توان عملیاتی بهتری نسبت به بقیه دارد [1].
در مقایسه و شبیه سازی که بین الگوریتم های رمزنگـاری مختلـف با اندازه داده و اندازه کلید های مختلف انجام شده، محققان به ایـن نتیجـه رسـیده انـد کـه مزیـت الگـوریتم RC4 در سـرعت و تـوان عملیاتی بالای آن است. [1]
جدول1زمان اجرای رمزنگاریRC4 را با طول کلید های متفاوت بـا سه رمز قالبی معروف مقایسه کرده است و سرعت انجام این الگوریتم ها در آن قابل مشاهده می باشد که RC4 از بقیه سریع تر است[2]
جدول.1 مقایسه سرعت پردازش رمزهای متقارن روی یک پردازشگر[2] Pentuim2
در شکل1 نمودار سرعت را بر پایه اندازه داده برای الگوریتم های مختلف رمزنگاری متقارن معمول که بیشتر مورد استفاده اند، نشان می دهد. این موضوع که الگوریتم RC4 بهترین الگوریتم از لحاظ سرعت در مقایسه با بقیه است، ثابت شده است.[1]
:3-7 هدف از رمزنگاری
رمزنگاری رشتهای علمی است که شامل اصول، ابزارها و روشهایی برای تغییر شکل داده ها با هدف مخفی نگهداشتن محتوای معنایی آن ها، ممانعت از استفاده غیر مجاز از آن ها، یا ممانعت از ایجاد تغییرات تشخیصدادهنشده در آن ها می باشد.رمزنگاری اطلاعات ، روشی مناسب به منظور حفاظت از اطلاعات حساس است. بدین ترتیب، صرفا افراد مجاز قادر به دستیابی و استفاده از اطلاعات خواهند بود. رمزنگاری نقش مهمی در کمک به جلوگیری از سوء استفاده از اطلاعات شخصی و محرمانه دارد.[2]
الگوریتم های رمزنگاری متداول، وقتی که توسط ابزارهایی با منابع محدود برای تامین امنیت ارتباطشان بکار می روند، پیچیدگی بالایی دارند و انرژی زیادی را مصرف می کنند. الگوریتم های با کلید عمومی نیز برای استفاده در شبکه سنسور به دلایلی مانند فضای ذخیره سازی محدود و مصرف انرژی بیش از حد مناسب نیستند
[9].بنابراین وقتی محدودیت منابع فیزیکی داریم، شمای امنیت باید بر پایه رمز نگاری با کلید متقارن باشد .[3]
محدودیت هزینه و سایز در ابزارهای با منابع محدود موجب محدودیت هایی نظیر محدودیت منابع انرژی، پهنای باند پایین، حافظه هایی با اندازه کم و محاسبات محدود می شود. برای مثال ابزارهای سنسورهای کنونی، از پردازنده های چهار بیتی یا هشت بیتی با باتری ساده و حجم کمی از حافظه ها برای اجرای محاسبات منطقی و عملیات محاسباتی کم استفاده می کنند. بسیاری از الگوریتم های رمزنگاری موجود پیچیدگی بالایی دارند و نیازمند انرژی بالایی هستند، به این علت نمی توانند از ابزار های با محدودیت استفاده کنند. برای ایجاد ارتباط ایمن در ابزارهای با منابع محدود سبک بودن الگوریتم جزو اولویت هاست .[8]
بر اساس مطالب ذکر شده، نیاز به الگوریتم متقارن ساده با مصرف پایین انرژی و کارآیی بالا می باشد، تمامی این مشخصات در الگوریتم RC4 وجود