Karma Değer
Genel şifrelemede kullanılan anahtar, bir karma değere dayanır. Bu, bir karma algoritma kullanan bir temel giriş numarasından üretilen bir değerdir. Karma değeri hakkında bilmeniz gereken en önemli şey, orijinal girdi numarasının, karma değeri oluşturmak için kullanılan verileri bilmeden ortaya çıkmasının neredeyse imkansız olmasıdır.
İşte karma işleyişin bir örneği:
Giriş Numarası: 365,258
Karma Algoritması: Giriş # x 124
Karma Değer: 45, 291, 992
Karma algoritması
Bir karma algoritma, rastgele boyuttaki verileri belirli bir boyuttaki bir kareye eşleyen bir şifreleme karma işlevidir. Tersine çevirmek imkansız olan tek yönlü bir fonksiyon olarak tasarlanmasına rağmen, zamanla birçok karma algoritma ele geçirilmiştir.
Kriptografik karmalar çoğunlukla dijital imzalar, parola depolama, dosya doğrulama sistemleri, ileti kimlik doğrulama kodları ve diğer kimlik doğrulama türleri için BT’de kullanılır.
Ayrıca, parmak izleri, dosyaların tanımlanması veya kopyaların tespit edilmesi için karma tablolardaki verilerin indekslenmesi için de kullanılabilirler. Temel fikir, bir girişi alan ve her defasında sabit uzunlukta bir dizi oluşturan deterministik bir algoritma kullanmaktır. Sonuç olarak, aynı giriş her zaman aynı çıktıyı verecektir.
Karma algoritmalarla ilgili bir sorun, çarpışmaların kesinliğidir. Bunun nedeni, karmaların sabit uzunlukta bir dizgiyi temsil etmesidir, yani akla gelebilecek her girdi için aynı karmayı üretebilecek başka olası girişler vardır.
Bir saldırgan, talep üzerine çarpışmalar oluşturmayı başarırsa, kötü amaçlı dosyaları veya verileri doğru kargaşaya sahip olarak geçirip meşru olarak geçirebilir. İyi bir karma işlevi, saldırganların aynı değere sahip olan girdileri üretmesi için işleri çok zorlaştırmalıdır.
Bilgisayarların korsanların yapay olarak çarpışmaları hesaplamasını kolaylaştıracak şekilde çok verimli olmamalıdır. Karma algoritmalar, “görüntü öncesi saldırılara” karşı dirençli olmalıdır. Özellikle, hash üreten değeri çoğaltmak için alınan deterministik adımların retracing hesaplamak son derece zordur.
İdeal bir şifreleme karma işlevi aşağıdaki kriterleri karşılamalıdır:
- Her türlü veri için hızlı değeri hesaplayabilmelidir.
- onun hash değeri, ondan bir mesajın yenilenmesini imkansız kılmalıdır (tek seçenek olarak kaba kuvvet saldırısı)
- karma çarpışmalara izin vermemeli; her mesajın kendi karması olmalıdır.
- Bir mesaja yapılan her değişiklik, hash değerini değiştirmelidir. Her türlü değişiklik, tamamen farklı bir karmaşa neden olmalıdır. Bu fenomenin çığ etkisi denir.
Popüler hashing algoritmaları
MD5
MD5 , etkisiz hale gelene kadar yaygın olarak kullanılan en iyi karma algoritmalardan biridir. Kapsamlı güvenlik açığı nedeniyle, tehlikeye atıldı. MD5’te, yine de aynı karmayı üretirken zararlı bir kod ekleyerek bir belgeyi işlemek oldukça kolaydır. Onun popülaritesi onun ölümünden sorumluydu. Çok kullanıldı, şimdi sadece Google’ı kullanarak çatlatabilirsiniz.
CMU Yazılım Mühendisliği Enstitüsü, MD5’i “kriptografik olarak kırılmış ve daha fazla kullanım için uygun olmayan” olarak görmektedir . Uzun yıllar kullanıldı, ancak şimdi ana kullanımı, istenmeyen yolsuzluğa karşı verileri doğrulamaktan ibarettir.
SHA-aile
Güvenli Hash Algoritması , NSA tarafından geliştirilen bir kriptografik karma işlevidir. İlk algoritmaları, SHA-0 (1993’te piyasaya sürüldü) yıllar önce ele geçirildi. SHA-1 (1995) bir 160 bit (20 bayt) karma çıkışı üretir. SHA-1 , karma değerini yalnızca 40 basamak uzunluğunda onaltılık bir sayıya çıkararak MD5’i geliştirdi. Algoritma, 2005 yılında teorik çarpışmalar keşfedildiği için ele geçirilmişti, ancak tam düşüşü birçok organizasyonun yerini değiştirmeye başladığında 2010 yılında gerçekleşti.
Kullanımdaki en güvenli sürüm şu anda SHA-2’dir . SHA-2 birçok önemli değişiklik içermektedir. Ailesinin altı hash fonksiyonu vardır: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
2006 yılında, Ulusal Standartlar ve Teknoloji Enstitüsü (NIST), SHA-2’nin daha sonra standart olarak uygulanacak tamamen farklı bir yerini bulmak için bir yarışma başlattı. SHA-3 KECCAK (telaffuz keç-ak) olarak bilinen karıştırma algoritmalarından bir ailesinin bir parçasıdır.
Benzer bir ismi paylaşmasına rağmen, SHA-3, sünger yapısı olarak bilinen bir mekanizma aracılığıyla iç kısımlarında farklıdır; bu da veriyi emmek ve çıkarmak için rastlantısal permütasyonlardan yararlanırken, karma algoritmaya entegre edilen gelecekteki girişler olarak işlev görür.
Absorbe edilirken, mesaj blokları bir durum alt kümesine XORed edilir, daha sonra tek bir öğeye dönüştürülür, ancak durum değişimleri ile dönüşümlüdür. SHA-3, önceki algoritmaların sınırlamalarının üstesinden gelmeye izin verir. 2015 yılında bir standart haline geldi.
Blockchain’de hash
Bir karma algoritmayı blok zincir protokollerine entegre etmeye geldiğinde, Bitcoin SHA256’yıkullanırken , Ethereum iş algoritmasının kanıtı için değiştirilmiş bir SHA-3 varyantı (KECCAK256) kullanmıştır.
Bitcoin SHA256 uygulaması, Uygulamaya Özel Entegre Devreler (veya ASIC’ler) kullanılarak büyük verimlilikle hesaplanabilir. Çalışma Kanıtı, makineleri bir havuzda bir araya getirecek ve bir makinenin bir zaman aralığında hesaplayabileceği karma sayısının bir ölçüsü olan “hash gücü” olarak adlandırılan şeyi arttırmaya teşvik eder.
Protokolde algoritmanın iki yinelemesini çalıştırarak SHA256 ile Bitcoin hashes verileri. Uzunluk uzatma saldırısının neden olduğu zararları azaltmak için bir çift SHA256 kullanılır.
Bu tür bir saldırı, hash değerine gizli bir dize ekleyerek dahili durumunun belirli bir bölümünü başlatmak için karma işlevini kandırmak için kullanılabilecek bir karma girdinin uzunluğunu öğrenen kötü niyetli aktörleri içerir.
Ethereum, KECCAK256 olarak bilinen modifiye edilmiş bir SHA-3’ü kullanır. Ek olarak, Ethereum’un iş algoritması kanıtı olan Hançer-Hashimoto , donanımı hesaplamak için hafızası zordu.
Sonuç
Tarihin bize gösterdiği gibi, karma algoritmalar sürekli olarak evrimleşir ve yenileriyle değiştirilir, çünkü eskilerin saldırılara ve usta korsanlara karşı etkisiz olduğu kanıtlanmıştır.