Veri yapıları ile ilgili olan Hashing, hashing algoritmaları sayesinde verileri şifrelemek için kullanılır. Böylece güvenlik, maksimum seviyelere çıkartılır. Kripto paralar için de önemli olup, coin kazan madenciler de bu algoritmalardan yararlanır. Dolayısıyla oldukça önemli bir yapıya sahiptir.
Bir hash fonksiyonu algoritma ya da alt program olup, veri kümelerini haritalamak için kullanılır. Buradan geri dönen değerler,
- Hash değeri,
- Hash kodu,
- Hash toplamları,
- Kontrol toplamları,
Şeklinde adlandırılır. Kullanım amaçları ise şöyledir;
- Büyük bir dosyada benzer, aynı isimleri tespit etme
- DNA dizisinde benzer dizilimleri tespit etme
- Veri karşılaştırmasını hızlandırma
- Aranan verileri daha hızlı bulma
Dolayısıyla sadece kripto paralarda değil, farklı alanlarda da kullanımı olan bir sitemdir.
Hashing Fonksiyonu Neden Önemli?
Hash fonksiyonları, kullanıldıkları her alanda büyük bir öneme sahiptir. Örnek olarak kripto para birimlerinde madenciliğin bir parçasıdır. Böylece yeni anahtarların meydana getirilmesini, oluşturulmasını sağlar.
Her ne kadar küçük bilgilere yönelik kullanılabilecek olsa da, asıl önemi bu oran büyüdükçe ortaya çıkar. Örneğin büyük bir dosya içerisinde doğruluk ve bütünlük kontrolleri yapmak oldukça zor ve zaman alan bir işlemdir. Ancak hashing kullanılması durumunda bu süreç hem hızlı, hem de kolay bir şekilde tamamlanabilir.
Şifreli Hash Fonksiyonları
Bir hashing algoritması kriptografik teknikler içerebilir. Her ne kadar günümüzde teknolojinin gelişmesi sistemlerin kırılmasını mümkün hale getirse de, hash fonksiyonları bu duruma karşı daha dayanıklı bir yapıya sahiptir.
Zira kişi, girdiği öğrenebilmek için tahmin yöntemini, yani deneme-yanılmayı kullanır. Ancak her hash fonksiyonu da güvenli olarak kabul görmez. Bunun için temel olarak üç özelliği taşıması gerekir. Bunlar şöyledir;
- Çakışmaya dayanıklılık: Farklı fonksiyonlar aynı hashing çıktısını vermemelidir.
- Ters görüntüye dayanıklılık: Hash fonksiyonu geri döndürülemez olmamalıdır.
- İkincil ters görüntüye dayanıklılık: Hash fonksiyonu, bir girdi ile çakışan girdiye sahip olmamalıdır.
Eğer bu üçü de sağlanıyorsa, ilgili fonksiyon güvenli olarak kabul edilir.
Hashing Algoritması Nasıl Çalışır?
Hash algoritmasının kalbinde yer alan bu fonksiyonları önceden tanımlanmış bir uzunluktaki karma değerini elde etmek için, girdi verilerini sabit boyutlu bloklara bölmek gerekir. Zira bir karma işlevi verileri sabit uzunlukta alır. Ayrıca bu bloklar, veri blokları olarak da bilinir.
Boyutlar arttıkça, hash fonksiyonu da daha fazla çalışır. Örnek olarak 1024 bitlik bir mesajda, işlev iki kere kullanılır. 512 bitte ise iki farklı bloğa bölünmesi yapılır. Ayrıca bu durumda bir kere çalıştırılır. Bu algoritmalara aynı zamanda özetleme adı da verilir. Bunun sebebi, orijinal verinin daha da küçültülmesidir.
Hashing One Way Function şeklinde çalışmakla beraber, açık veri elde edilmesi durumu bulunmaz. Dolayısıyla tersine işlem yapmak, çözülmesine sebep olmaz. Bununla beraber teknolojinin geliştiği günümüzde, saldırı yöntemleri de sürekli ilerlemektedir. Bu sebeple MD5 gibi seçenekler daha zayıf kalabilir.
Dolayısıyla SHA gibi seçenekler daha güçlüdür.
En Çok Kullanılan Hashing Algoritmaları Nelerdir?
Hashing içerisinde çok sayıda algoritma bulunur. Ancak hash algoritmaları arasında en çok kullanılan bazı seçenekler de vardır. Bunlar şu şekildedir;
- MD: Mesaj özeti olan bu seçenek, kriptografik karma işlevler arasındadır. Simetrik anahtarlar kullanılmakta olup, sık bir şekilde kullanılır.
- Whirlpool: Hash işlevlerinden bir tanesi olan Whirlpool, AES ile benzer bir blok şifrelemesi bulundurur.
- Rivest-Shamir-Adleman: RSA olarak da bilinen bu işlev, günümüzde kullanılan fonksiyonlar arasındadır. Özel ve genel olmak üzere iki anahtar kullanılmakta olup şifreleme süreci genel anahtar ile sağlanır. Çözülmesinde ise özel kullanılır.
- RACE Integrity Primitives Evaluation Message Digest: RIPEMD olarak da bilinen bu fonksiyon, başlangıç döneminde 1992 AB projesi çerçevesinde bulunmuştur. Tasarımı bu zamanda MD4 karmaya dayanmakta olup, güvenliğine dair zayıflıklara yönelik 1996’da güncellenmiştir.
- Secure Hash Algorithm: SHA olarak da bilinen işlev, verilerin güvenliğini sağlamaya yönelik tasarlanmıştır.
Bununla beraber farklı algoritmalar da söz konusudur.
Hashing Nerelerde Kullanılabilir?
Hashing kullanmak için kısıtlama bulunmaz. Örnek vermek gerekirse telif haklarında bile yararlanmak mümkündür. Bir kitap yazmışsanız ve bunu yayın öncesinde telif haklarını muhafaza eden firmalara hash ile yollarsanız, buna ilgili firma dahi bakamaz; ancak bir kişi sizden kitabı çalarsa hash fonksiyonlarını karşılaştırarak, sizin bunu kayıt altına aldığınızı görebilir.
YouTube da kendi içerisinde bu fonksiyonları kullanılır. Zira özellikle oyun videoları, 7-8 saat gibi muazzam bir süreye sahiptir. Bu durum orijinallik kontrollerinin çok fazla uzamasına sebep olur. Bu noktada platform bu hashing algorithm sisteminden yararlanarak, ne kadar özgün olduğuna karar verir. Bazı internet siteleri de kullanıcı adı ve şifre ile giriş yaparken bu işlevden yararlanır.
Örneğin bir siteye üye olduğunuzda, şifreniz hash fonksiyonu kullanılarak ilgili veritabanına girilir. Ardından kullanıcı giriş yapmak isterse, veritabanından hash kodu çağrılarak, üyenin yazdığı ile karşılaştırır. Eğer uyuşma varsa girmesine izin verilir.
Ancak problem varsa şifrenin hatalı olduğuna dair uyarı gelir.
Hashing Kırılabilir Mi?
Teknolojinin ilerlemesinin günümüzde sayılamayacak kadar çok avantajlı yanı vardır. Ne var ki bu durum, dijital ortamlardan yapılan saldırıların da aynı şekilde güçlenmesine sebep olur. Bu sebeple güvenlik önlemleri de her yıl yükseltilir.
Dolaysıyla bazı kullanıcılar, hashing sisteminin kırılıp, kırılamayacağını da merak eder. Burada belirttiğimiz üzere MD5 daha zayıf olduğu için, kırılması daha mümkün olabilir. Ancak SHA gibi güçlü seçenekler daha dayanıklıdır.
Örneğin şifrenizde MD5 kullanılmışsa, uzun bir uğraş bile olsa saldıran taraf bunu kırabilir. Ancak gerek şifrenin, gerekse fonksiyonun güçlü olması bu süreci yıllarca uğraşacak hale getirebilir.