رفتن به محتوای اصلی
توضیح کوهستانرمزنگاریکالبدشکافی فناوری۳ شهریور ۱۴۰۵، ۱۳:۱۷· 4 دقیقه مطالعه· در فناوری

کالبدشکافی تولید اعداد تصادفی: کامپیوترهای دقیق واقعاً چگونه شانس را خلق می‌کنند؟

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

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

متخصصان امنیت سایبری 45%مهندسان نرم‌افزار 30%فیزیک‌دانان کوانتوم 25%
متخصصان امنیت سایبری
تأکید دارند که هرگونه پیش‌بینی‌پذیری یک ضعف امنیتی است و برای رمزنگاری ارتباطات اینترنتی، استفاده از منابع آنتروپی فیزیکی (TRNG) الزامی است.
مهندسان نرم‌افزار
معتقدند اعداد شبه‌تصادفی (PRNG) به دلیل سرعت بالا و نیاز نداشتن به سخت‌افزار خاص، برای کاربردهای روزمره مانند بازی‌ها و شبیه‌سازی‌ها کاملاً ایده‌آل هستند.
فیزیک‌دانان کوانتوم
استدلال می‌کنند که حتی نویز حرارتی نیز در سطح کلان قابل محاسبه است و تنها مکانیک کوانتوم می‌تواند تصادفی بودن واقعی و بنیادین را تضمین کند.

نکات کلیدی

  • کامپیوترها ذاتاً ماشین‌هایی قطعی هستند و نمی‌توانند به تنهایی اعداد تصادفی واقعی تولید کنند.
  • بیشتر اعداد تصادفی در نرم‌افزارها شبه‌تصادفی هستند و در صورت افشای فرمول اولیه، قابل پیش‌بینی خواهند بود.
  • امنیت اینترنت به سخت‌افزارهایی متکی است که نویزهای فیزیکی مانند حرارت تراشه را به اعداد تصادفی تبدیل می‌کنند.
  • نسل آینده رمزنگاری به پدیده‌های کوانتومی متکی خواهد بود که از نظر فیزیکی کاملاً غیرقابل پیش‌بینی هستند.

پارادوکس بنیادین علوم کامپیوتر این است که کامپیوترها برای کاملاً قطعی بودن طراحی شده‌اند. اگر ورودی‌های یکسانی به یک پردازنده بدهید، بدون استثنا هر بار خروجی‌های یکسانی تولید می‌کند. با این حال، هر بار که یک برنامه بانکی را باز می‌کنید، رمز عبوری می‌سازید یا یک بازی ویدیویی انجام می‌دهید، به همین ماشین قطعی تکیه می‌کنید تا کار غیرممکنی را انجام دهد: غیرقابل پیش‌بینی رفتار کند. چگونه ماشینی که بر اساس منطق دقیق ساخته شده می‌تواند تاس بیندازد؟[1]

برای دهه‌ها، پاسخ صنعت فناوری اساساً یک ترفند جادویی بسیار هوشمندانه بود. بیشتر آنچه نرم‌افزارها «تصادفی» می‌نامند، در واقع «شبه‌تصادفی» (PRNG) است. این الگوریتم‌ها با یک عدد «دانه» (Seed) - که اغلب زمان فعلی سیستم بر حسب میلی‌ثانیه است - شروع به کار کرده و آن را وارد یک مخلوط‌کن پیچیده ریاضی می‌کنند. دنباله به دست آمده برای انسان آشفته به نظر می‌رسد، اما کاملاً از پیش تعیین شده است. بازاریابی شرکت‌ها ممکن است از کلمات پر زرق و برق استفاده کند، اما واقعیت این است که اگر هکری دانه را بداند، تمام اعداد «تصادفی» آینده سیستم را می‌داند.[2][3]

