VKontakte Facebook Twitter Mlisho wa RSS

Sensorer za nambari bila mpangilio. Warusi wamekuja na jenereta ya nambari ya kibaolojia ya "kwanza" ya kibaolojia. Je, inafanyaje kazi? Bidhaa zinazotumia teknolojia

PRNG za kuamua

Hakuna algoriti ya kubainisha inayoweza kutoa nambari nasibu kabisa, inaweza tu kukadiria baadhi ya sifa nambari za nasibu. Kama John von Neumann alisema, " mtu yeyote ambaye ana udhaifu wa mbinu za hesabu za kupata nambari za nasibu ni dhambi isiyo na shaka yoyote».

PRNG yoyote iliyo na rasilimali chache mapema au baadaye huenda kwa mizunguko - huanza kurudia mlolongo sawa wa nambari. Urefu wa mizunguko ya PRNG inategemea jenereta yenyewe na kwa wastani ni karibu 2 n/2, ambapo n ni saizi. hali ya ndani katika biti, ingawa mfuatano wa mstari na jenereta za LFSR zina mizunguko ya juu zaidi ya mpangilio wa 2n. Ikiwa PRNG inaweza kuungana kwa mizunguko ambayo ni mifupi sana, PRNG inakuwa ya kutabirika na isiyoweza kutumika.

Jenereta nyingi rahisi za hesabu, ingawa haraka sana, zinakabiliwa na shida nyingi:

  • Kipindi/vipindi ni vifupi sana.
  • Thamani zinazofuatana hazijitegemea.
  • Biti zingine ni "chini ya nasibu" kuliko zingine.
  • Usambazaji usio sawa wa sura moja.
  • Ugeuzaji.

Hasa, algorithm ya mfumo mkuu iligeuka kuwa mbaya sana, ambayo ilileta mashaka juu ya uhalali wa matokeo ya tafiti nyingi ambazo zilitumia algorithm hii.

PRNG iliyo na chanzo cha entropy au RNG

Kama vile kuna haja ya kutoa mfuatano unaorudiwa kwa urahisi wa nambari nasibu, kuna haja pia ya kutoa nambari zisizotabirika kabisa au nasibu kabisa. Jenereta kama hizo huitwa jenereta za nambari za nasibu(RNG - Kiingereza) jenereta ya nambari isiyo ya kawaida, RNG) Kwa kuwa jenereta kama hizo hutumiwa mara nyingi kutoa funguo za kipekee za ulinganifu na asymmetric kwa usimbaji fiche, mara nyingi hujengwa kutoka kwa mchanganyiko wa PRNG yenye nguvu ya kificho na chanzo cha nje cha entropy (na ni mchanganyiko huu haswa ambao sasa unaeleweka kama funguo. RNG).

Takriban watengenezaji wakuu wa chipu husambaza RNG za maunzi na vyanzo mbalimbali entropy kutumia mbinu mbalimbali kuwaondoa katika utabiri usioepukika. Walakini, kwa sasa, kasi ambayo nambari za nasibu hukusanywa na microchips zote zilizopo (bits elfu kadhaa kwa sekunde) hailingani na kasi ya wasindikaji wa kisasa.

Katika kompyuta za kibinafsi, waandishi wa programu ya RNG hutumia vyanzo vya haraka zaidi vya entropy, kama vile kelele ya kadi ya sauti au kihesabu cha mzunguko wa saa ya kichakataji. Kabla ya kuwa inawezekana kusoma maadili ya kukabiliana na saa, mkusanyiko wa entropy ulikuwa mahali pa hatari zaidi ya RNG. Tatizo hili bado halijatatuliwa kikamilifu katika vifaa vingi (km kadi mahiri), ambavyo kwa hivyo vinabaki kuwa hatarini. RNG nyingi bado hutumia mbinu za kitamaduni (zamani) za kukusanya entropy, kama vile kupima miitikio ya mtumiaji (sogeo la panya, n.k.), kama vile, kwa mfano, au mwingiliano kati ya nyuzi, kama vile katika Java salama bila mpangilio.

Mifano ya RNG na vyanzo vya entropy

Mifano michache ya RNG zilizo na vyanzo vyao vya entropy na jenereta:

Chanzo cha entropy PRNG Faida Mapungufu
/dev/random kwenye Linux Kihesabu cha saa ya CPU, hata hivyo hukusanywa tu wakati wa kukatizwa kwa maunzi LFSR, yenye pato la haraka kupitia"Inawaka" kwa muda mrefu sana, inaweza "kukwama" kwa muda mrefu, au kufanya kazi kama PRNG ( /dev/urandom)
Yarrow na Bruce Schneier Mbinu za jadi (za zamani). AES-256 naMuundo nyumbufu sugu wa crypto Inachukua muda mrefu "kupasha joto", hali ndogo sana ya ndani, inategemea sana nguvu ya kriptografia ya algoriti zilizochaguliwa, polepole, zinazotumika kwa uundaji muhimu pekee.
Jenereta na Leonid Yuriev Kelele ya kadi ya sauti ? Uwezekano mkubwa zaidi chanzo kizuri na cha haraka cha entropy Hakuna PRNG inayojitegemea, inayojulikana ya crypto-strong, inayopatikana kama Windows pekee
Microsoft Imejengwa ndani ya Windows, haishiki Hali ndogo ya ndani, rahisi kutabiri
Mawasiliano kati ya nyuzi Hakuna chaguo lingine katika Java bado, kuna hali kubwa ya ndani Mkusanyiko wa polepole wa entropy
Machafuko na Ruptor Kaunta ya saa ya processor, iliyokusanywa kwa kuendelea Hali ya ndani ya Hashing 4096-bit kulingana na lahaja isiyo ya mstari ya jenereta ya Marsaglia Hadi haraka zaidi, hali kubwa ya ndani, "inakwama"
RRAND kutoka kwa Ruptor Kaunta ya mzunguko wa CPU Inasimba hali ya ndani kwa njia fiche ya mtiririkoHaraka sana, hali ya ndani ya ukubwa wa kiholela kuchagua kutoka, hakuna "kukwama"

PRNG katika kriptografia

Aina ya PRNG ni PRBGs - jenereta za bits za uwongo-random, pamoja na misimbo mbalimbali ya mtiririko. PRNG, kama vile sipheri za mtiririko, hujumuisha hali ya ndani (kawaida huanzia kwa ukubwa kutoka biti 16 hadi megabaiti kadhaa), chaguo la kukokotoa ili kuanzisha hali ya ndani kwa kutumia kitufe au mbegu(Kiingereza) mbegu), vitendakazi vya kusasisha hali ya ndani, na vitendaji vya kutoa. PRNG zimegawanywa katika hesabu rahisi, kriptografia iliyovunjika na kriptografia yenye nguvu. Kusudi lao la jumla ni kutoa mlolongo wa nambari ambazo haziwezi kutofautishwa kutoka kwa nasibu kwa njia za hesabu.

Ingawa PRNG nyingi kali au sifa za mtiririko hutoa nambari "nasibu" zaidi, jenereta kama hizo ni polepole zaidi kuliko jenereta za kawaida za hesabu na hazifai kwa aina yoyote ya utafiti unaohitaji kichakataji kuwa huru kwa hesabu muhimu zaidi.

Kwa madhumuni ya kijeshi na katika hali ya uwanja, PRNGs za kriptografia zilizoainishwa pekee (ciphers za mkondo) hazitumiki; Mifano ya PRNG zenye nguvu za kriptografia zinazojulikana ni ISAAC, SEAL, Snow, algoriti ya kinadharia polepole sana ya Blum, Blum na Shub, pamoja na vihesabio vilivyo na vitendaji vya heshi kriptografia au vizuizi vikali vya kriptografia badala ya chaguo la kukokotoa la kutoa.

PRNG ya vifaa

Mbali na urithi, jenereta zinazojulikana za LFSR ambazo zilitumika sana kama vifaa vya PRNGs katika karne ya 20, kwa bahati mbaya, ni kidogo sana inayojulikana kuhusu vifaa vya kisasa vya PRNGs (ciphers za mkondo), kwani nyingi zilitengenezwa kwa madhumuni ya kijeshi na huhifadhiwa kwa siri. . Takriban PRNG zote zilizopo za maunzi ya kibiashara zina hati miliki na pia zinawekwa siri. PRNG za vifaa ni mdogo na mahitaji madhubuti ya kumbukumbu inayoweza kutumika (mara nyingi utumiaji wa kumbukumbu ni marufuku), kasi (mizunguko ya saa 1-2) na eneo (FPGA mia kadhaa - au

Kutokana na ukosefu wa PRNGs nzuri za vifaa, wazalishaji wanalazimika kutumia polepole zaidi, lakini vizuizi vinavyojulikana vinavyopatikana kwa mkono (Mapitio ya Kompyuta No. 29 (2003)

  • Yuri Lifshits. Kozi "Matatizo ya kisasa ya cryptography" Hotuba ya 9: Jenereta za Pseudorandom
  • L. Barash. Algorithm ya AKS ya kuangalia nambari kwa ubora na kutafuta viboreshaji vya jenereta ya nambari ya uwongo.
  • Zhelnikov Vladimir. Mlolongo wa uwongo wa nambari // Cryptography kutoka papyrus hadi kompyuta M.: ABF, 1996.
  • random.org (Kiingereza) - huduma ya mtandaoni ya kuzalisha nambari za nasibu
  • Nambari za Nambari za Cryptographic
  • Nadharia na Mazoezi ya Kizazi Nambari Nambari
  • Zvi Gutterman, Benny Pinkas, Tzachy Reinman. Uchambuzi wa Jenereta ya Nambari za Nambari za Linux
  • Jaribio la Kitakwimu la Jenereta za Nambari za Nambari za Nambari za Nambari za Bahati Nasibu za Programu za Kisirisiri NIST SP 800-22

  • Kumbuka kuwa kwa kweli mduara wa msongamano wa usambazaji nambari nasibu ungeonekana kama inavyoonyeshwa kwenye Mtini. 22.3. Hiyo ni, kwa kweli, kila muda una idadi sawa ya alama: N i = N/k , wapi N jumla ya pointi, k idadi ya vipindi, i= 1, , k .

    Mchele. 22.3. Mchoro wa mara kwa mara wa nambari za nasibu,
    inayotolewa kinadharia na jenereta bora

    Ikumbukwe kwamba kutoa nambari ya nasibu ya kiholela ina hatua mbili:

    • kutoa nambari ya nasibu ya kawaida (yaani, kusambazwa kwa usawa kutoka 0 hadi 1);
    • ubadilishaji nambari nasibu uliorekebishwa r i kwa nambari za nasibu x i, ambazo zinasambazwa kulingana na sheria (ya kiholela) ya usambazaji inayotakiwa na mtumiaji au kwa muda unaohitajika.

    Jenereta za nambari za nasibu kulingana na njia ya kupata nambari zimegawanywa katika:

    • kimwili;
    • tabular;
    • algorithmic.

    RNG ya kimwili

    Mfano wa RNG ya kimwili inaweza kuwa: sarafu ("vichwa" 1, "mikia" 0); kete; ngoma yenye mshale uliogawanywa katika sekta na nambari; jenereta ya kelele ya vifaa (HS), ambayo hutumia kifaa cha joto cha kelele, kwa mfano, transistor (Mchoro 22.422.5).

    Mchele. 22.4. Mpango wa mbinu ya maunzi ya kutengeneza nambari nasibu
    Mchele. 22.5. Mchoro wa kupata nambari za nasibu kwa kutumia njia ya maunzi
    Kazi "Kuzalisha nambari za nasibu kwa kutumia sarafu"

    Tengeneza nambari ya tarakimu tatu nasibu, iliyosambazwa kwa usawa katika masafa kutoka 0 hadi 1, kwa kutumia sarafu. Usahihi wa nafasi tatu za desimali.

    Njia ya kwanza ya kutatua tatizo
    Piga sarafu mara 9, na ikiwa sarafu inatua kwenye vichwa, basi andika "0" ikiwa inatua kwenye vichwa, kisha uandike "1". Kwa hivyo, wacha tuseme kwamba kama matokeo ya jaribio tulipokea mlolongo wa nasibu 100110100.

    Chora muda kutoka 0 hadi 1. Kusoma nambari kwa mlolongo kutoka kushoto kwenda kulia, gawanya muda katika nusu na kila wakati chagua moja ya sehemu za muda unaofuata (ikiwa 0 imetolewa, kisha ya kushoto, ikiwa 1 imetolewa, kisha moja sahihi). Kwa hivyo, unaweza kufikia hatua yoyote katika muda, kwa usahihi kama unavyopenda.

    Kwa hiyo, 1 : muda umegawanywa kwa nusu na, nusu ya haki imechaguliwa, muda umepunguzwa:. Nambari inayofuata 0 : muda umegawanywa kwa nusu na, nusu ya kushoto imechaguliwa, muda umepunguzwa:. Nambari inayofuata 0 : muda umegawanywa kwa nusu na, nusu ya kushoto imechaguliwa, muda umepunguzwa:. Nambari inayofuata 1 : muda umegawanywa kwa nusu na, nusu ya haki imechaguliwa, muda umepunguzwa:.

    Kwa mujibu wa hali ya usahihi wa tatizo, suluhisho limepatikana: ni nambari yoyote kutoka kwa muda, kwa mfano, 0.625.

    Kimsingi, ikiwa tunachukua mbinu kali, basi mgawanyiko wa vipindi lazima uendelee mpaka mipaka ya kushoto na ya kulia ya muda uliopatikana COINCIDE na usahihi wa nafasi ya tatu ya decimal. Hiyo ni, kutoka kwa mtazamo wa usahihi, nambari inayozalishwa haitaweza kutofautishwa tena na nambari yoyote kutoka kwa muda ambayo iko.

    Njia ya pili ya kutatua tatizo
    Wacha tugawanye mlolongo wa nambari 100110100 kuwa triads: 100, 110, 100. Baada ya kubadilisha nambari hizi za binary kuwa nambari za desimali, tunapata: 4, 6, 4. Kubadilisha "0" mbele, tunapata: 0.464. Njia hii inaweza tu kutoa nambari kutoka 0.000 hadi 0.777 (kwani kiwango cha juu ambacho kinaweza "kuminywa" kutoka kwa tarakimu tatu za binary ni 111 2 = 7 8) yaani, kwa kweli, nambari hizi zinawakilishwa katika mfumo wa nambari ya octal. Kwa tafsiri octal nambari ndani desimali tufanye uwakilishi:
    0.464 8 = 4 8 1 + 6 8 2 + 4 8 3 = 0.6015625 10 = 0.602 10.
    Kwa hivyo, nambari inayotakiwa ni: 0.602.

    RNG ya jedwali

    RNG za Tabular hutumia jedwali zilizokusanywa mahususi zilizo na uthibitisho ambao haujaunganishwa, ambayo ni, kwa njia yoyote kutegemeana, nambari kama chanzo cha nambari nasibu. Katika meza Mchoro 22.1 unaonyesha kipande kidogo cha meza kama hiyo. Kwa kuvuka jedwali kutoka kushoto kwenda kulia kutoka juu hadi chini, unaweza kupata nambari nasibu zilizosambazwa sawasawa kutoka 0 hadi 1 na nambari inayotakiwa ya maeneo ya desimali (katika mfano wetu, tunatumia nafasi tatu za desimali kwa kila nambari). Kwa kuwa nambari kwenye jedwali hazitegemei kila mmoja, meza inaweza kupitiwa kwa njia tofauti, kwa mfano, kutoka juu hadi chini, au kutoka kulia kwenda kushoto, au, sema, unaweza kuchagua nambari ambazo ziko katika nafasi sawa.

    Jedwali 22.1.
    Nambari za nasibu. Sawasawa
    nambari za nasibu zinazosambazwa kutoka 0 hadi 1
    Nambari za nasibu Imesambazwa sawasawa
    Nambari 0 hadi 1 bila mpangilio
    9 2 9 2 0 4 2 6 0.929
    9 5 7 3 4 9 0 3 0.204
    5 9 1 6 6 5 7 6 0.269
    … …

    Faida ya njia hii ni kwamba hutoa nambari za nasibu, kwani jedwali lina nambari zilizothibitishwa ambazo hazijaunganishwa. Hasara za njia: kwa kuhifadhi kiasi kikubwa nambari zinahitaji kumbukumbu nyingi; Kuna matatizo makubwa katika kuzalisha na kuangalia aina hii ya majedwali wakati wa kutumia jedwali haitoi dhamana tena ya kubahatisha mlolongo wa nambari, na kwa hiyo kuaminika kwa matokeo.

    Kuna meza iliyo na nambari 500 zilizothibitishwa bila mpangilio (zilizochukuliwa kutoka kwa kitabu na I. G. Venetsky, V. I. Venetskaya "Dhana na kanuni za msingi za hisabati na takwimu katika uchambuzi wa kiuchumi").

    RNG ya algorithmic

    Nambari zinazozalishwa na RNG hizi kila wakati ni pseudo-random (au quasi-random), yaani, kila nambari inayofuata inayotolewa inategemea ile iliyotangulia:

    r i + 1 = f(r i) .

    Mlolongo unaoundwa na nambari kama hizo huunda vitanzi, ambayo ni, lazima kuwe na mzunguko ambao unarudia idadi isiyo na kikomo ya nyakati. Mizunguko ya kurudia inaitwa vipindi.

    Faida ya RNG hizi ni kasi yao; jenereta hazihitaji rasilimali za kumbukumbu na ni fupi. Hasara: nambari haziwezi kuitwa kikamilifu bila mpangilio, kwa kuwa kuna utegemezi kati yao, pamoja na uwepo wa vipindi katika mlolongo wa nambari za quasi-random.

    Wacha tuchunguze njia kadhaa za algorithmic za kupata RNG:

    • njia ya viwanja vya kati;
    • njia ya bidhaa za kati;
    • njia ya kuchochea;
    • njia ya mfuatano wa mstari.

    Mbinu ya katikati ya mraba

    Kuna nambari ya tarakimu nne R 0 . Nambari hii ni ya mraba na kuingizwa R 1. Inayofuata kutoka R 1 inachukua nambari ya kati (nambari nne za kati) nambari mpya ya nasibu na kuiandika R 0 . Kisha utaratibu unarudiwa (tazama Mchoro 22.6). Kumbuka kuwa kwa kweli, kama nambari isiyo ya kawaida hauitaji kuchukua ghij, A 0.ghij na sifuri na nukta ya desimali imeongezwa upande wa kushoto. Ukweli huu unaonyeshwa kama katika Mtini. 22.6, na katika takwimu zinazofuata zinazofanana.

    Mchele. 22.6. Mpango wa mbinu ya miraba wastani

    Hasara za njia: 1) ikiwa kwa kurudia nambari R 0 inakuwa sawa na sifuri, basi jenereta hupungua, hivyo uchaguzi sahihi wa thamani ya awali ni muhimu R 0; 2) jenereta itarudia mlolongo kupitia M n hatua (bora), wapi n nambari ya nambari R 0 , M msingi wa mfumo wa nambari.

    Kwa mfano katika Mtini. 22.6: ikiwa nambari R 0 itawasilishwa ndani mfumo wa binary nambari, basi mlolongo wa nambari za pseudo-random zitarudiwa katika 2 4 = 16 hatua. Kumbuka kwamba kurudia kwa mlolongo kunaweza kutokea mapema ikiwa nambari ya kuanzia imechaguliwa vibaya.

    Njia iliyoelezwa hapo juu ilipendekezwa na John von Neumann na ilianza 1946. Kwa kuwa njia hii iligeuka kuwa isiyoaminika, iliachwa haraka.

    Mbinu ya bidhaa ya kati

    Nambari R 0 ikizidishwa na R 1, kutokana na matokeo yaliyopatikana R 2 katikati hutolewa R 2 * (hii ni nambari nyingine ya nasibu) na kuzidishwa na R 1. Nambari zote za nasibu zinazofuata zinahesabiwa kwa kutumia mpango huu (tazama Mchoro 22.7).

    Mchele. 22.7. Mpango wa njia ya bidhaa za wastani

    Mbinu ya kuchochea

    Mbinu ya kuchanganya hutumia shughuli ili kuhamisha maudhui ya seli kushoto na kulia kwa mzunguko. Wazo la njia ni kama ifuatavyo. Acha seli ihifadhi nambari ya kwanza R 0 . Kuhamisha yaliyomo kwenye seli kwenda kushoto kwa 1/4 ya urefu wa seli, tunapata nambari mpya. R 0*. Kwa njia hiyo hiyo, baiskeli yaliyomo kwenye seli R 0 kulia kwa 1/4 ya urefu wa seli, tunapata nambari ya pili R 0**. Jumla ya nambari R 0* na R 0** inatoa nambari mpya ya nasibu R 1. Inayofuata R 1 imeingizwa R 0, na mlolongo mzima wa shughuli unarudiwa (tazama Mchoro 22.8).


    Mchele. 22.8. Mchoro wa njia ya kuchanganya

    Tafadhali kumbuka kuwa nambari inayotokana na muhtasari R 0* na R 0 ** , inaweza isitoshe kabisa kwenye seli R 1. Katika kesi hii, nambari za ziada lazima zitupwe kutoka kwa nambari inayosababisha. Hebu tueleze hili katika Mtini. 22.8, ambapo visanduku vyote vinawakilishwa na tarakimu nane za binary. Hebu R 0 * = 10010001 2 = 145 10 , R 0 ** = 10100001 2 = 161 10 , Kisha R 0 * + R 0 ** = 100110010 2 = 306 10 . Kama unaweza kuona, nambari 306 inachukua nambari 9 (katika mfumo wa nambari ya binary), na seli R 1 (sawa na R 0) inaweza kuwa na kiwango cha juu cha biti 8. Kwa hiyo, kabla ya kuingiza thamani ndani R 1, inahitajika kuondoa "ziada" moja, kushoto kabisa kutoka kwa nambari 306, na kusababisha R 1 haitaenda tena kwa 306, lakini kwa 00110010 2 = 50 10 . Pia kumbuka kuwa katika lugha kama vile Pascal, "kupunguza" biti za ziada wakati kisanduku kinajaa hutekelezwa kiotomatiki kwa mujibu wa aina iliyobainishwa ya tofauti.

    Mbinu ya mfuatano wa mstari

    Mbinu ya mfuatano wa mstari ni mojawapo ya taratibu rahisi na zinazotumiwa sana kwa sasa zinazoiga nambari nasibu. Njia hii hutumia mod( x, y) , ambayo inarudisha salio wakati hoja ya kwanza imegawanywa na ya pili. Kila nambari ya nasibu inayofuata inakokotolewa kulingana na nambari nasibu ya hapo awali kwa kutumia fomula ifuatayo:

    r i+ 1 = mod ( k · r i + b, M) .

    Mlolongo wa nambari za nasibu zilizopatikana kwa kutumia fomula hii huitwa mfuatano wa mfuatano wa mstari. Waandishi wengi huita mfuatano wa mstari wakati b = 0 njia ya upatanisho wa kuzidisha, na lini b ≠ 0 — mbinu mchanganyiko.

    Kwa jenereta ya ubora wa juu, ni muhimu kuchagua coefficients zinazofaa. Ni muhimu kwamba idadi M ilikuwa kubwa kabisa, kwani kipindi hicho hakiwezi kuwa na zaidi M vipengele. Kwa upande mwingine, mgawanyiko unaotumiwa katika njia hii ni operesheni polepole, kwa hivyo kwa kompyuta ya binary chaguo la kimantiki litakuwa. M = 2 N, kwa kuwa katika kesi hii, kutafuta salio ya mgawanyiko hupunguzwa ndani ya kompyuta kwa uendeshaji wa mantiki ya binary "AND". Kuchagua nambari kuu kuu pia ni kawaida M, chini ya 2 N: katika fasihi maalumu inathibitishwa kuwa katika kesi hii tarakimu za utaratibu wa chini wa nambari inayotokana na random r i+ 1 hutenda kwa nasibu kama zile za zamani, ambayo ina athari chanya kwenye mlolongo mzima wa nambari nasibu kwa ujumla. Kwa mfano, moja ya Nambari za Mersenne, sawa na 2 31 1, na hivyo, M= 2 31 1 .

    Moja ya mahitaji ya mfuatano wa mfuatano wa mstari ni kwamba urefu wa kipindi uwe mrefu iwezekanavyo. Urefu wa kipindi hutegemea maadili M , k Na b. Nadharia tunayowasilisha hapa chini inaturuhusu kubainisha ikiwa inawezekana kufikia kipindi hicho urefu wa juu kwa maadili maalum M , k Na b .

    Nadharia. Mfuatano wa mstari unaofafanuliwa kwa nambari M , k , b Na r 0, ina kipindi cha urefu M ikiwa na tu ikiwa:

    • nambari b Na M rahisi kiasi;
    • k Mara 1 uk kwa kila mkuu uk, ambayo ni mgawanyiko M ;
    • k 1 ni kizidishio cha 4, ikiwa M nyingi ya 4.

    Mwishowe, wacha tuhitimishe kwa mifano michache ya kutumia njia ya mfuatano wa mstari kutoa nambari nasibu.

    Iliamuliwa kuwa safu ya nambari za uwongo za nasibu zinazozalishwa kulingana na data kutoka kwa mfano 1 zingerudiwa kila M/ nambari 4. Nambari q huwekwa kiholela kabla ya kuanza kwa hesabu, hata hivyo, inapaswa kukumbushwa katika akili kwamba mfululizo unatoa hisia ya kuwa nasibu kwa ujumla. k(na kwa hivyo q) Matokeo yanaweza kuboreshwa kwa kiasi fulani ikiwa b isiyo ya kawaida na k= 1 + 4 · q katika kesi hii safu itarudiwa kila M nambari. Baada ya kutafuta kwa muda mrefu k watafiti walikaa kwa maadili ya 69069 na 71365.

    Jenereta ya nambari nasibu inayotumia data kutoka kwa Mfano wa 2 itatoa nambari nasibu, zisizorudiwa na kipindi cha milioni 7.

    Mbinu ya kuzidisha ya kutengeneza nambari bandia ilipendekezwa na D. H. Lehmer mnamo 1949.

    Kuangalia ubora wa jenereta

    Ubora wa mfumo mzima na usahihi wa matokeo hutegemea ubora wa RNG. Kwa hivyo, mlolongo wa nasibu unaozalishwa na RNG lazima ukidhi idadi ya vigezo.

    Ukaguzi unaofanywa ni wa aina mbili:

    • hundi ya usawa wa usambazaji;
    • vipimo vya uhuru wa takwimu.

    Huangalia usawa wa usambazaji

    1) RNG inapaswa kutoa karibu na maadili yafuatayo ya vigezo vya takwimu tabia ya sheria sare ya nasibu:

    2) Mtihani wa mara kwa mara

    Jaribio la marudio hukuruhusu kujua ni nambari ngapi zinazoanguka ndani ya muda (m r – σ r ; m r + σ r) , yaani (0.5 0.2887; 0.5 + 0.2887) au, hatimaye, (0.2113; 0.7887). Tangu 0.7887 0.2113 = 0.5774, tunahitimisha kuwa katika RNG nzuri, karibu 57.7% ya nambari zote za random zinazotolewa zinapaswa kuanguka katika muda huu (ona Mchoro 22.9).

    Mchele. 22.9. Mchoro wa mzunguko wa RNG bora
    katika kesi ya kukiangalia kwa mtihani wa mzunguko

    Inahitajika pia kuzingatia kwamba idadi ya nambari zinazoanguka katika muda (0; 0.5) inapaswa kuwa takriban sawa na idadi ya nambari zinazoanguka kwenye muda (0.5; 1).

    3) Mtihani wa Chi-mraba

    Jaribio la chi-mraba (χ 2 mtihani) ni mojawapo ya majaribio ya takwimu yanayojulikana sana; ndiyo njia kuu inayotumika pamoja na vigezo vingine. Jaribio la chi-mraba lilipendekezwa mnamo 1900 na Karl Pearson. Kazi yake ya ajabu inachukuliwa kuwa msingi wa takwimu za kisasa za hisabati.

    Kwa upande wetu, kuangalia kwa kutumia kigezo cha chi-mraba kutaturuhusu kujua ni kiasi gani halisi RNG iko karibu na alama ya RNG, ambayo ni, ikiwa inakidhi hitaji la usambazaji sare au la.

    Mchoro wa mzunguko kumbukumbu RNG imeonyeshwa kwenye Mtini. 22.10. Kwa kuwa sheria ya usambazaji wa RNG ya kumbukumbu ni sare, basi uwezekano wa (kinadharia). uk i kupata nambari i muda wa th (vipindi hivi vyote k) ni sawa na uk i = 1/k . Na hivyo, katika kila moja ya k vipindi vitagonga laini Na uk i · N namba ( N jumla ya nambari zinazozalishwa).

    Mchele. 22.10. Mchoro wa mara kwa mara wa RNG ya kumbukumbu

    RNG halisi itatoa nambari zilizosambazwa (na sio lazima ziwe sawa!) kote k vipindi na kila muda utakuwa na n i nambari (jumla n 1 + n 2 + + n k = N ) Tunawezaje kujua jinsi RNG inayojaribiwa ni nzuri na iko karibu kiasi gani na ile ya kumbukumbu? Ni busara kabisa kuzingatia tofauti za mraba kati ya nambari inayotokana ya nambari n i na "rejea" uk i · N . Wacha tuwaongeze na matokeo yake ni:

    χ 2 kumalizika. = ( n 1 uk 1 · N) 2 + (n 2 uk 2 · N) 2 + + ( n k – uk k · N) 2 .

    Kutoka kwa fomula hii inafuata kwamba tofauti ndogo katika kila moja ya maneno (na kwa hivyo thamani ndogoχ 2 kumalizika. ), ndivyo sheria ya usambazaji wa nambari za nasibu zinazozalishwa na RNG halisi inavyoelekea kuwa sawa.

    Katika usemi uliopita, kila neno limepewa uzito sawa (sawa na 1), ambayo kwa kweli inaweza kuwa si kweli; kwa hivyo, kwa takwimu za chi-mraba, ni muhimu kurekebisha kila moja i muhula, kuigawanya kwa uk i · N :

    Mwishowe, wacha tuandike usemi unaosababishwa kwa ushikamanifu zaidi na uirahisishe:

    Tulipata thamani ya jaribio la chi-mraba majaribio data.

    Katika meza 22.2 zimetolewa kinadharia maadili ya chi-mraba (χ 2 kinadharia), wapi ν = N 1 ni idadi ya digrii za uhuru, uk hiki ni kiwango cha imani kilichobainishwa na mtumiaji ambacho kinaonyesha ni kiasi gani RNG inapaswa kukidhi mahitaji ya usambazaji sare, au uk — ni uwezekano kwamba thamani ya majaribio ya χ 2 exp..

    itakuwa chini ya jedwali (kinadharia) χ 2 kinadharia.
    au sawa nayo
    Jedwali 22.2. Asilimia fulani ya nukta za usambazaji χ 2 p = 1% p = 5% p = 25% p = 50% p = 75%
    ν = 1 0.00016 0.00393 0.1015 0.4549 1.323 3.841 6.635
    ν = 2 0.02010 0.1026 0.5754 1.386 2.773 5.991 9.210
    ν = 3 0.1148 0.3518 1.213 2.366 4.108 7.815 11.34
    ν = 4 0.2971 0.7107 1.923 3.357 5.385 9.488 13.28
    ν = 5 0.5543 1.1455 2.675 4.351 6.626 11.07 15.09
    ν = 6 0.8721 1.635 3.455 5.348 7.841 12.59 16.81
    ν = 7 1.239 2.167 4.255 6.346 9.037 14.07 18.48
    ν = 8 1.646 2.733 5.071 7.344 10.22 15.51 20.09
    ν = 9 2.088 3.325 5.899 8.343 11.39 16.92 21.67
    ν = 10 2.558 3.940 6.737 9.342 12.55 18.31 23.21
    ν = 11 3.053 4.575 7.584 10.34 13.70 19.68 24.72
    ν = 12 3.571 5.226 8.438 11.34 14.85 21.03 26.22
    ν = 15 5.229 7.261 11.04 14.34 18.25 25.00 30.58
    ν = 20 8.260 10.85 15.45 19.34 23.83 31.41 37.57
    ν = 30 14.95 18.49 24.48 29.34 34.80 43.77 50.89
    ν = 50 29.71 34.76 42.94 49.33 56.33 67.50 76.15
    ν > 30 ν p = 95% ν ) · x uk p = 99% x 2 uk+ sqrt (2 + 2/3 · 2/3 + ν ))
    x uk = O (1/sqrt ( 2.33 0.00 0.674 1.64 2.33

    1.64 uk 0.674.

    Inachukuliwa kukubalika uk kutoka 10% hadi 90% Ikiwa χ2 itaisha. zaidi ya nadharia ya χ2. n i(yaani uk i · N ni kubwa), kisha jenereta

    hairidhishi

    mahitaji ya usambazaji sare, tangu maadili yaliyozingatiwa uk kwenda mbali sana na nadharia Ikiwa χ2 itaisha. na haiwezi kuchukuliwa kuwa nasibu. Kwa maneno mengine, muda mkubwa wa kujiamini umeanzishwa kwamba vikwazo kwenye namba huwa huru sana, mahitaji ya nambari huwa dhaifu. Katika kesi hii, kosa kubwa kabisa litazingatiwa. n i Hata D. Knuth katika kitabu chake "Sanaa ya Kupanga" alibainisha kuwa kuwa na χ 2 exp. uk i · N kwa wadogo, kwa ujumla, pia sio nzuri, ingawa hii inaonekana, kwa mtazamo wa kwanza, kuwa ya ajabu kutoka kwa mtazamo wa usawa. Kwa kweli, chukua safu ya nambari 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, ni bora kutoka kwa mtazamo wa usawa, na χ. 2 kumalizika.

    zitakuwa sifuri, lakini hakuna uwezekano wa kuzitambua kama nasibu. uk Ikiwa χ2 itaisha. uk chini sana kuliko nadharia ya χ2.

    (yaani uk i · N ndogo), kisha jenereta

    hitaji la usambazaji wa sare nasibu, tangu maadili yaliyozingatiwa

    karibu sana na kinadharia

    na haiwezi kuchukuliwa kuwa nasibu.

    Hebu tuangalie mfano. Nambari ya nasibu 0.2463389991 ina tarakimu 2463389991, na nambari 0.5467766618 ina tarakimu 5467766618. Kuunganisha mlolongo wa tarakimu, tuna: 24633899966187.

    Ni wazi kwamba uwezekano wa kinadharia uk i hasara i Nambari ya th (kutoka 0 hadi 9) ni sawa na 0.1.

    2) Kuangalia kuonekana kwa mfululizo wa nambari zinazofanana

    Wacha tuonyeshe kwa n L idadi ya mfululizo wa tarakimu zinazofanana katika safu ya urefu L. Kila kitu kinahitaji kuchunguzwa L kutoka 1 hadi m, wapi m hii ni nambari iliyobainishwa na mtumiaji: idadi ya juu kabisa inayotokea ya tarakimu zinazofanana katika mfululizo.

    Katika mfano "24633899915467766618" safu 2 za urefu wa 2 (33 na 77) zilipatikana, ambayo ni. n 2 = 2 na 2 mfululizo wa urefu wa 3 (999 na 666), yaani n 3 = 2 .

    Uwezekano wa kutokea kwa mfululizo wa urefu L ni sawa na: uk L= 9 10 L (kinadharia). Hiyo ni, uwezekano wa kutokea kwa safu ya herufi moja kwa urefu ni sawa na: uk 1 = 0.9 (kinadharia). Uwezekano wa msururu wa wahusika wawili kuonekana ni: uk 2 = 0.09 (kinadharia). Uwezekano wa mfululizo wa wahusika watatu kuonekana ni: uk 3 = 0.009 (kinadharia).

    Kwa mfano, uwezekano wa kutokea kwa mfululizo wa herufi moja kwa muda mrefu ni uk L= 0.9, kwa kuwa kunaweza kuwa na ishara moja tu kati ya 10, na kuna alama 9 kwa jumla (zero haihesabu). Na uwezekano kwamba alama mbili zinazofanana "XX" zitatokea kwa safu ni 0.1 · 0.1 · 9, ambayo ni, uwezekano wa 0.1 kwamba ishara "X" itaonekana katika nafasi ya kwanza inazidishwa na uwezekano wa 0.1 kwamba ishara hiyo hiyo itaonekana katika nafasi ya pili "X" na kuzidishwa na idadi ya mchanganyiko kama huo 9.

    Masafa ya kutokea kwa mfululizo huhesabiwa kwa kutumia fomula ya chi-mraba tuliyojadili awali kwa kutumia thamani uk L .

    Kumbuka: Jenereta inaweza kujaribiwa mara nyingi, lakini majaribio hayajakamilika na haihakikishi kuwa jenereta hutoa nambari za nasibu. Kwa mfano, jenereta inayozalisha mlolongo 12345678912345 itazingatiwa kuwa bora wakati wa vipimo, ambayo ni wazi si kweli kabisa.

    Kwa kumalizia, tunaona kwamba sura ya tatu ya The Art of Programming ya Donald E. Knuth (Volume 2) imejitolea kabisa kwa utafiti wa nambari za nasibu. Inachunguza mbinu mbalimbali za kuzalisha nambari nasibu, majaribio ya takwimu ya unasihi, na ubadilishaji wa nambari nasibu zilizosambazwa kwa usawa kwa aina nyingine za vigeu vya nasibu. Zaidi ya kurasa mia mbili zimetolewa kwa uwasilishaji wa nyenzo hii.

    Kupata na kubadilisha nambari za nasibu.

    Kuna njia mbili kuu za kupata nambari za nasibu:

    1) Nambari za nasibu huzalishwa na kiambatisho maalum cha elektroniki (sensor ya nambari isiyo ya kawaida) imewekwa kwenye kompyuta. Utekelezaji wa njia hii hauhitaji karibu shughuli za ziada zaidi ya kupata sensor ya nambari ya nasibu.

    2) Njia ya algorithmic - kulingana na kizazi cha nambari za nasibu kwenye mashine yenyewe kwa kutumia programu maalum. Hasara ya njia hii ni gharama za ziada wakati wa kompyuta, kwa kuwa katika kesi hii mashine hufanya shughuli za sanduku la kuweka-juu ya elektroniki yenyewe.

    Mpango wa kutengeneza nambari nasibu kwa kutumia sheria fulani ya usambazaji unaweza kuwa mgumu. Kwa hivyo, nambari za nasibu zilizo na sheria fulani ya usambazaji kawaida hazipatikani moja kwa moja, lakini kwa kubadilisha nambari za nasibu ambazo zina usambazaji wa kawaida. Mara nyingi usambazaji huu wa kawaida ni usambazaji sawa (rahisi kupata na rahisi kubadili sheria zingine).

    Ni faida zaidi kupata nambari za nasibu na sheria ya sare kwa kutumia sanduku la kuweka-juu la elektroniki, ambalo huweka huru kompyuta kutoka kwa gharama za ziada za wakati wa kompyuta. Kupata usambazaji sawa kwenye kompyuta haiwezekani kwa sababu ya hali ndogo ya gridi ya taifa. Kwa hivyo, badala ya seti inayoendelea ya nambari kwenye muda (0, 1), seti tofauti ya nambari hutumiwa. 2 n nambari, wapi n- kina kidogo cha neno la mashine.

    Sheria ya usambazaji wa watu kama hao inaitwa quasi-sare . Katika n³20, tofauti kati ya sare na sheria zinazofanana zinakuwa ndogo.

    Ili kupata nambari za nasibu zisizo sawa, njia mbili hutumiwa:

    1) kutoa nambari nasibu kwa kutumia kisanduku cha kuweka juu ya elektroniki kwa kuiga michakato fulani isiyo ya kawaida;

    2) kupata nambari za pseudorandom kwa kutumia algorithms maalum.

    Kupokea n Nambari ya nasibu ya tarakimu ya tarakimu, njia ya kwanza inaiga mlolongo wa vigeu huru vya nasibu z i, kuchukua thamani 0 au 1. mlolongo unaotokana wa 0 na 1, ikiwa tutazingatia kama nambari ya sehemu, na ni tofauti ya nasibu ya usambazaji wa nusu-uniform kwenye muda (0, 1). Njia za vifaa vya kupata nambari hizi hutofautiana tu kwa njia ya kupata utekelezaji z i.

    Mojawapo ya njia hizo ni msingi wa kuhesabu idadi ya chembe za mionzi kwa muda fulani Dt, ikiwa idadi ya chembe ni zaidi Dt hata, basi z i=1 , na ikiwa isiyo ya kawaida, basi z i=0 .

    Njia nyingine hutumia athari ya kelele ya bomba la utupu. Kwa kurekebisha thamani ya voltage ya kelele ndani muda fulani wakati t i, tunapata maadili ya anuwai za nasibu huru U(t i), i.e. voltage (Volts).



    Ukubwa z i kuamuliwa na sheria:

    Wapi a- thamani fulani ya voltage ya kizingiti.

    Ukubwa a Kawaida huchaguliwa kutoka kwa hali:

    Hasara ya njia ya vifaa ni kwamba hairuhusu matumizi ya njia ya kukimbia mara mbili ili kudhibiti uendeshaji wa algorithm kwa kutatua tatizo lolote, kwa kuwa kukimbia mara kwa mara kunashindwa kupata nambari sawa za random.

    Udanganyifu nambari za simu zinazozalishwa kwenye kompyuta kwa kutumia programu maalum njia ya kawaida: kila nambari ya nasibu hupatikana kutoka kwa ile iliyotangulia kwa kutumia mabadiliko maalum.

    Rahisi zaidi ya mabadiliko haya ni yafuatayo. Wacha wawepo n- kidogo nambari ya binary kutoka kwa muda nО (0, 1). Wacha tuifanye mraba, na tupate 2 n nambari ya tarakimu. Wacha tuangazie wastani n kutokwa. Imepatikana kwa njia hii n- nambari ya tarakimu itakuwa thamani mpya ya nambari ya nasibu. Tunaweka mraba tena, nk. Mlolongo huu ni pseudorandom, kwa sababu kutoka kwa mtazamo wa kinadharia, sio bahati nasibu.

    Ubaya wa algoriti zinazojirudia ni kwamba mfuatano wa nambari nasibu unaweza kuharibika (kwa mfano, tutapokea tu mlolongo wa sufuri au mlolongo wa zile, au upembuzi unaweza kuonekana).

    PRNG za kuamua

    Hakuna algoriti ya kubainisha inayoweza kutoa nambari nasibu kabisa, inaweza tu kukadiria baadhi ya sifa za nambari nasibu. Kama John von Neumann alisema, " mtu yeyote ambaye ana udhaifu wa mbinu za hesabu za kupata nambari za nasibu ni dhambi isiyo na shaka yoyote».

    PRNG yoyote iliyo na rasilimali chache mapema au baadaye huenda kwa mizunguko - huanza kurudia mlolongo sawa wa nambari. Urefu wa mizunguko ya PRNG inategemea jenereta yenyewe na wastani wa 2n/2, ambapo n ni saizi ya hali ya ndani kwa biti, ingawa jenereta za mstari na jenereta za LFSR zina mizunguko ya juu ya mpangilio wa 2n. Ikiwa PRNG inaweza kuungana kwa mizunguko ambayo ni mifupi sana, PRNG inakuwa ya kutabirika na isiyoweza kutumika.

    Jenereta nyingi rahisi za hesabu, ingawa haraka sana, zinakabiliwa na shida nyingi:

    • Kipindi/vipindi ni vifupi sana.
    • Thamani zinazofuatana hazijitegemea.
    • Biti zingine ni "chini ya nasibu" kuliko zingine.
    • Usambazaji usio sawa wa sura moja.
    • Ugeuzaji.

    Hasa, algorithm ya mfumo mkuu iligeuka kuwa mbaya sana, ambayo ilileta mashaka juu ya uhalali wa matokeo ya tafiti nyingi ambazo zilitumia algorithm hii.

    PRNG iliyo na chanzo cha entropy au RNG

    Kama vile kuna haja ya kutoa mfuatano unaorudiwa kwa urahisi wa nambari nasibu, kuna haja pia ya kutoa nambari zisizotabirika kabisa au nasibu kabisa. Jenereta kama hizo huitwa jenereta za nambari za nasibu(RNG - Kiingereza) jenereta ya nambari isiyo ya kawaida, RNG) Kwa kuwa jenereta kama hizo hutumiwa mara nyingi kutoa funguo za kipekee za ulinganifu na asymmetric kwa usimbaji fiche, mara nyingi hujengwa kutoka kwa mchanganyiko wa PRNG yenye nguvu ya kificho na chanzo cha nje cha entropy (na ni mchanganyiko huu haswa ambao sasa unaeleweka kama funguo. RNG).

    Takriban watengenezaji wote wakuu wa chip husambaza RNG za maunzi na vyanzo tofauti vya entropy, kwa kutumia mbinu tofauti ili kuzisafisha na kutabirika kuepukika. Walakini, kwa sasa, kasi ambayo nambari za nasibu hukusanywa na microchips zote zilizopo (bits elfu kadhaa kwa sekunde) hailingani na kasi ya wasindikaji wa kisasa.

    Katika kompyuta za kibinafsi, waandishi wa programu ya RNG hutumia vyanzo vya haraka zaidi vya entropy, kama vile kelele ya kadi ya sauti au kihesabu cha mzunguko wa saa ya kichakataji. Kabla ya kuwa inawezekana kusoma maadili ya kukabiliana na saa, mkusanyiko wa entropy ulikuwa mahali pa hatari zaidi ya RNG. Tatizo hili bado halijatatuliwa kikamilifu katika vifaa vingi (km kadi mahiri), ambavyo kwa hivyo vinabaki kuwa hatarini. RNG nyingi bado hutumia mbinu za kitamaduni (zamani) za kukusanya entropy, kama vile kupima miitikio ya mtumiaji (sogeo la panya, n.k.), kama vile, kwa mfano, au mwingiliano kati ya nyuzi, kama vile katika Java salama bila mpangilio.

    Mifano ya RNG na vyanzo vya entropy

    Mifano michache ya RNG zilizo na vyanzo vyao vya entropy na jenereta:

    Chanzo cha entropy PRNG Faida Mapungufu
    /dev/random kwenye Linux Kihesabu cha saa ya CPU, hata hivyo hukusanywa tu wakati wa kukatizwa kwa maunzi LFSR, yenye pato la haraka kupitia"Inawaka" kwa muda mrefu sana, inaweza "kukwama" kwa muda mrefu, au kufanya kazi kama PRNG ( /dev/urandom)
    Yarrow na Bruce Schneier Mbinu za jadi (za zamani). AES-256 naMuundo nyumbufu sugu wa crypto Inachukua muda mrefu "kupasha joto", hali ndogo sana ya ndani, inategemea sana nguvu ya kriptografia ya algoriti zilizochaguliwa, polepole, zinazotumika kwa uundaji muhimu pekee.
    Jenereta na Leonid Yuriev Kelele ya kadi ya sauti ? Uwezekano mkubwa zaidi chanzo kizuri na cha haraka cha entropy Hakuna PRNG inayojitegemea, inayojulikana ya crypto-strong, inayopatikana kama Windows pekee
    Microsoft Imejengwa ndani ya Windows, haishiki Hali ndogo ya ndani, rahisi kutabiri
    Mawasiliano kati ya nyuzi Hakuna chaguo lingine katika Java bado, kuna hali kubwa ya ndani Mkusanyiko wa polepole wa entropy
    Machafuko na Ruptor Kaunta ya saa ya processor, iliyokusanywa kwa kuendelea Hali ya ndani ya Hashing 4096-bit kulingana na lahaja isiyo ya mstari ya jenereta ya Marsaglia Hadi haraka zaidi, hali kubwa ya ndani, "inakwama"
    RRAND kutoka kwa Ruptor Kaunta ya mzunguko wa CPU Inasimba hali ya ndani kwa njia fiche ya mtiririkoHaraka sana, hali ya ndani ya ukubwa wa kiholela kuchagua kutoka, hakuna "kukwama"

    PRNG katika kriptografia

    Aina ya PRNG ni PRBGs - jenereta za bits za uwongo-random, pamoja na misimbo mbalimbali ya mtiririko. PRNG, kama vile sipheri za mtiririko, hujumuisha hali ya ndani (kawaida huanzia kwa ukubwa kutoka biti 16 hadi megabaiti kadhaa), chaguo la kukokotoa ili kuanzisha hali ya ndani kwa kutumia kitufe au mbegu(Kiingereza) mbegu), vitendakazi vya kusasisha hali ya ndani, na vitendaji vya kutoa. PRNG zimegawanywa katika hesabu rahisi, kriptografia iliyovunjika na kriptografia yenye nguvu. Kusudi lao la jumla ni kutoa mlolongo wa nambari ambazo haziwezi kutofautishwa kutoka kwa nasibu kwa njia za hesabu.

    Ingawa PRNG nyingi kali au sifa za mtiririko hutoa nambari "nasibu" zaidi, jenereta kama hizo ni polepole zaidi kuliko jenereta za kawaida za hesabu na hazifai kwa aina yoyote ya utafiti unaohitaji kichakataji kuwa huru kwa hesabu muhimu zaidi.

    Kwa madhumuni ya kijeshi na katika hali ya uwanja, PRNGs za kriptografia zilizoainishwa pekee (ciphers za mkondo) hazitumiki; Mifano ya PRNG zenye nguvu za kriptografia zinazojulikana ni ISAAC, SEAL, Snow, algoriti ya kinadharia polepole sana ya Blum, Blum na Shub, pamoja na vihesabio vilivyo na vitendaji vya heshi kriptografia au vizuizi vikali vya kriptografia badala ya chaguo la kukokotoa la kutoa.

    PRNG ya vifaa

    Mbali na urithi, jenereta zinazojulikana za LFSR ambazo zilitumika sana kama vifaa vya PRNGs katika karne ya 20, kwa bahati mbaya, ni kidogo sana inayojulikana kuhusu vifaa vya kisasa vya PRNGs (ciphers za mkondo), kwani nyingi zilitengenezwa kwa madhumuni ya kijeshi na huhifadhiwa kwa siri. . Takriban PRNG zote zilizopo za maunzi ya kibiashara zina hati miliki na pia zinawekwa siri. PRNG za vifaa ni mdogo na mahitaji madhubuti ya kumbukumbu inayoweza kutumika (mara nyingi utumiaji wa kumbukumbu ni marufuku), kasi (mizunguko ya saa 1-2) na eneo (FPGA mia kadhaa - au

    Kutokana na ukosefu wa PRNGs nzuri za vifaa, wazalishaji wanalazimika kutumia polepole zaidi, lakini vizuizi vinavyojulikana vinavyopatikana kwa mkono (Mapitio ya Kompyuta No. 29 (2003)

  • Yuri Lifshits. Kozi "Matatizo ya kisasa ya cryptography" Hotuba ya 9: Jenereta za Pseudorandom
  • L. Barash. Algorithm ya AKS ya kuangalia nambari kwa ubora na kutafuta viboreshaji vya jenereta ya nambari ya uwongo.
  • Zhelnikov Vladimir. Mlolongo wa uwongo wa nambari // Cryptography kutoka papyrus hadi kompyuta M.: ABF, 1996.
  • random.org (Kiingereza) - huduma ya mtandaoni ya kuzalisha nambari za nasibu
  • Nambari za Nambari za Cryptographic
  • Nadharia na Mazoezi ya Kizazi Nambari Nambari
  • Zvi Gutterman, Benny Pinkas, Tzachy Reinman. Uchambuzi wa Jenereta ya Nambari za Nambari za Linux
  • Jaribio la Kitakwimu la Jenereta za Nambari za Nambari za Nambari za Nambari za Bahati Nasibu za Programu za Kisirisiri NIST SP 800-22
  • Somo la 15. Nafasi ni nafsi ya mchezo

    Tayari umemfundisha kobe mengi. Lakini pia anayo uwezekano mwingine, uliofichwa. Je! kobe anaweza kufanya chochote peke yake kitakachokushangaza?
    Inageuka ndiyo! Orodha ya sensorer ya turtle inajumuisha sensor ya nambari isiyo ya kawaida:

    nasibu

    Mara nyingi tunakutana na nambari za nasibu: tunapotupa kete kwenye mchezo wa watoto, kumsikiliza mpiga ramli msituni, au "kubahatisha nambari yoyote." Kihisi nambari nasibu katika LogoWorlds kinaweza kuchukua thamani ya nambari kamili chanya kutoka 0 hadi kikomo cha thamani kilichobainishwa kama kigezo.

    Nambari yenyewe, iliyoainishwa kama kigezo cha kihisi cha nambari nasibu, haionekani kamwe.

    Kwa mfano, sensor isiyo ya kawaida 20 inaweza kuwa nambari yoyote kutoka 0 hadi 19, ikiwa ni pamoja na 19, sensor random 1000 inaweza kuwa integer yoyote kutoka 0 hadi 999, ikiwa ni pamoja na 999.
    Unaweza kuwa unashangaa mchezo uko wapi - nambari tu. Lakini usisahau kwamba katika LogoWorlds unaweza kutumia namba ili kuweka sura ya turtle, unene wa kalamu ya kuandika, ukubwa wake, rangi, na mengi zaidi. Jambo kuu ni kuchagua kikomo sahihi cha maadili. Mipaka ya mabadiliko katika vigezo vya msingi vya turtle huonyeshwa kwenye meza.
    Jenereta ya nambari isiyo ya kawaida inaweza kutumika kama kigezo kwa amri yoyote, kwa mfano mbele, kulia nk.

    Kazi ya 24. Kutumia Sensor ya Nambari Nambari
    Panga mojawapo ya michezo iliyopendekezwa hapa chini kwa kutumia kihisi namba nasibu na uzindue kasa.
    Mchezo 1: Skrini ya Rangi
    1. Weka turtle katikati ya skrini.
    2. Ingiza amri kwenye Mkoba na weka modi Mara nyingi:

    new_color nasibu rangi 140 subiri 10

    Timu rangi hufanya vitendo sawa na zana ya Jaza katika kihariri cha picha.
    3. Sauti njama.
    Mchezo wa 2: "Mchoraji Furaha" 1. Rekebisha mchezo #1 kwa kuchora mistari kwenye skrini katika maeneo nasibu yenye mipaka inayoendelea:

    2. Kamilisha maagizo katika Mfuko wa Turtle Backpack kwa zamu na harakati zisizo na mpangilio:

    haki nasibu 360
    mbele nasibu 150

    Mchezo wa 3: "Ragi ya viraka"
    Weka maagizo kwenye Mkoba ili kusogeza kasa ( mbele 60) yenye ncha nene 60 ya rangi nasibu (0-139) iliyopunguzwa kwa pembe kidogo ( kozi_mpya 10).
    Mchezo wa 4: "Kuwinda"
    Tengeneza njama ambayo turtle nyekundu huwinda nyeusi. Kasa mweusi husogea kwenye njia ya nasibu, na mwelekeo wa mwendo wa kasa mwekundu unadhibitiwa na kitelezi.

    Maswali ya kujidhibiti
    1. Jenereta ya nambari isiyo ya kawaida ni nini?
    2. Je, ni kigezo gani cha sensor ya nambari isiyo ya kawaida?
    3. Je, kikomo cha thamani kinamaanisha nini?
    4. Je, nambari iliyotajwa kama kigezo inawahi kutokea?



    2024 Kuhusu starehe nyumbani. Mita za gesi. Mfumo wa joto. Ugavi wa maji. Mfumo wa uingizaji hewa