هر پیامی که در واتساپ یا تلگرام میفرستید، به شکل بستههایِ کوچکِ داده از دهها سرور و مسیر مختلف عبور میکند. در طول این مسیر، بستهی داده در معرض دید قرار دارد، اما آنچه مانع از خواندن محتوای آن میشود، جادوی «رمزنگاری» است. رمزنگاری مثل یک شنل نامرئی روی پیامها، عکسهای خانوادگی و اطلاعات بانکی ما کشیده میشود تا دست هیچ غریبهای به آنها نرسد.
رمزنگاری چیست و چرا اهمیت دارد؟
در زبان فارسی گاهی «رمزنگاری» و «رمزگذاری» به جایِ هم استفاده میشوند، اما این دو تفاوت ظریفی دارند. «رمزگذاری» (Encryption) تبدیل متن ساده به متن رمزی است. در مقابل، «رمزنگاری» (Cryptography) هنر و علمِ پنهان کردن اطلاعات از چشمهای بیگانه است؛ طوری که فقط گیرنده اصلی بتواند آن را بخواند.
ما هر روز بدون اینکه حتی متوجه شویم، بارها از رمزنگاری استفاده میکنیم. مثلاً وقتی در مرورگر علامت قفل سبز رنگ (پروتکل HTTPS) را کنار آدرس سایت میبینیم، وقتی در واتساپ چت میکنیم و یا وقتی به درگاه بانکی هدایت میشویم، رمزنگاری در حال محافظت از اطلاعات ماست.
بیشتر بخوانید
دو خانواده بزرگ رمزنگاری
الگوریتم های رمزنگاری بر اساس نحوهی مدیریت کلیدها به دو خانوادهی اصلیِ «متقارن» و «نامتقارن» تقسیم میشوند که هرکدام کاربردها و ویژگیهای منحصربهفرد خودشان را دارند.
رمزنگاری متقارن (Symmetric)
رمزنگاری متقارن را مانند گاوصندوقی با یک کلید واحد تصور کنید. شما با استفاده از کلید، درِ گاوصندوق را قفل میکنید و دقیقاً با همان کلید، مجدداً بازش میکنید. در دنیای دیجیتال هم فرستنده و گیرنده پیام باید یک کلید مشترک و مخفی داشته باشند.
مزیت اصلی این روش، سرعت بسیار بالای آن است. کامپیوترها میتوانند حجم عظیمی از اطلاعات را در کسری از ثانیه با این روش رمزنگاری کنند. اما چالش بزرگ نحوه رساندن کلید به گیرنده است؛ چون اگر کانال انتقال امن نباشد، خودِ کلید هم لو میرود. رمزگذاری فایلهای شخصی روی هارد دیسک، نمونهای رایج از رمزنگاری متقارن است.
رمزنگاری نامتقارن (Asymmetric)
برای حل مشکل انتقال کلید که پیشتر به آن اشاره کردیم، فناوری نامتقارن ابداع شد. این روش را میشود به صندوق پستی عمومی در خیابان تشبیه کرد. هر کسی میتواند نامه را از شکاف صندوق به داخل بیندازد، اما فقط پستچی که کلید اصلی صندوق را دارد میتواند نامهها را بردارد.
اینجا ما با دو کلید سر و کار داریم: «کلید عمومی» (Public Key) که همه آن را میشناسند و «کلید خصوصی» (Private Key) که فقط دست شماست و باید دست خودتان بماند. این روش برای ارسال پیامهای امن و ایجاد «امضای دیجیتال» کاربرد دارد.
جدول مقایسه رمزنگاری متقارن و نامتقارن
| ویژگی | رمزنگاری نامتقارن | رمزنگاری متقارن |
|---|---|---|
| تعداد کلید | دو کلید (عمومی و خصوصی) | یک کلید مشترک |
| سرعت پردازش | نسبتاً کند | بسیار بالا |
| امنیت توزیع کلید | بسیار بالا | پایینتر (نیاز به مسیر امن دارد) |
| کاربرد اصلی | تبادل کلید امن و امضای دیجیتال | رمزنگاری فایلها و دادههای حجیم |
مهمترین الگوریتمهای رمزنگاری متقارن
متخصصان برای پیادهسازی رمزنگاری متقارن از الگوریتمهای مختلفی استفاده میکنند که هرکدام مزایا و چالشهای خودشان را دارند.
الگوریتم AES: پادشاه رمزنگاری
الگوریتم AES (مخفف Advanced Encryption Standard) محبوبترین و یکی از قدرتمندترین روشهای رمزنگاری در جهان است. دلیل این محبوبیت، تعادل بینظیر آن بین امنیت بسیار بالا و سرعت پردازش عالی است.
این الگوریتم با کلیدهایی به طول ۱۲۸، ۱۹۲ و ۲۵۶ بیت کار میکند. هرچه این عدد بزرگتر باشد، امنیت بیشتر است. شکستن کلید AES−256 حتی برای قدرتمندترین ابرکامپیوترهای جهان، میلیاردها سال طول میکشد و به همین خاطر در دو دهه گذشته هیچ حمله عملی و موفقی علیه آن ثبت نشده است.
رد پای AES را همهجا میشود دید؛ از رمز عبور وایفای خانگی گرفته تا شبکههای خصوصی مجازی (ویپیان) و نرمافزارهای فشردهسازی فایل.
الگوریتمهای DES و 3DES؛ نسل قدیمیتر
استاندارد DES (مخفف Data Encryption Standard) در دهه ۷۰ میلادی ابداع شد. کلید ۵۶ بیتی DES در آن دوران امنیت قابل توجهی داشت، اما امروز یک هکر با تجهیزات متوسط میتواند قفل را در کمتر از ۲۴ ساعت بشکند.
برای رفع این مشکل الگوریتم 3DES معرفی شد که اطلاعات را سه بار پشت سر هم رمزنگاری میکرد. این مدل هم بسیار کند بود و با ظهور روشهای جدیدتر به طور کلی منسوخ و کنار گذاشته شد.
الگوریتم ChaCha20؛ رقیب چابک AES
این الگوریتم رقیبی تازهنفس و بسیار سریع برای AES است. برگ برندهی ChaCha20 این است که روی پردازندههای ضعیفتر (مانند موبایلهای قدیمی یا دستگاههای هوشمند خانگی) بسیار روانتر و سریعتر اجرا میشود و باتری کمتری مصرف میکند.
به لطف حمایتهای گوگل، استفاده از این الگوریتم در پروتکلهای امنیتی جدید مانند TLS 1.3 و بسیاری از اپلیکیشنهای موبایل گسترش پیدا کرد.
مهمترین الگوریتمهای رمزنگاری نامتقارن
در دنیای رمزنگاری نامتقارن با الگوریتمهایی سر و کار داریم که بر پایه مسائل پیچیده ریاضی بنا شدهاند.
الگوریتم RSA؛ پیرمرد قابل اعتماد
الگوریتم RSA از قدیمیترین و معتبرترین روشهای رمزنگاری نامتقارن است. ایده اصلی آن بسیار جالب است: ضرب کردن دو عدد اولِ بسیار بزرگ در یکدیگر کار آسانی است، اما فاکتورگیری (تجزیه حاصلضرب به اعداد اول ابتدایی) بسیار سخت و زمانبر خواهد بود.
این روزها استفاده از کلیدهای ۲۰۴۸ بیتی برای RSA، از حداقلیترین استانداردهای امنیتی محسوب میشود. کاربرد اصلی این الگوریتم صدور گواهینامههای SSL/TLS برای وبسایتها و اپلیکیشنها است تا ارتباط شما با سایتهای بانکی و فروشگاهها امن بماند.
الگوریتم ECC؛ کوچک اما قوی
الگوریتم ECC (مخفف Elliptic Curve Cryptography) یا «رمزنگاری منحنی بیضوی» در نوع خودش یک شاهکار ریاضیاتی است. این الگوریتم همان سطح امنیت RSA را با کلیدی بسیار کوچکتر و سبکتر ارائه میدهد. برای مقایسه، کلید ECC با طول ۱۲۸ بیت، سطح امنیتی معادل کلید RSA با طول ۳۰۷۲ بیت دارد.
به لطف همین سبکوزنی و نیاز کمتر به توان پردازشی، ECC انتخابی ایدهآل برای گوشیهای موبایل و دستگاههای اینترنت اشیا (IoT) است. اگر از کیف پولهای ارز دیجیتال مانند والتها بیتکوین استفاده میکنید، باید بدانید که امنیت دارایی شما توسط همین الگوریتم تامین میشود.
الگوریتم دیفی؛ رمزنگاری مخفیانه
«دیفی-هلمن» (Diffie-Hellman) پروتکلی برای تبادل کلید در فرایند رمزنگاری است که به دو طرف ارتباط اجازه میدهد از طریق یک کانال ناامن، با خیال راحت بر سر یک کلید مخفی مشترک به توافق برسند!
این الگوریتم بر پایه «مسأله لگاریتم گسسته» در ریاضی بنا شده است؛ به این صورت که دو طرف ابتدا روی دو عدد عمومی توافق میکنند، سپس هر کدام یک عدد خصوصی برای خود انتخاب و با یک محاسبه ریاضی، مقادیری را تولید و برای دیگری ارسال میکنند.
هر طرف با ترکیب مقدار دریافتشده از دیگری و عدد خصوصی خودش، به یک کلید مشترک و کاملاً یکسان میرسد که میتوان از آن برای رمزنگاری متقارن پیامهای بعدی استفاده کرد؛ بدون اینکه شخص دیگری در میانه راه بتواند کلید را کشف کند.
روش دیفی-هلمن ستون فقرات امنیت پروتکلهای HTTPS و شبکههای خصوصی است.
رمزنگاری یکطرفه با توابع هَش
در دنیای امنیت ابزار دیگری به نام «تابع هَش» (Hash Function) داریم. هَش کردن (که ترجمه لغویاش میشود: درهمریختن) از نظر فنی «رمزنگاری» محسوب نمیشود، چون فرآیندی یکطرفه است. اطلاعاتی که هش میشوند، قرار نیست هرگز به حالت اول خود برگردند.
تابع هش را مانند «اثر انگشت دیجیتال» در نظر بگیرید. شما میتوانید از هر فایل، متن یا تصویری یک هش بگیرید و یک رشته متنی با طول ثابت دریافت کنید. اما هرگز نمیتوانید از روی آن رشته متنی، فایل اصلی را بازسازی کنید.
مهمترین کاربرد هش، ذخیرهی امن کلمات عبور در سایتهاست. وبسایتهای معتبر هرگز پسورد شما را به صورت متن ساده ذخیره نمیکنند، بلکه نسخهی هش آن را نگه میدارند. کاربرد دیگرش تایید صحت فایلهای دانلودی است تا مطمئن شوید فایل را در میانه راه دستکاری نکردهاند.
الگوریتمهای اصلی هَش
در توابع هَش از الگوریتمهای متنوعی استفاده میشود که گرچه همگی ماهیتی یکطرفه دارند، اما معماری و مکانیزم محاسباتی آنها تفاوتهای بنیادین با یکدیگر دارد.
الگوریتم MD5
الگوریتم MD5 از نخستین توابع هش پرکاربرد بود که زمانی نهچندان دور برای رمزنگاری ساده و تایید صحت داده استفاده میشد. اما بهمرور زمان آسیبپذیریهای جدی آن آشکار شد و هکرها راه دور زدنش را پیدا کردند.
هرچند MD5 هنوز برای بررسی خطای انتقال بهکار میآید، اما استفاده از آن در فرایندهای امنیتی (مانند ذخیره رمزهای عبور یا امضای دیجیتال) منسوخ شده است.
الگوریتم SHA256
یکی از امنترین و پایدارترین استانداردهای هش در دنیای امروز، الگوریتم SHA 256 است. این مدل خروجی ۲۵۶ بیتی تولید میکند و به دلیل مقاومت بالا در برابر حملات برگشتپذیری، در بسیاری از سامانههای امنیتی و پروتکلهای ارتباطی استفاده میشود. خوب است بدانید «حمله برگشتپذیری» (Rollback Attack) زمانی رخ میدهد که مهاجم یک سیستم را مجبور میکند به نسخه قدیمیتر و آسیبپذیرتر از نرمافزار، پیکربندی یا دادهها برگردد.
قدرت و اعتبار SHA256 به حدی است که مکانیزمهای استخراج کوین در شبکه بیتکوین بر آن استوار شدهاند.
الگوریتم SHA‑3
این الگوریتم نماینده نسل جدید و پیشرفتهتر توابع هش رمزنگاری است که با نگاه به نیازهای امنیتی آینده، طراحی و پیاده شدهاند. برخلاف نسلهای قبلی که از ساختار کموبیش مشابهی بهره میبرند، SHA‑3 بر پایهی معماری متفاوتی بنا شده است.
این تفاوت ساختاری تضمین میکند که حتی اگر در آینده آسیبپذیری غیرمنتظرهای در استانداردهای فعلی کشف شود، SHA‑3 به عنوان یک جایگزین قدرتمند و نفوذناپذیر، در دسترس خواهد بود.
کار تیمی الگوریتمها برای امنیت ارتباطات
الگوریتمهایی که تا اینجا معرفی کردیم نه به صورت جداگانه، بلکه مثل یک تیم هماهنگ در کنار هم عمل میکنند. بیایید ببینیم وقتی آدرس یک سایت بانکی را در مرورگر تایپ میکنیم، دقیقاً چه اتفاقی میافتد.
- تایید اعتبار: مرورگر و سرور سایت با «رمزنگاری نامتقارن» (RSA یا ECC) با هم ارتباط برقرار میکنند. مرورگر گواهی سایت را بررسی میکند و اگر معتبر بود، ادامه میدهد.
- ایجاد کلید مشترک: مرورگر و سرور با الگوریتم دیفی-هلمن یک کلید مشترک و مخفی بین خودشان میسازند. این کلید موقتی است و فقط برای همین ارتباط استفاده میشود.
- ارتباط سریع: حالا که هر دو طرف یک کلید مشترک دارند، برای ادامه ارتباط از «رمزنگاری متقارن» (AES یا ChaCha20) با سرعت بالاتر استفاده میکنند.
- تأیید نهایی: در سراسر این مسیر توابع «هش» هم در پسزمینه کار میکنند تا مطمئن شوند هیچ دادهای حین انتقال دستکاری نمیشود.
همه این مراحل در کسری از ثانیه اتفاق میافتند؛ یعنی همان موقعی که مرورگر پیام یا علامت «در حال بارگذاری» نشان میدهد.
برای اینکه دید بهتری از کاربرد این مفاهیم داشته باشید، جدول زیر را ببینید:
| الگوریتم رمزنگاری | کاربرد اصلی |
|---|---|
| AES-256 | رمزگذاری فایل |
| RSA / ECC + TLS | امنیت وبسایت |
| SHA‑256 با سالت و KDF | ذخیره رمز عبور |
| ChaCha20 / ECC | ارتباط موبایلی و اپها |
| ECDSA | امضای دیجیتال |
| SHA-256 / SHA-3 | تأیید صحت فایل |
رمزنگاری پساکوانتومی
«کامپیوترهای کوانتومی» قدرت پردازشی غیرقابل تصوری دارند و معادلات پیچیدهای را حل میکنند که پایه و اساس الگوریتمهایی مثل RSA هستند. بنابراین سیستم کوانتومی حداقل در تئوری میتواند الگوریتمهای RSA و ECC را در هم بشکند.
اما آیا باید از همین الان نگران باشیم؟ هم بله و هم نه!
از یک طرف در اخبار میخوانیم کامپیوترهای کوانتومی ممکن است زودتر از آنچه پیشبینی میشد، رمزنگاری بیتکوین را بشکنند که باید زنگ خطری برای تمام صنایع (و نه فقط دنیای ارز دیجیتال) باشد. اما از طرف دیگر، متخصصان امنیت سایبری هم بیکار ننشستهاند و در حال توسعه نسل جدیدی از الگوریتمهای «پسا-کوانتومی» (Post-Quantum) هستند که در برابر این ابرکامپیوترها مقاوم خواهند بود.
در آخر: همه برای یکی!
امنیت اطلاعات، حاصل کار تیمیِ مجموعهای از الگوریتمهای هوشمند است. از سرعت بالای رمزنگاری متقارن گرفته تا قفلهای هوشمندانه رمزنگاری نامتقارن و اثر انگشتهای دیجیتال در توابع هش، تمام اینها در کنار هم یک سیستم امنیتی چندلایه ایجاد میکنند که ارتباطات اینترنتی را تا جای ممکن ایمن میکنند.
دفعه بعد که وارد سایت بانک شدید یا خرید آنلاین کردید، به قفل کوچک کنار آدرس وبسایت نگاهی بیندازید. حالا دیگر به خوبی میدانید که در پشت پردهی آن قفل ساده، چطور انواع الگوریتمهای ریاضی در حال حفاظت از اطلاعات شما هستند.
