رمزنگاری چیست؟

0

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

  • رمزگذاری: رمزگذاری کردن متن و غیرقابل خواندن کردن آن.
  • رمزگشایی: عکس رمزگذاری. تبدیل یک پیام خرد شده به شکل اصلی آن.
  • کد گذاری: یک الگوریتم برای انجام رمزگذاری یا رمزگشایی ، معمولاً مجموعه ای از مراحل مشخص است که می تواند دنبال شود.

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

به عنوان مثال، رمز سزار یک رمز معروف است که توسط جولیوس سزار برای برقراری ارتباط ایمن با ژنرالهای خود استفاده می شد. رمزگذار هر حرف را در یک پیام به مقدار مشخص تغییر می دهد. با تغییر 2 ، A به C تبدیل می شود ، B تبدیل می شود به D و غیره.

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


رمزنگاری کلید عمومی


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

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

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

  • آلیس از کلید عمومی باب برای رمزگذاری پیام استفاده می کند.
  • آلیس پیام رمزگذاری شده را به باب ارسال می کند که اگر شخص ثالثی آن را رهگیری کند، تمام آنچه را که می بیند اعداد و حروف تصادفی است.
  • باب از کلید خصوصی خود برای رمزگشایی و خواندن پیام استفاده می کند.

فرآيند این روش در زير نشان داده شده است:

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

آدرس آن کیف پول یا نحوه نمایش آن در بلاک­چین، مجموعه ای از اعداد و حروف ایجاد شده از کلید عمومی است. با توجه به ماهیت فناوری بلاک­چین، این آدرس برای همه قابل استفاده است و می توان برای بررسی موجودی آن کیف پول یا ارسال سکه یا همان رمزارز از آن استفاده کرد.

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

معامله در بلاک­چین چیزی غیر از یک پیام پخش شده نیست که اساساً می گوید: “x سکه را از کیف پول من ببرید و x سکه را به کیف پول دیگری واریز کنید”. پس از تأیید، معامله به طور غیرقابل تغییر در دفتر مرکزی نوشته می شود و مانده ها به روز می شوند.

با این وجود، برای ارسال این پیام تراکنش به اعتبار یک امضای دیجیتال که از کلید خصوصی کیف پول می باشد، نیاز دارد. پس از پخش، هر کسی می تواند از کلید عمومی این کیف پول استفاده کند تا مطمئن شود که امضای دیجیتالی کلید خصوصی معتبر است. این یکی از روش های تأییدکننده اعتبار بلوک قبل از اضافه کردن هر معامله (یعنی پیام) به بلاک­چین است.


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


هشینگ رمزنگاری یکی دیگر از اجزای اساسی فناوری بلاک­چین است و مستقیماً مسئول تولید کدهای تغییر ناپذیر است که یکی از مهمترین ویژگی های بلاک­چین می باشد.

هشینگ یا هش کردن یک اصطلاح علوم کامپیوتری است که به معنی گرفتن ورودی به هر طول و تولید خروجی با طول ثابت است. مهم نیست که ورودی جهت عملکرد هش، 3 یا 100 کاراکتر باشد ، خروجی همیشه به همان طول خواهد بود.

توابع هش رمزنگاری توابعی هستند که دارای این خصوصیات مهم هستند:

  • قطعی: مهم نیست که چند بار ورودی خاصی را به سیستم بدهید، همیشه خروجی یکسانی خواهد داشت.
  • برگشت ناپذیر: تعیین ورودی از خروجی تابع غیرممکن است.
  • مقاومت در برابر برخورد: هیچ دو ورودی نمی توانند بازده یکسانی داشته باشند.

یکی دیگر از ویژگی های مهم توابع هش رمزنگاری این است که تغییر هر بیت داده در ورودی باعث تغییر چشمگیر خروجی می شود. به عنوان مثال، خروجی هشهای 111111 و 111112 کاملاً منحصر به فرد بوده و هیچ شباهتی با یکدیگر ندارند.

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

