Hash چیست
هش یا Hash یک تابع رمزنگاری است که یک ورودی را به یک خروجی ثابت با طول ثابت تبدیل میکند. خروجی این تابع، که به عنوان مقدار هش یا هش کد شناخته میشود..
Hash چیست ؟
هش (Hash) یک تابع رمزنگاری است که یک ورودی را به یک خروجی ثابت با طول ثابت تبدیل میکند. خروجی این تابع، که به عنوان مقدار هش یا هش کد شناخته میشود، برای ورودی مشخصی تکرارپذیر است، یعنی برای هر ورودی مشخص همواره همان مقدار هش تولید میشود.
تابع هش برای استفاده در محاسبات رمزنگاری و امنیت اطلاعات بسیار مفید است. برخی استفادههای اصلی تابع هش عبارتند از:
-
تأیید اصالت داده: با مقایسه هشهای دو ورودی مختلف، میتوانیم تشخیص دهیم که آیا دادهها تغییر کردهاند یا خیر. در این صورت، تغییر در مقدار هش باعث میشود تا تأیید اصالت داده رد شود.
-
ذخیره سازی امن رمزها: برای ذخیره رمزها در سیستمهای امن، معمولاً مقدار هش رمز به جای رمز اصلی ذخیره میشود. این کار امکان مقایسه رمزها را بدون نیاز به ذخیره کلمات عبور اصلی فراهم میکند.
-
امضای دیجیتال: تابع هش به عنوان یک قسمت از روشهای امضای دیجیتال مورد استفاده قرار میگیرد. در اینجا، متن اصلی با استفاده از تابع هش به صورت متن هش شده تبدیل میشود و سپس با استفاده از کلید خصوصی موجود در الگوریتم امضای دیجیتال، امضا میشود.
توجه کنید که تابع هش یکطرفه است، یعنی از خروجی مقدار هش نمیتوان به ورودی اصلی بازگشت کرد. این یک قانون کلی است اما با روش هایی وجود دارد که هش ها را کرک نمود ، باید توجه داشته باشید که اگر فرد یا سازمانی به خوبی اصول امنیت را بداند می توان تقریباً آسیب پذیری های هش را پوشش داد.
به عنوان خصوصیت های مهم در توابع هش میتوان به موارد زیر اشاره کرد:
-
یکتایی: هر ورودی منحصر به فرد باید به یک مقدار هش یکتا منتهی شود. یعنی برای هر ورودی متفاوت، مقدار هش نیز باید متفاوت باشد.
-
مقدار ثابت: برای هر ورودی خاص، مقدار هش تولید شده باید همواره یکسان باشد. یعنی تابع هش باید برای هر بار اجرا با ورودی یکسان، همان مقدار هش را تولید کند.
-
بیبرگشتی: نباید بتوان از مقدار هش به صورت برگشتی به ورودی اصلی بازگشت کرد. یعنی بر اساس مقدار هش، نباید بتوان مقدار ورودی را بازسازی کرد.
-
انتزاعی: حتی با تغییرات کوچک در ورودی، مقدار هش باید به شدت تغییر کند. این به این معنی است که حتی با تغییر یک بیت در ورودی، باید تقریباً کل بیتهای مقدار هش تغییر کنند.
توابع هش معروفی مانند MD5، SHA-1، SHA-256 و SHA-3 وجود دارند. اما برخی از توابع هش قدیمیتر ممکن است به دلایل امنیتی منسوخ شده باشند و استفاده از توابع هش بسیار قویتر توصیه میشود.
دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)