موضوع مقاله: تولیدکننده شماره تصادفی سخت‌افزار | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # تولیدکننده شماره تصادفی سخت‌افزار | مقدمه: در محاسبات، تولیدکننده عدد تصادفی سخت‌افزاری سخت‌افزاری (HRNG) یا تولیدکننده شماره تصادفی واقعی (TRNG) وسیله ای است که به جای استفاده از الگوریتم، اعداد تصادفی را از یک فرایند فیزیکی تولید می کند. | ## بخش 1: تولیدکننده شماره تصادفی سخت‌افزار | چنین دستگاه‌هایی غالباً براساس پدیده‌های میکروسکوپی ساخته شده‌اند که سیگنال‌های «نویز» از نظر آماری کم سطح، مانند نویز حرارتی، اثر فوتوالکتریک، شامل یک شکاف پرتو و سایر پدیده‌های کوانتومی را ایجاد می‌کنند. این فرایندهای تصادفی، از نظر تئوری، کاملاً غیرقابل پیش‌بینی هستند و ادعاهای نظریه غیرقابل پیش‌بینی بودن در معرض آزمایش آزمایشی قرار دارند. این برخلاف پارادایم نسل شبه تصادفی است که معمولاً در برنامه‌های رایانه ای اجرا می‌شود. یک مولد عدد تصادفی سخت‌افزاری به‌طور معمول شامل یک مبدل برای تبدیل برخی از جنبه‌های پدیده‌های بدنی به یک سیگنال الکتریکی، یک تقویت کننده و مدارهای الکترونیکی دیگر برای افزایش دامنه نوسانات تصادفی به یک سطح قابل اندازه‌گیری و نوعی آنالوگ به- می‌باشد. مبدل دیجیتال برای تبدیل خروجی به یک عدد دیجیتالی، اغلب یک رقم باینری ساده ۰ یا ۱. با نمونه برداری مکرر از سیگنال به‌طور تصادفی متفاوت، به یک سری اعداد تصادفی به دست می‌آید. برنامه اصلی تولیدکنندگان شماره تصادفی سخت‌افزار الکترونیکی در رمزنگاری است، جایی که از آنها برای تولید کلیدهای رمزنگاری تصادفی برای انتقال ایمن داده‌ها استفاده می‌شود. آنها به‌طور گسترده‌ای در پروتکل‌های رمزگذاری اینترنت مانند امنیت لایه حمل و نقل (TLS) استفاده می‌شوند. ژنراتورهای شماره تصادفی همچنین با استفاده از دستگاه‌هایی مانند چرخش سکه، تاس، چرخ رولت و ماشین‌های قرعه کشی می‌توانند از فرآیندهای ماکروسکوپی «تصادفی» ساخته شوند. حضور غیرقابل پیش‌بینی در این پدیده‌ها را می‌توان با نظریه سیستم‌های دینامیکی ناپایدار و نظریه آشوب توجیه کرد. اگرچه فرآیندهای ماکروسکوپی تحت مکانیک نیوتن تعیین‌کننده هستند، اما خروجی دستگاهی که به خوبی طراحی شده باشد مانند چرخ رولت نمی‌تواند در عمل پیش‌بینی شود، زیرا این امر به جزئیات حساس و خرد در شرایط اولیه هر استفاده بستگی دارد. اگرچه تاسها بیشتر در قماربازی مورد استفاده قرار می‌گیرند، و به عنوان عناصر «تصادفی» در بازی‌ها (به عنوان مثال بازی‌های نقش آفرینی)، دانشمند ویکتوریا فرانسیس گالتون روشی را برای استفاده از تاس‌ها برای تولید صریح اعداد تصادفی برای اهداف علمی در سال ۱۸۹۰ توصیف کرد. ژنراتورهای شماره تصادفی سخت‌افزار معمولاً فقط تعداد محدودی از بیتهای تصادفی در ثانیه تولید می‌کنند. به منظور افزایش نرخ داده خروجی موجود، آنها اغلب برای تولید " دانه " برای تولید سریعتر شماره رمز تصادفی امن رمزنگاری مورد استفاده قرار می‌گیرند، که پس از آن یک توالی خروجی شبه تصادفی با نرخ داده بسیار بالاتر تولید می‌کند. کاربردها اعداد تصادفی غیرقابل پیش‌بینی برای اولین بار در زمینه قمار مورد بررسی قرار گرفت و بسیاری از دستگاه‌های تصادفی مانند تاس، زدن کارت‌های بازی و چرخ‌های رولت، برای اولین بار برای چنین مواردی تولید شدند. اعداد تصادفی نسبتاً تولید شده برای قمار الکترونیکی بسیار حیاتی هستند و روشهای ایجاد آنها گاهی توسط کمیسیونهای بازی دولت تنظیم می‌شود. اعداد تصادفی نیز برای اهداف غیر قمار استفاده می‌شود، هر دو در مواردی که استفاده از آنها از نظر ریاضی از اهمیت بالایی برخوردار باشد، مانند نمونه برداری برای نظرسنجی‌ها، و در مواقعی که عدالت با تصادفی شدن، مانند پیش نویس‌های قرعه کشی نظامی و انتخاب اعضای هیئت منصفه تقریب می‌شود. رمزنگاری استفاده عمده برای سخت‌افزار مولد عدد تصادفی در زمینه است رمزگذاری داده‌ها، به عنوان مثال برای ایجاد تصادفی کلیدهای رمزنگاری و نانس نیاز به رمزگذاری و امضا داده‌است. آنها یک جایگزین مطمئن تر برای ژنراتورهای شماره شبه تصادفی (PRNG) هستند، برنامه‌های نرم‌افزاری که معمولاً در رایانه‌ها برای تولید شماره‌های «تصادفی» مورد استفاده قرار می‌گیرند. اگرچه این توالی‌های شبه تصادفی تست‌های الگوی آماری را برای تصادفی می‌گذرانند، اما با دانستن الگوریتم و شرایط استفاده شده برای اولیه سازی آن به نام «دانه»، می‌توان خروجی را پیش‌بینی کرد. از آنجا که توالی اعداد تولید شده توسط یک PRNG در اصل قابل پیش‌بینی است، داده‌های رمزگذاری شده با اعداد شبه تصادفی به‌طور بالقوه در برابر رمزنگاری آسیب‌پذیر هستند. ژنراتورهای شماره تصادفی سخت‌افزاری تعداد دنباله‌هایی از اعداد را تولید می‌کنند که تصور می‌شود قابل پیش‌بینی نیستند، و بنابراین بیشترین امنیت را در هنگام استفاده برای رمزگذاری داده‌ها فراهم می‌کنند. کار اولیه یکی از راه‌های اولیه تولید اعداد تصادفی با تنوع دستگاه‌های مشابهی که برای بازی keno یا انتخاب شماره‌های قرعه کشی استفاده می‌شد. این توپ‌های پینگ پنگ با شماره مخلوط با هوای دمیده، که شاید با مکانیکی همراه باشد، و از برخی روش‌ها برای برداشت توپ از محفظه مخلوط کردن استفاده می‌کنند . این روش در برخی حواس نتایج معقول می‌دهد، اما اعداد تصادفی حاصل از این وسیله گران هستند. در ۲۹ آوریل ۱۹۴۷، شرکت رند کورپوریشن شروع به تولید ارقام تصادفی با «چرخ رولت الکترونیکی» کرد، متشکل از یک منبع پالس فرکانس تصادفی در حدود ۱۰۰۰۰۰ پالس در ثانیه یک بار در ثانیه با یک پالس فرکانس ثابت و در یک پیشخوان باینری ۵ بیتی تغذیه می‌شود. هواپیمای داگلاس ساخته شده از تجهیزات، اجرای پیشنهاد سیسیل عجله است (RAND P-113). برای یک منبع سر و صدا (به احتمال زیاد رفتار شناخته شده از گاز مینیاتوری 6D4 تایترون لوله، زمانی که در یک میدان مغناطیسی قرار می‌گیرد). از ۳۲ مقدار پیشخوان احتمالی بر روی ۱۰ رقم اعشار نقشه‌برداری شد و ۱۲ مقادیر پیشخوان دیگر دور انداخته شدند.. جدول RAND موفقیت قابل توجهی در تحویل اعداد تصادفی بود زیرا چنین جدول بزرگ و با دقت آماده شده قبلاً در دسترس نبود. این یک منبع مفید برای شبیه‌سازی، مدل‌سازی، و برای به دست آوردن ثابت‌های دلخواه در الگوریتم‌های رمزنگاری بوده‌است تا نشان دهد ثابت‌ها به طرز مخرب انتخاب نشده بودند. پدیده‌های جسمی با خصوصیات تصادفی خواص تصادفی کلاسیک دو منبع اساسی عملی وجود دارد مکانیک کوانتومی تصادفی فیزیکی: مکانیک کوانتومی در اتمی یا زیر اتمی سطح و نویز حرارتی (که برخی از آنها است مکانیک کوانتومی در اصل). و از آنجا که جهان در دمای بالاتر از صفر مطلق وجود دارد، هر سیستم تغییراتی تصادفی در حالت خود دارد. به عنوان مثال، مولکولهای گازهایی که هوا را تشکیل می‌دهند دائماً به صورت تصادفی در حال پرش از یکدیگر هستند (مکانیک آماری را ببینید .) این تصادفی یک پدیده کوانتومی نیز هست (به فونون مراجعه کنید). از آنجا که نتیجه حوادث کوانتومی مکانیکی حتی در اصل قابل پیش‌بینی نیست، آنها " استاندارد طلا " برای تولید عدد تصادفی هستند. برخی از پدیده‌های کوانتومی مورد استفاده برای تولید عدد تصادفی عبارتند از: سر و صدای شات، منبع نویز مکانیکی کوانتومی در مدارهای الکترونیکی. جمع‌آوری نویز برای استفاده برخی از مشکلات را ایجاد می‌کند، اما این یک منبع صوتی تصادفی مخصوصاً ساده است. با این حال، انرژی سر و صدا شات همیشه به خوبی در سراسر پهنای باند مورد علاقه توزیع نمی‌شود. دیودهای گازی و لوله‌های الکترونی تایترون در یک میدان مغناطیسی متقابل می‌توانند انرژی سر و صدای قابل توجهی تولید کنند (۱۰ ولت یا بیشتر در بارهای امپدانس بالا) اما توزیع انرژی بسیار اوج دارند و برای دستیابی به صافی در طیف گسترده‌ای نیاز به فیلتر دقیق دارند.. یک منبع تابش پوسیدگی هسته ای، توسط یک پیشخوان Geiger متصل به یک کامپیوتر شناسایی شده‌است. وقایع متقابل منحصر به فرد (بازتاب / انتقال) به ترتیب با مقادیر بیت «۰» یا «۱» مرتبط هستند. | ## بخش 2: تولیدکننده شماره تصادفی سخت‌افزار | فرستنده با الکترون اشباع شده و گهگاهی از طریق شکاف باند تونل می‌شود و از طریق پایه خارج می‌شود. سپس این سیگنال از طریق چند ترانزیستور دیگر تقویت می‌شود و نتیجه در ماشه اشمیت قرار می‌گیرد. تبدیل پارامتری خود به خودی منجر به انتخاب حالت فاز باینری در یک نوسانگر پارامتری نوری انحطاط. آنها با کاهش دمای سیستم تا حدودی در معرض حمله قرار می‌گیرند، اگرچه بیشتر سیستم‌ها در دماهای کم به اندازه کافی متوقف می‌شوند تا نویز را با یک عامل دو کاهش دهند (به عنوان مثال، ۱۵۰ پوند). برخی از پدیده‌های حرارتی مورد استفاده عبارتند از: نویز حرارتی از یک مقاومت، تقویت شده برای تهیه منبع ولتاژ تصادفی. سر و صدای جوی، توسط یک گیرنده رادیویی متصل به رایانه شخصی (اگرچه بسیاری از آن، مانند سر و صدا رعد و برق، به‌طور صحیح سر و صدای حرارتی نیستند، اما به احتمال زیاد یک پدیده آشوب آور است). در صورت عدم وجود اثرات کوانتومی یا سر و صدای حرارتی، می‌توان از پدیده‌های دیگری که تصادفی هستند، استفاده کرد، اگرچه به روش‌هایی که به راحتی توسط قوانین فیزیک مشخص نمی‌شوند، قابل استفاده هستند. نقطه ضعف این است که یک مهاجم با دانش کافی می‌تواند به‌طور ناگهانی نرم‌افزار یا ورودی‌های آن را تغییر دهد، بنابراین تصادفی خروجی، از نظر قابل ملاحظه ای را کاهش می‌دهد. منبع اصلی تصادفی که به‌طور معمول در چنین رویکردهایی مورد استفاده قرار می‌گیرد، زمان‌بندی دقیق وقفه‌های ناشی از دستگاه‌های ورودی / خروجی مکانیکی مانند صفحه کلید و درایو دیسک، شمارنده اطلاعات مختلف سیستم و غیره است. این رویکرد آخر باید با دقت اجرا شود و در صورت نبود ممکن است مورد حمله قرار گیرد. به عنوان مثال، امنیت روبرو ژنراتور در هسته ۲٫۶٫۱۰ هسته لینوکس می‌تواند با ۲ پیچیدگی زمانی 64 یا 2 96 شکسته شود. رانش ساعت یکی دیگر از پدیده‌های بدنی متغیر که اندازه‌گیری آن آسان است، رانش ساعت است. روش‌های مختلفی برای اندازه‌گیری و استفاده از رانش ساعت به عنوان منبع تصادفی وجود دارد. از یک منبع نویز حرارتی (نویز غیر متداول از دو دیود) برای تعدیل فرکانس نوسان ساز آهسته استفاده می‌شود که سپس اندازه‌گیری نوسان ساز سریع را انجام می‌دهد. این تراشه یک جزء اختیاری از خانواده تراشه ۸۴۰ بود که از یک اتوبوس قبلی اینتل پشتیبانی می‌کردند. تمام ریزپردازنده‌های VIA C3 از سال ۲۰۰۳ دارای یک RNG سخت‌افزاری در تراشه پردازنده هستند. بجای استفاده از نویز حرارتی، بیت‌های خام با استفاده از چهار اسیلاتور آزاد کننده طراحی می‌شوند که برای کار با سرعت‌های مختلف طراحی شده‌اند. خروجی دو از XORed برای کنترل تعصب بر روی یک نوسان ساز سوم، که خروجی آن خروجی نوسان ساز چهارم را برای تولید بیت خام قفل می‌کند. تغییرات جزئی در دما، خصوصیات سیلیکون و شرایط الکتریکی محلی باعث ادامه تغییرات سرعت نوسانگر می‌شود و در نتیجه آنتروپی بیت‌های خام تولید می‌شود. برای اطمینان بیشتر از تصادفی بودن، در واقع دو RNG از این نوع وجود دارد که هر یک در محیط‌های مختلف قرار گرفته و روی سیلیکون چرخانده می‌شوند. میزان خروجی خام ده‌ها صدها مگابیت در ثانیه است و میزان سفید شدن آن نیز چند مگابیت در ثانیه است. نرم‌افزار کاربر می‌تواند با استفاده از دستورالعمل‌های جدید زبان غیر ممتاز ماشین، به بیت تصادفی ایجاد شده دسترسی پیدا کند. بیشتر رایانه‌های مدرن دارای دو نوسان ساز کریستالی هستند، یکی برای ساعت واقعی و دیگری ساعت اصلی پردازنده. از یک سرویس سیستم عامل استفاده می‌کند که زنگ خطر را خاموش می‌کند و ساعت زمان واقعی را خاموش می‌کند. یکی از زیرروال‌ها زنگ هشدار را برای خاموش شدن در یک ساعت (معمولاً ۱/۶۰ ثانیه) تنظیم می‌کند. از آنجا که زنگ هشدار همیشه دقیقاً با یک فشار شروع نمی‌شود، کمترین میزان قابل توجهی از تعداد تکرارهای حلقه، بین تنظیم زنگ و ماشه آن، به‌طور تصادفی متفاوت خواهد بود، احتمالاً برای برخی موارد استفاده کافی است. Truerand به سخت‌افزار اضافی احتیاج ندارد، اما در یک سیستم چند کاره باید دقت زیادی شود تا از مداخله غیر تصادفی در سایر فرایندها جلوگیری شود (به عنوان مثال، در حالت تعلیق فرایند حلقه شمارش به عنوان برنامه‌ریز سیستم عامل شروع و متوقف می‌شود) کدگذاری RDRAND مقادیر تولیدکننده شماره تصادفی سخت‌افزار پردازنده را برمی‌گرداند. برخورد با تعصب جریان بیت از چنین سیستم‌هایی مستعد مغرضانه است، یا ۱ یا ۰ بر آنها غالب است. یک روش برای تصحیح این بازخورد جریان بیت تولید شده، فیلتر شده توسط یک فیلتر کم گذر، برای تنظیم سوگیری ژنراتور است. ژنراتورهای شماره تصادفی با سرعت فوق‌العاده بالا اغلب از این روش استفاده می‌کنند. سفید کردن نرم‌افزار رویکرد دوم برای کنار آمدن جانبداری، کاهش آن پس از تولید (در نرم‌افزار یا سخت‌افزار) است. حتی اگر مراحل کاهش تعصب سخت‌افزار فوق نیز برداشته شده‌است، باید فرض شود که جریان بیت حاوی تعصب و همبستگی است. روش‌های مختلفی برای کاهش تعصب و همبستگی وجود دارد، که اغلب به آن الگوریتم‌های «سفید کردن» گفته می‌شود، با قیاس با مشکل مرتبط با تولید نویز سفید از یک سیگنال در ارتباط. روش دیگری وجود دارد، تست پویا-استاتیک، که باعث می‌شود یک بررسی تصادفی استاتیک در هر بلوک شماره تصادفی به صورت پویا انجام شود. در این روش، اگر یک بلوک به عنوان یک مشکوک تعیین شود، این بلوک نادیده گرفته می‌شود و لغو می‌شود. این دو بیت را به‌طور همزمان (غیر همپوشانی) در نظر می‌گیرد و یکی از سه عمل را انجام می‌دهد: وقتی دو بیت پی در پی برابر باشند، آنها دور انداخته می‌شوند. دنباله ای از ۱ می‌شود ۱؛ و دنباله ۰/۰ به یک صفر تبدیل می‌شود؛ بنابراین نمایانگر حاشیه نزولی با ۱ و یک لبه رو به رشد با ۰ است. این تعصب ساده را از بین می‌برد و به راحتی به عنوان یک برنامه رایانه ای یا با منطق دیجیتالی قابل اجرا است. آنچه می‌تواند انجام دهد (با تعداد قابل توجهی از بیت‌های دور انداخته شده) تبدیل یک جریان بیتی تصادفی مغرضانه به یک جریان غیرمستقیم است. تکنیک دیگر برای بهبود یک جریان بیتی تقریباً تصادفی، انحصاری یا بیت جریان با خروجی مولد عدد شبه تصادفی با کیفیت بالا از لحاظ رمزنگاری ایمن مانند Blum Blum Shub یا یک رمزگذار جریان قوی است. این کار توسط سخت‌افزار مانند FPGA انجام می‌شود که سریعتر از انجام آن توسط نرم‌افزار است. | ## بخش 3: تولیدکننده شماره تصادفی سخت‌افزار | یک روش مرتبط که باعث کاهش تعصب در یک جریان بیت تقریباً تصادفی می‌شود، دو یا چند جریان غیرقابل ربط در نزدیکی جریان بیت تصادفی و منحصر به فرد بودن آنهاست. اگر دو جریان بیت نامربوط با بایاس e منحصر به فرد یا یکپارچه باشند، سوگیری نتیجه 2 e 2 خواهد بود. برخی از طرح‌ها توابع هش رمزنگاری مانند MD5، SHA-1، یا RIPEMD-160 یا حتی یک عملکرد CRC را برای همه یا بخشی از جریان بیت اعمال می‌کنند، و سپس از خروجی به عنوان جریان بیتی تصادفی استفاده می‌کنند. این جذاب است، تا حدودی زیرا در مقایسه با بعضی از روش‌های دیگر نسبتاً سریع است، اما به ویژگی‌های خروجی هش که ممکن است مبنای نظری کمی داشته باشد، به میزان قابل توجهی بستگی دارد. بسیاری از پدیده‌های جسمی می‌توانند برای تولید بیت‌هایی که بسیار مغرضانه هستند، مورد استفاده قرار گیرند اما هر بیت از بقیه مستقل است. پیشخوان Geiger (با زمان نمونه طولانی‌تر از زمان بازیابی لوله) یا یک آشکارساز فوتون آینه نیمه شفاف، هر دو جریان بیتی را تولید می‌کنند که بیشتر "۰" (خاموش یا انتقال) با گاه به گاه "۱" (کلیک یا بازتاب) هستند. اگر هر بیت از بقیه مستقل باشد، استراتژی فون نویمان یک بیت خروجی تصادفی و بی‌طرف برای هر یک از بیت‌های نادر "۱" در چنین جریان بیت بسیار مغرضانه تولید می‌کند. می‌توانند بیت‌های بیشتری را تولید کنند - بیت‌های خروجی که به همان اندازه تصادفی و بی‌طرف هستند - از چنین جریان بیت بسیار مغرضانه.. PRNG با کلید تصادفی تجدید دوره ای سایر طرح‌ها از آنچه که گفته می‌شود بیت‌های تصادفی واقعی است، به عنوان کلید الگوریتم رمزنگاری بلوک با کیفیت بالا استفاده می‌کنند و از خروجی رمزگذاری شده به عنوان جریان بیت تصادفی استفاده می‌کنند. در برخی از پیاده‌سازی‌ها، PRNG برای تعداد محدودی از رقم اجرا می‌شود، در حالی که دستگاه تولیدکننده سخت‌افزار بذر جدیدی تولید می‌کند. با استفاده از وقایع مشاهده شده مهندسان نرم‌افزار بدون تولیدکننده شماره تصادفی واقعی اغلب سعی می‌کنند با اندازه‌گیری رویدادهای بدنی در دسترس نرم‌افزار، آنها را توسعه دهیم. مثالی اندازه‌گیری زمان بین کلیدهای کاربری کاربر، و سپس گرفتن حداقل بیت معنی دار (یا دو یا سه) از تعداد به عنوان رقم تصادفی است. یک رویکرد مشابه، برنامه‌ریزی وظیفه، بازدید از شبکه، زمان جستجوی دیسک و سایر رویدادهای داخلی را اندازه‌گیری می‌کند. یکی از طراحی‌های مایکروسافت شامل لیست بسیار طولانی چنین مقادیر داخلی است، نوعی تولیدکننده عدد شبه تصادفی از نظر رمزنگاری. از لامپ‌های گدازه نیز به عنوان دستگاه‌های فیزیکی برای نظارت استفاده شده‌است، مانند سیستم لاراند. این روش هنگام استفاده از رویدادهای تحت کنترل رایانه ریسک است زیرا یک مهاجم باهوش و مخرب ممکن است با کنترل وقایع خارجی بتواند یک کلید رمزنگاری را پیش‌بینی کند. این همچنین خطرناک است زیرا ممکن است رویداد ایجاد شده توسط کاربر (به عنوان مثال، کلیدها) توسط یک مهاجمی که به اندازه کافی مبتکر است فریب داده شود و کنترل «مقادیر تصادفی» مورد استفاده توسط رمزنگاری را کنترل کند. طرح اصلی حفظ «استخر آنتروپی» از بیت‌های تصادفی است که تصور می‌شود برای یک مهاجم ناشناخته است. تصادفی جدید در هر زمان موجود اضافه می‌شود (برای مثال، هنگامی که کاربر به یک کلید برخورد می‌کند) و تخمین تعداد بیت‌های موجود در استخر که نمی‌تواند برای یک مهاجم شناخته شود، نگه داشته می‌شود. برخی از راهبردهای مورد استفاده عبارتند از: در صورت درخواست بیت‌های تصادفی، تعداد زیادی از بیت‌های حاصل از استخر آنتروپی (با استفاده از یک عملکرد هش رمزنگاری) را تخمین بزنید و تخمین تعداد بیت‌های تصادفی باقیمانده در استخر را کاهش دهید. این طراحی سطح بالا دستگاه " / dev / تصادفی " در لینوکس است که توسط تئودور تسو نوشته شده و در بسیاری از سیستم عاملهای مشابه یونیکس استفاده شده‌است. اعداد تصادفی با کیفیت بالا را تا زمانی که تخمین‌های تصادفی ورودی به اندازه کافی محتاط باشند فراهم می‌کند. دستگاه لینوکس "/ dev / urandom" یک اصلاح ساده است که به برآورد تصادفی ورودی توجه نمی‌کند، و به همین دلیل احتمالاً آنپروپی زیاد در نتیجه کمتری دارد. هنگامی که بیت کافی آنتروپی جمع‌آوری شد، مقادیر تصادفی جدید را با کلید و IV جایگزین کرده و آنتروپی تخمین زده شده در استخر را کاهش دهید. این مقاومت در برابر برخی از حملات را فراهم می‌کند و آنتروپی را به دست می‌آورد که به سختی به دست می‌آید. چالش‌ها و مسائل نادرست ساختن سخت‌افزار یا دستگاه‌های نرم‌افزاری که سعی در تولید اعداد تصادفی دارند بسیار آسان است. همچنین، اکثر آنها «بی صدا» می‌شکنند و معمولاً هنگام تخریب تعداد آنها به‌طور تصادفی کاهش می‌یابد. یک مثال فیزیکی ممکن است کاهش سریع رادیواکتیویته آشکارسازهای دود باشد که قبلاً ذکر شد. حالت‌های خرابی در چنین دستگاه‌هایی بسیار زیاد هستند و تشخیص آنها پیچیده، کند و سخت است. بسیاری از دستگاه‌ها، اما نه همه اینها، برخی از آزمایشات را در نرم‌افزاری که دستگاه را می‌خواند، شامل می‌کنند. حملات درست مانند سایر اجزای سیستم رمزنگاری، باید یک مولد عدد تصادفی نرم‌افزاری نیز طراحی شود تا در مقابل حملات خاصی مقاومت کند. ژنراتور عدد تصادفی مورد استفاده برای اهداف رمزنگاری در نسخه ۱٫۱ از مرورگر Netscape آسیب‌پذیر بود و در نسخه ۲٫۰ رفع شد. برآورد آنتروپی تکنیک‌های ریاضی برای تخمین آنتروپی دنباله ای از نمادها وجود دارد. به عنوان مثال، اینها برای تعیین اینکه آیا آنتروپی کافی در یک استخر بذر وجود دارد، مفید هستند، اما به‌طور کلی آنها نمی‌توانند یک منبع تصادفی واقعی و یک مولد شبه تصادفی را تشخیص دهند. آزمون عملکرد برای عملکرد مناسب، باید ژنراتورهای شماره تصادفی سخت‌افزار مورد نظارت قرار گیرند. از آنجا که بسیاری از طرح‌های عملی به یک منبع سخت‌افزاری به عنوان ورودی متکی هستند، حداقل بررسی اینکه هنوز منبع هنوز کار می‌کند، مفید خواهد بود. برای مثال، آزمایشهای آماری اغلب می‌توانند از خرابی یک منبع نویز، مانند ایستگاه رادیویی که در یک کانال منتقل می‌شود، خالی باشد. در حالی که تشخیص یک انحراف بزرگ از کمال می‌تواند نشانه ای باشد که یک منبع صوتی تصادفی واقعی تخریب شده‌است، انحرافات کوچک طبیعی است و می‌تواند نشانه ای از عملکرد مناسب باشد. همبستگی سوگیری در ورودی‌ها به طرح ژنراتور با پارامترهای دیگر (به عنوان مثال، دمای داخلی، ولتاژ اتوبوس) ممکن است علاوه بر این به عنوان یک بررسی بیشتر مفید باشد. متأسفانه، با آزمون‌های موجود (و پیش‌بینی شده)، گذراندن چنین آزمایش‌هایی برای اطمینان از توالی خروجی تصادفی کافی نیست. | ## جمع‌بندی | یک طراحی با دقت انتخاب شده، تأیید اینکه دستگاه تولیدی از آن طراحی و امنیت جسمی مستمر برای تضمین در برابر دستکاری استفاده کند، ممکن است علاوه بر آزمایش برای مصارف با ارزش بالا، همه مورد نیاز باشد.