Entropi, “Randomness” için teknik bir terimdir. Bilgisayarlar gerçekten entropi üretmezler, ancak sabit disk dönüş hızlarındaki çeşitlilikler gibi şeylere bakarak toplarlar (Sürtünme nedeniyle tahmin edilmesi çok zor olan fiziksel bir olay vb.) Bir bilgisayar sözde rasgele veri üretmek istediğinde fare tıkaçlarını, sabit disk dönüşü değişimlerini vb. ölçerek bulduğu gerçek entropi ile matematiksel bir formül tohumlayın. Kabaca söylemek gerekirse entropy_avail
şu anda okunabilecek bitlerin ölçüsüdür./dev/random
Bilgisayarın gürültülü bir diyot veya başka bir şey gibi iyi bir donanıma sahip olmadığı sürece, entropi ortamından okuması zaman alır.
Eğer 4096 bit entropi varsa ve kediniz /dev/random
varsa, daha fazla entropi beklerken, dosya bloklarından önce 512 bayt entropi (4096 bit) okuyabilirsiniz.
Örneğin, eğer “ cat /dev/random
” entropininiz sıfıra düşecektir. İlk başta 512 bayt rastgele çöp elde edersiniz ancak durur ve azar azar daha fazla rasgele veri damlama yalak göreceksiniz.
İnsanların bu şekilde çalışması gerektiği gibi değil /dev/random
. Normalde geliştiriciler 128 bit gibi az miktarda veri okuyacak ve bunu bir çeşit PRNG algoritması tohumlamak için kullanacaklar. /dev/random
İhtiyacınız olandan daha fazla entropi okumaması kibarlıktır, çünkü birikmesi çok zaman alır ve değerli olarak kabul edilir. Bu nedenle cat
, dosyayı yukarıdaki gibi dikkatsizce çekerek tahliye ederseniz, okuması gereken diğer uygulamaların /dev/random
engellenmesine neden olursunuz . İşyerindeki bir sistemde birçok kripto işlevinin durduğunu fark ettik. Bir cron işinin başlatılmaya devam eden bir python betiği çağırdığını keşfettik.ramdom.random()
birkaç saniyede kaçan kaçtı. Bunu düzeltmek için python betiğini yeniden yazdık, böylece yalnızca bir kez başlatılan bir arka plan programı olarak çalışıyordu ve cron işi, XMLRPC üzerinden veriyi okurdu ki /dev/random
başlangıçta okumaya devam etmemesini sağladı .