آرشیو ‘’ tag
ده سیستم رمزنگاری مشهور۵ — ماشین انیگما
در انتهای این پست به این نتیجه رسیدیم که ارتش آلمان با سیستم رمزنگاری منهدم شده ای به نام ADFGVX در جنگ جهانی اول روبرو شد البته در جنگ جهانی اول ارتش آلمان اعتقاد زیادی هم به رمزنگاری اطلاعات نداشت و بر این عقیده بود که لو رفتن
اطلاعات محرمانه نه بخاطر رمزگشایی پیامهاست بلکه بخاطر دزدیده شدن آنها توسط جاسوسان میباشد کمی بعد در سال ۱۹۱۸ دو کارخانه دار و مخترع آلمانی به فکر ساخت دستگاه الکترومکانیکی ای شدند تا بتوان با آن اطلاعات را رمز کرد اینگونه در زمینه تجارت خیلی پولها به باد نمیرفت، ولی بخاطر قیمت گران دستگاه زیاد مورد توجه قرار نگرفت نام دستگاه ماشین انیگما بود البته تا چند دهه بعد هم از نظر نظامی این دستگاه ارزشمند مورد توجه ارتش آلمان قرار نگرفت آلمانی که همینک با رهبری هیتلر میخواد جنگ جهانی دوم رو در تاریخ ثبت کنه، البته مدل اولیه ماشین انیگما مشکلاتی داشت پس افسران توانای هیتلر دست بکار شدند و نسخه جنگی و مشهور این ماشین را به نام انیگمای ورماخت طراحی کردند اما دانشمندان متفقین و روسها هم بیکار نشستند و در طول جنگ جهانی دوم سعی خود را در فهم و کشف الگوهای ماشین انیگما به کار بردند و البته موفق هم بودند دانشمندانی همچون آلن تورینگ ریاضیدان منطق دان و رمزنگار برجسته بریتانیایی شخصی که به عنوان پدر محاسبه نوین و علم رایانه شناخته شده و ماشین تورینگ آن معیاریست برای هوش مصنوعی و هنوز برنامه ای نتوانسته خواسته های ماشین تورینگ را برآورده کنه.
ماشینی که میگوید اگر شخصی در سمتی نشسته باشد و ماشینی در سمت دیگر به گونه ای که هیچ کدام(!) یکدیگر را نمیشناسند ماشین باید به گونه ای پاسخ های شخص را بدهد که شخص متقائد شود در طرف دیگر یک انسان نشسته ! :)
البته تا سیزده سال گمان میرفت رمز انیگما غیرقابل نفوذ است اما همه ما میدانیم کار نشد نداره و البته دانشمندان و ریاضیدانان دیگر هم بیکار نبودند همچنین میتوان از Marian rejewski افسر ریاضیدان ارتش لهستان نام برد که به روشی کاملا ریاضی موفق به شکستن الگوریتم انیگما شد!
من معتقدم که اگر جنگ جهانی دوم نبود هیچ گاه علم به اندازی ای که الآن پیشرفت داشته پیشرفت نمیکرد البته پیشبرد علم توسط راه انداختن جنگ کار دردناکیست ولی میتوان از بانیان جنگ جهانی دوم تشکر کرد که باعث شدند علم انقدر پیشرفت کنه!
ماشین انیگما یک ماشین الکترومکانیکی بر پایه سیستم ماشینهای گردان — Rotor Machine — طرح ریزی شده است.
سیستم ماشین های گردان به گونه ایست که بوسیله یک سری چرخ دنده و یک محور و صفحات الکتریکی میتوانند یک سیگنال را به صورت ها و الگوهای مختلف انتقال دهد ترکیبات متفاوت از حالات متفاوت ماشین روتور باعث بوجود آمدن الگوریتمهای متفاوتی میشود که میتوان از آن در رمزنگاری و بالعکس آن رمزگشایی استفاده کرد یکی از مشهورترین مثال های ماشین روتور ، ماشین انیگماست!
ماشین انیگمای آلمان ها بوسیله ترکیب دو مکانیزم الکتریکی و مکانیکی کار میکرد و از چهار روتور ، یک بازگرداننده—Reflector— بیست و شش لامپ و کلیدها و فیش ها —Plugs— و سیم کشی داخل روتورها و ماشین ها —برای انتقال سیگنال بینشون و روشن شدن لامپ— و البته باتری تشکیل شده.
شبیه سازها و نرم افزار های زیادی از ماشین انیگما طراحی شده که میتونید یک نمونشو در پانوشت مقاله دانلود کرده و روی منطق و روش کارش کار کنید اما خوبه نگاهی به مثالی که در ویکیپدیا ارائه شده بیندازیم!
در سیستم رمز نگاری انیگما ما الگوهای مختلفی رو برای رمز کردن حروف میتونیم تهیه کنیم در حقیقت با عوض کردن سیستم روتورهای ماشین، ما به الگوهای مختلف میرسیم در ماشین انیگمای ورماخت سه روتور وجود دارد و در مدل جدید تر ماشین انیگما به نام –Kriegsmarine M4– چهار روتور به کار رفت که در مثال پایین ما این مدل را بررسی خواهیم کرد.
همان طور که در شکل دیده میشود شروع یک سیگنال از باتری است پس ما هم از اونجا شروع میکنیم، مکانیزم کلی ماشین انیگما به گونه ایست که با وارد شدن یک حرف از کیبورد توسط الگویی که بهش دادیم یک حرف دیگر خروجی میگیریم مثلا طبق چیدمان سوییچ ها و روتور ها در ماشین نمونه زیر با ورود حرف A ما در نهایت برایش حرف D را تحویل میگیریم این بدان معنی نیست که حرف A مساوی حرف D هست بلکه فقط با ورود حرف A ما حرف D را تحویل گرفتیم و چراغش روشن شد نه بالعکس فقط در الگوی حاظر که الگوهای مختلف هم به وسیله دفترچه راهنما در اختیار رمزگشایان قرار داشته.
همون طور که در تصویر میبینید یک جریان از باطری شروع میشود و در مرحله دو به فیش A میرسد که ما به درون فشارش دادیم(!) پس جریان به مرحله سه رسیده که وظیفه اتصال سیم کشی کیبورد و چرخ های روتور را دارد در مرحله بعد جریان از الگوریتم روتور در چهار مرحله میگذره و در نهایت بوسیله بازگرداننده مسیر های طی شده الگوریتم را در مسیر متفاوتی طی میکند و در مرحله هفت به فیش S میرسد که از پیش توسط سیم کشی به D اتصال داده شده است سپس در مرحله هشت جریان از پلاگ D به فیش D حرکت کرده و چراغ مربوط به D را به عنوان خروجی روشن میکند.
مطالب توصیفی و علمی و ریاضی زیادی در تحلیل ماشین انیگما وجود دارد که بیان همه آنها از حوصله و توانایی علمی بنده و این وبلاگ خارج است در زیر میتوانید به شبیه سازهای مخلفی که برای ماشین انیگما طراحی شده دسترسی پیدا کنید و منابع مفیدی را جهت مطالعه بیشتر در این زمینه بیابید.
نام انیگما بارها بهانه خوبی برای ساخت فیلم ها سینمایی، سریال های تلویزیون ، آلبوم های موسیقی و کتاب ها، بازی های ویدئویی بوده میتوانید در اینجا با این آثار آشنایی پیدا کنید ، من هم اولین بار در گذشته در فیلم سینمایی ای که از تلویزیون ایران پخش شد و در آن ریاضی دانان نظامی روسیه در خلال جنگ جهانی اول سعی در کشف سیستم ماشین انیگما داشتند با این ماشین آشنا شدم بنظرم این فیلم بود اگه اشتب نکنم :)
شبیه سازهای ماشین انیگما:
یکی از مشهورترین شبیه سازهای انیگما را که تحت ویندوز اجرا میشود را میتوانید از اینجا دانلود نمایید.
یک شبیه ساز عالی که بر روی سیستم های لینوکس هم اجرا میشود و حتی به صورت فلش هم ارائه شده
سایتی که ماشین اینگما را به صورت درون ساخت در اختیار کاربرای قرار میدهد و شما با دادن ترتیب روتور و یک ورودی میتوانید متن کد شده خود را دریافت کنید و یا دادن یک متن کد شده میتوانید آن را دیکود کنید! ![]()
—–ــــــ—–ـــــــــــ-ـــــــــ——-
منابع:
ویکیپدیا انگلیسی موضوع ماشین انیگما
مقاله مرحوم شرق در زمینه امنیت اطلاعات در جنگ جهانی دوم که در اینجا میتوانید مطالعه نمایید
رمز کردن اطلاعات و ایمیلها در جیمیل توسط gpg
در این پست کوتاه در زمینه مخفی نمودن اطلاعات نوشتم اما راهکار نهایی محرمانه کردن اطلاعات و رمزنگاری اطلاعات gpg میباشد gpg (GNU Privacy guard که نسخه رایگان pgp (Pretty Good Privacy هستش نرم افزاری برای رمز کردن و امضای دیجیتالی فایل ها و ایمیل هاست تا ایمیل و فایلمان امن باشد و دریافت کننده مورد نظر ما اون رو بتونه بخونه و همچنین بتونه از صحت و کامل بودن فایل و ایمیل مطمئن بشه ، موارد گفته شده بوسیله سیستم رمزنگاری PKI که مخفف
Public Key Infrastracture هستش بر پایه دو کلید عمومی و خصوصی بنا شده. در این مطلب میتونید ماجرای تصدیق هویت و غیره را بوسیله کلید عمومی و خصوصی مطالعه کنید.
ابزارهایی در ویندوز و لینوکس (فرض میکنیم اوبونتو ) برای ایجاد کلیدهای gpg و استفاده از آن (رمز کردن و امضا کردن ) وجود دارد و همچنین اکستنشنی برای فایرفاکس برای رمز کردن و رمزگشایی و امضای ایمیل ها در gmail وجود دارد که در زیر به مرور این ابزارها میپردازیم.
gpg4win ابزای برای تولید و استفاده از gpg هستش که از اینجا میتونید دانلود کنید و ابتدا یک کلید بسازید و سپس اون استفاده کنید ! به همین راحتی :)
seahorse نرم افزاریست که در لینوکس (اوبونتو هاردی) وجود دارد و نیاز به نصب ندارد و اون رو میتونید از ترمینال اجرا کنید، توسط این نرم افزار یک پروفایل ایجاد کنید و کلیدهای خود را تولید کنید و همچنین میتونید اون رو بر روی سرورهای مختلف جهانی کنید در نسخه هاردی اوبونتو در منوی راست کلیک دکمه ای مبنی بر Encrypt طراحی شده که بعد از ساختن کلید خود میتونید از اون دکمه برای Encrypt و Decrypt فایل های خود استفاده کنید.
fireGPG اکستنشنی است برای فایرفاکس که بعد از نصبش در قسمت نوشتن ایمیل در جیمیل دکمه هایی اظافه میشود که با اونا میتونید یک ایمیل را رمز کنید ، امضا کنید و به شکل امن بفرستید و دریافت کنندتون میتونه مطمئن باشه که فقط خودش اونو میتونه بخونه و اون چیزی که میخونه دقیقا همون چیزیه که شما فرستادید.
نکات مهم، توجه کنید که با ساختن یک پروفایل در اصل دوکلید ساخته میشود که با هر دو میتوان عمل رمز کردن را انجام داد، یک کلید عمومی و یک کلید خصوصی، در برنامه های gpg4win در ویندوز و seahorse در لینوکس که کلیدهارو تولید میکنند میتونید از هر دو کلید خروجی بگیرید توجه داشته باشید که کلید خصوصی رو فقط خودتون باید ازش خبر داشته باشید و کلید عمومی تون رو میتونید به اطلاع بقیه برسونید. این دو کلید تکمیل کننده هم هستند فایل یا ایمیلی که توسط کلید عمومی رمز شود را میتوان توسط کلید خصوصی رمزگشایی کرد و بالعکس. پس شما کلید عمومی تون رو میدید به دوستتون و اون ایمیلی رو که میخواد بهتون بده رو توسط کلید عمومی شما رمز میکنه و میفرسته برای شما و اون پیام رمز شده فقط توسط کلید خصوصی شما رمزگشایی میشه. این یکی از کاربردهای gpg است شما میتوانید فایل یا ایمیلتون رو اصطلاحا امضا کنید و بفرستید اینجوری دریافت کننده ایمیل مطمئن میشه که ایمیل از طرف شماست و دستکاری نشده.
اگر حوصله اکتشاف ابزارهای بالا رو ندارید میتونید از این ویدئو استفاده کنید همچنین توضیحات گنوایران هم در این زمینه از دست ندید.
نکته امنیتی : شاید بگید مثلا گوگل انقدر امن نیست که پیام مارو عینا برسونه به مقصد؟ میشه گفت که نرم افزارهایی برای sniff کردن در سطح شبکه وجود داره که میتونه بسته های مختلف رو دریافت کنه و یا شاید یکی بتونه به دلایلی مثلا حماقت های آدمیزاد به صندوق پستی شما دسترسی پیدا کنه و ایمیل محرمانه شما رو بخونه اونوقته که این ابزارها به درد میخوره و یا شما فایلی رو دارید که اثر دست شماست و دوستش دارید و نمیخواید هر کسی توش دخالت کنه پس اونو امضا میکنید و رمز میکنید و یا شما میخواید فایلهای مهمتون رو روی فلش دیسک بریزید و جابجا کنید اونارو میتونید رمز کنید و هرجایی لازم شد رمزگشایی کنید و غیره… شاید استفاده از تمام این مسائل برای کارهای روزانه خنده دار باشه اما وقتی پای پول وسط باشه هر تدبیر امنیتی ای لازمه ! :))
اینم کلید عمومی من !
ده سیستم رمزنگاری مشهور۴ - رمز ADFGVX
در حدود سال ۱۵۰۰ بعد از میلاد مسیح شخصی بنام روگر بکن سیستم های رمزنگاری متعددی را طراحی کرد او در اول کارهایش مینویسد:” کسی که متن محرمانه ای را طوری بنویسد که بقیه بفهمند احمق است” !
رمز ADFGVX را شاید بتوان اولین رمز واقعی و سخت دانست که میتوانست حالات مختلفی داشته باشد این سیستم رمزنگاری توسط کولونل Fritz Nebel طراحی شد و در جنگ جهانی اول توسط آلمانی ها مورد استفاده قرار گرفت.
تمام سیستم رمزنگاری به شش حرف ADFGVX خلاصه میشود البته اوایل حرف V نبود و مدتی بعد جهت پوشش دادن تمام حروف الفبا V هم اظافه شد دلیل انتخاب این شش حرف این است که در زبان مورس این شش حرف شکلهای کاملا متفاوتی دارند و اشتباه کردنشان سخت تر میشود (جهت آشنایی با زبان مورس به این مطلب مراجعه کنید).
در زمانی که پیام ها بوسیله تلگراف و زبان مورس فرستاده میشد این اهمیت داشت که متنی که رمز شده احتمال خطایش در ارسال به زبان مورس تا جای ممکن کم شود که تغییر حتی یک المان در متن رمز شده ممکن بوده مفهوم کلی عبارت را تغییر دهد.
برای رمز کردن بوسیله رمز ADFGVX از جدول ماتریسی ای به نام جدول Polybius استفاده میشود که به شکل زیر میباشد.

