صفحه اصلی - دیوار خشک
سنسور اعداد تصادفی روس‌ها «اولین مولد اعداد تصادفی بیولوژیکی» را ارائه کرده‌اند. چگونه کار می کند؟ "کد امنیتی" چه کاری انجام می دهد؟

سه تفاوت اساسی وجود دارد راه های مختلفبه دست آوردن اعداد مورد استفاده به صورت تصادفی: فیزیکی، جدولی و الگوریتمی.

اولین تلاش برای ایجاد یک مولد اعداد تصادفی فیزیکی به 3500 سال قبل از میلاد برمی گردد. و مرتبط است بازی رومیزی Senet، سرگرمی اجتماعی مصر باستان. بر اساس بازسازی های مدرن قوانین بازی، از چهار چوب تخت که یک طرف آن سفید و طرف دیگر مشکی بود، برای تعیین تعداد امتیازات هر بازیکن و ترتیب حرکات در این بازی استفاده می شد. چوب ها همزمان پرتاب می شدند و بسته به ترکیب رنگ هایی که می افتاد، امکانات اضافی برای بازیکنان مشخص می شد. در آغاز قرن بیستم. دنباله ای از اعداد تصادفی به صورت دستی شبیه سازی شد - با پرتاب یک سکه یا تاس، دراز کردن ورق بازی، رولت ، درآوردن توپ از کوزه و غیره حسگرهای فیزیکی (سخت افزاری) مدرن هستند دستگاه های خاص، تولید اعداد تصادفی بر اساس تبدیل نویز تصادفی با منشاء طبیعی یا مصنوعی (نویز حرارتی، اثر شات در لوله های خلاء، واپاشی رادیواکتیو و غیره). مثلا ماشین ERNIE 4 (تجهیزات نشانگر اعداد تصادفی الکترونیکی),

  • 1 گاهی اوقات، اگرچه به ندرت، توزیع مشخص شده توسط جدول 0 1 ... 8 9 استاندارد در نظر گرفته می شود
  • 0.1 0.1 ... 0.1 0.1/ که برای تعیین اعداد برنده در قرعه کشی ماهیانه بریتانیا به عنوان منبع استفاده می شود. متغیرهای تصادفیاز نویز حرارتی ترانزیستورها استفاده می کند. روش فیزیکی بدست آوردن دنباله ای از اعداد تصادفی دارای ویژگی هایی است که برای مدل شبیه سازی معایبی است. اینها اول از همه، نیاز به اقدامات ویژه برای اطمینان از پایداری منبع سیگنال تبدیل شده به اعداد تصادفی و عدم امکان بازتولید توالی حاصل از اعداد تصادفی را شامل می شود.

