نشریه‌ی الکترونیکی رایانا

گروه کامپیوتر مرکز راهنمایی علامه حلی یک تهران

نشریه‌ی الکترونیکی رایانا

گروه کامپیوتر مرکز راهنمایی علامه حلی یک تهران

نشریه‌ی الکترونیکی رایانا
طبقه بندی موضوعی
آخرین نظرات

تا نگردی آشنا زین پرده رمزی نشنوی... (پایه هفتم)

يكشنبه, ۱ فروردين ۱۳۹۵، ۱۱:۴۵ ب.ظ



قدمت شغل شریف و معتبر دزدی، به ابتدای تاریخ بشر بر می‌گردد. در دوره پارینه‌سنگی، افرادی بودند که از قبایل همسایه، سنگ‌های تیز و سلاح‌های محکم‌تر را شبانه به "سپرده دراز مدت" می‌بردند. در عصر فلز، این ابزار‌های آهنی و برنزی (و در مواردی، آهنگر‌های قابل) بودند که به سرقت می‌رفتند، و به طور کلی در هر زمانی، افرادی صاحب داشته‌های ارزشمندی بوده و افرادی هم چشم ناپاک طمع به این داشته‌های ارزشمند دوخته‌ بوده‌اند. همیشه، این ارزشمند‌ترین چیز‌ها بودند که سرقت می‌شدند و طبعا، این ارزشمند‌ترین چیزها بودند که بیشترین حفاظت از آنها صورت می‌گرفت. از همان ابزار‌های آهنی و برنزی بگیرید، تا ماجرای هلن و فتح تروا و...


و امروز، که به قولی عصر اطلاعات است، مهم‌ترین و ارزشمند‌ترین داشته‌های بشر، تبدیل شده به دنباله‌ی درازی از 0 و 1، یا همان داده‌های دیجیتال. مهم‌ترین سرقت‌های دنیای امروز ما، سرقت اطلاعات و علم نفوذ است، که در مقابلش، علم‌هایی مانند امنیت و رمزنگاری قد علم کرده اند. این عید می‌خواهیم سری به این دنیای دزد و پلیس وار بزنیم، و تا حدی کار هردو گروه را بررسی کنیم!


در رمزنگاری، به بیان ساده، یک متن منبع با استفاده از یک کلید، تبدیل به متن رمزنگاشته می‌شود. سپس، متن رمزنگاشته به مقصد ما ارسال (مثلا ایمیل) می‌شود و مخاطب ما، با داشتن کلید رمزنگاری می‌تواند رمز را شکسته و به متن منبع دست پیدا کند. در حقیقت، فقط کسی که آشنا باشد (کلید را داشته باشد) می‌تواند زین پرده رمزی بشنود!


قوانین و اصول ساده‌ای در طراحی سیستم‌های رمزنگاری وجود دارد. مثل این چند نمونه:


1- اندازه کلید باید به نسبت اندازه متن کوچک باشد.

2- تمام اطلاعات و جزئیات سیستم رمزنگاری، باید برای همه در دسترس باشد. تنها چیزی که باید در یک سیستم رمزنگاری مخفی بماند، کلید است.

3- اندازه متن رمزنگاشته، نباید چندان بزرگتر از متن منبع باشد.


یک مثال معروف از سیستم رمزنگاری، سیستم جایگزینی است که در آن هر حرف، با حرفی که به اندازه کلید از آن جلوتر است جایگزین می شود. برای مثال، در صورتی که کلید این رمزنگاری عدد 5 باشد، متن

happynoruz

به

mfuudstwze


رمزنگاری می‌شود که در آن، حرف m پنج حرف جلوتر از حرف h است، حرف f پنج حرف جلوتر از حرف a است، و...

واضح است که برای شکستن این رمز، فقط لازم است کلید آن را بدانیم و تمام حروف متن را به اندازه کلید به عقب برگردانیم!



این عید، شما باید نقش یک مهندس امنیت را بر عهده بگیرید.


شما باید برنامه‌ای بنویسید که یک متن را از کاربر دریافت کرده (متن منبع) و سپس آن را رمزنگاری کند. همچنین برنامه ای بنویسید که متن رمزنگاشته و کلید رمزنگاری آن را دریافت کرده، رمز متن را بشکند!

طراحی الگوریتم رمزنگاری، به عهده شماست و هر الگوریتمی که قوانین زیر را رعایت کرده باشد، مورد قبول است.


1- طول متن رمزنگاشته، باید حداکثر دوبرابر متن منبع باشد.

2- کلید باید یک عدد حداکثر 5 رقمی باشد.

3- متن رمزنگاشته، باید یک "عدد" باشد!


الف) برنامه‌ای بنویسید که عدد n را از کاربر دریافت کرده، سپس n حرف کوچک انگلیسی را از کاربر گرفته، آنها را رمزنگاری کند و سپس یک عدد حداکثر 2n رقمی را که همان متن رمزنگاشته است، نمایش دهد.

