رمز نگاری چیست؟ – جلسه ششم (+ویدئو)

0 618

تاریخچه رمزنگاری (Cryptography)

رمزنگاری چیست؟ احتمالا این کلمه را شنیده‌­اید.

امروزه رمزنگاری برای هر بخش از امنیت سایبری ضروری است.

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

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

رمز سزار به وسیله استانداردهای مدرن به راحتی شکسته می‌­شود.

رمزنگاری (Cryptography) دیجیتال

ما امروزه پیام­‌ها را از طریق اینترنت به صورت دیجیتال ارسال می­‌کنیم.

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

برقراری ارتباط روی یک شبکه عمومی رمزنگاری نشده به معنی آن است که هر کسی در مسیر ترافیک اینترنت از نقطه A  به نقطه B، می‌تواند پیام را رهگیری کرده و بخواند.

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

اما اگر آلیس چیز مهمی مثلا اطلاعات بانکی خود را ارسال کند، نمی‌خواهد کسی قادر به خواندن آن باشد. در اینجا سوالی پیش می‌­آید: «آیا راهی وجود  دارد که آلیس از طریق شبکه عمومی رمزنگاری نشده، پیامی را برای باب بفرستد و مطمئن باشد که به جز باب کسی نمی‌تواند پیام مذکور را بخواند؟»

خوشبختانه پاسخ این سوال «مثبت» است. راه حل این مشکل، استفاده از رمزنگاری «کلید عمومی» است.

 

مفاهیم رمزنگاری (Cryptography) با کلیدهای عمومی و خصوصی

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

کلید عمومی  A برای رمزنگاری یا همان قفل کردن پیام­‌ها و کلید خصوصی A برای رمزگشایی پیام­‌هایی استفاده می‌شود که دقیقا با کلید عمومی A رمز شده باشند. چون افراد، کلید عمومی را آشکارا با همه به اشتراک می­‌گذارند به آن کلید عمومی می­‌گویند. فرض کنید کلید عمومی برای آلیس در یک شبکه باز فرستاده شود، این کلید به تنهایی نمی‌تواند پیامی را رمزگشایی کند.

کلید عمومی A فقط می‌­تواند پیام‌­ها را رمزنگاری کند و هرگز نمی‌­تواند پیام­‌هایی را که رمزنگاری کرده، رمزگشایی کند. بنابراین اصلاً مهم نیست که چه کسانی در شبکه، کلید عمومی ما را دارا هستند.

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

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

این اصل را به عنوان یک فرایند یک طرفه ریاضی در نظر بگیرید: اگر پیامی با کلید عمومی شخص خاصی رمزنگاری شود آنگاه تنها کلیدی که می­‌تواند آن پیام را از رمز خارج ­کند، کلید خصوصی همان شخص است. رمز گشایی یا هک پیام بدون داشتن این کلید خصوصی غیرممکن است!

ارتباط رمزنگاری و بلاکچین

حال ممکن است برایتان این سوال پیش بیاید که ارتباط دو مفهوم رمزنگاری و بلاکچین با یکدیگر چیست؟ رمز نگاری کلید عمومی برای ایجاد امنیت در بلاک­‌ها استفاده می­‌شود. این رمز نگاری پایه و اساس کیف پول دیجیتال (Digital Wallet)، معاملات توکن (Token Trading) و تائید هویت است. در مورد این مسائل، در درس‌­های بعدی صحبت خواهیم کرد.

کاربرد اصلی «رمزنگاری با کلید عمومی» ایجاد یک تاریخچه قابل راستی­‌آزمایی (Verification) از رکوردها و داده­‌های مرتبط با تراکنش­‌ها است. این رمزنگاری ما را قادر خواهد ساخت سیستم‌­های غیرمتمرکزی ایجاد کنیم که توسط جامعه جهانی، قابل اجرا و اداره باشند.

ممکن است شما دوست داشته باشید

ارسال یک پاسخ

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