Sebastien Rousseau

اسرارآمیز

بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد

پرسشی که پس از درگذشت تنها فردی که شاید می‌توانست به آن پاسخ دهد در سال ۲۰۲۳ باز مانده بود، پاسخی پیش‌پاافتاده داشت: یک مولد اعداد تصادفی از دهه ۱۹۹۰ که از روی ساعت مقداردهی اولیه شده بود. نویسندگان می‌گویند این پاسخ اطمینان آن‌ها را به اینکه خم‌ها صادقانه انتخاب شده‌اند بیشتر می‌کند، نه کمتر.

15 دقیقه مطالعه
Banner for: بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد

پرسشی که پس از درگذشت تنها فردی که شاید می‌توانست به آن پاسخ دهد در سال ۲۰۲۳ باز مانده بود، پاسخی پیش‌پاافتاده داشت: یک مولد اعداد تصادفی از دهه ۱۹۹۰ که از روی ساعت مقداردهی اولیه شده بود. نویسندگان می‌گویند این پاسخ اطمینان آن‌ها را به اینکه خم‌ها صادقانه انتخاب شده‌اند بیشتر می‌کند، نه کمتر.

خلاصه مدیریتی

  • الگوریتم ECDSA در سال ۲۰۰۰ به عنوان بخشی از استاندارد امضای دیجیتال FIPS 186-2 توسط NIST پذیرفته شد. مشخصات فنی این استاندارد پارامترهای «بذر» (seed) را منتشر کردند که قرار بود مقدار هش آن‌ها ضریب b خم را تعریف کند. آژانس امنیت ملی آمریکا (NSA) این بذرها را بدون هیچ توضیح یا توجیهی ارائه کرده بود.
  • در اکتبر ۲۰۲۶، یکی از کارکنان شرکت Anthropic بدون اشاره به سرنخ ماجرا، از یک مدل پژوهشی داخلی خواست مشخص کند این بذرها چگونه تولید شده‌اند. در کمتر از نیم ساعت، Claude دریافت که هیچ‌یک از بذرها خروجی هش نبوده‌اند؛ آن‌ها خروجی lrand48 بودند، یک مولد اعداد شبه‌تصادفی رایج که از روی ساعت سیستم مقداردهی اولیه می‌شود.
  • این یافته یک شکست رمزنگاری، حمله جدید یا نقطه ضعف در خم‌های ECDSA نیست. نویسندگان می‌گویند این نتیجه اطمینان آن‌ها را بیشتر می‌کند که خم‌ها بدون درِ پشتی (backdoor) یا ضعف‌های عمدی انتخاب شده‌اند.
  • همچنین Claude نقاط پایه شش خم مربوط به مه ۱۹۹۷ را حاصل مولد اعداد تصادفی در بسته FreeLIP (بسته حساب اعداد صحیح بلند نوشته آرین لنسترا) توضیح داد. تا جایی که نویسندگان اطلاع دارند، پیش از این هیچ‌یک از نقاط پایه NIST توضیح داده نشده بود.
  • پرسش‌هایی همچنان باز مانده‌اند: نقاط پایه P-224،‏ P-256،‏ P-384 و P-521 چگونه انتخاب شده‌اند، و چه معیارهایی - در صورت وجود - پشت رد شدن از روی خم‌های نامزد قبلی بوده است.

ضریبی که مشتق‌شده به نظر می‌رسید و بذری که هیچ‌کس نمی‌توانست توضیحش دهد #

الگوریتم ECDSA در سال ۲۰۰۰ به عنوان بخشی از استاندارد امضای دیجیتال FIPS 186-2 توسط موسسه NIST پذیرفته شد. مشخصات خم‌های آن حاوی پارامتری به نام «بذر» (seed) بود که مقدار هش آن برای تعریف ضریب b خم به کار می‌رود. روی کاغذ، این طراحی اطمینان‌بخشی است. استدلال این است که اگر ضریب از دل هشِ یک بذر منتشرشده بیرون بیاید، هیچ‌کس نمی‌توانسته خم را به صورت دستی و هدفمند تنظیم کند.

