ماجرای جالب رمزنگاری (cryptography)
سلام به همه
بلاخره بعد از یک مدت خیلی طولانی من دوباره برگشتم تا یک مطلب جدید و امیدوارم دنباله دار واستون بنویسم.
این مدت واقعا روزهای سختی رو گذروندیم و متاسفانه خیلی ها دیگه امروز کنار ما نیستن. میتونم بگم زندگی خیلی از ماها یک ماه و چند روز پیش برای همیشه تغییر کرد و یه غم خیلی بزرگی توی دلهامون کاشت…
این مدت که اینترنت نداشتیم و دسترسیمون به دنیا محدود شده بود، تنها پناه من خوندن کتاب، دیدن سریال و بازی کردن بود و خیلی اتفاقی به یه کتابی برخوردم که در مورد رمزنگاری بود و یهو یه ایده جالب به ذهنم رسید که ازقضا یکی از آرزوهای بچگیم هم بود!
همونطور که از عنوان این مطلب مشخصه، امروز میخوایم در مورد رمزنگاری صحبت کنیم؛ پس محکم بشینید و یه دفتر و مداد کنارتون آماده داشته باشید که قراره آخر این مطلب، یه معما رو با رمزنگاری حل کنید!!!
رمزنگاری چیه؟
در اصل رمزنگاری( cryptography) یه دانشه که با کمکش میتونید یک متن و مطلب رو ایمن و تبدیل به یک سری کدهای به ظاهر نامفهوم کنید تا هرکسی توانایی خوندنش رو نداشته باشه!
برای نوشتن یا رمزگشایی یک کد، میشه از ریاضیات، نظریه اطلاعات یا علوم کامپیوتر هم استفاده کرد. ولی بیاین خیلی ساده شروع کنیم به یاد گرفتنش!
تاریخچه رمزنگاری
طبق چیزی که من تونستم پیدا کنم، اولین بار مصریها حدود 4000 سال پیش شروع به مخفی کردن اطلاعاتشون از طریق رمزنگاری کردن تا فقط یه عده خاصی بتونن اون اطلاعات رو بخونن.
اولین و باستانی ترین مدل رمزنگاری هم “رمزنگاری سزار” بود که به صورت جایگزینی کار میکنه، یعنی مثلا هر حرف رو سه تا جلو میبردن! این رمز شاید خیلی ساده باشه ولی توی زمان خودش یک انقلاب بزرگ بود!
رمز سزار اینجوری کار میکنه:
الف = ت
ب = ث
پ = چ
حالا اون دفتری که گفتم رو باز کنید و با کمکش این کلمه رو با کمک رمز سزار، رمزگشایی کنید:
ضوته
نکته: نگران نباشید، حروف الفبای فارسی رو آخر این مطلب به همراه جواب معما گذاشتم!
حالا از زمان باستان میایم جلو و میرسیم به جنگهای جهانی، مخصوصا جنگ جهانی دوم که کل اطلاعاتی که بین هر گروه رد و بدل میشد، بر اساس مطالب رمزی بود و همین مسئله کم کم باعث ساخت “انیگما” و بعدها کامپیوتر امروزی شد. (شدیدا دیدن فیلم The Imitation Game رو بهتون توصیه میکنم.)
داستان انیگما از این قراره که توی جنگ جهانی دوم، آلمانی ها از یه دستگاهی استفاده میکردن که پیامهاشون رو به رمز تبدیل میکرد و انقدر غیرقابل شکستن بود که جبهه مقابل داشت جنگ رو می باخت!
تا اینکه خدا به اروپاییها رحم کرد و شخصی به اسم آلن تورینگ به همراه تیمش تونستن رمز رو بشکنن و مسیر جنگ رو تغییر بدن و بعد از اون بود که رمزنگاری از یک هنر به یک دانش و علم ریاضی تبدیل شد! (من موهای تنم سیخ شد از هیجان!!! )
امروز دیگه رمزنگاری فراتر از جنگ رفته و توی زندگی روزمره هم استفاده میشه، مثل پیامهای رمزنگاری شده واتساپ، رمز ارزها، بلاکچین، بانکداری و… . توی ریاضی ولی به نظرم خیلی پیچیده تره و از توابع هش (که ما توی دیتابیس ازش استفاده میکنیم)، نظریه اعداد، منحنی های بیضوی و… استفاده میشه که خب اینجا ما قرار نیست انقدر تخصصی در موردش صحبت کنیم و بیشتر به دنبال سرگرم کردن خودمون توی این شرایطیم!
جواب معما: سلام
رمزنگاری متقارن و غیرمتقارن
رمزنگاری متقارن یا Symmetric Encryption
توی این مدل رمزنگاری ما برای قفل کردن و باز کردن کد، یک کلید مشترک داریم و اگر کسی بتونه اون کلید رو پیدا کنه، قفل همه کدها رو میتونه باز کنه.
مدلهای خیلی زیادی وجود داره که این مدل رمزنگاری رو شامل میشه ولی بیاین یکی از سادهترینها که مورد علاقه منم هست رو بهتون توضیح بدم!
مدل رمزنگاری کلاسیک الفبای کلیددار یا Keyword Cipher به جای استفاده از الفبای معمولی، یک الفبای جدید بر اساس یک کلمه کلیدی ساخته میشه.
بیاین با یه مثال و روی الفبای فارسی بهتون توضیح بدم. فرض کنید میخواید این کد رو رمزگشایی کنید:
پهرف
کلید معما: رمزنگاری
نکته هایی که من موقع نوشتن این رمز در نظر گرفتم اینهاست:
یک. الفبای فارسی 32 حرفی
دو. حذف حروف تکراری (توی مثال ما، رمزنگاری تبدیل میشه به رمزنگای)
سه. حروف کلید را در ابتدای الفبای جدید قرار میدیم.
سپس بقیهی حروف الفبای فارسی رو، به ترتیب عادی اضافه میکنیم، به شرطی که قبلاً در کلید استفاده نشده باشن.
قبل از اینکه جواب معما رو ببینید، سعی کنید با توجه به جدول، خودتون کلمه رو حل کنید.
حل کردین؟
آمادهاین؟
یک
دو
سه
جواب معما: خیال
رمزنگاری نامتقارن یا (Asymmetric Encryption)
توی این مدل رمزنگاری ما به جای یک کلید معما، دو تا کلید داریم که یکیش عمومی هست و دومی خصوصیه. این دو کلید از نظر ریاضی به هم مرتبطاند، اما از روی کلید عمومی نمیتوان کلید خصوصی را به دست آورد.
بیاید با یه مثال واستون توضیح بدم:
فرض کنید من یه جعبه با یک قفل به هرکدوم از شما میدم و شما میتونید داخلش هرچقدر که میخواید برای من پیام بفرستین و قفلش کنید، ولی تنها کسی که میتونه این قفل هارو باز کنه فقط منم، چون کلید قفلها دست منه!
این نسبت به رمزنگاری متقارن خیلی امن تره چون لازم نیست من کلیدی به کسی بدم! ولی کاربرد این مدل رمزنگاری هم خیلی پیچیده تره!
ما از رمزنگاری نامتقارن توی اینترنت و امنیت اطلاعات کاربرا استفاده میکنیم، اینجوری هرکسی نمیتونه ببینه چه کسی از طریق اینترنت داره چه دیتایی رو استفاده میکنه، همینطور که توی درگاه پرداخت اینترنتی جز خودت، کسی نمیتونه اطلاعات کارت و رمزت رو ببینه!
خلاصه اینکه دنیای رمزنگاری از 4000 سال پیش تا الان راه زیاد و پر پیچ و خمی رو طی کرده که ما امروز برسیم به اینجا. هرچند که توی این وبسایت ما قراره رمزهای ساده اما هیجان انگیزی رو حل کنیم و برای زمان کوتاهی هم که شده از واقعیت زشت و غمانگیز دنیایی که امروز میگذرونیم رها بشیم.
سخن آخر
و اما میرسیم به معمای آخر که قراره شما رو به یک سرنخ از ایده ای که برای این وبسایت دارم، برسونه و این بار قراره به تنهایی خودتون یک معمای رمزگذاری شده رو حل کنید.
توی این معما دقیقا از الگو و قوانین معمای آخری که حل کردیم، استفاده میکنم و بهتون یک سرنخ میدم تا بتونید کلید رو پیدا کنید. یادتون نره بعد از حل کردن معما، واسم جوابش رو کامنت بذارید تا بهتون بگم جوابتون درست بوده یا نه.
تا مطلب و معمای دیگه، برای فعلا بدرود…
معما
معما: ژفکخ فتکر
سرنخ یک برای پیدا کردن کلید: اصطلاحا به کسی که خیلی کتاب میخونه میگیم.
سرنخ دو: این اصطلاح از دو کلمه تشکیل شده.