سیستم­‌های رمزنگاری به دو دسته عمده تقسیم بندی می‌­شوند که عبارتند از:
– سیستم‌­های رمزنگاری با کلید امن یا کلید متقارن.
– سیستم­‌های رمزنگاری با کلید عمومی یا کلید نامتقارن.
در سیستم­‌های رمزنگاری با کلید امن دو طرف ارتباط روی پارامتر مخفی یا کلید توافق می‌­کنند که این کلید مخفی باید از افراد غیر مجاز، پنهان باشد. متن رمز شده با اعمال تابع رمزگذاری E و کلید K بر روی متن پیام حاصل می‏‌شود:

C=EK(M)

در سمت گیرنده با اعمال تابع رمزگشایی D و کلید K بر روی متن رمز شده، متن اصلی حاصل می‏‌شود:

M=DK(C)

حمله کننده‌ای که به C دست می‌یابد، از آنجا که کلید K را در اختیار ندارد نمی‌‏تواند به متن اصلی دست یابد. برای توافق این کلید باید یک کانال امن بین دو طرف برقرار گردد. مشکل اساسی این روش، نحوه تولید و مدیریت کلید، در شبکه‌های با تعداد کاربر زیاد است زیرا باید بین هر دو نفر دارای ارتباط، یک کلید توافق گردد. سرعت زیاد رمزنگارهای کلید امن باعث رواج آنها به منظور رمز نمودن پیام شده است.

سیستم­‌های کلید عمومی در اواخر دهه 1970 توسط دیفی و هلمن ابداع شدند. در این نوع سیستم­‌ها به منظور توزیع کلید، نیازی به ایجاد کانال امن بین کاربران نمی‌­باشد. ازطرف دیگر نیازی به توافق کلید بین هر دو نفر نیست، بلکه هر شخص دارای یک کلید خصوصی است که باید از دیگر کاربران شبکه پنهان باشد. از روی این کلید، کلید عمومی حاصل شده و در اختیار همه کاربران شبکه قرار می­‌گیرد (دست یافتن به کلید خصوصی از طریق کلید عمومی امکان­پذیر نیست). پیامی که توسط کلید عمومی (کلید خصوصی) رمزگذاری شود، تنها توسط کلید خصوصی (کلید عمومی) مربوط به آن قابل گشودن است. به دلیل آنکه در این نوع سیستم­‌ها نیازی به توافق کلید بین هر دو نفر در شبکه نیست، مدیریت کلید کار ساد‌تری می‌­باشد. اما به دلیل مشکلات پیاده‌سازی سخت‌افزاری و همین­طور سرعت کم پیاده‌سازی نرم‌افزاری، این نوع سیستم­‌ها عموماً نه به منظور رمز نمودن پیام بلکه برای اهداف دیگری مانند توافق کلید در سیستم­های کلید امن، امضاء دیجیتال داده‌ها و احراز اصالت موجودیت­‌ها به کار می‌­روند.

تحلیل سیستم­های رمز:

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

1- فقط متن رمز شده. که بدترین حالت برای تحلیل­‌گر می‌­باشد، زیرا او تنها با در دست داشتن متن رمز شده باید کلید یا متن پیام را بازیابی نماید. در این حالت متن پیام باید دارای افزونگی باشد تا اجرای حمله ممکن گردد.

2- متن پیام معلوم. که تحلیل­‌گر متن رمز شده و تمام یا قسمتی از متن پیام مربوط به آن را در اختیار دارد.

3- متن پیام انتخاب شده. که متن رمز شده مربوط به هر پیامی که تحلیل‌­گر انتخاب کرده باشد در اختیار او قرار می‌­گیرد. در این حالت فرض بر آنست که تحلیل­‌گر، به رمزکننده دسترسی دارد.

4- متن رمز انتخاب شده. که حمله‌­گر به پیام مربوط به هر متن رمزی که توسط او انتخاب شده­ است دسترسی داشته و هدف بازیابی کلید می­باشد.

لازم به ذکر است در حملات جدید از ترکیب دسته های فوق نیز استفاده می­‌شود.

رمزهای کلاسیک:

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

رمزهای جایگزینی: در رمزهای جایگزینی هر کاراکتر متن اصلی با کاراکتری دیگر جایگزین شده و متن رمز شده تشکیل می‏‌شود. گیرنده با انجام عمل معکوس به متن اصلی دست می‌یابد. شیوه جایگزینی هر کاراکتر با کاراکتر دیگر باید تنها برای فرستنده و گیرنده آشکار باشد. رمز سزار نمونه‌ای از رمز جایگزینی است که در آن هر کاراکتر با 3 کاراکتر بعد از خود جایگزین می‏‌گردد. به طور نمونه A با D، B با E، …و Z با C جایگزین می‏‌گردد. واضح است پارامتر مخفی در رمز سزار عدد 3 بوده است.

رمزهای جابجایی: در رمزهای جابجایی کارکترهای متن اصلی تغییر نمی‌یابند و تنها با همدیگر جابجا می‏‌گردند. به طور مثال می‏‌توان کاراکترهای متن اصلی را به گروه های 10 کاراکتری تقسیم کرد و آنها را زیر هم نوشت. سپس کلمات را به صورت عمودی خوانده و کاراکترهای حاصل از خواندن را پشت سر هم نوشت و متن رمز شده را تشکیل داد. به طور مثال نامه hello. it is a secret mail for you. ابتدا به گروه های 10 کاراکتری زیر تقسیم می‏شود:

hello.it i

s a secret

mail for

you

سپس کلمات 10 کاراکتری نوشته شده به صورت عمودی خوانده می‏‌شوند و متن رمز شده زیر را تشکیل می‏‌دهند:

Hs ye molaaul iosl.e icftro eri r

پارامتر مخفی در رمز مذکور عدد 10 می‌‏باشد.