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

به نام خدا

تمرینات Basic Cryptography

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

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

 

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

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

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

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

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

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

۵-خوانندگان برای پرسیدن سوالات خود می توانند از طریق کامنت ها در همین صفحه سوالات خود را بپرسند.

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

 

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

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

 

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

 

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