Pseudo-təsadüfi nömrə: əldə etmə üsulları, üstünlükləri və çatışmazlıqları

Mündəricat:

Pseudo-təsadüfi nömrə: əldə etmə üsulları, üstünlükləri və çatışmazlıqları
Pseudo-təsadüfi nömrə: əldə etmə üsulları, üstünlükləri və çatışmazlıqları
Anonim

Pseudo-təsadüfi nömrə xüsusi generator tərəfindən yaradılan xüsusi nömrədir. Deterministic Random Bit Generator (PRNG), həmçinin Deterministic Random Bit Generator (DRBG) kimi tanınan, xassələri təsadüfi ədəd ardıcıllığının xüsusiyyətlərinə yaxın olan ədədlər ardıcıllığını yaratmaq üçün alqoritmdir. Yaradılmış PRNG ardıcıllığı həqiqətən təsadüfi deyil, çünki o, tamamilə PRNG toxumu adlı toxum dəyəri ilə müəyyən edilir və həqiqətən təsadüfi dəyərləri ehtiva edə bilər. Təsadüfi ardıcıllığa daha yaxın olan ardıcıllıqlar aparat təsadüfi ədəd generatorlarından istifadə etməklə yaradıla bilsə də, psevdo-təsadüfi ədəd generatorları nömrələrin yaradılması sürəti və onların təkrar istehsalı üçün praktikada vacibdir.

Nömrənin təsadüfiləşdirilməsi
Nömrənin təsadüfiləşdirilməsi

Tətbiq

PRNG-lər simulyasiya (məsələn, Monte Karlo üçün), elektron oyunlar (məsələn, prosedur yaratmaq üçün) və kriptoqrafiya kimi proqramların mərkəzidir. Kriptoqrafik proqramlar çıxış tələb edirməlumatlar əvvəlki məlumatlardan proqnozlaşdırıla bilməzdi. Sadə PRNG-lərin xəttini miras qoymayan daha mürəkkəb alqoritmlər tələb olunur.

Qaydalar və Şərtlər

Yaxşı statistik xüsusiyyətlər PRNG əldə etmək üçün mərkəzi tələbdir. Ümumiyyətlə, RNG-nin nəzərdə tutulan istifadəyə uyğun olması üçün təsadüfi rəqəmlərə kifayət qədər yaxın rəqəmlər yaratdığına əmin olmaq üçün diqqətli riyazi analiz lazımdır.

John von Neumann PRNG-nin həqiqətən təsadüfi bir generator kimi təfsirinə qarşı xəbərdarlıq etdi və zarafat etdi ki, "Təsadüfi ədədlər yaratmaq üçün arifmetik üsulları düşünən hər kəs, şübhəsiz ki, günah vəziyyətindədir."

İstifadə edin

PRNG ixtiyari ilkin vəziyyətdən işə salına bilər. Bu vəziyyətlə işə salındıqda həmişə eyni ardıcıllığı yaradacaq. PRNG dövrü aşağıdakı kimi müəyyən edilir: təkrarlanmayan ardıcıllıq prefiksinin uzunluğunun bütün ilkin vəziyyətləri üzrə maksimum. Dövr vəziyyətlərin sayı ilə məhdudlaşır, adətən bitlərlə ölçülür. Hər bir "hal" biti əlavə edildikdə dövr uzunluğu potensial olaraq ikiqat artdığına görə, bir çox praktik tətbiqlər üçün kifayət qədər böyük dövrlərə malik PRNG-lər yaratmaq asandır.

Böyük təsadüfi planlar
Böyük təsadüfi planlar

PRNG-nin daxili vəziyyəti n bitdən ibarətdirsə, onun müddəti 2n nəticədən çox ola bilməz, bu, çox daha qısadır. Bəzi PRNG-lər üçün müddət bütün dövrü keçmədən hesablana bilər. Xətti Geribildirim Qaydaları (LFSR) adətən olur2n − 1-ə bərabər dövrlərə malik olmaq üçün seçilir.

Xətti konqruensial generatorlarda faktorinqdən istifadə etməklə hesablana bilən dövrlər var. Baxmayaraq ki, PPP öz nəticələrini dövrün sonuna çatdıqdan sonra təkrarlasa da, təkrar nəticə dövrün sonuna çatmaq demək deyil, çünki onun daxili vəziyyəti çıxışdan daha çox ola bilər; Bu, xüsusilə tək bit çıxışı olan PRNG-lər üçün aydındır.

Mümkün xətalar

Qüsurlu PRNG-lər tərəfindən aşkar edilən xətalar incə (və naməlum)dan aşkar olanlara qədər dəyişir. Nümunə olaraq onilliklər ərzində meynfreymlərdə istifadə olunan RANDU təsadüfi ədəd alqoritmini göstərmək olar. Bu, ciddi çatışmazlıq idi, lakin onun qeyri-adekvatlığı uzun müddət diqqətdən kənarda qaldı.

Nömrə generatorunun işləməsi
Nömrə generatorunun işləməsi

Bir çox sahələrdə təsadüfi seçimdən, Monte Karlo simulyasiyalarından və ya RNG-yə əsaslanan digər metodlardan istifadə edən tədqiqat işləri keyfiyyətsiz GNPG-nin nəticəsi ola biləcəyindən daha az etibarlıdır. Beynəlxalq Statistika Elmi Ensiklopediyasındakı (2010) xəbərdarlığın sübut olunduğu kimi, bu gün də bəzən ehtiyatlı olmaq tələb olunur.

Uğurlu nümunə araşdırması

Bir nümunə olaraq geniş istifadə olunan Java proqramlaşdırma dilini nəzərdən keçirək. 2017-ci ildən Java hələ də PRNG üçün Xətti Konqruensial Generatordan (LCG) istifadə edir.

Tarix

Ciddi problemlərdən qaçan və hələ də olduqca sürətli işləyən ilk PRNG,1998-ci ildə nəşr olunan Mersenne Twister (aşağıda müzakirə ediləcək) idi. O vaxtdan bəri digər yüksək keyfiyyətli PRNG-lər hazırlanmışdır.

Nəsil təsviri
Nəsil təsviri

Lakin psevdo-təsadüfi ədədlərin tarixi bununla bitmir. 20-ci əsrin ikinci yarısında PRNG-lər üçün istifadə edilən standart alqoritmlər sinfinə xətti konqruensial generatorlar daxil idi. LCG-nin keyfiyyətinin qeyri-adekvat olduğu bilinirdi, lakin daha yaxşı üsullar mövcud deyildi. Press və digərləri (2007) nəticəni belə təsvir etdilər: "[LCGs və əlaqəli] səbəbiylə nəticələri şübhə altında olan bütün elmi məqalələr kitabxana rəflərindən yoxa çıxsaydı, hər rəfdə yumruğunuzun ölçüsündə boşluq olardı."

Pseudo-təsadüfi generatorların yaradılmasında əsas nailiyyət iki elementli sahədə xətti təkrarlamaya əsaslanan metodların tətbiqi olmuşdur; belə osilatorlar xətti əks əlaqənin dəyişmə registrlərinə birləşdirilir. Onlar psevdo-təsadüfi ədəd sensorlarının ixtirası üçün əsas olub.

Xüsusilə, 1997-ci ildə Mersen Twister tərəfindən ixtirası əvvəlki generatorlarla bağlı bir çox problemin qarşısını aldı. Mersenne Twister 219937−1 iterasiya dövrünə malikdir (≈4,3 × 106001). Onun 623 ölçüdə (32 bit dəyərlər üçün) bərabər paylandığı sübut edilmişdir və onun tətbiqi zamanı psevdo-təsadüfi ədəd ardıcıllığı yaradan digər statistik cəhətdən etibarlı generatorlardan daha sürətli idi.

2003-cü ildə Corc Marsaglia xətti təkrarlamaya əsaslanan xorshift generatorları ailəsini təqdim etdi. Bu generatorlar son dərəcədirsürətlidir və - qeyri-xətti əməliyyatla birlikdə - onlar ciddi statistik testlərdən keçirlər.

2006-cı ildə WELL generator ailəsi hazırlanmışdır. WELL generatorları müəyyən mənada həddən artıq böyük vəziyyət sahəsinə və onlardan çox yavaş bərpa olunan Twister Mersenne-nin keyfiyyətini yaxşılaşdırır, çoxlu sıfırlarla psevdo-təsadüfi nömrələr yaradır.

Təsadüfi ədədlərin xarakteristikası
Təsadüfi ədədlərin xarakteristikası

Kriptoqrafiya

Kriptoqrafik proqramlar üçün uyğun

PRNG kriptoqrafik cəhətdən təhlükəsiz PRNG (CSPRNG) adlanır. CSPRNG üçün tələb odur ki, toxumu bilməyən təcavüzkar, generatorun çıxış ardıcıllığını təsadüfi ardıcıllıqdan ayırmaqda yalnız marjinal üstünlüyə malikdir. Başqa sözlə, PRNG yalnız müəyyən statistik testlərdən keçmək üçün tələb olunduğu halda, CSPRNG toxum ölçüsündə polinom vaxtı ilə məhdudlaşan bütün statistik testlərdən keçməlidir.

Bu xüsusiyyətin sübutu hesablama mürəkkəbliyi nəzəriyyəsinin hazırkı səviyyəsindən kənarda olsa da, CSPRNG-ni tam faktorlara ayırma kimi çətin hesab edilən problemə endirməklə güclü sübut təmin edilə bilər. Ümumiyyətlə, alqoritmin CSPRNG kimi sertifikatlaşdırılması üçün illərlə araşdırma tələb oluna bilər.

Müəyyən edilib ki, NSA-nın NIST tərəfindən təsdiq edilmiş Dual_EC_DRBG psevdo-təsadüfi nömrə generatoruna asimmetrik arxa qapı daxil etməsi ehtimalı var.

BBS generatoru
BBS generatoru

Pseudo-təsadüfi alqoritmlərrəqəmlər

Əksər PRNG alqoritmləri bir neçə testdən hər hansı biri ilə bərabər paylanan ardıcıllıqlar yaradır. Bu açıq sualdır. Bu kriptoqrafiya nəzəriyyəsi və praktikasında mərkəzi məsələlərdən biridir: yüksək keyfiyyətli PRNG-nin çıxışını həqiqətən təsadüfi ardıcıllıqdan ayırmaq üçün bir yol varmı? Bu parametrdə həlledici bilir ki, ya məlum PRNG alqoritmindən istifadə edilib (lakin onun işə salındığı dövlət deyil), ya da həqiqətən təsadüfi alqoritm istifadə olunub. O, onları ayırd etməlidir.

PRNG-lərdən istifadə edən əksər kriptoqrafik alqoritmlərin və protokolların təhlükəsizliyi uyğun PRNG-nin istifadəsi ilə həqiqətən təsadüfi ardıcıllığın istifadəsi arasında fərq qoymağın mümkün olmadığı fərziyyəsinə əsaslanır. Bu asılılığın ən sadə nümunələri axın şifrələridir ki, onlar əksər hallarda PRNG çıxışı ilə açıq mətn mesajını buraxmaqla və ya göndərməklə, şifrəli mətn istehsal etməklə işləyirlər. Kriptoqrafik cəhətdən adekvat PRNG-lərin layihələndirilməsi olduqca çətindir, çünki onlar əlavə meyarlara cavab verməlidirlər. Onun dövrünün ölçüsü PRNG-nin kriptoqrafik uyğunluğunda vacib amildir, lakin tək deyil.

Pseudo-təsadüfi nömrələr
Pseudo-təsadüfi nömrələr

1946-cı ildə John von Neumann tərəfindən təklif edilən ilk kompüter PRNG orta kvadratlar metodu kimi tanınır. Alqoritm aşağıdakı kimidir: istənilən ədədi götürün, kvadratına çəkin, nəticədə çıxan ədədin orta rəqəmlərini "təsadüfi ədəd" kimi çıxarın, sonra bu rəqəmi növbəti təkrarlama üçün başlanğıc nömrəsi kimi istifadə edin. Məsələn, 1111 rəqəminin kvadratı alınır01234321 kimi yazıla bilən 1234321, 8 rəqəmli ədəd 4 rəqəmli ədədin kvadratıdır. Bu, "təsadüfi" bir rəqəm olaraq 2343 verir. Bu prosedurun təkrarlanmasının nəticəsi 4896 və s. Von Neumann 10 rəqəmli rəqəmlərdən istifadə etdi, lakin proses eyni idi.

"orta kvadratın" çatışmazlıqları

"Orta kvadrat" metodu ilə bağlı problem ondadır ki, bütün ardıcıllıqlar nəticədə bəziləri çox tez təkrarlanır, məsələn: 0000. Von Neumann bunu bilirdi, lakin o, öz məqsədləri üçün kifayət qədər bir yanaşma tapdı və narahat oldu ki, riyaziyyat "düzəlişləri" səhvləri silmək əvəzinə onları gizlədə bilər.

Generatorun mahiyyəti
Generatorun mahiyyəti

Von Neumann avadanlıq təsadüfi və psevdo-təsadüfi say generatorlarını yararsız hesab etdi: onlar yaradılan çıxışı qeyd etməsələr, sonradan səhvlər üçün yoxlanıla bilməzlər. Əgər onlar öz nəticələrini yazsaydılar, kompüterin məhdud yaddaşını və beləliklə də kompüterin rəqəmləri oxumaq və yazmaq qabiliyyətini tükəndirəcəklər. Rəqəmlər kartlarda yazılsaydı, onların yazılması və oxunması daha çox vaxt aparardı. Onun istifadə etdiyi ENIAC kompüterində "orta kvadrat" üsulu ilə psevdo-təsadüfi ədədlərin əldə edilməsi prosesi perfokartlardan rəqəmlərin oxunmasından bir neçə yüz dəfə tez həyata keçirilib.

Orta kvadrat o vaxtdan daha mürəkkəb generatorlarla əvəzlənib.

İnnovativ üsul

Son yenilik orta kvadratı Weil ardıcıllığı ilə birləşdirməkdir. Bu üsul yüksək keyfiyyətli məhsullar təmin ediruzun müddət. Bu, ən yaxşı psevdo-təsadüfi ədəd düsturlarını əldə etməyə kömək edir.

Tövsiyə: