مولد امن اعداد شبه‌تصادفی در رمزنگاری کیست؟ توضیح بده.
تولیدکننده عدد شبه تصادفی رمزنگاری (CSPRNG) یا تولیدکننده عدد شبه تصادفی رمزنگاری (CPRNG) یک تولیدکننده عدد شبه تصادفی (PRNG) با ویژگی‌هایی است که آن را برای استفاده در رمزنگاری مناسب می‌کند. همچنین به صورت عمومی به عنوان یک تولیدکننده عدد تصادفی رمزنگاری (CRNG) آزادانه شناخته می‌شود (به تولید اعداد تصادفی واقعی در مقابل اعداد شبه تصادفی مراجعه کنید).بیشترینکاربردهای رمزنگاری که نیاز به اعداد تصادفی دارند، درموارد زیر دیده می‌شود:میزان «کیفیت» تصادفی بودن، در کاربردها مختلف متفاوت است. در برخی از پروتوکل‌ها در تولید یک رمزنانسی فقط یکتا بودن مقدار تصادفی تولید شده کافی است اما در سمت دیگر، تولید یک کلید اصلی با میزان کیفیت بالاتری در بحث تصادفی بودن می‌طلبد و همچنین باید آنتروپی مولد نیز بیشتر باشد. همچنین در کاربرد پد یکبار مصرف، نظریه ی اطلاعات تنها در صورتی کلید از یک منبع تصادفی با یک آنتروپی بالا آمده باشد، رازداری را تضمین می‌کند؛ بنابراین هر مولد تولید اعداد تصادفی، نمی‌تواند برای نیازهای آن کافی و مفید واقع شود.به صورت مطلوب، اعداد تصادفی مورد نیاز در رمزنگاری باید از منابع با کیفیت بالا مانند مولد سخت‌افزاری اعداد تصادفی یا سیستم‌های پیش‌بینی‌ناپذیر تأمین گردند. اما همواره میزانی همبستگی میان داده‌های تصادفی که برخی فرایندهای ظاهراً تصادفی وجود دارد. بنابر تئوری اطلاعات، میزان تصادفی بودن و آنتروپی داده‌های که می‌تواند توسط یک سیستم تولید شود، همواره برابر آنتروپی خود آن سیستم است اما گاهی در مثال‌های عملی، تعداد اعداد تصادفی مورد نیاز بیشتر از میزان آنتروپی موجود است. دراین موارد CSPRNG می‌تواند جایگزین شود که توانایی آنتروپی را در اختیار بیت‌های بیشتری قراردهد.الزامات (ویژگی‌های موردنیاز).ویژگی‌های مورد نیاز برای یک مولد معمولی اعداد شبه‌تصادفی، توسط مولد امن اعداد شبه‌تصادفی نیز تأمین می‌شوند. اما عکس این مطلب درست نیست. ویژگی‌های خاص مولد امن شبه‌تصادفی، دو دسته هستند. اولاً این مولدها باید از آزمون‌های آماری بگذرند و ویژگی‌های آماری مورد نیاز برای اعداد تصادفی تولیدشده را برآورده سازند. ثانیاً این مولدها باید در برابر حمله‌های احتمالی به اندازه کافی مقاوم باشند؛ حتی اگر قسمتی از حالت اولیه یا جاری آنها به دست مهاجمی بیفتد که قصد حمله دارد.اکثر مولدهای اعداد شبه‌تصادفی قابل استفاده به عنوان مولد امن نیستند. چرا که اولاً با اینکه ممکن است در مقابل آزمون‌های آماری کاملاً امن به نظر برسند، اما در حقیقت در برابر مهندسی معکوس آسیب‌پذیر هستند و می‌توان آزمون‌های آماری خاصی یافت که اعداد تولیدشده توسط این مولدها را از اعداد واقعاً تصادفی متمایز می‌سازند. ثانیاً در اکثر مولدهای اعداد شبه‌تصادفی، هنگامی که حالت جاری مولد فاش می‌شود، همه بیت‌های قبلی قابل بازسازی خواهند بود و حمله کننده از این طریق خواهد توانست به همه پیام‌های قبلی و بعدی دسترسی پیدا کند.CSPRNGs برای مقاوت در برابر این رمزنگاری طراحی شده‌است.تعاریف.در تنظیمات مجانبی، خانواده ای از توابع قابل محاسبه چند جمله ای قطعی formula_1 برای برخی از چند جملهای، در صورت ایجاد طول ورودی خود، یک مولد عدد شبه تصادفی (PRNG یا PRG است). formula_2 برای هر و اگر خروجی آن محاسباتی غیرقابل تشخیص برای هر احتمالی چند جمله ای الگوریتم زمان که خروجی ۰ یا ۱ به عنوان یک distinguisher از اتفاقی واقعی، یعنی،برای برخی از مقادیر ناچیز formula_4 . (علامت گذاری formula_5 بدین معنی است که از یک توزبع یکنواخت مجموعه آمده‌است )یک توصیف معادل وجود دارد: برای هر تابع خانوادهٔ formula_1 ، یک PRNG است اگر و تنها اگر بیت بعدی خروجی G توسط یک الگوریتم در زمان چندجمله ای غیرقابل حدس باشد.یک مولد اعداد تصادفی امن رو به جلو با طول بلوک formula_7 یک PRNG است formula_8 ، به طوری که رشته ورودی formula_9 با طول درحالت فعلی و در دوره ام تولید شده‌است و خروجی (formula_10 ، formula_11) متشکل از حالت بعدی است formula_10 و بلوک خروجی شبه تصادفی formula_11 دوره به نحوی که دربرابر شرایط زیر مقاومت می‌کند. اگر حالت اولیه formula_14 از یک توزبع یکنواخت روی formula_15 آمده باشند، پس از آن برای هر ، دنباله formula_16 باید به صورت محاسباتی غیرقابل تشخیص باشد از رشتهٔ formula_17 ، که در آن formula_18 به‌طور یکنواخت و تصادفی از formula_19 انتخاب شده‌است.هر PRNG formula_20 می‌تواند به یک PRNG امن رو به جلو با طول بلوک formula_21 تبدیل شود که با تقسیم خروجی آن به حالت بعدی و خروجی واقعی حاصل می‌شود. این کار با تنظیم انجام می‌شود formula_22 ، که در آن formula_23 و formula_24 ؛ سپس با یک PRNG ایمن رو به جلو است که formula_25 به عنوان حالت بعدی و formula_26 به عنوان بلوک خروجی شبه تصادفی دوره فعلی درنظر گرفته شده‌است.استخراج آنتروپی.سانتا و وزیرانی ثابت کردند جریان‌های بیتی با تصادف ضعیف می‌توانند باهم ترکیب شوند و جریان بیتی شبه تصادفی با کیفیت بالاتری را بسازند. حتی پیش از این، جان فون نویمان ثابت کرده بود که یک الگوریتم ساده می‌تواند مقدار قابل توجهی از جانبداری را از هر جریان بیتی حذف کند این الگوریتم باید قبل از هرگونه تغییر در طرح Santha–Vazirani بر روی هر جریان بیتی اعمال شود.طرح‌ها.در بحث زیر، طرح‌های CSPRNG به سه طبقه تقسیم می‌شوند:در این دسته از مولدها معمولاً خروجی به‌طور قطعی بر حسب حالت اولیه معین نمی‌شود. ویژگی اخیر این امکان را فراهم می‌آورد تا حتی در صورت انتشار حالت اولیه، مولد در مقابل حملات احتمالی امن باشد.طرح‌های ویژه.تعدادی از مولدهای امن تولید اعداد شبه‌تصادفی با طراحی خاص در ذیل عنوان شده‌اند.استانداردها.برخی مولدهای تولید امن اعداد شبه تصادفی رمز شده، استاندارد شده‌اند مانند:در ویرایش بعدی ذکر شده‌است که قدرتی که برای CTR_DRGB ادعا شده بود، به محدود کردن تعداد کل اعداد درخواست شده و تعداد بیت‌های درخواست شده در هر درخواست، وابسته است.مرجع خوب توسط NIST فراهم شده‌است.استانداردهایی برای تست آماری طراحی‌های CSPRNG های جدید موجود است:در پشتی Kleptographic NSA درمولد اعداد شبه تصادفی Dual_EC_DRBG."گاردین" و "نیویورک تایمز" که آژانس امنیت ملی (NSA) یک در پشتی را دریک مولد اعداد شبه تصادفی NIST SP 800-90A قرار داده است که به NSA اجازه می‌دهد تا به آسانی متونی که با کمک Dual_EC_DRBG رمزگذاری شده‌اند را رمزگشایی کند. درهر دو مقاله گزارش شده است که ان اس ای به عنوان کارشناسان مستقل امنیتی، در حال معرفی نقاط ضعف استاندارد CSPRNG 800-90 است. این موارد برای اولین بار توسط یکی از اسناد عالی مخفی که توسط ادوارد اسنودن به گاردین فاش شده است، تأیید شد. ان اس ای به‌طور مخفیانه کار کرد تا نسخهٔ شخصی‌سازی شده اش از پیش نویس استاندارد امنیتی NIST را به دست آورد که در سال ۲۰۰۶ برای استفادهٔ جهانی به تصویب رسید. در این اسناد منتشر شده آمده است که «در نهایت NSA تنها ویرایشگر شد.». باوجود مورد پنهان شناخته شده کلیپتوگرافیک و نواقص قابل توجه Dual_EC_DRBG، بعضی از شرکت‌ها مانند RSA به استفاده از Dual_EC_DRBG تا سال ۲۰۱۳ که ضعف آن تاییدشد، ادامه دادند. RSA برای این کار ۱۰ میلیون دلار از آزانس امنیت ملی دریافت کرد.نقص‌های امنیتی.حمله DUHK.در ۲۳ اکتبر ۲۰۱۷، Shaanan Cohney , Matthew Green و Nadia Heninger، رمزنگارانی در دانشگاه پنسیلوانیا و دانشگاه جان هاپکینز جزئیات حمله DUHK (از کلیدهای رمزگذاری شده استفاده نکنید) را روی WPA2 منتشر کردند که در آن سخت‌افزارهایی که در آنها کلید تصادف الگوریتم ANSI X9.31 به صورت مستقیم در کد قرار داده شده‌اند درتناقض با استفاده از مولد اعداد تصادفی ANSI X9.31، عمل می‌کنند. "در این حمله مهاجم می‌تواند داده‌های رمزگذاری شده، با روش سعی و خطاهای فراوان (brute-force) به کار گیرد تا بقیه پارامترهای رمزنگاری را کشف کند و درنتیجه به کلید رمزنگاری اصلی که برای رمزنگاری جلسات وب یا اتصالات شبکه خصوصی مجازی (VPN)استفاده می‌شود، دست یابد."