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