علاقه مندان به بحث های امنیت اطلاعات بارها با اصطلاحاتی نظیر هش Hash و Hashing مواجه شده اند، در این مطلب به صورت مختصر توضیحاتی درباره اینکه هش و هشینگ چیست و چه کاربردی دارد ارائه خواهیم کرد.
هش (Hash) یک کنترل یا کلیدواژهی 128 بیتی است. هش مانند اثر انگشت عمل میکند.
Hashing روشی است که برای بررسی یکپارچگی دیتا از آن استفاده می شود. Hash یک تابع یکطرفه است به این معنی که اگر دو کامپیوتر متفاوت یک دیتا را دریافت کنند و یک تابع hash یکسان را روی آن اجرا کنند باید مقدار hash یکسانی را بدست آورند. امکان ندارد که شما یک hash یکسان را از بلوک های دیتا متفاوت بدست آوردید. که به آن collision resistance گفته می شود. خروجی Hash کوچک و با اندازه ثابت می باشد که به آن digest ، message digest یا simply the hash گفته می شود.
یک مثال از استفاده hash برای بررسی یکپارچگی دیتا این است که فرستنده یک الگوریتم Hash را برای هر بسته از دیتا اجرا می کند و نتیجه را به بسته متصل می کند. دریافت کننده بسته همان hash را روی بسته دریافتی اجرا می کند و نتیجه بدست آمده را با خروجی hash که فرستنده ارسال کرده است مقایسه می کند. اگر مقایسه یکی بود به این معناست که بسته در حین ارسال تغییری نداشته و سالم به مقصد رسیده است. اگر یک بیت از بسته ارسالی تغییر کند hash مقصد با hash ارسالی توسط مبدا متفاوت خواهد بود و مقصد متوجه خواهد شد که بسته مشکل دارد.
مشهورترین روش های hash به شرح زیر هستند :
- (Message digest 5 (MD5 :در این الگوریتم digest ایجاد شده 128 بیتی است.
- (Secure Hash Algorithm 1 (SHA-1 :در این الگوریتم digest ایجاد شده 160 بیتی است.
- (Secure Hash Algorithm 2 (SHA-2 :در این الگوریتم digest ایجاد شده می تواند بین 224 تا 512 بیت باشد.
در روش های hashing نیز همانند بحث Encryption مقدار بزرگتر نشان دهنده امنیت بیشتر است.