ب) برنامه‌ای بنویسید که نخست یک عدد به عنوان متن رمزنگاشته گرفته، سپس یک عدد به عنوان کلید رمزنگاری از کاربر دریافت کند و در نهایت، متن منبع را به صورت چند حرف کوچک انگلیسی (هرکدام در یک خط) نمایش دهد.


{امتیازی}

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

۹۵/۰۱/۰۱
آقای احمدی

1395

رمز نگاری

مشق عید

نظرات  (۱۲)

قسمت ب:
اگر کلید 0 باشد و ورودی .....11  باشد قسمت  در اول 11دو تا a است یا k؟؟؟؟؟
پاسخ:
این یک ابهام است. شما باید الگوریتم خود را طوری طراحی کنید (تبدیل متن منبع به متن رمز، و کاربرد کلید در این الگوریتم) که ابهامی در رمزگشایی وجود نداشته باشد.
بدیهی است که الگوریتم مطرح شده در پست، جوابگوی این سوال نیست و باید به دنبال رمزنگاری متفاوتی باشید.
۰۳ فروردين ۹۵ ، ۱۵:۵۳ رامتین اناری
با سلام 
می خواهم بپرسم ایا میشه از لیست در این برنامه استفاده کرد و ایا ممکن از از راه دیگری برای رمز گزاری استفاده کرد( به جز اون راهی که توی سوال است).
۰۳ فروردين ۹۵ ، ۲۰:۴۴ رامتین اناری
سلام ببخشید میشه در این سوال از لیست استفاده کرد یعنی
"S="salam
((print(s(0
البته اون 0 در کروشه قرار دارد.
لطفا جواب بدید
پاسخ:
خیر.
۰۴ فروردين ۹۵ ، ۱۵:۲۰ رامتین اناری
بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
سلام ببخشید من می خواستم بپرسن میشه توی این سوال از کد
****************************** 
**** * ** *
    ********
پاسخ:
سلام
شما میخواستی کیا بپرسن؟؟
۰۴ فروردين ۹۵ ، ۱۷:۲۶ رامتین اناری
بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
سلام ببخشید ایا میشه از کد زیر استفاده کرد
******************************
**** * ** *
    ********
پاسخ:
خیر
۰۴ فروردين ۹۵ ، ۱۸:۳۷ محمد فرداد زرین تاج
سلام
از دستور break میشه استفاده کرد؟؟؟
با تشکر
پاسخ:
اگر دبیر محترم کلاستان تدریس نموده اند، بله
جناب اقای اناری
لیست این جوریه که با کروشه کار میکنه نه پرانتز یعنی باید دور 0 بجای پرانتز از کروشه[استفاده کرد] !!!

پاسخ:
باریکلا :)
۰۷ فروردين ۹۵ ، ۲۰:۴۹ محمدمهدی علی آبادی
بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
آیا میشه ** *** *** ******** **** ****** ******* *** ***
***
******************************
**** * ** *
*********      
***          
****      
اگه نتونیم از این دستور استفاده کنیم کار سخت میشه و مجبوریم 26 تا if بذاریم 
پاسخ:
خیر، نمیشه.
هر چند تا دوست داشتید ایف بذارید.
۰۸ فروردين ۹۵ ، ۰۹:۴۱ محمدمهدی علی آبادی
سلام
ببخشید میشه قسمت (ب) سوال را طوری حل کنیم که هر حرف در یک خط نباشد؟؟
و همه در یک خط قرار بگیرند.
پاسخ:
فرقی نمی کند!
۰۸ فروردين ۹۵ ، ۱۹:۱۱ علیرضا مصلی نژاد
با این که بخش ب کلید داره، ولی بخش الف کلید نداره؟
فقط تعداد حرف رو بگیره بعد به اون تعداد حرف بگیره؟


پاسخ:
کلید در بخش الف ثابت است.
بله.
۱۰ فروردين ۹۵ ، ۰۹:۰۶ علیرضا مصلی نژاد
بخش الف نباید کلید رو نشون بده؟
یعنی خروجی بخش الف به درد بخش ب نمی خوره؟
پاسخ:
کلید در بخش الف ثابت است.
۱۲ فروردين ۹۵ ، ۱۳:۵۹ محمد فرداد زرین تاج
سلام
میشود خروجی الف و ورودی ب را باینری گرفت تا  کمی سوال باحال تر شود و  اگر میشود امتیازی هم دارد؟؟؟؟
در ضمن میشه کمی توضیح درباره ببدهید من درست متوجه نمی شوم یعنی مثلا عدد را که گرفتیم به تعداد کلید به سمت راست حرکت دهیم و بعد تبدیل به حرف کنیم با 26 تا ایف؟؟؟
با تشکر

ارسال نظر

نظر دادن تنها برای اعضای بیان ممکن است.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.