حمله روز تولد
حمله روز تولد یک نوع از حملات رمزنگاری است که از محاسبات ریاضی مسئله تاریخ تولد در تئوری احتمال استفاده میکند. این حمله میتواند جهت سواستفاده بین ارتباطاتی که دو یا چند قسمت با هم دارند مورد استفاده قرار بگیرد. انجام حمله و موفقیت آن به تصادمهایی که بین حملات تصادفی رخ میدهد بستگی دارد. این گونه حملات سعی دارند در جایگشتی قرار بگیرند همانطوری که در مسئله روز تولد توصیف شدهاست.
فهمیدن مسئله (مسئله روز تولد)
به عنوان یک مثال به سناریوی که یک معلم یک کلاس ۳۰ نفره از دانش آموزانش در مورد روز تولد آنها سؤال میکند توجه کنید. مشخص کنید آیا دو دانشجو که تاریخ تولد یکسان دارند وجود دارد. به طور حسی این شانس ممکن است کمتر اتفاق بیفتد. اگر معلم یک روز خاص را تعیین کند (مثلاً ۱۳ اسفند) احتمال اینکه حداقل یکی از دانشآموزان در آن روز متولد شده باشد برابر است با
ریاضیات
یک تابع f مفروض است هدف از حمله پیدا کردن دو ورودی متفاوت X1 , x2 میباشد بهطوری که
و با قرار دادن احتمال ۰٫۵ برای تصادم به رابطه زیر میرسیم:
با استفاده از(Q(H اعدادی را انتخاب میکنیم قبل از اینکه اولین تصادم اتفاق بیفتد این عدد با رابطه زیر تخمین زده میشود:
به عنوان مثال اگر از یک هش ۶۴ بیتی استفاده شود بهطور تخمینی ۱٫۸ × ۱۰۱۹خروجی متفاوت خواهیم داشت. اگر همه این موارد احتمال برابر داشته باشند بهطور تخمینی خروجی متفاوت حدود ۵٫۱ × ۱۰۹ خواهد بود که تلاش میکند با یکbrute force تصادم تولید کند به این مقدار محدوده روز تولد میگویند. و برای n بیت کد، 2n/2 محاسبه صورت گرفته است.
Bits Possible outputs
(rounded)(H)Desired probability of random collision
(rounded) (p)۱۰ ۱۰ ۱۰ ۱۰ ۱۰ ۰٫۱% ۱% ۲۵% ۵۰% ۷۵% ۱۶ ۶٫۶ × ۱۰ ۲ ۲ ۲ ۲ ۲ ۱۱ ۳۶ ۱٫۹ × ۱۰ ۳٫۰ × ۱۰ ۴٫۳ × ۱۰ ۳۲ ۴٫۳ × ۱۰ ۲ ۲ ۲ ۲٫۹ ۹۳ ۲٫۹ × ۱۰ ۹٫۳ × ۱۰ ۵٫۰ × ۱۰ ۷٫۷ × ۱۰ ۱٫۱ × ۱۰ ۶۴ ۱٫۸ × ۱۰ ۶٫۱ ۱٫۹ × ۱۰ ۶٫۱ × ۱۰ ۱٫۹ × ۱۰ ۶٫۱ × ۱۰ ۱٫۹ × ۱۰ ۶٫۱ × ۱۰ ۳٫۳ × ۱۰ ۵٫۱ × ۱۰ ۷٫۲ × ۱۰ ۱۲۸ ۳٫۴ × ۱۰ ۲٫۶ × ۱۰ ۸٫۲ × ۱۰ ۲٫۶ × ۱۰ ۸٫۲ × ۱۰ ۲٫۶ × ۱۰ ۸٫۳ × ۱۰ ۲٫۶ × ۱۰ ۱٫۴ × ۱۰ ۲٫۲ × ۱۰ ۳٫۱ × ۱۰ ۲۵۶ ۱٫۲ × ۱۰ ۴٫۸ × ۱۰ ۱٫۵ × ۱۰ ۴٫۸ × ۱۰ ۱٫۵ × ۱۰ ۴٫۸ × ۱۰ ۱٫۵ × ۱۰ ۴٫۸ × ۱۰ ۲٫۶ × ۱۰ ۴٫۰ × ۱۰ ۵٫۷ × ۱۰ ۳۸۴ ۳٫۹ × ۱۰ ۸٫۹ × ۱۰ ۲٫۸ × ۱۰ ۸٫۹ × ۱۰ ۲٫۸ × ۱۰ ۸٫۹ × ۱۰ ۲٫۸ × ۱۰ ۸٫۹ × ۱۰ ۴٫۸ × ۱۰ ۷٫۴ × ۱۰ ۱٫۰ × ۱۰ ۵۱۲ ۱٫۳ × ۱۰ ۱٫۶ × ۱۰ ۵٫۲ × ۱۰ ۱٫۶ × ۱۰ ۵٫۲ × ۱۰ ۱٫۶ × ۱۰ ۵٫۲ × ۱۰ ۱٫۶ × ۱۰ ۸٫۸ × ۱۰ ۱٫۴ × ۱۰ ۱٫۹ × ۱۰
به راحتی خروجیهای یک تابع توزیع یکنواخت دیده میشود بنابراین یک تصادم یافت میشود حتی سریعتر نیز این اتفاق میافتد. مفهوم تعادل در یک تابع hash، مقدار مقاومت تابع در برابر حمله روز تولد را تعیین میکند و اجازه میدهد تا آسیبپذیری از رشته hashهای رایج مانند MD و SHA تخمین زده شود.
حساسیت امضای دیجیتال
امضای دیجیتال میتواند مستعد برای یک حمله روز تولد باشد پیام m بهطور خاصی توسط اولین محاسبه
او نسخه عادلانه و صحیح را برای امضا به مسعود ارائه میکند، پس از اینکه او امضا کرد وحید امضا نمودن آن را قرارداد جعلی الصاق میکند. این امضا پس از آن ثابت میکند که مسعود قرارداد جعلی را امضا کردهاست. احتمالات کمی متفاوت از مسئله اصلی روز تولد است، چرا که وحید دو قرارداد عادلانه یا دو قرارداد جعلی با یک HASH یکسان بدست نیاوردهاست.
استراتژی وحید تولید کردن یک زوج قرارداد عادلانه و یک زوج قرارداد جعلی است. مسئله روز تولد معادلهای که n یک عدد زوج میباشد را میپذیرد. تعداد hashهایی که وحید تولید کردهاست برابر
برای جلوگیری از این حمله، طول خروجی تابع hash استفاده شده برای طرح امضا میتواند به اندازه کافی بزرگ انتخاب شود تا اینکه حمله روز تولد با محاسباتی عملی نشود به این معنی که حدود دو برابر بیتهایی که مورد نیاز است برای جلوگیری از حمله brute force استفاده شود به عنوان مثال برای یک الگوریتم که از حمله روز تولد برای محاسبه الگوریتم گسسته استفاده میشود میتوان به Pollard's rho algorithm for logarithms اشاره کرد. حمله روز تولد اغلب به عنوان یک ضعف موجود در سیستمهای DNS اینترنت بحث میشود.