رمزنگاری

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

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

رمزنگاری چیست؟

رمزنگاری فرآیندی است که داده‌ی خوانا را با استفاده از یک الگوریتم و کلید رمزنگاری به داده‌ای غیرخوانا تبدیل می‌کند. به داده‌ی اولیه «متن آشکار» و به خروجی رمز‌ی «متن رمزشده» می‌گویند. کسی که کلید مناسب را در اختیار داشته باشد، می‌تواند متن رمزشده را به شکل اولیه بازگرداند. فرآیند بازگرداندن داده‌ی رمزشده به‌شکل خوانا را رمزگشایی می‌نامند. برای مثال، اگر یک پیام پیش از ارسال رمزنگاری شود، فردی که در میانه‌ی مسیر به آن دسترسی پیدا می‌کند، بدون داشتن کلید نمی‌تواند محتوای پیام را بخواند. 

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

تاریخچه‌ رمزنگاری

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

با گسترش ارتباطات مخابراتی و سپس رایانه‌ها، نیاز به روش‌های پیچیده‌تر افزایش یافت. رمزنگاری مدرن به‌جای جابه‌جایی ساده‌ی حروف، بر محاسبات ریاضی، کلیدهای طولانی و تحلیل دقیق الگوها تکیه دارد. در دهه‌ی ۱۹۶۰، هارست فیستل در گروه رمزنگاری IBM روی روش‌هایی کار کرد که بعدها مسیر توسعه‌ی رمزهای بلوکی را شکل داد. الگوریتم لوسیفر که در همان فضا توسعه یافت، در روندی تاریخی به استاندارد رمزگذاری داده‌ها یا DES نزدیک شد.

اکنون، الگوریتم‌های قدیمی مانند DES به‌دلیل طول ناکافی کلید، امنیت مطلوبی ندارند. در مقابل، استانداردهایی مانند AES برای رمزنگاری متقارن و الگوریتم‌هایی مانند RSA و ECC برای کاربردهای کلید عمومی استفاده می‌شوند. با افزایش توان پردازشی و ظهور رایانش کوانتومی نیز پژوهش درباره‌ی الگوریتم‌های مقاوم در برابر تهدیدهای آینده ادامه دارد.

اصطلاحات رایج در رمزنگاری

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

  • کلید یا Key: مقداری محرمانه یا عمومی که الگوریتم با استفاده از آن داده را رمزنگاری، رمزگشایی یا بررسی می‌کند.
  • رمز یا Cipher: الگوریتم یا روش عملی تبدیل متن آشکار به متن رمزشده.
  • الگوریتم یا Algorithm: مجموعه‌ی قواعد ریاضی و محاسباتی که فرآیند رمزنگاری را انجام می‌دهد.
  • رمزگشایی یا Decryption: فرآیند بازگرداندن متن رمزشده به داده‌ی اصلی با استفاده از کلید مناسب.
  • تحلیل رمزنگاری یا Cryptanalysis: بررسی روش‌های شکستن یا دور زدن سامانه‌ی رمزنگاری بدون داشتن کلید مجاز.
  • متن آشکار یا Plaintext: داده‌ای که پیش از رمزنگاری، خوانا است.
  • متن رمزشده یا Ciphertext: داده‌ای است که پس از اجرای الگوریتم رمزنگاری تولید می‌شود و بدون کلید درست، معنای آن مشخص نیست.

انواع رمزنگاری

انواع رمزنگاری

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

1. رمزنگاری متقارن

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

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

2. رمزنگاری نامتقارن

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

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

3. رمزنگاری ترکیبی

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

پروتکل SSL/TLS که پایه‌ی ارتباط امن میان مرورگر و وب‌سایت است، از چنین منطقی بهره می‌برد. گواهی دیجیتال به مرورگر کمک می‌کند هویت دامنه را بررسی کند و سپس دو‌طرف برای ارتباط، کلیدهای موقتی می‌سازند. اگر یک وب‌سایت اطلاعات کاربران را دریافت می‌کند، خرید گواهی‌نامه SSL یکی از گام‌های لازم برای ایجاد ارتباط امن HTTPS است.

