Bloom-Blum-Fur coat algoritmi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 4.11.2021 tarkistetusta versiosta . tarkastukset vaativat 4 muokkausta .

Algoritmi Blum - Blum - Shub ( eng.  Algorithm Blum - Blum - Shub , BBS) on näennäissatunnainen lukugeneraattori, jonka Lenore Blum , Manuel Blum ja Michael Shub ehdottivat vuonna 1986 .

BBS näyttää tältä:

missä on kahden suuren alkuluvun ja . Algoritmin jokaisessa vaiheessa tulos saadaan joko pariteettibitistä tai yhdestä tai useammasta vähiten merkitsevästä bitistä .

Kahden alkuluvun ja , on molempien oltava kongruentteja 3 modulo 4:n kanssa (tämä takaa, että jokaisella neliöjäännöksellä on yksi neliöjuuri , joka on myös neliöjuuri ) ja suurimman yhteisen jakajan gcd on oltava pieni (tämä lisää syklin pituutta).

Tämän algoritmin mielenkiintoinen piirre on, että sen saamiseksi ei tarvitse laskea kaikkia aikaisempia lukuja, jos generaattorin alkutila ja luvut ja ovat tiedossa . -arvo voidaan laskea "suoraan" kaavalla:

,

missä  on Carmichael-funktio : tässä tapauksessa  lukujen pienin yhteinen kerrannainen ja .

Luotettavuus

Tämä generaattori sopii kryptografiaan , mutta ei simulointiin, koska se ei ole tarpeeksi nopea. Sillä on kuitenkin epätavallisen korkea kestävyys, jonka tarjoaa generaattorin laatu, joka perustuu lukukerroinongelman laskennalliseen monimutkaisuuteen . Kun alkuluvut valitaan huolellisesti ja kunkin bitit ovat lähtö, niin nopeasti otettu raja kasvaa ja lähtöbittien laskeminen on yhtä vaikeaa kuin tekijöiden laskeminen .

Jos kokonaislukujen tekijöihin jako on niin vaikeaa (kuten sen oletetaan olevan), niin suuren BBS :n tulos on vapaa kaikista ei-satunnaisista kuvioista, jotka voidaan havaita riittävällä laskennalla. Nopea faktorointialgoritmi on kuitenkin mahdollinen, joten BBS:n luotettavuutta ei voida taata.

Muistiinpanot

Kirjallisuus