ماشین‌حساب‌های ریاضی
تولیدکننده عدد


تولیدکننده عدد

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

گزینه‌ها

اعداد تصادفی

48, 9, 49, 11, 17, 22, 16, 37, 45, 41, 4, 36, 43, 10, 28, 27, 47, 25, 21, 33

در محاسبه شما خطایی رخ داد.

فهرست مطالب

  1. کاربرد تولیدکننده‌های عدد تصادفی
  2. تفاوت بین یک دنباله تصادفی و غیرتصادفی
  3. انواع تولیدکننده‌های عدد تصادفی
  4. تولیدکننده گوگل
  5. روش خطی همنهشتی
  6. تولیدکننده‌های عدد تصادفی سخت‌افزاری مدرن
    1. QRBG121
    2. چراغ‌های لاوا
    3. هات‌بیتس
    4. نوسانات کوانتومی خلا
    5. تولیدکننده نانولوله کربنی
    6. مکعب‌ها و بنیاد مرز الکترونیکی (EFF)
    7. تولیدکننده عدد تصادفی کوانتومی از یک گوشی هوشمند نوکیا

تولیدکننده عدد

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

کاربرد تولیدکننده‌های عدد تصادفی

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

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

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

تفاوت بین یک دنباله تصادفی و غیرتصادفی

فرض کنید یک دنباله از اعداد وجود دارد: 1 , 2 , 3 , 4 , 5. آیا تصادفی است؟

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

فرض کنید اعداد داده شده با تایپ کردن روی یکی از ردیف‌های بالای صفحه کلید به دست آمده‌اند. در این صورت، معلوم می‌شود که این ترکیب تصادفی نیست زیرا پس از 5، عدد بعدی، 6، با احتمال بالایی قابل پیش‌بینی است.

یک دنباله فقط زمانی تصادفی خواهد بود که هیچ وابستگی بین نمادها وجود نداشته باشد.

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

به عنوان مثال، اگر برای اولین بار یک تاس شش‌وجهی را بیندازید، می‌توانید هر عددی از 1 تا 6 را با همان احتمال بیاندازید. صرف نظر از اینکه چه عددی بیرون بیاید، می‌توانید مجدداً تاس را با همان شانس برای گرفتن همان عدد در دومین، صدمین، یا هزارمین پرتاب بیندازید.

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

مؤسسه ملی استانداردها و فناوری آمریکا "بسته آزمایش آماری برای تولیدکننده‌های عدد تصادفی و نیمه‌تصادفی برای کاربردهای رمزنگاری" را پیشنهاد کرده است. این شامل 15 آزمایش آماری است که هدف آن تعیین میزان تصادفی‌سازی بیت‌های تولید شده توسط تولیدکننده‌های سخت‌افزاری یا نرم‌افزاری است.

انواع تولیدکننده‌های عدد تصادفی

دو نوع تولیدکننده عدد تصادفی (RNG) وجود دارد: تولیدکننده‌های عدد تصادفی واقعی (TRNG) و تولیدکننده‌های عدد نیمه‌تصادفی (PRNG). TRNG‌ها از پدیده‌های فیزیکی برای تولید اعداد استفاده می‌کنند، در حالی که PRNG‌ها از الگوریتم‌های ریاضی استفاده می‌کنند.

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

تولیدکننده‌های عدد تصادفی واقعی از پدیده‌های فیزیکی مانند:

  • رادیواکتیویته،
  • نویز حرارتی،
  • نویز الکترومغناطیسی،
  • مکانیک کوانتومی، و دیگران.

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

تولیدکننده‌های عدد تصادفی از منابع آنتروپی برای جمع‌آوری آنتروپی و به دست آوردن مقدار اولیه (بذر) مورد نیاز توسط تولیدکننده‌های عدد تصادفی استفاده می‌کنند.

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

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

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

علاقه‌مندان به بازی‌های ویدئویی سرعتی اغلب از این آسیب‌پذیری سوءاستفاده می‌کنند - آنها آن را دستکاری PRNG می‌نامند. آنها بازی را به گونه‌ای پیش‌بینی‌پذیر اجرا می‌کنند تا بتوانند آن را به سرعت ممکن پشت سر بگذارند. خوشبختانه، این مشکلات بحرانی را به دنبال ندارد.

اما زمان‌هایی وجود دارد که پیش‌بینی اعداد تصادفی بسیار حیاتی‌تر است. مثلاً هنگام ایجاد کلیدهای امنیتی.

اگر مهاجم مقدار اولیه استفاده شده برای ایجاد کلیدهای RSA در گواهینامه‌های TLS را کشف کند، احتمالاً می‌تواند ترافیک شبکه را رمزگشایی کند. این بدان معناست که می‌تواند رمزهای عبور و سایر اطلاعات شخصی ارسال شده از طریق اینترنت را به دست آورد.

