تمرین سری۷ نسخهی اصلاح شده(آخرین سری تمرینات رمزنگاری)
موعد تحویل تمرینهای سری ۵و ۶و ۷ دو روز پس از آخرین امتحان.
دریافت
حجم: 224 کیلوبایت
(آخرین سری تمرینهای رمزنگاری)
( یکشنبه ۶ دی ۹۴)
به اطلاع میرساندآخرین جلسه کلاس حلّ تمرین روز دوشنبه مورخ ۷ دیماه ۹۴ از ساعت ۱۳ تا ۱۵ برگزار خواهد شد.
لطفا به اطلاع سایر دوستان هم برسانید.
تمرین سری ۵ (MAC)
مهلت تحویل یکشنبه ۲۰ دیماه ۹۴
دریافت
حجم: 302 کیلوبایت
برخوردی که از چشم همهی ما پنهان ماند!
موضوع به سؤال ۴ از تمرین سری ۴ برمیگردد، در این سؤال از شما خواسته شده بود تا بگویید اگر تابع فشرده ساز f برخوردتاب باشد ساختار زیر برای پیاده سازی یک تابع چکیده ساز امن (برخوردتاب) هست یا خیر؟
برای دیدن جزئیات بیشتر راجع به روش padding در سؤال فوق شما را به صورت سؤال در بخش تمرینها ارجاع میدهم.
همه (از جمله بنده!) پیشبینی کردیم این ساختار امن است حتی برخی دوستان (از جمله بنده!) برای این حدس خود اثبات هم آوردیم ....:)
اما جالب است بدانید که حتّی وقتی f برخوردتاب باشد نمیتوان گفت در حالت کلّی ساختار فوق امن است!
بنده در جلسهی آتی کلاس حل تمرین یک حملهکننده چندجملهای برای یافتن برخورد برای ساختار فوق معرفی خواهم کرد.
دوستان سؤال مورد بحث فوق با سؤال مشابهی که در امتحان مطرح شد متفاوت است (در واقع سؤال
آخر امتحان شما سؤال ۵ سری ۴ بود که قبل از امتحان آن را به صورت کاملا صحیح حل نمودم ولی بحث
فوق راجع به سؤال ۴ سری ۴ است).
تمرین سری ۴ رمزنگاری
دریافت
حجم: 249 کیلوبایت
توضیحات: تمرین سری ۴- مهلت تحویل تا ۲۳ آذر
توابع و جایگشتهای شبه تصادفی(PRP and PRF)
در فیلم ۱۲ دقیقهای زیر مبحث توابع و جایگشتهای شبه تصادفی را به خوبی فرا خواهید گرفت.(انشاالله)
دریافت
مدت زمان: 11 دقیقه 30 ثانیه
امتحان میان ترم
به اطلاع دوستان میرسانم که قرار شد امتحان میان ترم روز دوشنبه مورخ ۲۳ آذر ساعت ۱:۳۰ الی ۱۵ برگزار گردد.
امتحان تا آخر فصل ۶ خواهد بود.
لطفا به اطلاع سایر دوستان برسانید.
پاسخ سؤال ۶ تمرین سری ۱
پس از مشاهده پاسخ دوستان به تمرین سری ۱، لازم دانستم تا پاسخ کامل سؤال ۶ را در سایت قرار دهم زیرا احساس کردم برخی از دوستان به خوبی، این سؤال را متوجه نشدهاند.
دریافت
حجم: 294 کیلوبایت
توضیحات: پاسخ کامل سؤال ۶ تمرین سری ۱
تمرین سری ۳
دریافت
حجم: 204 کیلوبایت
توضیحات: تاریخ بارگذاری ۸ آبان- تاریخ تحویل شنبه ۲۳ آبان
تمرین سری ۲(کامپیوتری)
برای شکستن رمزها در این تمرین باید از کامپیوتر استفاده کنید و پاسخ نهایی به همراه کد را برای من ارسال کنید. در ضمن مهم نیست از چه زبان برنامه نویسی استفاده میکنید.
دریافت
حجم: 322 کیلوبایت
توضیحات: تاریخ بارگذاری ۸ آبان- تاریخ تحویل شنبه ۳۰ آبان
لازم به ذکر است، دوستانی که پاسخ تمرین سری ۲(کامپیوتری) را با استفاده از نرم افزار thunderbird(و با کلید عمومی بنده) رمز کرده و ارسال کنند تا ۲۰ درصد امتیاز بیشتری نسبت به حالت عادی خواهند گرفت!
آخرین مهلت تحویل تمرین سری ۱
مهلت تحویل تمرین سری۱ تا روز دوشنبه مورخ ۴ آبان تمدید شد از این رو انتظار می رود اکثر دانشجویان!! جواب تمرینها را تحویل دهند! لطفا بعد از این تاریخ برای تحویل اقدام نکنید. در ضمن تمرینها را حضوری تحویل دهید چرا که به تمرینهای ارسال شده از طریق ایمیل ترتیب اثر داده نخواهد شد.
موفق باشید.
جلسه ۳
در این جلسه به حل تمرین های سری ۱ پرداختیم. لازم دانستم تا کلیدواژهها و سرفصل مطالب مهمی که در این جلسه ذکر آن رفت،در اینجا بیاورم تا دوستانی که موفق نشدند حضور یابند، خودشان با مراجعه به منابع درس این مطالب را دنبال کنند.
برای حل سوال ۱ ابتدا باید نوع سیستم رمزنگاری را تشخیص میدادیم، برای این کار کافی است نمودار فراوانی نسبی حروف در متن رمز شده را رسم کنیم و آن را با نمودار فرکانس نسبی متن نرمال مقایسه کنیم. طی این مقایسه پی خواهیم برد که ستونهای فرکانس نسبی مربوط به حروف در نمودار مربوط به متن رمز شده، نسبت به نمودار متن نرمال فقط به اندازه یک مقدار ثابت(کلید) شیفت چرخشی پیدا کردهاندو....
برای حل سوال ۲ یک مفهوم جدید به نام خودهمبستگی (Autocorrelation) معرفی کردیم. به طور کلی ما برای شکستن رمز ویجنر، ابتدا باید طول کلید را بدست آوریم.
برای بدست آوردن طول کلید دو روش معرفی شد:
۱)روش کاسیسکی(kasiski)
۲) استفاده از نمودار خودهمبستگی(Autocorrelation)
اساس این دو روش یک چیز است.
نمودار Autocorrelation مربوط به متن رمز شده سوال ۲ در زیر نشان داده شده.
همانطور که در نمودار بالا مشاهده میکنید پیکهای متوالی با فاصله ۵ به وفور قابل مشاهده است. به عبارت دیگر به ازای شیفتهای به اندازه ۵ و ۱۰و ۱۵ و ۲۰ و... (مضارب ۵) پیکهای برجستهای در نمودار خودنمایی میکند که نشاندهندهی این است که احتمالا طول کلید ۵ بوده!
توضیحات کافی راجع به تحلیل فوق در کلاس داده شده و در این جا به همین مقدار بسنده میکنم.
بعد از تشخیص طول کلید باید متن رمز شده را در m ستون که m طول کلید است مرتب کنید، در این حالت تک تک ستونها با سیستم سزار رمز شدهاند و کافی است تا تعداد شیفت مربوط به هر ستون را به دست آورید.
در ادامه به حل تعداد دیگری از سوالات سری۱ پرداختیم که از مهمترین آنها سوالهای ۴ و ۵ و ۶ بود.
موفق باشید.
آیا مرجع فارسی برای این درس سراغ دارید؟
این سوالی است که تعدادی از دوستان در جلسات اول از بنده می پرسیدند. در این رابطه باید بگویم منابع فارسی در زمینه رمزنگاری از نوع ترجمه و تألیف زیاد است اما تقریبا هیچکدام دیدگاهی کاملا شبیه با کتاب مرجع شما ندارند. در هر صورت فکر می کنم کتابها و جزوههای زیر تا حدودی بتوانند کمکتان کنند. البته اگر به رمزنگاری علاقهمند باشید کتابهای زیر و کتابهایی که در بخش معرفی و دانلود کتاب معرفی شدهاند کتابهای خیلی خوبی هستند.
- جزوههای درس رمزنگاری مقدماتی آقای دکتر شهرام خزایی از اساتید دانشکده ریاضی دانشگاه صنعتی شریف.(مرجع اصلی درس رمزنگاری در دانشگاه مذکور کتاب مقدمهای بر رمزنگاری مدرن کتز و لیندل است که میتوانید از قسمت معرفی کتاب آنرا دریافت کنید).
این جزوهها را میتوانید از طریق لینک زیر(صفحه شخصی آقای دکتر خزایی) دریافت کنید.
با تشکر از آقای دکتر خزایی که این جزوات را در دسترس عموم دانشجویان کشور قرار دادهاند.
- امنیت دادهها دکتر احسان ملکیان و دکتر ذاکرالحسینی انتشارات نص
- مقدمهای بر رمزنگاری تالیف:بوخمان ترجمه: دکتر مرتضی اسماعیلی انتشارت دانشگاه صنعتی اصفهان
چند نکته درباره سؤال ۱-سری ۱
سوال ۱) دراین سوال یک متن رمز شده فارسی داریم و باید آن را رمزگشایی کنیم. ابتدا باید الگوریتم رمزنگاری را تشخیص دهیم.
متن رمز شده عبارت است از:
شم فکخژد غذف کژ ژگ ثکژد سغذژرزف فک مغصزرژ ژگ ثکژد زژکز سیحسزف جر فک ثکژد فکخژد سگکچصکزد سزخژکزرژ زبدز جتک ذ دتژث ذ مکجنز ذ چخکژرز ژمص شم سرذمزحر ثکژد غذژمصررژز غذف کژ ژگ غفژ سغذژرزف ذ سژ فذمصز ثکژد سر غفژ کذز ژذکزف
البته الگوریتمهای رمزنگاری که امروزه مورد استفاده قرار میگیرد الگوریتمهای شناخته شدهای هستند و دارای استانداردهای خاص خود میباشند و وقتی قرار است یک ارتباط رمز شده برقرار شود الگورریتم رمزنگاری برای عموم قابل مشاهده است و تنها کلید مخفی است. در واقع از اصول رمزنگای مدرن این است که الگوریتم با تمام جزئیات و اصولش باید برای همگان قابل مشاهده باشد.
اما در سوال یک از سیستمهای کلاسیک برای رمزنگاری استفاده شده و پیدا کردن الگوریتم آن کار دشواری نیست مراحل یافتن این الگوریتم در زیر آمده:
میتوان گفت تقریبا تمام زبانهایی که در دنیای ما مورد استفاده قرار میگیرند از ویژگیهای آماری خاصی برخوردار هستند. برای مثال فرکانس نسبی یا فراوانی نسبی تک حرفیها در زبان لاتین به صورت زیر است.
و یا در زبان فارسی این توزیع به شکل زیر است:
برای مثال یکی از ویژگیهای بارز زبان فارسی که توزیع حروف آن در بالا نشان داده شده این است که ۵ حرف پرفرکانس م ن و ه ی به فاصله ۱ از یکدیگر، جزو حروف پرفرکانس هستند. یا این که حرف آ در صدر جدول توزیع فراوانی نسبی قرار دارد.
حال فرض کنید الگوریتم رمزنگاری یک نگاشت یک به یک از الفبای متن اصلی به خودش باشد، یعنی به جای هر کاارکتر متن اصلی دقیقا یک کاراکتر قرار دهد مثل سیستم سزار و آفین یا جایگشت.
در این صورت فرکانس نسبی تک حرفیها ثابت باقی میماند و از این ویژگی میتوان برای شکستن متن رمز شده بهره برد. البته منظور از ثابت ماندن فرکانس نسبی این نیست که مثلا فرکانس نسبی حرف آ قبل از رمزنگاری ۱۴.۴۱ درصد بوده و پس از رمزنگاری هم همان است، بلکه منظور این است که در متن رمز شده یک حرف وجود دارد که فرکانس نسبی آن ۱۴.۴۱ است بنابراین این حرف معادل با حرف آ در متن اصلی است و به همین ترتیب میتوان از فرکانس نسبی حروف بهره برد و سایر تناظرها را یافت.
این مفهوم را میتوان به صورت زیر بصری سازی کرد:
یک متن لاتین قبل از رمزنگاری:
In cryptography, a Caesar cipher, also known as Caesar's cipher, the shift cipher, Caesar's code or Caesar shift, is one of the simplest and most widely known encryption techniques. It is a type of substitution cipher in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet. For example, with a shift of 3, A would be replaced by D, B would become E, and so on. The method is named after Julius Caesar, who used it in his private correspondence.
[source http://en.wikipedia.org/wiki/Caesar_cipher]
نمودار فرکانس نسبی متن:
فرض کنید با روش شیفت چرخشی یا همان سزار با کلید ۱۰ متن فوق را رمز کنیم در این صورت توزیع فرکانسی متن رمز شده به صورت زیر خواهد بود:
آن چه در فوق مشاهده میشود این است که جای هر یک از ستون ها فقط ۱۰ واحد شیفت(چرخشی) یافته و اندازه ستونها نسبت به قبل تغییری نکرده.
اگر نمودار فرکانس نسبی را برای متن رمز شده رسم کنید و با نمودار استاندارد مقایسه کنید پی میبرید که ستونها نسبت به حالت استاندارد جابجا شده و البته کمی تغییر در اندازه ستونها رخ میدهد که این به خاطر کوتاه بودن متن رمز شده طبیعی است. این نشان میدهد که در سیستم رمزنگاری از روش سزار استفاده شده. اکنون که الگوریتم رمز مورد استفاده مشخص شد پی بردن به کلید و متن اصلی در این سیستم سزار کار سختی نیست.
در ادامه محکهایی آماری (از جمله ضریب تطابق متقابل IC, MIC و خود همبستگی)برای شکستن رمزهای جانشینی از جمله ویجنر ارائه خواهم کرد.
جلسه ۲
در این جلسه به بحث راجع به سوالهای سری اول پرداختیم.
البته بیشتر سوالات حل نشده باقی ماند که ان شاالله در جلسات آتی با همکاری شما آن ها را حل خواهیم کرد.
توصیه می کنم برای این که کلاس حل تمرین برایتان مفید باشد قبل از حضور راجع به سوالات فکر کرده و پیشنیازهای مربوط به سوالات را مرور کنید.
بنده مایلم که بازخورد شما نسبت به روند برگزاری کلاس در این دو جلسه را بدانم تا در صورت وجود هر گونه کاستی، آن را برطرف نمایم. چرا که اگر شما هیچ فیدبکی در رابطه با روند برگزاری ندهید ممکن است بنده متوجه این مشکلات نشوم و کلاس برای شما مفید نباشد. البته از آن دوستانی که نظرشان راجع به کلاس را تا به حال با بنده در میان گذاشتهاند متشکرم سعی بر این است تا کلاس حل تمرین به فهم بهتر مطالب کمک کند نه اینکه باری اضافه روی دوش شما باشد.
متشکرم.
تمرینهای سری اول رمزنگاری
جلسه بعدی روز شنبه برگزار میشود و با هم مسائل را حل خواهیم کرد.
دریافت
حجم: 250 کیلوبایت
توضیحات: تمرین سری ۱ رمزنگاری
در جلسه اول که در روز شنبه مورخ ۹۴/۰۷/۱۱ ساعت ۱۲:۱۵ الی ۱۳:۱۵ برگزار شد راجع به ماشین انیگما بحث کردیم.
در این جلسه طرز کار ماشین انیگما را به طور کامل بررسی کردیم و اندازه فضای کلید این ماشین را برای مدل Wehrmacht بدست آوردیم که این عدد در زیر آمده:
اندازه فضای کلید =

= ۱۰۷۴۵۸۶۸۷۳۲۷۲۵۰۶۱۹۳۶۰۰۰۰
اگر از عدد فوق log2 بگیریم بدست میآید:۷۶/۵۰۸
یعنی این کلید قابل مقایسه با یک کلید تقریبا ۷۷ بیتی است!
برای این که درک بهتری داشته باشید، بهتر است بدانیدالگوریتم هایی نظیر AES که امروزه استفاده می شوند برای مقابله با حمله brute force از کلیدهای 128 بیتی استفاده می کند.حال فرض کنید در زمان استفاده از ماشین انیگما که حتی ترانزیستور اختراع نشده بود گشتن کل فضای کلید آن که معادل با جستوجوی فضای کلیدهای ۷۷ بیتی در زمان ما است، چقدر دشوار بوده!
شما میتوانید با مراجعه به لینک زیر شبیه ساز ماشین انیگما را دریافت کنید، علاوه بر این در وبگاه مذکور تاریخچه و طرز عملکرد این ماشین و مدلهای مختلف آن شرح داده شده.
برای اطلاع رسانی بهتر از قسمت نظرات ایمیل خود را ارسال کنید.
با تشکر.