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