مقدمه آشنایی با رمزنگاری : هنگامی که کامپیوتر به شبکه ای وصل است و داده ها را منتقل می کند ، بهترین زمینه برای ایجاد اختلال در اطلاعات فراهم می شود ، بدین ترتیب که هکرها و افراد سودجو با ایجاد تغییر در داده ها به مقاصد خود می رسند.
گسترش و رشد بی سابقه اینترنت باعث ایجاد تغییرات گسترده در نحوه زندگی و فعالیت شغلی افراد ، سازمانها و موسسات شده است.
امنیت اطلاعات یکی از مسائل مشترک شخصیت های حقوقی و حقیقی است .
اطمینان از عدم دستیابی افراد غیر مجاز به اطلاعات حساس از مهمترین چالش های امنیتی در رابطه با توزیع اطلاعات در اینترنت است .
اطلاعات حساس که ما تمایلی به مشاهده آنان توسط دیگران نداریم، موارد متعددی را شامل می شود.
برخی از اینگونه اطلاعات بشرح زیر می باشند : اطلاعات کارت اعتباری شماره های عضویت در انجمن ها اطلاعات خصوصی جزئیات اطلاعات شخصی اطلاعات حساس در یک سازمان اطلاعات مربوط به حساب های بانکی هنگامی که با امنیت داده سر و کار داریم ، نیاز به اثبات هویت فرستنده و گیرنده ی پیغام داریم و در ضمن باید از عدم تغییر محتوای پیغام مطمئن شویم .
این سه موضوع یعنی محرمانگی و تصدیق هویت و جامعیت در قلب ارتباطات داده ی ای مدرن قرار دارند و می توانند از رمزنگاری استفاده کنند .
در اصل ، هدف از رمزنگاری نیز برقراری سه اصل محرمانگی ، هویت و جامعیت می باشد .
اغلب این مساله باید تضمین شود که یک پیغام فقط می تواند توسط کسانی خوانده شود که پیغام برای آنها ارسال شده است و دیگران این اجازه را ندارند .
روشی که تامین کننده ی این مساله باشد رمزنگاری نام دارد .
در فرآیند رمزنگاری برای محافظت از داده ی اصلی ، آنرا با استفاده از یک کلید ( رشته ای محدود از بیت ها ) به صورت رمز درمی آوریم تا کسی که داده ی حاصل شده را می خواند قادر به درک آن نباشد .
داده ی رمز شده به صورت یک سری بی معنی از بیت ها ، بدون داشتن رابطه ای مشخص با داده ی اصلی به نظر می رسد .
برای حصول متن اولیه ، دریافت کننده آنرا رمزگشایی می کند .
رمزنگاری یعنی تبدیل اطلاعات به یک شکل غیر قابل فهم و انتقال آن ، سپس برگرداندن اطلاعات رمزشده به حالت اولیه و قابل خواندن.
رمزنگاری با استفاده از الگوریتم های متعددی پیاده سازی می شود که برخی از الگوریتم ها قدمتی چند صد ساله دارند .
امروزه از رمزنگاری برای ایجاد امنیت در ارتباطات نظامی و دولتی و محرمانه ماندن پیام ها در ارسال و دریافت اطلاعات ، استفاده می شود.
فصل 2 مبانی رمزنگاری 1-2- اصطلاحات رمزنگاری : برای آشنایی با مقوله ی رمزنگاری نیاز است که برخی اصطلاحات رایج را تعریف کرد: کلید امنیت : کلید امنیت راه های امنیتی را برای حفظ امنیت ارائه می کند .
رمز گذاری : عمل پنهان کردن یک متن با استفاده از کلید امنیتی .
رمز گشایی : آشکار سازی متن رمز شده توسط کلید امنیتی .
رمزنگاری : انجام عملیات رمز گذاری و رمزگشایی .
متن ساده : متنی که هنوز رمزگذاری نشده است .
2-2- اجزاء رمزنگاری : رمز نگاری از دو جزء اصلی تشکیل شده است : 1-الگوریتم 2-کلید الگوریتم یک مبدل یا فرمول ریاضی است و کلید رشته ای از ارقام دودویی (صفر و یک) است که به خودی خود بی معنی است .
رمزنگاری مدرن فرض می کند که الگوریتم رمزنگاری شناخته شده است و یا می تواند کشف شود پس کلید است که باید مخفی نگاه داشته شود .
3-2- کلید ها در رمزنگاری: کلید ها در رمزنگاری به دو دسته ی عمده تقسیم می شوند: 1-کلید عمومی 2-کلید خصوصی تعریف کلید عمومی: - رمزنگاری با استفاده از کلید عمومی روشی است برای ایجاد یک ارتباط پنهان میان دو شخص بدون اینکه نیازی به تعویض کلیدهای خصوصی باشد.
همچنین با استفاده از این روش میتوان امضاهای دیجیتال را ایجاد کرد.
- اعداد یا کلماتی که با یک شخص یا سازمان در ارتباط می باشند .
تعریف کلید خصوصی: -کلید خصوصی برای بازگشایی اطلاعاتی که توسط کلید عمومی رمز گذاری شده ، استفاده می شود .
4-2- روش های رمزنگاری : روش های رمزنگاری نیز به دو دسته ی کلی تقسیم می شوند که عبارتند از : 1-روش متقارن 2-روش نامتقارن در روش متقارن ، هر دو طرفی که قصد رد و بدل کردن اطلاعات را دارند از یک کلید مشترک برای رمزگذاری و رمزگشایی استفاده می کنند .
در این حالت ، رمزگذاری و رمزگشایی اطلاعات ، دو فرآیند معکوس یکدیگرند مشکل اصلی این روش ، آن است که کلید مربوط به رمزنگاری باید بین دو طرف به اشتراک گذاشته شود و این سوال پیش می آید که دو طرف چگونه می توانند کلید را به طور امن بین یکدیگر رد و بدل کنند ؟
انتقال از طریق اینترانت ( شبکه ی داخلی ) یا به صورت فیزیکی تا حدی امن می باشد اما انتقال از طریق اینترنت به هیچ وجه درست نیست .
در این قبیل سیستم ها ، کلید های رمزگذاری و رمز گشایی یکسان هستند یا رابطه ی خیلی ساده ای با هم دارند .
این سیستم ها را سیستم های متقارن یا تک کلیدی هم می گویند .
روش نامتقارن ، برای حل مشکل انتقال کلید در روش متقارن ایجاد شد .
در این روش به جای کلید مشترک از یک جفت کلید ( عمومی / خصوصی ) استفاده می شود.
با توجه یه اینکه توسط کلید عمومی فقط می توان یک متن را رمزگذاری کرد ، فردی که قصد انتقال اطلاعات را به صورت رمزگذاری شده دارد ، اطلاعات را با کلید عمومی رمزگذاری کرده و برای فردی که مالک جفت کلید عمومی / خصوصی است میفرستد .
مالک کلید خصوصی قادر است تا متن رمز شده را با استفاده از کلید خصوصی خود ، رمزگشایی کند .
در این روش کلید های رمزگذاری و رمزگشایی متفاوت هستند و یا اینکه چنان رابطه ی پیچیده ای باهم دارند که کشف کلید رمزگشایی ، با در اختیار داشتن کلید رمزگذاری ، عملا ناممکن است .
مقایسه ی روش های رمزنگاری کلید متقارن و کلید نامتقارن: بحث های زیادی شده است که کدام یک از این دو روش مناسب تر هستند اما جواب مشخصی ندارد !
نتایجی که از تحقیق بر روی این دو الگوریتم به دست آمده این است که : طول پیغام هایی که با الگوریتم های کلید متقارن می تواند رمزنگاری شود از الگوریتم های کلید نامتقارن کمتر است .
الگوریتم های کلید متقارن الگوریتم های بهینه تری هستند .
وقتی بحث امنیت پیش می آید الگوریتم های کلید نامتقارن کارایی بیشتری دارند.
الگوریتم های کلید متقارن دارای سرعت بالاتر و الگوریتم های کلید نامتقارن دارای امنیت بالاتری هستند.
در پروتکل هایی که در اینترنت استفاده میشود ، استفاده از الگوریتم های کلید نامتقارن مناسب تر است.
5-2- تجزیه و تحلیل رمز: تجزیه و تحلیل رمز یا شکستن رمز، به کلیه اقدامات مبتنی بر اصول ریاضی و علمی اطلاق میگردد که هدف آن از بین بردن امنیت رمزنگاری و در نهایت باز کردن رمز و دستیابی به اطلاعات اصلی باشد.
در تجزیه و تحلیل رمز، سعی میشود تا با بررسی جزئیات مربوط به الگوریتم رمز و یا پروتکل رمزنگاری مورد استفاده و به کار گرفتن هرگونه اطلاعات جانبی موجود، ضعفهای امنیتی احتمالی موجود در سیستم رمزنگاری یافته شود و از این طریق به نحوی کلید رمز به دست آمده و یا محتوای اطلاعات رمز شده استخراج گردد.
تجزیه و تحلیل رمز یا شکستن رمز، به کلیه اقدامات مبتنی بر اصول ریاضی و علمی اطلاق میگردد که هدف آن از بین بردن امنیت رمزنگاری و در نهایت باز کردن رمز و دستیابی به اطلاعات اصلی باشد.
تجزیه و تحلیل رمز، گاهی به منظور شکستن امنیت یک سیستم رمزنگاری و به عنوان خرابکاری و یک فعالیت ضد امنیتی انجام میشود و گاهی هم به منظور ارزیابی یک پروتکل یا الگوریتم رمزنگاری و برای کشف ضعفها و آسیبپذیریهای احتمالی آن صورت میپذیرد.
به همین دلیل، تجزیه و تحلیل رمز، ذاتاً یک فعالیت خصومتآمیز به حساب نمیآید؛ اما معمولاً قسمت ارزیابی و کشف آسیبپذیری را به عنوان جزئی از عملیات لازم و ضروری در هنگام طراحی الگوریتمها و پروتکلهای جدید به حساب میآورند و در نتیجه تجزیه و تحلیل رمز بیشتر فعالیتهای خرابکارانه و ضد امنیتی را به ذهن متبادر میسازد.
با توجه به همین مطلب از اصطلاح حملات تحلیل رمز برای اشاره به چنین فعالیتهایی استفاده میشود.
تحلیل رمز، در اصل اشاره به بررسی ریاضی الگوریتم (یا پروتکل) و کشف ضعفهای احتمالی آن دارد؛ اما در خیلی از موارد فعالیت خرابکارانه، به جای اصول و مبنای ریاضی، به بررسی یک پیادهسازی خاص آن الگوریتم (یا پروتکل) در یک کاربرد خاص میپردازد و با استفاده از امکانات مختلف سعی در شکستن رمز و یافتن کلید رمز مینماید.
به این دسته از اقدامات خرابکارانه، حملات جانبی گفته میشود.
فصل 3 الگوریتم های رمزنگاری در رمزنگاری از الگوریتم های متعددی استفاده می شود که پایه و اساس آنها ، الگوریتم های ساده ای هستند مانند : 1-الگوریتم جایگزینی 2-الگوریتم جایگزینی جداگانه 3-الگوریتم جا به جایی 4-الگوریتم جا به جایی ضربدری 5-الگوریتم پولی بایوس 1-3- رمزنگاری به روش جایگزینی : این روش یک روش ساده ی رمزنگاری است که در آن جای حروف متنی که میخواهد رمزگذاری شود با دیگر حروف الفبا جایگزین می شود .
به عنوان مثال هر حرف جای خود را با حرف بعدی خود عوض می کند .
(شکل 1) در این روش فرد گیرنده ی پیغام ، کلید رمزگشایی ( جدول جایگذاری کد ) را در اختیار دارد .
برای رمزگشایی یک پیام ، هر حرف را با حروف جدول جایگذاری کد ، جا به جا می کنند .
(شکل 2 ) ( شکل-1 ) ( شکل – 2 ) به عنوان مثال : همان طور که ملاحظه می شود ، هر حرف جای خود را با حرف بعدی ، عوض می کند و متن رمز شده حاصل می شود.
جلو بردن سه حرفی به جای یک حرف نشان می دهد که با اضافه کردن سطوح پیچیدگی ، کار بیشتر می شود و پی بردن به پیام پنهان شده از این راه سخت تر می شود.
شاید به نظر برسد که پی بردن به متن رمز شده توسط این روش ، ساده باشد اما اگر به جای اینکه به کد هر حرف یک واحد اضافه کنیم ، چندین واحد به آن اضافه کنیم و یا اعمال دیگری روی آن انجام دهیم ، رمزگشایی کار چندان ساده ای نخواهد بود .
همچنین می توان برای یک قفل چندین کلید متفاوت داشت که تعریف چند کلید متفاوت به منظور افزایش امنیت صورت می گیرد .
پس می توان اینگونه تعریف کرد که شخص اول متن رمز شده را با کلید اول رمزگشایی کند ، شخص دوم با کلید دوم و ...
بدین ترتیب اگر شخص دوم سعی کند متن رمز شده ای که با کلید اول باز می شود را با کلید خودش ( کلید دوم ) رمزگشایی کند ، قادر نخواهد بود تا محتوای پیام رمز شده را درک کند.
برای روشن شدن موضوع فرض کنید متنی داریم که آنرا رمز گذاری کرده و به شخص B می دهیم تا متن ما را به شخص A برساند ( توجه شود که هر شخص ، کلید مربوط به خود را دارد ).
اگر شخص B سعی کند متن را با کلید مربوط به خودش باز کند ، به یک متن غیر قابل خواندن میرسد.( شکل 3 ) ( شکل -3 ) و شخص A که دارای کلیدی است که متن را با آن رمز کرده ایم ، پس از رمز گشایی ، به متن مورد نظر دست پیدا می کند .
( شکل 4 ) ( شکل -4 ) روش رمزنگاری جایگزینی هزاران سال قدمت دارد و مخترع آن " سزار " بود که در جنگ ها از این روش استفاده می کرد به همین دلیل به این نوع رمزنگاری ، رمزنگاری سزار نیز گفته می شود.
مشکل عمده ی روش سزار این است که توسط " زبان شناسی" به راحتی می توان به متن ساده دست پیدا کرد.
2-3- زبان شناسی چیست ؟
دانستن واقعیت ها درباره ی کاربرد کلی کلمات و حروف در زبان را زبان شناسی گوییم.
به بیان ساده ، علم جایگاه حروف و کلمات در متن ، زبان شناسی در رمزنگاری را تشکیل می دهد.
به عنوان مثال تکرار حروف را در زبان انگلیسی ببینید : حرف E بیشترین کاربرد را دارد و بعد از آن حروف a , o, t ,n.
حرف T بیشترین کاربرد را در شروع کلمات دارد .
حرف E بیشترین کاربرد را در پایان کلمات دارد .
حروف A و i تنها حروف تکی در انگلیسی هستند .
کلمات of