معرفی دانش رمزنگاری

واژه‌ی کریپتوگرافی از دو واژه یونانی به نام crypto به معنای “محرمانه” و graphien به معنای “نوشتن” تشکیل شده است. رمزنگاری مدرن را می‌توانیم ترکیبی از تمامی قواعد موجود در فیزیک، علوم رایانه، مهندسی و ریاضیات بدانیم. در ادامه مطلب به تعریف چند اصطلاح مهم و کاربردی در این علم می‌پردازیم:رمزگذاری (Encryption): عبارت است از کد گذاری (Encding) یک متن و تبدیل متن به یک فرمت غیر قابل خواندنرمزگشایی (Decryption): رمزگشایی عملیاتی برخلاف کدگذاری است. در این عملیات شما متن های غیر قابل خواندن را به فرمت اصلی خود تبدیل کرده و آن را به صورت خوانایی در می‌آورید.سایفر (cipher): عبارت است از مجموعه عملیاتی که برای کدگذاری و کدگشایی انجام می‌شود.کریپتوگرافی قدمتی طولانی دارد و به مصر باستان برمی‌گردد و در تمامی طول تاریخ وجود داشته است. برای مثال می‌توانیم سایفر سزار (caesar cipher) را نام ببریم. در آن زمان سایفر ژولیوس سزار ایجاد شد و تمامی مقصود آن ایجاد ارتباطی ایمن با ژنرال ارتش ایتالیا بود. این سایفر قادر بود که حرف‌های موجود در پیام را مقدار شخصی تغییر دهد به‌طوری که در تغییراتی دوتایی حروف مشخص می‌شد. برای مثال حرف A به حرف C تبدیل می‌شد.این فناوری در بلاک چین نیز کاربردهای بسیار زیادی دارد. بلاکچین در کیف پول، امنیت و پروتکل‌هایی که برای حفظ حریم خصوصی استفاده می‌شود، از کریپتوگرافی استفاده می‌کند.مزایای دانش کریپتو گرافی:می‌توان از حفظ محرمانگی اطلاعات مطمئن بود.اگر شما بخواهید برای یک فرد دیگر پیامی را ارسال کنید، هر کسی که در مسیر مبدا تا مقصد وجود داشته باشد، می‌تواند از محتوای پیام شما باخبر شود. شما برای اینکه پیامتان محرمانه باقی بماند، باید پروتکل‌های رمزگذاری را برای آن اجرا کنید. حال یک سوال پیش می‌آید که آیا فردی که در مقصد و گیرنده پیام است می‌تواند این پیام را بخواند؟ شما باید با یکدیگر توافق کنید که از چه روش کدگذاری استفاده کرده‌اید و بعد از آن تمام پیام‌هایی که بین شما رد و بدل می‌شود از این پروتکل خاص پیروی می‌کند و قادر خواهید بود که امنیت پیام های خود را تا حد بسیار زیادی بالا ببرید.می‌توان از ارسال پیام توسط فرستنده پیام اطمینان حاصل کرد.قبل از هر چیزی باید در نظر بگیرید که آیا پیامی که برای شما ارسال می‌شود از طرف فرد مد نظر است یا خیر. شما باید مطمئن باشید که آیا این پیام را از فرستنده مورد نظر برای شما ارسال کرده یا نه.با این علم شما می‌توانید از دانش رمزنگاری و همچنین بررسی امضای الکترونیکی متوجه شوید که آیا فرستنده پیام همان مبدا مورد نظر شما بوده است یا خیر. البته این شرط باید رعایت شود که شما از امضای دیجیتالی خود برای ارسال پیام مورد نظر استفاده کرده باشید.می‌توانیم از عدم تغییر پیام فرستنده در شبکه مطمئن شویم.ممکن است پیامی که شما برای دیگری ارسال می‌کنید شامل اطلاعات مهمی باشد که دستکاری در این اطلاعات سبب شود مشکلات زیادی برای شما پیش بیاید.برای مثال اگر در پیام شما، شماره حسابی از خودتان وجود داشته باشد در صورت تغییر شماره حساب ممکن است برای شما مشکلاتی پیش بیاید. اما اگر شما در ارسال پیام از تکنولوژی کریپتوگرافی استفاده کنید، حتی اگر در طول مسیر انتقال پیام کسی آن را مشاهده کند، نمی‌تواند محتویات آن را تغییر دهد؛ البته کریپتو گرافی دارای مراحلی است که فرستنده و گیرنده هر دو در استفاده از آنها به توافق می‌رسند. هر چقدر که این پیچیده تر باشد امکان رمزگشایی آن توسط هکرها به مراتب سخت‌تر خواهد بود.رمزنگاری کلید عمومیما از رمزنگاری کلید عمومی برای رمزگذاری پیام‌هایی که بین دو فرد یا دو رایانه رد و بدل می‌شود و می‌خواهیم امنیت قابل قبولی داشته باشد، استفاده می‌کنیم. هر فردی می‌تواند از کلیدهای عمومی فرد دیگری به منظور رمزگذاری استفاده کند، اما پس از رمزگذاری تنها کسی می‌تواند این پیام‌ها را رمزگشایی کند که از کلید خصوصی متناظر با کلید عمومی استفاده کند.پس به طور خلاصه می‌توانیم بگوییم روند رمزگذاری پیام به شرح زیر است:استفاده از کلید عمومی برای رمزگذاری پیامارسال پیام رمزگذاری شدهاستفاده از کلید خصوصی توسط فردی که در مقصد است برای رمزگشایی و خواندن پیام.لازم به ذکر است اگر فرد دیگری در این مسیر وجود داشته باشد و پیام را دریافت کند، تنها چیزی که می‌تواند ببیند تعدادی حروف و اعداد تصادفی و بی معنی است.رمزنگاری کلید عمومی یکی از راه‌های اصلی و بنیادی در فناوری موجود در کیف پول‌ها و تراکنش‌ها است؛ زمانی که کاربر یک کیف پول را در بلاک چین ایجاد می‌کند، به طور همزمان هم کلید عمومی و هم کلید خصوصی برای آن ایجاد می‌شود. آدرس کیف پول در واقع یک رشته از اعداد و حروف است که متشکل از کلید عمومی می‌باشد. به دلیل ماهیتی که فناوری بلاک چین دارد، این آدرس می‌تواند در دسترس عموم قرار بگیرد. شما می‌توانید از این آدرس به منظور بررسی موجودی کیف پول و یا ارسال کوین ها استفاده کنید.کلید خصوصی موجود در کیف پول روشی است که شما می‌توانید با آن مالکیت کیف پول را اثبات کنید وتنها روشی است که شما می‌توانید با استفاده از آن ارز دیجیتال را از کیف پول ارسال کنید؛ بنابراین امنیت کلید خصوصی از آن جهت بسیار مهم است که شما با از دست دادنش تمام توکن‌های داخل کیف پول خود را از دست داده‌اید.هشینگ رمزگذاریهشینگ رمز گذاری را می‌توان به عنوان یکی دیگر از مولفه‌های اصلی که در فناوری بلاک چین وجود دارد، اعلام کرد و مستقیماً وظیفه ایجاد ویژگی غیر قابل تغییر بودن پیام را بر عهده دارد.در علوم رایانه هشینگ را دریافت یک رشته ورودی به طول متغیر و ایجاد یک رشته خروجی به طول ثابت می‌نامیم. تفاوتی وجود ندارد که ورودی تابع هش دارای چند کارکتر باشد، خروجی همیشه مقدار یکسانی خواهد بود.توابع هش مشخصات زیر را دارند:قطعی هستند؛ تفاوتی وجود ندارد که شما به چه تعداد ورودی مشخصی را به یک تابع بدهید زیرا همواره خروجی یکسان است.برگشت ناپذیر هستند؛ تعیین مقدار ورودی از خروجی تقریباً عملیات غیر ممکن است.کاملا تفکیک پذیر هستند؛ شما هیچگاه تابعی را نمی‌توانید پیدا کنید، که با دو ورودی متفاوت، خروجی مشترکی داشته باشند.اگر شما تغییر اندکی در ورودی ایجاد کنید، در خروجی به مقدار چشمگیری تغییر ایجاد می‌شود.از ویژگی‌های این توابع در رمزنگاری می‌توانیم به ذخیره‌سازی رمز عبور اشاره کنیم.درخت مرکلدرخت مرکل نموداری است که اطاعات مهمی را در اختیار ما نمی‌گذارد، بلکه صرفاً این نمودار به ما نشان می‌دهد که تراکنش‌های هر بلاک در ریشه مرکل قابل ذخیره سازی است. در واقع ما می‌توانیم از ریشه مرکل به عنوان نود اصلی درخت مرکل نام ببریم. برای درک بهتر این موضوع می‌توانیم بگوییم که “درخت” یک اصطلاح در علوم رایانه است، که برای ذخیره اطلاعات از آن استفاده می‌شود و به هر بیت اطلاعات، نود گفته می‌شود. شکل ظاهری این درختان را می‌توانیم به شجره نامه تشبیه کنیم. که هر ریشه دارای فرزندان مشخصی است.به گروه نودها در درخت، درخت های فرعی (sub_tree) و به نودهایی که فاقد فرزند هستند نود برگ (leaf node) گفته می‌شود. درخت مرکل از توابع هش برای رمز گذاری استفاده می‌کند تا به‌جای اینکه اطلاعات خام هر نود را ذخیره کند، خروجی‌های هش را ذخیره کند. هر نود برگ شامل اطلاعات رمزنگاری و هر نود مادر شامل مجموعه هش‌های نودهای فرزند می‌باشد. ما ریشه درخت مرکل را همان “نود اصلی” می‌نامیم و ریشه بیانگر مجموعه هش‌های درخت فرعی می‌باشد که در سمت چپ و راست قرار دارند.