اما این استدلال تنها به اندازه خودِ بذر معتبر است. بذرها توسط NSA بدون هیچ توضیح یا توجیهی ارائه شده بودند، و تمام مشکل دقیقاً همین شکاف است. تابع هش یک درِ یک‌طرفه است: ثابت می‌کند که ضریب از بذر ناشی شده، اما هیچ چیزی درباره اینکه خود بذر از کجا آمده نمی‌گوید. سال‌ها این بذرها به عنوان ثابت‌هایی توضیح‌داده‌نشده در دل استاندارد نشسته بودند.

داستانی برای پر کردن این شکاف وجود داشت. مشهورترین روایت می‌گفت جری سولیناس (Jerry Solinas)، کارمند باسابقه NSA، این بذرها را از هش کردن یک عبارت عبوری (passphrase) طنزآمیز تولید کرده است. منبع در ادامه می‌گوید که معلوم شد این داستان نادرست بوده است. چنین داستان‌هایی معمولاً باور می‌شوند چون جزئیات مشخصی دارند و کمی هم جذاب‌اند، و چون هیچ‌کس نمی‌تواند نقضشان کند. اما به عنوان مدرک اعتبار ندارند. پیامد عملی ماجرا این بود که هیچ‌کس نمی‌توانست این ادعا را بیازماید و جست‌وجوها برای یافتن آن عبارت بر پایه شایعات، بی‌نتیجه مانده بود.

شخص بدیهی برای پرسیدن، خودِ سولیناس بود. اما جری در سال ۲۰۲۳ درگذشت و دیگر همکاران آن دوره نیز پاسخگو نبودند. به این ترتیب، این پرسش که بذرها در اصل چگونه به دست آمده‌اند باز ماند.

به باور من این راه درستی برای نگریستن به ماجراست: پرسشی درباره منشأ و اصالت که به حافظه چند نفر وابسته باشد، ترتیبات شکننده‌ای برای استانداردی است که زیربنای امضاهای دیجیتال را تشکیل می‌دهد. نکته جالب درباره آنچه در ادامه رخ داد این است که نیازی به آن خاطرات نداشت. پاسخ در دل همان بذرهای منتشرشده نشسته بود و انتظار کسی را می‌کشید که فرضیه درست را بیازماید.

سی دقیقه، بدون هیچ راهنمایی، و نتیجه‌ای که هش نبود #

در اکتبر ۲۰۲۶، یکی از کارکنان کنجکاو Anthropic بدون اشاره به سرنخ، از یک مدل پژوهشی داخلی پرسید آیا می‌تواند بفهمد آن بذرها چگونه تولید شده‌اند یا خیر. نحوه بیان اهمیت دارد: به مدل گفته نشد دنبال چه بگردد، و پاسخ آماده به او داده نشد تا صرفاً تاییدش کند.

در کمتر از نیم ساعت، Claude منشأ بذرهای خم‌های NIST P-192،‏ P-224،‏ P-256،‏ P-384 و P-521 را کشف کرد. نتیجه صریح و بی‌پرده است: هیچ‌یک از بذرها حاصل هیچ الگوریتم هشی نبودند. آن‌ها خروجی مولد اعداد تصادفی lrand48 در کتابخانه استاندارد C بودند.

بنابراین داستان عبارت عبوری هرگز قرار نبود پیدا شود، چون اصلاً عبارت عبوری‌ای در کار نبود که پیدا شود. بذرها توسط یک مولد اعداد شبه‌تصادفی رایج که از روی ساعت مقداردهی اولیه شده بود تولید شده بودند. این توضیحی غیرجذاب و معمولی است و جذابیتش دقیقاً در همین است: به هیچ راز، هیچ دانش ویژه و هیچ ثابت توضیح‌داده‌نشده‌ای نیاز ندارد.

