مثالی برای توضیح فایدهء key stretching

فرض کنید یک گاو صندوقی که توش اسناد محرمانهء مهمی هست میتونه رمز از عدد 3 رقمی تا عدد 20 رقمی داشته باشه.
و فرض کنید گاوصندوق به هر مدتی که دزد بخواد تحت اختیارش هست تا اون رو باز کنه. ولی فقط باید رمزش رو پیدا کنه و حق نداره/نمیتونه از روش دیگری برای باز کردنش استفاده کنه.
و یک دزد میتونه در هر 3 ثانیه یک رمز رو چک کنه (برای سادگی مثال، زمان چک کردن اعداد با تعداد ارقام مختلف رو یکسان فرض میکنیم).
حالا…
اگر پسورد 3 رقمی باشه، دزد میتونه از 000 تا 999 رو در 50 دقیقه چک کنه.
اگر رمز 6 رقمی باشه، حدود 35 روز زمان نیاز داره.
اگر رمز 10 رقمی باشه، به 951 سال وقت نیاز داره.

حالا ما کاری میکنیم که زمان مورد نیاز برای چک کردن هر رمز 1000 برابر بشه (key stretching).
در این صورت…
پیدا کردن رمز 3 رقمی به 35 روز زمان نیاز داره.
رمز 6 رقمی به 96 سال وقت نیاز داره.
رمز 10 رقمی به 951000 سال.

چیزی که میبینیم، رمز قوی 10 رقمی حتی بدون key stretching قابل کرک نبود. چون کسی 951 سال وقت نداره و بعد از این مدت هم محتویات گاوصندوق دیگه کاربرد و اهمیتی نخواهند داشت.
رمز 6 رقمی امن نبود چون با صرف 35 روز میشد اون رو باز کرد، ولی وقتی از key stretching استفاده کردیم این زمان به 96 سال رسید که میتونیم اون رو یک زمان امن فرض کنیم، چون نه برای کسی ممکنه یا صرف میکنه اینهمه زمان صرف کنه و نه بعد از 96 سال اون اسناد به دردی میخورن.
پس key stretching میتونه خیلی از رمزهایی رو که ناامن هستن امن کنه.
اما key stretching نمیتونه رمزهایی رو که خیلی ضعیف و ناامن هستن، مثل رمز سه رقمی، امن کنه. در مثال بالا میبینیم که زمان پیدا کردن رمز 3 رقمی حتی بعد از key stretching برابر با 35 روز هست که زمان عملی و به صرفه ای برای بدست آوردن اسناد محرمانه تلقی میشه.

البته مثال ما خیلی ساده شده بود و سر و تهش رو زده بودیم. ولی برای نشان دادن مفهوم کلی خوبه.
ضمنا معمولا نصف تعداد ترکیب های موجود در یک بازه رو حساب میکنن، چون بطور متوسط با چک کردن نصف ترکیب های یک بازه، رمز پیدا میشه. بهرحال ما فقط یک مثال زدیم و این جزییات در اصل مطلب تفاوتی ایجاد نمیکنن.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>