مطلبی درباره رمزنگاری رو برای انجمن نوشته بودم خواستم که مطلب رو هم اینجا هم بزارم

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


رمزنگاری (Cryptography) چیست ؟  میتوان گفت که رمزنگاری به تغییر کلی اطلاعات مربوط به پیام اصلی (plaintext) به اطلاعاتی که قابل تشخص نباشد میگوییم یا به عبارتی پیام اصلی که اگر رمز گذاری شده باشد  اصولاً متن اصلی را ناخوانا و نامفهوم میکند. اگر با دنیای رمزنگاری آشنایی جزئی داشته باشید میدانید که کلمه  Cryptography از واژه‌های یونانی kryptos و graphica گرفته شده است اولی به معنی پنهان و دومین واژه به معنی نوشتن میباشد.

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

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

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

اگر نگاهی دقیقتری به رمزنگاری سزار داشته باشیم و اینکه اینکار چطوری انجام میشد میتوانید به تصویر زیر توجه کنید :


رمزنگاری سزار


همینطور که در تصویر مشاهده میکنید رمزنگاری سزار یک رمزنگاری جانشینی بوده است. مثلاً شما حروف الفبای انگلیسی را در نظر بگیرید که 26 تا میباشند اگر مقدار جابه جایی را 4 در نظر بگیرم حروف به این شکل در می‌آیند :


Plaintext : ABCDEFGHIGKLMNOPQRSTUWXYZ
ROT = 4
Ciphertext : EFGHIJKLMNOPQRSTUVWXYABCD


با توجه به قسمت بالا میتوانیم حال رمزنگاری مربوطه را ایجاد کنیم مثلاً کلمه Cryptography را قرار خواهیم داد که شکل کلی مربوطه اینطوری خواهد شد :


Plaintext : Cryptography
ROT = 4
Ciphertext : GVCTXSKVETLC

اگر بخواهیم شکل کلی این قسمت را به صورت ریاضی بنویسم اینطوری حساب میکنیم حرف الفبای زبان انگلیسی 26 میباشد حرف A=0 تا حرف آخر که برابر با Z=25 خواهد بود اگر این مقدار را g در نظر بگیرم و n را مقدار جابه جایی حروف معادله زیرا میتوانیم شکل دهیم :


F(g) = (g+n) mod 26

در مطالب آینده درباره این سیستم به عنوان یک رمزنگاری ساده و به بررسی آن به صورت کلی خواهیم پرداخت .

ماشین رمزنگاری Enigma

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

ماشین Enigma توسط یک مهندس آلمانی آرتور شربیوس در خلال جنگ جهانی اول اختراع شد. مدلهای مختلفی از ماشین  Enigma ساخته شد ولی مدل  Enigma که در ارتش آلمان مورد استفاده قرار گرفت Wehrmacht Enigma بود. این ماشین دارای چند چرخ دنده است که حروف الفبا را به حروف دیگری نگاشت میکرد مثلاً حرف B به حرف W نگاشت می‌شود و یا حرف A به G و … . ماشین اینطوری است که  ابتدا باید اپراتور یک سروی تنظیمات را برروی دستگاه اعمال کند و طرف گیرنده نیز باید همان تنظیمات را برروی دستگاه اعمال کند  برای جلوگیری از کشف نگاشت ها در هر بار تکرار یک حرف چرخ دنده یک بار میچرخد و جای حروف تغییر میکرد مثلاً این بار به جای اینکه B به حرف W اشاره کند به D اشاره میکرد. همینطور که گفته شد برای رمزگشایی باید طرف گیرنده نیز همان ماشین با همان تنظیمات را در اختیار داشته باشد. میتوانید ماشین Enigma را در تصویر زیر مشاهده کنید



اولین اقدام برای شکستن کد Enigma در اواخر سال 1920 در لهستان صورت گرفت. گروهی توسط دولت مامور شدن تا با توجه به مهارتی که در شکستن رمز داشتن جهت شکستن رمزنگاری ماشین Enigma شروع به کار کنند. نتیجه آن شکست برخی از پیام‌های اولیه ماشین Enigma بود . در اواخر جنگ یک پروژه فوق سری به نام Ultra زیر نظر آقای Alan Turing شروع شد که هدف آن رمزگشایی پیغام های نیروی دریایی آلمان بود.


در آینده قسمت های بعدی رو مینویسم :)