جداول اعداد تصادفی این معایب را ندارند. اجازه دهید توضیح دهیم که منظور از جدول اعداد تصادفی چیست. فرض کنیم اجرا کرده ایم نآزمایشات مستقلی که در نتیجه آنها اعداد تصادفی a، a 2، osdg را به دست آوردند. با نوشتن این اعداد (به ترتیب شکل ظاهری و به صورت جدول مستطیلی) چیزی به دست می آید که به آن جدول اعداد تصادفی می گویند. به شرح زیر استفاده می شود. در طول محاسبات، ممکن است به یک رقم تصادفی یا یک عدد تصادفی نیاز داشته باشیم. اگر یک عدد تصادفی مورد نیاز است، می‌توانیم هر عددی را از این جدول بگیریم. همین امر در مورد یک عدد تصادفی عدد صحیح صدق می کند - برای هر رقم می توانید هر رقمی را انتخاب کنید. اگر به عدد تصادفی 0 k از ارقام بعدی сс، و 2، ос/ نیاز داشته باشیم، و فرض کنیم که 8 = (Hoco^.-.o^. در این مورد، در مورد جدول "ایده آل" ارقام تصادفی ، می توانیم ارقام را به صورت تصادفی از آن انتخاب کنیم، ممکن است در یک ردیف، شما می توانید از هر الگوریتم انتخابی استفاده کنید که به مقادیر اعداد جدول بستگی ندارد، از هر مکانی در جدول شروع کنید، در هر جهت بخوانید.

اولین جداول اعداد تصادفی با استفاده از رولت به دست آمد. چنین جداول چندین بار به صورت کتاب منتشر شد. یکی از مشهورترین جداول، که در سال 1927 منتشر شد، حاوی بیش از 40000 عدد تصادفی "برگرفته شده به صورت تصادفی از گزارش های سرشماری" بود.

پیشینه تاریخی

لئونارد تیپت (لئونارد هنری کالب تیپت، 1902-1985) - آماردان انگلیسی، شاگرد K. Pearson و R. Fisher. در سال 1965-1966 - رئیس انجمن سلطنتی آمار. برخی از نتایج مهم در نظریه ارزش افراطی با نام او مرتبط است، برای مثال توزیع فیشر-تیپت و قضیه فیشر-تیپت-گندنکو.

بعداً دستگاه های خاصی (ماشین آلات) طراحی شدند که به صورت مکانیکی اعداد تصادفی تولید می کردند. اولین چنین ماشینی در سال 1939 توسط M. J. Kendall و B. Babington-Smith برای ایجاد جداول حاوی 100 هزار رقم تصادفی استفاده شد. در سال 1955 شرکت شرکت رندجداول شناخته شده حاوی یک میلیون رقم تصادفی به دست آمده توسط ماشین دیگری از این نوع را منتشر کرد. کاربرد عملیجداول اعداد تصادفی در حال حاضر، به عنوان یک قاعده، محدود به مسائلی است که در آنها از روش های انتخاب تصادفی استفاده می شود

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

این جالب است

در روسیه، GOST 18321-73 (ST SEV 1934-79) در حال اجرا است، قوانینی را برای انتخاب واحدهای محصولات در نمونه در هنگام انجام کنترل کیفیت پذیرش آماری، روش های آماری تجزیه و تحلیل و تنظیم تنظیم می کند. فرآیندهای تکنولوژیکیبرای انواع محصولات قطعه ای برای مصارف صنعتی و فنی و کالاهای مصرفی. به ویژه بیان می کند که هنگام انتخاب واحدهای محصولات برای نمونه، "جدول اعداد تصادفی مطابق ST SEV 546-77 استفاده می شود."

اعمال مکرر؛ بازتولید همه اعداد آسان است. و عرضه اعداد در چنین ترتیبی محدود است. با این حال، دنباله ای از اعداد شبه یک مزیت آشکار نسبت به جدول دارد: فرمول های ساده ای برای محاسبه یک عدد شبه تصادفی وجود دارد، در حالی که تنها 3-5 دستور برای به دست آوردن هر عدد صرف می شود، و برنامه محاسبه تنها چند خانه را در جدول اشغال می کند. رانندگی کنید.

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

  • Tippett L. اعداد نمونه گیری تصادفی. لندن: انتشارات دانشگاه کمبریج، 1927.
  • رجوع کنید به: Knuth D. E. The Art of Programming. ویرایش 3 M.: Williams, 2000. T. 2. Ch. 3. اعداد تصادفی

2017/09/19، سه شنبه، 13:18، به وقت مسکو ، متن: والریا شمیرووا

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

اخذ پتنت

شرکت کد امنیتی یک حق اختراع برای فناوری حسگر اعداد تصادفی بیولوژیکی دریافت کرد. به گفته توسعه دهندگان، هنگام ایجاد این فناوری، "رویکرد جدیدی برای حل مشکل تولید اعداد تصادفی با استفاده از رایانه و شخص" استفاده شد. این توسعه در حال حاضر در تعدادی از محصولات از جمله Continent-AP، Secret Net Studio، Continent TLS و Jinn و همچنین در کتابخانه رمزنگاری SCrypt استفاده شده است.

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

قابلیت های فناوری

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

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

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

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

تازگی علمی

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

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

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

محصولاتی که از تکنولوژی استفاده می کنند

"قاره" یک مجموعه سخت افزاری و نرم افزاری است که برای رمزگذاری داده ها طراحی شده است. در بخش عمومی روسیه، به عنوان مثال، در خزانه داری استفاده می شود. شامل یک فایروال و ابزارهایی برای ایجاد VPN است. این توسط شرکت NIP Informzashita ایجاد شده است و اکنون توسط Security Code LLC در حال توسعه است.

به طور خاص، سرور دسترسی "Continent" و سیستم حفاظت رمزنگاری اطلاعات "Continent-AP" ماژولی برای دسترسی از راه دور ایمن با استفاده از الگوریتم های GOST هستند و "Continent TLS VPN" سیستمی برای ارائه دسترسی از راه دور ایمن به برنامه های کاربردی وب با استفاده از GOST است. الگوریتم های رمزگذاری

Secret Net Studio است راه حل جامعبرای محافظت از ایستگاه های کاری و سرورها در سطح داده، برنامه، شبکه، سیستم عاملو تجهیزات جانبی، که همچنین یک "کد امنیتی" ایجاد می کند. Jinn-Client برای حفاظت از اطلاعات رمزنگاری شده برای ایجاد امضای الکترونیکی و تجسم قابل اعتماد اسناد طراحی شده است، و Jinn-Server یک مجموعه نرم افزاری و سخت افزاری برای ساختن سیستم های مدیریت اسناد الکترونیکی دارای اهمیت قانونی است.

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

"کد امنیتی" چه کاری انجام می دهد؟

"کد امنیتی" - شرکت روسی، که نرم افزار و سخت افزار را توسعه می دهد. این محصول در سال 2008 تاسیس شد. دامنه این محصول حفاظت از سیستم های اطلاعاتی و مطابقت آنها با استانداردهای بین المللی و صنعتی از جمله حفاظت از اطلاعات محرمانه از جمله اسرار دولتی است. "کد امنیتی" دارای 9 مجوز است خدمات فدرالبرای کنترل فنی و صادرات (FSTEC) روسیه، سرویس امنیت فدرال (FSB) روسیه و وزارت دفاع.

کارکنان این شرکت متشکل از حدود 300 متخصص هستند که توسط 900 شریک مجاز در تمام مناطق روسیه و کشورهای مستقل مشترک المنافع فروخته می شوند. پایگاه مشتری«کد امنیتی» شامل حدود 32 هزار سازمان دولتی و تجاری است.

PRNG های قطعی

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

هر PRNG با منابع محدود دیر یا زود به صورت چرخه ای انجام می شود - شروع به تکرار همان دنباله اعداد می کند. طول چرخه های PRNG به خود ژنراتور بستگی دارد و به طور متوسط ​​حدود 2n/2 است، که در آن n اندازه حالت داخلی بر حسب بیت است، اگرچه ژنراتورهای همگام خطی و LFSR حداکثر چرخه های مرتبه 2n را دارند. اگر یک PRNG بتواند به چرخه هایی که خیلی کوتاه هستند همگرا شود، PRNG قابل پیش بینی و غیرقابل استفاده می شود.

اکثر ژنراتورهای ساده حسابی، اگرچه بسیار سریع هستند، اما از معایب جدی زیادی رنج می برند:

  • دوره/دوره ها خیلی کوتاه هستند.
  • مقادیر متوالی مستقل نیستند.
  • برخی از بیت ها نسبت به بقیه "کمتر تصادفی" هستند.
  • توزیع ناهموار یک بعدی.
  • برگشت پذیری

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

PRNG با منبع آنتروپی یا RNG

همانطور که نیاز به تولید دنباله های اعداد تصادفی به راحتی قابل تکرار است، نیاز به تولید اعداد کاملا غیرقابل پیش بینی یا کاملا تصادفی نیز وجود دارد. چنین ژنراتورهایی نامیده می شوند مولد اعداد تصادفی(RNG - انگلیسی) مولد اعداد تصادفی، RNG). از آنجایی که چنین ژنراتورهایی اغلب برای تولید کلیدهای متقارن و نامتقارن منحصر به فرد برای رمزگذاری استفاده می شوند، اغلب از ترکیبی از PRNG و رمزنگاری ساخته می شوند. منبع خارجیآنتروپی (و دقیقاً این ترکیب است که اکنون معمولاً به عنوان RNG شناخته می شود).

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

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