توجه کنید که معادل رمز هر دو حرف I و J مقدار DG میشود بیایید با یه مثال شروع کنیم مثلا میخوایم عبارت “I love you ” رو کد کنیم بعد از گذروندن جمله دوستت دارم از ماشین رمزمون به عبارت ” DG FAFGXAAX XGFGGX ” میرسیم که همان معادل I love you هست!
مطمئنا سیستم بالا برای یک سیستم رمزنگاری تر و تمیز که ارتش گوگولی مگولی آلمانای نازی بتونن تو جنگ جهانی اول ازش استفاده کنند کامل و پیچیده نیست واسه پیچیده تر شدنش میشه از چند ترفند استفاده کرد مثلا حروف الفبا را در ماتریس Polybius به شکل اتفاقی بچینیم و همچنین میتوانید از لغات کلیدی در رمزمون استفاده کنیم و اون لغات کلیدی را که برای رمزگشایی لازم هستند برای رمزگشایان ارسال کنیم.
keyword ها بهتره از حروف تکراری تشکیل نشده باشند و محدود به چهار یا پنج حرف باشند(جهت پیچیده تر شدن)!!. در این صورت عبارت ابتدا توسط لغت کلیدی برگردانده میشود سپس رمز میشود به این ترتیب ما رمزی بسیار پیچیده تر داریم این keyword ها میتوانند هر روز و یا هر چند ساعت تغییر کنند و مقدار اتفاقی جدیدی برایشان طراحی شود.
نمونه ای از ماتریس رمز و نمونه ای از keyword طراحی شده و رمز را در تصویر زیر میبینید

