رمزنگاری کلید متقارن (Public-key cryptography) نوعی برنامه رمزگذاری است که در آن از یک کلید برای رمزگذاری و رمزگشایی پیامها استفاده میشود. چنین روشی برای رمزگذاری اطلاعات در دهه های گذشته بطور گسترده ای برای تسهیل ارتباطات مخفی بین دولت ها و نظامیان مورد استفاده قرار گرفته است. امروزه، الگوریتمهای کلید متقارن (Symmetric-key cryptography) به طور گستردهای در انواع مختلف سیستم های رایانه ای برای افزایش امنیت داده ها استفاده میشوند.
نحوهی عملکرد رمزگذاری متقارن
طرحهای رمزگذاری متقارن به یک کلید متکی هستند که بین دو یا چند کاربر مشترک است. از همین کلید برای رمزگذاری و رمزگشایی به اصطلاح متن ساده (که نشان دهنده پیام یا داده ای است که رمزگذاری میشود) استفاده می شود. روند رمزگذاری شامل اجرای یک متن ساده (ورودی) از طریق یک الگوریتم رمزنگاری به نام cipher است که متن رمز (خروجی) تولید میکند.
اگر طرح رمزگذاری به اندازه کافی قوی باشد، تنها راه برای خواندن یا دسترسی به اطلاعات موجود در متن رمزنگاری، استفاده از کلید مربوطه برای رمزگشایی آن است. روند رمزگشایی اساساً تبدیل متن رمز به متن ساده است.
امنیت سیستم های رمزگذاری متقارن به این بستگی دارد که کلید مربوطه برای انجام حملات، چقدر دشوار حدس زده میشود. برای مثال حدس زدن یک کلید ۱۲۸ بیتی، با استفاده از سخت افزار رایانه میلیاردها سال طول میکشد. هرچه مدت زمان رمزگذاری طولانی تر باشد، شکستن آن دشوارتر میشود. کلیدهایی که طول آنها ۲۵۶ بیت است، به طور کلی به عنوان بسیار ایمن و از نظر تئوری مقاوم در برابر حملات کامپیوتر کوانتومی در نظر گرفته میشوند.
دو مورد از رایج ترین طرح های رمزنگاری کلید متقارن که امروزه مورد استفاده قرار میگیرد بر اساس رمزهای بلوک و جریان است. رمزگذاران بلوک داده ها را به بلوک هایی با اندازه از پیش تعیین شده گروه بندی میکنند و هر بلوک با استفاده از کلید مربوطه و الگوریتم رمزگذاری، رمزگذاری میشود (به عنوان مثال متن ساده ۱۲۸ بیتی در متن رمز ۱۲۸ بیتی رمزگذاری شده است). از طرف دیگر، رمزنگارهای جریان، داده های متن ساده را با بلاک ها رمزگذاری نمیکنند، بلکه با افزایش ۱ بیتی (متن ساده ۱ بیتی) رمزگذاری میشود.
رمزگذاری متقارن در مقابل رمزگذاری نامتقارن
رمزگذاری متقارن یکی از دو روش اصلی رمزگذاری داده ها در سیستم های رایانه ای مدرن است. مورد دیگر رمزگذاری نامتقارن است که عمده ترین کاربرد رمزنگاری کلید عمومی است. تفاوت اصلی بین این روش ها در این است که سیستم های نامتقارن از دو کلید استفاده میکنند که در برنامه های متقارن فقط یکی از آن ها به کار رفته است. یکی از کلیدها میتواند به صورت عمومی (کلید عمومی) به اشتراک گذاشته شود، در حالی که کلید دیگر باید به صورت خصوصی (کلید خصوصی) نگهداری شود.
همچنین استفاده از دو کلید به جای یک کلید، تفاوت های عملکردی متنوعی را بین رمزگذاری متقارن و نامتقارن ایجاد میکند. الگوریتم های نامتقارن پیچیده تر و کندتر از متدهای متقارن هستند. از آنجا که کلیدهای عمومی و خصوصی بکار رفته در رمزگذاری نامتقارن تا حدی از لحاظ ریاضیاتی مرتبط هستند، خود کلیدها نیز باید به طور قابل ملاحظه ای طولانی تر باشند تا سطح امنیتی مشابهی را که توسط کلیدهای متقارن کوتاه تر ارائه شده است، فراهم کنند.
موارد استفاده رمزنگاری کلید متقارن در سیستمهای رایانهای مدرن
الگوریتم های رمزنگاری کلید متقارن در بسیاری از سیستم های رایانه ای مدرن به منظور افزایش امنیت داده ها و حریم خصوصی کاربران استفاده میشوند. استاندارد رمزگذاری پیشرفته (AES) که به طور گسترده در برنامه های پیام رسان ایمن و ذخیره سازی ابری استفاده میشود، یکی از نمونه های برجسته رمز رمزنگاری است.
علاوه بر پیاده سازی نرم افزار، AES میتواند مستقیماً در سخت افزار رایانه نیز پیاده سازی شود. طرح های رمزگذاری متقارن مبتنی بر سخت افزار معمولاً از AES 256 استفاده میکنند که نوع خاصی از استاندارد پیشرفته رمزگذاری است که اندازه کلید آن ۲۵۶ بیت است.
اما جالب است بدانید که بلاکچین بیت کوین از رمزگذاری استفاده نمیکند. درعوض، از نوع خاصی از الگوریتم امضاهای دیجیتال (DSA ) معروف به الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) استفاده میکند که امضای دیجیتالی را بدون استفاده از رمزگذاری تولید میکند.
یک نکته رایج این است که ECDSA مبتنی بر رمزنگاری منحنی بیضوی (ECC) است، که ممکن است برای چندین کار از جمله رمزگذاری، امضاهای دیجیتالی و مولدهای شبه تصادفی اعمال شود. با این حال، به تنهایی از ECDSA به هیچ وجه نمیتوان برای رمزگذاری استفاده کرد.
مزایا و معایب رمزنگاری کلید متقارن
الگوریتم های رمزگذاری متقارن سطح نسبتاً بالایی از امنیت را فراهم میکنند و در عین حال امکان رمزگذاری و رمزگشایی سریع پیام ها را فراهم میکنند. سادگی نسبی سیستم های متقارن نیز یک مزیت لجستیک است، زیرا آنها به محاسبات کمتری نسبت به سیستم های نامتقارن نیاز دارند. علاوه بر این، امنیت ارائه شده توسط رمزگذاری متقارن را میتوان به سادگی با افزایش طول کلیدها افزایش داد. به ازای هر بیتی که به طول یک کلید متقارن اضافه میشود، مشکل شکستن رمزگذاری از طریق حمله brute force (حمله جستجوی فراگیر) به طور تصاعدی افزایش مییابد.
در حالی که رمزگذاری متقارن طیف وسیعی از مزایا را ارائه میدهد، یک نقطه ضعف عمده در ارتباط با آن وجود دارد: مشکل ذاتی انتقال کلیدهای مورد استفاده برای رمزگذاری و رمزگشایی داده ها. وقتی این کلیدها از طریق اتصال ناامن به اشتراک گذاشته میشوند، در معرض رهگیری توسط اشخاص ثالث مخرب قرار دارند. اگر کاربر غیرمجاز به یک کلید متقارن خاص دسترسی پیدا کند، امنیت هر داده رمزگذاری شده با استفاده از آن کلید به خطر میافتد. برای حل این مشکل، بسیاری از پروتکل های وب از ترکیبی از رمزگذاری متقارن و نامتقارن برای ایجاد اتصالات ایمن استفاده میکنند. از برجسته ترین نمونه های چنین سیستم ترکیبی، پروتکل رمزنگاری Transport Layer Security (TLS) است که برای ایمن سازی بخش بزرگی از اینترنت مدرن استفاده میشود.
همچنین لازم به ذکر است که انواع رمزگذاری رایانه به دلیل اجرای نادرست در معرض آسیب پذیری هستند. اگرچه یک کلید طولانی به اندازه کافی میتواند حمله جستجوی فراگیر را از نظر ریاضی غیرممکن سازد، اما اشتباهات در اجرای برنامه نویسان اغلب نقاط ضعفی ایجاد میکند که راه را برای حملات سایبری باز میکند.
سخن پایانی
به لطف سرعت، سادگی و امنیت نسبی، از رمزنگاری کلید متقارن به طور گسترده در برنامههای مختلف از امنیت ترافیک اینترنت گرفته تا محافظت از اطلاعات ذخیره شده در سرورهای ابری استفاده میشود. اگرچه برای حل مشکل انتقال ایمن کلیدها به طور مکرر با رمزگذاری نامتقارن جفت میشود، اما طرحهای رمزنگاری کلید متقارن همچنان جزء مهمی در امنیت رایانه مدرن هستند.