این فقط یک آسیب‌پذیری تئوریک نیست. در گذشته، ماشین‌های اسلات و قرعه‌کشی‌های آنلاین توسط افرادی که دانه الگوریتم را کشف کرده بودند، مورد سوءاستفاده قرار گرفته‌اند. مهم‌تر از آن، رمزنگاری که از پیام‌های خصوصی و تراکنش‌های کارت اعتباری شما محافظت می‌کند، به تولید کلیدهای رمزنگاری متکی است که هیچ‌کس نتواند آن‌ها را حدس بزند. یک عدد شبه‌تصادفی به سادگی برای اینترنت مدرن به اندازه کافی امن نیست. اگر عدد تصادفی پایه قابل پیش‌بینی باشد، قفل امنیتی پیش از بسته شدن شکسته شده است.[3]

برای دستیابی به تصادفی بودن واقعی (TRNG)، مهندسان مجبور شدند به بیرون از دنیای دیجیتال نگاه کنند و جهان آشفته و غیرقابل پیش‌بینی آنالوگ را در آغوش بگیرند. یک تولیدکننده اعداد تصادفی واقعی از ریاضیات برای ایجاد تصادف استفاده نمی‌کند؛ بلکه آن را از محیط فیزیکی برداشت می‌کند. این سیستم‌ها به دنبال «آنتروپی» هستند؛ معیاری برای اندازه‌گیری هرج و مرج یا غیرقابل پیش‌بینی بودن در یک سیستم.[1][4]

برای دستیابی به تصادفی بودن واقعی (TRNG)، مهندسان مجبور شدند به بیرون از دنیای دیجیتال نگاه کنند و جهان آشفته و غیرقابل پیش‌بینی آنالوگ را در آغوش بگیرند.

در داخل پردازنده گوشی هوشمند یا لپ‌تاپ شما، یک مدار سخت‌افزاری اختصاصی وجود دارد که برای اندازه‌گیری پدیده‌های فیزیکی میکروسکوپی طراحی شده است. رایج‌ترین منبع آنتروپی، نویز حرارتی است. هنگامی که الکترون‌ها از مسیرهای سیلیکونی یک تراشه عبور می‌کنند، حرکت آن‌ها به دلیل گرما کمی تغییر می‌کند. این امر نوسانات ولتاژ بسیار کوچک و غیرقابل پیش‌بینی ایجاد می‌کند. سخت‌افزار این جهش‌های تصادفی ولتاژ را اندازه‌گیری کرده و آن‌ها را به صفر و یک ترجمه می‌کند.[1]

زمانی که سخت‌افزارهای اختصاصی در دسترس نیستند، سیستم‌عامل‌ها خلاقیت به خرج می‌دهند. آن‌ها آنتروپی را از اقدامات فیزیکی شما جمع‌آوری می‌کنند. میلی‌ثانیه دقیقی که یک کلید را روی کیبورد فشار می‌دهید، تغییرات میکروسکوپی در نحوه حرکت دادن ماوس، یا تاخیرهای جزئی در چرخش هارد دیسک شما؛ همه این‌ها در یک «استخر آنتروپی» جمع‌آوری می‌شوند. کامپیوتر این استخر از غیرقابل پیش‌بینی بودن رفتار انسان را هم می‌زند تا کلیدهای رمزنگاری امن تولید کند.[2][4]

شاید مشهورترین نمونه برداشت آنتروپی فیزیکی، «دیوار آنتروپی» شرکت کلودفلر (Cloudflare) در سانفرانسیسکو باشد. این شرکت برای کمک به تامین امنیت بخش بزرگی از ترافیک اینترنت، از دوربینی استفاده می‌کند که به دیواری شامل ۱۰۰ لامپ لاوا (Lava Lamp) اشاره رفته است. دوربین از حباب‌های موم که به طور مداوم و غیرقابل پیش‌بینی در حال تغییر شکل هستند، عکس می‌گیرد. این پیکسل‌ها به جریانی از داده‌های تصادفی تبدیل می‌شوند که تکرار یا پیش‌بینی آن‌ها عملاً غیرممکن است.[2]