اما گویا این سیستم رمزنگاری که توسط آلمانها به کار گرفته میشد در جنگ جهانی اول بدست فرانسوی ها شکسته شد پس آلمان ها به فکر سیستم رمزنگاری جدیدی افتادند سیستمی پیچیده تر و قدرتمندتر…
ده سیستم رمزنگاری مشهور ۳ — مورس
احتمالا میگید که مورس که تو زمان خودش یه زبان رسمی و عمومی واسه ارتباط برقرار کردن از راه دور بود و چرا اونو یک سیستم رمزنگاری معرفی کردید، خب منم جواب میدم که اونو دقیقا یک سیستم رمزنگاری مشهور معرفی نمیکنم بلکه میگم که میتونه یک سیستم رمزنگاری مشهور قبولش کرد حتی در زمان خودش و بیشتر در زمان حال چون کمتر کسی مورس بلده و البته نمیشه از اون برای فعالیت های رمز شده جدی و گسترده استفاده کرد چون هر کسی میتونه با منابع زیادی که وجود داره اونو به راحتی رمزگشایی کند بلکه میشه از اون به عنوان یک سیستم برای ارتباط برقرار کردن با کمترین تکنولوژی استفاده کرد، همچنین از مورس میتوان بسته به خلاقیت برای ساخت سیستم های رمزنگاری جدید بر پایه زبان مورس استفاده کرد.
شما میتوانید بوسیله زبان مورس با کسی که مورس بلد هست در یک جمع شلوغ بدون اینکه کسی چیزی بفهمه بوسیله حرکات انگشت و یا چشم صحبت کنید. شاید بارها در فیلم ها دیده باشید که مثلا زندانیان با ضربه زدن به دیوار با یکدیگر بوسیله مورس مذاکره میکنند و یا در فیلم Transformer محصول سال ۲۰۰۷ در قسمتی از فیلم قهرمانان در مخمصه ای گیر کرده و با این که فیلم در زمان اوج تکنولوژی اتفاق میافتد آنها وسیله ای برای ارتباط برقرار کردن جر یک رادیوی خراب ندارند ، خوشبختانه راهی پیدا میشود که با اون وسیله پالس های رادیویی ارسال کنند و بوسیله زبان مورس و اون پالس ها میتونند با مرکز تماس بگیرند!
زبان مورس از یک ساختار منطقی تشکیل شده که باعث میشه اونو بتونید تو شاید یک ربع یاد بگیرید و ظرف حداکثر یک ساعت مسلط بشید! ، به امتحان کردنش میرزه.
در شکل زیر تمام حروف زبان انگلیسی و معادل مورس آن آورده شده زبان مورس برای زبانهای مختلف مانند فارسی و غیره استانداردهای متفاوتی دارد اما شکل بین المللی آن به صورت زیر است توجه داشته باشید که زبان مورس از دو نوع خط و نقطه و یا دو صدای dah برای خط و dit برای نقطه تشکیل شده هنر شنیدن و تشخیص خط و نقطه ها و یا ditها و dah ها به تمرین شما بستگی دارد و البته ابزارها و نرم افزارهای فراوانی برای تمرین کردن علاقه مندان تهیه شده

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

