به هر الگوریتم یا تابع ریاضی که به علت دارا بودن خواص مورد نیاز در رمزنگاری، در پروتکلهای رمزنگاری مورد استفاده قرار گیرد، الگوریتم رمزنگاری گفته میشود. سیستمهای رمزنگاری در حال حاضر به دو حوزه مطالعاتی مهم تقسیم میشوند:
- رمزنگاری متقارن (Symmetric Encryption)
- رمزنگاری نامتقارن (Asymmetric Encryption)
رمزنگاری متقارن (Symmetric Encryption)
در این روش برای انجام رمزنگاری و رمزگشایی از یک کلید یکسان استفاده میشود. فرستنده از یک کلید برای رمز کردن داده رمز نشده استفاده کرده و داده رمز شده را به سمت گیرنده ارسال میکند. گیرنده، داده رمز شده را با همان کلیدی که برای رمزکردن داده بهکار رفته بود، رمزگشایی کرده و دیتای رمزگشایی شده را میخواند. این نوع از رمزنگاری زمانی به خوبی کار خواهد کرد که با تعداد محدودی از افراد ارتباط و تبادل داده داشته باشید.
مشکلی که روش رمزنگاری متقارن دارد، انتقال آن در شبکههای بزرگ و یا اینترنت و خطرِ افتادن به دست افراد دیگر است. در این فرآیند، هرکسی که کلید امنیتی را در اختیار داشته باشد، میتواند بهراحتی دادهها را رمزگشایی کند.
بیشتر بدانید:
روشهای رمزنگاری زیر بهصورت متقارن کار میکنند:
- AES
- DES
- ۳DES
- RC4
- Quad
رمزنگاری نامتقارن (Asymmetric Encryption)
الگوریتمهای رمزنگاری با کلید نامتقارن از کلیدهای مختلفی برای رمزنگاری و رمزگشایی استفاده میکنند. بسیاری از سیستمها اجازه میدهند که یکی از کلیدها کلید عمومی یا (public key) منتشر شود در حالی که دیگری کلید خصوصی یا (private key) توسط صاحبش حفظ میشود. فرستنده پیام، متن را با کلید عمومی گیرنده، کد میکند و گیرنده آن را با کلید اختصاصی خود رمزگشایی میکند. به عبارتی تنها با کلید خصوصی گیرنده میتوان متن کد شده را به متن اولیه صحیح تبدیل کرد. یعنی حتی فرستنده نیز اگرچه از محتوای اصلی پیام مطلع است اما نمیتواند از متن کدشده به متن اصلی دست یابد، بنابراین پیام کدشده برای هر گیرندهای، به جز گیرنده مورد نظر فرستنده، بی معنی خواهد بود.
روشهای رمزنگاری زیر بصورت نامتقارن کار می کنند:
- RSA
- Diffie-Hellman
- ECC
- El Gamal
- DSA
نتیجه گیری
بحثهای زیادی شده که کدام یک از این الگوریتمها بهتر هستند! اما باید گفت که این سوال، جواب مشخصی ندارد. بهطور خلاصه میتوان گفت که الگوریتمهای متقارن دارای سرعت بالاتر و الگوریتمهای نامتقارن دارای امنیت بهتری هستند. در ضمن گاهی از سیستم ترکیبی از هر دو الگوریتم استفاده میکنند که به این الگوریتمها الگوریتمهای ترکیبی (hybrid) گفته میشود. اما اگر بهطور دقیقتر به این دو نگاه کنیم آنگاه متوجه خواهیم شد که الگوریتمهای نامتقارن و الگوریتمهای کلید متقارن دارای دو ماهیت کاملاً متفاوت هستند و کاربردهای متفاوتی دارند. بهطور مثال در رمزنگاریهای ساده که حجم دادهها بسیار زیاد است از الگوریتم متقارن استفاده میشود زیرا دادهها با سرعت بالاتری رمزنگاری و رمزگشایی میشوند. اما در پروتکلهایی که در اینترنت استفاده میشود، برای رمز نگاری کلیدهایی که نیاز به مدیریت دارند، از الگوریتمهای نامتقارن استفاده میشود.