كلمه "Cryptography" از زبان يوناني گرفته شدهاست و وقتيكه واژه به واژه ترجمهشود، "نوشتنِ محرمانه" معني ميدهد. قبل از ظهور ارتباطات ديجيتالي، رمزنگاري اصولاً بوسيلة ارتش براي اهداف جاسوسي استفاده ميشد.در اصطلاح رمزنگاري، پياماصلي plain-text يا clear-text ناميده ميشود. رمزگذاري محتويات پيام به نحوي كه محتواي آن را از بيگانگان مخفي كند، پنهانكردن ناميده ميشود. پيام پنهانشده یا رمزشده cipher-text ناميده ميشود.
به فرآيند بازيابي plain-text از cipher-text، آشكارسازي گفته ميشود. در فرآيندهاي پنهان سازي و آشكار سازي به طور معمول از كليد استفاده ميشود و روش رمزنگاري بهگونهاي است كه آشكارسازي تنها با دانستن كليد مناسب ميتواند انجام شود.الگوريتمهاي پنهانسازي مبتنی بر كليد دو دسته می¬باشند: متقارن و نامتقارن .
تفاوت دو الگوریتم در تعداد کلیدهای استفاده شده برای پنهان¬سازی و آشکارسازی است به طوریکه الگوريتمهاي متقارن براي پنهان سازی و آشکارسازی از يك كليد استفاده ميكنند (يا كليد آشكارسازي به راحتي از كليد پنهانسازي استخراج ميشود)، در حاليكه الگوريتمهاي نامتقارن براي پنهان سازي وآشكار سازي از كليدهاي متفاوت استفاده ميكنند وكليد آشكارسازي را نميتوان ازكليد پنهانسازي استخراج کرد.
الگوريتمهاي متقارن ميتوانند به دو دسته رمزكنندههاي جرياني و رمزكنندههاي بلوكي تقسيم شوند. رمزكنندههاي جرياني ميتوانند در هر زمان يك بيت از plain text را رمزكنند، در این دسته تابع رمزكننده در زماني كه plain-text پردازش ميشود، ميتواند تغيير كند؛ بنابراين رمزكنندههاي جرياني حافظهدار هستند.
رمزكنندههاي بلوكي، plain-text را در بلوكهاي نسبتاً بزرگ (مثلاً n بزرگتر از 64 بيت) پردازش ميكنند وآنها را به عنوان يك واحدِ جدا رمز ميكنند. در این دسته از يك تابع براي رمزكردن بلوكهاي متوالي استفاده ميشود؛ بنابراين رمزكنندههاي بلوكي بدون حافظه هستند.
اگر می خواهید مفاهیم و مباحث بیشتری را در این زمینه یاد بگیرید به دوره آموزش هک و نفوذ در این لینک مراجعه کنید.