آموزش رمزنگاری به زبان ساده؛ بخش۲: رمز سزار

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

0 1,195

یکی از جاهایی که در آن درباره رمزنویسی زیاد می‌شنوید فضای جنگی و نظامی است. من مطمئنم که شما فیلم‌هایی مثل The Imitation Game  را دیده‌اید که باعث شده‌اند رمزنگاری بسیار پیچیده و در عین حال بسیار جذاب به نظر برسد. ریاضی‌دانان خبره‌ای که با استفاده از کامپیوتر کارهایی را انجام داده و برنده‌ی جنگ می‌شوند، در حالی که باقی ما حتی نمی‌توانیم این کارها را درک کنیم. اما، اگر یک دقیقه زمان گذاشته و درباره‌ی آن فکر کنید، می‌بینید که نقش رمزنگاری در دنیای نظامی بسیار هم منطقی به نظر می‌آید. امکان به اشتراک گذاشتن پیام‌های پنهانی با سربازان و هم‌گروهان خود مزیت بزرگی در جنگ به حساب می‌آید. از طرف دیگر، امکان رهگیری و کشف رمز پیام‌های پنهانی دشمن نیز مزیت بسیار بزرگ‌تری است.

رهبران جنگی این موضوع را از مدت‌ها پیش از فیلم The Imitation Game  نیز می‌دانستند و در عین تلاش برای برنده شدن در جنگ، کمک بسیار زیادی به زمینه‌ی رمزنگاری کردند. در حقیقت، اولین رمز شناخته شده توسط جولیوس سزار استفاده شد و اکنون رمز سزار نام دارد. همانطور که در پست قبل گفتیم، رمز عملیاتی است که از یک کلید استفاده می‌کند تا یک پیام را قفل کند. در مورد رمز سزار، این عملیات بسیار ساده بود: تنها می‌بایست که در هنگام فرستادن پیام خود، هر حرف را به اندازه‌ی ۳ حرف جلوتر برده و با آن جایگزین کنید. این عدد مثل کلید شماست. سپس، این پیام را با گیرنده‌ پیام خود به اشتراک می‌گذارید تا تنها آن فرد بتواند پیام شما را باز کرده و بخواند.

بیایید ببینیم که این مسئله در عمل چگونه خواهد بود. فرض کنید که سزار می‌خواهد پیام زیر را برای سربازانش بفرستد: “حمله”.

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

حالا، سزار برای اینکه پیامش را به صورت رمز درآورد، هر حرف را به اندازه‌ی ۳ حرف جلوتر برده و با آن جابه‌جا می‌کند:

Description: https://cdn-images-1.medium.com/max/800/1*gg3rKzAu-VdynY_1r9Crjw.png

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

زمانی که سربازان سزار پیام او را دریافت می‌کردند، می‌توانستند با جابه‌جایی هر حرف با ۳ حرف پیش از آن، ‌پیام سزار را رمزگشایی کنند:

Description: https://cdn-images-1.medium.com/max/800/1*BY-FVGGmbuvq5DEGwyzDdA.png

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

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

نمودار زیر، نشان‌دهنده‌ی این الگو در زبان انگلیسی است:

Description: https://cdn-images-1.medium.com/max/800/1*QP0zSNAU3jhmMB1yblVgaA.jpeg

همانطور که می‌بینید، حروف E، T و A محبوب‌ترین و پرکاربردترین حروف در زبان انگلیسی هستند. اما آنچه این نمودار به ما می‌گوید تنها همین نیست. نمودار به ما می‌گوید که در هر متن معین، هر یک از حروف الفبا نسبت به باقی حروف چند بار تکرار می‌شوند. برای مثال، در هر بخش از یک متن انگلیسی، به ازای هر G دو R وجود دارد، و به همین ترتیب می‌توانیم ادامه دهیم. هر زبان الگوی خاص خود را داشته و این الگو در تمام بخش‌های متن تکرار می‌شود. بنابراین، این الگو به نوعی مثل اثر انگشت یک زبان است. ما به هنگام ارتباط این اثر انگشت را به جای می‌گذاریم بدون اینکه متوجه آن باشیم.

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

Description: https://cdn-images-1.medium.com/max/800/1*YOS2gh4zX9JA83EOmiKplQ.png

برای مثال، در این نمودار می‌بینیم که پرکاربردترین حرف در پیام‌های رمز‌نگاری‌شده یا متن‌های رمزی I است که به جای E به کار برده می‌شود؛ بنابراین، این به این معناست که احتمالا هر حرف با کلید ۴ جایگزین شده است. با دانستن این مطلب به راحتی می‌توانیم این جایگزینی را به حالت اولیه برگردانده و پیام اصلی را کشف کنیم.

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

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.