Skip to content
Can Eroğlu. |
Geri dön

CTH v.0.1 — Can's Third Hardware

CTH v.0.1 — Can’s Third Hardware

Sadece, kâinatın sesini duymak istedim.

Duydum.


1. Matrix’in Algoritmik Yalanı

2021’de COVID vardı. Dünya durmuştu. O zamanlar Simulakrum diye 270+30 sayfalık bir kitap yazmıştım. Tabii teoriydi her şey.

Ama kitap kitaptı. Dokunmak istiyordum.

TouchDesigner projelerim için rastgele sayılara ihtiyaç duyduğumda fark ettim: Bilgisayarların ürettiği “rastgele” sayılar aslında hiç rastgele değil. Hepsi bir formülün sonucu. Aynı başlangıç değeriyle başlarsan, aynı sayıları alırsın — her seferinde.

Bu, şuna benziyor: Zar atacağına hesap makinesiyle “rastgele” sayı üretmeye çalışmak. Makine hesap yapar, zar ise gerçek fiziksel olay.

NSA’nin (Ulusal Güvenlik Ajansı) Arka Kapısı

2006’da Amerikan hükümeti bir algoritma yayınladı: Dual_EC_DRBG (Dual Elliptic Curve Deterministic Random Bit Generator). “Bu sayı üretici güvenlidir, kullanın” dediler. Yıllarca herkes kullandı — telefonlar, bilgisayarlar, bankalar.

Sonra Snowden ortaya çıktı. Meğer NSA bu algoritmaya arka kapı koymuş. Dışarıdan rastgele görünüyordu, ama NSA özel bir anahtarla tüm sayıları önceden tahmin edebiliyordu.

Düşün: banka şifren, WhatsApp mesajın, her şey — teorik olarak tek bir kurum tarafından okunabilir durumdaydı. Milyonlarca insanın güvenliği, birilerinin insafına kalmıştı.

Ve bu sadece bilinen örnek. Arkada kapı olmayabilir, ama zaten “deterministik” (yani formüle bağlı) sistemlerin kendisi risk. Bugün güvenli görünen bir algoritma, yarın kırılabilir.

Cevap, kuantum mekaniğinde.

Atom altı dünyada elektronlar “tüneller” — birden fazla yerde aynı anda, olasılık bulutları hâlinde. Nerede olacakları hesaplanamaz — çünkü evrenin kendisi bile bilmiyor. Teorik bir belirsizlik değil; fiziksel gerçeklik. NSA’nin arka kapısı yok. Mitolojideki tanrının bile öngöremeyeceği kadar temel.

Kuantum kökenli bir anahtar üretirsen, hiçbir devlet, hiçbir süper bilgisayar onu tahmin edemez. Evren formül kullanmıyor. Sadece “oluyor”.

İşte bu yüzden başladım CTH v.0.1’i yapmaya.


2. İllüzyonu Yırtmak: PRNG (Sözde Rastgele) vs TRNG (Gerçek Rastgele) vs QRNG (Kuantumsal)

Bilgisayar, esasen sıkıcı bir şeydir. Aynı soruyu sorarsan aynı cevabı alırsın — her seferinde, yıllarca, sonsuza kadar. Rastgelelik üretemez. Sadece taklit edebilir.

PRNG: Sahte Rastgelelik

PRNG — sözde rastgelelik. Bir formül, bir başlangıç değeri (seed). rand() diye çağırırsın; bilgisayar aslında şunu yapar: seed = (seed * 1103515245 + 12345) % 2^32. Her seferinde aynı dizi. Aynı başlangıç, aynı son.

Sahte zar. İçinde mekanizma var, her attığında aynı deseni tekrar eder. Yeterince izlersen öngörürsün.

TRNG: Donanımsal Rastgelelik

Gerçek fiziksel olaylardan okuma yaparsan? Bu TRNG — klavye tuş zamanlaması, fan gürültüsü, atmosferik gürültü, dirençteki termal titreşim.

İyi bir başlangıç. Ama yavaş, bazıları manipüle edilebilir, deterministik bileşenler karışabilir.

QRNG: Kuantum Rastgelelik

En saf hali: QRNG. Evrenin kendi belirsizliğini doğrudan ölçmek.

Bir elektronun nerede olacağını kimse bilmiyor — olasılık dağılımı var, sonuç yok. “Belirlenmemişlik” (indeterminacy) soyut bir kavram değil; silikon içinde, anlık, tekrarlanamaz fiziksel olaylar.

CTH v.0.1, 2.4V zener diyotların kuantum tünelleme gürültüsünü ölçüyor. Evrenin kendi “karar verme” sürecinin sesi.

Özet Tablo

TürKaynakÖngörülebilir mi?Güvenilir mi?
PRNGMatematik formülüEvet (anahtarla)Hayır
TRNGFiziksel gürültüZor ama mümkünOrta
QRNGKuantum belirsizliğiİmkansızEvet

Tüm modern kriptografi — şifreli mesajlarınız, banka işlemleriniz, VPN’leriniz — bu RNG’lerin üzerine kurulu. Ve çoğu hâlâ PRNG kullanıyor. Yani, büyük bir illüzyonun içinde yaşıyoruz.

Kriptografi = Medeniyetin Temeli

Şifreleme sadece WhatsApp mesajlarınla ilgili değil. Banka, seçim, askeri emir, nükleer kod, sağlık kaydı — hepsi aynı temelin üstünde duruyor.

2008’de bankalar çöktüğünde ne oldu, hatırla. Şimdi düşün: kriptografi çökerse hesaplar silinir, seçimler değişir, emirler sahteleşir. Büyük, sessiz bir çöküş. Kimse fark etmez çünkü her şey sayı gibi görünür.

RNG bu temelin taşıdır. Çürük bir temelin üstüne ne kadar görkemli bina kurulsa, bir gün yıkılır.

İnsan Beyni de Başarısız

“Tamam ama ben rastgele sayı söyleyebilirim.”

Hayır, söyleyemezsin.

Beyin desen arar. Rastgelelikten nefret eder. Senden bir dizi sayı istesem: 3, 7, 12, 4… Asla üst üste tekrar etmezsin, küçük sayılara yığılırsın, ritim kurarsın — 4, 8, 12 gibi. 87, 93 gibi “çirkin” sayılardan kaçarsın. İstatistikçiler bunu test etti defalarca. Tahmin edilebilir.

Biz de bir PRNG’yiz. Sadece daha karmaşık formüllerle çalışan.


3. Zener Mekaniği: İki Kırılma, İki Farklı Evren

Neden 2.4V? Neden “avalanche” değil? Burası projenin kalbi.

Zener Diyot Yapısı

Zener Breakdown vs Avalanche Breakdown

Diyotlar ters polarize edildiğinde (ters yönde voltaj uygulandığında) bir noktada “kırılma” (breakdown) olur. İki tip kırılma var:

ÖzellikZener BreakdownAvalanche Breakdown
VoltajDüşük (< 5.1V)Yüksek (> 5.1V)
MekanizmaKuantum TünellemeÇığ Çarpışması
FizikElektron tünelleme yaparElektron çarpışması zinciri
SıcaklıkArtınca voltaj DÜŞERArtınca voltaj YÜKSELİR
GürültüSaf kuantum belirsizliğiTermal + klasik karmaşası

Kuantum Tünellemesi: Sonlu Kare Kuyu

Zener diyotta neler olduğunu anlamak için önce basit bir modelle başlayalım: sonlu kare kuyu (finite square well).

Düşünün: Bir elektron, iki duvar arasında hapsolmuş. Klasik fizikte (Newton mekanikleri), eğer elektronun enerjisi duvar yüksekliğinden azsa, dışarı çıkması imkansızdır. Duvara çarpar, geri seker. Sonsuza kadar içerde kalır.

Ama kuantum mekaniğinde durum farklıdır.

Schrödinger Denklemi

Elektronun davranışını tanımlayan denklem:

