Hash Algoritmaları ve SHA-256

İnternette yaptığımız birçok işlem için şifre giriyoruz. Bu şifreler veri tabanlarında nasıl saklanıyor hiç merak ettiniz mi? Peki sizce bu şifrelerin kırılması mümkün mü? Bu soruların cevapları için bu içeriğimizde hash fonksiyonlarını, kriptografik hash fonksiyonlarını ve geçtiğimiz günlerde Yemeksepeti’nden verilerin çalınmasıyla adını duyduğumuz SHA-256 şifreleme algoritmalarını inceledik.

İyi okumalar!

Hash Fonksiyonları Nedir?

Hashing, farklı büyüklükteki girdilerden sabit büyüklükte bir çıktı meydana getirmektir. Bu işlem, hash fonksiyonları olarak bilinen matematiksel formüllerin kullanımıyla yapılır.

Hash fonksiyonları, büyük miktarlarda bilgiyle çalışılması gerektiğinde kullanılır. Örneğin; büyük bir dosya ya da veri setini hash fonksiyonu ile çalıştırabilir ve daha sonra bu fonksiyonun çıktısını kullanarak verinin doğruluğunu ve bütünlüğünü hızla test edebiliriz. Hash fonksiyonu sayesinde girdi her zaman basitleştirilmiş, yoğunlaştırılmış bir çıktı (hash) yaratır. Böylesi bir teknik, büyük boyutlarda verilerin hatırlanması ve kaydedilmesi zorunluluğunu ortadan kaldırır.

Hash fonksiyonlarının diğer bir özelliği ise tek yönlü algoritmalar olmalarıdır. Yani çok büyük miktarlarda hesaplama süresi ve kaynak harcanmadan tersine çevrilemez. Genel olarak girdiyi bulmak ne kadar zorsa, hashing algoritmasının da o kadar güvenli olduğu kabul edilir. Hash fonksiyonunda girdideki küçük bir değişiklik çıktıda büyük farklılıklara neden olur.

Kriptografik Hash Fonksiyonları

Kriptografik hash fonksiyonları, şifreleme yöntemlerini içeren hash fonksiyonu olarak tanımlanabilir. Hash fonksiyonunun kriptografik amaçlarla kullanılabilmesi için bazı özelliklere sahip olması gerekir. Bunlar:

  • Çakışmaya Dayanıklılık: Farklı iki girdinin aynı çıktıyı üretmemesi gerekir. Örneğin, k1 ve k2 iki farklı girdi olsun. k1’in ve k2’nin çıktılarının farklı olması gerekir. Eğer aynı olursa bu duruma çakışma durumu denir. Girdilerin sayısının çıktılardan fazla olmasından dolayı elbette farklı girdilerin aynı çıktıyı verdiği durumlar olacaktır. %100 çakışmaya dayanıklı hash fonksiyonu bulunmasa da bazı hash fonksiyonlarında çakışma ihtimali çok düşük olduğundan bu fonksiyonlar çakışmaya dayanıklı kabul edilir.
  • Ters Görüntüye Dayanıklılık: Fonksiyon tek yönlü olmalıdır. Yani, hash fonksiyonunun çıktısı bilindiği takdirde fonksiyonun içindeki girdiyi yani mesajı hesaplamak mümkün olmamalıdır.
  • İkincil Ters Görüntüye Dayanıklılık: Bilinen bir girdiyle çakışan bir başka girdinin bulunmaması gerekir. Örneğin, m1 ve m2 iki farklı girdi olsun ve aynı çıktıyı versinler. m1’i bildiğimiz takdirde aynı çıktıyı veren m2’yi bulamamamız gerekir.

En bilinen kriptografik hash fonksiyonu aileleri SHA ve MD aileleridir. Bu ailelerden MD5 ve SHA-1 fonksiyonları günümüzde çakışmaya dayanıklılık özelliğini yeterince sağlamadığından güvensiz kabul edilmektedir. SHA-1, 128 bit yani 32 karakterlik çıktı üreten bir algoritmadır.

SHA-256 Nedir?

Geçtiğimiz günlerde Yemeksepeti’nden verilerin çalınmasıyla da adını duyduğumuz SHA-256 şifreleme algoritmalarını gelin yakından inceleyelim. SHA-256, açılımıyla Secure Hash Algorithm, Türkçesiyle Güvenli Hash Algoritması’dır. SHA Algoritmaları ABD Ulusal Güvenlik Ajansı tarafından geliştirilmiştir. SHA-256 aslında bir hash algoritmasıdır. Bu algoritmada 256 sayısının sırrı algoritmanın şifreniz hangi boyutta olursa olsun 64 karakterli 256 bit boyutuna getirmesidir.

SHA-256 Nasıl Çalışır?

SHA-256’nın açılımını öğrendiğimize göre şimdi de nasıl çalıştığına bakalım. SHA-256 bir hash algoritması olduğundan hash algoritması sisteminde çalışır. Hash algoritmalarının çalışma mantığını yukarıda görmüştük. En iyisi gelin biz birkaç örnekle nasıl çalıştığına bakalım.

