Pseudorandom tasodifiy generator - Pseudorandom number generator

A pseudorandom tasodifiy generator (PRNG), shuningdek, a deterministik tasodifiy bit generatori (DRBG),[1] bu algoritm xususiyatlari ketma-ketlik xususiyatlariga yaqin keladigan raqamlar ketma-ketligini yaratish uchun tasodifiy raqamlar. PRNG tomonidan ishlab chiqarilgan ketma-ketlik haqiqiy emas tasodifiy, chunki u PRNG deb nomlangan boshlang'ich qiymati bilan to'liq aniqlanadi urug ' (bu chindan ham tasodifiy qiymatlarni o'z ichiga olishi mumkin). Haqiqiy tasodifiyga yaqinroq ketma-ketliklar yordamida yaratilishi mumkin apparat tasodifiy raqamlar generatorlari, pseudorandom raqam generatorlari amalda ularning son hosil qilish tezligi va takrorlanuvchanligi bilan muhimdir.[2]

PRNGlar kabi dasturlarda markaziy o'rinni egallaydi simulyatsiyalar (masalan. uchun Monte-Karlo usuli ), elektron o'yinlar (masalan. uchun protsessual avlod ) va kriptografiya. Kriptografik dasturlar chiqishni avvalgi natijalarga nisbatan taxmin qilinmasligi va boshqalarni talab qiladi ishlab chiqilgan algoritmlar, oddiyroq PRNGlarning lineerligini meros qilib olmaganlar kerak.

Yaxshi statistik xususiyatlar PRNG chiqishi uchun asosiy talab hisoblanadi. Umuman olganda, PRNG maqsadga muvofiq ravishda tasodifiy qiymatga etarlicha yaqin bo'lgan raqamlarni hosil qilishiga ishonch hosil qilish uchun ehtiyotkorlik bilan matematik tahlil qilish kerak. Jon fon Neyman PRNG-ni chindan ham tasodifiy generator sifatida noto'g'ri talqin qilish to'g'risida ogohlantirdi va "tasodifiy raqamlarni hosil qilishning arifmetik usullarini ko'rib chiqadigan har bir kishi, albatta, gunoh holatidadir" deb hazillashdi.[3]

Determinator generatorlar bilan yuzaga kelishi mumkin bo'lgan muammolar

Amalda, ko'plab keng tarqalgan PRNGlarning natijalari namoyish etiladi asarlar bu ularning statistik namunalarni aniqlash testlarida muvaffaqiyatsiz bo'lishiga olib keladi. Bunga quyidagilar kiradi:

  • Ba'zi urug 'holatlari uchun kutilganidan qisqa muddat (bu kontekstda bunday urug' holatlarini "zaif" deb atash mumkin);
  • Ko'p sonli hosil bo'lgan raqamlar uchun taqsimotning bir xilligi yo'qligi;
  • Keyingi qadriyatlarning o'zaro bog'liqligi;
  • Chiqish ketma-ketligining o'lchovli taqsimoti yomon;
  • Muayyan qiymatlar yuzaga keladigan masofalar tasodifiy ketma-ketlik taqsimotidan farqli ravishda taqsimlanadi.

Noto'g'ri PRNGlar tomonidan namoyish etilgan nuqsonlar sezilmaydigan (va noma'lum) dan juda aniqgacha o'zgarib turadi. Bunga misol bo'ldi RANDU o'nlab yillar davomida ishlatilgan tasodifiy raqamlar algoritmi asosiy kompyuterlar. Bu jiddiy kamchiliklarga ega edi, ammo uning etishmovchiligi juda uzoq vaqt davomida aniqlanmadi.

Ko'pgina sohalarda, 21-asrgacha bo'lgan tadqiqot ishlari tasodifiy tanlovga asoslangan yoki Monte-Karlo simulyatsiya yoki boshqa yo'llar bilan PRNG-larga tayanadigan bo'lsak, sifatsiz PRNG-lardan foydalanish natijasida idealga qaraganda unchalik ishonchli bo'lmagan.[4] Quyidagi ogohlantirish bilan tasvirlanganidek, bugungi kunda ham, ba'zida ehtiyotkorlik talab etiladi Xalqaro statistika fanlari entsiklopediyasi (2010).[5]

Yo'q qilish kerak bo'lgan keng qo'llaniladigan generatorlar ro'yxati ancha yaxshi [yaxshi generatorlar ro'yxatiga qaraganda]. Dastur ta'minotchilariga ko'r-ko'rona ishonmang. Sevimli dasturiy ta'minotingizning standart RNG-ni tekshiring va agar kerak bo'lsa, uni almashtirishga tayyor bo'ling. Ushbu so'nggi tavsiya so'nggi 40 yil ichida qayta-qayta qilingan. Ehtimol, ajablanarli tomoni shundaki, u 40 yil oldingi kabi bugungi kunda ham dolzarb bo'lib qolmoqda.

Illyustratsiya sifatida keng qo'llaniladigan dasturlash tilini ko'rib chiqing Java. 2017 yildan boshlab, Java hali ham a ga tayanadi chiziqli konstruktiv generator PRNG uchun (LCG),[6][7] past sifatli - quyida ko'rib chiqing.

Katta muammolardan qochish va hali ham tezkor ishlash uchun taniqli PRNG biri edi Mersen Tvister (quyida muhokama qilingan), u 1998 yilda nashr etilgan. Boshqa yuqori sifatli PRNGlar ham hisoblash, ham statistik ko'rsatkichlar bo'yicha ushbu sanadan oldin va keyin ishlab chiqilgan; bularni aniqlash mumkin Pseudorandom tasodifiy generatorlar ro'yxati.

Lineer takrorlanishga asoslangan generatorlar

20-asrning ikkinchi yarmida PRNGlar uchun ishlatiladigan algoritmlarning standart klassi tarkib topdi chiziqli konstruktiv generatorlar. LCGlarning sifati etarli emasligi ma'lum bo'lgan, ammo undan yaxshi usullar mavjud emas edi. Press et al. (2007) natijani shunday ta'riflagan: "Agar natijalari [LCG va shunga o'xshashlar] tufayli shubhali bo'lgan barcha ilmiy maqolalar kutubxona javonlaridan yo'q bo'lib ketsa, har bir javonda sizning mushtingizdek bo'shliq paydo bo'ladi".[8]

Soxta tasodifiy generatorlar qurilishida katta yutuqlarga asoslangan texnikalarni joriy etish edi chiziqli qaytalanishlar ikki elementli maydonda; bunday generatorlar bilan bog'liq chiziqli teskari siljish registrlari.

1997 yilgi ixtiro Mersen Tvister,[9] xususan, avvalgi generatorlar bilan bog'liq ko'plab muammolarning oldini oldi. Mersen Tvisterning davri 2 ga teng19 937-1 takrorlash (-4.3.)×106001) ekanligi isbotlangan teng taqsimlangan (323 bitli qiymatlar uchun) 623 o'lchovda (va), va uni joriy qilish paytida boshqa statistik jihatdan oqilona generatorlardan tezroq ishlaydi.

2003 yilda, Jorj Marsagliya oilasini tanishtirdi xorshift generatorlar,[10] yana chiziqli takrorlanishga asoslangan. Bunday generatorlar juda tezkor va chiziqli bo'lmagan ish bilan birgalikda kuchli statistik sinovlardan o'tadi.[11][12][13]

2006 yilda Xo'sh generatorlar oilasi ishlab chiqilgan.[14] WELL generatorlari qaysidir ma'noda Mersenne Twister-ning sifatini yaxshilaydi, bu juda katta davlat maydoniga ega va juda ko'p nolga ega bo'lgan bo'shliqlardan juda sekin tiklanadi.

Kriptografik xavfsiz pseudorandom raqamlar generatorlari

Uchun mos PRNG kriptografik ilovalar a kriptografik jihatdan xavfsiz PRNG (CSPRNG). CSPRNG uchun talab shundan iboratki, dushman faqat urug'ni bilmasligi kerak ahamiyatsiz afzallik generatorning chiqish ketma-ketligini tasodifiy ketma-ketlikdan ajratishda. Boshqacha qilib aytganda, PRNG faqat ma'lum statistik testlarni topshirishi kerak bo'lsa, CSPRNG cheklangan barcha statistik testlarni topshirishi kerak polinom vaqti urug 'hajmida. Garchi ushbu xususiyatning isboti zamonaviy san'at darajasidan tashqarida bo'lsa ham hisoblash murakkabligi nazariyasi, kuchli dalillar taqdim etilishi mumkin kamaytirish CSPRNG-ga a muammo deb taxmin qilinadi qiyin, kabi tamsayı faktorizatsiyasi.[15] Umuman olganda, algoritm CSPRNG sertifikatiga ega bo'lishidan oldin yillar davomida qayta ko'rib chiqish talab qilinishi mumkin.

CSPRNGlarning ayrim sinflari quyidagilarni o'z ichiga oladi:

Ehtimol, bo'lishi mumkinligi ko'rsatilgan NSA assimetrik kiritdi orqa eshik ichiga NIST sertifikatlangan yolg'on tasodifiy raqamlar generatori Dual_EC_DRBG.[19]

Ko'pgina PRNG algoritmlari ketma-ketlikni hosil qiladi bir xil taqsimlangan bir nechta sinovlardan biri. Bu ochiq savol va nazariya va amaliyot uchun markaziy hisoblanadi kriptografiya, yuqori sifatli PRNG ni chindan ham tasodifiy ketma-ketlikdan ajratishning biron bir usuli bormi. Ushbu parametrda farqlovchi ma'lum PRNG algoritmi ishlatilganligini (lekin u ishga tushirilgan holat emas) yoki chindan ham tasodifiy algoritm ishlatilganligini biladi va ikkalasini ajratib ko'rsatishi kerak.[20] PRNG-lardan foydalangan holda ko'pgina kriptografik algoritmlar va protokollarning xavfsizligi mos PRNG-dan foydalanishni chinakam tasodifiy ketma-ketlikdan ajratib bo'lmaydi. Ushbu qaramlikning eng oddiy misollari oqim shifrlari, qaysi (ko'pincha) tomonidan ishlaydi eksklyuziv yoki - bilan Oddiy matn PRNG chiqishi bilan ishlab chiqarilgan xabar shifrlangan matn. Kriptografik jihatdan etarli PRNGlarning dizayni juda qiyin, chunki ular qo'shimcha mezonlarga javob berishi kerak. Davrning kattaligi PRNG-ning kriptografik muvofiqligi uchun muhim omil hisoblanadi, ammo bu yagona emas.

BSIni baholash mezonlari

Nemis Axborot xavfsizligi bo'yicha federal idora (Bundesamt für Sicherheit in der Informationstechnik, BSI) aniqlangan tasodifiy sonlar generatorlari sifatining to'rtta mezonini o'rnatdi.[21] Ular bu erda umumlashtirilgan:

  • K1 - tasodifiy sonlar ketma-ketligini bir-biridan farq qilish ehtimoli katta bo'lishi kerak.
  • K2 - raqamlar ketma-ketligini belgilangan statistik testlarga ko'ra "chinakam tasodifiy" raqamlardan ajratib bo'lmaydi. Sinovlar monobit test (ketma-ketlikdagi birliklar va nollarning teng sonlari), poker test (ning maxsus misoli kvadratchalar bo'yicha sinov ), ishlaydi test (har xil uzunlikdagi yugurish chastotasini hisoblaydi), uzoq muddatli test (ketma-ketlikning 20 000 bitida 34 yoki undan katta uzunlikdagi ishlarning mavjudligini tekshiradi) - ikkalasidan ham BSI[21] va NIST,[22] va avtokorrelyatsiya sinov. Aslida, bu talablar bit ketma-ketligining qanchalik yaxshi ekanligi sinovidir: nolga teng bo'lganlar teng ravishda; ketma-ketligidan keyin n nollar (yoki bitlar), keyingisi bit (yoki nol) bilan ehtimolligi yarim; va har qanday tanlangan ketma-ketlik ketma-ketlikdagi keyingi element (lar) haqida hech qanday ma'lumotga ega emas.
  • K3 - tajovuzkor uchun (barcha amaliy maqsadlar uchun) ketma-ketlikdagi oldingi yoki kelajakdagi qiymatlarni yoki generatorning ichki holatini hisoblash yoki boshqa taxmin qilish mumkin emas.
  • K4 - barcha amaliy maqsadlar uchun tajovuzkor generatorning ichki holatidan ketma-ketlikdagi oldingi raqamlarni yoki oldingi ichki generator holatlarini hisoblashi yoki taxmin qilishi mumkin emas.

Kriptografik dasturlar uchun faqat K3 yoki K4 standartlariga javob beradigan generatorlar qabul qilinadi.

Matematik ta'rif

Berilgan

  • - ehtimollik taqsimoti (qayerda standart hisoblanadi Borel o'rnatdi haqiqiy chiziqda)
  • - bo'sh bo'lmagan Borel to'plamlari to'plami , masalan. . Agar ko'rsatilmagan, u ham bo'lishi mumkin yoki , kontekstga qarab.
  • - bo'sh bo'lmagan to'plam (Borel to'plami shart emas). Ko'pincha orasidagi to'siq "s qo'llab-quvvatlash va uning ichki makon; masalan, agar bu interval bo'yicha bir xil taqsimot , bo'lishi mumkin . Agar ko'rsatilmagan bo'lsa, u qo'llab-quvvatlash tarkibidagi ba'zi bir to'plam deb taxmin qilinadi va tarkibiga qarab, uning ichki qismini o'z ichiga oladi.

Biz funktsiyani chaqiramiz (qayerda musbat tamsayılar to'plamidir) a uchun psevdo-tasodifiy sonlar generatori berilgan qiymatlarni qabul qilish agar va faqat agar

( cheklangan to'plamdagi elementlar sonini bildiradi .)

Agar shunday bo'lsa, buni ko'rsatish mumkin bir xil taqsimlash uchun psevdo-tasodifiy sonlar generatoridir va agar bo'ladi CDF berilgan ehtimollik taqsimotining ba'zilari , keyin uchun psevdo-tasodifiy sonlar ishlab chiqaruvchisi , qayerda ning foizidir , ya'ni . Intuitiv ravishda o'zboshimchalik bilan taqsimlashni standart bir xil taqsimot simulyatsiyasidan taqlid qilish mumkin.

Dastlabki yondashuvlar

Tomonidan taklif qilingan dastlabki kompyuterga asoslangan PRNG Jon fon Neyman 1946 yilda, nomi bilan tanilgan o'rta kvadrat usuli. Algoritm quyidagicha: istalgan raqamni oling, kvadratga qo'ying, natijada paydo bo'lgan raqamning o'rta raqamlarini "tasodifiy raqam" sifatida olib tashlang, so'ngra ushbu raqamdan keyingi takrorlash uchun urug 'sifatida foydalaning. Masalan, "1111" raqamini kvadratga aylantirganda "1234321" hosil bo'ladi, uni "01234321" deb yozish mumkin, 8 xonali raqam 4 xonali sonning kvadrati. Bu "tasodifiy" raqam sifatida "2343" raqamini beradi. Ushbu protsedurani takrorlash navbatdagi natija sifatida "4896" ni beradi va hokazo. Fon Neyman 10 ta raqamdan foydalangan, ammo jarayon bir xil bo'lgan.

"O'rtacha kvadrat" uslubidagi muammo shundaki, barcha ketma-ketliklar oxir-oqibat takrorlanadi, ba'zilari juda tez, masalan, "0000". Fon Neyman bundan xabardor edi, ammo u o'z maqsadlari uchun etarli bo'lgan yondashuvni topdi va matematik "tuzatishlar" xatolarni yo'q qilish o'rniga shunchaki yashirishidan xavotirda edi.

Fon Neyman apparatdagi tasodifiy raqamlarni ishlab chiqaruvchilarni yaroqsiz deb topdi, chunki ular hosil bo'lgan natijalarni qayd qilmagan bo'lsalar, keyinchalik ularni xatolar uchun sinovdan o'tkazib bo'lmaydi. Agar ular o'zlarining natijalarini yozib olishganida, ular mavjud bo'lgan cheklangan kompyuter xotiralarini va shu bilan birga kompyuterning raqamlarni o'qish va yozish qobiliyatini tugatgan bo'lar edi. Agar raqamlar kartochkalarga yozilgan bo'lsa, ularni yozish va o'qish ancha uzoq davom etar edi. Ustida ENIAC u foydalanayotgan kompyuter, "o'rta kvadrat" usuli raqamlarni o'qishdan yuz baravar tezroq raqamlar hosil qildi perforatorlar.

O'shandan beri o'rta kvadrat usuli yanada aniqroq generatorlar tomonidan almashtirildi.

Yaqinda o'tkazilgan yangilik - o'rta kvadratni a bilan birlashtirish Veyl ketma-ketligi. Ushbu usul uzoq vaqt davomida yuqori sifatli mahsulot ishlab chiqaradi (qarang) O'rta maydon Weyl ketma-ketligi PRNG ).

Bir xil bo'lmagan generatorlar

Bir xil bo'lmagan ehtimollik taqsimotidan tanlangan raqamlar a yordamida hosil bo'lishi mumkin bir xil taqsimlash PRNG va ikkita taqsimot bilan bog'liq funktsiya.

Birinchidan, biriga kerak kümülatif taqsimlash funktsiyasi maqsadli taqsimot :

Yozib oling . Tasodifiy raqamdan foydalanish v ehtimollik zichligi bo'yicha "o'tish" uchun bir xil taqsimotdan biz olamiz

Shuning uchun; ... uchun; ... natijasida

tarqatishdan tasodifiy tanlangan raqam .

Masalan, kumulyativning teskari tomoni Gauss taqsimoti kirish (0, 1) diapazoni bilan ideal bir xil PRNG bilan Gauss taqsimotiga ega bo'lgan (faqat ijobiy) qiymatlar ketma-ketligini hosil qiladi; ammo

  • Amaliy raqamli tasvirlardan foydalanganda, taqsimotning cheksiz "quyruqlari" ni cheklangan qiymatlarga qisqartirish kerak.
  • Takroriy qayta hisoblash kabi vositalar yordamida kamaytirilishi kerak ziggurat algoritmi tezroq avlod uchun.

Shunga o'xshash fikrlar boshqa bir xil bo'lmagan taqsimotlarni ishlab chiqarishda ham qo'llaniladi Reyli va Poisson.

Shuningdek qarang

Adabiyotlar

  1. ^ Barker, Eleyn; Barker, Uilyam; Burr, Uilyam; Polk, Uilyam; Smid, Miles (2012 yil iyul). "Kalitlarni boshqarish bo'yicha tavsiyalar" (PDF). NIST Maxsus nashr 800-57. NIST. Olingan 19 avgust 2013.
  2. ^ "Pseudorandom raqamlar generatorlari". Xon akademiyasi. Olingan 2016-01-11.
  3. ^ Von Neyman, Jon (1951). "Tasodifiy raqamlar bilan bog'liq turli xil texnikalar" (PDF). Amaliy matematika milliy standartlar byurosi. 12: 36–38.
  4. ^ Press et al. (2007), 7-bob
  5. ^ L'Ekuyer, Per (2010). "Bir xil tasodifiy raqamlar generatorlari". Lovrikda, Miodrag (tahrir). Xalqaro statistika fanlari entsiklopediyasi. Springer. p. 1629. ISBN  3-642-04897-8.
  6. ^ Tasodifiy (Java Platform SE 8), Java Platform Standard Edition 8 Hujjatlar.
  7. ^ Random.java da OpenJDK.
  8. ^ Press et al. (2007) §7.1
  9. ^ Matsumoto, Makoto; Nishimura, Takuji (1998). "Mersenn twister: 623 o'lchovli teng taqsimlangan yagona psevdo-tasodifiy sonlar generatori" (PDF). Modellashtirish va kompyuter simulyatsiyasi bo'yicha ACM operatsiyalari. ACM. 8 (1): 3–30. doi:10.1145/272991.272995.
  10. ^ Marsaglia, Jorj (2003 yil iyul). "Xorshift RNGs". Statistik dasturiy ta'minot jurnali. 8 (14).
  11. ^ S.Vigna. "xorshift * / xorshift + generatorlari va PRNG otishmasi".
  12. ^ Vigna S. (2016), "Marsaglia xorshift generatorlarini eksperimental tadqiq qilish", Matematik dasturiy ta'minot bo'yicha ACM operatsiyalari, 42; doi:10.1145/2845077.
  13. ^ Vigna S. (2017), "Marsaglia-ning xorshift generatorlarini keyingi urinishlari", Hisoblash va amaliy matematika jurnali, 315; doi:10.1016 / j.cam.2016.11.006.
  14. ^ Panneton, Fransua; L'Ekuyer, Per; Matsumoto, Makoto (2006). "2-modulli chiziqli takrorlanish asosida ishlab chiqarilgan uzoq muddatli generatorlar" (PDF). Matematik dasturiy ta'minot bo'yicha ACM operatsiyalari. 32 (1): 1–16. doi:10.1145/1132973.1132974.
  15. ^ Qo'shiq Y. Yan. RSA-ga kriptanalitik hujumlar. Springer, 2007. p. 73. ISBN  978-0-387-48741-0.
  16. ^ Nils Fergyuson, Bryus Shnayer, Tadayoshi Kohno (2010). "Kriptografiya muhandisligi: dizayn tamoyillari va amaliy qo'llanmalar, 9.4-bob: generator" (PDF).CS1 maint: bir nechta ism: mualliflar ro'yxati (havola)
  17. ^ Klaus Pommerening (2016). "IV.4 Perfect random tasodifiy generatorlar". Kriptologiya. uni-mainz.de. Olingan 2017-11-12. MICALI-SCHNORR generatori
  18. ^ Pass, Rafael. "11-ma'ruza: Goldreich-Levin teoremasi" (PDF). COM S 687 Kriptografiyaga kirish. Olingan 20 iyul 2016.
  19. ^ Metyu Yashil. "Dual_EC_DRBG ning ko'plab kamchiliklari".
  20. ^ Kats, Jonatan; Yehuda, Lindell (2014). Zamonaviy kriptografiyaga kirish. CRC press. p. 70.
  21. ^ a b Shindler, Verner (1999 yil 2-dekabr). "Deterministik tasodifiy sonlar generatorlari uchun funktsionallik sinflari va baholash metodikasi" (PDF). Anwendungshinweise und Interpretationen (AIS). Bundesamt für Sicherheit in der Informationstechnik. 5-11 betlar. Olingan 19 avgust 2013.
  22. ^ "Kriptografik modullar uchun xavfsizlik talablari". FIPS. NIST. 1994-01-11. p. 4.11.1 Quvvatni kuchaytirish sinovlari. Arxivlandi asl nusxasi 2013 yil 27 mayda. Olingan 19 avgust 2013.

Bibliografiya

Tashqi havolalar