رمزگذاری

رمزگُذاری (انگلیسی: Encryption) یا رمزنگاری (انگلیسی: Cryptography)، روند رمز کردن پیام‌ها یا اطلاعات است به گونه ای که تنها افراد مجاز قادر به خواندن آن باشند (با کُدگذاری یا کُدینگ اطلاعات اشتباه نشود). پیام یا اطلاعات با استفاده از یک الگوریتم، رمزگذاری شده و علائم رمزی به وجود می‌آید که فقط در صورت رمزگشایی قابل خواندن هستند. در رمزگذاری معمولاً یک کلید رمزگذاری شبه تصادفی تولید شده توسط یک الگوریتم، به کار گرفته می‌شود. اگر چه شاید رمزگشایی پیام بدون در اختیار داشتن کلید ممکن باشد، اما در یک رمزگذاری خوب، منابع محاسباتی زیادی برای این کار لازم است. یک گیرنده مجاز به راحتی می‌تواند پیام را با کلید تدارک دیده شده توسط صادرکننده پیام، رمزگشایی کند اما گیرنده غیرمجاز نمی تواند.
هدف از رمزگذاری اطمینان از این است که فقط کسانی که مجاز به دستیابی اطلاعات (پیام یک متن یا یک فایل) هستند، قادر به خواندن آن و استفاده از کلید رمزگذاری باشند.

کلید متقارن

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

کلید عمومی

در رمزگذاری کلید عمومی، کلید رمزگذاری به منظور استفاده و پنهان کردن پیام‌ها به آگاهی عمومی گذاشته شده‌است. در حالیکه فقط طرف دریافت‌کننده به کلید رمزگشایی که پیام‌ها را قابل خواندن می‌کند دسترسی داشته‌است.
رمزگذاری کلید عمومی برای اولین بار در یک سند رمزی در سال ۱۹۷۳ تعریف شد؛ قبل از آن همه نقشه‌های رمزگذاری کلید متقارن بودند (کلید خصوصی هم نامیده می‌شد).
یک ابزار رمزگذاری کلید عمومی قابل استفاده مردم به نام (Pretty Good Privacy)PGP حریم خصوصی بسیار خوب در سال ۱۹۹۱ توسط Phil Zimmermann نوشته شده، و با کد منبع مجانی توزیع شده؛ آن در سال ۲۰۱۰ توسط Symantec خریداری و به‌طور منظم به روزرسانی شد.

کاربردها

مدت طولانی است که رمزگذاری به منظور تسهیل ارتباطات مخفی توسط دولت‌ها و ارتش مورد استفاده قرار گرفته‌است. در حال حاضر به‌طور معمول به منظور حفاظت از اطلاعات در انواع زیادی از سیستم‌های شخصی مورد استفاده قرار گرفته‌است. به عنوان مثال، مؤسسه امنیت کامپیوتر گزارش داد که در سال ۲۰۰۷، ۷۱٪ از شرکت‌های مورد بررسی رمزگذاری را برای برخی از داده‌های خود در نقل و انتقال، و ۵۳٪ از آن‌ها برای برخی داده‌های خود در ذخیره‌سازی مورد استفاده قرار داده‌اند. رمزگذاری می‌تواند برای محافظت از اطلاعات «در حال استراحت» مانند اطلاعات ذخیره شده بر روی کامپیوتر و ابزارهای ذخیره‌سازی (فلش‌ها) مورد استفاده قرار بگیرد. در سالهای اخیر گزارش‌های متعددی از آشکار کردن اطلاعات محرمانه مانند سوابق شخصی مشتریان از طریق گم شدن یا دزدیده شدن لپ تاپ یا درایوهای پشتیبان منتشر شده‌است. رمزنگاری چنین فایل‌های در حال استراحت باید به حفاظت آن‌ها برای شکست اقدامات امنیتی فیزیکی کمک کند. حقوق دیجیتال سیستم‌های مدیریت، که تا حدی از استفاده غیرمجاز یا بازتولید مطلب تألیفی و حفاظت نرم‌افزار در مقابل مهندسی معکوس جلوگیری می‌کند، مثال دیگر از کاربرد رمزگذاری بر اطلاعات در حال استراحت است. (حفاظت کپی را هم ببینید)
همچنین رمزگذاری برای حفاظت اطلاعات در نقل و انتقال مورد استفاده قرار گرفته‌است. به عنوان مثال اطلاعات از طریق شبکه انتقال داده می‌شوند (تجارت الکترونیکی، شبکه) تلفن همراه، میکروفن‌های بی‌سیم، سیستم‌های ارتباط داخلی بی‌سیم، دستگاه‌های بلوتوث و دستگاه‌های خودپرداز بانک.
در سالهای اخیر گزارش‌های متعددی از مورد نفوذ قرارگرفتن اطلاعات در نقل و انتقال وجود داشته‌است. همچنین به منظور حفاظت در برابر استراق سمع ترافیک شبکه توسط کاربرهای غیرمجاز وقتی که اطلاعات از طریق شبکه منتقل می‌شوند باید رمزگذاری شده باشند.

تأیید پیام

رمزگذاری به خودی خود می‌تواند از محرمانه بودن پیام‌ها محافظت کند، اما هنوز روش‌های دیگری برای حفاظت کامل و اعتبار یک پیام مورد نیاز هستند؛ به عنوان مثال تشخیص معرف‌های رمزی یک پیام (MAC) یا یک امضای دیجیتال. استانداردها برای رمزنگاری نرم‌افزار و سخت‌افزار به منظور اجرای رمزگذاری در بسیاری از جاها قابل دسترسی است، به‌کارگیری رمزگذاری موفقیت‌آمیز برای تأمین امنیت ممکن است یک مشکل چالش‌انگیز باشد، تنها یک خطا در طراحی سیستم یا اجرا می‌تواند اجازه حملات موفقیت‌آمیز را بدهد. گاهی اوقات یک دشمن می‌تواند اطلاعات رمزگشایی شده را بدون باز کردن رمزگذاری به‌طور مستقیم به دست آورد.
(به عنوان مثال نگاه کنید به تجزیه و تحلیل ترافیک، توفانTEMPEST، یا اسب تروا (Trojan Horse
امضای دیجیتالی و رمزنگاری باید به منظور جلوگیری از دست کاری، برای متن رمزی در زمان ایجاد به کار برده شده باشد (معمولا در همان دستگاه برای درست کردن پیام مورد استفاده قرار می‌گیرد)؛ به عبارت دیگر هر گره بین فرستند و عامل رمزنگاری به‌طور بالقوه می‌تواند موجب دستکاری شود.
'رمزگذاری در زمان ایجاد تنها حفاظت است اگر بخش رمزگذاری خودش دستکاری نشده باشد.'