خوب پس چگونه می شود رمزنگاری هشینگ ثابت و تغییرناپذیر را برای فناوری بلاک­چین امکان پذیرکرد؟ پاسخ این است که هر بلوک جدید از داده ها حاوی یک هش از کلیه داده های موجود در بلوک قبلی است.

تصور کنید در یک بلاکچین بلوک 1000 ام تازه اضافه شده است. داده های بلوک 999 در بلوک 1000 به عنوان خروجی عملکرد هش وجود دارد. همینطور، داده های بلوک 999 در بلوک 998 موجود است و به همین صورت تا آخر ادامه دارد.

با رفتن به عقب، از بلوک 1000 تا بلوک 1 هش های رمزنگاری همه با هم مرتبط هستند. نمودار این طراحی در زیر نشان داده شده است:

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

* جهت اطلاعات بیشتر، بیت کوین از یک عملکرد هش رمزنگاری به نام SHA-256 و اتریوم از keccak256 استفاده می کند.


درخت مرکل


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

درخت، یک اصطلاح علمی کامپیوتری برای ذخیره داده ها در ساختاری سلسله مراتبی است که در آن به بیت های داده ها گره گفته می شود. یک گره ریشه (بالا) منفرد وجود دارد که دارای گره های “فرزند” در زیر آن است که خود دارای گره های کودک و غیره هستند. نموداري كه ساختار داده هاي درخت مذکور را نشان مي دهد در زير نشان داده شده است:

همانطور که در نمودار نشان داده شده است، گروه هایی از گره های درون درخت را درختان زیر درختی می گویند و گره ای بدون فرزند (یعنی هیچ داده ای در زیر آن نباشد) گره برگ نامیده می شود.

درخت مرکل (یا درخت هش) درختی است که از توابع هش رمزنگاری برای ذخیره خروجی های هش به جای داده های خام در هر گره استفاده می کند. هر گره برگ شامل یک هش رمزنگاری از داده های اصلی خود است و هر گره والد هشی از ترکیب هش های گره های کودک است.

ریشه مرکل به معنای ساده همان ریشه یک درخت مرکل است، به این معنی که نمایانگر خروجی هش های ترکیبی زیر-درختان چپ و راست است. نمودار درخت مرکل با 4 گره برگ در زیر نشان داده شده است:

هر گره برگ هشی از داده ها را برای معاملات A ، B ، C و D نشان می دهد. سپس هش A و هش B برای تولید هش AB ترکیب شده و هش CD به همان روش نیز تولید می شود. سرانجام ، هش AB و هش CD برای تشکیل ریشه درخت مرکل با هم جمع می شوند.

بنابراین چرا درختان مرکل برای فناوری بلاک­چین مهم هستند؟

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

اگر یک تراکنش در یک بلوک تأیید شده تغییر یابد، ریشه مرکل جدید کاملاً متفاوت از ریشه مرکل صحیح است و دستکاری آن آشکار خواهد شد.

درختان مرکل همچنین به کاربران این امکان را می دهد تا بدون بارگذاری کل بلاک­چین گنجانده شدن معامله خود در یک بلوک را بررسی کنند. فرایندهایی مانند تأیید پرداخت ساده قادر به طی کردن شاخه های درخت مرکل هستند و بررسی می کنند که آیا معامله خاصی در آن درخت صورت گرفته است یا خیر. این سطح کارآیی برای فناوری بلاک­چین بدون در نظر گرفتن ریشه مرکل در هر بلوک غیرممکن خواهد بود.

نمونه ای از درخت مرکل با 4 معامله در یک بلاک­چین در زیر نشان داده شده است  :

 

نتیجه گیری

رمزنگاری بخشی جدایی ناپذیر از کارکردهای درونی فناوری بلاک­چین است. رمزگذاری کلید عمومی به عنوان پایه ای برای کیف پول و معاملات بلاک­چین عمل می کند، توابع هش رمزنگاری ویژگی تغییر ناپذیری را فراهم می کند و درختان مرکل معاملات را ترتیب می دهند و تمام این ها باعث کارامدی هر چه بیشتر بلاک­چین می شود.

امکان نظردهی غیر فعال شده.