بخشی از مقاله

چکیده

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

الگوریتم ژنتیک برای رفع این مشکل میتواند بسیار موثر باشد زیرا بجای جستجو در تمام فضای کلید با تمرکز بر بخش کوچکی از فضای کلید کلید رمز را پیدا کند. ما موثر بودن این الگوریتم را برای جستجو در فضای کلید رمزنگار هیل در این تحقیق نشان داده ایم. و آنرا برای کشف کلیدهایی یا طول متن مختلف آزمایش کرده ایم. یکی از اهداف این تحقیق معرفی کاربرد جدیدی از این الگوریتم در زمینه رمزشکنی است.

برای رسیدن به این هدف تغییراتی در الگوریتم اعمال شده تا بتوان به نتایج مطلوبتر رسید. هدف دوم این تحقیق که تا حدودی با هدف اول همپوشانی دارد ارائه روشی جدید برای رمزشکنی است.روش اجرا بصورت پیاده سازی نرم افزاری و تست آن روی متون مختلف است.نتایج حاصل نشان میدهد الگوریتم ژنتیک یک روش موثر برای رمزشکنی الگوریتم های رمزنگاری کلاسیک است و به راحتی می-تواند کلید رمز را پیدا کند. ولی اگر اندازه متن رمز شده کوچک باشد کارایی این الگوریتم در کشف کلید کاهش مییابد.

.1 مقدمه

نیاز به جستجو در حل مسائل کاربردی امری غیر قابل اجتناب و درعین حال دشوار است .به همین جهت تعداد زیادی از الگوریتم های جستجو با فلسفه ها و دامنه استفاده متفاوت بوجود آمده اند .این الگوریتم های جستجو را می توان به دو دسته کلی جستجوهای کامل وجستجوهای مکاشفه ای تقسیم کرد .فرق اساسی بین الگوریتم های این دو دسته به این صورت است که در جستجوهای کامل، تمام فضای جستجو به طور کامل مورد جستجو و ارزیابی قرار میگیرد تا جواب مورد نظر یافته شود، در حالیکه در جستجوهای مکاشف های تنها بخشی از فضا که احتمال یافتن جواب در آن بیشتر است، مورد توجه قرار میگیرد .

جستجوهای مکاشفه ای به دو دسته الگوریتم های قطعی و غیرقطعی تقسیم پذیرند.ویژگی اصلی الگوریتم های قطعی در این است که تحت شرایط یکسان،جوابهای یکسان می دهند .از جمله این الگوریتم ها می توان به تپه نوردی اشاره کرد .ایراد اساسی این الگوریتم ها احتمال گیر افتادن در مینیم مهای محلی می باشد .در مقابل، الگوریتم های مکاشفه ای غیر قطعی با استفاده از احتمالات و جستجوهای تصادفی، در شرایط یکسان جوابهای متفاوتی بدست می آورند .همینطور در صورت افتادن در مینیمم های محلی، از آنها می گریزند .

الگوریتم های مکاشفه ای غیر قطعی را بر اساس تعداد جوابهایی که در هر تکرار بررسی و ذخیره میکنند به دو دسته تقسیم میکنند. بعضی مانند تابکاری فلزات تنها یک جواب را در هر تکرار مورد بررسی قرار داده و ذخیره می کنند . بعضی دیگر در هر تکرار دسته ای از جوابها را ذخیره می کنند، که به این الگوریتم ها، الگوریتم های مبتنی بر جمعیت می گویند. - رستگار،ر میبدی،و،, - 1383

هوش ازدحامی یا هوش فوجی1 نوعی روش هوش مصنوعی است که مبتنی بر رفتارهای جمعی در سامانههای نامتمرکز و خودسامانده بنیان شده است. این سامانههامعمولاً از جمعیتی از کنشگران ساده تشکیل شده است که بطور محلی با یکدیگر و با محیط خود در تعامل هستند. با وجود اینکه معمولاً هیچ کنترل تمرکز یافتهای، چگونگی رفتار کنشگران را به آنها تحمیل نمیکند، تعاملات محلی آنها به پیدایش رفتاری عمومی میانجامد.

مثالهایی از چنین سیستمهای را میتوان در طبیعت مشاهده کرد؛ گروههای مورچهها، دسته پرندگان، گلههای حیوانات، تجمعات باکتریها و دستههای ماهیها. رمزشکنی یا تحلیل رمز به کلیه اقدامات مبتنی بر اصول ریاضی و علمی اطلاق میگردد که هدف آن از بین بردن امنیت رمزنگاری و در نهایت باز کردن رمز و دستیابی به اطلاعات اصلی باشد.

در یک الگوریتم رمزنگاری اگر ما بتوانیم بخشی از کلید را کشف کنیم موفق به شکستن آن الگوریتم شده ایم. روشهای مختلفی برای شکستن الگوریتمهای رمزنگاری کلاسیک وجود دارند که به سه دسته کلی تقسیم میشوند: حمله احمقانه2 ، تحلیل فراوانی3 و تحلیل خطی. حمله احمقانه جستجوی تمام فضای کلید را می طلبد. اما اگر فضای کلید - تعداد کل کلیدهای ممکن - زیاد باشد پیمایش همه آنها غیر ممکن است.

با توجه به مطالب گفته شده ما میتوانیم از الگوریتمهای مکاشفه ای برای کشف کلید رمز در الگوریتمهای رمزنگاری استفاده کنیم تا جستجو را به بخشی از فضای کلید محدود کنیم و به این ترتیب زمان جستجو را کاهش دهیم. البنه جوابهای بدست آمده ممکن است کامل نباشد اما قابل قبول است. الگوریتم مکاشفه ای که ما از آن استفاده خواهیم کرد با نام الگوریتم ژنتیک4 شناخته میشود . - Stallings, 2005 -

.2 پیشینه ی پژوهش

میتوان ادعا کرد که GA یک ابزار بهینه سازی عالی است که می توان آن را برای مسائل بهینه سازی گوناگونی بکار برد. به عنوان یک الگوریتم ، قدرت اصلی آن همگرایی سریعش است که به طور قابل قبولی با بسیاری از الگوریتم های بهینه سازی کلی همچون الگوریتم PSO قابل قیاس و بلکه بهتر است. این الگوریتم برای بهینه سازی مسائل با متغیر های پیوسته مناسب است و با موفقیت برای گستره وسیعی از مسائل - شبکه های عصبی ، فناوری تولید بهینه ی ساختار ، فناوری تولید بهینه ی توپولوژی اشکال و ... - اجرا شده است.

هر روزه استفاده های جدیدی از این الگوریتم در علوم مختلف معرفی میشود.البته برای بدست آوردن نتایج بهتر تغییراتی در این الگوریتم برای آن کاربرد اعمال میشود که باعث ایجاد انواع جدیدی از این الگوریتم شده است. یکی از اهداف این تحقیق معرفی کاربرد جدیدی از این الگوریتم در زمینه رمزشکنی است. و برای رسیدن به این هدف تغییراتی در الگوریتم اعمال شده تا بتوان به نتایج مطلوب رسید.

رمزشکنی یا تحلیل رمز از علومی است که در حال پیشرفت است . با ابداع هر روش رمزنگاری بلافاصله تلاش برای شکستن آن شروع میشود. این تلاشها همواره مضر نیستند بلکه باعث رشد علم رمزنگاری شده اند. ارائه روشهای نوین رمزشکنی میتواند در این رشد اثر مفیدی داشته باشد. هدف دوم این تحقیق که تا حدودی با هدف اول همپوشانی دارد ارائه روشی جدید برای رمزشکنی است.

.3  تعاریف و روشها

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

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید