مولد الأرقام العشوائية الزائفة

مولد الأرقام شبه العشوائية ( PRNG )، المعروف أيضًا باسم مولد البتات العشوائية الحتمي ( DRBG[ 1 ] هو خوارزمية لتوليد سلسلة من الأرقام تقارب خصائصها خصائص سلاسل الأرقام العشوائية . لا تُعد السلسلة المولدة بواسطة مولد الأرقام شبه العشوائية عشوائية تمامًا ، لأنها محددة بالكامل بقيمة أو حالة ابتدائية، تُسمى عادةً بذرة مولد الأرقام شبه العشوائية (والتي قد تستند إلى قيم عشوائية حقيقية). على الرغم من إمكانية توليد سلاسل أقرب إلى العشوائية الحقيقية باستخدام مولدات الأرقام العشوائية المادية ، إلا أن مولدات الأرقام شبه العشوائية تُعد مهمة عمليًا لسرعتها في توليد الأرقام وقابليتها للتكرار. [ 2 ]

تُعدّ مولدات الأرقام العشوائية الزائفة أساسية في تطبيقات مثل المحاكاة (مثل طريقة مونت كارلووالألعاب الإلكترونية (مثل التوليد الإجرائيوالتشفير . تتطلب تطبيقات التشفير عدم إمكانية التنبؤ بالمخرجات من المخرجات السابقة، ولذا يلزم استخدام خوارزميات أكثر تعقيدًا لا ترث خطية مولدات الأرقام العشوائية الزائفة الأبسط.

تُعدّ الخصائص الإحصائية المناسبة شرطًا أساسيًا لمخرجات مولد الأرقام العشوائية الزائفة (PRNG). ويتطلب الأمر تحليلًا رياضيًا دقيقًا لضمان موثوقية معقولة في أن مولد الأرقام العشوائية الزائفة يُنتج أرقامًا قريبة بما يكفي من العشوائية لتناسب الاستخدام المقصود. وقد حذّر جون فون نيومان من إمكانية إساءة فهم مولد الأرقام العشوائية الزائفة باعتباره مولدًا عشوائيًا حقيقيًا، مازحًا: "إن أي شخص يفكر في الطرق الحسابية لإنتاج أرقام عشوائية، فهو بالطبع في حالة إثم". [ 3 ]

المشاكل المحتملة

عمليًا، تُظهر مخرجات العديد من مولدات الأرقام العشوائية الشائعة عيوبًا تجعلها تفشل في اختبارات الكشف عن الأنماط الإحصائية. وتشمل هذه العيوب ما يلي:

  • فترات أقصر من المتوقع لبعض حالات البذور (يمكن تسمية حالات البذور هذه بـ "الضعيفة" في هذا السياق)؛
  • عدم انتظام التوزيع لكميات كبيرة من الأرقام المولدة؛
  • ارتباط القيم المتتالية؛
  • توزيع أبعاد ضعيف لتسلسل المخرجات؛
  • تختلف المسافات بين أماكن حدوث قيم معينة عن تلك الموجودة في توزيع التسلسل العشوائي.

تتراوح عيوب مولدات الأرقام العشوائية الزائفة المعيبة بين غير الملحوظة (وغير المعروفة) والواضحة جدًا. ومن الأمثلة على ذلك خوارزمية RANDU للأرقام العشوائية التي استُخدمت لعقود على الحواسيب المركزية . كانت هذه الخوارزمية معيبة بشكل خطير، لكن قصورها ظل خفيًا لفترة طويلة جدًا.

في العديد من المجالات، كانت الأبحاث التي أُجريت قبل القرن الحادي والعشرين، والتي اعتمدت على الاختيار العشوائي أو محاكاة مونت كارلو ، أو غيرها من الطرق التي اعتمدت على مولدات الأرقام العشوائية الزائفة، أقل موثوقية بكثير من المستوى الأمثل نتيجة استخدام مولدات أرقام عشوائية زائفة رديئة الجودة. [ 4 ] وحتى اليوم، لا يزال الحذر مطلوبًا في بعض الأحيان، كما يتضح من التحذير التالي في الموسوعة الدولية للعلوم الإحصائية (2010). [ 5 ]

قائمة مولدات الأرقام العشوائية الشائعة التي يُنصح بتجنبها أطول بكثير من قائمة المولدات الجيدة. لا تثق ثقة عمياء بموردي البرامج. تحقق من مولد الأرقام العشوائية الافتراضي لبرنامجك المفضل، وكن مستعدًا لاستبداله عند الحاجة. هذه التوصية الأخيرة تكررت مرارًا وتكرارًا على مدى الأربعين عامًا الماضية، ولعلّ من المثير للدهشة أنها لا تزال بنفس أهميتها اليوم كما كانت قبل أربعين عامًا.

كمثال توضيحي، لنأخذ لغة البرمجة جافا واسعة الانتشار . حتى عام 2020، كانت جافا لا تزال تعتمد على مولد توافقي خطي (LCG) لإنشاء مولد الأرقام العشوائية الزائفة (PRNG)، [ 6 ] [ 7 ] وهو مولد ذو جودة منخفضة (انظر أدناه). تم تحسين دعم جافا لهذا المولد مع إصدار جافا 17 .

أحد مولدات الأرقام العشوائية الزائفة المعروفة التي تتجنب المشاكل الكبيرة وتظل تعمل بسرعة كبيرة هو Mersenne Twister (الذي تمت مناقشته أدناه)، والذي تم نشره في عام 1998. تم تطوير مولدات أرقام عشوائية زائفة أخرى ذات جودة أعلى، سواء من حيث الأداء الحسابي أو الإحصائي، قبل هذا التاريخ وبعده؛ ويمكن تحديدها في قائمة مولدات الأرقام العشوائية الزائفة .

مولدات تعتمد على التكرارات الخطية

في النصف الثاني من القرن العشرين، كانت الفئة القياسية من الخوارزميات المستخدمة في مولدات الأرقام العشوائية الزائفة تتألف من مولدات التوافق الخطي . كان من المعروف أن جودة هذه المولدات غير كافية، ولكن لم تكن هناك طرق أفضل متاحة.  وصف بريس وآخرون (2007) النتيجة على النحو التالي: "لو اختفت جميع الأوراق العلمية التي تُشكك نتائجها بسبب [مولدات التوافق الخطي وما شابهها] من رفوف المكتبات، لكانت هناك فجوة على كل رف بحجم قبضة يدك تقريبًا." [ 8 ]

كان أحد أهم التطورات في بناء مولدات الأرقام العشوائية الزائفة هو إدخال تقنيات تعتمد على التكرارات الخطية على حقل العنصرين؛ وترتبط هذه المولدات بمسجلات الإزاحة ذات التغذية الراجعة الخطية .

لقد ساهم اختراع مولد ميرسين تويستر عام 1997 ، [ 9 ] على وجه الخصوص، في تجنب العديد من المشاكل التي كانت تعاني منها المولدات السابقة. يبلغ عدد دورات مولد ميرسين تويستر 219937   -  1 تكرارًا (≈  4.3 × 10⁻⁶) .6001 )، ثبت أنه موزع بالتساوي في (حتى) 623 بُعدًا (للقيم 32 بت)، وفي وقت تقديمه كان يعمل بشكل أسرع من المولدات الأخرى المعقولة إحصائيًا.

في عام 2003، قدّم جورج مارساجليا عائلة مولدات xorshift ، [ 10 ] والتي تعتمد بدورها على التكرار الخطي. تتميز هذه المولدات بسرعة فائقة، وعند دمجها مع عملية غير خطية، فإنها تجتاز اختبارات إحصائية قوية. [ 11 ] [ 12 ] [ 13 ]

في عام 2006، تم تطوير عائلة مولدات WELL . [ 14 ] تُحسّن مولدات WELL من جودة مولد Mersenne Twister في بعض النواحي، والذي يتميز بمساحة حالة كبيرة جدًا واستعادة بطيئة للغاية من مساحات الحالة التي تحتوي على عدد كبير من الأصفار.

مولدات الأرقام العشوائية القائمة على العدادات

مولد الأرقام العشوائية القائم على العداد (CBRNG، والمعروف أيضًا باسم مولد الأرقام العشوائية الزائفة القائم على العداد، أو CBPRNG) هو نوع من مولدات الأرقام العشوائية الزائفة التي تستخدم عدادًا صحيحًا فقط كحالة داخلية لها:

 مخرجات =و(ن، مفتاح){\displaystyle {\text{ output }}=f(n,{\text{ key}})}

تُستخدم هذه التقنيات عمومًا لتوليد أرقام شبه عشوائية للحسابات المتوازية واسعة النطاق، مثل تلك التي تُجرى على مجموعات من وحدات معالجة الرسومات أو وحدات المعالجة المركزية. [ 15 ] ولها مزايا معينة:

  • الحالة الوحيدة المطلوبة هي قيمة العداد والمفتاح. بالنسبة لعداد ومفتاح محددين، يكون الناتج دائمًا هو نفسه. هذه الخاصية تجعل مولدات الأرقام العشوائية المعتمدة على الثوابت قابلة للتكرار.
  • بما أن كل رقم عشوائي يُحسب بشكل مستقل عن أي مخرجات سابقة، فإنه يمكن توليدها بالتوازي. على سبيل المثال، في تطبيق متوازي للغاية ، يمكن تخصيص نطاق من قيم العداد لكل خيط أو نواة وحدة معالجة رسومية، وحساب الأرقام العشوائية دون الحاجة إلى تزامن أو حالة مشتركة.
  • بما أن المولد لا يتطلب المرور بكل حالة وسيطة، فإنه يستطيع "القفز" إلى أي نقطة في التسلسل في زمن ثابت. وهذا مفيد بشكل خاص في تطبيقات مثل محاكاة مونت كارلو حيث تكون هناك حاجة إلى تدفقات مستقلة.

ومن الأمثلة على ذلك: [ 15 ]

  • فيلوكس: يستخدم المزج القائم على الضرب لدمج العداد والمفتاح.
  • ثري فراي: يعتمد على نسخة مخففة القوة من تشفير كتلة ثري فيش .

مولدات الأرقام العشوائية المشفرة

يُطلق على مولد الأرقام العشوائية الزائفة ( PRNG) المناسب للتطبيقات التشفيرية اسم مولد الأرقام العشوائية الزائفة الآمن تشفيرياً (CSPRNG). ويشترط في مولد الأرقام العشوائية الآمن تشفيرياً ألا يتمتع المهاجم الذي لا يعرف البذرة إلا بميزة ضئيلة للغاية في تمييز تسلسل مخرجات المولد عن أي تسلسل عشوائي. بعبارة أخرى، بينما يُشترط في مولد الأرقام العشوائية الزائفة (PRNG) اجتياز اختبارات إحصائية معينة فقط، يجب على مولد الأرقام العشوائية الآمن تشفيرياً اجتياز جميع الاختبارات الإحصائية التي تقتصر على وقت متعدد الحدود بالنسبة لحجم البذرة. ورغم أن إثبات هذه الخاصية يتجاوز أحدث ما توصلت إليه نظرية التعقيد الحسابي ، إلا أنه يمكن تقديم دليل قوي من خلال اختزال مسألة يُفترض أنها صعبة ، مثل تحليل الأعداد الصحيحة إلى مولد الأرقام العشوائية الآمن تشفيرياً . [ 16 ] وبشكل عام، قد يتطلب الأمر سنوات من المراجعة قبل اعتماد خوارزمية ما كمولد أرقام عشوائية آمن تشفيرياً.

تتضمن بعض فئات مولدات الأرقام العشوائية المشفرة ما يلي:

لقد تبين أنه من المحتمل أن تكون وكالة الأمن القومي قد أدخلت بابًا خلفيًا غير متماثل في مولد الأرقام العشوائية الزائفة المعتمد من المعهد الوطني للمعايير والتكنولوجيا Dual_EC_DRBG . [ 20 ]

تُنتج معظم خوارزميات مولدات الأرقام الزائفة (PRNG) تسلسلات موزعة توزيعًا منتظمًا وفقًا لعدة اختبارات. يبقى السؤال مطروحًا، وهو سؤال محوري في نظرية التشفير وتطبيقاته ، حول إمكانية التمييز بين مُخرجات مولد أرقام زائفة عالي الجودة وتسلسل عشوائي حقيقي. في هذا السياق، يعلم المُميّز إما أنه تم استخدام خوارزمية مولد الأرقام الزائفة المعروفة (ولكن ليس الحالة التي تم تهيئتها بها) أو تم استخدام خوارزمية عشوائية حقيقية، وعليه التمييز بينهما. [ 21 ] يعتمد أمان معظم خوارزميات وبروتوكولات التشفير التي تستخدم مولدات الأرقام الزائفة على افتراض أنه من غير العملي التمييز بين استخدام مولد أرقام زائفة مناسب واستخدام تسلسل عشوائي حقيقي. أبسط الأمثلة على هذا الترابط هي تشفيرات التدفق ، التي تعمل (في أغلب الأحيان) عن طريق دمج النص الأصلي للرسالة مع مُخرجات مولد الأرقام الزائفة باستخدام عملية " أو الحصرية"، مما ينتج عنه نص مشفر . يُعد تصميم مولدات أرقام زائفة مناسبة تشفيريًا أمرًا بالغ الصعوبة لأنها يجب أن تستوفي معايير إضافية. يُعد حجم دورته عاملاً مهماً في مدى ملاءمة مولد الأرقام العشوائية الزائفة من الناحية التشفيرية، ولكنه ليس العامل الوحيد.

معايير التقييم الخاصة بمعهد المعايير البريطاني

وضع المكتب الاتحادي الألماني لأمن المعلومات ( بالألمانية : Bundesamt für Sicherheit in der Informationstechnik ، BSI) أربعة معايير لجودة مولدات الأرقام العشوائية الحتمية. [ 22 ] وهي مُلخصة هنا:

  • K1 – يجب أن يكون هناك احتمال كبير أن تكون سلاسل الأرقام العشوائية المولدة مختلفة عن بعضها البعض.
  • K2 – لا يمكن تمييز سلسلة الأرقام عن الأرقام "العشوائية الحقيقية" وفقًا لاختبارات إحصائية محددة. تشمل هذه الاختبارات اختبار أحادي البت (تساوي عدد الآحاد والأصفار في السلسلة)، واختبار البوكر (حالة خاصة من اختبار مربع كاي )، واختبار التتابعات (يحسب تكرار التتابعات بأطوال مختلفة)، واختبار التتابعات الطويلة (يتحقق من وجود أي تتابع بطول 34 أو أكثر في 20000 بت من السلسلة) - وكلاهما من BSI [ 22 ] و NIST [ 23 ] ، بالإضافة إلى اختبار الارتباط الذاتي . باختصار، تختبر هذه المتطلبات مدى جودة سلسلة البتات: احتواءها على أصفار وآحاد بتكرار متساوٍ؛ بعد سلسلة من n من الأصفار (أو الآحاد)، يكون البت التالي واحدًا (أو صفرًا) باحتمالية النصف؛ ولا تحتوي أي سلسلة فرعية مختارة على أي معلومات حول العنصر (العناصر) التالي في السلسلة.
  • K3 – ينبغي أن يكون من المستحيل على المهاجم (لجميع الأغراض العملية) حساب أو تخمين أي قيم سابقة أو مستقبلية في التسلسل، أو أي حالة داخلية للمولد، من أي تسلسل فرعي معين.
  • K4 – ينبغي أن يكون من المستحيل عمليًا على المهاجم حساب أو تخمين أي أرقام سابقة في التسلسل أو أي حالات مولد داخلية سابقة من الحالة الداخلية للمولد.

بالنسبة للتطبيقات التشفيرية، لا تُقبل إلا المولدات التي تفي بمعايير K3 أو K4.

التعريف الرياضي

منح:

  • P{\displaystyle P}– توزيع احتمالي على(R،ب){\displaystyle \left(\mathbb {R} ,{\mathfrak {B}}\right)}(أينب{\displaystyle {\mathfrak {B}}}(هي جبر سيجما لجميع المجموعات الفرعية بوريل للخط الحقيقي)
  • F{\displaystyle {\mathfrak {F}}}– مجموعة غير فارغة من مجموعات بوريلFب{\displaystyle {\mathfrak {F}}\subseteq {\mathfrak {B}}}مثالF={(-،ت]:تR}{\displaystyle {\mathfrak {F}}=\left\{\left(-\infty ,t\right]:t\in \mathbb {R} \right\}}. لوF{\displaystyle {\mathfrak {F}}}إذا لم يتم تحديد ذلك، فقد يكون إماب{\displaystyle {\mathfrak {B}}}أو{(-،ت]:تR}{\displaystyle \left\{\left(-\infty ,t\right]:t\in \mathbb {R} \right\}}، وذلك حسب السياق.
  • أR{\displaystyle A\subseteq \mathbb {R} }– مجموعة غير فارغة (ليست بالضرورة مجموعة بوريل). غالبًاأ{\displaystyle A}هي مجموعة بينP{\displaystyle P}دعامة وداخلها ؛ على سبيل المثال ، إذاP{\displaystyle P}التوزيع المنتظم على الفترة(0،1]{\displaystyle \left(0,1\right]}،أ{\displaystyle A}قد يكون(0،1]{\displaystyle \left(0,1\right]}. لوأ{\displaystyle A}إذا لم يتم تحديدها، يُفترض أنها مجموعة ما موجودة في نطاق الدعم لـP{\displaystyle P}ويحتوي على ما بداخله، وذلك حسب السياق.

نستدعي دالةو:شمال1R{\displaystyle f:\mathbb {N} _{1}\rightarrow \mathbb {R} }(أينشمال1={1،2،3،...}{\displaystyle \mathbb {N} _{1}=\left\{1,2,3,\dots \right\}}(هي مجموعة الأعداد الصحيحة الموجبة) مولد أرقام شبه عشوائي لـP{\displaystyle P}منحF{\displaystyle {\mathfrak {F}}}أخذ القيم فيأ{\displaystyle A}إذا وفقط إذا :

  • و(شمال1)أ{\displaystyle f\left(\mathbb {N} _{1}\right)\subseteq A}
  • هـFε>0شمالشمال1نشمال،|8{أنا{1،2،...،ن}:و(أنا)هـ}ن-P(هـ)|<ε\displaystyle \forall E\in {\mathfrak {F}}\quad \forall \varepsilon >0\quad \exists N\in \mathbb {N} _{1}\quad \forall n\geq N,\quad \left|{\frac {\#\left\{i\in \left\{1,2,\dots ,n\right\}:f(i)\in E\right\}}{n}}-P(E)\right|<\varepsilon }

(8S{\displaystyle \#S}يشير إلى عدد العناصر في المجموعة المنتهيةS{\displaystyle S}.)

يمكن إثبات أنه إذاو{\displaystyle f}هو مولد أرقام شبه عشوائية للتوزيع المنتظم على(0،1){\displaystyle \left(0,1\right)}وإذاF{\displaystyle F}هي دالة التوزيع التراكمي لتوزيع احتمالي معينP{\displaystyle P}، ثمF*و{\displaystyle F^{*}\circ f}هو مولد أرقام شبه عشوائي لـP{\displaystyle P}، أينF*:(0،1)R{\displaystyle F^{*}:\left(0,1\right)\rightarrow \mathbb {R} }هي النسبة المئوية لـP{\displaystyle P}، أيF*(x):=معلومات{تR:xF(ت)}{\displaystyle F^{*}(x):=\inf \left\{t\in \mathbb {R} :x\leq F(t)\right\}}بشكل بديهي، يمكن محاكاة أي توزيع عشوائي من خلال محاكاة التوزيع المنتظم القياسي.

الأساليب المبكرة

يُعرف مولد الأرقام العشوائية الزائفة (PRNG) المبكر القائم على الحاسوب، والذي اقترحه جون فون نيومان عام 1946، باسم طريقة المربع الأوسط . وتتلخص خوارزميته فيما يلي: خذ أي عدد، ثم ربعه، واحذف الأرقام الوسطى من العدد الناتج باعتباره "العدد العشوائي"، ثم استخدم هذا العدد كبذرة للتكرار التالي. على سبيل المثال، ينتج عن تربيع العدد "1111" العدد "1234321"، والذي يمكن كتابته على النحو التالي "01234321"، حيث أن العدد المكون من 8 أرقام هو مربع عدد مكون من 4 أرقام. وهذا يعطينا العدد "2343" كـ"عدد عشوائي". بتكرار هذه العملية نحصل على "4896" كنتيجة تالية، وهكذا. استخدم فون نيومان أعدادًا مكونة من 10 أرقام، لكن العملية كانت نفسها.

تكمن إحدى مشكلات طريقة "المربع الأوسط" في أن جميع المتتاليات تتكرر في النهاية، بعضها بسرعة كبيرة، مثل "0000". كان فون نيومان على دراية بهذا، لكنه وجد أن هذا النهج كافٍ لأغراضه، وكان قلقًا من أن "التصحيحات" الرياضية ستخفي الأخطاء ببساطة بدلاً من إزالتها.

اعتبر فون نيومان مولدات الأرقام العشوائية المادية غير مناسبة، لأنه إذا لم تسجل المخرجات، فلن يكون من الممكن اختبارها لاحقًا بحثًا عن الأخطاء. أما إذا سجلت مخرجاتها، فستستنفد ذاكرة الحاسوب المحدودة المتاحة آنذاك، وبالتالي قدرة الحاسوب على قراءة الأرقام وكتابتها. وإذا كُتبت الأرقام على بطاقات، فسيستغرق الأمر وقتًا أطول بكثير لكتابتها وقراءتها. في حاسوب إينياك الذي كان يستخدمه، ولّدت طريقة "المربع الأوسط" الأرقام بمعدل أسرع بمئة مرة تقريبًا من قراءة الأرقام من البطاقات المثقبة .

تم استبدال طريقة المربع الأوسط منذ ذلك الحين بمولدات أكثر تعقيدًا.

ومن الابتكارات الحديثة دمج المربع الأوسط مع متتالية ويل . وتنتج هذه الطريقة مخرجات عالية الجودة على مدى فترة طويلة (انظر طريقة المربع الأوسط ).

مولدات غير منتظمة

يمكن توليد الأرقام المختارة من توزيع احتمالي غير منتظم باستخدام مولد أرقام عشوائية زائفة ذي توزيع منتظم ودالة تربط بين التوزيعين.

أولاً، يحتاج المرء إلى دالة التوزيع التراكميF(ب){\displaystyle F(b)}من التوزيع المستهدفو(ب){\displaystyle f(b)}:

F(ب)=-بو(ب)دب{\displaystyle F(b)=\int _{-\infty }^{b}f(b')\,db'}

لاحظ أن0=F(-)F(ب)F()=1{\displaystyle 0=F(-\infty )\leq F(b)\leq F(\infty )=1}باستخدام عدد عشوائي c من توزيع منتظم كدالة كثافة احتمالية "للمرور"، نحصل على

F(ب)=ج{\displaystyle F(b)=c}

لهذا السبب.

ب=F-1(ج){\displaystyle b=F^{-1}(c)}

هو رقم يتم اختياره عشوائياً من التوزيعو(ب){\displaystyle f(b)}يعتمد هذا على أخذ العينات بالتحويل العكسي .

على سبيل المثال، معكوس التوزيع التراكمي الغاوسيقطعة أرض-1(x){\displaystyle \operatorname {erf} ^{-1}(x)}باستخدام مولد أرقام عشوائية زائفة مثالي موحد بنطاق (0، 1) كمدخلx{\displaystyle x}سينتج عن ذلك سلسلة من القيم (الموجبة فقط) ذات توزيع غاوسي؛ ومع ذلك

  • عند استخدام تمثيلات الأرقام العملية ، يجب اقتطاع "ذيول" التوزيع اللانهائية إلى قيم محدودة.
  • إعادة حساب متكررة لـقطعة أرض-1(x){\displaystyle \operatorname {erf} ^{-1}(x)}ينبغي تقليلها بوسائل مثل خوارزمية الزقورة لتوليد أسرع.

تنطبق اعتبارات مماثلة على توليد توزيعات غير منتظمة أخرى مثل توزيع رايلي وتوزيع بواسون .

انظر أيضاً

مراجع

  1. باركر، إيلين؛ باركر، ويليام؛ بور، ويليام؛ بولك، ويليام؛ سميد، مايلز (يوليو 2012). "توصية لإدارة المفاتيح" (ملف PDF) . منشور خاص من المعهد الوطني للمعايير والتكنولوجيا 800-57 . المعهد الوطني للمعايير والتكنولوجيا . doi : 10.6028/NIST.SP.800-57p1r3 . تاريخ الاسترجاع: 19 أغسطس 2013 .
  2. "مولدات الأرقام شبه العشوائية" . أكاديمية خان . تم الاطلاع عليه بتاريخ 11 يناير 2016 .
  3. فون نيومان، جون (1951). "تقنيات متنوعة تُستخدم في توليد الأرقام العشوائية" (ملف PDF) . سلسلة الرياضيات التطبيقية للمكتب الوطني للمعايير . 12 : 36-38 . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 28 نوفمبر 2022.
  4. بريس وآخرون (2007)، الفصل 7
  5. ليكويير، بيير (2010). "مولدات الأرقام العشوائية المنتظمة". في: لوفريك، ميودراغ (محرر). الموسوعة الدولية للعلوم الإحصائية . سبرينغر. ص 1629. ISBN  978-3-642-04897-5.
  6. عشوائي (منصة جافا SE 8) ، وثائق منصة جافا القياسية الإصدار 8.
  7. Random.java في OpenJDK .
  8. بريس وآخرون (2007) §7.1
  9. ماتسوموتو، ماكوتو؛ نيشيمورا، تاكوجي (1998). "ميرسين تويستر: مولد أرقام شبه عشوائية منتظمة موزعة بالتساوي في 623 بُعدًا" (ملف PDF) . معاملات ACM في النمذجة والمحاكاة الحاسوبية . 8 (1). ACM : 3-30 . doi : 10.1145/272991.272995 . S2CID 3332028 . 
  10. مارساجليا، جورج (يوليو 2003). "مولدات الأرقام العشوائية Xorshift" . مجلة البرمجيات الإحصائية . 8 (14). doi : 10.18637/jss.v008.i14 . S2CID 250501391 . 
  11. S.Vigna. "مولدات xorshift*/xorshift+ ومواجهة مولدات الأرقام العشوائية الزائفة" .
  12. Vigna S. (2016), "استكشاف تجريبي لمولدات xorshift الخاصة بـ Marsaglia"، معاملات ACM في البرمجيات الرياضية ، 42؛ doi : 10.1145/2845077 .
  13. Vigna S. (2017), "مزيد من التشويش لمولدات xorshift لمارساجليا"، مجلة الرياضيات الحسابية والتطبيقية ، 315؛ doi : 10.1016/j.cam.2016.11.006 .
  14. بانيتون، فرانسوا؛ ليكويير، بيير؛ ماتسوموتو، ماكوتو (2006). "مولدات محسّنة طويلة المدى تعتمد على التكرارات الخطية modulo 2" (ملف PDF) . معاملات ACM في البرمجيات الرياضية . 32 (1): 1-16 . doi : 10.1145/1132973.1132974 . S2CID 7368302 . 
  15. 1 2 سالمون، جون؛ مورايس، مارك؛ درور، رون؛ شو، ديفيد (2011). "الأرقام العشوائية المتوازية: سهلة مثل 1، 2، 3". وقائع المؤتمر الدولي لعام 2011 للحوسبة عالية الأداء والشبكات والتخزين والتحليل، المقالة رقم 16. doi : 10.1145/2063384.2063405 .
  16. سونغ واي. يان (7 ديسمبر 2007). هجمات تحليل الشفرات على RSA . سبرينغر، 2007. ص 73. ISBN  978-0-387-48741-0.
  17. نيلز فيرغسون ؛ بروس شناير ؛ تادايوشي كوهنو (2010). "هندسة التشفير: مبادئ التصميم والتطبيقات العملية، الفصل 9.4: المولد" (PDF) .
  18. كلاوس بوميرينغ (2016). "IV.4 مولدات الأرقام العشوائية المثالية" . علم التشفير . uni-mainz.de . تاريخ الاسترجاع: 12 نوفمبر 2017 .
  19. باس، رافائيل. "المحاضرة 11: نظرية غولدريتش-ليفين" (ملف PDF) . COM S 687 مقدمة في علم التشفير . تم الاطلاع عليه بتاريخ 20 يوليو 2016 .
  20. ماثيو غرين (18 سبتمبر 2013). "العديد من عيوب Dual_EC_DRBG" .
  21. كاتز، جوناثان؛ يهودا، ليندل (2014). مقدمة في علم التشفير الحديث . مطبعة CRC. ص 70. 
  22. 1 2 شندلر، فيرنر (2 ديسمبر 1999). “فئات الوظائف ومنهجية التقييم لمولدات الأرقام العشوائية الحتمية” (PDF) . Anwendungshinweise und Interpretationen (AIS) . Bundesamt für Sicherheit in der Informationstechnik . ص 5 – 11 . تم الاسترجاع 19 أغسطس 2013 . 
  23. "متطلبات الأمان للوحدات التشفيرية" . FIPS . NIST . 11 يناير 1994. ص 4.11.1 اختبارات التشغيل. مؤرشف من الأصل في 27 مايو 2013. تم الاطلاع عليه في 19 أغسطس 2013 . 

فهرس