با مفهوم هش رمزنگاری بیشتر آشنا شویم!

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

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

رمزنگاری در رمزارزها به چه معناست؟

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

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

پروتکل های امضای دیجیتال چه پروسه ای را می گذرانند تا به هدف خود برسند؟

هشینگ

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

ابتدا داده‌ها با کمک تابع هش، هش می‌شوند. داده‌هایی با طول متفاوت در الگوریتم هش قرار گرفته و هش آن داده را تحویل می‌دهد.

استفاده از تابع هش کمک بسیار زیادی به تسهیل و سرعت بخشیدن به شبکه‌ بلاک چین دارد، چرا که با استفاده از تابع هش، شبکه همیشه با داده‌هایی با طول یکسان کار می‌کند و همین موضوع سرعت عملیات را بالا برده و روند را سهل‌تر می‌کند.

امضا

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

اعتبارسنجی

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

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

فرستنده نمی‌تواند کلید خصوصی خود را در اختیار شخص گیرنده و یا هر شخص دیگری قرار دهد، چراکه با استفاده از کلید خصوصی افراد می‌توانند به حساب او دسترسی داشته باشند و دارایی‌های او را به سرقت برند.

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

هدف هش

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

فرض کنید یک مسابقه برگزار شده و عده‌ای در آن مسابقه شرکت کرده‌اند. مجری مسابقه عددی را انتخاب می‌کند و شرکت‌کنندگان باید آن عدد را حدس بزنند. در این صورت مجری مسابقه ممکن است حتی در صورت ارائه جواب درست از سمت شرکت‌کنندگان ادعا کند که عدد دیگری را مد نظر داشته است.

در شبکه‌ بلاک چین امکان چنین تقلب‌هایی نیست، زیرا یک نسخه از عدد انتخابی باید به تمام افراد حاضر در شبکه ارسال شود و همین موضوع اجازه تقلب به کسی را نخواهد داد.

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

فرایند هشینگ

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

همان‌طور که پیش از این نیز بیان شد، تابع هش ورودی‌های مختلف را دریافت می‌کند و خروجی‌هایی متفاوت اما با طول کاراکتر ثابت را تحویل می‌دهد.

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

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

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

خروجی تابع هش را “هش” و عملی که با کمک تابع هش انجام می‌شود را هشینگ می‌گویند.

این مطلب را حتما بخوانید:  آشنایی با مبادله همتا به همتا (P2P) و نحوه استفاده از آن

توابع هش بسیار گوناگون هستند، اما تابع هش sha256 بیشترین کاربرد را در میان توابع هش دارد.

در هر زمینه‌ای که هویت سنجی و ایجاد امنیت مهم باشد، استفاده از تابع هش رمزنگاری می‌تواند بسیار کمک بزرگی باشد و به عنوان ایجادکننده امضای دیجیتال عمل کند.

هش در بلاک چین

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

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

شبکه بلاک‌ چین از این سیستم هش برای اطمینان از اینکه تراکنش‌ها تغییر نکرده‌اند استفاده می‌کند.

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

هر بلاک علاوه بر هش خود، هش بلاک قبلی را نیز دارد، در نتیجه فردی که قصد ایجاد تغییر در بلاک را دارد باید نه تنها هش همان بلاک بلکه هش تمام بلاک‌های قبلی را نیز تغییر دهد که تقریبا غیرممکن است.

و بلاک چین به این صورت از تقلب در شبکه جلوگیری می‌کند. از طرف دیگر تمام افراد فعال در شبکه به هش‌های واقعی دسترسی داشته‌اند و برای تایید تراکنش‌های جدید به راحتی متوجه تغییر شده و تراکنش را تایید نمی‌کنند.

به همین دلیل است که همه باوردارند که بلاک چین تغییرناپذیر است.

ویژگی‌ هایی که تابع هش رمزنگاری باید داشته باشد:

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

دقیق و ثابت بودن

تابع هش رمزنگاری به ازای وردی که دریافت می‌کند یک خروجی با طول ثابت تحویل می‌دهد، این خروجی که همان “هش” است، باید برای همیشه ثابت بماند. به عنوان مثال اگر شما حرف A را به عنوان ورودی به تابع هش دادید باید همان هشی را دریافت کنید که یک آمریکایی و یا چینی دریافت می‌کنند.

همچنین اگر شما ماه آینده نیز حرف A را به عنوان ورودی به تابع هش دادید باز هم باید همان هش ماه پیش را دریافت کنید.

زیرا در غیر این صورت پیگیری و رصد کردن اطلاعات غیرممکن خواهد بود.

یک طرفه بودن تابع

یک تابع هش رمزنگاری زمانی استاندارد است که یک طرفه باشد یعنی با قرار دادن ورودی در تابع هش به راحتی بتوان به خروجی رسید اما رسیدن به ورودی با قرار دادن خروجی در تابع هش تقریبا غیر ممکن باشد.

از آنجایی که خروجی تابع هش همیشه ثابت است، اگر قصد حدس زدن ورودی بر اساس خروجی را بخواهیم در میان تعداد محدودی از ورودی‌ها انجام دهیم، این کار شدنی است.

به عنوان مثال در نظر بگیرید که ۱۰ کلمه را به شما نشان می‌دهند، و هش یکی از ۱۰ کلمه را نیز در اختیار شما می‌گذارند، حال شما باید بگویید که این هش متعلق به کدام کلمه است؟

