امنیت سیستم های وابسته به برخی داده های سِرّی است که تنها برای افراد خاصی شناخته شده است و برای سایرین، ناشناخته و غیرقابل پیش بینی می باشد. . برای دستیابی به این خاصیت غیرقابل پیش بینی بودن، انواع مختلفی از تصادفی سازی به کار گرفته می شود. مدرن اغلب به تولید مکرر مقادیر تصادفی نیاز دارند. حملات رمزنگاری که باعث ایجاد ضعف یا برهم زدن این فرایند شوند، به عنوان شناخته می شوند. 
 تقریباً همیشه یک فرایند با کیفیت بالا (RNG) برای امنیت لازم است و به طور کلی، عدم کیفیت باعث ایجاد آسیب پذیری در مقابل حملات و در نتیجه منجر به عدم امنیت در سیستم های رمزنگاری می شود. فرایند RNG از نظر مهاجمین بسیار جذاب است زیرا معمولاً پیدا کردن یک سخت افزار یا نرم‌افزار ایزوله و مجزا آسان است. اگر مهاجم بتواند بیت های شبه تصادفی تولید شده را به روشی که قابل پیش بینی باشد جایگزین کند، امنیت کاملاً به خطر می افتد، با این حال با هر تستی غیر قابل کشف خواهد بود. علاوه بر این، چنین حملاتی تنها به دسترسی واحد به سیستمی که به خطر افتاده نیاز دارد و برخلاف که را دزدیده و سپس آنها را به بعضی از نقاط ارسال می کند، نیازی به ارسال اطلاعات نیست. 
 معمولاً انسانها در تولید مقادیر تصادفی ضعیف عمل می کنند. حرفه ی جادوگران و قماربازهای حرفه ای نیز به قابل پیش بینی بودن رفتار انسان وابسته هستند. در به کارمندان رمزنگاری آلمانی دستور داده شد تا سه حرف را به طور تصادفی به عنوان تنظیم اولیه روتور برای هر انتخاب کنند. در عوض برخی از آنها مقادیر قابل پیش بینی را انتخاب کردند و کمک بزرگی به متفقین در شکستن این سیستم های رمزگذاری شده کردند. مثال دیگر، ، روش های اغلب قابل پیش بینی است که کاربران کامپیوتر برای انتخاب رمزهای عبور استفاده می کنند. (به مراجعه کنید). 
 با این وجود ، در مورد خاص بازی های ، استفاده از گیم پلی انسانی برای تولید تصادفی توسط ران هالپرین و مورد بررسی قرار گرفت. 
 مولد عدد تصادفی نرم‌افزار نیز، مانند سایر اجزای سیستم رمزنگاری، باید طوری طراحی شود تا در مقابل حملات مشخصی مقاومت کند. (از ): 
 
 
 
 
 
 تعدادی حمله به مولد های عدد تصادفی سخت افزاری امکان پذیر است، از جمله تلاش برای ضبط انتشار فرکانس های رادیویی انتشار یافته از رایانه (مانند به دست آوردن زمان های قطع از سر و صدای موتور)، یا تلاش برای تغذیه سیگنال های کنترل شده در یک منبع ظاهراً تصادفی (مانند خاموش کردن چراغ ها در یک لامپ گدازه یا تغذیه یک سیگنال قوی و شناخته شده در کارت صوتی). 
 واژگون را می توان با استفاده از یک با ارزش دانه شناخته شده برای مهاجم ایجاد کرد اما ب طوری که در نرم‌افزار پنهان شده باشد. 24 - 40 بیتی از بذر برای جلوگیری از تکرار، می تواند واقعاً تصادفی باشد، اما نه به اندازه ای که برای جلوگیری از بهبودی مهاجم کافی باشد. 
 اعداد تصادفی معمولاً قبل از اینکه استفده شوند، از چند لایه نرم‌افزاری و سخت افزاری عبور میکنند. بیت ها ممکن است در یک دیوایس جانبی تولید شده، توسط کابل های سری ارسال شده، در  یک سیستم عامل جمع آوری شده و توسط یک فراخوانی سیستم، بازیابی شوند. بیت های واژگون شده میتوانند در هر مرحله از این پروسه، با احتمال کمی تشخیص، جایگزین (تعویض) شوند. 
 یک مدار سخت افزاری برای تولید بیت های واژگون شده می تواند در یک چند میلی متر مربعی ساخته شود. پیشرفته ترین تولیدکننده عدد تصادفی سخت افزاری را می توان با قرار دادن چنین تراشه ای بالای مکانی که منبع تصادفی در آن دیجیتالی شده است، مثلاً در یک تراشه درایور خروجی یا حتی در کابل اتصال RNG به رایانه، واژگون ساخت. تراشه واژگون کننده می تواند شامل یه کلاک برای محدود کردن شروع عملیات به مدتی پس از راه اندازی یونیت، یا میتواند شامل یک گیرنده رادیویی برای کنترل خاموش/روشن باشد. این تراشه می تواند توسط سازنده در کارخانه یا بعداً توسط هر کس که دسترسی فیزیکی دارد، نصب شود. تراشه های با ژنراتورهای شماره تصادفی سخت افزاری داخلی ساخته شده را می توان با تراشه های سازگار با RNG واژگون ساز در جایگزین کرد. 
 
 
 
 
 طراحی یک ژنراتور تصادفی ایمن، به اندازه سایر عناصر یک سیستم رمزنگاری هنگام طراحی، نیاز به مراقبت و توجه دارد. 
 در نسخه های اولیه پروتکل رمزگذاری (SSL) از مقادیر شبه تصادفی مشتق شده از یک prng کاشته شده با 3 متغیر استفاده میشد: زمان روز، شناسه پروسه، شناسه پروسه اصلی (مادر). این مقادیر معمولاً تا حدی قابل پیش بینی هستند و بنابراین نسبت به تصادفی ها، کمتری دارند. به این ترتیب، نسخه SSL ناامن شناخته شد. این مشکل در سال 1994 توسط فیلیپ هالام بیکر ، محقق تیم وب CERN به Netscape گزارش شد، اما تا قبل از انتشار (ریلیز) مشکل برطرف نشد. مشکل موجود در کد در حال اجرا در سال 1995 توسط یان گلدبرگ و دیوید واگنر، که مجبور شدند کد را کنند زیرا Netscape از افشای جزییات مربوط به تولید عدد تصادفی اش، خودداری کرد (امنیت از طریق گمنامی).این RNG در نسخه های بعدی (ورژن 2 و بالاتر) توسط استحکام بیشتر یعنی آنتروپی تصادفی تر و بالاتر از دید مهاجم، اصلاح شد. 
 مایکروسافت از یک الگوریتم منتشر نشده برای تولید مقادیر تصادفی برای خود استفاده می کند. این مقادیر تصادفی از طریق ابزار CryptGenRandom در دسترس کاربران قرار می گیرد. در نوامبر 2007، لئو Dorrendorf و همکارانش از و مقاله ای را تحت عنوان Cryptanalysis of the Random Number Generator of the Windows Operating System منتشر کردند. این مقاله ضعف هایی جدی در رویکرد مایکروسافت در آن زمان را ارائه داد. نتیجه گیری این مقاله بر مبنای کد در ویندوز 2000 بود، اما به گفته کایکروسافت، در ویندوز XP نیز کاربرد دارد. مایکروسافت اظهار داشت که مشکلات مشروح در مقاله، در ورژن های بعدی ویندوز که از یک نوع متفاوت از پیاده سازی RNG استفاده میکند، در نظر گرفته شده است. 
 ایالات متحده مجموعه ای از "ژنراتورهای بیت تصادفی قطعی" را منتشر کرد که از آن به عنوان انتشارات ویژه NIST 800-90 یاد می شود. یکی از ژنراتورها، Dual_EC_DRBG، مورد حمایت و علاقه بود. Dual_EC_DRBG از استفاده کرده و مجموعه ای از ثابت های توصیه شده را شامل می شود. در آگوست 2007، دن شومو و نیلز فرگوسن از کمپانی نشان دادند که ثابت ها می توانند به گونه ای ساخته شوند که قادر به ایجاد یک kleptographic در الگوریتم باشند. در سپتامبر 2013 نوشت: "NSA یک حیات خلوت مخفی را در استاندارد 2006 اتخاذ شده توسط NIST با نام استاندارد "Dual EC DRBG" ایجاد کرده است. بدین ترتیب این حقیقت که آژانس امنیت ملی آمریکا، حمله ای بدافزاری علیه مردم انجام داده، فاش شد. در دسامبر 2013، گزارش داد که اسناد منتشر شده توسط نشان می دهد که ده میلیون دلار به RSA Security پرداخت کرده است تا Dual_EC_DRBG را پیش فرض نرم‌افزار رمزگذاری خود قرار دهد و نگرانی های بیشتری را درباره اینکه این الگوریتم ممکن است دارای پشتی برای NSA باشد ، پرداخت کرده است. با توجه به این نگرانی ها، در سال 2014، NIST ژنراتور Dual EC DRBG را از پیش نویس راهنمای ژنراتورهای عدد تصادفی خارج کرد و توصیه نمود:" کاربران فعلی Dual EC DRBG در اسرع وقت به یکی از سه الگوریتم مصوب برجای مانده منتقل شوند". 
 Crypto-1 یک سیستم رمزنگاری است که توسط جهت استفاده در تراشه های MIFARE ساخته شده است. این سیستم اختصاصی است و در اصل الگوریتم مربوطه منتشر نشده است. محققان و باشگاه کامپیوتری Chaos با استفاده از یک ژنراتور عدد تصادفی اولیه ضعیف، به crypto-1 حمله کردند. 
 در ماه مه 2008، یک محقق امنیتی به نام لوسیانو بلو، کشف کرد که تغیراتی که در سال 2006 بر روی  ژنراتور عدد تصادفی ورژن توزیع شده با و سایر توزیع های مبتنی بر دبیان ،مانند ، رخ داد، به طور چشمگیری آنتروپی مقادیر تولید شده را کاهش داد و کلید های امنیتی متنوعی را در برابر حملات آسیب پذیر ساخت. این ضعف امنیتی ناشی از تغیراتی است که توسط یک توسعه دهنده ی دبیان در کد opensl ایجاده شده است. این امر باعث احیاء و بازتولید حجم زیادی از کلید ها در سرتاسر جهان شد و با وجود توجه زیادی که به این موضوع معطوف شد، این امر قابل تصور است که بسیاری از این کلید های قدیمی هنوز در دست استفاده هستند. کلیدهای تولید شده با GnuPG یا GNUTLS تحت تاثیر قرار نمی‌گیرند؛ زیرا این این برنامه ها از روش های مختلفی برای تولید اعداد تصادفی استفاده میکنند. کلیدهای تولید شده توسد توزیع های غیر دبیان نیز تاثیرپذیر نمی‌باشند. آسیب پذیری تولید کلیدهای ضعیف بلافاصله پس از گزارش برطرف شد اما کلیه خدماتی که از کلیدهایی استفاده میکنند که توسط کد قدیمی تولید شده اند، همچنان آسیب پذیر هستند. امروزه شماری از پکیج های نرم‌افزاری حاوی چک هایی در برابر بلک لیست کلیدهای ضعیف هستند تا از مورد استفاده قرار گرفتن هر یک از این کلیدهای ضعیف باقی مانده جلوگیری کنند اما محققان همچنان به دنبال یافتن پیاده سازی هایی برای کلید های ضعیف هستند. 
 در دسامبر سال 2010، گروهی که خود را fail0verflow میخواندند اعلام کردند از بازیابی منحنی بیضوی (ECDSA) قابل استخراج است. این حمله به این دلیل امکان پذیر شد که نتوانست به ازای هر امضا، یک عدد تصادفی جدید تولید کند. 
 در سال 2012، آنالیز مقایسه میلیون ها عمومی جمع آوری شده از اینترنت توسط Lenstra، Hughes، Augier، Bos، Kleinjung و Wachter اعلام شد. آنها تنها با استفاده قادر به کشف عامل 0.2٪ از کلیدها بودند. آنها از یک ضعف منحصر به فرد برای سیستمهای رمزنگاری مبتنی بر فاکتورسازی بهره برداری کردند. اگر یک کلید عمومی و یک کلید عمومی دیگر باشد، و اگر به طور اتفاقی باشد، آنگاه محاسبه عبارت هر دو کلید را به خطر می اندازد. نادیا هنینجر، عضوی از یک گروه که آزمایش مشابهی را انجام داده اند، گفته است که کلیدهای بد غالباً در رخ داده اند و توضیح می دهد که یک مشکل مشترک اصلی که هر دو گروه به آن برخورده اند و قادر به حل آن نبوده اند، ناشی از شرایطی است مولد عدد شبه تصادفی در کاشتن بذر در ابتدای کار و کاشت مجدد آن بین نسل اول و دوم ضعیف عمل کرده است. 
 در آگوست 2013، مشخص شد که اشکالات موجود در کلاس می توانند در مقادیر nonce مورد استفاده ECDSA در پیاده سازی در تصادم ایجاد کند. هنگامی که این اتفاق رخ داد و کلید خصوصی قابل بازیابی است، باعث شد ها از مربوطه قابل سرقت شوند.
{"title": "حمله مولد عدد تصادفی", "link": "https://fa.wikipedia.org//w/index.php?title=%D8%AD%D9%85%D9%84%D9%87_%D9%85%D9%88%D9%84%D8%AF_%D8%B9%D8%AF%D8%AF_%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C&oldid=33361126", "language": "fa"}