Büyük Paradoks — Mantık Makinesinden Mantıksızlık İstemek

Bir bilgisayarın çalışma prensibi en temel fiziksel seviyede, yani transistörlerde bellidir: Elektrik ya vardır (1) ya da yoktur (0). Bu durum bilgisayarları tamamen “deterministik” yapar; yani onlara aynı girdiyi verirseniz, her zaman birebir aynı çıktıyı alırsınız. Bir bilgisayara 1 milyar kere “2+2 kaç eder?” diye sorarsanız, 1 milyar kere “4” cevabını alırsınız.

Peki, %100 itaatkar ve kurallı çalışan bu mantık makinelerinden, “kuralsız” yani rastgele bir sayı üretmesini istediğimizde ne olur?. İşte bilgisayar bilimlerinin en zor problemlerinden biri burada başlar: Mantığa dayalı bir makine, nasıl mantıksız bir sayı üretebilir?

Zar

Sahte Rastgelelik (PRNG) — Matematiksel Bir İlüzyon

Şunu baştan netleştirelim: Saf yazılım (pure software) ile gerçek rastgelelik üretmek fiziksel olarak imkansızdır.

Neden mi? Çünkü bilgisayarlar, en temel donanım seviyesinde (transistörler) deterministik makinelerdir. Bir bilgisayar, kendisine verilen komutları harfiyen yerine getiren bir itaat makinesidir. Yazılım dediğimiz şey ise bir “kurallar dizisi”dir (algoritma). Bir şeyin kuralı varsa, o şey rastgele olamaz.

Mantıksal kapılar

Yazılımcıların en sık başvurduğu çözüm PRNG, yani “Pseudo-Random Number Generator” (Sözde Rastgele Sayı Üreteci) sistemleridir. Adından da anlaşılacağı üzere, bu sayılar gerçekte rastgele değildir; matematiksel bir fonksiyona göre üretilen deterministik değerlerdir.



PRNG desenleri,bir süre sonra yazılımla üretilen random sayılar bir periyot oluşturmaya başlar.

Bu sistemin çalışması bir “Seed” (tohum) değerine bağlıdır. Her yeni sayı, önceki durum (state) kullanılarak hesaplanır. Python’daki random modülü veya C dilindeki rand() fonksiyonu buna en iyi örnektir.

Bunu test etmek çok basittir: Eğer Python’da random.seed(42) komutunu verip bir sayı isterseniz (örneğin 82 çıkar), kodu kapatıp açıp tekrar aynı seed değerini verdiğinizde yine 82 sayısını alırsınız. Çünkü ortada bir kaos yoktur, sadece karmaşık bir matematiksel formül (örneğin Mersenne Twister veya LCG) vardır.

python örneği,randint()

C örneği,rand()

Bu sayılar rastgele “gibi” görünür ancak aslında karmaşık bir matematiksel formülün çıktısıdır.

Gerçek Rastgelelik (TRNG) — Kaosun Kaynağı

Eğer gerçekten tahmin edilemez, yani “True Random” (TRNG) bir sayıya ihtiyacımız varsa, dijital dünyadan çıkıp fiziksel dünyaya dönmemiz gerekir. TRNG sistemleri, rastgelelik üretmek için fiziksel süreçlerden “entropi” (düzensizlik/gürültü) toplar.


Bu kaynaklar şunlar olabilir:

  • Lav Lambaları (Lavarand): Cloudflare gibi şirketler, bir duvardaki lav lambalarının fiziksel hareketini kamerayla kaydeder ve bu görüntüdeki kaostan şifreleme anahtarları üretir.



lavarand

  • Atmosferik Gürültü: Random.org gibi servisler, atmosferdeki radyo gürültüsünü dinleyerek sayı üretir.




Burada TRNG ve PRNG farkını net biçimde görebiliyoruz.

  • Donanım Gürültüsü: Bilgisayarınızdaki sabit diskin (HDD) okuma kafasının fiziksel gecikmeleri (Seek Time) veya işlemci ısısındaki mikroskobik değişimler bile entropi kaynağı olarak kullanılabilir.



Hard disk

Aynı zamanda kripto cüzdanı oluştururken veya PuTTYgen gibi yazılımları kullanırken karşınıza çıkan “Lütfen ilerleme çubuğu dolana kadar farenizi rastgele hareket ettirin” uyarısının sebebi şımarıklık değil, saf bir matematiksel ihtiyaçtır. Bir insan olarak zihninizle rastgele sayılar seçmekte berbat olabilirsiniz, ancak elleriniz harika birer kaos kaynağıdır.

Anahtar üretme süreci



Mouse ısı haritası

Siz fareyi ekranda gezdirdiğinizde, elinizdeki mikroskobik titremeler ve hareket hızınızdaki milisaniyelik değişimler, bilgisayar için tahmin edilemez bir veri akışı oluşturur. İşletim sistemi, farenin her hareketinde oluşan “donanım kesmelerini” (hardware interrupts) ve bu hareketlerin gerçekleştiği nanosaniyelik zaman damgalarını yakalar. Bilgisayarınızın deterministik dünyası tıkandığında, sizin biyolojik kusurlarınızdan (el titremesi) gelen bu veriler “Entropi Havuzu”nu doldurur ve ortaya kırılması imkansız bir şifreleme anahtarı çıkar.

Neden Umurumuzda Olmalı?

Rastgelelik sadece oyunlarda zar atmak için değil, siber güvenlik için hayati bir öneme sahiptir.

  1. Anahtar Üretimi: En güçlü şifreleme algoritmasını (AES-256 gibi) kullansanız bile, eğer anahtarı ürettiğiniz rastgele sayı tahmin edilebilirse, saldırgan kapıyı kırmakla uğraşmaz; anahtarın kopyasını cebinden çıkarıp içeri girer.
  2. Tuzlama (Salting): Kullanıcı şifrelerini veritabanında saklarken, her şifrenin sonuna rastgele veriler eklenir. Bu, aynı şifreyi kullanan kullanıcıların veritabanında farklı görünmesini sağlar.

İnsan mı Daha Rastgele, Makine mi?

Konuyu biraz felsefi bir soruyla bitirelim: İnsan beyni tam anlamıyla rastgele kararlar verebilir mi?. Yoksa biz de bilinçaltı örüntülerimiz ve önyargılarımızla (bias) aslında deterministik canlılar mıyız?

Şu anki Yapay Zeka (AI) modelleri tamamen deterministiktir; kendi başlarına rastgelelik üretemezler, sadece formülleri takip ederler. Belki de gerçek yapay zeka (AGI), bir gün kendi “zarını” gerçekten atabildiğinde doğacaktır.