ویژگی رمزنگاری متقارن رمزنگاری نامتقارن رمزنگاری ترکیبی
تعداد کلید یک کلید مشترک یک کلید عمومی و یک کلید خصوصی ترکیبی از هر دو روش
سرعت بالا کم‌تر بالا در انتقال اطلاعات
کاربرد اصلی فایل، دیسک احراز هویت، امضا، تبادل کلید HTTPS و ارتباطات امن
محدودیت اصلی توزیع امن کلید هزینه‌ی پردازشی بیش‌تر پیاده‌سازی پیچیده‌تر
نمونه‌ی الگوریتم AES RSA،

ECC

TLS

ویژگی‌های الگوریتم رمزنگاری متقارن

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

AES در سه طول کلید ۱۲۸، ۱۹۲ و ۲۵۶ بیتی شناخته می‌شود. طول بیش‌تر کلید لزومن به‌ معنای انتخاب درست در هر موقعیت نیست، ولی توان مقاومت در برابر آزمودن همه‌ی حالت‌های ممکن را افزایش می‌دهد. انتخاب الگوریتم، حالت رمز و نحوه‌ی مدیریت کلید باید با نیاز واقعی سامانه هماهنگ باشد.

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

ویژگی‌های الگوریتم رمزنگاری نامتقارن

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

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

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

کاربردهای رمزنگاری

کاربردهای رمزنگاری

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

HTTPS .1 و گواهی‌های SSL/TLS

در HTTPS، مرورگر و سرور با پروتکل SSL/TLS ارتباط امن برقرار می‌کنند. این پروتکل از شنود و دست‌کاری داده در مسیر انتقال جلوگیری و با بررسی گواهی، به مرورگر کمک می‌کند هویت دامنه را مورد ارزیابی قرار دهد. علامت قفل کنار نشانی سایت نشان می‌دهد ارتباط با HTTPS برقرار شده است، ولی به‌تنهایی نشانه‌ی معتبر بودن همه‌ی بخش‌های یک وب‌سایت نیست.

2. پیام‌رسان‌های دارای رمزنگاری سرتاسری

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

3. سرورها، فضای ابری و شبکه‌ توزیع محتوا

در سرورها، فضای ذخیره‌سازی و سرویس‌های ابری، رمزنگاری از داده‌ی در‌ حال انتقال و داده‌ی ذخیره‌شده محافظت می‌کند. برای نمونه، داده می‌تواند هنگام ارسال میان کاربر و سرور با TLS رمزنگاری شود و هنگام نگه‌داری روی دیسک یا فضای ذخیره‌سازی نیز در قالب رمزشده باقی بماند.

شبکه‌ توزیع محتوا نیز در سرعت و دسترس‌پذیری سرویس نقش دارد و باید در کنار تنظیم درست گواهی، دامنه و قوانین دسترسی بررسی شود. خرید CDN زمانی نتیجه‌ی مناسبی دارد که تنظیمات TLS و سیاست‌های امنیتی سرویس نیز درست پیکربندی شوند.

4. ارزهای دیجیتال و بلاکچین

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

5. احراز هویت و امضای دیجیتال

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

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

تفاوت رمزنگاری، هش و امضای دیجیتال

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

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

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

جمع‌بندی

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

رمزنگاری متقارن برای انتقال سریع داده، رمزنگاری نامتقارن برای تبادل کلید و امضای دیجیتال و رمزنگاری ترکیبی برای ارتباطات امنی مانند HTTPS کاربرد دارند. امنیت واقعی زمانی شکل می‌گیرد که رمزنگاری در کنار مدیریت درست کلیدها، تنظیم امن سرویس‌ها و دیگر لایه‌های امنیت اطلاعات قرار بگیرد.

ارسال پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *