آموزش رمزنگاری به زبان ساده؛ بخش ۱: رمزنگاری چیست؟
رمزنگاری برای تازه کاران، یک پست ادامه دار درباره معرفی رمزنگاری است. در این سری پستها شما به زبانی ساده با مفاهیم پیچیده رمزنگاری و مسائل مربوط به آن آشنا خواهید شد. اگر به مسائل پایهای ارزهای رمزنگاری شده و بلاکچین علاقهمند هستید، به شما توصیه میکنیم که حتما تمام قسمتهای این پستها را مطالعه کنید.
برای درک چگونگی عملکرد بلاکچین اول باید بفهمید که رمزنگاری چیست. مشکل این است که هیچ توضیح اساسی و سادهای درباره این که رمزنویسی چیست، چرا وجود دارد و عملکرد آن چگونه است، وجود ندارد. تمام توضیحات موجود یا آن قدر فنی و پیچیده هستند که نمیتوانید بدون داشتن مدرک در رشته علم کامپیوتر آنها را درک کنید و یا آن قدر ساده هستند که باز هم واقعا نمیفهمید ماجرا از چه قرار است.
در این سری از پستها، ما میخواهیم که تعادل را برقرار کنیم؛ هم به قدری ساده توضیح دهیم که افراد با دانش متوسط بتوانند مطلب را دنبال کنند و هم به قدری جزئی و پیچیده که وقتی از رمزنویسی صحبت میکنیم، کاملا بفهمید منظورمان چیست.
وقتی که شما دربارهی رمزنگاری فکر میکنید، تصور شما از آن الگوریتمهای پیچیدهی علم ریاضی و کامپیوتر است؛ اما، رمزنویسی قبل از اختراع کامپیوتر نیز وجود داشت و تا مدتها موضوع بسیار سادهای به حساب میآمد. هدف اصلی رمزنگاری همیشه این بوده که افراد بتوانند پیامهای رمزی و پنهانی را با یکدیگر به اشتراک بگذارند. برای مثال، خودتان و دوستتان را در نظر بگیرید؛ اگر میخواستید پیامی را به اشتراک بگذارید که هیچکس نتواند آن را بخواند، چگونه این کار را انجام میدادید؟
سادهترین راه برای انجام چنین کاری استفاده از یک گاوصندوق است؛ یعنی اینکه شما و دوستتان کلید یک صندوق را داشته باشید. پیامتان را در صندوق قرار داده و آن را با کلید خود قفل میکنید. دوستتان از کلید استفاده میکند تا صندوق را باز کرده و این پیام را بخواند. میتوان گفت که قرار دادن پیام در صندوق و قفل کردن آن توسط شما “رمزنویسی” یا “رمزی کردن” و باز کردن صندوق و خواندن پیام توسط دوستتان “آشکارسازی” یا “کشف رمز” نام دارد. شما میتوانید برای درک رمزنویسی از این تشبیه استفاده کنید. رمزنویسی همیشه از یک کلید استفاده میکند تا پیام را قفل کند و از طرف دیگر، کشف رمز از یک کلید استفاده میکند تا پیام را باز کند. این کلید میتواند یک کلید فیزیکی باشد، درست مثل همان کلیدی که در مثال از آن استفاده کردیم، و یا ممکن است یک رمز باشد.
اساسا، رمز، کد یا عملیاتیست که شما میتوانید از آن برای رمزی کردن یا کشف رمز یک پیام استفاده کنید. رمزنگاری یعنی به کار بردن رمزهایی که از آنها برای رمزی کردن یک پیام استفاده میشود تا دیگران نتوانند بفهمند آن پیام چیست. ما به جای استفاده از روش قفل و کلید، از رمزنگاری استفاده میکنیم و شما احتمالا میتوانید دلیل آن را حدس بزنید؛ زیرا روش قفل و کلید قابلارتقاء نیست. فرض کنید که باید پیامی را با دوستتان به اشتراک بگذارید، اما در دو طرف متفاوت از کرهی زمین قرار دارید؛ یا اینکه باید یک پیام ثابت را با تعداد زیادی از دوستان خود به اشتراک بگذارید. حفظ و به کار گیری سریع روش قفل و کلید به دشوار خواهد شد. همچنین، میتوانید ببینید که روش قفل و کلید، روش بسیار امنی نیست. این احتمال وجود دارد که یک فرد به راحتی قفل را باز کرده و یا حتی خود صندوق را بشکند.
هدف رمزنگاری این است که راهی قابلارتقاء و غیرقابل نفوذ برای به اشتراک گذاشتن پیامها پیدا کند. پیچیدگی این کار در نبردیست که بین سازندگان رمز و بازکنندگان رمز وجود دارد. سازندگان رمز، یک رمز میسازند؛ بازکنندگان رمز به دنبال یک ایراد گشته و آن را باز میکنند. بنابراین، سازندگان رمز مجبور میشوند که رمز پیچیدهتری بسازند و بازکنندگان رمز سعی میکنند تا آن را مجددا باز کنند؛ و این روند به همین شکل ادامه مییابد.
اگر به روند تکامل رمزنگاری در طول تاریخ دقت کنید، به راحتی متوجه این نبرد خواهید شد. در بخش بعدی این سری مقالات نگاهی خواهیم داشت به اینکه اولین رمزها چگونه به وجود آمدند، چگونه عمل کردند و در نهایت چگونه باز شدند.