توصیف سازوکار آن ساده است. هر تکرار از الگوریتم، ۲۰ بایت از مولد را به عنوان بذر نامزد بیرون می‌کشد. شمار تکرارها جزئیات جالب ماجراست، زیرا نشان می‌دهد فرآیند یک جست‌وجو بوده است و نه یک بار قرعه‌کشی. برای نمونه، P-256 به ۱۸۴۲ تکرار نیاز داشت تا بذر استانداردشده را خروجی دهد. هر کسی که این برنامه را اجرا کرده، گذاشته است برنامه نامزدها را یکی پس از دیگری بیازماید تا یکی از آن‌ها خمی تولید کند که نیازمندی‌هایشان را برآورده سازد.

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

چگونه یک اسکنر اثر انگشت مولد دهه ۱۹۹۰ را پیدا کرد #

روش کار سزاوار توجه است، زیرا همان بخشی است که دیگران می‌توانند دوباره از آن استفاده کنند.

مدل Claude حدس زد نرم‌افزاری که خم‌ها را تولید کرده، از یک مولد اعداد شبه‌تصادفی (PRNG) استفاده کرده که همراه با کتابخانه‌های C دهه ۱۹۹۰ عرضه می‌شده است. منبع با این مورد به عنوان یک حدس برخورد می‌کند، و حدس خوبی هم بود؛ چرا که یک جست‌وجوی بی‌کران را به فهرست کوتاهی از نامزدهای متعلق به یک دوره زمانی خاص محدود کرد.

سپس Claude یک اسکنر نوشت. اسکنر روی هر بذر منتشرشده بیت‌به‌بیت جلو رفت و آزمود که آیا تکه‌های مجاور، خروجی‌های متوالی یک مولد متعلق به دهه ۱۹۹۰ هستند یا نه. این پویش ۳۴ ترکیب از مولدها و برش‌های خروجی را پوشش داد. تطابق به صورت الگویی در بیت‌های بالایی نمایان شد؛ الگویی که احتمال رخ دادن تصادفی آن ۱ در ۵۸۱۰ بود.

آن الگو امضای مولد همنهشتی خطی lrand48 بود که تنها ۳۱ بیت بالاییِ یک وضعیت ۴۸ بیتی را برمی‌گرداند. در اینجا طراحی خودِ مولد اطلاعات لو می‌دهد. از آنجا که lrand48 در هر فراخوانی ۱۷ بیت از وضعیت ۴۸ بیتی خود را پنهان می‌کند، خروجی دارای نظمی است که یک رشته کاملاً تصادفی از خود نشان نمی‌دهد، و اسکنری که برای جست‌وجوی آن نظم ساخته شده باشد می‌تواند پیدایش کند.

برای بازیابی وضعیت داخلی، Claude کلمه اول را برداشت و تمام 2^17 مقدار ممکن برای ۱۷ بیت پنهان را امتحان کرد. این جست‌وجوی کوچکی است و به دلیل سادگیِ مولد بسیار کم‌هزینه انجام می‌شود. هر وضعیت نامزد را می‌شد با تکه بعدیِ بذر مقایسه کرد، و نامزد درست باعث شد کل دنباله دقیقاً در یک راستا قرار بگیرد.

بذرهای خم‌های اول (prime curves) کمی دشوارتر بودند، البته فقط کمی. آن‌ها از همان مولد lrand48 آمده بودند اما بیت‌های کمتری از هر خروجی را نگه می‌داشتند. بیت‌های مرئی کمتر یعنی تکیه‌گاه کمتر برای مهار کردن حدس، بنابراین ترفند جست‌وجوی فراگیر دیگر به آن تمیزی کار نمی‌کند. پاسخ منبع این است که بازیابی وضعیت یک مولد همنهشتی خطی بریده‌شده، یک مسئله مشبکه (lattice) کلاسیک در کتاب‌های درسی است که با الگوریتم کاهش پایه لنسترا-لنسترا-لوواس (LLL) حل می‌شود. مدل توانست این را تشخیص دهد و بدون نیاز به هیچ روش عجیب‌وغریبی، یک ابزار استاندارد را روی آن پیاده کند.

پنج بذر خم‌های اول NIST به همراه پنج بذر دیگر از استاندارد ANSI X9.62 همگی الگوی یکسانی داشتند: lrand48() >> 23. اینکه ده بذر در یک قاعده استخراج واحد مشترک باشند، شواهد محکمی برای وجود یک فرآیند واحد در پشت همه آن‌هاست.

