روکیداروکیداروکیدا
  • اخبار فناوری
  • آموزش
  • گجت‌ها
    • اخبار موبایل و گجت ها
    • گجت های پوشیدنی
    • نقد و بررسی تخصصی گجت ها
    • راهنمای خرید
  • فیلم و سریال
  • نرم افزار و اپلیکیشن
  • موفقیت و پیشرفت
  • خودرو
  • تبلیغات در روکیدا
  • تماس با ما
می‌خوانید: چگونه کامپیوترها اعداد تصادفی تولید می‌کنند؟
اطلاع‌رسانی آپدیت‌ها
تغییر اندازه فونتAa
تغییر اندازه فونتAa
روکیداروکیدا
  • اخبار فناوری
  • آموزش
  • گجت‌ها
  • فیلم و سریال
  • نرم افزار و اپلیکیشن
  • موفقیت و پیشرفت
  • خودرو
  • تبلیغات در روکیدا
  • تماس با ما
Search
  • اخبار فناوری
  • آموزش
  • گجت‌ها
    • اخبار موبایل و گجت ها
    • گجت های پوشیدنی
    • نقد و بررسی تخصصی گجت ها
    • راهنمای خرید
  • فیلم و سریال
  • نرم افزار و اپلیکیشن
  • موفقیت و پیشرفت
  • خودرو
  • تبلیغات در روکیدا
  • تماس با ما
© تمامی حقوق برای رسانه روکیدا محفوظ است.

روکیدا - عمومی

عمومی

چگونه کامپیوترها اعداد تصادفی تولید می‌کنند؟

پرشان شاکری فر
پرشان شاکری فر
توسطپرشان شاکری فر
علاقه مند به مطالب مربوط به دانش و فناوری- فکر می‌کنم مهم‌ترین ویژگی انسان، کنجکاوی و علاقه به یادگیری چیزهای بیشتر هست. به همین دلیل هم...
انتشار: پنجشنبه , 11 مرداد 1397 ساعت 10:23
8 دقیقه
چگونه کامپیوترها اعداد تصادفی تولید می‌کنند؟

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

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

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

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

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

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

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

encryption

اعداد تصادفی واقعی

شاید برای شما سوال شده باشد که یک کامپیوتر چگونه می‌تواند یک عدد تصادفی تولید کند. این “تصادفی بودن” از کجا می‌آید؟ اگر این تولیدکننده تنها یک کد کامپیوتری است، آیا ممکن نیست که اعداد تصادفی که کامپیوتر تولید می‌کند قابل پیش‌بینی باشند؟

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

برای تولید یک عدد تصادفی واقعی، کامپیوتر نوعی پدیده فیزیکی را که در بیرون از کامپیوتر رخ می‌دهد، اندازه‌گیری می‌کند. برای مثال،​ یک کامپیوتر می‌تواند واپاشی هسته‌ای یک اتم را اندازه‌گیری کند. مطابق نظریه کوانتوم،​ هیچ راهی وجود ندارد که بتوان به‌طور قطعی دانست واپاشی هسته‌ای در چه زمانی اتفاق می‌افتد. پس این درواقع، “تصادفی بودن خالص” ناشی از جهان هستی است. یک مهاجم نمی‌تواند پیش‌بینی کند که واپاشی هسته‌ای در چه زمانی اتفاق می‌افتد، پس نمی‌تواند آن مقدار تصادفی را نیز پیدا کند.

به‌عنوان یک مثال آشناتر، کامپیوترها می‌توانند از نویزهای جوی یا حتی ساده‌تر از آن،​ از زمان دقیق فشار دادن دکمه‌های کیبورد به‌عنوان منبع داده‌های غیرقابل‌پیش‌بینی، یا آنتروپی، استفاده کنند. برای مثال، ممکن است کامپیوتر شما فشرده شدن یک کلید در دقیقا ۰.۲۳۴۲۳۵۲۳ ثانیه پس از ساعت ۲ بعد از ظهر را ثبت کند. با جمع‌آوری تعداد کافی از زمان‌های مربوط به فشرده شدن کلیدها، یک منبع آنتروپی خواهید داشت که می‌توانید از آن برای تولید یک عدد تصادفی واقعی استفاده کنید. شما  یک ماشین قابل پیش‌بینی نیستید، پس فرد مهاجم نمی‌تواند زمان دقیق فشرده شدن کلیدهای کیبورد توسط شما را حدس بزند. دستگاه  /dev/random، که در لینوکس اعداد تصادفی تولید می‌کند، تا زمانی که آنتروپی کافی برای تولید یک عدد تصادفی واقعی به دست نیاورد، درخواست‌های کاربر را رد کرده و نتیجه‌ای نمایش نمی‌دهد.

