رمزهای عبور – محاسبه آنتروپی با استفاده از md5sum، sha256sum و غیره

TL؛ DR: فرمول شما بسیار ساده است.


بنابراین مسئله این است که چرا "" دارای یک آنتروپی است اگر 0 با فرمول شما باشد، اما MD5 ("") دارای صفر نیست.

همانطور که قبلا در نظرات گفته شد، فرمول شما فقط در صورتی کار میکند که داده کاملا تصادفی باشد توزیع یکنواخت، تمام بیت های مستقل و غیره)
مثال برای مورد تصادفی: محاسبه پین ​​شما با 4 رقم بین 0 و 9.
اما اگر به عنوان مثال. مقداري که مي تواند 2222 يا 7777 باشد و هيچ چيز ديگر، آنتروپي تنها يک بيت است. هنوز 4 رقم وجود دارد، اما اکثر اعداد 4 رقمی امکان پذیر نیست، بنابراین فرمول شما دیگر کار نمی کند.

همان کاری است که برای هش شما انجام می شود – هش کردن یک رشته طول 0 دقیقا یک خروجی دارد، همیشه یکسان است. 256 ^ 16 امکاناتی که هشهای 16 بایت می توانند داشته باشند.

یک فرمول بهتر:

H (X) = sum (-p [i] * log2 p [i])

جایی که p [i] احتمال مقدار ممکن i-th (رقم و غیره، اما مقدار – PIN شما دارای 9999 مقدار ممکن است، و هر یک دارای احتمال خود).

با استفاده از این فرمول و تنها یک مقدار ممکن هش، شما 0 نیز دریافت می کنید.


به طور کلی، یک هش مثل این هرگز نمیتواند آنتروپی را افزایش دهد. این ممکن است همان یا کمتر از مقدار اصلی باشد (به خصوص اگر داده ها طولانی تر از هش باشد، یعنی هش دارای مقادیر کمتر است)

هش – چندین داده کوچک (کمتر از 15 کیلوبایت) چگونه امن هستند؟

من می دانم که برخورد برای md5 از دهه 90 مستند شده است و گواهینامه دیجیتال مبتنی بر MD5 در سال 2010 به طور کامل به خطر افتاده است، اما تا چه حد موثر است md5 در حصول اطمینان از اینکه مقادیر کوچکی از داده ها دستکاری نشده است ؟

من چند فایل متنی کوچک دارم که چندین اندازه دارند (بگو با اندازه 15 کیلوبایت). من از sha256 استفاده کردم، اما خیلی راحت می توانم از md5 استفاده کنم.

من سعی می کنم بدانم چگونه md5 امن خواهد بود به عنوان هگز هش برای این فایل های متنی 15kb کوچک؟ آیا یک حزب مخرب قادر به ایجاد چنین تصادفی برای داده های کوچک می باشد یا اینکه اندازه کوچک این تلاش را دشوار می کند؟