و آنگاه نوبت به آزمونی می‌رسد که یک تطابق شانسی را از یک تطابق واقعی جدا می‌کند: هر وضعیت ۴۸ بیتیِ بازیابی‌شده، تمامی ۱۶۰ بیتِ بذر مربوط به خود را بازتولید می‌کند، و این چیزی نیست که تصادفی رخ دهد. تطابق جزئی می‌تواند تصادف باشد؛ اما بازتولید کامل تک‌تک بیت‌ها چیزی است که رد کردن آن به حساب شانس بسیار دشوارتر است، و به همین دلیل می‌توان نتیجه را با صراحت کامل بیان کرد.

به عقب راندن مولد برای خواندن ساعت #

بازیابی یک وضعیت به شما می‌گوید بذر چگونه تولید شده است، اما هنوز نمی‌گوید چه زمانی. برای این کار، Claude از یکی از ویژگی‌های مولد بهره گرفت: این مولد به همان سادگی که به جلو می‌رود، به عقب نیز حرکت می‌کند. برای هر بذر، Claude وضعیت را گام‌به‌گام به عقب برد تا به شکلی رسید که مقداردهی اولیه با تابع srand48 ایجاد می‌کند؛ یعنی حالتی که در آن ۱۶ بیت پایینی برابر با 0x330E هستند.

این شکل، خود یک اثر انگشت مستقل است. اگر بتوان یک وضعیت بازیابی‌شده را به عقب برگرداند و به جایی رسید که ۱۶ بیت پایینی آن 0x330E باشد، یعنی مولد به روش استاندارد و با ارسال یک مقدار بذر به srand48 راه‌اندازی شده است. و در این مورد، آن مقدار بذر یک زمان بود: بذرها با استفاده از این مولد شبه‌تصادفی ضعیف که با برچسب زمانی یونیکس مقداردهی شده بود تولید شده بودند.

تفکر درونی Claude در آن لحظه، دمِ تشخیص را ثبت کرده است: تمام بیت‌های بالایی صفر بودند (۲۰ بیت)، با احتمال تصادفی 1e-6. این جزئیات کوچکی است، اما نشان می‌دهد که استدلال مستقیماً روی اعداد آن‌طور که ظاهر می‌شدند کار می‌کرده است، نه روی داستانی که بعداً سرهم شده باشد.

همه تاریخ‌ها سرراست و تمیز نبودند. چهار مقداردهی اولیه مربوط به خم‌های دودویی، تاریخ فوریه ۱۹۸۴ را نشان می‌دادند؛ تاریخی که هیچ‌کس انتظار ندارد برای مولدی که در اواخر دهه ۱۹۹۰ استفاده می‌شده ببیند. اما با دو برابر کردن برچسب‌های زمانی، مقداردهی‌های اولیه خم‌های دودویی به ۱۷ آوریل ۱۹۹۸ نگاشت می‌شوند، یعنی دقیقاً دو هفته پس از اجرای مربوط به P-224. منبع نتیجه می‌گیرد که برنامه احتمالاً مقدار ساعت را نصف کرده بوده است. این نتیجه‌گیری با احتیاط بیان شده و همین‌طور هم باید باشد: این یک توضیح پیشنهادی برای این است که چرا مقادیر خام سال ۱۹۸۴ را نشان می‌دهند، و دو برابر کردنی که دقیقاً دو هفته پس از یک اجرای دیگر فرود می‌آید، بدون آنکه تایید قطعیِ جزئیات درونی برنامه باشد، بسیار روشنگر و معنادار است.

من این بخش را به دلیلی مستقل از رمزنگاری، قانع‌کننده‌ترین قسمت کل ماجرا می‌دانم. یک داستان ساختگی تاریخ‌هایی مرتب و بی‌نقص تحویل می‌داد. اما این یکی ابتدا تاریخی نامأنوس بیرون داد و سپس با یک اصلاح ساده، خم‌های دودویی را در توالی معناداری نسبت به اجرای P-224 قرار داد. داده‌های شلخته‌ای که تحت یک فرضیه ساده معنا پیدا می‌کنند، دقیقاً همان شکلی هستند که اصالت و منشأ واقعی در عمل دارد.