linux generate random data

اعداد شبه تصادفی

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

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

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

5175981010 29d40f8ceb b

تولیدکننده‌های سخت‌افزاری اعداد تصادفی ساخت اینتل و آژانس امنیت ملی آمریکا

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

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

این یک نگرانی جدی به شمار می‌رود. در ماه دسامبر سال ۲۰۱۳، توسعه‌دهندگان سیستم عامل FreeBSD، با اعلام غیر قابل‌اطمینان بودن این سیستم، پشتیبانی از استفاده مستقیم از RdRand، به‌عنوان منبع تصادفی بودن را متوقف کردند. در این حالت، خروجی RdRand به‌عنوان ورودی یک الگوریتم دیگر در نظر گرفته می‌شود که آنتروپی اضافی را به مسئله وارد می‌کند. با این کار، اطمینان حاصل می‌شود که هرگونه در پشتی در تولیدکننده اعداد تصادفی، اهمیتی نخواهد داشت. لینوکس قبلا نیز به این شیوه عمل می‌کرد و داده‌هایی را که از RdRand به دست می‌آمد، تصادفی‌تر می‌کرد تا در صورت وجود هرگونه در پشتی، کلید تولیدشده قابل پیش‌بینی نباشد. در یکی از جلسات پرسش و پاسخ اخیر در وب‌سایت Reddit، مدیر اجرایی شرکت اینتل، آقای برایان کرانیچ، به سوالات مربوط به این نگرانی‌ها پاسخ نداد.

البته، این نگرانی تنها مربوط به چیپ های اینتل نیست. توسعه‌دهندگان سیستم عامل FreeBSD، از چیپ های تولیدشده توسط شرکت Via نیز نام بردند. این جنجال‌ها نشان می‌دهد که چرا تولید اعداد تصادفی که واقعا تصادفی بوده و قابل پیش‌بینی نباشند، بسیار مهم است.

 

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

دیدگاهتان را بنویسید لغو پاسخ

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

جالب از سراسر وب

محافظ برق

برقکار شبانه روزی

بیمه موبایل معلم

سرور مجازی ایران

خرید جم فری فایر

داکر

ویدئووال

کرم گاتیو

خرید فالوور

ساخت عکس هوش مصنوعی

فالوور واقعی اینستاگرام

خرید رمان انگلیسی زبان اصلی

مرتبط با همین مطلب

قدرت مغز آزاد شده ظهور هوش مصنوعی ایجنتیک و آینده فراتر از ربات ها
زندگی

قدرت مغز آزاد شده ظهور هوش مصنوعی ایجنتیک و آینده فراتر از ربات ها

4 دقیقه
سری AMD Threadripper PRO 9000WX به زودی قابل خرید خواهد بو
لپ تاپ و کامپیوتر

سری AMD Threadripper PRO 9000WX به زودی قابل خرید خواهد بود

4 دقیقه
سامسونگ برای تثبیت بازدهی تراشه های 2 نانومتری خود به زمان بیشتری نیاز دارد
اخبار موبایل و گجت ها

سامسونگ برای تثبیت بازدهی تراشه های ۲ نانومتری خود به زمان بیشتری نیاز دارد

3 دقیقه
بررسی AMD Ryzen 9 9950X3D با فناوری 3D V Cache قدرت نهایی در چند رشته ای و بازی
لپ تاپ و کامپیوتر

بررسی AMD Ryzen 9 9950X3D با فناوری 3D V-Cache قدرت نهایی در چند رشته ای و بازی

3 دقیقه
روکیداروکیدا
© تمامی حقوق برای رسانه روکیدا محفوظ است.
Welcome Back!

Sign in to your account

Username or Email Address
Password

رمز عبور را فراموش کرده اید؟