پاسخ تمرین سری اول امنیت شبکه های کامپیوتری-دانشگاه شهید بهشتی-ترم دوم ۹۳-۹۴

 

به نام خدا

تمرینات Basic Cryptography

استاد: دکتر مقصود عباسپور

کمک تدریس: جواد زندی

 

لطفا در ارسال تمرینات خود به نکات‌ مهم زیر توجه داشته باشید:

1- مهلت این سری تمرینات تا ۱۰اسفند قبل از شروع کلاس درس می‌باشد.

2- نحوه تحویل تمرینات شما به دو صورت می‌تواند باشد:

الف) تمریناتی که به صورت سوالات تحلیلی و تعریفی و مسله ای است به صورت خوانا بنویسید و برگه خود را تحویل اینجانب دهید. در مورد برگه‌های تمرین خود دقت داشته باشید که حتما نام و شماره دانشجویی را بالای برگه‌ی خود بنویسید.

3- همه‌ی دوستان دقت داشته باشند که تصمیم‌گیری در مورد تمرینات یکسان برعهده استاد درس خواهد بود و حل‌تمرین موظف به نوشتن گزارش تخلف و ارایه آن به استاد درس می‌باشد.

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

برای مشاهده سوالات به ادامه مطلب بروید.

 

 

سوالات مفهومي:

1- پیاده‌سازی هر نوع مکانیزم امنیتی که و ارایه‌ی آنها به کاربران به نحوی که میزان خطر را به حداقل برساند، خدمات امنیتی نامیده می‌شود. شما در درس با چند نوع از خدمات امنیتی از جمله Confidentiality, Integrity, Availability, Authentication, Non-Repudiation آشنا شده‌اید. همچنین انواع تهدیدات را به دسته‌های Interception, Modification, Fabrication, Interruption‌ تقسیم بندی نمودیم. حال بگویید هرکدام از این تهدیدات علیه کدام سرویس ارایه‌شده از خدمات امنیتی می‌باشد؟ همچنین بگویید باتوجه به تهدید ذکرشده راه شما برای خنثی‌کردن تهدید موردنظر چیست؟

پاسخ:

Interception Against Confidentiality (Using Cryptography)

Modification Against Integrity (Using MAC, HASH, …)

Fabrication Against Authentication (…)

Interruption Against Availability (…)

 

2-  با دسترسی به لینک از جزئیات در مورد نحوه عملکرد پیاده‌سازی DES آگاه شوید. اکنون به این پرسش پاسخ دهید که اصولا به چه دلیل در این الگوریتم از ماژول‌های S-Box استفاده می‌شود؟

پاسخ: وجود ماژول‌های S-Box الگوریتم را غیرخطی می‌کند. این ماژول تنها بخش غیرخطی الگوریتم DES می‌باشد و حرکت از خروجی سیستم رمزنگار را به سمت ورودی آن دشوار می‌سازد.

 

3- در مورد مدهاي کاري رمزهاي متقارن به سؤالات زیر پاسخ دهید:

الف) اگر IV استفاده شده در مد کاري CBC همواره صفر باشد، چه مشکلی ایجاد می‌شود؟

پاسخ: متن اصلی بدون تغییر وارد سیستم رمزنگاری می‌شود.

ب) تفاوت عملیاتی اصلی میان دو مد کاري CBC و CTR در حالت رمزنگاري و رمزگشایی در چیست؟ شما در چه حالت‌هایی مدکاري CTR را به مد کاري CBC ترجیح می‌دهید؟

پاسخ: نیازی به توضیح ندارد.

ج) منظور از انتشار خطاي انتقال که از معایب مد کاري CFB محسوب می‌شود، چیست؟ چرا این مشکل در مد کاري OFB وجود ندارد؟

پاسخ: نیازی به توضیح ندارد.

 

4- حملات متداول برروی DES و AES در صورت موجود بودن شرح دهید.

پاسخ: نیازی به توضیح ندارد.

5- باتوجه به روند الگوریتم Diffie-Hellman، به سوالات زیر پاسخ دهید:

الف) ثابت کنید دو طرف، فرستنده و گیرنده، یک کلید مشترک را انتخاب خواهند کرد.