نقاط پایه هم دستورالعمل خودشان را دارند #

بذرها خودِ خم‌ها را تعریف می‌کنند. نقاط پایه موضوع جداگانه‌ای هستند و منبع نیز به طور جداگانه به آن‌ها می‌پردازد.

نقاط پایه شش خمی که در مه ۱۹۹۷ تولید شده‌اند (یعنی P-192 و پنج خم نمونه استاندارد ANSI X9.62 شامل prime192v2،‏ prime192v3 و prime239v1 تا v3) از مولد اعداد تصادفی موجود در FreeLIP، بسته حساب اعداد صحیح بلند نوشته آرین لنسترا (Arjen Lenstra)، به دست آمده‌اند. نسخه‌های اولیه کتابخانه NTL نوشته ویکتور شوپ (Victor Shoup) نیز همین کد را عرضه می‌کردند. این واقعیت دوم برای راستی‌آزمایی اهمیت دارد: مولد مذکور به صورت کد منتشرشده‌ای که دیگران می‌توانند بخوانند وجود دارد، نه به عنوان یک ابزار خصوصی.

دستورالعمل کار کوتاه است: مولد را با یک عدد صحیح کوچک مقداردهی اولیه کنید. هفت خروجی اول را دور بریزید. مختصات x نامزد را از خروجی‌های ۲۶ بیتی به پیمانه p (‏mod p) بسازید. این تولید نامزد را آن‌قدر تکرار کنید تا x روی خم قرار بگیرد.

مدل Claude بذرهای مولد را پیدا کرد: ۲۰۰۰۰ برای P-192، مقادیر ۲۰۴۲۰، ۲۰۵۰۷ و ۲۰۵۰۹ برای prime239v1 تا v3، و مقادیر ۲۰۵۱۲ و ۲۰۵۱۷ برای prime192v2 و v3. این‌ها اعداد صحیح کوچکی از آن دست هستند که یک انسان با صفحه‌کلید وارد برنامه می‌کند؛ یعنی دقیقاً همان چیزی که گام اول دستورالعمل می‌طلبد.

نویسندگان در اینجا ادعای متواضعانه‌ای مطرح می‌کنند که ارزش نقل به مضمون را دارد: تا جایی که آن‌ها می‌دانند، پیش از این هیچ‌یک از نقاط پایه NIST توضیح داده نشده بود. این قید احتیاط از خودِ آن‌هاست و کاملاً بجاست؛ آن‌ها ادعا نمی‌کنند تک‌تک اسناد نوشته‌شده در تاریخ را بررسی کرده‌اند، بلکه تنها مرز دانش خود را بیان می‌کنند.

سپس دستورالعمل از کار می‌افتد. نقاط پایه P-224،‏ P-256،‏ P-384 و P-521 با این دستورالعمل جور درنمی‌آیند و نویسندگان نتوانستند توضیح دهند که این نقاط چگونه انتخاب شده‌اند. گزارشی که از کنار این موضوع سرسری می‌گذشت ظاهر مرتب‌تری پیدا می‌کرد، اما نویسندگان آن را نگه داشتند. این توضیح شش خم از مه ۱۹۹۷ را پوشش می‌دهد و نقاط پایه چهار مورد از خم‌های اول NIST را بی‌توضیح باقی می‌گذارد.

نامزدهایی که از رویشان رد شدند #

آخرین یافته همان موردی است که بیشترین احتمال برانگیختن بحث و جدل را دارد، بنابراین ارزش دارد که با دقت خوانده شود.

برای P-256، بذر منتشرشده نامزد شماره ۱۸۴۲ است. اما نامزد شماره ۸۷۶ از همان اجرا نیز خمی از مرتبه اول با اندازه درست به دست می‌دهد که پارامترهایش دقیقاً به همان روش خم منتشرشده انتخاب شده‌اند. به عبارت دیگر، فرآیند از روی خمی که در ظاهر کاملاً قابل قبول بوده عبور کرده است.