نمونه هایی از منابع RNG و آنتروپی

چند نمونه از RNG با منابع آنتروپی و مولدهای آنها:

منبع آنتروپی PRNG مزایا ایرادات
/dev/random در لینوکس شمارشگر ساعت CPU، با این حال، فقط در هنگام وقفه های سخت افزاری جمع آوری می شود LFSR، با خروجی هش شده از طریقبرای مدت طولانی "گرم می شود"، می تواند برای مدت طولانی "گیر کند" یا مانند PRNG کار می کند ( /dev/urandom)
بومادرانتوسط بروس اشنایر روش های سنتی (منسوخ شده). AES-256 وطراحی انعطاف پذیر مقاوم در برابر رمزنگاری زمان زیادی طول می کشد تا گرم شود، حالت داخلی بسیار کوچک، بیش از حد به قدرت رمزنگاری الگوریتم های انتخاب شده بستگی دارد، کند، منحصراً برای تولید کلید قابل استفاده است.
ژنراتور توسط لئونید یوریف نویز کارت صدا ? به احتمال زیاد منبع خوب و سریع آنتروپی است هیچ PRNG مستقل و شناخته شده با رمزنگاری قوی، منحصراً به عنوان ویندوز موجود نیست
مایکروسافت ساخته شده در ویندوز، گیر نمی کند وضعیت داخلی کوچک، آسان برای پیش بینی
ارتباط بین رشته ها هنوز انتخاب دیگری در جاوا وجود ندارد، یک وضعیت داخلی بزرگ وجود دارد مجموعه آنتروپی آهسته
آشوب توسط روپتور شمارشگر ساعت پردازنده، به طور مداوم جمع آوری می شود هش کردن حالت داخلی 4096 بیتی بر اساس نوع غیر خطی ژنراتور Marsaglia تا زمانی که سریعتر از همه، وضعیت بزرگ داخلی، "گیر" کند
RRAND از Ruptor شمارنده سیکل CPU رمزگذاری حالت داخلی با رمز جریانبسیار سریع، حالت داخلی با اندازه دلخواه برای انتخاب، بدون "گیر"

