الگوریتم رمزنگاری

Download Report

Transcript الگوریتم رمزنگاری

‫امنیت اطالعات در شبکه‬
‫‪1‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ -1‬محرمانه بودن اطالعات‬
‫‪ -2‬احراز هویت‬
‫‪ -3‬سالمتی داده ها‬
‫‪ -4‬کنترل دسترس ی‬
‫‪ -5‬در دسترس بودن‬
‫‪2‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ ‬محرمانه بودن اطالعات‪ :‬محرمانه نگه داشتن اطالعات و ارسال و‬
‫رمزنگاری داده ها سرویس ی است که شبکه های امروزی باید بتوانند به‬
‫متقاضیان ارائه دهند‪.‬‬
‫‪ ‬احراز هویت ‪:‬هر مکانیزمی که بتواند هویت افراد را بدون هیچ ابهامی تایید‬
‫یا رد کند سرویس احراز هویت گویند‪.‬‬
‫‪ ‬سالمت داده ها‪ :‬اطمینان از دست نخوردگی و عدم جعل پیام در طول مسیر‬
‫و همچنین اطمینان از این که داده ها با اطالعات مخرب مثل یک ویروس آلوده‬
‫نشده اند‪.‬‬
‫‪3‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ ‬کنترل دسترس ی‪ :‬کنترل دسترس ی افرادی که مجاز نمیباشند‪.‬‬
‫همچنین تنظیم سطوح دسترس ی افراد مختلف به شبکه‪ .‬مثال بعض ی‬
‫ها فقط بتوانند بخوانند یا بنویسند یا تغییر دهند‪.‬‬
‫‪ ‬در دسترس بودن ‪:‬تمامی تجهیزات شبکه باید بودن هیچ مشکل و‬
‫به راحتی در دسترس آنهایی که مجاز به استفاده از شبکه هستند‬
‫باشد‪.‬‬
‫هر یک از موارد فوق در شبکه دچار نقصان شود گوییم به شبکه حمله‬
‫شده است‪.‬‬
‫‪4‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ -1 ‬وقفه‬
‫‪ -2 ‬استراق سمع‬
‫‪ -3 ‬دستکاری داده ها‬
‫‪ -4 ‬افزودن اطالعات‬
‫‪ ‬و ‪......‬‬
‫‪5‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ ‬به حمله ای که با شروع آن به صورت علنی کار شبکه مختل می‬
‫گردد یک حمله فعال گویند‪.‬‬
‫‪ ‬حمله ای که شبکه را دچار اخالل نمی کند و عموما در دریافت و‬
‫ارسال اطالعات مشکلی به وجود نمی آورد حمله غیر فعال‬
‫گویند‪.‬‬
‫‪ ‬حمله غیر فعال خطرناک ترین نوع حمله در شبکه ها میباشد‪.‬‬
‫چرا؟‬
‫‪6‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ -1 ‬استفاده از دیواره آتش (‪)Firewall‬‬
‫‪ -2 ‬استفاده از رمزنگاری‬
‫‪7‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪8‬‬
‫سیستمی است که بین کاربران یک شبکه ی محلی و اینترنت واقع میگردد‪ .‬نظارت بر‬
‫تمامی سطوح و دسترس ی ها و نیز نظارت کامل بر خروجی اطالعات از جمله ویژگی‬
‫های این سیستم به شمار می رود‪.‬‬
‫بسته های ‪ IP‬قبل از ورود به شبکه اینترنت ابتدا وارد دیواره آتش ی میشوند و‬
‫منتظر میمانند تا طبق معیارهای امنیتی و نظارتی و حفاظتی پردازش شوند‪.‬‬
‫در واقع دیواره آتش مکانی است برای ایست و بازرس ی از بسته های اطالعاتی به‬
‫گونه ای که بسته های اطالعاتی بر اساس قواعد امنیتی و حفاظتی پردازش شده و‬
‫برای آنها مجوز عبور یا عدم عبور صادر گردد‪.‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ -1 ‬اجازه خروج صادر گردد‪.‬‬
‫‪ -2 ‬بسته حذف گردد‪.‬‬
‫‪ -3 ‬عالوه بر حذف بسته پاسخ مناسب به طرف‬
‫فرستنده ارسال گردد‪.‬‬
‫‪9‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ -1‬ترافیک‬
‫‪-2‬تاخیر‬
‫‪ -3‬ازدحام‬
‫‪ -4‬بن بست‬
‫‪10‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫اگر ‪ un‬میزان متوسط انتقال بسته های ‪ IP‬شبکه ‪n‬‬
‫اگر ‪ um‬میزان متوسط انتقال بسته های ‪ IP‬شبکه ‪m‬‬
‫اگر ‪ r‬احتمال عبور بسته ‪ pn‬و ‪ q‬احتمال بسته ‪ pm‬باشد‬
‫‪=(1-q)um+(1-r)un‬متوسط بسته های حذف شده‬
‫‪=r.un‬متوسط انتقال بسته از دیواره آتش به شبکه ‪m‬‬
‫‪=q.um‬متوسط انتقال بسته از دیواره آتش به شبکه ‪n‬‬
‫‪11‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫با توجه به الیه الیه بودن معماری یک شبکه‪ ،‬ناگزیر یک دیواره آتش نیز الیه‬
‫الیه خواهد بود‪.‬‬
‫قسمت اعظم کار دیوار آتشین تحلیل و پردازش سرآیند و پی آیندی است که‬
‫در هر مرحله به داده افزوده میگردد‪.‬‬
‫در مدل ‪ tcp/ip‬بیشترین توجه به الیه های اینترنت – انتقال و کاربردی‬
‫است‪.‬‬
‫‪‬‬
‫الیه اول دیواره آتش‪ :‬محتوای خود داده بررس ی می گردد‪.‬‬
‫الیه دوم دیواره آتش‪ :‬فیلدهای بسته ‪ tcp‬و ‪ udp‬بررس ی میگردد‪.‬‬
‫الیه سوم فیلد بسته های ‪ IP‬بررس ی می گردد‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪12‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪13‬‬
‫دیواره آتش در واقع سیاست مدیر و مسئول شبکه را پیاده سازی می نماید‪ .‬پس‬
‫از یک ورودی مناسب باید این سیاست ها را از طرف کاربر یا مدیر دریافت نماید‬
‫و سیستم گزارش گیری مناسبی را در اختیار استفاده کنندگان قرار دهد‪.‬‬
‫این اجزا عبارت اند از‪:‬‬
‫‪ -1‬واسط محاوره ای ساده ورودی ‪ /‬خروجی‬
‫‪ -2‬سیستم ثبت‬
‫‪ -3‬سیستم هشدار دهنده‬
‫‪ -4‬راه حل نهایی‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫‪‬‬
‫سیستم محاوره ای‬
‫برای تبادل اطالعات و سهولت در تنظیم قواعد امنیتی و ارائه گزارش‪ ،‬به یک‬
‫واسط کاربر نیاز است (که مستقل از دیواره آتش است) تا حجم پردازش اضافی‬
‫روی سیستم تحمیل نکند‪.‬‬
‫‪ ‬سیستم ثبت‬
‫‪‬‬
‫‪14‬‬
‫برای باال بردن ضریب امنیتی و اطمینان در شبکه دیوار آتش باید بتواند حتی در‬
‫مواقعی که اجازه ورود و خروج یک بسته صادر می شود اطالعاتی در مورد آن‬
‫بسته (مانند مبدا و مقصد بسته‪ ،‬شماره پورت ها مبدا و مقصد‪ ،‬سرآیند‪،‬‬
‫محتوای پیام) ذخیره کند تا در صورت حمله یا نفوذ بتوان این مساله را رسیدگی‬
‫نمود‪.‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ ‬در صورت بروز هرگونه مشکل یا انتقال مشکوک (مثال ارتباطاتی که‬
‫بصورت بی هدف یا مکرر در طی روز برقرار میشود یا آنکه اطالعات‬
‫ارسالی مفهوم خاص ی نداشته باشد) دیواره آتش می تواند مسئول‬
‫شبکه را مطلع و در صورت لزوم رفع تکلیف نماید‪.‬‬
‫‪15‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫‪16‬‬
‫با تمام نظارتی که بر تردد بسته های اطالعاتی حین ورود و خروج شبکه میشود‬
‫باز هم می توان زیرکانه از مرز دیواره آتش عبور نمود‪ .‬بهترین حفاظت برای‬
‫جلوگیری از فاش شدن اطالعات محرمانه به دنیای خارج ‪ ،‬نابود کردن خط‬
‫ارتباطی شبکه به دنیای خارج است‪ .‬چرا که می توان اطالعات سری را رمز و‬
‫فشرده کرد و آن را به عنوان بیت کم ارزش از نقاط تصویر یک گل رز به عنوان‬
‫کارت پستال تبریک سال نو ارسال نمود‪.‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫‪17‬‬
‫کلمه ی ‪ Cryptography‬برگرفته از لغت یونانی ‪ krypots‬به مفهوم‬
‫محرمانه ‪ Graphein‬به معنای نوشتن است‪ .‬از اولین افرادی که از رمزنگاری‬
‫استفاده نمودند سزار امپراتور روم را می توان نام برد‪.‬‬
‫‪‬‬
‫رمز نگاری دانش تغییر دادن متن به کمک یک کلید رمز نگاری و یک الگوریتم‬
‫رمزنگاری است‪ .‬به طوری که شخص ی که از کلید و الگوریتم مطلع است قادر به‬
‫استخراج متن اصلی از متن رمز شده باشد‪.‬‬
‫‪‬‬
‫رمزنگاری از طریق پنهان نمودن الگوریتم رمزنگاری نیز منسوخ است‪ .‬در روش های‬
‫جدید فرض میشود که همه الگوریتم را می دانند و تنها کلید مخفی است‪.‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ -1‬متن ساده ‪:‬اطالعات اوليه كه هنوز رمز نگاري نشده اند‬
‫‪ -2‬متن رمزي ‪:‬اطالعاتي كه رمز نگاري شده اند‬
‫‪ -3‬الگوريتم رمز نگاري ‪:‬الگوريتمي كه متن ساده را به متن رمزي تبديل مي كند‬
‫‪-4‬كليد رمز ‪:‬داده اي است كه الگوريتم رمز نگاري متن ساده را به متن رمزي تبديل مي‬
‫كند و برعكس‬
‫‪ -5‬رمز نگاري ‪:‬فرايند تبديل متن ساده به متن رمزي است‬
‫‪ -6‬رمز گشايي ‪:‬فرايند تبديل متن رمزي به متن ساده است‬
‫‪18‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ -1‬محرمانه سازي ‪:‬‬
‫اطالعات به هنگام ارسال يا ذخیره شدن از ديد افراد غیر مجاز پنهان خواهد شد ‪.‬‬
‫‪ -2‬ت ـمــامـيــت ‪:‬‬
‫تغيیرات اعمال شده در اطالعات ارسالي مشخص خواهد شد ‪.‬‬
‫‪ -3‬اعتبار سنجي ‪:‬‬
‫مي توان منبع اطالعات را اعتبار سنجي كرد‪.‬‬
‫‪19‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫به طور کلی‪ ،‬سرویس رمزنگاری‪ ،‬به قابلیت و امکانی اطالق میشود که بر اساس فنون رمزنگاری‬
‫حاصل میگردد‪ .‬اما در رمزنگاری پیشرفته سرویسهای مختلفی از جمله موارد زیر ارائه‬
‫گردیدهاست‪:‬‬
‫• محرمانگی یا امنیت محتوا ‪ :‬ارسال یا ذخیره اطالعات به نحوی که تنها افراد مجاز بتوانند از‬
‫محتوای آن مطلع شوند‪ ،‬که همان سرویس اصلی و اولیه پنهان کردن مفاد پیام است‪.‬‬
‫‪‬سالمت محتوا ‪ :‬به معنای ایجاد اطمینان از صحت اطالعات و عدم تغییر محتوای اولیه آن در‬
‫حین ارسال است‪ .‬تغییر محتوای اولیه اطالعات ممکن است به صورت اتفاقی (در اثر مشکالت‬
‫مسیر ارسال) و یا به صورت عمدی باشد‪.‬‬
‫‪‬احراز هویت یا اصالت محتوا ‪ :‬به معنای تشخیص و ایجاد اطمینان از هویت ارسالکننده‬
‫اطالعات و عدم امکان جعل هویت افراد میباشد‪.‬‬
‫‪ ‬عدم انکار‪ :‬به این معنی است که ارسالکننده اطالعات نتواند در آینده ارسال آن را انکار یا‬
‫مفاد آن را تکذیب نماید‪.‬‬
‫‪20‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫به طور کلی‪ ،‬یک پروتکل رمزنگاری‪ ،‬مجموعهای از قواعد و روابط ریاض ی است که چگونگی ترکیب‬
‫کردن الگوریتمهای رمزنگاری و استفاده از آنها به منظور ارائه ی یک سرویس رمزنگاری خاص در‬
‫یک کاربرد خاص را فراهم میسازد‪.‬‬
‫ا‬
‫معموال یک پروتکل رمزنگاری مشخص میکند که اطالعات موجود در چه قالبی باید قرار گیرند‪.‬‬
‫چه روش ی برای تبدیل اطالعات به عناصر ریاض ی باید اجرا شود‬
‫کدامیک از الگوریتمهای رمزنگاری و با کدام پارامترها باید مورد استفاده قرار گیرند‬
‫روابط ریاض ی چگونه به اطالعات عددی اعمال شوند‬
‫چه اطالعاتی باید بین طرف ارسالکننده و دریافتکننده رد و بدل شود‬
‫چه مکانیسم ارتباطی برای انتقال اطالعات مورد نیاز است‬
‫به عنوان مثال میتوان به پروتکل تبادل کلید دیفی‪-‬هلمن برای ایجاد و تبادل کلید رمز مشترک بین‬
‫دو طرف اشاره نمود‪.‬‬
‫‪21‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫الگوریتم رمزنگاری‪ ،‬به هر الگوریتم یا تابع ریاض ی گفته میشود که به علت دارا بودن خواص‬
‫مورد نیاز در رمزنگاری‪ ،‬در پروتکلهای رمزنگاری مورد استفاده قرار گیرد‪ .‬اصطالح الگوریتم‬
‫رمزنگاری یک مفهوم جامع است و الزم نیست هر الگوریتم از این دسته‪ ،‬به طور مستقیم برای‬
‫ا‬
‫رمزگذاری اطالعات مورد استفاده قرار گیرد‪ ،‬بلکه صرفا وجود کاربرد مربوط به رمزنگاری مد‬
‫نظر است‪ .‬در گذشته سازمانها و شرکتهایی که نیاز به رمزگذاری یا سرویسهای دیگر‬
‫رمزنگاری داشتند‪ ،‬الگوریتم رمزنگاری منحصربهفردی را طراحی مینمودند‪ .‬به مرور زمان‬
‫مشخص گردید که گاهی ضعفهای امنیتی بزرگی در این الگوریتمها وجود دارد که موجب‬
‫سهولت شکسته شدن رمز میشود‪ .‬به همین دلیل امروزه رمزنگاری مبتنی بر پنهان نگاه داشتن‬
‫الگوریتم رمزنگاری منسوخ شدهاست و در روشهای جدید رمزنگاری‪ ،‬فرض بر این است که‬
‫اطالعات کامل الگوریتم رمزنگاری منتشر شدهاست و آنچه پنهان است فقط کلید رمز است‪.‬‬
‫‪22‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ -A‬رمزهای جانشينی‪ :‬قدیمی ترین نوع رمزنگاری میباشد‪ ،‬که در آن هر حرف یا‬
‫هر گروهی از حروف به جای حرف یا گروهی دیگر قرار میگیرد تا پنهان سازی‬
‫صورت پذیرد‪ .‬که این روش به دو روش زیر تقسیم میگردد‪:‬‬
‫‪ ‬تک الفبایی‬
‫‪‬چند الفبایی‬
‫مثال روش سزار‬
‫مدل بهينه سزار‪:‬طول کليد ‪26‬‬
‫حفظ فراوانی حروف و کلمه ها‬
‫‪23‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪A B C D E F G H I J K M N O P Q R S T U V W X Y Z‬‬
‫متن ساده‬
‫‪D E F G H I J K M N O P Q R S T U V W X Y Z A B C‬‬
‫متن رمز شده‬
‫‪‬‬
‫‪24‬‬
‫در این دسته از روشها از یک الفبای رمز برای رمزنگاری هر پیام استفاده میشود‪.‬‬
‫دو مثال‪:‬‬
‫‪ -1‬روش سزار‬
‫در این روش الگوریتم رمزنگاری و رمزگشایی مشخص بود و تنها ‪ 25‬کلید داشت‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫‪25‬‬
‫با استفاده از این روش ابتدا حروف را در‬
‫یک ماتریس پنج در پنج قرار می دهیم‪.‬‬
‫سپس برای هر حرف در متن اصلی یک عدد‬
‫دو رقمی که موقعیت سطرو ستون آن‬
‫حرف را در جدول نمایش میدهد قرار می‬
‫دهیم‪ .‬در سطر ‪ 2‬و ستون ‪ 4‬دو حرف باهم‬
‫ترکیب شده اند بنابراین در زمان رمزگشایی‬
‫براساس نیاز بدون حروف در یک کلمه بین‬
‫آن دو انتخاب میشود‪ .‬به عنوان مثال‬
‫‪E‬‬
‫‪M‬‬
‫‪I‬‬
‫‪T‬‬
‫‪E‬‬
‫‪H‬‬
‫‪T‬‬
‫‪S‬‬
‫‪I‬‬
‫‪W‬‬
‫‪O‬‬
‫‪15‬‬
‫‪32‬‬
‫‪24‬‬
‫‪44‬‬
‫‪15‬‬
‫‪23‬‬
‫‪44‬‬
‫‪43‬‬
‫‪24‬‬
‫‪52‬‬
‫‪34‬‬
‫‪ N‬متن ساده‬
‫متن رمز‬
‫‪33‬‬
‫شده‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪26‬‬
‫یکی از روشهای بهبود یک الفبایی استفاده از چندین جانشینی یک الفبایی است که‬
‫دو ویژگی کلی داشته باشند‪ .‬اول از چندین قاعده جانشینی مرتبط با هم استفاده‬
‫کنند و دوم یک کلید مشخص کند که برای هر تبدیل داده شده از کدام قاعده‬
‫خاص استفاده شود‪.‬‬
‫معروفترین و در عین حال یکی از ساده ترین آنها الگوریتم رمزنگاری کلید اتوماتیک‬
‫ویجنر میباشد‪.‬‬
‫در این روش مجموعه ای از ‪ 26‬رمز سزاری با کلیدی برابر ‪ 0‬تا ‪ 25‬شیفت به چپ‬
‫مطابق جدول اسالید ص بعد استفاده میشود‪.‬کلید اول با یک شیفت به چپ کلید‬
‫دوم با دو شیفت به چپ و کلید سوم با ‪ 3‬شیفت و ‪ .....‬تولید میشوند‪.‬کلید روش‬
‫سزار ‪ 3‬شیفت به چپ یعنی سطری با مقدار ‪ d‬میباشد‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫سپس حروف‬
‫متن با استفاده‬
‫کلیدهای‬
‫از‬
‫رمز‬
‫مختلف‬
‫میشوند‪.‬‬
‫‪27‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫‪28‬‬
‫کلمه به عنوان کلید‪:‬در این روش ابتدا یک کلمه دلخواه به عنوان کلید انتخاب میشود و سپس بر‬
‫اساس حروف این کلمه سطر مرتبط برای هر حرف متن انتخاب میشود‪.‬‬
‫‪E‬‬
‫‪M‬‬
‫‪I‬‬
‫‪T‬‬
‫‪E‬‬
‫‪H‬‬
‫‪T‬‬
‫‪S‬‬
‫‪I‬‬
‫‪W‬‬
‫‪N O‬‬
‫‪E‬‬
‫‪P‬‬
‫‪Y‬‬
‫‪T‬‬
‫‪E‬‬
‫‪P‬‬
‫‪Y‬‬
‫‪T‬‬
‫‪E‬‬
‫‪P‬‬
‫‪Y‬‬
‫‪T‬‬
‫‪I‬‬
‫‪B‬‬
‫‪G‬‬
‫‪M‬‬
‫‪I‬‬
‫‪W‬‬
‫‪R‬‬
‫‪L‬‬
‫‪M‬‬
‫‪L‬‬
‫‪ G M‬متن رمز شده‬
‫‪E‬‬
‫‪M‬‬
‫‪I‬‬
‫‪T‬‬
‫‪E‬‬
‫‪H‬‬
‫‪T‬‬
‫‪S‬‬
‫‪I‬‬
‫‪W‬‬
‫‪N O‬‬
‫‪M‬‬
‫‪I‬‬
‫‪T‬‬
‫‪E‬‬
‫‪H‬‬
‫‪T‬‬
‫‪S‬‬
‫‪I‬‬
‫‪W‬‬
‫‪O‬‬
‫‪N‬‬
‫‪F‬‬
‫کلید‬
‫‪Q‬‬
‫‪U‬‬
‫‪B‬‬
‫‪X‬‬
‫‪L‬‬
‫‪A‬‬
‫‪L‬‬
‫‪A‬‬
‫‪E‬‬
‫‪K‬‬
‫‪B‬‬
‫‪S‬‬
‫متن رمز شده‬
‫‪E‬‬
‫‪M‬‬
‫‪I‬‬
‫‪T‬‬
‫‪E‬‬
‫‪H‬‬
‫‪T‬‬
‫‪S‬‬
‫‪I‬‬
‫‪W‬‬
‫‪N O‬‬
‫‪T‬‬
‫‪H‬‬
‫‪Z‬‬
‫‪G‬‬
‫‪C‬‬
‫‪V‬‬
‫‪C‬‬
‫‪K‬‬
‫‪C‬‬
‫‪G‬‬
‫‪S‬‬
‫‪F‬‬
‫کلید‬
‫‪X‬‬
‫‪T‬‬
‫‪H‬‬
‫‪Z‬‬
‫‪G‬‬
‫‪C‬‬
‫‪V‬‬
‫‪C‬‬
‫‪K‬‬
‫‪C‬‬
‫‪G‬‬
‫‪S‬‬
‫متن رمز شده‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫متن اصلی‬
‫کلید‬
‫متن اصلی‬
‫متن اصلی‬
‫رمزهاي جانشيني ترتيب نماد هاي متن ساده را حفظ ميكنند ولي آنها را تغيیر مي دهند‪ .‬رمز‬
‫هاي جابه جايي ترتيب حروف را عوض مي كنند ولي آنها را تغيیر نمي دهند‪.‬‬
‫برای کلید از کلمه یا عبارتی که حروف تکراری ندارد استفاده می نماییم‪.‬‬
‫شماره گذاری در زیر کلید بر مبنای حروف الفبا است یعنی در مثال بعدی ابتدا ‪ A‬شماره‬
‫گذاری می شود‪ .‬سپس ‪ B‬و‪ ......‬و در نهایت به ‪ M‬مقدار ‪ 7‬داده میشود‪.‬‬
‫‪29‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫يك مثال از جابه جايي ستوني‪:‬‬
‫‪30‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫توابع بدون کلید‬
‫‪‬‬
‫توابع مبتنی بر کلید‬
‫تا اینجا‬
‫‪here‬‬
‫◦ توابع درهمساز‬
‫◦ تبدیلهای یکطرفه‬
‫◦ الگوریتمهای کلید متقارن‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫الگوریتمهای رمز بلوکی‬
‫الگوریتمهای رمز دنبالهای‬
‫توابع تصدیق پیام‬
‫الگوریتمهای کلید نامتقارن‬
‫الگوریتمهای مبتنی بر تجزیه اعداد صحیح‬
‫الگوریتمهای مبتنی بر لگاریتم گسسته‬
‫الگوریتمهای مبتنی بر منحنیهای بیضوی‬
‫◦ الگوریتمهای امضای رقومی‬
‫الگوریتمهای رمزنگاری بسیار متعدد هستند‪ ،‬اما تنها تعداد اندکی از آنها به صورت استاندارد‬
‫درآمدهاند‪.‬‬
‫‪31‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫به هر رویه خوش تعریف یا تابع ریاض ی که یک حجم‬
‫ا‬
‫زیاد داده (احتماال حجم نامشخص ی از داده) را به یک‬
‫عدد طبیعی تبدیل کند یک تابع هش یا تابع درهمسازی‬
‫میگویند‪ .‬عدد طبیعی حاصل از تابع هش معموال به‬
‫عنوان اندیس یک آرایه مورد استفاده است‪ .‬مقادیری‬
‫حاصل از این تابع را معموال مقدار هش یا فقط هش‬
‫میخوانند‪.‬‬
‫توابع درهمسازی بیشتر برای سرعت بخشیدن در‬
‫جستوجوی جداول یا فشردهسازی دادهها استفاده‬
‫میشوند مثل جستجوی چیزی در یک پایگاه داده‪،‬‬
‫تشخیص رکوردهای تکراری در حجم زیاد داده یا‬
‫کشیدگیهای مشابه در دنباله دیانای و بسیاری‬
‫کاربردهای مشابه‪.‬‬
‫‪32‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪33‬‬
‫‪‬‬
‫الگوريتمهای کليد متقارن‪:‬‬
‫‪‬‬
‫الگوريتمهای کليد نامتقارن (کليد عمومی)‪:‬‬
‫◦ رمز گذاری و رمز برداری با يک کليد انجام می گیرد‪.‬‬
‫◦ )‪DES (Data Encryption Standard‬‬
‫◦ ‪Triple DES‬‬
‫◦ هر فرد يک کليد عمومی و يک کليد خصوص ی دارد‪.‬‬
‫◦ بر اساس قوانین زير عمل می کند‪:‬‬
‫‪D(E(P))=P ‬‬
‫‪ ‬استنتاج ‪ D‬از ‪ E‬بسيار بسيار دشوار است‪.‬‬
‫‪ E ‬را نمی توان به ساده گی کشف کرد‪.‬‬
‫‪ ‬دفی هلمن و ‪ RSA‬نموته ای از اين الگوريتمها ست‪.‬‬
‫‪ ‬کاربرد در امضای ديجيتال‪.‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫ا‬
‫ن‬
‫ن‬
‫ی‬
‫اصوال رمزنگار کلید متقار و کلید نامتقار دارای دو ماهیت متفاوت هستند و‬
‫کاربردهای متفاوتی نیز دارند‪ .‬بنابراین مقایسه این دو نوع رمزنگاری بدون توجه به کاربرد و‬
‫سیستم موردنظر کار دقیقی نخواهد بود‪ .‬اما اگر معیار مقایسه‪ ،‬به طور خاص‪ ،‬حجم و‬
‫زمان محاسبات مورد نیاز باشد‪ ،‬باید گفت که با در نظر گرفتن مقیاس امنیتی معادل‪،‬‬
‫الگوریتمهای رمزنگاری متقارن خیلی سریعتر از الگوریتمهای رمزنگاری نامتقارن میباشند‪.‬‬
‫‪34‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪‬‬
‫‪‬‬
‫‪35‬‬
‫رمزنگاری کلید متقارن یا تک کلیدی‪ ،‬به آن دسته از الگوریتمها‪ ،‬پروتکلها و سیستمهای‬
‫رمزنگاری گفته میشود که در آن هر دو طرف رد و بدل اطالعات از یک کلید رمز یکسان برای‬
‫عملیات رمزگذاری و رمزگشایی استفاده میکنند‪ .‬در این قبیل سیستمها‪ ،‬یا کلیدهای‬
‫رمزگذاری و رمزگشایی یکسان هستند و یا با رابطهای بسیار ساده از یکدیگر قابل استخراج‬
‫میباشند و رمزگذاری و رمزگشایی اطالعات نیز دو فرآیند معکوس یکدیگر میباشند‪.‬‬
‫واضح است که در این نوع از رمزنگاری‪ ،‬باید یک کلید رمز مشترک بین دو طرف تعریف گردد‪.‬‬
‫ا‬
‫چون کلید رمز باید کامال محرمانه باقی بماند‪ ،‬برای ایجاد و رد و بدل کلید رمز مشترک باید از‬
‫کانال امن استفاده نمود یا از روشهای رمزنگاری نامتقارن استفاده کرد‪ .‬نیاز به وجود یک‬
‫کلید رمز به ازای هر دو نفر درگیر در رمزنگاری متقارن‪ ،‬موجب بروز مشکالتی در مدیریت‬
‫کلیدهای رمز میگردد‪.‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫در روش فوق ‪ ،‬هر کامپيوتر دارای يک کليد رمز ( کد ) بوده که از آن برای رمزنگاری يک بسته‬
‫اطالعاتی قبل از ارسال اطالعات بر روی شبکه و يا کامپيوتر ديگر ‪ ،‬استفاده می نمايد‪ .‬دراين روش‬
‫الزم است در ابتدا مشخص گردد که کداميک از کامپيوترها قصد مبادله اطالعاتی با يکديگر را‬
‫دارند ‪ ،‬پس از مشخص شدن هر يک از کامپيوترها‪ ،‬در ادامه کليد رمز بر روی هر يک از سيستم ها‬
‫می بايست نصب گردد‪ .‬اطالعات ارسالی توسط کامپيوترهای فرستنده با استفاده از کليد رمز ‪ ،‬رمز‬
‫نگاری شده وسپس اطالعات رمز شده ارسال خواهند شد‪ .‬پس از دريافت اطالعات رمز شده‬
‫توسط کامپيوترهای گیرنده ‪ ،‬با استفاده از کليد رمز اقدام به بازگشائی رمز و برگرداندن اطالعات‬
‫ا‬
‫بصورت اوليه و قابل استفاده خواهد شد ‪ .‬مثال فرض کنيد پيامی را برای يکی از دوستان خود رمز و‬
‫سپس ارسال می نمائيد ‪ .‬شما برای رمز نگاری اطالعات از روش ی استفاده نموده ايد که بر اساس آن‬
‫ا‬
‫هر يک از حروف موجود در متن پيام را به دو حرف بعد از خود تبديل کرده ايد‪ .‬مثال حروف ‪A‬‬
‫موجود در متن پيام به حروف ‪ C‬و حروف ‪ B‬به حروف ‪ D‬تبديل می گردند‪ .‬پس از ارسال پيام رمز‬
‫شده برای دوست خود ‪ ،‬می بايست با استفاده از يک روش ايمن و مطمئن کليد رمز را نیز برای وی‬
‫مشخص کرد‪ .‬در صورتيکه گیرنده پيام دارای کليد رمز مناسب نباشد ‪ ،‬قادر به رمز گشائی و‬
‫استفاده از اطالعات نخواهد بود‪ .‬در چنین حالتی می بايست به دوست خود متذکر گرديد که کليد‬
‫رمز ‪ " ،‬شيفت دادن هر حرف بسمت جلو و به اندازه دو واحد است " ‪ .‬گیرنده پيام با انجام عمليات‬
‫معکوس قادر به شکستن رمز و استفاده از اطالعات خواهد بود‪.‬‬
‫‪36‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫در این روش هر دو طرفی که قصد رد و بدل اطالعات را دارند از یک کلید مشترک برای‬
‫رمزگذاری و نیز بازگشایی رمز استفاده میکنند‪.‬در این حالت بازگشایی و رمزگذاری اطالعات‬
‫دو فرآیند معکوس یکدیگر میباشند‪ .‬مشکل اصلی این روش این است که کلید مربوط به‬
‫رمزگذاری باید بین دو طرف به اشتراک گذاشته شود و این سوال پیش میآید که دو طرف‬
‫چگونه میتوانند این کلید را به طور امن بین یکدیگر رد و بدل کنند‪ .‬انتقال از طریق‬
‫انترانت و یا به صورت فیزیکی تا حدی امن میباشد اما در انتقال آن در اینترنت به هیچ‬
‫وجه درست نیست‪.‬در این قبیل سیستمها‪ ،‬کلیدهای رمزنگاری و رمزگشایی یکسان هستند‬
‫و یا رابطهای بسیار ساده با هم دارند ‪.‬این سیستمها را سیستمهای متقارن یا ” تک کلیدی‬
‫” مینامیم‪ .‬به دلیل ویژگی ذاتی تقارن کلید رمزنگاری و رمزگشایی‪ ،‬مراقبت و جلوگیری از‬
‫افشای این سیستمها یا تالش در جهت امن ساخت آنها الزم است در بر گیرنده ” جلوگیری‬
‫از استراق سمع ” و ” ممانعت از دستکاری اطالعات ” باشد ‪.‬‬
‫‪37‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫ـ ‪DES‬‬
‫ـ ‪3DES‬‬
‫ـ ‪AES‬‬
‫ـ ‪IDEA‬‬
‫ـ ‪Blow Fish‬‬
‫ـ ‪RC4‬‬
‫این روش معموال از روش نامتقارن کم هزینهتر است و سریع تر انجام میشود و‬
‫معموال کلیدها خیلی بزرگ هستند و الگوریتمهای آن چند هزار سال است که در‬
‫حال بهبودند و به خوبی شناخته شده هستند‪.‬‬
‫‪38‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪39‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫این روش برای حل مشکل انتقال کلید در روش متقارن ایجاد شد‪ .‬در این روش به جای یک‬
‫کلید مشترک از یک جفت کلید به نامهای کلید عمومی و خصوص ی استفاده میشود‪ .‬در این‬
‫روش از کلید عمومی برای رمزگذاری اطالعات استفاده میشود‪ .‬طرفی که قصد انتقال‬
‫اطالعات را به صورت رمزگذاری شده دارد اطالعات را رمزگذاری کرده و برای طرفی که‬
‫مالک این جفت کلید است استفاده میشود‪ .‬مالک کلید‪ ،‬کلید خصوص ی را پیش خود به‬
‫صورت محرمانه حفظ میکند‪ .‬در این دسته‪ ،‬کلیدهای رمزنگاری و رمزگشایی متمایزند و یا‬
‫اینکه چنان رابطه پیچیدهای بین آنها حکم فرماست که کشف کلید رمزگشایی با در اختیار‬
‫داشتن کلید رمزنگاری‪ ،‬عمال ناممکن است‪.‬‬
‫‪40‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
Elliptic Curve Cryptography
RSA
Blind Signatures
DH ‫ الگوریتم‬Diffie-Hellman
Elgamal Discrete log Cryptosystem
Zero-knowledge Proofs
91 ‫ پاییز‬- ‫ کریمی‬- ‫ تویسرکان‬- ‫مهندسی اینترنت‬
41
‫رمزنگاری کلید نامتقارن‪ ،‬در ابتدا با هدف حل مشکل انتقال کلید در روش متقارن و در قالب‬
‫پروتکل تبادل کلید دیفی‪-‬هلمن پیشنهاد شد‪ .‬در این نوع از رمزنگاری‪ ،‬به جای یک کلید مشترک‪ ،‬از‬
‫یک زوج کلید به نامهای کلید عمومی و کلید خصوص ی استفاده میشود‪ .‬کلید خصوص ی تنها در‬
‫اختیار دارنده آن قرار دارد و امنیت رمزنگاری به محرمانه بودن کلید خصوص ی بستگی دارد‪ .‬کلید‬
‫عمومی در اختیار کلیه کسانی که با دارنده آن در ارتباط هستند قرار داده میشود‪ .‬به مرور زمان‪،‬‬
‫به غیر از حل مشکل انتقال کلید در روش متقارن‪ ،‬کاربردهای متعددی برای این نوع از رمزنگاری‬
‫مطرح گردیدهاست‪ .‬در سیستمهای رمزنگاری نامتقارن‪ ،‬بسته به کاربرد و پروتکل مورد نظر‪ ،‬گاهی‬
‫از کلید عمومی برای رمزگذاری و از کلید خصوص ی برای رمزگشایی استفاده میشود و گاهی نیز‪ ،‬بر‬
‫عکس‪ ،‬کلید خصوص ی برای رمزگذاری و کلید عمومی برای رمزگشایی به کار میرود‪.‬‬
‫دو کلید عمومی و خصوص ی با یکدیگر متفاوت هستند و با استفاده از روابط خاص ریاض ی‬
‫محاسبه میگردند‪ .‬رابطه ریاض ی بین این دو کلید به گونهای است که کشف کلید خصوص ی با در‬
‫ا‬
‫اختیار داشتن کلید عمومی‪ ،‬عمال ناممکن است‪.‬‬
‫‪42‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪43‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫در ر اوش فوق از ترکيب يک کليد خصوص ی و يک کليد عمومی استفاده می شود‪ .‬کليد خصوص ی‬
‫صرفا متعلق به کامپيوتر فرستنده بوده و کليد عمومی توسط کامپيوتر فرستنده در اختيار هر يک‬
‫از کامپيوترهائی که قصد برقراری ارتباط با يکديگر را دارند ‪ ،‬گذاشته می شود‪ .‬برای رمزگشائی‬
‫يک پيام رمز شده ‪ ،‬کامپيوتر می بايست از کليد عمومی که توسط فرستنده ارائه شده‪ ،‬بهمراه‬
‫کليد خصوص ی خود استفاده نمايد‪ .‬يکی از متداولترين برنامه های رمزنگاری در اين رابطه‬
‫‪ )PGP)Pretty Good Privacy‬است ‪ .‬با استفاده از ‪ PGP‬می توان هر چیز دلخواه را‬
‫رمز نمود‪.‬‬
‫بمنظور پياده سازی رمزنگاری کليد ‪ -‬عمومی در مقياس باال نظیر يک سرويس دهنده وب ‪ ،‬الزم‬
‫است از رويکردهای ديگری در اين خصوص استفاده گردد‪ " .‬امضای ديجيتال " يکی از رويکردهای‬
‫موجود در اين زمينه است يک امضای ديجيتالی صرفا" شامل اطالعات محدودی بوده که اعالم‬
‫می نمايد ‪ ،‬سرويس دهنده وب با استفاده و بکارگیری يک سرويس مستقل با نام " امضای مجاز‬
‫" ‪ ،‬امین اطالعات است ‪" .‬امضای مجاز " بعنوان يک ميانجی بین دو کامپيوتر ايفای وظيف می‬
‫نمايد‪ .‬هويت و مجاز بودن هر يک از کامپيوترها برای برقراری ارتباط توسط سرويس دهنده انجام‬
‫و برای هر يک کليد عمومی مربوطه را فراهم خواهد کرد‪.‬‬
‫‪44‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫رمزهای كلید خصوص ی بر مبنای نوع عملكرد ‪ ،‬چگونگی طراحی و پیاده سازی و‬
‫كاربردهایشان به دو گونه رمزهای قطعه ای و رمزهای دنباله ای تقسیم می شوند‪ .‬كه در هر‬
‫یك از آ نها عملكرد رمز نگاری به صورت یك عملكرد دوجانبه بین دو طرف فرستنده و‬
‫گیرنده می باشد كه با ایجاد یك ارتباط اولیه با یكدیگر روی كلید خصوص ی توافق میكنند‬
‫به گونه ای كه دشمن آن كلید را نداند‪ .‬فرستنده ‪ S‬میخواهد پیام ‪m1,….mi‬را به‬
‫گونه ای به طرف گیرنده ‪ R‬بفرستد كه او بتواند به محتوای پیام دست یابد و در عین‬
‫حال حریف مخالف ‪ A‬نتواند محتوای پیام را درك كند حتی اگر ‪A‬تمامی آنچه بین ‪R‬و‬
‫‪S‬انتقال می یابد را دریافت نماید‪.‬‬
‫به همین منظور فرستنده ‪ S‬هر متن روشن ‪mi‬را به وسیله الگوریتم رمزگذاری ‪ E‬وكلید‬
‫خصوص ی به متن رمز شده تبدیل میكند ودریافت كننده نیزكه متن رمز شده را دریافت كرده‬
‫می تواند با الگوریتم رمز گشائی ‪ D‬و كلید خصوص ی متن اصلی را بدست آورد‪.‬‬
‫‪45‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫بحثهای زیادی شده که کدام یک از این الگوریتمها بهترند اما جواب مشخص ی ندارد‪ .‬البته بررس ی هایی روی‬
‫این سوال شده به طور مثال ‪ Needham‬و ‪ Schroeder‬بعد از تحقیق به این نتیجه رسیدند که طول‬
‫پیغامی که با الگوریتمهای متقارن میتواند رمزنگاری شود از الگوریتمهای کلید عمومی کمتر است‪ .‬و با تحقیق به‬
‫این نتیجه ریسیدند که الگوریتمهای متقارن الگوریتمهای بهینه تری هستند‪ .‬اما وقتی که بحث امنیت پیش می‬
‫آید الگوریتمهای کلید عمومی کارایی بیشتریدارند‪ .‬و بطور خالصه میتوان گفت که الگوریتمهای متقارن دارای‬
‫سرعت باالتر و الگوریتمهای کلید عمومی دارای امنیت بهتری هستند‪ .‬در ضمن گاهی از سیستم ترکیبی از هردو‬
‫الگوریتم استفاده میکنند که به این الگوریتمها الگوریتم های ترکیبی (‪)hybrid‬گفته میشود‪ .‬اما اگر به‬
‫طور دقیق تر به این دو نگاه کنیم آنگاه متوجه خواهیم شد که الگوریتمهای کلید عمومی و الگوریتمهای کلید‬
‫ا‬
‫متقارن دارای دو ماهیت کامال متفاوت هستند و کار بردهای متفاوتی دارند به طور مثال در رمزنگاریهای ساده‬
‫که حجم دادهها بسیار زیاد است از الگوریتم متقارن استفاده میشود زیرا دادهها با سرعت باالتری رمزنگاری‬
‫و رمزگشایی شوند‪ .‬اما در پروتکل هایی که در اینترنت استفاده میشود‪ ،‬برای رمز نگری کلید هایی که نیاز به‬
‫مدیریت دارند از الگوریتمهای کلید عمومی استفاده میشود‪.‬‬
‫‪46‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫تجزیه و تحلیل رمز یا شکستن رمز‪ ،‬به کلیه اقدامات مبتنی بر اصول ریاض ی و علمی اطالق میگردد که هدف آن از بین‬
‫بردن امنیت رمزنگاری و در نهایت باز کردن رمز و دستیابی به اطالعات اصلی باشد‪ .‬در تجزیه و تحلیل رمز‪ ،‬سعی میشود‬
‫تا با بررس ی جزئیات مربوط به الگوریتم رمز و یا پروتکل رمزنگاری مورد استفاده و به کار گرفتن هرگونه اطالعات جانبی‬
‫موجود‪ ،‬ضعفهای امنیتی احتمالی موجود در سیستم رمزنگاری یافته شود و از این طریق به نحوی کلید رمز به دست‬
‫آمده و یا محتوای اطالعات رمز شده استخراج گردد‪.‬‬
‫تجزیه و تحلیل رمز‪ ،‬گاهی به منظور شکستن امنیت یک سیستم رمزنگاری و به عنوان خرابکاری و یک فعالیت ضد‬
‫مزنگاری و برای کشف ضعفها و‬
‫امنیتی انجام میشود و گاهی هم به منظور ارزیابی یک پروتکل یا الگوریتم ر‬
‫ا‬
‫آسیبپذیریهای احتمالی اآن صورت میپذیرد‪ .‬به همین دلیل‪ ،‬تجزیه و تحلیل رمز‪ ،‬ذاتا یک فعالیت خصومتآمیز به‬
‫حساب نمیآید؛ اما معموال قسمت ارزیابی و کشف آسیبپذیری را به عنوان جزئی از عملیات الزم و ضروری در هنگام‬
‫طراحی الگوریتمها و پروتکلهای جدید به حساب میآورند و در نتیجه تجزیه و تحلیل رمز بیشتر فعالیتهای خرابکارانه‬
‫و ضد امنیتی را به ذهن متبادر میسازد‪ .‬با توجه به همین مطلب از اصطالح حمالت تحلیل رمز برای اشاره به چنین‬
‫فعالیتهایی استفاده میشود‪.‬‬
‫تحلیل رمز‪ ،‬در اصل اشاره به بررس ی ریاض ی الگوریتم (یا پروتکل) و کشف ضعفهای احتمالی آن دارد؛ اما در خیلی از‬
‫موارد فعالیت خرابکارانه‪ ،‬به جای اصول و مبنای ریاض ی‪ ،‬به بررس ی یک پیادهسازی خاص آن الگوریتم (یا پروتکل) در‬
‫یک کاربرد خاص میپردازد و با استفاده از امکانات مختلف سعی در شکستن رمز و یافتن کلید رمز مینماید‪ .‬به این‬
‫دسته از اقدامات خرابکارانه‪ ،‬حمالت جانبی گفته میشود‪.‬‬
‫‪47‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫افزونگی ‪:‬‬
‫رمز نگاری پیامها باید شامل مقداری افزونگی باشد‬
‫تازگی پیامها ‪:‬‬
‫باید محاسباتی صورت گیرد تا مطمئن شویم هر پیام دریافتی تازه و جدید است‬
‫اخیرا فرستاده شده است )‬
‫‪48‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫(‬
‫اولین اصل آن است که تمام پیامهای رمز شده بایدشامل مقداری«افزونگی» [دادههای‬
‫زائد] باشندبه عبارت دیگر لزومی ندارد که اطالعات واقعی به همان گونه که هستند رمز‬
‫و ارسال شوند‪ .‬یک مثال میتواند به فهم دلیل این نیاز کمک کند‪ .‬فرض کنید یک‬
‫شرکت به نام ‪TCP‬با‪۶۰۰۰۰‬کاالاز طریق سیستم پست الکترونیکی سفارش خرید‬
‫میپذیرد‪ .‬برنامه نویسان شرکت ‪TCP‬به خیال آن که برنامههای موثر و کار آمدی‬
‫مینویسند پیامهای سفارش کاال را مشتمل بر ‪۱۶‬بایت نام مشتری و به دنبال آن سه بایت‬
‫فیلد داده (شامل یک بایت برای تعدادکاال ودو بایت برای شماره کاال)در نظر میگیرد که‬
‫سه بایت آخر توسط یک کلید بسیار طوالنی رمزنگاری میشود واین کلید را فقط مشتری‬
‫و شرکت ‪TCP‬میداند‪.‬‬
‫‪49‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫دومین اصل اساس ی در رمزنگاری آن است که باید محاسباتی باید صورت بگیرد تا مطمئن‬
‫ا‬
‫شویم هرپیام دریافتی تازه و جدید است یا به عبارتی اخیرا فرستاده شدهاست این بررس ی‬
‫برای جلوگیری از ارسال مجدد پیامهای قدیمی توسط یک اخاللگر ّ‬
‫فعال الزامی است اگر‬
‫چنین بررس یهایی انجام نشود کارمند اخراجی ما قادر است با ایجاد یک انشعاب مخفی از‬
‫ا‬
‫ا‬
‫خط تلفن پیامهای معتبری را که قبال ارسال شده مکررا ارسال نماید‪ ،‬حتی اگر نداند‬
‫محتوای ان چیست‪.‬‬
‫‪50‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫یک چنین محاسبهای را میتوان با قرار دادن یک مهر زمان در پیامها پیش بینی کرد به‬
‫ا‬
‫نحوی که پیامها مثال برای ده ثانیه معتبر باشد گیرنده پیام میتواند آن را برای حدود ده‬
‫ثانیه نگه دارد تا بتواند پیامهای جدید را با آن مقایسه کرده و نسخههای تکراری را که‬
‫دارای مهر زمان هستند به عنوان پیامهای قدیمی شناخته و حذف خواهند شد‪.‬‬
‫‪51‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫در طراحي رمزهاي دنباله اي يك مولد بيت شبه تصادفي نقش توليد کننده رشته کليد را براي سيستم رمزدنباله اي‬
‫دارد ‪ .‬در واقع اين مولد ميتواند مولد رشته کليد نیز محسوب شود ‪ .‬از ديدگاه رمز نگاري يك مولد رشته کليد امن بايد‬
‫داراي سه پارامتر مهم زير باشد ‪:‬‬
‫‪ -١‬پريود رشته کليد توليد شده بايد به حد کافي بزرگ باشد تا با طول پيام ارسال شده سازگاري داشته باشد ‪.‬‬
‫‪ -٢‬دنباله بيت خروجي حاصله از مولد بايد به راحتي قابل توليد کردن باشد ‪.‬‬
‫‪ -٣‬بيتهاي خروجي بايد به سختي قابل پيش بيني باشند ‪.‬‬
‫در واقع با در اخثيار داشتن مولد و اولین ‪n‬بيت خروجي ( )‪a(1) …….a(n-1 ،a(0‬از لحاظ محاسباتي‬
‫پيش بيني بيت ‪n+1‬ام يعني ( ‪a(n+1‬در دنباله با احتمال بيشتر از ½ بايد غیر ممكن باشد‪.‬‬
‫حال مسئله اصلي اين است با آدام مبنا واصولي ميتوان اين نتيجه گیري ر ا انجام داد که سيگنال هاي خروجي از‬
‫يك مولد رشته کليد به سختي قابل پيش بيني است ؟ به طور کلي اصولي قابل بررس ي و کاربردي ارائه شده است تا‬
‫امنيت مولد هاي بيت را ضمانت کند ‪ .‬در واقع تا کنون روشهاي بسياري براي توليد رشته کليدهاي امن پيشنهاد شده‬
‫است و در مقابل رمزنگاری و امنيت تبادل داده نیز تحليل هائي طرح شده است که با توجه به پيچيده ترشدن دنباله‬
‫ها به صورت ماهرانه تري به تحليل دنباله ها مي پردازند‪ .‬در ادامه به برخي از روشهاي توليد بيت هاي شبه تصادفي‬
‫مي پردازيم‪.‬‬
‫‪52‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫غیر قابل پيش بيني بودن يك دنباله همانند تصادفي بودن آن تعبیر مي شود براي اينكه‬
‫يك دنباله تصادفي باشد پريود آن بايد به حد کافي بزرگ باشد و همچنین تكه هاي‬
‫گوناگون درون دنباله داراي توزيعي تا حد ممكن يكنواخت باشند‪ .‬در اينجا به طور‬
‫خالصه چند روش توليد بيت هاي شبه تصادفي ودنباله هاي شبه تصادفي شرح داده‬
‫شده است ‪.‬در اين روش ها به طورمشخص ثبات هاي انتقال خطي براي ساختن‬
‫مولدها به کار گرفته شده اند‪.‬‬
‫‪53‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪ -1‬به روش تفاضلی‬
‫‪ -2‬به روش خطی‬
‫‪-3‬توان الکتریکی مصرفی‬
‫‪ -4‬تحلیل زمانی‬
‫‪ -1‬دو بلوک از متن که با هم در تعداد خیلی کم از بیت با هم اختالف دارند انتخاب میشوند‬
‫‪-2‬با ‪ XOR‬کردن بیتهای مشخص ی از متن اصلی و متن رمز شده با یکدیگر و آزمایش مجدد‬
‫الگوی بدست آمده‬
‫‪-3‬میزان توان الکتریکی مصرفی پردازنده برای یافتن کلید سری‬
‫‪... -4‬‬
‫‪54‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫امضای دیجیتال مبتنی بر الگوریتم های رمزنگاری و الگوریتم های ‪ Hashing‬است ‪ .‬به عنوان نمونه ای از‬
‫الگوریتم های رمزنگار می توان به ‪ RSA‬و ‪ EL Gamal‬و الگوریتم های ‪ MD5 ،Hashing‬و ‪ SHA‬اشاره‬
‫کرد‪.‬‬
‫روال کار در امضای دیجیتال به این شکل است که پیش از ارسال داده ها‪ ،‬آنها را با استفاده از الگوریتم های‬
‫‪ Hashing‬به یک کد فشرده ‪ Hash‬تبدیل می کنند که این کد در حقیقت حاوی اطالعات شما می باشد‪.‬‬
‫مقادیر هش شده همگی طول یکسانی دارند و در صورت تغییر در اطالعات ورودی ‪Hash Code‬جدیدی تولید‬
‫می شود‪ .‬این الگوریتم ها همگی یک طرفه هستند‪ ،‬یعنی پس از کد شدن اطالعات نمی توان از روی این کدها‬
‫اطالعات اصلی را به دست آورد و تنها در صورتی می توان آن را کدگشایی کرد که کلید این کدها را در اختیار داشت‪.‬‬
‫در جریان ارسال اطالعات کد ‪ Hash‬به دست آمده از الگوریتم محاسباتی توسط کلید خصوص ی به حالت رمز‬
‫تبدیل می شود و همراه با کلید عمومی به انتهای داده ها اضافه شده و برای گیرنده ارسال می شود به عالوه کد‬
‫‪ Hash‬واقعی داده ها نیز محاسبه شده و در انتها این دو کد باهم مقایسه می شوند‪ .‬اگر این دو کد همخوانی‬
‫داشتند بیانگر این است که داده های ارسال شده دستکاری نشده اند و قابلیت اعتماد دارند اما در صورتی که‬
‫‪ Hash‬کدهای ارسالی و واقعی یکسان نباشند به معنای دستکاری در اطالعات است و این اطالعات دیگر قابل‬
‫اطمینان نیستند‪ .‬حلقه کلید را می توان مجموعه ای از کلیدها دانست‪ ،‬یک حلقه کلید از کلید های عمومی همه‬
‫افرادی که برای شما اطالعاتی در قالب ‪ Hashcode‬ارسال کرده اند است ‪.‬‬
‫‪55‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫‪56‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫امضا با کلید متقارن هر شخص دارای یک کلید شخص ی می باشد که فقط مرکز پیام (‬
‫‪ ) BB‬آن را میداند‪.‬‬
‫در این روش شخص آلیس پیام خود را با کلید شخص ی خود که فقط مرکز پیام آن را‬
‫میداند تبدیل به کد کرد و مرکز پیام آن را با کلید شخص ی آلیس که در اختیار دارد تیدیل‬
‫به پیام اصلی کرده و دوباره آن را با کلید شخص ی شخص مقصد (باب) که در اختیار دارد‬
‫تبدیل به کد قابل فهم برای باب می کند‪.‬‬
‫‪57‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫امضا با کلید عمومی هر شخص دارای یک کلید شخص ی می باشد و یک کلید عمومی که‬
‫همه آنرا میدانند‪.‬‬
‫در این روش شخص آلیس پیام خود را با کلید شخص ی خود تبدیل به کد کرد و بعد از‬
‫این عمل آن را با کلید عمومی باب دوباره رمز نگاری کرده ‪ .‬بای نیز پس از دریافت آن ‪،‬‬
‫پیام را با کلید شخص ی خود واکش ی کرده و پس از آن با کلید عمومی آلیس که در اختیار‬
‫دارد تیدیل به پیام اصلی کرده که بدین ترتیب پیام برای باب قابل فهم میشود ‪.‬‬
‫‪58‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫•‬
‫ً‬
‫رمزنگاري کليد عمومي اساسا با انگیزه رسيدن به دو هدف طراحي‬
‫شد‪:‬‬
‫– حل مساله توزيع کليد‬
‫– امضاي رقمي (ديجيتال)‬
‫◦ ديفي و هلمن توصيف كلي و اولین راه حل را در ‪ 1976‬ارايه دادند‪.‬‬
‫‪59‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫رمزگذاری کليد عمومي‬
‫براي رمز نگاري کليد عمومي گامهاي زير را برميداريم‪:‬‬
‫هر کاربر يک زوج کليد رمزگذاری و رمز گشايي توليد ميکند‪.‬‬
‫کاربران کليد رمزگذاری خود را به صورت عمومي اعالن ميکنند درحالي که کليد رمز گشايي مخفي‬
‫ميباشد‪.‬‬
‫همگان قادر به ارسال پيام رمز شده براي هر کاربر دلخواه با استفاده از کليد رمزگذاری (عمومي) او‬
‫ميباشند‪.‬‬
‫هر کاربر ميتواند با کمک کليد رمزگشايي (خصوص ي) پيامهايي که با کليد رمزگذاری (عمومي) او رمز‬
‫شده رمزگشايي کند‪.‬‬
‫‪60‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬
‫روش ‪Hash‬یک روش یکطرفه ‪One Way Function‬است که برای مطمئن‬
‫بودن از عدم تغییر ‪data‬استفاده می شود‪ .‬حفظ تمامیت یا ‪ Integrity‬در این‬
‫روش از فایل یک واحدی از دیتا ایجاد میکند که فایل هش ‪ Hash File‬نام دارد و‬
‫حجم کوچکی دارد (در حد چند ‪ ۱۰‬بایت) و در صورتیکه فایل تغییر کند ‪Hash‬آن نیز‬
‫تغییر میکند‪ .‬در این روش هم در مبدا و هم در مقصد ‪ ،‬از فایلی که قرار است منتقل شود‬
‫‪Hash‬گرفته میشود که باید ‪Hash‬مبدا و مقصد با هم برابر باشد‪ .‬اگر در طول‬
‫مسیر انتقال فایل به هر دلیلی فایل تغییر کند ‪Hash‬مبدا و مقصد یکی نخواهد شد‪.‬‬
‫الگوریتم ‪Hash‬خود روشهای گوناگونی دارد که عبارتند از‪:‬‬
‫▪ روش ‪MD4‬‬
‫▪روش ‪MD5‬‬
‫▪روش ‪SHA-A‬‬
‫‪61‬‬
‫مهندسی اینترنت ‪ -‬تویسرکان ‪ -‬کریمی ‪ -‬پاییز ‪91‬‬