داستان رمزنگاری (قسمت دوم)


نویسنده: رضا ابوالقاسمی

سلام بچه‌ها :)

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

همچنین، با چند تا از تکنیک‌های قدیمی رمزنگاری آشنا شدیم. مثلا هیروگلیف رو دیدیم که یک تکنیک مربوط به مصریا بود و یا رمزنگاری << ATBASH>> که یه جورایی مثل رمزنگاری جانشینی بود. بعد از این، رمزنگاری یونانیان( ۴۸۶ ق.م. ) رو دیدیم که برای فهمیدن پیام، باید فرستنده و گیرنده میله‌هایی با قطر یکسان داشتن و در حقیقت این استوانه، یه جورایی شبیه کلید مخفی، تو رمزنگاری‌های جدید عمل می‌کرد.

خوب بیاید ادامه بدیم و ببینیم این روند تکاملی چجوری پیش‌ رفته؟

در حدود ۶۰ سال قبل از میلاد، ژولیوس سزار(امپراتور روم)، برای مخفی کردن محتوای نامه‌ها، با جابجا کردن حروف الفبا در تمام متن به اندازه‌ای مشخص، اون رو رمز می‌کردن و تنها کسی که از تعداد جابه‌­جا شدن حروف مطلع بود، می‌تونست متن اصلی رو استخراج کنه.

روش جابه‌جایی حروف، یونان باستان
روش جابه‌جایی حروف، یونان باستان

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

رمزنگاری‌ها رفته­‌رفته پیشرفت کردن و به سمتی رفتن که دیگه به این سادگیا شکسته نشن. حالا می‌خوایم چند تا از رمزنگاری‌های مدرن رو بررسی کنیم.

توماس جفرسون (یکی از سیاست‌مداران آمریکایی)، در دوران وزارتش (در دهه 1790م. )، برای حفظ محتوای پیغام‌ها، دستگاهی ساخت که بعد‌ها به نام چرخ توماس مشهور شد. این دستگاه استوانه‌ای شکل، شامل ۲۶ حلقه از حروف الفبای انگلیسی بود و بر روی هر حلقه، تمام حروف الفبای انگلیسی با ترتیب تصادفی حک شده‌بود.

دستگاه رمزنگار توماس جفرسون (1970 م. )
دستگاه رمزنگار توماس جفرسون (1970 م. )

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

نحوه رمز کردن پیام با استفاده از این دستگاه:

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

رمزگذاری با دستگاه رمزنگار توماس جفرسون
رمزگذاری با دستگاه رمزنگار توماس جفرسون

بعد، بدون چرخوندن حلقه‌ها یکی از سطر‌ها رو یادداشت می‌کنه. مثلا:MOYIOMPWKYCINZJPJGJPMCKZPM

حالا این متن رمز شده رو به همراه عدد ۲ (یعنی جواب توی ۲ سطر پایین‌تره)، برای مقصد ارسال می‌کنه. رمزگشا هم کافیه حلقه‌های دستگاهشو جوری بچرخونه تا MOYIOMPWKYCINZJPJGJPMCKZPM دوباره ایجاد بشه بعدش ۲ سطر پایین‌تر متن واقعی رو پیدا می‌کنه.

نکته اصلی اینه که اگه یه دشمن متن رمز شده رو داشته باشه، بدون داشتن حلقه‌های دستگاه، نمی‌تونه رمز رو بشکونه. در حقیقت برای شکستن این رمز باید حالت دقیق چینش حروف در حلقه‌ها رو داشته باشیم، که چیزی حدود !25 به توان 26 حالت مختلف می‌شه و عدد خیلی بزرگیه!!

نکته بعدی، یک­نواخت بودن جواب‌های ممکن این دستگاهه. یعنی اگه شما متن رمز شده رو به همراه داشته باشید، ولی حلقه‌های دستگاه رو نداشته باشید، احتمال این که هر متن ۲۶ حرفی، متن اصلی باشه، یکسانه و این نمی‌ذاره شانس بعضی کلمات بالا بره و رمز سریع شکسته بشه.

در حقیقت تو این رمزگذاری یه اتفاق ویژه افتاد و اون اینه که حتی اگه دشمن شیوه رمزگذاری ما رو بدونه، بدون کلید، عملاً کار خیلی دشواری در شکستن رمز داره.

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

تمرین

سعی کنید کلمه رمز شده رو با استفاده از جدول حروف زیر پیدا کنید:

ستون کلید: LGUCBK

ستون جواب: ۷ ستون چپ‌تر از کلید

به نظرتون، تو چند حالت از چینش حروف توی سطرها، جواب دوباره همین می‌شد؟ آیا این تعداد حالات به کلمه جواب وابسته بود؟

اصول شش‌­گانه کرکهف

تا اینجای کار، مردم مختلف سعی داشتن با امتحان کردن انواع چالش‌های رمزنگاری، به تکنیک بهتر و کارا‌تری برای مخفی­‌کردن پیام‌هاشون برسن؛ اما تنها راه پیدا کردن جواب یک مسئله، آزمون و خطا نیست!

فرض کنید ما تعداد زیادی رمزنگاری داریم که قدرت اون‌ها و احتمال شکسته شدنشون توسط دشمن رو نمی‌دونیم! خب، تو این حالت همیشه سردرگمیم که از کدوم رمز باید استفاده کنیم و آیا این رمز به سادگی شکسته می‌شه یا نه؟

بسیاری از دانشمندان سعی می‌کنن با دسته‌بندی و منظم کردن مسائل (و به نوعی فرمال و ریاضی کردنشون)، اون‌ها رو دقیق‌تر بررسی کنن و به جواب‌های مطمئن‌تری برسن. این‌طوری، به جواب‌های باکیفیت‌­تری می‌رسیم و ضریب اطمینان بالاتری خواهیم‌­داشت.

یکی از اولین کسانی که سعی کرد رمزنگاری مدرن رو فرمال کنه، "آگوست کرکهف" بود.

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

1. سیستم رمزنگاری، نه از نظر تئوری، که در عمل باید غیر قابل­ شکست باشه.

2. سیستم رمزنگاری نباید هیچ نکته پنهان و محرمانه‌ای داشته‌­باشه، بلکه تنها چیزی که باید محرمانه‌ باشه، کلید رمزه. طراح سیستم رمزنگار، نباید جزئیات سیستمش رو پنهان کنه، حتی از دشمن!

3. کلید رمز باید جوری انتخاب شده باشه که : یک، بشه اون رو به‌ راحتی عوض کرد و دو، بشه بدون نیاز به یادداشت کردن، اون رو به خاطر سپرد.

4. متن­‌های رمزنگاری شده، باید با تلگراف قابل مخابره باشن.

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

6. سیستم رمزنگاری، باید به آسونی قابل راه‌اندازی و کاربری باشه؛ چنین سیستمی، نباید به آموزش‌های مفصل و رعایت فهرست بزرگی از قواعد و دستورالعمل‌ها نیاز داشته‌ باشه.

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