با کمی تمرین میشه بهشون مسلط شد و به روش دکتر کویین تو پزشک دهکده پیام فرستاد !
یکی از بهترین نرم افزارهای رمزنگاری و رمزگشایی که خطوط مورس رو هم رمزنگاری و رمزگشایی میکنه یه اکستنشن فایرفاکسه به نام leetkey هست که از سیستمهای رمزنگاری مختلفی پشتیبانی میکنه و میتونید به راهتی با نصب کردنش از اینجا ازش استفاده کنید
در اینجا و اینجا هم میتونید نرم افزارهای متنوعی برای تمرین مورس هم به صورت نوشتن هم به صورت صوتی انتخاب و دانلود کنید.
ده سیستم رمزنگاری مشهور ۲
۲- پیامهای مخفی Cardan
پیام های مشبک Cardan یا Cardan Grill یک روش رمز کردن متون هست البته بهتره بگیم روشی برای مخفی کردن متون که در سال ۱۵۵۰ توسط ریاضیدان و فیزیکدانی ایتالیایی به نام Gerolamo Cardano مورد استفاده قرار گرفت در حقیقت در روش Cardano متن کد نمیشود بلکه مخفی میشود و برای خواندن مطلب تنها کافیست کلیدی برای خواندنش پیدا کنیم که این کلید همان شابلون است که لازمه طراحی شود !
برای نوشتن مطالب بوسیله روش cardan لازمه کمی ذوق ادبیات و قدرت تخیلی ادیبانه داشته باشیم، ما متنی رو مینویسیم و یک شابلون را بوسیله برشهایی مربعی شکل به گونه ای سوراخ سوراخ میکنیم که وقتی بر روی متن زیبا و شاعرانه نوشته شده ما افتاد حروف یا لغاتی را از متن جدا کند و مفهومی جدید را برساند !
تمام قضیه همین است و تنها چیزی که ما لازم داریم یک هوش مناسب برای نوشتن متنی زیبا و دلنواز و انرژی ای مناسب برای طراحی شابلونی که مقصود اصلی را به مخاطب اصلی میرساند و البته رساندن شابلون به دست او !
شاید بگید: “خب ما که میخوایم به پیام الکی با یه شابلون واسه خوندن پیام اصلی از توی پیام الکی برسونیم به دست طرفمون، چه کاریه، وااااا (!) چرا با این همه مشقت لقمه رو دور سرمون بچرخونیم خوب پیام اصلی رو ییهو میرسونیم دیگه”
اما میشه به این گونه از این سیستم استفاده کرد که ما یک یا چند شابلون خاص طراحی کنیم و شابلون ها را به دست افراد مورد نظر که قراره پیام ها رو دریافت کنند برسونیم و هر بار نامه عاشقانه و دلنوازمون رو که ربطی هم به پیام اصلی نداره بسته به پیام اصلیمون بهشون برسونیم در این راهکار گمان میرود طبع شاعرانه و ادیبانه بیشتری لازم است! و فرد مورد نظر بسته به کدی که بهش میدهیم از بین شابلون ها شابلون درست را انتخاب کرده و متن اصلی را استخراج میکند و یا هر بار یک شابلون را گذاشته و طبع ادیبانه ما باعث میشود هربار متون متفاوتی را استخراج کند!
در زیر میتوانید نمونه ای از این روش را ببینید

شاید روش Cardano را بتوان پدر روشهای رمزنگاری جدید نامید که از کلید رمزهای مختلف تشکیل شده اند.