این یک استثنای تک‌موردی نیست. اجرای مربوط به P-224 از روی سه خم از این دست رد شده، و دو اجرای پشت خم‌های نمونه ANSI X9.62 نیز از روی هفت مورد دیگر عبور کرده‌اند.

نویسندگان درباره آنچه نمی‌دانند رک و صریح هستند: آن‌ها نمی‌دانند چه معیارهایی ممکن است برای رد شدن از روی این خم‌ها به کار رفته باشد، یا اینکه آیا این اتفاق صرفاً یک اثر جانبی ناخواسته (unintentional artifact) بوده است یا خیر. این یک محدودیت است که به همین عنوان نیز بیان شده، و قید احتیاط درباره «اثر جانبی ناخواسته» صادقانه‌ترین موضع است: داده‌ها نشان می‌دهند که از روی برخی نامزدها عبور شده، اما نشان نمی‌دهند چرا.

سپس آن‌ها داوری خود را عرضه می‌کنند: از آنجا که تعداد نامزدهای ردشده اندک است، به باور آن‌ها محتمل نیست که خم‌های تضعیف‌شده انتخاب شده باشند. این یک استدلال محتاطانه درباره میزان احتمال است و بر شمارش تکیه دارد: اگر فرآیندی در مجموع تنها از روی تعداد انگشت‌شماری نامزد بگذرد، فضای بسیار کمی برای گشتن به دنبال یک نقطه ضعف وجود دارد.

یک ملاحظه باقی می‌ماند که منبع آن را به عنوان یک امکان نظری و نه یک یافته مطرح می‌کند: در اصول هنوز قابل تصور است که این خم‌ها از طریق جست‌وجو روی برچسب‌های زمانیِ ورودی به مولد اعداد تصادفی، به گونه‌ای انتخاب شده باشند که ویژگی خاصی داشته باشند. این یک گمانه‌زنی است و صراحتاً به همین نام علامت خورده است. نباید آن را مدرکی دال بر چیزی خواند و نباید بی‌سروصدا کنارش گذاشت. یک گزارش منصفانه آن را به عنوان مسیری ردنشده روی میز نگه می‌دارد، در حالی که خاطرنشان می‌کند نویسندگان فرضیه خم‌های تضعیف‌شده را نامحتمل می‌دانند.

این نتیجه چه چیزی را تغییر می‌دهد و چه چیزی را باز می‌گذارد #

با آنچه تغییر نمی‌دهد شروع کنیم: خم‌ها شکسته نشده‌اند. منبع این را دو بار، با عبارات متفاوت بیان می‌کند و هیچ اقدامی لازم نیست انجام شود. هر کسی که این گزارش را دلیلی برای کنار گذاشتن فوری P-256 بخواند، متن را نادرست خوانده است.

آنچه تغییر می‌کند، وضعیت یک تردید قدیمی است. تا زمانی که بذرها بی‌توضیح بودند، عبارت «ارائه‌شده توسط NSA بدون توضیح» یک علامت سؤال دائمی بر فراز این استاندارد بود. آن علامت سؤال اکنون پاسخی ملموس دارد: بذرها هش‌های مرموز یک عبارت سری نبودند؛ آن‌ها خروجی lrand48 از برنامه‌ای مقداردهی‌شده با ساعت بودند که تک‌تک بیت‌های هر بذر را از یک وضعیت بازیابی‌شده بازتولید می‌کند. توضیحی که هر کسی با داشتن بذرهای منتشرشده می‌تواند آن را بیازماید، بر شایعه‌ای که هیچ‌کس نمی‌تواند بررسی‌اش کند برتری دارد.

در اینجا نکته‌ای برای بنیان‌گذاران و مهندسانی که بر بستر استانداردهای رمزنگاری سیستم می‌سازند وجود دارد: مطرح کردن ادعا درباره اصالت و منشأ ارزان است و راستی‌آزمایی آن گران؛ و بررسی توصیف‌شده در اینجا، به محض پرسیده شدن پرسش درست، کمتر از نیم ساعت زمان برد. اسکنر، جست‌وجوی 2^17 حالتی و کاهش مشبکه همگی حرکت‌های استانداردی هستند. آنچه سال‌ها کم بود، کسی بود که کار غیرجذابِ آزمودن آن‌ها روی اعداد منتشرشده را انجام دهد.

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