22md2ψdx2+V(x)ψ=Eψ-\frac{\hbar^2}{2m} \frac{d^2\psi}{dx^2} + V(x)\psi = E\psi

Burada:

Klasik Yasak, Kuantum İzin

Sonlu kare kuyuda potansiyel şöyle tanımlanır:

V(x)={0if 0<x<LV0if x0 veya xLV(x) = \begin{cases} 0 & \text{if } 0 < x < L \\ V_0 & \text{if } x \leq 0 \text{ veya } x \geq L \end{cases}

Klasik fizikte: Eğer E<V0E < V_0, elektron asla engeli geçemez.

Kuantumda: Dalga fonksiyonu ψ(x)\psi(x) engel bölgesinde sıfır değildir. Üstel olarak azalır ama sıfır olmaz:

ψ(x)eκxburadaκ=2m(V0E)\psi(x) \propto e^{-\kappa x} \quad \text{burada} \quad \kappa = \frac{\sqrt{2m(V_0 - E)}}{\hbar}

Yani engelin diğer tarafında, elektronun var olma olasılığı vardır!

Tünelleme Olasılığı

Engelin kalınlığı ww ise, elektronun karşıya geçme olasılığı (transmission coefficient):

Te2κw=exp(2w2m(V0E))T \approx e^{-2\kappa w} = \exp\left(-\frac{2w}{\hbar}\sqrt{2m(V_0 - E)}\right)

Bu, rastgele bir süreçtir. Tek bir elektron için geçip geçmemesi belirsizdir. Aynı enerjideki iki elektron, aynı engelde — biri geçer, biri seker. Evren bunu “zar atarak” karar verir.

Videoda gördüğünüz gibi, parçacık engeli geçiyor — klasik fizikte imkansız. Ama kuantumda olası. Ve ne zaman geçeceği, belirlenmemiş (indeterministic).

Sonlu Kare Kuyu - Dalga Fonksiyonu

Yukarıdaki animasyonda sonlu kare kuyuyu görüyorsunuz. Dikkat edin: Kuyu içinde dalga osilasyon yapıyor (elektron burada), ama duvarların sağında ve solunda da dalga sıfır değil — üstel olarak azalıyor. İşte bu “kuyunun dışındaki dalga”, tünelleme olasılığıdır.

Zener Diyot: Tünelleme Gerçek Hayatta

Zener Diyot Nedir?

Zener diyot, ters polarmada bağlandığında (katod pozitif, anot negatif) belirli bir voltajda “kırılan” (breakdown) özel bir yarıiletken. Normal diyotlar ters voltajda kırılıp yanar, ama zener bunu kontrollü şekilde yapar ve hayatta kalır.

Temel kullanımı: Gerilim regülasyonu. 2.4V zener, katot kutbunda 2.4V üzerindeki voltajı kesip sabit tutar. Ama bizim için önemli olan başka bir özelliği: ters yöndeki gürültüsü.

Üretimi ve Depleksiyon Bölgesi

Zener diyot, p-tipi ve n-tipi yarıiletkenlerin birleşiminden (PN junction) oluşur. Bu birleşimde, taşıyıcılar (elektronlar ve delikler) difüze olup birbirini nötralize eder. Sonuç: depleksiyon bölgesi — taşıyıcısız, yalıtkan gibi davranan bir bölge.

Depleksiyon bölgesinin kalınlığı (ww), diyotun zener voltajını belirler:

Formül olarak:

w1NA+1NDw \propto \sqrt{\frac{1}{N_A} + \frac{1}{N_D}}

Burada NAN_A (acceptor) ve NDN_D (donor) katkı maddesi konsantrasyonlarıdır. Doping ne kadar yüksekse, depleksiyon o kadar ince olur, zener voltajı o kadar düşük olur.

Neden 2.4V Fiziksel Sınır?

Daha düşük voltaj için daha yüksek doping gerekir. Ama doping’in de fiziksel sınırı var:

  1. Katı çözünürlük limiti: Silikonda o kadar çok atom yerine katkı atomu koyamazsınız — kristal yapı bozulur
  2. Band gap limiti: Silikonun band gap’i ~1.12V. Zener voltajı bu değerin altına inemez (fiziksel olarak imkansız)
  3. Tünelleme mesafesi: Voltaj çok düşükse, depleksiyon bölgesi çok ince olur. O kadar ince ki, tünelleme garanti olur, diyot “kısa devre” gibi davranır

2.4V, bu fiziksel sınırların yakınında — üretimde hâlâ kontrollü, ama daha aşağısı ya imkansız ya da kullanışsız. Piyasada 2.0V, 1.8V zenerler var ama bunların toleransları çok geniş (±%20 gibi), stabilite kötü.

2.4V, “yapılabilecek en düşük stabil voltaj” sınırında. Ve ben bu sınırı kullanıyorum — çünkü bu sınır, kuantum tünellemenin saf hâkim olduğu bölge.

Avalanche Breakdown: Çığ Etkisi

Yüksek voltajlarda (5.1V ve üzeri), elektronlar hızlanır ve atomlarla çarpışır. Her çarpışma yeni elektronları serbest bırakır. Zincirleme reaksiyon — çığ.

Neden problem:

Sıcaklık Tepkisi: Kritik Fark

İşte ayırt edici test: Sıcaklık değiştirildiğinde iki kırılma tipi ters tepki verir.

Zener (Kuantum):

Avalanche (Klasik):

Bu fark, hangi mekanizmanın çalıştığını test etmek için kullanılır. Benim 2.4V zenerlerimde sıcaklık testi yaptım — negatif katsayı doğrulamıştım. Bu ortam sıcaklığına bağlı değişken tepkiler göstermesinden ötürü hem kalibrasyon hem de sıcaklık ölçen bir entegre koymam gerekmişti.

Neden 2.4V?

Zener breakdown’un başladığı nominal eşik ~2.7V civarındadır. Ama bu bir spektrum:

Neden 2.7V Altında Avalanche İmkansız?

Avalanche (çığ etkisi) için elektronların yeterince hızlanabileceği mesafe gerekir. Elektron, atomlara çarpıp başka elektronları koparabilmek için bir ivme kazanmalı — yani belirli bir uzunlukta hızlanmalı.

2.7V altındaki zenerlerde depleksiyon bölgesi o kadar ince ki (~nanometreler), elektron bu dar koridorda hızlanamadan karşıya geçer. Yeterli “runaway” mesafesi yoktur. Bu yüzden tek mekanizma kuantum tünelleme olur.

2.4V’de depleksiyon kalınlığı, teorik limitin kenarında. Daha ince olsa diyot stabil çalışmaz, daha kalın olsa zaten yüksek voltaj olur.

Aslında 2.4V “sweet spot” değil — en imkansız yer. Piyasada satılan en düşük zenerler 2.4V. Varsa da teorik limitte (max ~2.0V), stabilite sıfır, toleranslar ±%20’lerde. Üreticiler bile bu sınıra gitmek istemiyor.

Ben bir çılgınlık yapıp tam bu sınıra dayandım. Çünkü fizik sınırında, kuantum tünelleme en saf.

2.4V Zener Diyotlar — Yakın Çekim

Gürültü Dinamiği: Fısıltı vs Gürültü

İşte kritik fark: İki mekanizmanın gürültü karakteri tamamen farklı.

Avalanche Breakdown: Yüksek enerjili iyonlar elektronları koparır, zincirleme reaksiyon başlatır. Bu çok gürültülü bir süreç:

Zener Breakdown (2.4V): Saf kuantum tünelleme. Elektronlar tek tek, sessizce geçer:

Sayısal olarak: 1 mV = 1.000.000 nV. Avalanche gürültüsü zener gürültüsünden ~1000x daha yüksek genlikte.

Piyasadaki cihazlar 12V, 15V, 24V kullanır (tam avalanche bölgesi). Sonra bu sinyali 10x büyütür, geçer. Bu yeterlidir. Sinyal zaten güçlü.

2v4 zener gürültüsünü anca, 250-300x kazançla yani 250 - 300 kat büyüterek anca duyabiliyorum.

Zener Karakteristik

Yukarıdaki grafikte gördüğünüz gibi, zener bölgesi keskin bir “diz” (knee) oluşturur. Bu bölgede, küçük voltaj değişimleri büyük akım değişimleri üretir — ve bu akım dalgalanmaları, kuantum belirsizliğin doğrudan ölçümüdür.


4. Kara Büyü: Analog Elektroniği

Teori bitti. Şimdi gerçek iş: nV/√Hz seviyesindeki kuantum fısıltısını duymak.

Dijital vs Analog: İki Farklı Evren

Elektronik dünyasında analog mühendislerine “kara büyücü” denir. Analog tasarıma ise “kara büyü” (black magic). Neden?

Dijital dünya — 0 ve 1. Kesin, net, öngörülebilir. Kod yazarsın, çalışır. Hata varsa debugger bulur. Her şey deterministik. Voltaj > 3v = 1, Voltaj < 1.5v = 0.

Analog dünya — tam tersi. Her şey narin ve öngörülemez.

Bir kapasitör ve dirençle, analog dünyada türev ve integral gibi kalkülüs işlemleri alırsın. Dijital bilgisayarların binlerce hesaplama adımında zorlandığı işlemi, analog devre anında, sürekli zaman içinde yapar. Ama…

Odanın penceresi açıldığında hesabın değişir. Çünkü:

Analog devrede izolasyon yoktur. Her şey her şeyle konuşur. Bir op-amp’ın çıkışı, güç hattındaki dalgalanmalardan etkilenir. Bir filtre kapasitörü, elinin sıcaklığıyla değişir.

Dijitalde “tamam çalışıyor” dediğinde, iş bitmiştir. Analogda “tamam çalışıyor” dediğinde, odanın kapısını kapatana kadar beklersin.

Johnson Termal Gürültüsü: Kainatta Durmak Yasaktır

Analog dünyanın en temel büyülerinden biri: Johnson-Nyquist gürültüsü.

Boşta duran, voltaj verilmeyen, sadece yerde yatan bir direnç bile — içindeki elektronların termal hareketinden dolayı — sürekli gürültü üretir. Osiloskopa bağlasan, yatay çizgi beklerken, küçük bir “dalgalanma” görürsün. Bu, evrenin kendi sessiz fısıltısıdır.

Formülü:

Vn=4kBTRΔfV_n = \sqrt{4 k_B T R \Delta f}

Burada:

Yani: Kainatta durmak yasaklanmıştır. Her elektron sürekli titreşir. Her malzeme, hareketsiz gibi görünse bile, mikroskobik düzeyde dans eder.

Örnek hesaplamalar (oda sıcaklığı ~300K, 10 kHz bant genişliği):

Evet, koparılan bir saç teli — yalıtkan olduğu için devreden kopmuş gibi görünen — aslında termal gürültü üretir. Çünkü kainatta gerçekten “yalıtkan” yoktur, sadece “çok yüksek direnç” vardır.

Benim projemde bu gürültü hem düşman hem arkadaş:

İşte bu yüzden düşük sıcaklık, düşük direnç, dar bant genişliği — her şey kritik.

Neden İki Zener? — “Test Etmeden Bilemedim”

İlk başta tek zener düşündüm. Ama bir problem vardı: Osiloskopum yoktu.

Elimde sadece ucuz bir logic analyzer ve STM32 SWD debugger vardı. Bu aletler dijital sinyal görebilir, ama analog gürültüyü ölçemez. Peki ben nasıl emin olacaktım ki duyduğum şey gerçekten rastgele?

İşte burada matematik devreye girdi. Bilgi teorisi biliyordum: İki bağımsız rastgele kaynağın XOR’lanmış hali de rastgeledir. Hatta entropisi artar:

H(XY)max(H(X),H(Y))H(X \oplus Y) \geq \max(H(X), H(Y))

Yani: Eğer tek zener gerçekten rastgele üretiyorsa, iki zenerin XOR’u da rastgele olmalı. Ve eğer tek zenerde bir “desen” (bias) varsa, ikinci zener bu deseni “karıştırır”.

Bu yüzden iki kanal tasarladım. Her zener bağımsız:

Ama bunun başka bir nedeni daha var: Güvenlik. Tek bir zenerin üzerine elektromanyetik bir saldırı (EM pulse) yapılabilir. Ama iki bağımsız kanala aynı anda müdahale etmek çok daha zor. Bu, “hata toleransı” (bir kanal bozulunca diğeri devam eder) ve “yan kanal saldırısı” koruması.

Eldeki ve Piyasadaki Malzemeler Gerçekleri

Analog savaşında çok iyi araçlar gerekir. Ama benim elimde ne vardı?

Pertinaks: 1980’lerin Sovyet aletlerinden fırlama, çin malı FR2 tek yüzlük. Kaliteli FR4 yerine, eski tip yanmaz kart. İmpedans kontrolü yok, sinyal bütünlüğü zayıf. Ama ucuz ve erişilebilir.

Op-Amp: Elimdeki en düşük gürültülü entegre ~8.7 nV/√Hz. Teorik olarak “low-noise” ama gerçekte… Karşılaştırma: Piyasadaki “audio grade” op-amp’lar 3-4 nV/√Hz yapar. Ama bunlar pahalı, bulunması zor.

Zener breakdown gürültüsü 20-100 nV/√Hz arasında değişir. Op-amp’ın 8.7 nV gürültüsü, zener sinyalinin içinde kaybolabilir. İşte bu yüzden:

Rail-to-Rail Çilesi: Op-amp’lar genellikle simetrik besleme istiyor (+V ve -V). Negatif voltaj üretmek için voltaj pompa entegreleri var ama bunlar… inanılmaz gürültülü. Kendi başlarına Johnson gürültüsünden beter.

Çözüm: Rail-to-rail op-amp kullanmak. Bunlar tek pozitif beslemeyle (0V ile 5V arası) çalışır. Ama rail-to-rail’lerin dezavantajı: Genellikle daha yüksek gürültü. 8.7 nV, rail-to-rail dünyasında “iyi” sayılır.

Zener Çeşitliliği: Aynı “2.4V zener” etiketli 3 farklı üreticinin ürününü aldım. Hepsinin gürültü karakteri farklı! Bazıları 20 nV, bazıları 80 nV. Belki aynı fabrikada üretildiler, belki farklı. Bu da analog dünyanın “kara büyüsü”: İki aynı etiketli parça bile aynı değil.

Yani bu savaşta:

Devre PCB — Alt Görünüm

DC’nin Laneti

Zenerler çalışırken ~1.25V civarında bir DC offset üretiyorlar. Ama beni ilgilendiren AC gürültüsü — bu DC’nin etrafındaki mikroskobik dalgalanmalar.

İlk problem: Bu DC’yi atmak. Direkt amplifiye edersem op-amp’lar doyuma (saturation) gider. Çözüm pasif bir RC filtresi: cutoff ~10-15 Hz. Hem DC (~0 Hz) tamamen bloklandı, hem de zener gürültü spektrumunun büyük kısmı korundu.

Bu noktada her şey birbirine bağlanıyor: DC’yi bloklamak için HPF (Yüksek Geçiren Filtre / High Pass Filter) gerekli, HPF için direnç gerekli, direnç Johnson gürültüsü üretiyor, bu yüzden direnç değeri kritik…

nV’den mV’ye: Kazanç Çilesi

2.4V zenerler nV/√Hz gürültü üretiyor. STM32’nin ADC’si (Analog-Sayısal Dönüştürücü) ise mV seviyesinde sinyal bekliyor. Aradaki uçurum: 250-300x kazanç gerekli.

Tek aşamada 300x? İmkansız. Stabilite kaosu yaşanır, osilasyon başlar. Çözüm çok aşamalı amplifikasyon: ~50x birinci aşama, ara filtreler (faz telafisi için), sonra ~5-6x ikinci aşama. Toplam 250-300x.

Her aşama arasında empedans eşleştirme kritik: ZoutZinZ_{out} \ll Z_{in}. Eşleşmezse sinyal zayıflar, frekans tepkisi bozulur. Op-amp tampon devreleri bu izolasyonu sağlıyor.

Bandpass’i Elle Çizmek

Gürültü spektrumunu şekillendirmek için aktif filtreler tasarladım. HPF (Yüksek Geçiren Filtre, ~10-15 Hz) DC ve şebeke ripple’ını engeller. LPF (Alçak Geçiren Filtre, ~10-20 kHz) RF girişimini keser ve örnekleme hatalarını önler. Birlikte 10 Hz - 20 kHz bandpass gibi davranır.

Bu filtreleri hesaplayıp lehimlerken onlarca deneme yaptım. 3-4 devre çöpe gitti. Bazıları osilasyon yaptı, bazıları frekans tepkisini bozdu, bazıları noise’u artırdı. Pasif bileşenlerin toleransları (±5%, ±10%) teorik hesabı gerçekten uzaklaştırıyor. Sonunda stabil bir zincir elde ettim.

STM32: Dijital Dünyaya Geçiş

Son aşama: STM32F103 (Blue Pill) 12-bit ADC (Analog-Sayısal Dönüştürücü). 3.3V referans, ~0.8 mV LSB (En Düşük Değerlikli Bit / Least Significant Bit), 48-96 kHz örnekleme. Amplifiye edilmiş sinyal (~mV seviyesinde) doğrudan okunabilir. 48 kHz örnekleme = 24 kHz’e kadar frekansları yakalar, bu zener gürültü spektrumunun %95’ini kapsar.

Ve bu zincirin tamamı — osiloskop olmadan, sadece logic analyzer ve matematikle — tasarlandı.

Min-Maxing Cehennemi: Dirençler ve Ölümcül Tercihler

Analog dünyasında her seçim bir bedel. Bu proje, bu bedellerin optimizasyon cehennemine döndü.

Yüksek direnç → Yüksek Johnson gürültüsü (hatırlayın: VnRV_n \propto \sqrt{R}). 100kΩ direnç tek başına 100+ nV gürültü üretir. Zener sinyali bu gürültü denizinde kaybolur.

Düşük direnç → Yükleme etkisi. Zener diyot üzerine çok düşük empedans yüklediğinizde, kaynak empedansı etkiler. Zener’in “nefes alması” bozulur, gürültü imha edilir.

İşte bu ikilem: Çok yüksek direnç = parazit gürültü. Çok düşük direnç = kaynak ölür. Optimum noktayı bulmak için…

3 Prototip, 3 Çöp

2-3 farklı prototip kurup tekrar söktüm. LED’ler yanıyordu, STM32 kod çalışıyordu, veri akıyordu. Ama entropi testi yapınca: 5-6 bit.

Teorik olarak bu evrende 8 bit/bayt üstünde entropi göremezsiniz. Bu, rastgeleliğin teorik sınırıdır (2⁸ = 256 durum). Benim hedefim 7.9+ bit.

Ama 5-6 bit? Bu “rastgele görünen deterministik” sinyal demek. Belki güç kaynağı dalgalanması, belki RF girişimi, belki op-amp osilasyonu. Gerçek kuantum gürültüsü, bu kirliliklerin altında kaybolmuş.

Her prototip çöp olduğunda nedenini buldum:

Başarısız Prototip — 1 Başarısız Prototip — 2

Gain Kontrolü: Trimpot’tan Mux’a

Sürekli kazanç ayarı gerekiyordu. Çünkü analog dünyasında “ertesi gün” kelimesi tehlikelidir. Nem değişir, sıcaklık değişir, direnç değerleri kayar. Dün mükemmel çalışan devre, bugün sapıtabilir.

Trimpot? Karbon kompozisyon. Kendi başına 100+ nV gürültü. İmkansız.

Dijital pot? Anahtarlama gürültüsü. İçindeki anahtarlar, her geçişte ani sıçrama üretir.

Haftalarca düşündüm. Sonra çözüm geldi: Analog Mux + 16’lı direnç merdiveni.

Direnç Ladder — Yakın Çekim

74HC4067 multiplexer + 16 adet %1 hassasiyetli metal film direnç. Mux, 4 bit dijital kontrolle 16 farklı direnç kombinasyonu seçer. Her direnç yolunun Johnson gürültüsü var ama… bu gürültü hesaplanabilir, karakterize edilebilir. Ve sabit.

Switching gürültüsü yok çünkü mux sadece seçim yapar, geçiş sırasında değil. Karbon gürültüsü yok çünkü metal film dirençler (thin film) kullanıyorum.

Akım Kontrolü: Zener’in Nefesi

Zener diyotların çalışma noktası (operating point) kritik. Çok düşük akım = breakdown bölgesine giremez, kuantum gürültüsü üretmez. Çok yüksek akım = ısınır, termal gürültü artar, stabilite bozulur.

Ama akım kontrolü tam bir baş belasıydı.

İlk devrelerde klasik voltaj kontrolüyle zenerleri sürmek istedim. Zenerlerin voltaja bağlı dinamik iç dirençleri var — voltaj yükseldikçe dirençleri düşer, azaldıkça yükselir. Ama bu tamamen rastgele, üretim toleransına bağlı.

Sonuç? İlk devremde her zaman o an az dirence sahip olan zener, diğerinin hakkı olan akımı ÇALIYORDU!

Evet, iki zener yan yana, aynı voltajda, ama biri diğerinden daha “açgözlü”. Seri dirençlerle paylaştırmaya zorladım. Çalışıyor gibi görünüyordu ama… entropi testi yine rezaletti. 5-6 bit, bazen daha düşük.

1-2 hafta bayağı düşündüm. Problem neydi? Hatta o günlerde kendime “Avalanche’a geç, bu imkansız, bırak geç!” diye çok söylendim. Ama pes etmedim.

Bir gece, 3’te aklıma geldi: Problem, op-amp’ın çıkış empedansındaydı!

Teorik olarak op-amp çıkışı “sıfır empedans” olmalı. Zenerlerin gözünden bakın: Size güç veren “şey”, sizden daha düşük dirençli! Böyle olunca o ufacık kuantum gürültüsü, zener üzerinde kalıp op-amp tarafından “hata” olarak görülüp siliniyordu! Op-amp, zenerin gürültüsünü “düzeltmeye” çalışıyordu.

Çözüm? Op-amp’ın çıkışını zenerlere göre “sonsuz empedans” gibi göstermek. Yani:

dZ=dVdIdZ = \frac{dV}{dI}

Eğer dI=0dI = 0 (sabit akım kaynağı), o zaman dZdZ \to \infty!

Araştırdım, araştırdım… Simetrik VCCS (Voltage Controlled Current Source / Voltaj Kontrollü Akım Kaynağı)! Evet, teorik olarak bu işe yarıyordu. Zenerlerin bakış açısına göre op-amp artık “havada”, sonsuz empedanslı.

Ama… bu topolojide zenerler toprağa (şaseye) bağlı değil, “floating”. Bu da yeni problemler. Sonra Howland Current Source topolojisini (Howland’ın Akım Kaynağı Topolojisi) buldum. Kulağa mükemmel geliyordu.

Ama… Howland’da kullanılan dirençler %1 toleranslı olsa bile, birbirinden hafifçe farklı olunca, empedans yere çakılıyordu! Teorik formüller kağıtta mükemmel, ama gerçek dirençler…

Bu da analog dünyanın laneti: Matematik mükemmel, malzeme hayal kırıklığı.

Sonunda, günlerce deneme-yanılmayla ve hesapla mükemmel olmayan ama yeterince iyi değiştirilmiş Howland akım kaynağı topolojisi elde ettim.

Burada kullandığım “trick”ten bahsetmeyeceğim 😉🤫 — Sonuçta ticari sır, değil mi? xD

Howland Current Source Topolojisi

Dinamik Akım Kontrolü: Zener’in Nefesini Yazılımsal Ayarlamak

Tabii ki bu topoloji yetmez, akımı dinamik olarak kontrol etmeniz gerekli!

Bunu stabil yapmanız için ayrı bir DAC (Digital-to-Analog Converter / Sayısal-Analog Dönüştürücü) entegresine sahip olmanız gerekir. Klasik PWM + RC filtreli DAC, dalgalanma sorunu vardır. Ben de 2 kanallı 12 bit bir DAC entegresi kullandım ve max. zener başına 2.5mA olacak şekilde akım kontrolü yaptım. 12-bit çözünürlük demek 4096 adım (2¹²) demek — yani her adım:

2.5 mA40960.61 µA (mikroamper)\frac{2.5\text{ mA}}{4096} \approx 0.61\text{ µA (mikroamper)}

Her adımda 0.6 mikroamper hassasiyetle zener akımını ayarlayabiliyordum! Bu, tek bir zenerin çalışma noktasını mikroskobik düzeyde titizlikle kontrol etmemi sağladı.

Analog mux gain kontrolüyle beraber, kalibrasyon artık 2D haline gelmişti, hem akım hem de gain’i yazılımsal olarak dinamik biçimde ayarlayabiliyordum. Bu iki boyutlu kontrol uzayı, farklı çalışma noktalarında entropi performansını optimize etmemi sağladı.

İlk Kalibrasyon Sonuçları

Filtre Tasarımı: Evreni Dinlemenin Tek Yolu

Bu gürültüyü dinleyebilmek için en kritik aşama filtredir — HPF (yüksek geçiren) ve LPF (alçak geçiren). Bu tasarım her şeyin kaderini belirler.

Çünkü farkında olsanız da olmasanız da, son derece gürültülü bir dünyada yaşıyoruz. Şu anda bulunduğunuz odada electromagnetic parazit kaynakları:

Bunların herhangi birini 200x büyüttüğünüzü düşünün. Kasıtsız olarak. Tamamen öngörülebilir, entropisi 1-2 olan bir sinyali doğrudan ADC’ye yollamış olursunuz. “Kuantum RNG”den çıkan sayılar aslında komşunun mikrodalgasının gürültüsü olur.

İşte bu yüzden filtre tasarımı var olmanın koşuluydu bu projede.

Frekans Penceresini Bulmak

Zenerin ürettiği gürültü düz bir spektrum değil. Fiziksel olarak en kaliteli, en saf kuantum belirsizliği belirli bir frekans aralığında yoğunlaşır. Benim hedef bant yaklaşık olarak:

fgec¸is¸10 Hz200 kHzf_{\text{geçiş}} \approx 10\text{ Hz} - 200\text{ kHz}

Bu pencerenin altında:

Bu pencerenin üstünde:

Çözüm: Alçak tarafı HPF ile, yüksek tarafı LPF ile keserek bir bant geçiren pencere oluşturmak.

Neden Tek Dereceli Filtre Yetmez?

Tek dereceli (1. derece) bir RC filtresi, oktav başına yalnızca -20 dB yani yaklaşık 10x zayıflatma sağlar. Şebeke 50 Hz’i, hedef bant 1 kHz ise aralarında sadece ~4.3 oktav var. 4.3 × 20 dB = 86 dB zayıflatma — bu yeterli görünebilir, ama gerçekte…

Op-amp kazancı 250-300x ise bu ~50 dB. Şebeke + kazanç birleşince 1. dereceli filtre yetmez. Faz kayması problemleri, osilasyon riski, geçiş bandının yataylığı — her şey çok dereceli tasarımı zorunlu kılar.

Ben birden fazla filtre aşaması kullandım:

Her aşama matematiksel olarak tasarlandı. R ve C değerleri:

fc=12πRCf_c = \frac{1}{2\pi RC}

Ama toleranslar gerçeği saptırıyor. Teorik hesap 15 Hz diyor, %5 toleranslı dirençlerle gerçekte 13.2 Hz ya da 16.8 Hz çıkabiliyor. Bu yüzden analog mux ile gain kontrolü sadece amplifikasyon için değil, filtre empedansını da ince ayar etmek için kullanılıyordu.

Filtre Hesapları — El Yazısı

Op-Amp’ın GBW Limiti: Hızın Bedeli

Her op-amp’ın bir GBW (Gain-Bandwidth Product / Kazanç-Bant Genişliği Çarpımı) değeri var. Bu sabit bir limit:

GBW=Av×f\text{GBW} = A_v \times f

Örnek: GBW (Kazanç-Bant Genişliği Çarpımı) = 1 MHz olan bir op-amp, 100x kazanç için yalnızca 10 kHz’e kadar stabil çalışır. 50x kazanç istiyorsan, 20 kHz bant genişliği alırsın.

Bu, her şeyi değiştiriyor. 250x toplam kazanç için tek aşamada gitmek — GBW (Kazanç-Bant Genişliği Çarpımı) sınırına çarpar, frekans tepkisi bozulur, kazanç düşer. Çok aşamalı yapıda ise her aşama kendi GBW bütçesini verimli kullanır.

Ben bu yüzden ~50x + ~5-6x iki aşama tercih ettim. Birinci aşama nV gürültüyü ~mV’ye taşırken, ikinci aşama ince ayar. Her aşamanın GBW sınırını hedef bandın içinde tutmak için dikkatli hesap yaptım — ve haftalarca bu matematiğin içinde kaldım.

Bitwig ve FabFilter Dersleri: Müzik Prodüksiyonundan Elektriğe

Burada beklenmedik bir şey söyleyeceğim: Bu filtre tasarımlarında Bitwig Studio’da industrial trance üretirken FabFilter Pro-Q ile yaptığım EQ çalışmaları inanılmaz fayda sağladı.

Dijital dünyada bir sinyal spektrumuna bakar, “bu frekans kirli, kes,” dersin. Bir shelf koyarsın, bir notch açarsın, faz kaymalarına dikkat edersin. Q faktörünü ayarlarsın — dar Q = keskin kesim, geniş Q = yumuşak geçiş.

Elektronik devrede de tam olarak aynı düşünce:

Müzik prodüksiyonunda kazandığım “spektrumu okuma” sezgisi, devrenin frekans tepkisini kafamda modellememde çok işe yaradı. Nerede keseyim, hangi aşamada, hangi eğimde — bunları hesaplamadan önce hissedebiliyordum. Sonra matematik doğruluyordu.

İşte analog elektronik ve ses mühendisliği arasındaki bu gizli ortaklık: İkisi de dalgaları şekillendirir. Biri kapasitörle, biri kodla.

Hatta fotoğrafçılıkta böyledir. Bir fotoğrafı işlerken, “bu renk kirli, kes,” deriz. Bir kırmızı tonu düşürürüz, bir mavi tonu artırırız. Faz kayması, kontrast, netlik — hepsi aynı prensiplerle.

Çünkü bu hayatta her şey dalgadır.


5. MCU Seçimi: 22KB RAM ile Savaş Arenası

Neden İki ADC Şart?

İki zeneri bağımsız olarak tasarladım. Biri diğerini etkilemesin diye ayrı amplifikasyon zincirleri, ayrı filtreler. Sonunda yazılımda XOR’lanacaklar — ama bu XOR’un anlamlı olması için iki kanalın aynı anda okunması gerekiyor.

Neden? Çünkü XOR kaçar.

Birinci zener 1. örnekte “1”, ikinci zener 2. örnekte “0” derse, bu iki farklı fiziksel anın ölçümüdür. Aralarında geçen birkaç mikrosaniye bile sistemin durumunu değiştirebilir — sıcaklık kayması, güç hattı ripple’ı, PCB üzerinden gelen EM girişimi. Sıralı okuma, aslında iki bağımsız kaynağın değil, iki farklı anın XOR’unu üretir. Entropi yanılsaması.

Gerçek eşzamanlılık için: iki bağımsız ADC çipi gerekli.

Piyasanın Cevabı: Para

Çift ADC’li, yüksek örnekleme hızlı MCU’lar var. Ama fiyatları…

Nyquist teoremi gereği (bir sinyali doğru yakalamak için frekansının en az iki katında örneklemeniz gerekir) zener gürültü bandımı (10 Hz – 200 kHz) düzgün örneklemek için en az 400 kHz örnekleme hızı gerekli. Bu hızda çift ADC’yi aynı anda çalıştıran endüstriyel MCU’lar kolayca 20-50 dolar — prototip için çılgın bir rakam.

Düşündüm. Araştırdım. Ve sonunda: STM32F103C8T6, yani Blue Pill.

Blue Pill: Ucuzun Sırrı

Blue Pill, piyasada “dandik” olarak bilinir. 1-2 dolar. Kehribar pertinaks üzerinde, düz bir kart. Aliexpress’in amblemi adeta.

Ama içinde iki bağımsız ADC çipi var — ADC1 ve ADC2. Ve bu ikisi çift modda (dual mode) eşzamanlı örnekleme yapabiliyor. Teorik maksimum örnekleme hızı: 1 Msps (saniyede 1 milyon ölçüm) tek kanalda, çift modda 600 ksps (saniyede 600 bin ölçüm) civarı.

Yani ucuz ve güçlü ADC’si var. Tek bir sorun dışında.

22 KB RAM.

22.000 byte. Günümüz standartlarıyla bu, bir favicon’dan küçük. Bir mikro SD kartın boot sektöründen küçük. Web sayfasında bir satır JavaScript’ten küçük.

Rust ile Savaş Arenası

Bu noktada iki seçenek vardı: C ile bellek yönetimi yapmak ve büyük ihtimalle bellek taşmasıyla çökmek. Ya da Rust ile girmek. Zaten bildiğim bir dildi Rust. Fakat gömülü programlamada yeni yeni ekosistemi gelişiyor.

Biraz da tembellik edip, “zaten kullanıyor olduğum dil, hem de durumumda avantajlı!” diyerek Rust kullandım.

Rust’ın bellek güvenliği garantileri, bu kadar dar bir alanda kritik. Bir byte’ı iki kez kullanmak, bir pointer’ı yanlış ölçmek — hepsi ölüm. Rust’ta bu hatalar derleme zamanında yakalanır. Çalışma zamanında değil.

“Savaş arenada kazanılır” diyerek girdim.

Embassy framework’ü kullandım — Rust’ın async/await modelini işletim sistemi olmadan doğrudan STM32 üzerinde çalıştıran bir donanım katmanı. Kesme tabanlı çalışma, minimum ek maliyet. 22 KB RAM’de yaşayabilmenin yolu: Her byte hesaplı, her bellek kullanımı önceden planlanmış.

Testler dahil blok yönetimi ile kalan gerçek işlem belleği: yaklaşık 6 KB.

6 KB ile entropi toplama, döngüsel tampon, USB iletişimi ve istatistiksel testleri aynı anda çalıştırdım.

DMA (Doğrudan Bellek Erişimi): CPU’yu Devre Dışı Bırakmak

İki ADC’yi aynı anda örneklerken CPU meşgul olmamalı — aksi halde örnekleme zamanlaması CPU yüküne göre değişir, bu da ince bir bias kaynağı olur.

Çözüm: DMA (Direct Memory Access / Doğrudan Bellek Erişimi). CPU’yu atlayarak ADC çıkışını doğrudan RAM’e yazan donanım motoru. STM32F103’te ADC1 ve ADC2 çift modda çalışırken, DMA Channel 1 her ikisini de tek bir aktarımda belleğe döküyor.

CPU sadece “tampon doldu” interrupt’ını alıyor, ham veriyi işliyor, tamponu temizliyor. ADC örneklemesi ise CPU’dan bağımsız olarak, donanım hızında devam ediyor.

ADC’nin Kaçınılmaz Sınırı: Ardışıllık

Ama ne kadar hızlı örneklerseniz örnekleyin, bir gerçekten kaçış yok: ADC süreci doğası gereği sıralıdır.

Analog-dijital dönüşüm, bir voltajı sayısal bir değere çevirme işlemidir. Bu işlem anlık değildir — her sample için bir dönüşüm süresi var (STM32F103’te minimum 1 µs civarı). Yani örnekler arasında zaman geçiyor.

Bu ne demek? Birbirini izleyen iki sample arasında korelasyon kaçınılmaz. Zener gürültüsü ne kadar “beyaz” (flat spektrum) olursa olsun, ADC’nin örnekleme penceresi bu gürültüyü filtreler. Bitişik sample’lar birbirine benzeme eğilimi gösterir — özellikle Nyquist limitine yaklaşıldığında.

Buna ek olarak başka problemler de var:

Bunların hepsi, ham ADC verisinin doğrudan entropi kaynağı olarak kullanılamayacağı anlamına gelir. Ham veri işlenmeli.

Bu işleme whitening (beyazlatma) deniyor. NSA (Ulusal Güvenlik Ajansı) ve NIST’in (Ulusal Standart ve Teknoloji Enstitüsü / National Institute of Standards and Technology) kriptografik RNG standartlarının zorunlu gördüğü bir adım — ham fiziksel entropi kaynağından gelen veriyi istatistiksel olarak düzeltmek ve yoğunlaştırmak için.


6. Whitening: Var Olanı Temizlemek

Whitening Nedir?

Ham ADC verisine bakın. Zener gürültüsünü 300x büyüttünüz, 12 bit dijitale çevirdiniz. Sayılar geliyor: 2047, 2049, 2046, 2050, 2048…

Bunlar rastgele görünüyor ama değil. ADC’nin orta noktasına (2048) doğru hafif bir çekim var — INL/DNL hatası. Bitişik sample’lar birbirine yakın — korelasyon. Belki 0 biti %52, 1 biti %48 çıkıyor — hafif bir bias.

Whitening, bu bozuklukları gidermek için ham veriyi kriptografik bir fonksiyondan geçirme işlemidir.

Ama burada kritik bir yanlış anlaşılmayı düzeltmek gerekiyor:

Whitening entropi üretmez. Var olan entropiyi temizler.

Düşünün bir elması yıkıyorsunuz. Yıkamak elmayı elma yapan özü değiştirmez — sadece üstündeki kiri alır. Elma zaten elmaydı. Ama şimdi temiz elma.

Whitening de böyledir. Eğer ham verinin içinde gerçek fiziksel entropi varsa — yani zenerden gelen kuantum belirsizliği gerçekse — whitening bunu alır, istatistiksel bozuklukları sıfırlar ve mükemmel bir çıktı üretir.

Ama eğer ham veri zaten entropiden yoksunsa — mesela yalnızca şebeke hum’ı veya op-amp’ın sabit osilasyonu kaydedilmişse — whitening bunu kurtaramaz. Evrenin en temel yasası: Çöp giren, çöp çıkar. Belki çok temiz görünen çöp, ama entropi testi altında hemen deşifre olur.

SHA-256 entropi üreteci değildir. Entropi temizleyicisidir.

İlk Deneme: Von Neumann Extractor

Whitening’e ilk başladığımda klasik yöntemle başladım: Von Neumann extractor.

Fikir basit ve zekice. Ham bit akışından bias’ı elemek için, ardışık çiftlere bakılır:

Matematiksel olarak mükemmel: Çıkan bitler, orijinal bias ne olursa olsun tam P(0) = P(1) = 0.5 dağılımına sahip olur. Ve herhangi bir kriptografik saçmalık gerektirmez, saf matematik.

Sorun? Verimliliği berbat.

Teorik maksimum verimlilik: Orijinal bias pp ise, Von Neumann’ın çıktı oranı:

ηVN=2plog2p2(1p)log2(1p)12p(1p)\eta_{\text{VN}} = -2p\log_2 p - 2(1-p)\log_2(1-p) - 1 \quad \approx 2p(1-p)

%52/%48 gibi hafif bir bias’ta bile her iki bitten ortalama yalnızca ~0.5 bit çıkar. Yani ham verinin yarısından fazlasını çöpe atıyorsunuz.

22 KB RAM’de, zaten kısıtlı örnekleme hızıyla çalışırken — bu kabul edilemez bir israf. Von Neumann’ı kısa sürede bir kenara bıraktım.

SHA-256: Neden En İyi Çözüm?

SHA-256 (Secure Hash Algorithm 256-bit), NSA tarafından tasarlanmış kriptografik hash fonksiyonu. Herhangi bir girdiyi alır, 256 bitlik (32 byte) deterministik ama tahmin edilemez bir çıktıya dönüştürür.

Neden whitening için mükemmel?

1. Çığ etkisi (Avalanche effect): Girdide tek bir bit değişirse, çıktının yarısı (~128 bit) değişir. Bu demek oluyor ki ham verideki küçük korelasyonlar ve bias’lar çıktıda tamamen dağıtılır. INL/DNL hatası, ADC kickback noise, sample-to-sample korelasyon — hepsi SHA-256’nın karıştırma aşamalarında erir.

2. Bilgi kaybı yok: SHA-256 deterministik bir fonksiyon — aynı girdiyle aynı çıktıyı verir. Ama bu Von Neumann gibi veriyi atmaz. 512 bit girdi → 256 bit çıktı. Entropi sıkıştırılır, imha edilmez. Eğer girdide 256 bit gerçek entropi varsa, çıktıda da 256 bit gerçek entropi olur.

3. NIST SP 800-90B uyumlu: NIST’in (Ulusal Standart ve Teknoloji Enstitüsü) donanım RNG standartları SHA-256 tabanlı conditioner kullanımını açıkça öngörür. Bu standarda uyum, cihazın kriptografik olarak kabul görmesi için şart.

4. Doğrulanmış güvenlik: 25 yıldır kırılamamış. Kuantum bilgisayarlarla bile Grover algoritması sadece etkin güvenliği 128 bite indirir — hâlâ yeterli.

22 KB’nin Bedeli: Hız Kısma

Ama SHA-256’nın bir maliyeti var: ağır hesaplama.

SHA-256 512 bitlik bloklarla çalışır. Her blok için 64 tur iç dönüşüm — bit kaydırma, toplama ve döndürme gibi temel işlemler. STM32F103’te hardware SHA yok — her şey yazılımda.

Ve bu hesaplama, 22 KB RAM’deki bir MCU’da ciddi bir süre alıyor.

Sonuç: SHA-256 işlem hattını ayakta tutmak için örnekleme hızını kısmak zorunda kaldım. Ham veri toplama hızıyla SHA-256 işleme hızı arasında bir denge kurmak gerekti. Daha hızlı örneklerim buffer dolar, SHA yetişemez, veri düşer. Daha yavaş örneklerim entropi kapasitesi düşer.

En sonunda, 22 KB’de stabil çalışan ve istatistiksel testleri geçen bir hız noktası buldum. Yavaş, ama doğru.

Kritik Özet: Whitening’in Sınırı

Bunu bir kez daha vurgulamak istiyorum çünkü çok kritik:

DurumHam VeriSHA-256 Sonrası
Gerçek kuantum entropi varBias’lı, korelasyonlu ama doluTemiz, mükemmel
Entropi yok (şebeke hum’ı, osilasyon)Deterministik parazitCilalı ama çöp
Kısmen entropi varKarışıkOrantılı çıktı

SHA-256 bir sihir değil. Testten geçebilecek sahte entropi üretmez. Eğer analog devrenin tasarımı kötüyse, filtreleme eksikse, zener gürültüsü değil şebeke paraziti okunuyorsa — whitening bunu gizleyemez. Korelasyon testlerinde hemen çöker.

Bu yüzden analog tasarım ve whitening birbirini tamamlar — biri kaynağı temizler, diğeri iletimi temizler. İkisi de olmadan kaliteli bir entropi imkansız.

Test Raporu: Raw vs Whitened

StreamSkorSonuç
Raw XOR (whitening öncesi)7/8🟡 İYİ
SHA-256 Whitened8/8🟢 MÜKEMMEL
#TestEşikRaw XORWhitened
1Shannon Entropisi≥ 7.0 bit/byte7.6 bit7.9 bit
2Bit Dengesi%45–55 ones%52 ✅%49 ✅
3Runs Testsapma < %20%5 ✅%0 ✅
4Monte Carlo π2.51–3.772.60 ✅3.16 ✅
5Spektral/Frekansmaks sapma < %25%15 ✅%0 ✅
6Chi-Squareχ² < 4001649 ❌224 ✅
7Bigram Kapsama≥ %30%42 ✅%52 ✅
8Sıkıştırma OranıRLE ≥ 0.801.98 ✅1.99 ✅

Chi-Square testi raw veride başarısız çünkü ham kuantum gürültüsünde doğal bias var — whitening sonrası 224’e düşüyor, eşiğin altında. Bu tam olarak whitening’in yapması gereken şey.


7. Sonuç: Başarı ve Beklenmedik Güzellik

1,5 Ay, 5 Devre, 7.9 Bit

Beşinci devremde oldu.

Yaklaşık 1,5 aylık süreç. Onlarca lehim noktası, birkaç yanmış op-amp, üç çöpe giden prototip, sayısız gece matematikle. Her “kırılma eşiği”nde — bileşenler yanınca, devre osilasyon yapınca, entropi yeniden 5 bite düşünce — bir sonraki versiyona geçtim.

Ve beşinci devrede, istatistik testlerini çalıştırdım.

Her zener bazında ham entropi: 7.0 - 7.4 bit. Stabil.

Sonra en önemli ölçümü yaptım: İki zenerin XOR’u. Bu, tüm projenin nihai kanıtıydı — iki bağımsız kuantum kaynağının birbirinden gerçekten bağımsız olup olmadığının testi. Eğer XOR yüksek çıkıyorsa, kaynaklar korelasyonsuz demektir. Eğer düşükse, bir kanal diğerini “kirletiyor” demektir.

XOR entropi: 7.5 - 7.9 bit. Stabil.

7.9 bit. 8 bit’in teorik maksimumu. Askeri kriptografi standartları için eşik: 7.5.

Başarmıştım!

Beklenmedik Geri Dönüş: Mikroplazma

Ama projeyi bitirirken ufak bir nüansla karşılaştım.

OnSemi’nin zener gürültüsü üzerine yayınladığı teknik dokümana denk geldim: Application Note HBD854. Ve orada, 2-3V altındaki zenerlerin gürültü mekanizmasına dair çok spesifik bir şey yazıyordu.

Dinlediğim gürültü, saf kuantum tünelleme gürültüsü değildi.

Mikroplazma + kuantum tünelleme gürültüsüydü.

İlk anda hafif hayal kırıklığı. Sonra daha dikkatli düşündüm. Ve anladım ki bu, aslında çok daha ilginç bir şeydi.

Kristal Bozuklukları: Kusurdan Doğan Kaos

2.4V zener üretmek, teorik fizik sınırlarına dayanan bir iş. Depleksiyon bölgesini nano-metre kalınlığında yapmak gerekiyor. Bu, silikon kristal kafesini atom-atomu yerleştirmek demek — ve gerçek dünyada bu hiçbir zaman mükemmel olmaz.

Her zener diyotunun PN birleşiminde, kaçınılmaz olarak kristal bozuklukları (dislocations, grain boundaries, lattice defects) bulunur. Özellikle 2.4V gibi teorik limite yaklaşıldıkça, bu bozukluklar artar — çünkü nanometre seviyesinde bariyer yaparken kusursuz kristal düzeni sağlamak neredeyse imkansız.

Bu bozuklukların köşeleri ve çıkıntıları vardır. Ve bu geometri her şeyi değiştirir.

Elektrik Alanı Yoğunlaşması

Düz bir yüzeyde elektrik alanı homojendir. Ama sivri bir köşede, alan o noktaya yoğunlaşır — tıpkı yıldırımın yüksek noktalara düşmesi gibi.

2.4V zener depleksiyon bölgesinde ortalama elektrik alan:

Eort=VZw2.4 V5×109 m480 MV/mE_{\text{ort}} = \frac{V_Z}{w} \approx \frac{2.4\text{ V}}{5 \times 10^{-9}\text{ m}} \approx 480\text{ MV/m}

Bu zaten devasa bir alan. Ama kristal bozukluğunun ~1-2 nm yarıçaplı bir köşesinde, alan güçlendirme faktörü (β) 5-10x olabilir:

Eko¨s¸eβEort10×480 MV/m5 GV/mE_{\text{köşe}} \approx \beta \cdot E_{\text{ort}} \approx 10 \times 480\text{ MV/m} \approx 5\text{ GV/m}

5 gigavolt/metre. Karşılaştırmak için: Havanın elektriksel kırılma eşiği ~3 MV/m. Yani bu köşelerde alan, havanın kırılma eşiğinin binlerce katı.

Tünelleme Patlaması

Bu devasa alanda, tünelleme olasılığı normal noktalardan tamamen farklı:

Tünelleme iletim katsayısı Te2κwT \approx e^{-2\kappa w} formulünü hatırlayın. Düz bariyer için etkin kalınlık ~5 nm, kristal köşesinde ise etkin kalınlık ~1 nm’ye kadar düşer:

Tdu¨ze2×5.6×109×5×109=e561024T_{\text{düz}} \approx e^{-2 \times 5.6 \times 10^9 \times 5 \times 10^{-9}} = e^{-56} \approx 10^{-24} Tko¨s¸ee2×5.6×109×1×109=e11105T_{\text{köşe}} \approx e^{-2 \times 5.6 \times 10^9 \times 1 \times 10^{-9}} = e^{-11} \approx 10^{-5}

Köşede tünelleme olasılığı, düz bariyere göre ~10¹⁹ kat daha yüksek. Bu, tünellemenin neredeyse yalnızca bu kristal kusur noktalarında gerçekleştiği anlamına gelir.

Elektron o noktada tünelleyince, lokal elektrik alan anında boşalır. Bir “çöküş” olur — ve bu çöküş kendi gürültüsünü üretir. Sonra alan yeniden birikir, yeniden tünelleme, yeniden çöküş. Bu döngü: mikroplazma.

İki Katmanlı Belirsizlik

İşte burada güzel olan şey ortaya çıkıyor. Artık dinlediğim gürültünün iki bağımsız rastgelelik katmanı vardı:

1. Ne zaman? — Tünelleme anı, kuantum mekaniğinin temel belirsizliği. Hesaplanamaz, öngörülemez.

2. Nerede? — Hangi kristal bozukluğunun köşesinde tünelleme olacağı. Bu bozuklukların dağılımı üretim sürecinin kaotik bir sonucu — atomik ölçekte kaydedilmesi, modellenmesi veya tekrar edilmesi imkansız.

Saf kuantum tünelleme gürültüsü, aslında beyaz gürültü — düz spektrum, Gaussian dağılım, sıkıcı ama temiz. Bell eğrisi.

Mikroplazma + tünelleme ise çok daha zengin: Lokal elektrik alan dalgalanmaları, stokastik ateşleme, kaotik boşalma döngüleri. Spektrum fraktal karakter kazanıyor. Bell eğrisi değil, dağın eteklerinde karlı çığ izleri gibi bir şey.

Ve bana göre bu, çok daha güzel.

Kaos + Kuantum: Doğanın En Zarif Şeyi

Hayal kırıklığım kısa sürdü. Çünkü fark ettim ki aslında daha derine inmiştim.

Saf tünelleme: Evrenin temel belirsizliği. Derin, ama tek katmanlı.

Mikroplazma: Evrenin temel belirsizliği üzerine kristal kaosunun binmesi. İki doğal sistem, iki bağımsız bilinmez, tek bir devrede.

Termal gürültü: Her maddenin içinde bulunan ve kuantum mekaniğine dayalı, elektronların dansları.

Bu proje için yeterince güzel. 7.9 bit entropi bunu doğruluyor.

Ama eğer fırsat bulursam bir sonraki sürümde, bu mikroplazma mekanizmasını bilerek tasarlayıp dinlemek istiyorum. Kusurlu ama kontrollü bir kristal yüzeyi. Kaotik ama karakterize edilmiş bir gürültü. Kaos mühendisliği.

Çünkü bence doğadaki en zarif şey, kaos ve kuantum mekaniğinin aynı anda dans ettiği yerdir. Formüllerin biteceği, olasılığın başlayacağı ve kristal kusurların bile entropi ürettiği o sınır.


Son Söz

1,5 ayın sonunda geriye dönüp bakıyorum.

Sabah kalktığımda “bu imkansız” dediğim günler oldu. Entropi 5 bite düşünce, haftalarca uğraştığım devreyi söküp yeniden başlarken “avalanche’a geç, bu saçmalık” diye kendi kendime söylendiğim oldu. Analog dünyanın her “kara büyüsü” beni bir kez daha köşeye sıkıştırdı. Zor bir süreç, hiç bir şey kolay değil bu hayatta.

Ama elbette peşini bırakmadım.

Ve şimdi elimde, whitening sonrası stabil, askeri standartlarda, 7.8+ bit entropi üreten bir devre var. Ucuz pertinaks üzerinde, iki zener diyot, bir STM32 Blue Pill ve bir sürü metal film direnç. Görkemli görünmüyor. Ama içinde evrenin belirsizliği çalışıyor. DS18 ile sıcaklığı da görebiliyorum.

Buna CTH v.0.1 diyorum. Can’s Third Hardware. Üçüncü donanımım.

İkinci donanımım olan CSH (Can’s Second Hardware) ise farklı bir alandaydı — müzik prodüksiyonu için inşa ettiğim bir DAW controller. Fiziksel encoder’lar, dokunmatik ekran, butonlar ve faderlardan oluşan, Bitwig Studio’ya MIDI üzerinden bağlanan el yapımı bir arayüz. CTH’den farklı bir mühendislik disiplini, ama aynı felsefe: Piyasadaki hazır çözüm yerine, tam olarak istediğimi kendin yap.

CSH — Can's Second Hardware: DAW Controller CTH v.0.1 — Metal EMI Kafesi İçinde Son Hali

Ne Yapacağım?

Pratik açıdan bu cihazı birkaç şey için kullanabilirim:

Kişisel amaçlarla.

Kritik şifre üretmek istediğimde. Bir anahtara, bir token’a gerçek entropi gerektiğinde — algoritmanın değil, evrenin ürettiği rastgelelik.

Bitwig’de arkaplan gürültüsü oluşturmak istediğimde. Beyaz gürültüden farklı, fraktal karakterli, canlı bir ses kaynağı. Mikroplazmanın kendine özgü ritmi var.

Ama asıl hedef, projeyi tasarlarken kafama koyduğum şey: TouchDesigner.

Evrenin belirsizliğini görselleştirmek. Her bit, her örnekleme, bir piksele, bir harekete, bir forma dönüşsün. Deterministik algoritmalardan değil, gerçek fiziksel olaylardan beslenen generative görsel. Elektronun tünellediği an, ekranda bir çizgi olsun.


Hayatın bir insana ne getireceği ya da ne götüreceği belli olmaz — tıpkı bu cihazdan ne zaman “1” veya ne zaman “0” çıkacağının belli olmaması gibi.

Ama bu sonlu hayatta böyle bir şeye şahit olmak, benim için güzel bir deneyimdi. Teoriden devreye, atomlara kadar uzanan bir yolculuk. Akşam saatlerinde lehim tutan ve sonunda “çalışıyor” dediği anda garip bir sessizliğe bürünen bir süreç… ayrıca elektronları fethetmenin verdiği ayrı bir keyif vardı. 😈😄

Çalışıyor. Ve içinde evren var.


Test

Gerçek Hayat Demosu

Rastgelelik Üretme Testi

Entropi Kalite Testi


Bu makaleyi paylaş:

Önceki Makale
En İmkansız Amaç
Sonraki Makale
Tech Artist Nedir?