رمزنگاری چیست؟ مروری بر انواع رمزنگاری (الگوریتمهای رمزنگاری متقارن و نامتقارن)

۲۲ اسفند ۱۳۹۶ بلاگی

اهداف و انتظارات آموزشی بلاگ چارت در این درس

کد درس: ۶۲۰۶۵

پیش نیاز مطالعه درس رمزنگاری و انواع آن از دوستان عزیز بلاگ چارتی انتظار می‌رود پس از مطالعه این درس

  • بتوانند رمزنگاری را تعریف کنند و توضیح دهند که چرا به رمزنگاری نیاز داریم؟
  • به خاطر داشته باشند که رمزنگاری پدیده‌ی تازه‌ای نیست و تاریخچه رمزنگاری به هزاره‌های گذشته باز می‌گردد.
  • بتوانند تفاوت الگوریتمهای رمزنگاری متقارن و الگوریتمهای رمزنگاری نامتقارن را شرح دهند.
  • بتوانند توضیح دهند که کلید عمومی (Public Key) با کلید اختصاصی (Private Key) چه تفاوتی دارد.

تذکر: این درس صرفاً یک توضیح مقدماتی در حد انتظارات و چارچوب درس سواد دیجیتال است. به همین علت در آن صرفاً به شرح کلی اصطلاحات بدون پیچیدگی‌های فنی و تخصصی پرداخته می‌شود. بنابراین، درس حاضر بیشتر نوعی معرفی مفهوم رمزنگاری است و در آن به نکات مرتبط با برنامه نویسی و پیاده سازی الگوریتم های رمزنگاری و چالش‌های فنی و ریاضی این حوزه اشاره نشده است.

فشار ذهنی هنگام مطالعه

نیاز به مشارکت شما

کسب و کار

زندگی

تعریف رمزنگاری چیست و انواع رمزنگاری کدامند

آیا شما هم در دوران کودکی خود، بخشی از خاطرات‌تان را با زبان رمزی که فقط خودتان می‌دانسته‌اید نوشته‌اید؟

آیا بین دوستان و هم‌کلاسی‌ها، نامه‌ها و نوشته‌هایی را به زبان رمز رد و بدل می‌کردید؟

البته به خوبی می‌دانیم که لذت این بازی‌ها معمولاً به رمزنگاری و رمزگشایی پیام‌هاست؛ وگرنه احتمالاً محتوای پیام‌های ما ارزش چندانی نداشته است.

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

شاید هم روی رقم چک‌هایتان را با نوار چسب شفاف پوشانده باشید.

همه‌ی این کارها، به نوعی در حوزه امنیت ارتباطات (Communication Security) و امنیت اطلاعات (Information Security) قرار می‌گیرند.

البته چسباندن نوار چسب روی رقم چک، باعث نمی‌شود که دیگران رقم آن را نبینند. بنابراین شما امنیت دسترسی (Access Security) را تأمین نکرده‌اید؛ بلکه صرفاً امنیت تغییر دادن (Modification Security) را با این نوار چسب ایجاد کرده‌اید.

چون مامور بانک یا هر فرد دیگری که چک را دریافت می‌کند، می‌تواند بفهمد که رقم آن تغییر داده شده یا نه.

بخش مهمی از دانش رمزنگاری به امنیت تبادل اطلاعات (Information Exchange Security) مربوط می‌شود.

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

تاریخچه رمزنگاری: آیا رمزنگاری یک دغدغه جدید است؟

به سادگی می‌توانید حدس بزنید که بحث رمزنگاری و حفاظت اطلاعات یک چالش جدید نیست.

پادشاهان کهن نیز همواره با این مسئله مواجه بوده‌اند که چگونه می‌توانند امنیت پیام‌های خود را حفظ کنند.

حفظ پیام و اطمینان از صحت آن وقتی گاه هفته‌ها و ماه‌ها طول می‌کشید تا نامه‌ای از گوشه‌ی یک امپراطوری به گوشه‌ی دیگرش برسد چندان ساده نبوده است.

حفظ امنیت اطلاعات در آن دوران به شکل‌های متفاوتی انجام می‌شده است.

رمزنگاری سزار از جمله روش‌هایی است که شهرت جهانی دارد. او به جای هر حرف الفبا از سه حرف بعد از آن استفاده می‌کرد مثلاً فرض کنید اگر می‌خواست ب را بنویسد به جای آن از ث استفاده می‌کرد. در این روش، بلاگ چارت به صورت هچهه نوشته می‌شد (البته فراموش نکرده‌ایم که الفبای نامه‌های سزار، رومی بوده است).

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

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

هنوز هم در زبان انگلیسی وقتی کسی چیزی را به شکلی می‌نویسد که قابل فهم نیست، می‌گویند Gibberish نوشته است. بسیاری از زبان‌شناسان معتقدند که این اصطلاح از نام جابر گرفته شده است: کسی که رمزگذاری شده می‌نویسد و مثل نوشته‌های جابر، نمی‌توان آن را خواند و فهمید.

چرا امروز بحث الگوریتم های رمزنگاری تا این حد فراگیر شده است؟

توسعه فناوری اطلاعات و گسترش اینترنت و شبکه های ارتباطی باعث شد که ارسال و دریافت پیام دیگر به حاکمان و دولت‌ها و کسب و کارها محدود نباشد.

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

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

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

چگونه امنیت پیام را مستقل از پیام رسان تأمین کنیم

اگر قبلاً با بحث رمزنگاری آشنا نباشید، احتمالاً درک پیچیدگی‌های آن برایتان چندان ساده نیست.

اجازه بدهید با یک مثال فیزیکی، ببینیم که چه نوع چالش‌هایی در این کار وجود دارد.

فرض کنید چمدانی در اختیار شماست و می‌خواهید در آن بسته‌ای بگذارید و برای بلاگ چارت بفرستید. اما چون فردی که چمدان را می‌آورد نمی‌شناسید، برایتان مهم است که اطمینان حاصل کنید او نمی‌تواند داخل چمدان را ببیند.

اگر بین شما و بلاگ چارت یک کانال ارتباطی دیگر (مثلاً تلفن) وجود داشته باشد، کار چندان دشوار نیست. چمدان را با قفل رمزی می‌بندید و رمز آن را به کمک تلفن به بلاگ چارت خبر می‌دهید.

اما اگر هیچ روش ارتباطی دیگری بین ما – جز همین فردِ جابجاکننده‌ی چمدان – وجود نداشته باشد چه کار کنیم؟

روشی که در اینجا می‌گوییم ساده‌ترین راه‌حل نیست. اما می‌تواند ما را کمی به فضای طراحی الگوریتم‌های رمزگذاری نزدیک کند.

شما می‌توانید بسته را داخل چمدان بگذارید و آن را با قفلی که خودتان کلیدش را دارید قفل کنید.

حالا بسته را برای بلاگ چارت می‌فرستید و ما علاوه بر قفل شما، قفل دیگری هم روی آن می‌گذاریم که کلیدش را خودمان داریم.

کلید ما و شما پیش خودمان است و آن را به کسی که چمدان جابجا می‌کند نمی‌دهیم.

او چمدان را دوباره برای شما می‌آورد و شما قفل خود را از روی آن باز می‌کنید و چمدان را دوباره برای ما بازمی‌گرداند.

حالا ما هم می‌توانیم قفل خودمان را باز کنیم و بسته را برداریم.

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

منظور از رمزگذاری و رمزگشایی در فضای دیجیتال چیست؟

طبیعتاً ما در اینجا نه قفل داریم و نه چمدان و نه کلید.

بنابراین باید به خاطر داشته باشیم که رمزگذاری و رمزگشایی دو الگوریتم هستند.

منظور از رمزگذاری (Encryption) در فضای دیجیتال الگوریتمی است که متن اصلی و شفاف شما را به یک متن غیرقابل خواندن (توسط حامل پیام) تبدیل می‌کند.

به متن یا پیام شفاف اصلی Clear-text و به متنی که کدگذاری شده و قابل خواندن نیست Cipher-text می‌گویند.

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

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

واضح است که اگر یک الگوریتم برای رمزگذاری (Encryption) یا قفل کردن چمدان اطلاعات تعریف می‌کنید، باید الگوریتم دیگری هم برای رمزگشایی (Decryption) را باز کردن قفل چمدان تعریف کنید.

در ادامه‌ی این درس می‌بینیم که الگوریتم‌های رمزگذاری و رمزگشایی به دو دسته‌ی متقارن (Symmetric) و نامتقارن (Asymmetric) تقسیم می‌شوند.

منظور از رمزگذاری متقارن چیست؟

محدودیت در دسترسی کامل به این درس

دوست عزیز.

این درس برای کاربران ویژه بلاگ چارت در نظر گرفته شده است.

با عضویت به عنوان کاربر ویژه‌ی بلاگ چارت، علاوه بر دسترسی به این مطلب، به سایر بحث‌هایی هم که به سواد دیجیتال مطرح می‌شوند دسترسی پیدا می‌کنید.

همچنین با فعال کردن اشتراک ویژه به درس‌های بسیار بیشتری دسترسی پیدا می‌کنید که می‌توانید فهرست آنها را در اینجا ببینید:

 فهرست درس‌های مختص کاربران ویژه بلاگ چارت

البته از میان درس‌ها و مطالب مطرح شده، ما فکر می‌کنیم شاید بهتر باشد ابتدا مطالعه‌ی مباحث زیر را در اولویت قرار دهید:

  استراتژی محتوا

  دیجیتال مارکتینگ

  ایمیل مارکتینگ

  دوره MBA

چند فایل PDF حاوی نکات و توضیحات آموزشی در زمینه رمزنگاری

یک فایل PDF هشتاد صفحه‌ای خوب و ساده که توسط Network Associates منتشر شده و در چند صفحه‌ی پایانی آن، یک واژه نامه اصطلاحات تخصصی رمزنگاری هم وجود دارد که هر اصطلاح را در حد چند جمله توضیح داده است:

Introduction to Cryptography (Published by Network Associates)

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

An introduction to cryptography (Published by PGP)

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

Cryptography: Past, Present, Future (Nicholas McDonald)

 

برخی از سوالهای متداول درباره بلاگ چارت

بلاگ چارت چیست و چه می‌کند؟

چه درس‌هایی در بلاگ چارت ارائه می‌شوند؟

هزینه ثبت‌نام در بلاگ چارت چقدر است؟

آیا در بلاگ چارت فایل‌های صوتی رایگان هم برای دانلود وجود دارد؟

با بلاگ چارت همراه شوید

آیا می‌دانید که فقط با درج نام کاربری و ایمیل خود می‌توانید به جمع بلاگ چارتی‌ها بپیوندید؟

اطلاعات ثبت نام

ترتیبی که گروه بلاگ چارت برای خواندن مطالب سری سواد دیجیتال به شما پیشنهاد میکند:

سری مطالب حوزه سواد دیجیتال

دانلود آهنگ مسعود صادقلو ما به هم میایم