Bunun bir gerçeği vardır, aslında efsaneden daha doğrudur, ancak yine de ifade, olup bitenler hakkında temel bir yanlış anlaşılmayı yansıtır. Evet, GPG ile bir anahtar üretirken fareyi hareket ettirmek iyi bir fikir olabilir. Evet, fareyi hareket ettirmek rastgele sayıları rastgele yapan bir entropiye katkıda bulunur. Hayır, fareyi hareket ettirmek anahtarı daha güvenli hale getirmez.
Kriptografi için uygun olan tüm iyi rastgele jeneratörler ve Linux'lar bu kategoride, iki bileşene sahiptir:
- Deterministik olmayan bir entropi kaynağı. Entropinin amacı, rastgele sayı üretecini öngörülemeyen verilerle önyüklemektir. Entropi kaynağı deterministik olmamalıdır: aksi takdirde, bir düşman aynı hesaplamayı yeniden üretebilir.
- Değişen bir iç durumdan belirleyici bir tarzda öngörülemeyen rasgele sayılar üreten bir sözde sayı üreteci .
Entropi, bilgisayarın dışındaki bir kaynaktan gelmek zorundadır. Kullanıcı entropi kaynağıdır. Kullanıcının yaptığı şey çoğunlukla rastgele değildir, ancak tuş vuruşlarının ve fare hareketlerinin ince zamanlaması biraz rastgele olacak kadar öngörülemez - çok rastgele değil, ama yavaş yavaş birikir. Diğer potansiyel entropi kaynakları arasında ağ paketlerinin zamanlaması ve kamera veya mikrofon beyaz gürültüsü bulunur. Farklı çekirdek sürümleri ve yapılandırmaları farklı kaynak kümeleri kullanabilir. Bazı bilgisayarlarda radyoaktif bozunmaya veya daha az etkileyici şekilde kararsız elektronik devrelere dayanan özel donanım RNG devreleri bulunur. Bu özel kaynaklar, özellikle garip şeyler yapmak için bir kullanıcı olmadan, ilk önyüklemelerinde oldukça öngörülebilir davranışlara sahip olabilecek gömülü cihazlarda ve sunucularda kullanışlıdır.
Linux, programlara iki cihaz aracılığıyla rasgele sayılar sağlar: /dev/random
ve/dev/urandom
. Her iki cihazdan okumak şifreleme kalitesini döndürür. Her iki cihaz da durumu dönüştürmek ve rastgele bayt üretmek için aynı dahili RNG durumunu ve aynı algoritmayı kullanır. Her ikisini de doğru olanı yapmayan tuhaf sınırlamaları vardır:
/dev/urandom
sistem henüz yeterli entropi biriktirmediyse, öngörülebilir verileri döndürebilir.
/dev/random
kullanılabilir entropi miktarını hesaplar ve yeterli değilse bloklar. Bu, kulağa hoş geliyor, ancak hesaplama, mevcut entropinin miktarını her çıkış bitiyle doğrusal olarak azaltan teorik hususlara dayanıyor. Böylece /dev/random
çok hızlı bir şekilde bloke olur.
Linux sistemleri dahili RNG durumunu diske kaydeder ve önyükleme sırasında geri yükler. Bu nedenle entropi bir bottan diğerine geçer. Bir Linux sisteminin entropiden yoksun olabileceği tek zaman yeni kurulmuş olmasıdır. Sistemde yeterli entropi olduğunda entropi azalmaz; sadece Linux'un kusurlu hesaplaması azalır. Bu düşüncenin daha fazla açıklaması için, okuma profesyonel bir kriptograf tarafından bir /dev/urandom
kriptografik anahtar oluşturmak için uygundur . Bkz . Aso Rastgele kullanılan entropi tahminini açıklayabilir misiniz . C.
Fareyi hareket ettirmek sisteme daha fazla entropi ekler. Ancak gpg sadece okuyabilir /dev/random
, değil/dev/urandom
(bu sorunu çözmenin bir yolu /dev/random
aynı 1: 9 cihazı yapmaktır /dev/urandom
), bu yüzden rastgele olmayan rastgele sayılar alma riski asla yoktur. Fareyi hareket ettirmezseniz, anahtar olabildiğince rasgele olur; ama ne başına gelebilecek gpg bloke alabilirsiniz olduğu bir okuma içinde /dev/random
yükselmeye çekirdeğin entropi sayacı bekliyor.