کارهای ناتمام به اندازه کافی روشن هستند که یک دستورکار پژوهشی بسازند: چهار نقطه پایه - مربوط به P-224،‏ P-256،‏ P-384 و P-521 - هنوز توضیحی ندارند. نامزدهای ردشده، مانند نامزد ۸۷۶ در برابر نامزد منتشرشده ۱۸۴۲ برای P-256، فاقد معیار اعلام‌شده هستند و هنوز کسی نمی‌داند این رد شدن عمدی بوده یا یک اثر جانبی ناخواسته. اینکه آیا این پاسخ‌ها در کدهای منبع قدیمی، در حافظه همکاران بازمانده، یا در همان جنس الگویابی که راز بذرها را گشود باقی مانده‌اند، پرسش بازِ پیش روست. بذرها نیم ساعت وقت بردند؛ نقاط پایه همین حالا یک بار در برابر این رویکرد مقاومت کرده‌اند.

پرسش‌های متداول #

آیا این کشف خم‌های NIST ECDSA مانند P-256 یا P-384 را می‌شکند?

خیر. کشف اینکه بذرهای خم‌ها توسط lrand48 تولید شده‌اند و نه از طریق هش کردن یک عبارت عبوری، هیچ‌گونه شکست رمزنگاری، حمله جدید یا ضعف ریاضی در خم‌های ECDSA ایجاد نمی‌کند و به دلیل این یافته نیازی به هیچ اقدام اصلاحی یا مهاجرت فنی نیست.

بذرهای خم‌های اول NIST در واقع چگونه تولید شده بودند?

هر بذر ۱۶۰ بیتی با فراخوانی مولد همنهشتی خطی lrand48 در کتابخانه استاندارد C (به طور مشخص lrand48() >> 23 برای پنج خم اول NIST و پنج خم ANSI X9.62) که از طریق تابع srand48 با یک برچسب زمانی یونیکس مقداردهی اولیه شده بود، تولید گشته است. بازیابی وضعیت داخلی ۴۸ بیتی از طریق کاهش مشبکه لنسترا-لنسترا-لوواس (LLL)، تمامی ۱۶۰ بیت هر بذر منتشرشده را بازتولید می‌کند.

چه چیزهایی درباره پارامترهای خم بیضوی NIST همچنان بی‌توضیح باقی مانده است?

در حالی که نقاط پایه P-192 و پنج خم ANSI X9.62 تا مولد اعداد تصادفی در بسته FreeLIP آرین لنسترا (مقداردهی‌شده با اعداد صحیح کوچک) ردیابی شدند، نقاط پایه P-224،‏ P-256،‏ P-384 و P-521 با آن دستورالعمل مطابقت ندارند، و معیارهای رد شدن از روی خم‌های نامزدِ مرتبه اولِ قبلی (مانند نامزد ۸۷۶ پیش از نامزد ۱۸۴۲ در P-256) همچنان نامعلوم است.

منابع #

آخرین بازبینی .

بازنشر متقابل این مقاله

کپی قالب‌بندی‌شده برای Medium

# بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau

> Originally published at [https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/](https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/)

بذرهای منتشرشده همراه با خم‌های P-192،‏ P-224،‏ P-256،‏ P-384 و P-521 موسسه NIST هرگز خروجی هش نبودند. آن‌ها از مولد lrand48 کتابخانه C آمده بودند که با برچسب زمانی یونیکس مقداردهی شده بود. Claude...

Read the full article on sebastienrousseau.com: https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/

کپی قالب‌بندی‌شده برای Mastodon

بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau

بذرهای منتشرشده همراه با خم‌های P-192،‏ P-224،‏ P-256،‏ P-384 و P-521 موسسه NIST هرگز خروجی هش نبودند. آن‌ها از مولد lrand48 کتابخانه C آمده بودند که با برچسب زمانی یونیکس مقداردهی شده بود. Claude...

https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/

کپی قالب‌بندی‌شده برای LinkedIn

بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau

بذرهای منتشرشده همراه با خم‌های P-192،‏ P-224،‏ P-256،‏ P-384 و P-521 موسسه NIST هرگز خروجی هش نبودند. آن‌ها از مولد lrand48 کتابخانه C آمده بودند که با برچسب زمانی یونیکس مقداردهی شده بود.

مهم‌ترین نکات راهبردی به این شرح است:

- ضریبی که مشتق‌شده به نظر می‌رسید و بذری که هیچ‌کس نمی‌توانست توضیحش دهد. الگوریتم ECDSA در سال ۲۰۰۰ به عنوان بخشی از استاندارد امضای دیجیتال FIPS 186-2 توسط موسسه NIST پذیرفته شد.
- سی دقیقه، بدون هیچ راهنمایی، و نتیجه‌ای که هش نبود. در اکتبر ۲۰۲۶، یکی از کارکنان کنجکاو Anthropic بدون اشاره به سرنخ، از یک مدل پژوهشی داخلی پرسید آیا می‌تواند بفهمد آن بذرها چگونه تولید شده‌اند یا خیر.
- چگونه یک اسکنر اثر انگشت مولد دهه ۱۹۹۰ را پیدا کرد. روش کار سزاوار توجه است، زیرا همان بخشی است که دیگران می‌توانند دوباره از آن استفاده کنند.
- به عقب راندن مولد برای خواندن ساعت. بازیابی یک وضعیت به شما می‌گوید بذر چگونه تولید شده است، اما هنوز نمی‌گوید چه زمانی.

رویکرد سازمان شما به چالش‌های مطرح‌شده در این نوشته چیست؟

→ https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/

#اسرارآمیز #بذرها #پشت #Nist #خم‌ها

Sebastien Rousseau | CC-BY-4.0
استناد به این مقاله

بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau

بذرهای منتشرشده همراه با خم‌های P-192،‏ P-224،‏ P-256،‏ P-384 و P-521 موسسه NIST هرگز خروجی هش نبودند. آن‌ها از مولد lrand48 کتابخانه C آمده بودند که با برچسب زمانی یونیکس مقداردهی شده بود. Claude...

BibTeX

@online{rousseau2026بذرهای,
  author  = {Rousseau, Sebastien},
  title   = {{بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau}},
  year    = {2026},
  url     = {https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/},
  urldate = {2026}
}

RIS

TY  - GEN
AU  - Rousseau, Sebastien
TI  - بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau
PY  - 2026
UR  - https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/
ER  -

Vancouver

Rousseau S. بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau. sebastienrousseau.com. 2026 Oct 26. Available from: https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/

Chicago

Rousseau, Sebastien. "بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau." sebastienrousseau.com. October 26, 2026. https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/.

APA

Rousseau, S. (2026, October 26). بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau. sebastienrousseau.com. https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/

بازنشر این مقاله

بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau

بذرهای منتشرشده همراه با خم‌های P-192،‏ P-224،‏ P-256،‏ P-384 و P-521 موسسه NIST هرگز خروجی هش نبودند. آن‌ها از مولد lrand48 کتابخانه C آمده بودند که با برچسب زمانی یونیکس مقداردهی شده بود. Claude...

این مقاله تحت مجوز زیر منتشر شده است Creative Commons Attribution 4.0 International. بازنشر مستلزم ذکر منبع با ارجاع به نشانی اصلی (canonical) است.

بذرهای اسرارآمیز پشت خم‌های NIST هرگز خروجی هش نبودند، و Claude در کمتر از نیم ساعت این را کشف کرد — Sebastien Rousseau

بذرهای منتشرشده همراه با خم‌های P-192،‏ P-224،‏ P-256،‏ P-384 و P-521 موسسه NIST هرگز خروجی هش نبودند. آن‌ها از مولد lrand48 کتابخانه C آمده بودند که با برچسب زمانی یونیکس مقداردهی شده بود. Claude...

Originally published at https://sebastienrousseau.com/fa/2026-10-26-bdhrhay-asraraamyz-psht-khmhay-nist-hrgz/ by Sebastien Rousseau.
Licensed under CC-BY-4.0.