SHA-256 Algoritması şifremiz ne olursa olsun, hangi boyutta olursa olsun 64 karakterli bir şekle dönüştürür. Şifremizi Matematik yaparsak bu algoritma şifremizi

def695f604f3f62430ffe529b487c6d40d2faf6a217687764fd95bd94eb994cc

şekline çevirir. Biz Matematik şifresinin güvenli olmadığını düşündük ve şifremizi MatematikEnSevdigimDers3141592 (MMMT şifresi değildir arkadaşlar lütfen sosyal medya hesaplarımıza girmeye çalışmayalım) yaparsak SHA-256 bu şifreyi

12b9222770db2086afcaddaf801f72cd489605cc49ed8eb66ae88237b02b08fb

şekline değiştirir. Görüldüğü üzere istediğiniz uzunlukta, istediğiniz şekilde şifre oluşturabilirsiniz fakat algoritma 64 karaktere dönüştürür.

SHA-256 Güvenli mi ?

Şu anda aklınızdan ‘’İyi güzel de o zaman bu siteler bizden niye belli uzunlukta, büyük küçük karakterli şifreler oluşturmamızı istiyor zaten algoritma 64 karaktere çevirmiyor mu?’’ sorusu geçiyor. Bu sorunuza cevap vermek için SHA-256 algoritmalarıyla gizlenen şifreler kırılabilir mi? sorusuna cevap verelim.

SHA-256 algoritması çok güçlü bir algoritmadır ve günümüzde kırılması çok güçtür. Fakat internette çok yaygın kullanılan şifrelerin SHA-256 kodunu bulabilirsiniz. Örneğin şifrenizi çok yaygın kullanılan bir şifre olarak seçerseniz SHA-256 kodunu Google’da aratırsanız şifrenizi bulabilirsiniz. Daha detaylı örnek vermek gerekirse şifrenizi 123456 yaparsanız SHA-256 kodu

8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

olur ve bu kodu Google’da aratırsanız karşılığının 123456 olduğunu göreceksiniz. Bu nedenle şifrelerimizi kendimize özgün ve güvenilir seçmemiz güvenli olur.

SHA-256 algoritması aynı zamanda günümüzde popüler olan Bitcoin ve diğer kripto paralarda da kullanılmaktadır. Bitcoin madenciliği, tamamen belirli yapıdaki girdinin iki kere SHA256 işlemine tabi tutulmasına dayanmaktadır.

MMMT olarak bu içeriğimizde adını sıkça duyduğumuz Hash fonksiyonlarını ve en bilinen Hash fonksiyonlarından birisi olan SHA-256'yı inceledik.

Yorumlarınızı sosyal medya hesaplarımızdan bizlerle paylaşmayı unutmayın!

Instagram: @mekupte

LinkedIn: @MEKUPTE

Twitter: @mekupte

Yazımıza atıfta bulunmak için aşağıdaki gibi APA formatını kullanabilirsiniz:

MMMT. (2021, Temmuz 12). Hash Algoritmaları ve SHA-256. -erişim tarihi- tarihinde, https://mmmt-digital.medium.com/hash-algoritmalar%C4%B1-ve-sha-256-c0eb60fb21ee adresinden erişildi.

Referanslar

[1] Britannica(2016, Ağustos 17). Cryptology. 10 Nisan 2021 tarihinde, https://www.britannica.com/topic/cryptology adresinden erişildi.

[2] Cryptomathic(2019, Ekim 29). Summary of cryptographic algorithms- according to NIST. 9 Nisan 2021 tarihinde, https://www.cryptomathic.com/news-events/blog/summary-of-cryptographic-algorithms-according-to-nist adresinden erişildi.

[3] TOBB ETÜ Kütüphane e-arşiv(2017). Yüksek performanslı bitcoin madenciliği için SHA256 özet algoritmasının eniyilenmesi. 10 Nisan 2021 tarihinde, http://earsiv.etu.edu.tr/xmlui/handle/20.500.11851/2265 adresinden erişildi.

[4] Binance Academy(t.y). Hashing Nedir?. 6 Nisan 2021 tarihinde, https://academy.binance.com/tr/articles/what-is-hashing adresinden erişildi.

[5] Binance Academy(t.y). Cryptographic Hash function. 10 Nisan 2021 tarihinde, https://www.nku.edu/~christensen/092mat483%20Cryptographic%20hash%20function.pdf adresinden erişildi.

[6] agencia españla proteccion datós (t.y). INTRODUCTION TO THE HASH FUNCTION AS A PERSONAL DATA PSEUDONYMISATION TECHNIQUE. 9 Nisan 2021 tarihinde, https://edps.europa.eu/sites/edp/files/publication/19-10-30_aepd-edps_paper_hash_final_en.pdf adresinden erişildi.

--

--