روشهای رمزنگاری به طور کل به دو دسته متقارن و نامتقارن تقسیم میشوند .

در روش متقارن از یک رمز برای رمزگذاری و رمزگشایی استفاده میشود و همین مورد باعث شده تا این روش در عین حال که کارایی ساده ای دارد اما از امنیت بسیار پایینی برخوردار باشد .

در روش نامتقارن از دو کلید اصلی برای رمزنگاری و رمزگشایی استفاده میشود . یک کلید عمومی یا public key  و یکی کلید خصوصی یا private key .

معمولا از کلید عمومی جهت رمزگذاری و از کلید خصوصی جهت رمزگشایی استفاده میشود .

در رمزنگاری مدرن چهار عامل دارای اهمیت فراوان میباشند :

 محرمانگی : اطلاعات موردنظر به وسیله کس دیگری که اجازه ندارد قابل دسترسی نباشد .

یکپارچگی  و جامعیت : یعنی اینکه اطلاعات تغییر نکنند و به دست همان گیرنده ای برسند که از قبل تعیین شده است . جامعیت یعنی جلوگیری از جعل اسناد . توجه داشته باشید جامعیت با محرمانگی متفاوت است. محرمانگی برای این است که دیگران نتوانند فایل جابه جا شده در اینترنت را بخوانند اما جامعیت به زبان ساده یعنی اگر فایلی در فضای اینترنت جابجا شود کسی نتواند آن را تغییر دهد.

حال به موضوع  message integrity یا همان جامعیت اسناد می پردازیم . در قدیم ما برای احراز هویت و جامعیت از اثر انگشت و امضا استفاده می کردیم اما امروزه از امضا دیجیتال و digest  (بجای اثرانگشت) استفاده میکنیم. اینجا دقیقا جایی است که hash خود نمایی میکند.در اینجا digest توسط hash بر اساس پیام تولید میشود.

غیر قابل انکار بودن : تهیه کننده یا فرستنده اطلاعات در مراحل بعد نمیتواند انکار کند که خودش تهیه کننده یا فرستنده این اطلاعات بوده است .

سندیت : فرستنده و گیرنده به خوبی میتوانند یکدیگر را شناسایی کنند و از مبدا فرستادن اطلاعات نیز اطلاع حاصل نمایند .

تهیه کننده ها  و پروتکلهایی که دارای تعدادی یا تمامی فاکتورهای بالا باشند به عنوان cryptosystems شناخته میشوند .

cryptosystems اغلب تنها وابسته به تولیدکنندگان ریاضی و برنامه های کامپیوتری میباشند . گرچه آنها شامل مقررات رفتار انسانی مانند انتخاب پسوردهای غیر قابل حدس و خارج شدن از سیستمهایی که استفاده نمیشوند و بحث نکردن در مورد مسائل حساس با دیگران میباشد .