حتی نویز حرارتی نیز ممکن است برای آینده کافی نباشد. با قدرتمندتر شدن کامپیوترها، تعریف «غیرقابل پیش‌بینی» سخت‌گیرانه‌تر می‌شود. لبه تکنولوژی در این زمینه، تولید اعداد تصادفی کوانتومی (QRNG) است. این تراشه‌ها به جای اندازه‌گیری گرما، پدیده‌های کوانتومی را اندازه‌گیری می‌کنند؛ مانند لحظه دقیق واپاشی یک اتم رادیواکتیو یا مسیری که یک فوتون منفرد از طریق یک آینه نیمه‌شفاف طی می‌کند. بر اساس قوانین مکانیک کوانتوم، این رویدادها به طور بنیادین و در کل کیهان تصادفی هستند.[3][4]

دفعه بعد که شرکتی در مورد رمزنگاری غیرقابل نفوذ خود لاف می‌زند، به یاد داشته باشید که این امنیت فقط از ریاضیات پیشرفته نشأت نمی‌گیرد. این امنیت حاصل وارد کردن عمدی هرج و مرج فیزیکی به یک ماشین کاملاً منظم است. بدون غیرقابل پیش‌بینی بودنِ آشفته‌ی گرما، تایپ کردن انسان یا لامپ‌های لاوا، دنیای دیجیتال به شکلی که می‌شناسیم فرو می‌ریزد.[4]

اصطلاحات کلیدی

آنتروپی (Entropy)
معیاری برای اندازه‌گیری بی‌نظمی و غیرقابل پیش‌بینی بودن در یک سیستم فیزیکی یا اطلاعاتی.
تولیدکننده اعداد شبه‌تصادفی (PRNG)
الگوریتمی نرم‌افزاری که با استفاده از یک فرمول ریاضی و یک مقدار اولیه، دنباله‌ای از اعداد ظاهراً تصادفی تولید می‌کند.
تولیدکننده اعداد تصادفی واقعی (TRNG)
قطعه‌ای سخت‌افزاری که با اندازه‌گیری پدیده‌های فیزیکی غیرقابل پیش‌بینی (مانند نویز حرارتی)، اعداد کاملاً تصادفی می‌سازد.
مقدار اولیه (Seed)
عدد پایه‌ای که به عنوان نقطه شروع به یک الگوریتم PRNG داده می‌شود تا تولید دنباله اعداد را آغاز کند.

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

آیا اعداد تصادفی کامپیوتر واقعاً تصادفی هستند؟

در بیشتر موارد خیر. آن‌ها «شبه‌تصادفی» هستند و از فرمول‌های ریاضی پیروی می‌کنند. فقط سخت‌افزارهای خاص می‌توانند با استفاده از فیزیک، اعداد کاملاً تصادفی تولید کنند.

هکرها چگونه از اعداد تصادفی سوءاستفاده می‌کنند؟

اگر هکری بداند کامپیوتر از چه فرمول و چه نقطه شروعی (Seed) برای تولید عدد استفاده کرده، می‌تواند تمام اعداد بعدی را پیش‌بینی کرده و رمزها را بشکند.

چرا همیشه از اعداد تصادفی واقعی استفاده نمی‌کنیم؟

تولید اعداد تصادفی واقعی (TRNG) کندتر است و به سخت‌افزار یا منابع فیزیکی نیاز دارد، در حالی که تولید اعداد شبه‌تصادفی (PRNG) بسیار سریع و برای کارهای روزمره کافی است.

منابع

پوشش منابع

4 منبع

3 دیدگاه شناسایی‌شده

متخصصان امنیت سایبری 45%مهندسان نرم‌افزار 30%فیزیک‌دانان کوانتوم 25%
  1. [1]Wikipedia

    Hardware random number generator

    مطالعه در Wikipedia
  2. [2]Cloudflareمتخصصان امنیت سایبری

    What is random number generation?

    مطالعه در Cloudflare
  3. [3]NISTمتخصصان امنیت سایبری

    Random Bit Generation

    مطالعه در NIST
  4. [4]تیم سردبیری کوهستان

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

دریافت فناوری اخبار همراه با پوشش کامل منابع و تحلیل دیدگاه‌ها، مستقیم در صندوق ورودی شما.