در این حالت کار شما بسیار ساده است و می‌توانید با قرار دادن هر ۱۰ کلمه به صورت جداگانه در تابع هش و مقایسه خروجی تابع با هشی که به شما داده شده، بگویید که این هش متعلق به کدام کلمه بوده است.

اما این کار برای تعداد زیادی از اطلاعات بسیار دشوار و یا حتی غیرممکن خواهد بود.

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

تغییر هش در صورت ایجاد کوچک‌ترین تغییر در ورودی

با وارد کردن جمله my name is Jack در تابع هش sha256 به هش  f794886e4987ce4cb1f4deaf4f942dccfdb766ed38217c596aeaac4cc3b2d4aa دست خواهید یافت.

با وارد کردن my name is Jack. تابع هش یک ورودی متفاوت را به شما ارائه خواهد داد که برابر است با:

۴c4f8a7772915dc152a906edc79ca11ec800421eed2e18874f594189ecd05138

همان‌طور که می‌بینید تنها با اضافه کردن یک نقطه به انتهای جمله، هش جمله یا به عبارتی خروجی تابع هش رمزنگاری به طور کامل تغییر کرد.

این ویژگی بسیار مهم است، و در مواقعی که صحت و اعتبارسنجی رمزعبور را بخواهیم انجام دهیم به کمک ما خواهد آمد.

فرض کنید که شما در یک وبسایت ثبت نام کرده‌اید و قصد ورود به حساب کاربری خود را دارید. در این صورت تنها با وارد کردن رمزعبور خود به صورت دقیق حق ورود به حساب کاربری خود را دارید.

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

این مطلب را حتما بخوانید:  کشت سود چیست؟ معرفی 7 تا از پلتفرم های معروف آن

منحصر به فرد بودن هش

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

معرفی شناخته شده‌ ترین توابع هش

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

MD5

MD که کوتاه ‌شده‌ عبارت Message Digest است و هش ۱۲۸ بیتی را تولید می‌کند. با اینکه امروزه خیلی مورد اعتماد نیست اما هنوز هم در سیستم‌های مختلف از این تابع هش استفاده می‌شود.

سیستم رمزعبور کاربران در وردپرس از این تابع استفاده می‌کند. برای ایمن بودن از دستیابی به رمزعبور از کاربران خواسته می‌شود که رمزهای ساده‌ای که به راحتی حدس زده می‌شوند استفاده نکنید. به عبارتی از آنها خواسته می‌شود که به رمز ساده خود نمک اضافه کنند تا دسترسی به رمز عبور آنها سخت شود.

SHA

SHA کوتاه شده‌ عبارت Secure Hash Algorithm است. SHA-0 که اولین الگوریتم این تابع است در سال ۱۹۹۳ طراحی شد. SHA-1 یک تابع هش ۱۶۰ بیتی نسخه‌ برطرف شده‌ ایرادات SHA-0 به حساب می‌آید.

SHA-2 شامل ۶ تابع SHA-224، SHA-256، SHA-384، SHA-512، SHA-512/224 و SHA-512/256است.

در بلاک چین بیت کوین از الگوریتم SHA256 استفاده می‌شود.

SHA-3 در سال ۲۰۱۲ طراحی و در سال ۲۰۱۵ منتشر شد.

RIPEMD

الگوریتم RIPEMD مجموعه‌ای از توابع هش است. این الگوریتم شباهت زیادی با الگوریتم MD4 دارد، اما از نظر عملکرد به الگوریتم SHA-1 شباهت دارد.

Whirlpool

الگوریتم ویرپول در سال ۲۰۰۰ طراحی شد. این تابع هش ۵۱۲ بیتی است و تا کنون ۳ نسخه WHIRLPOOL، WHIRLPOOL-T WHIRLPOO از آن منتشر شده است.

سخن آخر

سعی ما بر این بود تا با زبانی ساده هش رمزنگاری را شرح دهیم. مطمئنا با مطالعه این مطلب و مطالب دیگر بسیاری از سوالات شما جواب داده خواهد شد و ابهامات درون ذهن شما از بین می‌روند.

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

چطور با تخفیف کارمزد در صرافی های ارز دیجیتال ثبت نام کنیم؟

نام صرافی تخفیف کارمزد IP خارج از ایران لینک ثبت نام
کوینکس
دارد نیاز دارد ثبت نام با تخفیف کارمزد
کوکوین دارد نیاز دارد ثبت نام با تخفیف کارمزد
بیت پین
دارد نیاز ندارد ثبت نام با تخفیف کارمزد
نوبیتکس دارد نیاز ندارد ثبت نام با تخفیف کارمزد
بیت ۲۴
دارد نیاز ندارد ثبت نام با تخفیف کارمزد
 آبان تتر
دارد نیاز ندارد ثبت نام با تخفیف کارمزد

توجه: با وجود اینکه دو صرافی کوینکس و کوکوین هر دو فعلا بدون نیاز به تغییر IP فعالیت می‌کنند اما بهتر است برای امنیت بیشتر از IP ثابت خارج از ایران استفاده کنید.

برای ورود به صرافی کوینکس حتما باید با IP خارج از ایران وارد شوید.

۵/۵ (۱ امتیاز)
ترتیبی که برای خواندن مقالات" مفاهیم تخصصی ارزهای دیجیتال "به شما پیشنهاد می‌کنیم:
دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

ترتیبی که برای خواندن مقالات مربوطه به شما پیشنهاد می‌کنیم: