[linux-programlama] Re: makineler ve rasgele sayi uretimi

---------

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Mon 11 Aug 2003 - 13:05:22 EEST

  • Next message: Necati DEMiR: "[linux-programlama] sinyal gönderme"

    Selamlar..

    Pentium ve ustu sistemlerde, TSC diye bir sey vardir. 32 Bitlik bir
    counter, sistem saatini (jiffies) sayar. Bu islerde kullanilan deger
    genellikle bu olur, RTC degil. RTC -> Real Time Clock, TSC - TimeStamp
    Counter.

    TSC digeri kadar hassas degildir, her X vurusu bir saniye etmez.
    Bilhassa isidan cok etkilenir. Bu yuzden seed degeri olarak kullanmak
    daha akillicadir.

    Random sayi meselesinde bazi arkadaslar ornegin kullanicinin bir onceki
    login zamani uzerinden calismak vs. gibi islevlerle ugrasmis.

    Burada kacirdigimiz husus su. Matematikte random sayi kavrami yoktur. Bu
    gerci agir bir tartisma. Ama genel egilim bu yondedir. Kisacasi
    matematik hic bir seyin tesadufi olmadigin iddia eden kaos teorisi ile
    bogusmaktadir. Yani siz piyangonun donen toplarinin agirligini, donmeye
    baslama konumunu vs. bilyiorsaniz, delikten hangi topun dusecegini
    kestirebilirsiniz. Fakat bilmeniz gereken cok sey vardir, bunlarin
    hepsini bulamayabilirsiniz. Bu durumda cesitli seylere bakarak hangi
    topun dusme olasiliginin daha yuksek oldugunu kestirmeye calisirsiniz.

    Iste burada rasgele sayilardan kastedilen sayilar, aslinda tam anlamiyla
    rasgele olan demek degil, onceden kestirilmesi cok daha zor olan sayilar
    anlamina gelir. Eger urettiginiz sayi az sayida parametreden
    etkileniyorsa ve bu parametrelerin kestirilebilirligi yuksekse,
    sayinizin da kestirilebilir olmasi daha buyuktur.

    Rasgele sayi elde ederken asla tespit edilebilir giris parametreleri
    kullanmayin. Su bir onceki login zamani. Cracker bir login yapar zamani
    kaydeder, sonra ikinci bir login icin elinde parametrenin biri hazir
    olur.

    Sistem saatinden alinan seed degerleride cok guvenilir olmaz asla.
    uptime komutu, TSC degerinin yaklasik kestirilmesine, date komutda RTC
    Degerinin yaklasik kestirilmesine cok faydalidir.

    Simdi bunlar rasgelemidir ? Evet, ama bunlarin uretecekleri sayilarin
    marjlari onceden kestirilebilir. Yani, 128 Bit sifreleme var ama, siz
    bunun 90 Bitini zaten biliyorsunuz gibi bir durum olusur. Bu nedenle
    onceden kestirelemeyen ve cok buyuk aralikta degisen degerleri rasgele
    sayi olarak kullanmalisiniz.

    Burada pratik yontemler, uzun muddet icinde sabit degerli gorunmesine
    karsin anlik olarak kestirilemeyen ve hic bir zaman bir formule bagli
    olarak artip azalmayan degerleri kullanmaktir. Ornegin bir onceki
    mesajimda yazdigim ses karti konusu. RTC veya TSC den elde edilecek
    degere gore cok daha rasgeledir. Ama bu deger kartta kullanilan chip'in
    giris devresine baglidir. f = 2*SQR(Delta T + Delta C) gibi formullerle
    T zaman araliginda C sicakliginda bu isil gurultusu tayin edilebilir.
    Sonrada bu degere bakarak olasi degerlerin sayisi cok daha asagiya
    cekilebilir. Ama parazitli bir radyodan gelen canli yayinda o anda hangi
    sarkinin hangi notasi caldigi kestirilemez. Dahasi TV icin bu cok daha
    zordur. Oyleki, 20 M araliktaki iki televizyon CPU'nun olcebilecegi
    aralikta resimleri farkli zamanlarda gosterir. gozunuz gormez ama birine
    ulasan sinyal otekine daha gec/erken ulasir. Isin icine giren o kadar
    bozucu etken olurki, bunlarin hepsini birden parameterize edebilmek
    mumkun olmaz. Biz elektronikciler buna gurultu der geceriz. Ama su
    rasgele sayi ureten kartlar filan hep bu mantikla is yaparlar.

    Ne yapacakmisiz, tek parametreye bagli olmayan, parametre sayisi ve
    degerlerinin onceden kestirilmesi olabildigince zor olan, saldirganin
    etkileme ve parametreleri zorlama imkani dusuk olan degerleri
    kullanarak, bunlarinda mumkun oldugu kadar anlik, genis zamana yayilan
    deger degil, degisim yasandigi araligin en kucuk degeri surecini olcerek
    rasgele sayi olarak kullanmak gerekiyormus.

    Bu tanima en guzel uyan sey bir TV kartidir. Bilhassa kurcalanip tuneri
    biraz bozulmus bir TV karti. Bu size son derece rasgele degerler
    verebilir. Ama en buyuk dezavantaji, yavas olmasidir. Sizin 4 Frame
    uzerinden, 1,2,3,4 H Satirlarindan alacaginiz degerleri satir secme icin
    kullanip 128 Satira gore bir hash cikarirsaniz, binlerce dolara satilan
    RNG'lerden daha random bir deger elde etmis olursunuz. Fakat bu
    saniyeler surebilirki, yukteki bir serveri perisan etmeye yetebilir.
     
    Saygi ve sevgiler..

    On Mon, 11 Aug 2003 11:51:27 +0300
    "a.kadir altan" <e108193@metu.edu.tr> wrote:

    > cok kaba bir hesap yapacagim bakalim ne cikacak:
    >
    > saat 24*60*60=86400 degisik deger verecektir, gun ise yaklasik (son 1
    > yili goz onunde bulundurursan) sana 365 farkli deger verecektir o
    > zaman 86400*365=31536000 eder, bu da 25 bitlik bir sayi... gozden
    > kacirdigim birsey var mi ? onceki bir mesajda bunu geri donu

    su
    > olmayan bir fonksiyon(kasit burada hashler sanirim) ile kullanimi
    > soylenmisti... hashin ne kadar ongorulemez olmasi onemini yitirecektir
    > o zaman... onemli olan girdi uzayinin entropisidir, ki burada 25
    > bit...


  • Next message: Necati DEMiR: "[linux-programlama] sinyal gönderme"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.