Hash Algoritmaları

Hash algoritmaları, bilişim dünyasında veri bütünlüğünü sağlamak ve güvenliği artırmak için kullanılan temel araçlardan biridir. Bir hash algoritması, herhangi bir boyuttaki veriyi (metin, dosya, resim vb.) sabit boyuttaki benzersiz bir dizeye dönüştürür. Bu dize, genellikle sabit uzunlukta bir hexadecimal sayı dizisidir. Bu algoritmalar, verilerin değiştirilip değiştirilmediğini doğrulamak için kullanılır. Bir veri seti üzerinde yapılan değişiklikler, hash değerinde belirgin bir farklılık yaratacağından, doğru bir hash değeri varsa, verinin bütünlüğü sağlanmış olur.

 

Hash algoritmalarının önemli özelliklerinden biri, çarpışma direncidir. Çarpışma direnci, farklı girdilerin aynı hash değerine sahip olma olasılığının düşük olması demektir. İyi bir hash algoritması, çarpışmaların olasılığını en aza indirir. En yaygın kullanılan hash algoritmalarından biri MD5'dir. Ancak, MD5 artık güvenlik açısından yetersiz bulunur ve genellikle tercih edilmez. Bunun yerine SHA (Secure Hash Algorithm) ailesinden algoritmalar daha yaygın olarak kullanılır. SHA-1, SHA-22, SHA-256 ve SHA-512 gibi çeşitli uzunluklarda ve güvenlik seviyelerinde hash algoritmaları bulunmaktadır.

 

Hash algoritmaları, veri bütünlüğünü sağlamak, parola doğrulaması, dijital imzalar, veri tabanı yönetimi ve diğer birçok güvenlik uygulamasında yaygın olarak kullanılır. Ancak, güvenlik gereksinimleri sürekli olarak değiştiği için, güvenlik uzmanlarının ve yazılım geliştiricilerinin en güncel ve güvenli hash algoritmalarını kullanmaları önemlidir.

 

Hash Algoritmaların Özellikleri
  • Sabit uzunluğu bulunan değerler verir. MD5 Hash algoritmasından geçirirsek 16 byte’lık bir sonuç verir. SHA1 için ise 20 byte’tır.
  • Aynı olan işlemlerin hepsinin sonucu aynı olmalıdır. Yani 3+5=8 yapıyorsa MD5 ve SHA1 için bu işlemin sonucu her zaman aynı olması gerekir.
  • Hash algoritmaları tek yönlü algoritmalardır. Yani 3+5=8 ise 8’in nasıl elde edilebilir sorusu için var olan ihtimaller dikkate alınıp yorum yapılamaz.
  • Mantıksal çıkarım yapılamaz. Yani 0x00’ın MD5 değeri ile 0x01 değerinin MD5 değeri arasında kesinlikle mantıklı bir ilişki bulunmaz.

 

Şimdi bir örnekle hash algoritmasının yapısını anlatalım.

Elimizde bir data ile bunun yanında da 64 byte’lık initialized vektör bulunmaktadır. Bu 64 byte’lık vektörümüzü partitionun belli parçalarından itibaren devamlı olarak işleme sokulur. Bu parçaların büyüklüğünü hash değerini verecek olan program kendisi otomatik belirmektedir. Bu işlem partitionun tamamına yapılana kadar devam eder.

 

 

İşlemin sonunda elimizde 64 byte’lık bir veri kalır. İşte veriyi de tekrar 20 byte’lık bir vektör ile işleme sokarsak SHA1, 16 byte’lık bir vektör ile işleme sokarsak MD5 değerini elde etmiş oluruz.

 

CRC HASH ALGORİTMASI

Hash algoritmasının farklı bir versiyonudur ve Encase programı bu versiyonu kullanarak bize hash değerlerini verir. CRC’ininde 16 bit ve 22 bit olmak üzere iki çeşidi vardır. Partitionun her 64 sektöründe bir CRC kontrolü yapılır ve bu standarttır. Yapılan işlemden sonra MD5/SHA1 değeri bir txt dosyası olarak imajın en sonuna atılır.

 

 

MD5 Değeri Nedir?

MD5 herhangi bir dosyanın bütünlüğünün tam olup olmadığını kontrol etmek için kullanılan bir dizi harf ve sayı kombinasyonudur. Elinizdeki orijinal dosyanın bir MD5 değeri vardır. Bu değer çeşitli üçüncü parti yazılımlarla hesaplanır. Her dosyanın farklı Hash değerleri olduğu gibi bunlar dosyanın bir nevi DNA'sı gibidir.

 

Elinizdeki dosyanın kopyalarının orijinali ile aynı olup olmadığını, bozulmaya uğrayıp uğramadığını ya da taşıma esnasında herhangi bir kayıp olup olmadığını kontrol etmek için hem orijinal hem de kopya dosyanın MD5 değerleri hesaplatılarak karşılaştırılır. Birebir aynı ise sorunsuz kopyalanmış, taşınmış ya da indirilmiştir. MD5 değerlerinde farklılık varsa dosya bütünlüğü bozulduğu için çalışmama ya da veri eksikliği oluşmuş sonucuna varılır.

 

SHA1 Şifreleme Metodu

Secure Hashing Algorithm olarak adlandırılan, şifreleme algoritmaları içerisinde en yaygın olarak kullanılan algoritma olduğu kabul gören SHA1, United States National Security Agency tarafından tasarlanmıştır. “Hash” fonksiyonlarına dayalı veri tabanı yönetimine (database management) imkan sağlar.

 

Hash Özellikleri

  • SHA1 algoritması ile sadece şifreleme işlemi yapılır, şifre çözümleme işlemi yapılamaz.
  • Diğer SHA algoritmaları içerisinde en yaygın olarak kullanılan SHA1 algoritmasıdır.
  • SHA1 algoritması ile 160 bitlik özetler oluşturulur. MD5 ve SHA1 arasındaki temel fark oluşturdukları özetlerdeki boyut farkıdır.
  • SHA1 algoritması, e-posta şifreleme uygulamaları, güvenli uzaktan erişim uygulamaları, özel bilgisayar ağları ve daha bir çok alanda kullanılabilir.
  • Günümüzde güvenliği arttırmak amacıyla SHA1 ve MD5 algoritmaları birbiri ardına kullanılarak veriler şifrelenir.
  • İmaj alma (adli kopya) işleminde MD5 ve SHA1 değerlerinin elde edilmesi önemlidir. İmaj kopyasında herhangi bir değişiklik yapılıp yapılmadığı bu değerlerin kontrolü ile anlaşılır. Disk üzerindeki en ufak değişiklikte (yazma-kopyalama gibi) bu değerler otomatik olarak değişir. İmaj alma tutanaklarında hash değerlerine mutlaka yer verilmelidir. Bu değerlerin temel dayanak olduğu unutulmamalıdır.

Paylaş: