آسیبپذیری $2^{n/2}$: چرا پارادوکس تولد ثابت میکند یک هش ۲۵۶ بیتی فقط ۱۲۸ بیت امنیت دارد؟
در حالی که یک هش رمزنگاری ۲۵۶ بیتی از نظر ریاضی تعداد نجومی و بیشماری از خروجیهای منحصربهفرد را ارائه میدهد، واقعیت آماری «پارادوکس تولد» امنیت مؤثر آن در برابر تصادم را دقیقاً به نصف این مقدار کاهش میدهد.
به قلم یاسر یوسفی
این خبر را به اشتراک بگذارید
- رمزنگاران نظری
- تمرکز بر مرزهای ریاضی و اثباتهای آماری که محدودیتهای مطلق امنیت الگوریتمی را تعریف میکنند.
- مهندسان سیستم
- اولویت دادن به پیادهسازی عملی استانداردهای رمزنگاری برای ایمنسازی زیرساختهای فعلی در برابر تهدیدات شناختهشده.
- نهادهای استانداردگذاری
- ارزیابی تعادل میان بار پردازشی و امنیت بلندمدت برای الزام پروتکلهای سراسری در سطح صنعت.
دیدگاههایی که این گزارش پوشش نداده
- پژوهشگران محاسبات کوانتومی
- تولیدکنندگان سختافزار
یک مهندس نرمافزار به یک هش رمزنگاری ۲۵۶ بیتی نگاه میکند و دیوار نفوذناپذیری از $2^{256}$ حالت ممکن را میبیند؛ عددی که به مراتب از تعداد اتمهای تخمینزدهشده در جهان قابل مشاهده بزرگتر است. اما یک رمزنگار با نگاه به همان خروجی ۲۵۶ بیتی، تنها ۱۲۸ بیت امنیت واقعی را میبیند؛ آستانهای که خوشههای پردازشی مدرن به طور پیوسته در حال نزدیک شدن به آن هستند. مهندس تصور میکند که برای شکستن سیستم باید یک خروجی خاص را حدس زد، در حالی که رمزنگار میداند برای در هم شکستن این سد، تنها کافی است دو ورودی متفاوت پیدا کرد که خروجی یکسانی تولید کنند.[6]
این تضاد دیدگاه، ریشه در یک سوءتفاهم بنیادین درباره رسالت اصلی توابع هش دارد. یک تابع هش، پیامی با طول دلخواه را دریافت کرده و خروجی با اندازه ثابت تولید میکند. اگر یک مهاجم بخواهد رمز عبور خاصی را از روی هش آن مهندسی معکوس کند، باید یک «حمله پیشتصویر» (preimage attack) را اجرا کند که واقعاً نیازمند جستجو در کل فضای $2^{256}$ است. اما امضاهای دیجیتال و سیستمهای تأیید اسناد به مقاومت در برابر پیشتصویر متکی نیستند؛ تکیهگاه آنها «مقاومت در برابر تصادم» (collision resistance) است.[1][4]
مقاومت در برابر تصادم تابع یک پدیده آماری است که نخستین بار در سال ۱۹۳۹ توسط ریچارد فون میزس (Richard von Mises) فرمولبندی شد، هرچند به هارولد داونپورت (Harold Davenport) در سال ۱۹۲۷ نیز نسبت داده میشود. در نظریه احتمالات، «مسئله تولد» این پرسش را مطرح میکند که چند نفر باید به طور تصادفی در یک اتاق حضور داشته باشند تا احتمال اینکه حداقل دو نفر از آنها روز تولد یکسانی داشته باشند به ۵۰ درصد برسد؟ شهود انسانی به ما میگوید این عدد باید تقریباً نیمی از روزهای سال، یعنی ۱۸۲ نفر باشد.[5]
اما عدد واقعی ۲۳ است. همانطور که در مدخل ریاضیات ویکیپدیا نیز اشاره شده: «پارادوکس تولد یک پارادوکس حقیقی است؛ در نگاه اول غلط به نظر میرسد، اما در واقعیت کاملاً درست است.» دلیل کارکرد این ریاضیات آن است که مقایسهها نه بین یک نفر و بقیه افراد اتاق، بلکه بین تکتک جفتهای ممکن از افراد انجام میشود. با حضور ۲۳ نفر، ۲۵۳ جفت متمایز برای بررسی وجود دارد که همین امر، احتمال را از مرز ۵۰ درصد عبور میدهد.[5]
وقتی این واقعیت آماری در رمزنگاری پیادهسازی میشود، به «حمله تولد» (Birthday Attack) تغییر نام میدهد. در اینجا به جای ۳۶۵ روز سال، «لانههای کبوتر» همان تعداد کل خروجیهای ممکن هش هستند و به جای افراد، «کبوترها» همان اسناد هششدهاند. از آنجا که مهاجم تنها به دنبال یافتن هر دو سندی است که هش یکسانی داشته باشند - نه یک سند خاص با یک هش خاص - تعداد تلاشهای مورد نیاز با جذر کل احتمالات متناسب است.[3][5]
اینجاست که قانون آسیبپذیری $2^{n/2}$ شکل میگیرد. برای هر تابع هش که خروجی $n$ بیتی تولید میکند، یک مهاجم تنها نیاز به محاسبه حدود $2^{n/2}$ مقدار هش دارد تا شانس یافتن یک تصادم به ۵۰ درصد برسد. بنابراین، یک هش ۲۵۶ بیتی دقیقاً ۱۲۸ بیت امنیت مؤثر در برابر تصادم ارائه میدهد. طول فیزیکی خروجی ۲۵۶ بیت است، اما حفاظت ریاضیاتی که فراهم میکند دقیقاً به نصف کاهش مییابد.[1][6]
تبعات این نصف شدن کاملاً عملی و ملموس است. در یک سیستم امضای دیجیتال، کاربر یک سند را هش کرده و آن هش را با کلید خصوصی خود رمزنگاری میکند. اگر مهاجمی بتواند یک سند بیخطر و یک سند مخرب پیدا کند که دقیقاً هش یکسانی تولید کنند، میتواند از کاربر بخواهد نسخه بیخطر را امضا کند. سپس مهاجم امضا را جدا کرده و به سند مخرب میچسباند. از آنجا که هشها یکسان هستند، نرمافزار رمزنگاری این امضای جعلی را کاملاً معتبر و بینقص تشخیص خواهد داد.[3]
در یک سیستم امضای دیجیتال، کاربر یک سند را هش کرده و آن هش را با کلید خصوصی خود رمزنگاری میکند.
اجرای این حمله نیازی به نوشتن دو سند کاملاً متفاوت که به طرز جادویی هش یکسانی تولید کنند، ندارد. مهاجمان میلیونها نسخه تغییریافته و ظریف از هر دو سند را با ایجاد تغییرات نامرئی - مانند افزودن فاصله، تغییر کاراکترهای چاپنشدنی یا دستکاری فرمت - تولید میکنند. آنها تمام نسخههای سند الف و تمام نسخههای سند ب را هش میکنند و به دنبال تنها یک تطابق میان این دو مجموعه میگردند.[3]
تاریخچه رمزنگاری، گورستانی از الگوریتمهایی است که به این ریاضیات احترام نگذاشتند. الگوریتم MD5 که در سال ۱۹۹۲ معرفی شد، یک هش ۱۲۸ بیتی تولید میکرد. مهندسان در آن زمان تصور میکردند انجام $2^{128}$ عملیات کاملاً دور از دسترس است. اما پارادوکس تولد، مقاومت آن در برابر تصادم را به $2^{64}$ عملیات کاهش داد. تا سال ۲۰۰۸، پژوهشگران با موفقیت از یک تصادم MD5 برای جعل یک گواهی SSL استفاده کردند و عملاً مدل اعتماد اینترنت را در هم شکستند.[3][6]
پس از آن، صنعت به سمت SHA-1 حرکت کرد که خروجی ۱۶۰ بیتی و مقاومت نظری $2^{80}$ عملیات در برابر تصادم را ارائه میداد. اما الگوریتمهای رمزنگاری اغلب دارای ضعفهای ساختاری هستند که به مهاجمان اجازه میدهد تصادمها را حتی سریعتر از پیشبینی خالص پارادوکس تولد پیدا کنند. در اول فوریه ۲۰۰۵، بروس اشنایر (Bruce Schneier)، رمزنگار برجسته، هشدار تندی به جامعه امنیتی داد.[2]
اشنایر فاش کرد که تیمی از پژوهشگران راهی برای شکستن SHA-1 در $2^{69}$ عملیات (به جای $2^{80}$ مورد انتظار) پیدا کردهاند. اگرچه $2^{69}$ در آن زمان هنوز حجم عظیمی از توان پردازشی را میطلبید، اما ثابت کرد که این الگوریتم از اساس دارای نقص است. امنیت مؤثر SHA-1 به زیر کف ریاضیاتی خود سقوط کرده بود.[2]
در واکنش به این آسیبپذیریها، مؤسسه ملی استاندارد و فناوری (NIST) در آگوست ۲۰۱۲ سند ویژه 800-107 نسخه ۱ را منتشر کرد. این سند رسماً استفاده از SHA-1 را برای امضاهای دیجیتال منسوخ اعلام کرد و گذار به خانواده SHA-2، با توصیه ویژه به استفاده از SHA-256 و SHA-512 برای برنامههای امن، را الزامی دانست.[1]
مهاجرت به SHA-256 با ارتقای آستانه تصادم به $2^{128}$ عملیات، حاشیه امنیت را بازگرداند. برای درک عظمت عدد $2^{128}$، محدودیتهای فیزیکی محاسبات را در نظر بگیرید. اصل لانداور (Landauer's principle) حداقل انرژی مورد نیاز برای پاک کردن یک بیت اطلاعات را تعیین میکند. حتی اگر یک کامپیوتر در مرز مطلق و نظری بازده ترمودینامیکی کار کند، شمارش تا $2^{128}$ باعث به جوش آمدن اقیانوسها میشود.[1][6]
به همین دلیل است که امروزه ۱۲۸ بیت امنیت مؤثر به عنوان خط پایه رمزنگاری مدرن در نظر گرفته میشود. این میزان، سپری ایجاد میکند که در برابر مقیاسپذیری حملات جستجوی فراگیر با استفاده از سیلیکونهای کلاسیک مصون است. با این حال، قانون $2^{n/2}$ حرف آخر را در امنیت هش نمیزند. چشمانداز ریاضیات در حال آماده شدن برای یک تغییر بنیادین دیگر است.[4][6]
ایستگاه قابل تأیید بعدی برای امنیت رمزنگاری، ظهور محاسبات کوانتومی تحملپذیر در برابر خطا است. درست همانطور که پارادوکس تولد طول بیت مؤثر یک هش را در برابر حملات تصادم کلاسیک نصف میکند، الگوریتم گراور (Grover's algorithm) به یک کامپیوتر کوانتومی اجازه میدهد از فضای جستجوی یک حمله پیشتصویر جذر بگیرد. زمانی که آن سختافزار از راه برسد، امنیت مؤثر یک هش ۲۵۶ بیتی بار دیگر نصف خواهد شد و صنعت را مجبور خواهد کرد تا مهاجرت به استانداردهای ۵۱۲ بیتی را آغاز کند.[6]
نکات کلیدی
- پارادوکس تولد ثابت میکند که یافتن تطابق میان هر دو آیتم تصادفی، به تلاشهای بسیار کمتری نسبت به یافتن یک هدف مشخص نیاز دارد.
- در رمزنگاری، این واقعیت آماری به این معناست که مقاومت یک تابع هش در برابر تصادم، دقیقاً نصف طول فیزیکی بیتهای آن است.
- یک هش ۲۵۶ بیتی مانند SHA-256، تنها ۱۲۸ بیت امنیت مؤثر در برابر حملات تصادم فراهم میکند.
- الگوریتمهای قدیمی مانند MD5 (۱۲۸ بیتی) به این دلیل شکسته شدند که امنیت مؤثر ۶۴ بیتی آنها در دسترس سختافزارهای مدرن قرار گرفت.
- سیستمهای امضای دیجیتال کاملاً به مقاومت در برابر تصادم وابستهاند، که این امر آسیبپذیری $2^{n/2}$ را به یک معیار حیاتی برای معماران سیستم تبدیل میکند.
چرا مهم است
درک مرز ریاضی مقاومت در برابر تصادم، همان مرز باریک میان پیادهسازی یک سیستم امضای دیجیتال امن و رها کردن سیستم در برابر قراردادهای جعلی و دسترسیهای غیرمجاز است.
بررسی عمیق دیدگاهها
توابع هش ۱۲۸ بیتی (مانند MD5)
الگوریتمهای قدیمی که ۶۴ بیت امنیت مؤثر در برابر تصادم ارائه میدهند.
موافق: محاسبات بسیار سریع و سربار ذخیرهسازی پایین روی سختافزارهای قدیمی. مخالف: آستانه تصادم $2^{64}$ به راحتی توسط خوشههای پردازشی تجاری مدرن شکسته میشود. شواهد: حمله به گواهی SSL در سال ۲۰۰۸ با موفقیت از تصادمهای MD5 برای جعل اعتبارنامههای اعتماد استفاده کرد. مناسب برای: استفاده صرفاً به عنوان چکسامهای غیررمزنگاری برای تشخیص خرابی تصادفی دادهها در طول انتقال فایل. نامناسب برای: استفاده در امضاهای دیجیتال، هش کردن رمز عبور، یا هر بستر امنیتی خصمانهای که در آن دستکاری عمدی یک تهدید محسوب میشود.
توابع هش ۲۵۶ بیتی (مانند SHA-256)
استاندارد فعلی صنعت که ۱۲۸ بیت امنیت مؤثر در برابر تصادم ارائه میدهد.
موافق: آستانه تصادم $2^{128}$ را فراهم میکند که به دلیل محدودیتهای فیزیکی ترمودینامیک، برای ابرکامپیوترهای کلاسیک از نظر محاسباتی غیرممکن باقی میماند. مخالف: به دو برابر فضای ذخیرهسازی و پهنای باند نسبت به هشهای قدیمی نیاز دارد که میتواند بر محیطهای اینترنت اشیاء (IoT) با محدودیتهای شدید تأثیر بگذارد. شواهد: سند NIST SP 800-107 Rev. 1 رسماً SHA-256 را برای برنامههای امن توصیه میکند و این الگوریتم ستون فقرات رمزنگاری وب مدرن است. مناسب برای: ایمنسازی ترافیک وب مدرن، دفتر کل بلاکچین و امضاهای دیجیتال استاندارد. نامناسب برای: طراحی سیستمهایی با هدف مقاومت در برابر حملات محاسبات کوانتومی آینده، که امنیت مؤثر را دوباره به نصف کاهش خواهند داد.
توابع هش ۵۱۲ بیتی (مانند SHA-512)
الگوریتمهای با امنیت بالا که ۲۵۶ بیت امنیت مؤثر در برابر تصادم ارائه میدهند.
موافق: آستانه تصادم عظیم $2^{256}$ را فراهم میکند و یک سپر دائمی در برابر پیشرفتهای الگوریتمی و الگوریتمهای محاسبات کوانتومی ارائه میدهد. مخالف: میتواند گلوگاههای عملکردی در سیستمهای ۳۲ بیتی ایجاد کند و هزینههای ذخیرهسازی را برای پایگاههای داده مقیاسپذیر به شدت افزایش دهد. شواهد: رمزنگاران هشهای ۵۱۲ بیتی را برای بایگانی دادههای فوقمحرمانه که باید در برابر سختافزارهای نظری آینده ایمن بمانند، توصیه میکنند. مناسب برای: تولید گواهیهای ریشه بلندمدت یا ایمنسازی دادههای طبقهبندیشده که باید برای دههها غیرقابل نفوذ باقی بمانند. نامناسب برای: اجرا روی میکروکنترلرهای کممصرف با محدودیتهای شدید محاسباتی و حافظه.
منابع
[1]National Institute of Standards and Technologyنهادهای استانداردگذاریSP 800-107 Rev. 1, Recommendation for Applications Using Approved Hash Algorithms
مطالعه در National Institute of Standards and Technology →
[2]Schneier on Securityرمزنگاران نظریCryptanalysis of SHA-1
مطالعه در Schneier on Security →
[3]Auth0مهندسان سیستمBirthday Attacks, Collisions, And Password Strength
مطالعه در Auth0 →
[4]NIST CSRCنهادهای استانداردگذاریHash Functions
مطالعه در NIST CSRC →
[5]Wikipediaرمزنگاران نظریBirthday attack
مطالعه در Wikipedia →
[6]تیم سردبیری کوهستانتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
نظرات
بیشتر در دیدگاه
مشاهده همه →نظریه تصمیم
قانون ۳۷ درصد: چرا برای یافتن بهترین گزینه، باید یکسوم اول نامزدها را رد کنید؟
5 منبع
نظریه الگوریتمی
طول غیرقابلمحاسبه کوتاهترین برنامه: چرا پیچیدگی کولموگوروف ثابت میکند تصادف واقعی از پیچیدگی محض غیرقابل تشخیص است
4 منبع
علم مواد
شرط ترشوندگی: چرا برای یک اتصال قوی، انرژی سطحی ماده باید از کشش سطحی چسب بیشتر باشد؟
5 منبع
نظریه اقتصادی
آیا «تراژدی منابع مشترک» واقعاً نیاز به حکمرانی بهتر را ثابت میکند، نه خصوصیسازی؟
6 منبع
هر زاویه. هر روز.
دریافت دیدگاه اخبار همراه با پوشش کامل منابع و تحلیل دیدگاهها، مستقیم در صندوق ورودی شما.