PRNG در رمزنگاری

نوعی از PRNG PRBG ها هستند - مولد بیت های شبه تصادفی، و همچنین رمزهای جریانی مختلف. PRNG ها، مانند رمزهای جریان، از یک حالت داخلی (معمولاً در اندازه های 16 بیت تا چندین مگابایت) تشکیل شده اند، تابعی برای مقداردهی اولیه حالت داخلی با یک کلید یا دانه(انگلیسی) دانهتوابع به روز رسانی حالت داخلی و توابع خروجی. PRNG ها به دو دسته محاسباتی ساده، رمزنگاری شکسته و قوی رمزنگاری تقسیم می شوند. هدف کلی آنها تولید دنباله هایی از اعداد است که با روش های محاسباتی نمی توان آنها را از تصادفی تشخیص داد.

اگرچه بسیاری از PRNG ها یا رمزهای جریانی قوی اعداد "تصادفی" بیشتری ارائه می دهند، چنین مولدهایی بسیار کندتر از ژنراتورهای محاسباتی معمولی هستند و ممکن است برای هر نوع تحقیقی که نیازمند آزاد بودن پردازنده برای محاسبات مفیدتر باشد، مناسب نباشند.

برای مقاصد نظامی و در شرایط میدانی، فقط از رمزنگاری های رمزنگاری قوی طبقه بندی شده (رمزهای جریانی) استفاده نمی شود. نمونه هایی از PRNG های معروف رمزنگاری قوی عبارتند از ISAAC، SEAL، Snow، الگوریتم نظری بسیار کند Bloom، Bloom و Shub، و همچنین شمارنده هایی با توابع هش رمزنگاری یا رمزهای بلوکی قوی به جای تابع خروجی.

سخت افزار PRNG

