
برای این که تابع هش یک ابزار موثر رمزنگاری باشد، بایستی شرایط زیر را برآورده کند:
شرط اول
این شرط بیان میکند که تابع هش باید یک تابع یکطرفه باشد.
به بیان دیگر اگر یک تابع هش h یک مقدار هش z را تولید کرد، پیدا کردن یک مقدار x که هش آن با z یکی شود، بایستی فرآیند دشواری باشد.
این خاصیت باعث محافظت از پیدا کردن مقدار ورودی هش توسط حمله کنندهای میشود که مقدار هش را در اختیار دارد.
شرط دوم
اگر یک ورودی و هش آن را در اختیار داشته باشیم، پیدا کردن یک ورودی متفاوت که همان مقدار هش را بدهد، بایستی دشوار باشد.
به بیان دیگر اگر یک تابع هش h برای یک ورودی x، یک مقدار هش (h(x را بدهد، پیدا کردن مقدار ورودی دیگری که (h(y) = h(x شود، بایستی دشوار باشد.
این ویژگی باعث میشود در برابر حمله کنندهای که یک مقدار هش ورودی و هش آن را دارد و میخواهد یک مقدار متفاوت را به عنوان مقدار ورودی اصلی جایگزین آن کند، محافظت شود.
شرط سوم
پیدا کردن دو ورودی متفاوت با هر طولی که منجر به یک هش مشابه شود، بایستی دشوار باشد. این ویژگی با عنوان «تابع هش بدون تصادم» نیز شناخته میشود.
به بیان دیگر برای یک تابع هش h، پیدا کردن دو ورودی متفاوت x و y به طوری که (h(x) = h(y شود، باید دشوار باشد.
چون تابع هش یک تابع فشردهساز با خروجی ثابت است، نداشتن تصادم برای آن غیرممکن است. این ویژگی تنها بیان میکند که پیدا کردن این تصادمها باید بسیار سخت باشد.
نظرات (0)
به یوزبیت؛ خانه محتوا خوش آمدید
یوزبیت، به نویسندگان مستقل این امکان را میدهد که رایگان تولید محتوا کنند و با کمک هوش مصنوعی، محتوای خود را به صورت مؤثر به مخاطبان نمایش دهند.
سایر مقالات نویسنده
جدیدترین مقالات
درباره ما . راهنما . اطلاعیهها . آپدیتها . قوانین . ارتباط با ما
کلیه حقوق این سایت برای یوزبیت محفوظ میباشد.