تفاوت‌های کدگذاری و رمزنگاری در چیست؟

تفاوت‌های کدگذاری و رمزنگاری در چیست؟
تاریخ انتشار : ۱۶ مهر ۱۳۹۸

کدگذاری و رمزنگاری دو گزینه ما برای ارسال پیامی بصورت نامفهوم برای سایرین هستند و تفاوت میان این دو در سطوح کاری است که از آن استفاده می‌کنند.

به گزارش گرداب، رمزنگاری و کدگذاری اطلاعات از دوران گذشته به‌ویژه در میدان های جنگ رواج داشته است و امروز نیز این بحث وارد دنیای فناوری شده است. اما آیا تا به‌ حال به این موضوع فکر کرده‌اید که؛ چه تفاوتی میان کدگذاری و رمزنگاری وجود دارد و یا اصلا کدام روش بهتر و ایمن‌تر است؟! گاهی نمی‌توانیم ارسال یک متن را پنهان کنیم و یا حتی گاهی بدیهی است که پیامی ارسال خواهد شد یا خیر، به‌عنوان مثال تصور کنید؛ اگر کشوری وارد جنگ شود هر لحظه ممکن است که فرماندهان حاضر در میدان‌های جنگ در مرز‌های کشور با پایتخت ارسال گزارش و دریافت مشورت داشته باشند و یا کاملاً روشن است که اگر از وبگاهی خرید اینترنتی انجام دهید اطلاعات بانکی شما در این بین منتقل خواهد شد. می‌توان نمونه‌های بسیاری را نام برد که امکان پنهان نگهداشتن اطلاعات منتقل شده کاری بسیار سخت و یا ناممکن است.

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

کدگذاری به چه صورت انجام می‌شود؟

روش کار در کدگذاری به این شکل است که برای هر واژه برابری را در نظر می‌گیرند که به آن کلمه کد گفته می‌شود و سپس این برابر‌ها را در کتابی با نام کتاب کد گردآوری می‌کنند. بدین گونه با یاری گرفتن از این ابزار می‌توانند هر متنی را به شکلی درآورند که برای کسانی که کتاب کد را در اختیار ندارند قابل درک و خواندن نباشد. این روش شباهت زیادی به کار ترجمه دارد و کتاب کد نیز نقش یک واژه‌نامه را ایفا می‌کند. واژه‌نامه‌ای دوزبانه که می‌توان هم برای کدگذاری و هم بازگردانی متن اصلی از آن استفاده نمود.

کتاب کد معمولاً دارای دو بخش است:

یک بخش برای تبدیل واژه‌های زبان اصلی به کلمه‌های کد
بخش دیگر برای حالت برعکس

تفاوت‌های کدگذاری و رمزنگاری

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

در بیشتر این کتاب‌ها یک فهرست تهیه شده است که هرچند سرعت کار با آن را به شکل چشم گیری بهتر می‌کند، ولی امنیت آن را شدیداً تحت تأثیر قرار می‌دهد و نیز اگر قصد انتقال کتاب را داشته باشیم نمی‌توان به راحتی امنیت آن را تأمین کرد. اما از سویی دیگر کار بر روی واژه‌ها امتیاز بزرگی را نیز با خود به همراه دارد و آن سطح امنیتی بسیار بالایی است که برای پیام کد شده به ارمغان می‌آورد.

امکان کدگشایی و امنیت متن‌های کدگذاری

با توجه به اینکه می‌توان از هر گونه نماد یا شکلی برای ساخت کلمه‌های کد استفاده کرد و نیز با توجه به اینکه الگوی خاصی برای ایجاد این کلمه‌های کد وجود ندارد و می‌توان برای هر واژه از الگوی منحصر به فردی پیروی کرد، احتمال پیش‌بینی و به دست آوردن متن اصلی بسیار ضعیف است. درواقع اگر بتوان امنیت کتاب کد را تأمین کرد این روش بسیار ایمن‌تر از رمزنگاری است. این امنیت به دلیل استفاده از یک الگوی ثابت برای رمزنگاری کل متن پتانسیل بالاتری برای درهم شکسته شدن دارد.

رمزنگاری و ریشه آن

