هش کردن یا هشینگ چیست؟
هشینگ به فرایند تولید یک خروجی در اندازه ثابت از ورودی با اندازه متغیر اطلاق میشود. این کار با استفاده از فرمولهای ریاضی معروف به توابع هش (که تحت عنوان الگوریتمهای هشینگ شناخته میشوند) صورت میگیرد. اگرچه همه توابع هش رمزنگاری را شامل نمیشود، اما در اصطلاح رمزنگاری در هستههای ارزی توابع هش قرار داده شده است. به لطف آنها، blockchain ها و دیگر سیستمهای توزیع شده قادر به دستیابی به سطح قابل توجهی از یکپارچگی و امنیت دادهها هستند. هر دو عملکرد هش مرسوم و تعیینکننده هستند. قطعی بودن بدان معنیست که تا زمانی که ورودی تغییر نکند، الگوریتم هشینگ همیشه همان خروجی را تولید مینماید(که به عنوان هشینگ یا هش نیز شناخته میشود). البته از آن به عنوان هش کردن نیز یاد میشود.
به طور معمول، الگوریتمهای هشداردهنده cryptocur به عنوان توابع یک طرفه طراحی شدهاند، به این معنی که بدون استفاده از مقادیر زیاد از زمان و منابع محاسباتی، به راحتی قابل بازگشت نیستند. به عبارت دیگر، ایجاد خروجی از ورودی بسیار آسان است، اما رفتن در جهت مخالف (برای تولید ورودی فقط از خروجی) دشوار است. به طور کلی، هرچه پیدا کردن ورودی سخت تر باشد، الگوریتم هشینگ ایمنتر به نظر میرسد. با توجه به این توضیحات مطمئنا سوالات زیادی در ذهنتان به وجود آمده، از همینرو در ادامه مقاله توضیحاتی در این راستا خدمت شما ارائه خواهیم داد.
هش کردن چگونه است؟
عملکردهای مختلفی از هش کردن منتشر شده که خروجیهایی در اندازههای مختلف تولید میکند، اما اندازههای خروجی احتمالی برای هر الگوریتم هشینگ همیشه ثابت است. به عنوان مثال، الگوریتم SHA-256 فقط میتواند خروجیهای 256 بیتی تولید کند، در حالی که SHA-1 همیشه یک هش 160 بیتی تولید میکند. بیایید برای نشان دادن، کلمات “Binance” و “Binance” از الگوریتم hasting SHA-256 (همان مورد استفاده در Bitcoin) استفاده کنیم.
توجه داشته باشید که با تغییر جزئی (پوشش حروف اول) مقدار هش کردن کاملاً متفاوتی را مشاهده میکنید. اما از آنجا که ما از SHA-256 استفاده میکنیم، خروجیها صرفنظر از اندازه ورودی، همیشه اندازه ثابت 256 بیت (یا 64 کاراکتر) را دارند. همچنین، مهم نیست که چند بار این دو کلمه را از طریق الگوریتم اجرا کنیم، این دو خروجی ثابت خواهند بود. برعکس، اگر ورودیهای مشابه را از طریق الگوریتم هشینگ SHA-1 اجرا کنیم، نتایج زیر را خواهیم داشت:
قابل ذکر است، منظور از SHA، همان الگوریتمهای Secure Hash است. این به مجموعهای از توابع هش رمزنگاری شده اشاره دارد که شامل الگوریتمهای SHA-0 و SHA-1 به همراه گروههای SHA-2 و SHA-3 میباشد. SHA-256 نیز بخشی از گروه SHA-2، همراه با SHA-512 و… میباشد. دقت داشته باشید که در حال حاضر، فقط گروههای SHA-2 و SHA-3 امن در نظر گرفته میشوند.
توابع هش رمزنگاریشده
به طور معمول که در هش کردن از تکنیکهای رمزنگاری استفاده میشود، این امکان وجود دارد که از آن تحت عنوان عملکرد هشینگ رمزنگاری شده نیز یاد شود. به طور کلی، شکستن یک عملکرد هش رمزنگاری نیاز به تلاش بیوقفه دارد. برای این که شخص بتواند یک عملکرد هش رمزنگاری را برگرداند، باید تا زمانی که خروجی مربوطه تولید شود، حدس بزند که ورودی آزمایشی و خطا چیست. با این وجود، امکان ورود، ورودیهای مختلف نیز وجود دارد که دقیقاً همان خروجی را تولید میکنند، در این صورت “برخورد” اتفاق میافتد. از نظر فنی، یک عملکرد هش رمزنگاری باید سه ویژگی را دنبال کند تا ایمن در نظر گرفته شود. هرچند که سایت امن اس اس ال ( Amnssl.com) در راستای ایمنکردن سایت شما راهکارهایی دارد. اما ممکن است در برابر برخورد مقاومت کنند. این ویژگی عبارتند از:
- مقاومت در برابر برخورد: غیرقابل دسترسی برای یافتن هر دو ورودی مجزا که همان هش خروجی را تولید میکنند.
- مقاومت پیش نمایش: غیرفعال کردن برای برگرداندن عملکرد هش (ورودی را از یک خروجی معین پیدا کنید).
- مقاومت پیش نمایش دوم: غیرقابل دسترسی برای یافتن ورودی دوم که با یک ورودی مشخص برخورد میکند.
مقاومت در برابر برخورد
همانطور که گفته شد، برخورد هنگامی اتفاق میافتد که ورودیهای مختلف، هش کردن مشابه را انجام دهند. بنابراین، یک تابع هش تا زمانی که کسی درگیری پیدا کند، از خود در برابر برخورد مقاومت نشان میدهد. توجه داشته باشید که برخورد برای هر عملکرد هش همیشه وجود خواهد داشت زیرا ورودیهای احتمالی بینهایت هستند، در حالی که خروجیهای ممکن محدود میباشند. بنابراین علیرغم اینکه کارکرد هش عاری از برخورد نمیباشد، برخی از آنها به اندازه کافی قوی هستند که باید مقاوم در نظر گرفته شوند. (به عنوان مثال SHA-256). در بین الگوریتمهای مختلف SHA، گروههای SHA-0 و SHA-1 دیگر امن نیستند زیرا تصادفات پیدا شده است. در حال حاضر، گروههای SHA-2 و SHA-3 در برابر برخورد مقاوم در نظر گرفته میشوند.
مطالب زیر را حتما بخوانید:
چنانچه دیدگاهی توهین آمیز باشد و متوجه اشخاص مدیر، نویسندگان و سایر کاربران باشد تایید نخواهد شد. چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد. چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد. چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد. چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.
نظرات کاربران