آموزش تابع هش (Hash Function) به زبان ساده

اولین چیزی که احتمالا با شنیدن کلمه هش به ذهن خطور میکند، رمزنگاری، ارز دیجیتال یا بیت کوین است. اما حقیقت چیز دیگری است. هشینگ عملیاتی است که طی آن از یک ورودی دلخواه، یک خروجی با اندازه ثابت تولید میشود. این کار توسط فرمولهای ریاضی خاصی به نام تابع هش انجام میشود و به کل این فرایند هشینگ میگویند.
در این مقاله سعی کردهایم مفهوم تابع هش را به زبانی ساده تشریح کنیم و شما را با اهمیت هشینگ آشنا سازیم. در ادامه با ویژگیهای تابع هش آشنا میشویم، عملکرد نوع خاصی از تابع هش به نام تابع هش رمزنگاری را بررسی میکنیم و نگاهی هم به نقش تابع هش در فرآیند استخراج در بلاک چین بیت کوین میاندازیم. پیشنهاد میکنیم تا پایان ما را همراهی کنید.
هشینگ به چه معناست؟
«هشینگ» (Hashing) فرایندی است که ورودیهای دلخواه را به خروجیهایی با اندازه ثابت تبدیل میکند. الگویتمی که این کار را انجام میدهد «تابع هش» (Hash Function) نام دارد. درست است که تابع هش کاربرد زیادی در دنیای رمزنگاری دارد، اما باید بدانیم که تمام توابع هش مخصوص رمزنگاری نیستند.
یکی از توابع هش معروف، «تابع هش رمزنگاری» (Cryptographic Hash Function) نام دارد که از آن در طراحی و پیادهسازی پروژههای دنیای ارزهای دیجیتال استفاده زیادی میشود. در قسمتهای بعدی این مقاله بیشتر در مورد این تابع صحبت میکنیم. بلاک چینها و سایر سیستمهای توزیعشده توانستهاند به کمک قابلیتهای این توابع، یکپارچگی و امنیت اطلاعات را تا سطح قابلتوجهی افزایش دهند.
تمام انواع توابع هش عملکردی قطعی و ثابت دارند. یعنی تا زمانی که ورودی یکسانی به آنها داده شود، خروجی هش یا همان «مقدار هش» (Hash value) تغییری نخواهد کرد.
ارزهای رمزنگاریشده از نوعی تابع هش یکطرفه استفاده میکنند؛ به این معنی که الگوریتم مورد استفاده آنها را نمیتوان بهراحتی معکوس کرد. به بیان سادهتر، تولید یک خروجی هش از ورودی کار آسانی است، اما برعکس این کار بسیار دشوار است و نمیتوان بهراحتی از خروجی هش به مقدار اولیه رسید. بهطور کلی هرچه پیدا کردن مقدار اولیه از خروجی هش کار سختتری باشد، امنیت الگوریتم هش بیشتر خواهد بود.