13Jul
Bilgisayarlar, kriptografiden video oyunlarına ve kumar oyuna kadar her şey için rasgele sayı üretir. Rasgele sayıların iki kategorisi vardır - "doğru" rasgele sayılar ve sahte rasgele sayılar - ve fark, şifreleme sistemlerinin güvenliği için önemlidir.
Bilgisayarlar, fare hareketleri veya fan gürültüsü gibi öngörülebilir olmayan bazı dış verileri gözlemleyerek ve veriler oluşturarak gerçekten rassal sayılar oluşturabilir. Buna entropi denir. Bazen, bir algoritma kullanarak "sahte rastgele" sayıları üretirler, böylece sonuçların rasgele görünmesine izin verilmemektedir.
Bu konunun geçenlerde daha tartışmalı hale geldiğini ve birçok insanın Intel'in dahili donanımsal rasgele sayı üreteci çipinin güvenilir olup olmadığını sorgulamasıyla birlikte. Neden güvenilir olmayabileceğini anlamak için öncelikle rastgele sayıların nasıl üretildiğini ve ne için kullanıldıklarını anlamanız gerekir.
için Hangi Rasgele Sayılar Kullanılır Binlerce yıldır rasgele sayılar kullanılmıştır. Bir madalyon çevirmek ya da zar atmak olsun, amaç, nihai sonucu rastgele şansa bırakmaktır. Bir bilgisayardaki rastgele sayı üreteci benzerdir - öngörülemeyen, rastgele bir sonuç elde etme girişimidir.
Rasgele sayı üreteci birçok farklı amaç için kullanışlıdır. Kumar amaçlı rasgele sayılar üretmek veya bir bilgisayar oyununda öngörülemeyen sonuçlar yaratmak gibi bariz uygulamalar dışında, kriptografi için rassallık önemlidir.
Kriptografi , saldırganların tahmin edemediği sayıları gerektirir. Aynı numaraları tekrar tekrar kullanamayız. Bu numaraları saldırganların tahmin edemeyeceği şekilde önceden tahmin edilemeyecek şekilde üretmek istiyoruz. Bu rastgele sayılar, kendi dosyalarınızı şifreleyip şifreleyip Internet üzerinde HTTPS web sitesini kullandığınızdan bağımsız olarak güvenli şifreleme için gereklidir.
Gerçek Rasgele Sayılar
Bir bilgisayarın gerçekten rastgele bir sayı üretebildiğini merak ediyor olabilirsiniz. Bu "rastgele" nereden geliyor. Bu sadece bir bilgisayar kodu parçasıysa, bilgisayarın ürettiği sayılar öngörülebilir mi mümkün değil mi?
Genellikle bilgisayarların ürettikleri rastgele sayıları, bunların nasıl üretildiğine bağlı olarak iki tür haline getiririz: "Gerçek" rastgele sayılar ve sahte rasgele sayılar.
"Gerçek" bir rasgele sayı üretmek için bilgisayar, bilgisayarın dışında gerçekleşen bazı fiziksel olayları ölçer.Örneğin, bilgisayar bir atomun radyoaktif bozunumunu ölçebilir. Kuantum teorisine göre, radyoaktif bozunumun ne zaman oluşacağını kesin olarak bilmenin hiçbir yolu yoktur, bu nedenle bu aslında evrendeki "saf rasgelelik" 'tir. Bir saldırgan radyoaktif bozunumun ne zaman oluşacağını tahmin edemez, bu yüzden rasgele değeri bilmiyorlardı.
Daha günlük örnek için bilgisayar atmosferik gürültüye güvenebilir veya öngörülemeyen veriler veya entropi kaynağı olarak klavyenizdeki tuşlara tam basışınızı kullanabilir.Örneğin, bilgisayarınız saat 02.00'den sonra 0.23423523 saniyede bir tuşa bastığınızın farkına varabilir. Bu tuş vuruşlarıyla ilişkili belirli zamanlardan yeterince kaptın ve "gerçek" bir rasgele üretmek için kullanabileceğiniz bir entropi kaynağına sahip olursunuz.numara. Tahmini bir makine değilsiniz, bu nedenle bir saldırgan bu tuşlara bastığınız anda onu tahmin edemez. Rasgele sayı üreten, rastgele sayılar üreten ve gerçekten rastgele bir sayı döndürmek için yeterli entropi toplayana kadar sonuç döndürmeyen /dev/ rasgele aygıt.
Sahte Rasgele Sayılar
Sahte rastgele numaralar, "gerçek" rastgele sayılara alternatiftir. Bir bilgisayar, rasgele görünen sayılar üretmek için bir tohum değeri ve bir algoritma kullanabilir, ancak bu aslında tahmin edilebilir. Bilgisayar ortamdan rastgele bir veri toplamaz.
Bu durum her durumda kötü bir şey değildir.Örneğin, bir video oyunu oynuyorsanız, o oyunda gerçekleşen olayların "gerçek" rastgele sayılar veya sahte rasgele sayılar tarafından gerçekleştirilip girilmediği önemli değil.Öte yandan, şifreleme kullanıyorsanız, bir saldırganın tahmin edebileceği sahte rasgele sayılar kullanmak istemezsiniz.
Örneğin, bir saldırganın bir sahte rasgele sayı üreticisinin kullandığı algoritmayı ve tohum değerini bildiğini varsayalım. Ve bir şifreleme algoritması bu algoritmadan bir sahte rasgele numara aldığını ve bunun herhangi bir ek rasgelelik eklemeden bir şifreleme anahtarı üretmek için kullandığını varsayalım. Bir saldırgan yeterince şey biliyorsa geriye doğru çalışabilir ve şifreleme algoritmasının bu durumda seçmesi gereken ve şifrelemeyi ihlal eden sahte rastgele numarayı belirleyebilir.
NSA ve Intel'in Donanım Rasgele Sayı Üreticisi
Geliştiricilere işleri kolaylaştırmak ve güvenli rasgele sayılar oluşturmalarına yardımcı olmak için Intel soketleri, RdRand olarak bilinen donanım tabanlı bir rasgele sayı üreteci içerir. Bu yonga, işlemcide bir entropi kaynağı kullanıyor ve yazılım onlara ne zaman talep ettiğinde yazılıma rasgele sayılar sağlıyor.
Sorun şu ki, rasgele sayı üretecinin aslında bir kara kutu olduğu ve içindeki rengin ne olduğunu bilmiyoruz. RdRand bir NSA arka kapı içeriyorsa, hükümet yalnızca o rasgele sayı üreticisinin verdiği şifreleme anahtarlarını kırabilir.
Bu ciddi bir endişe kaynağıdır. Aralık 2013'te FreeBSD geliştiricileri, RdRand'ı doğrudan bir rastgele kaynak olarak kullanmaya verdikleri desteği kaldırdıklarından güvenemezlerdi.[Kaynak] RdRand aygıtının çıkışı, ek entropi ekleyen başka bir algoritmaya beslenerek rasgele sayı üreticisindeki herhangi bir arka kapının önemsiz olmasını sağlar. Linux zaten bu şekilde çalıştı, RdRand'dan gelen rasgele verileri daha da rasgele seçerek bir arka kapı olsa bile öngörülebilir olmamasını sağladı.[Kaynak] Intel'in CEO'su Brian Krzanich Reddit hakkında yeni bir AMA'da( "Herhangi Bir Şey İsteyin") bu endişeler hakkındaki soruları cevaplamadı.[Kaynak]
Elbette, bu muhtemelen Intel yongalarıyla ilgili bir sorun değildir. FreeBSD geliştiricileri, Via'nın cipslerini ismiyle de çağırdılar. Bu tartışma, gerçekten rasgele sayıların üretilmesinin neden öngörülebilir olmadığının çok önemli olduğunu göstermektedir.
"Gerçek" rastgele sayılar üretmek için, rasgele sayı üreticileri çevrelerindeki fiziksel dünyadan "entropi" veya görünüşte rasgele veriler toplarlar. gerçekten rast gelmeyen rastgele sayılar için, rastgele olmak zorunda, sadece bir algoritma ve bir tohum değeri kullanabilir.
Resim Kredisi: rekre89 Flickr, Lisa Brewster Flickr, Ryan Somma Flickr, huangjiahui Flickr
üzerinde