در این موقعیت‌ها، روشی امن‌تر برای به دست آوردن اعداد تصادفی، یعنی تولیدکننده عدد تصادفی واقعی، نیاز است.

تولیدکننده گوگل

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

روش خطی همنهشتی

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

برای پیاده‌سازی تولید اعداد با این روش، ما نیاز به انتخاب چهار عدد داریم:

m > 0، مدولو

0 ≤ a ≤ m، ضریب

0 ≤ c ≤ m، افزایش

0 ≤ X₀ ≤ m، عدد اولیه

دنباله اعداد تصادفی خود با استفاده از فرمول زیر تولید می‌شود:

Xₙ₊₁ = (aXₙ + c) mod m

ارزش ذکر است که این روش به انتخاب پارامترها بستگی دارد.

برای مثال، برای مجموعه زیر:

X₀ = 3, a = 4, c = 5, m = 6

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

3, 5, 1, 3, 5, 1

به دست می‌آوریم که تصادفی به نظر نمی‌رسد.

اما ارزش دارد که پارامترها را به چیز دیگری تغییر دهیم:

X₀ = 2, a = 85, c = 507, m = 1356

و پراکندگی نتایج نامشخص‌تر می‌شود. شما باید اعداد را برای این الگوریتم با دقت خاصی انتخاب کنید.

2، 677، 1100، 443، 194، 725، 1112، 107، 110، 365، 344، 1271، 62، 353، 680، 1355، 422، 1121، 872، 47، 434، 785، 788، 1043، 1022، 593، 740، 1031، 2، 677، 1100، 443، 194، 725، 1112، 107، 110، 365، 344، 1271، 62، 353، 680، 1355، 422، 1121، 872، 47، 434، 785، 788، 1043، 1022، 593، 740، 1031، 2، 677، 1100، 443، 194، 725، 1112، 107، 110، 365...

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

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

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

QRBG121

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

چراغ‌های لاوا

دفتر سان فرانسیسکوی کلودفلر میزبان تولیدکننده‌های عدد تصادفی به نام "چراغ‌های لاوا" است. چنین چراغی یک ظرف شیشه‌ای پر از روغن شفاف و پارافین نیمه‌شفاف است. پارافین کمی سنگین‌تر از روغن است، اما هنگامی که کمی گرم می‌شود، سبک‌تر شده و به بالا شناور می‌شود.

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

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

هات‌بیتس

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

نوسانات کوانتومی خلا

برخلاف نام آن ("vacuus" به معنی خالی)، خلا را نمی‌توان خالی در نظر گرفت. تحت اصل عدم قطعیت هایزنبرگ، ذرات مجازی به طور پیوسته متولد و می‌میرند.

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

در طیف تابش پراکنده، خطوط طیفی ظاهر می‌شوند. به دلیل غیرقابل پیش‌بینی بودن نوسانات خلا، این خطوط هر بار به روش‌های غیرقابل پیش‌بینی متفاوت هستند.

تولیدکننده نانولوله کربنی

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

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

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

مکعب‌ها و بنیاد مرز الکترونیکی (EFF)

این شرکت روشی ساده برای ایجاد رمزهای عبور امن با استفاده از یک تولیدکننده عدد تصادفی فیزیکی پیشنهاد داده است. این روش بر اساس تاس است.

برای مثال، شما پنج تاس را به طور همزمان پرتاب می‌کنید و اعداد حاصل را یادداشت می‌کنید. تاس‌ها از چپ به راست به ترتیب زیر چیده می‌شوند: 63131. سپس، شما یک لیست طولانی از کلمات را در وبسایت EFF باز می‌کنید تا کلمه متناظر با 63131 را پیدا کنید. آن کلمه "turbofan" است.

شما می‌توانید این روند را چندین بار تکرار کنید. برای مثال، پنج بار. شما ممکن است در نهایت با عبارتی از پنج کلمه روبرو شوید. بگوییم، "turbofan purge unfitting try pruning." اگر بدانید چگونه از قوانین تصویرسازی ذهنی استفاده کنید، می‌توانید عبارت‌هایی مانند این را به خاطر بسپارید.

تولیدکننده عدد تصادفی کوانتومی از یک گوشی هوشمند نوکیا

در سال 2014، دانشگاه ژنو یک دستگاه QRNG ساخت که از دوربین گوشی هوشمند نوکیا N9 استفاده می‌کرد.

دوربین گوشی تعداد فوتون‌هایی که به هر پیکسل می‌خورد را محاسبه می‌کرد. منبع نور یک LED استاندارد بود. هر پیکسل در دوربین 8 مگاپیکسلی حدود 400 فوتون را در مدت زمان کوتاهی تشخیص داد. سپس تعداد کل فوتون‌ها در تمام پیکسل‌ها به دنباله‌ای از اعداد تصادفی تبدیل شد.