جدا از میراث، ژنراتورهای معروف LFSR که به طور گسترده به عنوان PRNG های سخت افزاری در قرن بیستم مورد استفاده قرار می گرفتند، متأسفانه اطلاعات کمی در مورد PRNG های سخت افزاری مدرن (رمزهای جریانی) وجود دارد، زیرا اکثر آنها برای اهداف نظامی توسعه یافته اند و مخفی نگه داشته می شوند. . تقریباً تمام سخت افزارهای تجاری موجود PRNG ثبت اختراع هستند و همچنین مخفی نگه داشته می شوند. PRNG های سخت افزاری با الزامات سختگیرانه برای حافظه مصرفی (اغلب استفاده از حافظه ممنوع است)، سرعت (1-2 چرخه ساعت) و مساحت (چند صد FPGA - یا

به دلیل فقدان PRNG های سخت افزاری خوب، سازندگان مجبور به استفاده از رمزهای بلاک بسیار کندتر، اما شناخته شده در دسترس هستند (Computer Review No. 29 (2003)

  • یوری لیفشیتس. درس "مشکلات مدرن رمزنگاری" سخنرانی 9: مولدهای شبه تصادفی
  • ال براش. الگوریتم AKS برای بررسی اعداد از نظر اولیه و جستجوی ثابت های مولد اعداد شبه تصادفی
  • ژلنیکوف ولادیمیر. دنباله های شبه تصادفی اعداد // رمزنگاری از پاپیروس به کامپیوتر M.: ABF، 1996.
  • random.org (انگلیسی) - سرویس آنلاین برای تولید اعداد تصادفی
  • اعداد تصادفی رمزنگاری شده
  • تئوری و عمل تولید اعداد تصادفی
  • زوی گوترمن، بنی پینکاس، تزاکی راینمن. تجزیه و تحلیل ژنراتور اعداد تصادفی لینوکس
  • مجموعه آزمایشی آماری برای مولدهای اعداد تصادفی و شبه تصادفی برای برنامه های رمزنگاری NIST SP 800-22
  • PRNG های قطعی

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

    هر PRNG با منابع محدود دیر یا زود به صورت چرخه ای انجام می شود - شروع به تکرار همان دنباله اعداد می کند. طول چرخه های PRNG به خود ژنراتور بستگی دارد و به طور متوسط ​​حدود 2n/2 است، که در آن n اندازه حالت داخلی بر حسب بیت است، اگرچه ژنراتورهای همگام خطی و LFSR حداکثر چرخه های مرتبه 2n را دارند. اگر یک PRNG بتواند به چرخه هایی که خیلی کوتاه هستند همگرا شود، PRNG قابل پیش بینی و غیرقابل استفاده می شود.

    اکثر ژنراتورهای ساده حسابی، اگرچه بسیار سریع هستند، اما از معایب جدی زیادی رنج می برند:

    • دوره/دوره ها خیلی کوتاه هستند.
    • مقادیر متوالی مستقل نیستند.
    • برخی از بیت ها نسبت به بقیه "کمتر تصادفی" هستند.
    • توزیع ناهموار یک بعدی.
    • برگشت پذیری

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

    PRNG با منبع آنتروپی یا RNG

    همانطور که نیاز به تولید دنباله های اعداد تصادفی به راحتی قابل تکرار است، نیاز به تولید اعداد کاملا غیرقابل پیش بینی یا کاملا تصادفی نیز وجود دارد. چنین ژنراتورهایی نامیده می شوند مولد اعداد تصادفی(RNG - انگلیسی) مولد اعداد تصادفی، RNG). از آنجایی که چنین ژنراتورهایی اغلب برای تولید کلیدهای متقارن و نامتقارن منحصربه‌فرد برای رمزگذاری استفاده می‌شوند، اغلب از ترکیبی از یک PRNG قوی رمزنگاری و یک منبع خارجی آنتروپی ساخته می‌شوند (و دقیقاً این ترکیب است که امروزه معمولاً به عنوان یک RNG).

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

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

    نمونه هایی از منابع RNG و آنتروپی

    چند نمونه از RNG با منابع آنتروپی و مولدهای آنها:

    منبع آنتروپی PRNG مزایا ایرادات
    /dev/random در لینوکس شمارشگر ساعت CPU، با این حال، فقط در هنگام وقفه های سخت افزاری جمع آوری می شود LFSR، با خروجی هش شده از طریقبرای مدت طولانی "گرم می شود"، می تواند برای مدت طولانی "گیر کند" یا مانند PRNG کار می کند ( /dev/urandom)
    بومادرانتوسط بروس اشنایر روش های سنتی (منسوخ شده). AES-256 وطراحی انعطاف پذیر مقاوم در برابر رمزنگاری زمان زیادی طول می کشد تا گرم شود، حالت داخلی بسیار کوچک، بیش از حد به قدرت رمزنگاری الگوریتم های انتخاب شده بستگی دارد، کند، منحصراً برای تولید کلید قابل استفاده است.
    ژنراتور توسط لئونید یوریف نویز کارت صدا ? به احتمال زیاد منبع خوب و سریع آنتروپی است هیچ PRNG مستقل و شناخته شده با رمزنگاری قوی، منحصراً به عنوان ویندوز موجود نیست
    مایکروسافت ساخته شده در ویندوز، گیر نمی کند وضعیت داخلی کوچک، آسان برای پیش بینی
    ارتباط بین رشته ها هنوز انتخاب دیگری در جاوا وجود ندارد، یک وضعیت داخلی بزرگ وجود دارد مجموعه آنتروپی آهسته
    آشوب توسط روپتور شمارشگر ساعت پردازنده، به طور مداوم جمع آوری می شود هش کردن حالت داخلی 4096 بیتی بر اساس نوع غیر خطی ژنراتور Marsaglia تا زمانی که سریعتر از همه، وضعیت بزرگ داخلی، "گیر" کند
    RRAND از Ruptor شمارنده سیکل CPU رمزگذاری حالت داخلی با رمز جریانبسیار سریع، حالت داخلی با اندازه دلخواه برای انتخاب، بدون "گیر"

    PRNG در رمزنگاری

    نوعی از PRNG PRBG ها هستند - مولد بیت های شبه تصادفی، و همچنین رمزهای جریانی مختلف. PRNG ها، مانند رمزهای جریان، از یک حالت داخلی (معمولاً در اندازه های 16 بیت تا چندین مگابایت) تشکیل شده اند، تابعی برای مقداردهی اولیه حالت داخلی با یک کلید یا دانه(انگلیسی) دانهتوابع به روز رسانی حالت داخلی و توابع خروجی. PRNG ها به دو دسته محاسباتی ساده، رمزنگاری شکسته و قوی رمزنگاری تقسیم می شوند. هدف کلی آنها تولید دنباله هایی از اعداد است که با روش های محاسباتی نمی توان آنها را از تصادفی تشخیص داد.

    اگرچه بسیاری از PRNG ها یا رمزهای جریانی قوی اعداد "تصادفی" بیشتری ارائه می دهند، چنین مولدهایی بسیار کندتر از ژنراتورهای محاسباتی معمولی هستند و ممکن است برای هر نوع تحقیقی که نیازمند آزاد بودن پردازنده برای محاسبات مفیدتر باشد، مناسب نباشند.

    برای مقاصد نظامی و در شرایط میدانی، فقط از رمزنگاری های رمزنگاری قوی طبقه بندی شده (رمزهای جریانی) استفاده نمی شود. نمونه هایی از PRNG های معروف رمزنگاری قوی عبارتند از ISAAC، SEAL، Snow، الگوریتم نظری بسیار کند Bloom، Bloom و Shub، و همچنین شمارنده هایی با توابع هش رمزنگاری یا رمزهای بلوکی قوی به جای تابع خروجی.

    سخت افزار PRNG

    جدا از میراث، ژنراتورهای معروف LFSR که به طور گسترده به عنوان PRNG های سخت افزاری در قرن بیستم مورد استفاده قرار می گرفتند، متأسفانه اطلاعات کمی در مورد PRNG های سخت افزاری مدرن (رمزهای جریانی) وجود دارد، زیرا اکثر آنها برای اهداف نظامی توسعه یافته اند و مخفی نگه داشته می شوند. . تقریباً تمام سخت افزارهای تجاری موجود PRNG ثبت اختراع هستند و همچنین مخفی نگه داشته می شوند. PRNG های سخت افزاری با الزامات سختگیرانه برای حافظه مصرفی (اغلب استفاده از حافظه ممنوع است)، سرعت (1-2 چرخه ساعت) و مساحت (چند صد FPGA - یا

    به دلیل فقدان PRNG های سخت افزاری خوب، سازندگان مجبور به استفاده از رمزهای بلاک بسیار کندتر، اما شناخته شده در دسترس هستند (Computer Review No. 29 (2003)

  • یوری لیفشیتس. درس "مشکلات مدرن رمزنگاری" سخنرانی 9: مولدهای شبه تصادفی
  • ال براش. الگوریتم AKS برای بررسی اعداد از نظر اولیه و جستجوی ثابت های مولد اعداد شبه تصادفی
  • ژلنیکوف ولادیمیر. دنباله های شبه تصادفی اعداد // رمزنگاری از پاپیروس به کامپیوتر M.: ABF، 1996.
  • random.org (انگلیسی) - سرویس آنلاین برای تولید اعداد تصادفی
  • اعداد تصادفی رمزنگاری شده
  • تئوری و عمل تولید اعداد تصادفی
  • زوی گوترمن، بنی پینکاس، تزاکی راینمن. تجزیه و تحلیل ژنراتور اعداد تصادفی لینوکس
  • مجموعه آزمایشی آماری برای مولدهای اعداد تصادفی و شبه تصادفی برای برنامه های رمزنگاری NIST SP 800-22
  • نرم افزار تقریباً همه رایانه ها دارای عملکرد داخلی برای تولید دنباله ای از اعداد شبه تصادفی شبه تصادفی توزیع شده یکنواخت است. با این حال، برای مدل سازی آماری، نیازهای افزایش یافته در تولید اعداد تصادفی قرار می گیرد. کیفیت نتایج چنین مدلسازی مستقیماً به کیفیت مولد اعداد تصادفی توزیع شده یکنواخت بستگی دارد، زیرا این اعداد همچنین منابع (داده های اولیه) برای به دست آوردن سایر متغیرهای تصادفی با قانون توزیع معین هستند.

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

    برای استفاده در فیزیک محاسباتی، ژنراتور باید دارای ویژگی های زیر باشد:

      راندمان محاسباتی کوتاه ترین زمان محاسباتی ممکن برای چرخه بعدی و میزان حافظه برای اجرای ژنراتور است.

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

    معیار طول کافی یک دنباله شبه تصادفی از ملاحظات زیر انتخاب می شود. روش مونت کارلو شامل محاسبات مکرر پارامترهای خروجی یک سیستم شبیه سازی شده تحت تأثیر پارامترهای ورودی است که با قوانین توزیع داده شده در نوسان هستند. مبنای اجرای روش، تولید اعداد تصادفی با یکنواختتوزیع در بازه ای که از آن اعداد تصادفی با قوانین توزیع داده شده تشکیل می شوند. در مرحله بعد، احتمال رویداد شبیه سازی شده به عنوان نسبت تعداد تکرارهای آزمایش های مدل با نتیجه موفقیت آمیز به تعداد کل تکرار آزمایش ها در شرایط (پارامترهای) اولیه مدل محاسبه می شود.

    برای محاسبه قابل اعتماد، از نظر آماری، این احتمال، تعداد تکرارهای آزمایش را می توان با استفاده از فرمول تخمین زد:

    کجا
    - تابع معکوس تابع توزیع نرمال، - احتمال خطا اندازه گیری احتمال

    بنابراین برای اینکه خطا از فاصله اطمینان فراتر نرود برای مثال با احتمال اطمینان 95/0 = لازم است که تعداد تکرارهای آزمایش کمتر از:

    (2.2)

    به عنوان مثال، برای یک خطای 10٪ ( =0.1) دریافت می کنیم
    و برای خطای 3% ( =0.03) ما قبلاً دریافت کرده ایم
    .

    برای سایر شرایط اولیه مدل، یک سری جدید از تکرار آزمایش ها باید بر روی یک دنباله شبه تصادفی متفاوت انجام شود. بنابراین، یا تابع تولید توالی شبه تصادفی باید پارامتری داشته باشد که آن را تغییر دهد (به عنوان مثال، R 0 ، یا طول آن باید حداقل باشد:

    کجا ک - تعداد شرایط اولیه (نقاط منحنی تعیین شده توسط روش مونت کارلو)، ن - تعداد تکرارهای آزمایش مدل در شرایط اولیه داده شده، L - طول توالی شبه تصادفی.

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

      تکرارپذیری 0 . همانطور که در بالا گفته شد، داشتن پارامتری که تولید اعداد شبه تصادفی را تغییر می دهد، مطلوب است. معمولا این R است 0 کیفیت (یعنی پارامترهای آماری) مولد اعداد تصادفی را خراب نکرد.

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

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

    بنابراین، علاوه بر آزمایش ژنراتور، آزمایش آن با استفاده از مسائل استاندارد که امکان ارزیابی مستقل نتایج را با روش های تحلیلی یا عددی فراهم می کند، بسیار مهم است.



     


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



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

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

    چه گلهایی به برج حمل بدهم؟

    Wobenzym - دستورالعمل* رسمی برای استفاده

    Wobenzym - دستورالعمل* رسمی برای استفاده

    عناصر ماکرو موادی هستند که برای عملکرد طبیعی بدن انسان ضروری هستند. باید به تعداد 25 عدد غذا تامین شود...

    ریز عناصر شامل

    ریز عناصر شامل

    کارمندان یک سازمان که به دلیل فعالیت های خود اغلب در روز چندین بار سفر کاری انجام می دهند معمولاً غرامت ...

    تهیه بارنامه کامیون

    تهیه بارنامه کامیون

    هیچ فرم دقیقی از دستور برای اقدامات انضباطی وجود ندارد. هیچ الزام خاصی برای حجم، محتوای آن وجود ندارد ...

    فید-تصویر RSS