همانگونه که در تاریخچه رمزنگاری گفته شد بشر از دیر باز به فکر تغییر در ساختار پیام برای پنهان سازی محتوی موجود در آن بود و روشهای متعددی را برای این کار مورد استفاده قرار می داد. روشهای موجود به تدریج توسعه یافت. توسعه
روشها به دلیل وجود ابزارهای محاسباتی و استفاده از کامپیوتر برای اجرای فرایند های رمزنگاری بود. ابزارهای موجود به گونه ای توسعه یافته اند که میتوان فرایند های رمزنگاری را در ابزار هایی نظیر کارت های شبکه, مدارهای تلفن همراه, مدارهای مجتمع
(VLSI) پیاده سازی و مورد استفاده قرار داد.
الگوریتم های رمزنگاری را میتوان در سه دسته زیر جای داد
1 - الگوریتمهای کلاسیک
2 - الگوریتم های متقارن
3 - الگوریتم های نامتقارن
الگوریتم رمز کلاسیک
در گذشته دور به دلیل عدم وجود ابزارهای محاسباتی طبیعی بود که فرایند رمزنگاری به کمک روش های سنتی که شامل جابجائی و جایگزینی بود انجام شود. با اینکه این عملیات به صورت دستی انجا میگرفت اما دسترسی به محتوی پیام در آن دوره با توجه به امکانات موجود طبیعتا غیرممکن بود. از جمله رمزهای کلاسیک می توان به الگوریتم های رمز نگاری زیر اشاره نمود
1 - رمز سزار
2 - رمز ویگنر
3 - رمز اسکیتال
4 - رمز هیل
5 - رمز پلای فایر
در صورتی که تشخیص داده شود یک متن با کدامیک از الگوریتمهای کلاسیک رمز شده است استخراج متن اولیه بسیار ساده خواهد بود. بنابراین در این دسته از الگوریتمها کوشش در پنهان نگه داشتن الگوریتم مورد استفاده بود.
در الگوریتمهای رمزنگاری متقارن برخلاف الگوریتمهای کلاسیک هیچ کوششی برای پنهان نمودن الگوریتم مورد استفاده انجام نمی شود. در این دسته از الگوریتم ها برای رمزنگاری از اعداد بخصوصی که بعنوان کلید مطرح میشوند استفاده میگردد در این الگوریتمها کوشش در پنهان نمودن کلید رمزنگاری بین مبدا و مقصد می باشد. از جمله الگوریتمهای متقارن می توان به الگوریتم های رمز نگاری زیر اشاره نمود:
1 - DES
2 - 3DES
3 - AES
این دسته از الگوریتمها به دلیل عملیات جابجائی و جانشانی و یا XOR نمودن داده ها بیشتر برای رمزنگاری داده مورد استفاده قرار میگیرند. یکی از مشکلات این دسته از الگوریتم ها نحوه توزیع کلید بین مبدا و مقصد می باشد. این الگوریتم ها از یک کلید مشترک برای رمزنگاری و رمزگشائی داده ها استفاده میکنند.
برخلاف الگوریتم های متقارن که از یک کلید برای رمزنگاری و رمزگشایی استفاده میشود , از دو کلید عمومی و اختصاصی برای این فرایند استفاده میشود. متن مورد نظر در مبدا با کلید عمومی رمز می شود و با استفاده از کلید اختصاصی در مقصد رمزگشایی میگردد. از الگوریتم های نامتقارن میتوان در امضای الکترونیک, رمزنگاری داده, رمزنگاری و ارسال کلید, کارتهای هوشمند و ... استفاده نمود. از جمله الگوریتمهای نامتقارن می توان به الگوریتم های رمز نگاری زیر اشاره نمود:
1 - RSA
2 - ECC
3 - DSA
4 - Diffie-Hellman
5 - ELGamal
الگوریتم های نامتقارن به دلیل اعمال فرایندهای ریاضی فاکتورگیری اعدادو یا لگاریتم گسسته سرعت کمتری نسبت به روشهای متقارن دارند. از این الگوریتمها کمتر در رمزنگاری داده استفاده میشود.