رمزنگاری یا Cryptography به دانشی گفته میشود که با استفاده از اصول و روابط ریاضی اطلاعات را به گونهای ایمن رمز کنیم که با خیال آسوده بتوان از جایی به جای دیگر انتقال داد. عبارت Cryptography از ترکیب kryptos و graphien که در یونانی به ترتیب به معنای محرمانه نوشتن است ساخته شده است.
رمز نگاری دانش تغییر متن پیام با استفاده از یک کلید رمز است.
تفاوت رمزنگاری و پنهاننگاری:
می توان پنهاننگاری و رمز گذاری را با هم نیز استفاده کرد.
در رمزنگاری ارسال به هیچ عنوان مخفی نیست و علاوه بر ارسال کننده و دریافت کننده دیگران نیز میتوانند به محتوا دسترسی داشته باشند، فقط پیام برای همه به جز ارسال کننده و دریافت کننده غیر قابل فهم است.
اما در پنهاننگاری تنها ارسال کننده و دریافت کننده از وجود پیام مطلع هستند.
رمزنگاری یا پنهاننگاری هزاران سال است مورد استفاده قرار میگیرد البته نه الزاما با روابط ریاضی.
در دانش رمزنگاری گاهی حرفها و گاهی بیتها را رمزنگاری میکنند.
ابتدایی ترین تلاشها برای یافتن اصول کلاسیک و منظم رمزنگاری توسط آگوست کرشهف صورت پذیرفت. کرشهف در سال 1884 مقالاتی برای دانش رمزنگاری نظامی نوشت که حاوی شش اصل و قانون برای رمزنگاری داده هاست. این شش اصل عبارتند از:
از اصول شش گانه کرشهف تنها اصل دوم اکنون نیز مورد تایید است.
- سیستم رمزنگاری باید در عمل غیر قابل شکستن باشد
- سیستم رمزنگاری نباید پنها باشد، بلکه این کلید رمز است که پنهان است
- کلید رمز باید قابل به خاطر سپردن و تعویض باشد
- متون رمزنگاری باید توسط تلگراف قابل انتقال باشند
- دستگاه رمزنگاری و اسناد رمز شده باید توسط یک فرد قابل حمل باشند
- راه اندازی سیستم رمزنگاری باید آسان باشد
سوال: چرا اصل دوم رمز نگاری قانون کرشهف هنوز نیز مورد تایید دانشمندان است؟
جواب سوال فوق ساده است، اگر یک کلید رمز افشا شود میتوان آن را با یک کلید رمز دیگر جایگزین کرد اما اگر یک الگوریتم و سیستم رمزنگاری لو برود چگونه میتوان خسارتها را جبران کرد؟ البته دلایل دیگری نیز وجود دارند که عبارتند از:
- محرمانه نگه داشتن کلید رمز ساده تر از محرمانه نگه داشتن الگوریتم آن است
- الگوریتم توسط اشخاص گوناگونی نوشته و آزمایش میشود که سری نگه داشتن یک راز بین افراد زیاد کاری مشکل است
- در دسترس بودن الگوریتم امکان بررسی آن الگوریتم توسط تمام متخصصان را فراهم میکند، و در صورت یافتن مشکل میتوان آن الگوریتم را بهبود و یا تغییر داد
- اگر الگوریتمها در دسترس باشند میتوان آنها را در اختیار افراد مختلف قرار داد و برای تفسیر یک نوشته رمز شده تنها از کلیدهای مشترک بهره جست
البته شاید بتوان انقلاب دانش رمزنگاری را با روی کار آمدن کامپیوترهای امروزی مرتبط دانست. کامپیوترهای امروزی با قدرت بالای پردازشی خود امکان استفاده از الگوریتمهای پیچیده و سخت گیری را فراهم کرده است که در گذشته شاید اصلا امکان پیاده سازی چنین الگوریتمهایی وجود نداشت.
تعریف رمزنگاری متقارن و غیر متقارن
رمزنگاری متقارن به آن نوع رمزنگاری گفته میشود که برای کد کردن و دیکد کردن پیام یک کلید مشترک به گیرنده و فرستنده پیام تعلق میگیرد.
مقایسه الگوریتم رمزنگاری متقارن و نامتقارن کاری نا صحیح است چون کاربرد و پیاده سازی متفاوت دارد، ولی از نظر سرعت و حجم کاری رمزنگاری متقارن بسیار بهتر عمل میکند.
رمزنگاری نامتقارن برای حل مشکل انتقال کلید یکسان از گیرنده به فرستنده ابداع شد. شاید اولین تلاشها برای ابداع روشهای رمزنگاری نامتقارن پیام توسط دو دانشمند به نامهای دیفی هلمن و مارتین هلمن انجام پذیرفت. در روش رمزنگاری نامتقارن به جای یک کلید مشترک دو کلید ایجاد میشود که یکی عمومی و دیگری خصوصی است. گاهی از کلید خصوصی برای رمزنگاری و از کلید عمومی برای رمزگشایی و یا برعکس استفاده میشود.
رمزگشایی و یا شکستن رمز
رمزگشایی به اصولی گفته میشود که بر اساس روابط ریاضی سعی در شکستن رمز بدون در اختیار داشتن کلید رمز دارد. اصولا دانش رمزگشایی به منظور اطمینان از غیر قابل شکست بودن رمزها پدید آمده است ولی گاهی برای شکستن رمزها و نفوذ به سیستمهای امنیتی نیز مورد استفاده قرار میگیرد.
البته با توجه به پیشرفته شدن و ارزان شدن تکنولوژیهای مربوط به رمزنگاری، الگوریتمها روز به روز در حال پیچیده تر شدن و امن تر شدن هستند، ولی باز با این وجود همین پیشرفت خود به نوعی تهدید نیز به حساب میآید.