ب) اگر دو عدد اول مورد نظر ۱۳ و ۷ باشد، کلید خصوصی دو طرف را محاسبه کنید. کلید عمومی دو طرف و نیز کلید مشترک را، با نشان دادن تمامی مراحل، بدست آورید (برای هر کدام شماتیک رسم کنید).

 

6- در مورد روش رمزنگاری و رمزگشایی(سیستم رمزگزاری) Hill و ویژگی‌هایی که ماتریس رمزنگاری آن باید داشته باشد با یک مثال توضیح دهید. ضعف این سیستم رمزگزاری در چیست؟

 

7- یک پروتکل تبادل پیام بین فرستنده‌یA وگیرنده‌یB راگام به گام توضیح دهیدکه درآن صرفا رسیدن یک پیام از A به B اهمیت دارد و محتوای پیام مهم نیست. در این پروتکل صرفا جنبه‌ی عدم انکار و هویت سنجی اهمیت دارد. این پروتکل باید در برابر حمله ی Man In The Middle مقاوم باشد. بنابراین با رسم شماتیک مناسب مراحل پروتکل را به درستی شرح دهید.

 

8- فرض کنید قصد داریم پیامی که حاوی x بایت است را ارسال کنیم. با درنظرگرفتن الگوریتم RSA تمامی مراحل موردنیاز برای رمزگذاری و رمزگشایی را به طور کامل شرح دهید.

 

9-  فرض کنید ۲نفر A,B می‌خواهند قبل از تبادل پیام با یکدیگر، هویت یکدیگر را برای خودشان احراز کنند(یعنی A هویت فرد B را احراز شناسایی کند و برعکس) توضیح دهید با استفاده از سیستم رمزنگاری نامتقارن و مرکز صدور گواهی(CA) این امر چطور امکان پذیر است؟

 

10- (امتیازی) آیا الگوریتم دیگری برای سیستم رمزنگاری نامتقارن به جز RSA وجود دارد؟ فقط در صورتی که وجود دارد آن را از نظر استحکام و سرعت و امنیت نسبت به RSA مقایسه کنید. سپس مراحل رمزنگاری آن را به طور کامل شرح دهید.

 

 

سوالات برنامه‌نويسي:

i. در این قسمت قصد داریم تا الگوریتم‌های رمزنگاری موجود را با یکدیگر مقایسه کنیم. کتابخانه‌ی openssl در این تمرین بسیار راهگشا می‌باشد. درصورتی که با این بسته‌ی دوست داشتنی لینوکس آشنایی ندارید می‌توانید خودتان پیاده‌سازی‌های الگوریتم‌های DES, 3DES, AES و یک الگوریتم دیگر به دلخواه خودتان انتخاب نمایید (در صورتی که نمی‌خواهید از openssl استفاده نمایید، دقت داشته باشید که همه‌ی پیاده‌سازی‌ها باید دریک زبان و با یک کامپایلر، کامپایل شده باشد.)

حال مسله این است: فایل موجود در لینک را بارگیری نمایید و سعی کنید با یکی از دو تکنیک فوق(یا استفاده از openssl یا استفاده از برنامه پیاد‌سازی شده به زبان دلخواه خودتان) به روش‌های گفته شده رمزنگاری کنید. بنابراین برنامه‌ای به زبان C بنویسید که بتواند بتواند زمان مورد نیاز برای اینکار را اندازه گیری کند. زمان محاسبه شده را در تمرینات بنویسید و کد برنامه را مطابق با دستورالعمل قید شده برای من بفرستید.

 

ii. مشابه تمرین فوق این‌بار قصد داریم تا چکیده پیام فایل موجود در پیوست را محاسبه کنیم. برای اینکار باید از الگوریتم‌های MD5, SHA1, SHA256 و یک الگوریتم به دلخواه خودتان انجام دهید. بنابراین برنامه‌ای به زبان C بنویسید که زمان محاسبه‌ی چکیده‌ی پیام را گزارش کند. زمان محاسبه شده را در تمرینات بنویسید و کد برنامه را مطابق با دستورالعمل قید شده را برای من بفرستید.

 

   

Trackback from your site.

Leave a comment