رمزنگاری دانشی است که به بررسی و شناختِ اصول و روش‌های انتقال یا ذخیرهٔ اطلاعات به صورت امن (حتی اگر مسیر انتقال اطلاعات و کانال‌های ارتباطی یا محل ذخیره اطلاعات ناامن باشند) می‌پردازد.

رمزنگاری دانش تغییر دادن متن پیام یا اطلاعات به کمک کلید رمز و با استفاده از یک الگوریتم رمز است، به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج اطلاعات اصلی از اطلاعات رمز شده باشد و شخصی که از یکی یا هر دوی آن‌ها اطلاع ندارد، نتواند به اطلاعات دسترسی پیدا کند. دانش رمزنگاری بر پایه مقدمات بسیاری از قبیل تئوری اطلاعات، نظریه اعداد و آمار بنا شده است و امروزه به طور خاص در علم مخابرات مورد بررسی و استفاده قرار می‌گیرد. معادل رمزنگاری در زبان انگلیسی کلمه Cryptography است، که برگرفته از لغات یونانی kryptos به مفهوم " محرمانه " و graphien به معنای " نوشتن " است.

رمزنگاری، پنهان‌نگاری، کدگذاری

در رمزنگاری، وجود اطلاعات یا ارسال شدن پیام به هیچ وجه مخفی نمی‌باشد، بلکه ذخیره اطلاعات یا ارسال پیام مشخص است، اما تنها افراد مورد نظر می‌توانند اطلاعات اصلی را بازیابی کنند. بالعکس در پنهان‌نگاری، اصل وجود اطلاعات یا ارسال پیام محرمانه، مخفی نگاه داشته می‌شود و غیر از طرف ارسال‌کننده و طرف دریافت‌کننده کسی از ارسال پیام آگاه نمی‌شود.

در رمزنگاری محتویات یک متن به صورت حرف به حرف و در بعضی موارد بیت به بیت تغییر داده می‌شود و هدف تغییر محتوای متن است نه تغییر ساختار زبان‌شناختی آن. در مقابل کدگذاری تبدیلی است که کلمه‌ای را با یک کلمه یا نماد دیگر جایگزین می‌کند و ساختار زبان‌شناختی متن را تغییر می‌دهد.

تعاریف و اصطلاحات:

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

دربررسی نخستین استفاده‌کنندگان از تکنیک‌های رمزنگاری به سزار (امپراتور روم) و نیز الکندی که یک دانشمند مسلمان است برمی‌خوریم، که البته روش‌های خیلی ابتدایی رمزنگاری را ابداع و استفاده کرده‌اند. به عنوان مثال، با جابجا کردن حروف الفبا در تمام متن به اندازهٔ مشخص آن را رمز می‌کردند و تنها کسی که از تعداد جابجا شدن حروف مطلع بود می‌توانست متن اصلی را استخراج کند.