Rastgele Numaralar – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Rastgele Numaralar
Rastgele sayılar kriptografide çok önemlidir. Kriptografik anahtarlar oluşturmak ve bazı durumlarda verileri şifrelemek veya imzalamak için kullanılırlar. Rastgele bir sayı, değeri tahmin edilemeyen bir sayıdır. Rastgele sayı üreteci (RNG), rasgele sayılar üreten bir cihazdır.
İnsanların rasgele sayılar üretmesi oldukça kolaydır. Bir çift zar veya bir iskambil destesi ile oturabilir ve istediğiniz kadar rasgele sayı üretebilirsiniz. Bir bilgisayarı rasgele sayılar üretmeye ikna etmek çok daha zordur. Bilgisayarlar metodik ve deterministik olacak şekilde tasarlanmıştır.
Bazı bilgisayarlar, kararsız bir elektronik devreyi veya radyoaktif bozulmayı veya başka bir rasgele işlemi ölçerek rasgele sayılar üretmek için özel donanım kullanabilir. Ancak çoğumuzda bu tür bir donanım yok. Ayrıca, bu tür çözümler genellikle platforma özgüdür ve bu Java programcıları için iyi değildir.
At nalı ve el bombalarında olduğu gibi, “yakın” yeterince iyi olmalıdır. Bu nedenle bilgisayarlar, “rastgele” veri kaynağı olarak bir sözde rasgele sayı üreteci (PRNG) kullanır. Bir PRNG, görünüşte rasgele sayılardan oluşan sonsuz bir dizi oluşturmak için bir algoritma kullanır. PRNG’nin geçmiş veya gelecekteki çıktısını belirlemeyi zorlaştırmak için genellikle yinelemeli olarak bir mesaj özet işlevi kullanılır. PRNG, gerçekten rastgele küçük bir veri kümesi kullanılarak başlatılır veya tohumlanır.
Çalışması gereken yol bu. Kriptografiye aşina olmayan programcılar genellikle PRNG’yi sistem saatinin mevcut değeriyle besler. Aynı PRNG’ye erişimi olan herkes aynı seed’i kullanabilir, bu da onların anahtarlar ve oluşturulmuş diğer rasgele veriler hakkında iyi tahminler yapmalarını sağlar.
Örneğin, Marian’ın sistem saati ile çekirdeklenmiş bir PRNG kullanarak bir anahtar çifti oluşturduğunu varsayalım. Nottingham Şerifi, Marian’ın anahtar çiftini yaklaşık olarak ne zaman oluşturduğunu biliyorsa, PRNG için başlangıç değerini kolayca tahmin edebilir. Daha sonra aynı anahtar çiftini üretebilir ve Marian’a her türlü belaya neden olabilir.
Marian’ın anahtar çiftini tam olarak ne zaman oluşturduğunu bilmese bile, sadece yaklaşık bir süreyi bilmek hayatını çok daha kolaylaştırır. Marian’ın ürettiği aynı anahtar çiftini üretmeyi başarana kadar, tüm tohum değerleri aralığını deneyecek bir program yazabilir.
İyi tohumlar, radyoaktif bozunma veya kararsız bir elektronik devre gibi gerçekten rastgele süreçlerden gelir. Bazı bilgisayarlar bağlantısı kesilmiş bir ses girişinden gelen girişi rastgele veri olarak kullanır. En iyi rasgele veri üretimi, büyük ölçüde belirli donanıma bağlıdır. Bu tür çözümlerin platformdan bağımsız Java’da uygulanması zordur.
Algoritmalar
Bu bölümde, anahtar boyutunun güvenlik üzerindeki etkisinden kısaca bahsedeceğim. Sonra bu kitapta kullanılacak algoritmaları tanıtacağız. Anahtar boyutu, imzaların ve şifrelerin güvenliğini etkiler. Genel olarak, anahtar ne kadar uzunsa, bir saldırganın şifreli metninizin şifresini çözmesi veya sahte bir imza oluşturması o kadar zor olacaktır.
Temel olarak, daha uzun tuşların daha olası değerleri vardır. Saldırganınız doğru anahtarı bulmak için mümkün olan her anahtarı deniyorsa (kaba kuvvet saldırısı), daha uzun bir anahtar saldırgana daha fazla iş sağlar.
Ancak, anahtar boyutunun hikayenin yalnızca bir parçası olduğunu unutmayın. Algoritmanın kendisi zayıfsa, uzun bir anahtar size pek fayda sağlamaz. Asimetrik şifreler ve imzalar değişken bir anahtar boyutuna sahiptir. Uygun bir anahtar uzunluğu seçmek uygulamanıza veya kullanıcılarınıza bağlıdır.
Daha uzun anahtarlar daha güvenli olsalar da daha yavaştırlar. Doğru anahtar boyutunu seçmek, rahat bir güvenlik düzeyi bulmakla uygulamanızın çok yavaş çalışmasını sağlamak arasında bir tercihtir. Simetrik şifreler, sabit veya değişken bir anahtar uzunluğuna sahip olabilir; algoritmaya bağlıdır.
Java rastgele sayı üretme
Tekrarsız rastgele sayı üretme Java
Java. Random Sayı Tahmin Oyunu
Java rastgele harf üretme
Java iki sayı arasında Random
Java Math random
Java Random sayı
Java dizi tanımlama
İsimler ve Numaralar
Bu kitapta kullanacağım algoritmaları özetliyor. ElGamal imza ve şifre algoritmalarını uygulayacağız. Diğer tüm algoritmalar, SunTM tarafından sağlanan yazılımın bir parçası olarak uygulanmıştır.
Bir algoritma seçmek zor bir iştir. Başvurunuz için yeterince güvenli olan ve aynı zamanda lisanslama sorunlarını, patent kısıtlamalarını ve ülkelerin ithalat ve ihracat yasalarını dikkate alan bir şey seçmeniz gerekir.
DSA dışında, tüm algoritmalar lisanslama ve patent kısıtlamalarından muaftır. Şifreleme ve anahtar değiş tokuş algoritmaları dışında, ABD’den de serbestçe ihraç edilebilirler.
MD5 mesaj özet algoritması, 1991 yılında Ronald Rivest (RSA Data Security, Inc.’deki R) tarafından geliştirilmiştir. Daha eski bir algoritma olan MD4’ün güncellenmiş bir versiyonudur.
t, 128 bitlik bir mesaj özet değeri üretir. MD5’in, normalde bir saldırganın aynı özete sahip iki ileti bulmasını engelleyen çarpışma direncinde bazı zayıflıklar olduğu yakın zamanda keşfedildi. Yeni uygulamalar için bunun yerine SHA-1 (veya başka bir şey) kullanın.
SHA-1, Güvenli Karma Algoritma anlamına gelir. NIST (Ulusal Standartlar ve Teknoloji Enstitüsü) tarafından NSA ile birlikte geliştirilmiştir. MD5 gibi, SHA-1 de MD4’ü temel alır. Ancak SHA-1’de yapılan değişiklikler, MD5’te yapılan değişikliklerden oldukça farklıdır.
Ayrıca SHA-1, saldırı direncini artıran 160 bit uzunluğunda bir mesaj özet değeri üretir. Bu algoritmaya genellikle SHA dendiğini unutmayın. Artık kullanılmayan bir SHA-0 vardı. SHA ve SHA-1 artık aynı şeyi ifade etmek için kullanılıyor.
HmacMD5 ve HmacSHA1, bilinen mesaj özet algoritmaları MD5 ve SHA-1’e dayanan iki MAC algoritmasıdır. Bu algoritmalarla kullanılan anahtar, en az mesaj özetinin çıktısı kadar uzun olmalıdır: HmacMD5 için 16 baytlık bir anahtar ve HmacSHA1 için 20 baytlık bir anahtar kullanın.
DSA, Dijital İmza Algoritması anlamına gelir. NSA tarafından geliştirilmiş ve NIST tarafından standart olarak yayınlanmıştır. Aslında DSA ve SHA-1’in bir kombinasyonudur. 512 ile 1024 bit arasında herhangi bir anahtar boyutunu 64 bitlik artışlarla kullanabilirsiniz. İmza boyutu, anahtar boyutuna bağlıdır.
ElGamal imza algoritması herhangi bir anahtar boyutunu kullanabilir. İçinde, size ElGamal imza algoritmasını nasıl uygulayacağınızı göstereceğim. Ben bu çalışmayı yazarken ElGamal patentsiz hale geldi. DSA’da olduğu gibi, imzanın boyutu anahtar boyutuna bağlıdır.
DES, Veri Şifreleme Standardı anlamına gelir. İlk olarak 1975’te yayınlanan ve büyük ölçüde IBM’de gerçekleştirilen araştırmaya dayanan simetrik bir şifredir. Algoritmada Ulusal Güvenlik Teşkilatının (NSA) da parmağı vardı, ancak katılımı ve saikleri hâlâ tartışma konusu.
Her halükarda DES, 20 yılı aşkın yoğun kriptanalitik incelemeye dayanmıştır. En zayıf yanı, onu anahtar arama saldırılarına karşı savunmasız kılan 56 bitlik anahtar boyutudur (8 baytta depolanır). NSA’nın DES şifreli metnini birkaç dakika içinde kıracak makinelere sahip olduğu söyleniyor ama tabii ki NSA dışında kimse kesin olarak bilmiyor ve onlar da konuşmuyor.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)