ریشهٔ واژهٔ Cryptography برگرفته از یونانی به معنای «محرمانه نوشتن متون» است. رمزنگاری پیشینهٔ طولانی و درخشان دارد که به هزاران سال قبل برمی‌گردد. متخصصین رمزنگاری بین رمز و کد تمایز قائل می‌شوند. رمز عبارتست از تبدیل کاراکتر به کاراکتر یا بیت به بیت بدون آن که به محتویات زبان شناختی آن پیام توجه شود و در طرف مقابل، کد تبدیلی است که کلمه‌ای را با یک کلمه یا علامت دیگر جایگزین می‌کند. امروزه از کد‌ها استفادهٔ چندانی نمی‌شود اگر چه استفاده از آن پیشینهٔ طولانی و پرسابقه‌ای دارد.

موفق‌ترین رمزنگاری‌ها

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

اصول ششگانه کرشُهف

آگوست کرشهف شهرت خود را از پژوهش‌های زبانشناسی و کتاب‌هایی که در این خصوص و زبان ولاپوک نوشته بود بدست آورد. او در سال ۱۸۸۳ دو مقاله با عنوان «رمز نگاری نظامی» منتشر کرد. در این دو مقاله شش اصل اساسی وجود داشت که اصل دوم آن به عنوان یکی از قوانین رمز نگاری هنوز هم مورد استفاده دانشمندان در رمز نگاری پیشرفته‌است:

  • سیستم رمزنگاری نه فقط به لحاظ تئوری که در عمل هم باید غیرقابل شکست باشد.
  • سیستم رمز نگاری نباید هیچ نکته پنهان و محرمانه‌ای داشته باشد. بلکه تنها چیزی که سری است کلید رمز است.
  • کلید رمز باید به گونه‌ای قابل انتخاب شود که اولاً بتوان به راحتی آن را عوض کرد و ثانیاً بتوان آن را به خاطر سپرد و نیازی به یاداشت کردن کلید رمز نباشد.
  • متون رمز نگاری باید از طریق خطوط تلگراف قابل مخابره باشند.
  • دستگاه رمز نگاری یا اسناد رمز شده باید توسط یک نفر قابل حمل و نقل باشد.
  • سیستم رمزنگاری باید به سهولت قابل راه‌اندازی باشد.
در توضیح قانون دوم کرشهف باید عنوان کرد که به چند دلیل عمده کلید رمز باید تنها اطلاعات محرمانه در یک سیستم رمزنگاری باشد:

  • محرمانه نگه داشتن یک رشته بیت ۵۱۲ تایی (به‌طور معمول) بسیار ساده‌تر و عملی‌تر از محرمانه نگه داشتن یک الگوریتم یا روش پیاده‌سازی است. 
  • اگر کلید رمز افشا شود تنها با اتخاذ یک کلید جدید می‌توان مجدداً به یک سیستم رمزنگاری جدید و امن دست پیدا کرد در صورتی‌ که اگر امنیت سیستم رمزنگاری وابسته به الگوریتم و روش پیاده‌سازی باشد با افشای این اطلاعات بازتولید یک سیستم رمزنگاری جدید و امن بسیار دشوار خواهد بود.
  • وقتی که کلید رمز تنها اطلاعات محرمانه یک سیستم رمزنگاری باشد می‌توان از یک سیستم مشترک (با کلید‌های متفاوت) برای ارتباط با گیرنده/فرستنده‌های مختلف استفاده کرد در صورتی که اگر غیر از این می‌بود برای ارتباط با هر فرستنده/گیرنده به یک الگوریتم و روش پیاده‌سازی جدید نیاز می‌بود. 
  • وقتی که الگوریتم و روش پیاده‌سازی برای همگان قابل دسترسی باشد مشکلات و حفره‌های امنیتی الگوریتم پیش از آنکه توسط یک حمله گر مورد سوء استفاده قرار بگیرد توسط محققان امنیتی مورد بررسی قرار گرفته و رفع می‌شود و بنابراین سیستم‌های رمزنگاری‌ای که بر اساس الگوریتم‌های روشن و قابل دسترسی عمل می‌کنند معمولاً قابل اعتمادتر هستند.