رمزنگاری چیست؟
رمزنگاری به زبان ساده به فرایندی گفته میشود که در آن، یک پیام یا فایل با یک رمز محافظت میکنیم. با پیادهسازی فرایند، تنها افراد خاصی امکان مشاهدهی پیام یا فایل را خواهند داشت. رمزنگاری ابتدا با رمزگذاری یا به هم ریختن دادهی ورودی (Encrypt) انجام میشود. سپس گیرنده، دادهها را با استفاده از یک رمز از حالت بههم ریخته خارج میکند که اصطلاحا به آن رمزگشایی (Decrypt) گفته میشود.
در رمزنگاری، کلیدها نقشی اساسی دارند و از زمانهای دور تا روشهای مدرن امروزی، انواع کلیدهایی که برای بازکردن رمز پیامها استفاده میشدند، نقشی حیاتی داشتند. امروزه کلیدها با استفاده از الگوریتمهای کامپیوتری ساخته میشوند که عملکردی شبیه به ابزارهای تولید اعداد تصادفی دارند. بهعنوان مثال، برخی از الگوریتمهای پیچیدهی امروزی از حرکت ماوس کاربر برای ساختن عبارتی تصادفی بهعنوان کلید رمزنگاری استفاده میکنند.
عبارتهای مرسوم در رمزنگاری
رمز (Cipher) : الگوریتمی که برای رمزنگاری و رمزگشایی دادهها استفاده میشود. درواقع الگوریتم تعدادی مرحله و فرایند است که پشت سر هم انجام میشود. دو نوع الگوریتم بلوکی و دنبالهای وجود دارند : Block و Stream
الگوریتم (Algorithm) : همان سلسله مراتب و مراحلی است که در فرایند رمزنگاری انجام میشود. امروزه انواع الگوریتمهای رمزنگاری وجود دارند که بسته به سطح امنیت و موضوع و حوزهی فعالیت، دستهبندی میشوند.
رمزگشایی (Decryption) : فرایندی که طی آن یک متن دارای رمز یا دادهی نامفهوم با استفاده از کلید رمزگشایی به دادهی مفهوم تبدیل میشود.
انواع رمزنگاری
تمامی الگوریتمهای رمزنگاری را میتوان در دو دستهی کلی تقسیمبندی کرد. درواقع تفاوت اصلی الگوریتمها در همین دستهبندی مشخص میشود و دیگر تفاوتها به روش توسعهی الگوریتم بستگی پیدا میکنند.
- الگوریتمهای دارای کلیدهای متقارن (Symmetric) که از کلیدهای رمزگشایی مرتبط با مشابه برای رمزنگاری و رمزگشایی استفاده میکنند.
- الگوریتمهای دارای کلیدهای نامتقارن (Asymmetric) که از کلیدهای متفاوت برای رمزنگاری و رمزگشایی استفاده میکنند. این نوع رمزنگاری بهنام Public-Key هم شناخته میشود.