هش Hash در بلاک چین چیست؟
هش در بلاک چین چیست؟
هش Hash یا توابع درهم سازی یکی از توابع و مکانیزم هایی است که در سیستم های رمزنگاری اطلاعات مثل بلاک چین در کاربردهای مختلف بسیار با اهمیت است. در واقع هش در بلاک چین یکی از عناصر اصلی تشکیل دهنده سیستم ها و پروتکل های رمزنگاری است. از این رو لازم است تا قبل از ورود به مباحث رمزنگاری و ارزهای دیجیتال، آشنایی کافی با این مکانیزم حاصل شود.
تعریف تابع هش
تابع هش از یک ورودی با طول متغیر (و بدون محدودیت) از اطلاعات، یک خروجی درهم سازی شده و با طول ثابت تولید می کند.
خروجی بصورت یک رشته درهم سازی شده و ناخوانا است که به آن Message Digest گفته می شود. همانگونه که در شکل فوق می بینید مهم نیست طول رشته ورودی چقدر باشد، در نهایت یک خروجی با طول ثابت حاصل خواهد شد. پس خروجی یک رشته از حروف و اعداد ناخوانا است. آیا می توانید حدس بزنید خروجی هش زیر از چه ورودی ایجاد شده است؟!
ec85e70b019d8220756f40e4a8893f429153f3b7b5bbf5d5b3cb0e9ebc50a6ac
نکته: به ازای کوچکترین تغییری در ورودی، خروجی تابع هش به کلی متفاوت خواهد شد. به مثال زیر توجه نمایید:
همانطور که در شکل مشاهده نمودید تنها با تغییر حرف T به t از کلمه اول، یک خروجی هش کاملا متفاوت ایجاد شده است.
مثال کاربردی: امضای دیجیتال Digital Signature
یک کاربرد جالب از تابع هش، در امضای دیجیتال است. برای مثال فرض کنید که شما یک سند مهم دارید و می خواهید آن را برای کسی بفرستید و در عین حال می خواهید مطمئن شوید که این سند دست نخواهد خورد و تغییری در آن صورت نخواهد گرفت. کافیست که شما سند خود را با یکی از مکانیزم های رایج هش کرده و هش خروجی را به همراه سند برای طرف مقابل ارسال نمایید.
طرف مقابل نیز پس از دریافت سند می تواند با اطمینان یک بار دیگر هش آن را محاسبه کرده و با هش ارسالی از شما مقایسه کند و چنانچه هر دو هش برابر بودند اطمینان می یابد که این سند همانی است که شما برای او فرستاده اید و کوچکترین تغییری در آن حاصل نشده است.
به این مکانیزم عدم تغییر در محتویات Tamper resistance mechanism گفته می شود.
گستره وسیعی از تنوع توابع هش
امروزه توابع هش متنوعی برای کاربردهای مختلف وجود دارد و تعدادی از آنها در تکنولوژی های رمزنگاری مورد استفاده واقع شده است. از این تعداد نیز نمونه هایی به علت پیشرفت تکنولوژی در شکستن آنها و همچنین ضعف های امنیتی کنار گذاشته شده اند. به عنوان مثال MD5 یکی از این توابع است که امروزه در کاربردهای حساس دیگر استفاده نمی شود. در جدول زیر چند نمونه از این توابع و طول هرکدام ارائه شده است. هر یک از این موارد مکانیزم متفاوتی برای محاسبه هش خروجی دارند.
سه مشخصه ویژه تابع هش
حال که با تعریف تابع هش آشنا شدیم، به تشریح سه خاصیت مهم تابع هش میپردازیم. این مشخصات عبارتند از:
- تناظر بین ورودی و خروجی – Collision Resistance
- مخفی سازی – Hiding
- مقاوم در برار حدس زدن مقدار ورودی – Puzzle Friendliness
تناظر بین ورودی و خروجی – Collision Resistance
این خاصیت بیان می کند که یافتن ورودی متفاوت دیگری که همان مقدار هش را تولید کند غیر ممکن است. به زبان ریاضی، نمی توان دو عدد x و y را پیدا کرد به طوری که x≠y باشد اما هش آنها یکسان شوند یعنی Hx=Hy
توجه به این نکته حائز اهمیت است که این خاصیت نمی گوید چنین x و y وجود ندارد، بلکه می گوید پیدا کردن این دو مقدار غیر ممکن است. از نظر ریاضی به علت اینکه x و y از یک مجموعه بزرگتر انتخاب می شوند و خروجی هش از مجموعه کوچکتری است، چنین اعدادی وجود دارد، اما پیدا کردن آن نیاز به صرف زمان نجومی دارد که عملا غیر ممکن است.
متدها و الگوریتم های ریاضی هش به گونه ای است که پیدا کردن x و y با خاصیت فوق بسیار بسیار سخت و مستلزم صرف زمان بسیار طولانی
است. لذا می توان عملا آن را غیر ممکن نامید.
منبع : این مطلب برگرفته از مقاله ارزشمند هش به زبان ساده نوشته جناب آقای حمیدرضا عسگری است.
مطالب زیر را حتما مطالعه کنید
1 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
بسیار خوب بود