Kriptografik Özet Fonksiyonları ve Çığ Etkisi

Kriptografik Özet Fonksiyonları

Bitcoin ile birlikte adını sıkça duymaya başladığımız SHA-256‘nın kırılmasının imkansız olduğunu dolayısıyla kripto paraların çok güvenli olduğunu muhtemelen duymuşsunuzdur. Peki bu güvenliği sağlayan SHA-256 nedir, bu kadar güvenli olmasını neye borçlu?

Kriptografik Özet Fonksiyonları

Kriptografik özet fonksiyonları (cryptographic hash function), değişken büyüklükteki bir veriyi (mesaj olarak adlandırılır) sabit büyüklükteki bir bit dizisine (hash olarak adlandırılır) çeviren matematiksel algoritmalardır. MD5, SHA-1, SHA-256 en çok kullanılan özet fonksiyonlarına örnek verilebilir. Bu fonksiyonlar teknik olarak tersine çevrilemez, tek yönlüdür.

Örneğin MD5 fonksiyonu ile “blokzinciri.net” verisinin özeti hesaplanabilir ancak bu özet değeri kullanılarak “blokzinciri.net” değeri elde edilemez.

Tanımda da belirtildiği üzere değişken büyüklükte bir veri sabit uzunlukta diziye (MD5 için 128 bit, bu da hexadecimal formatta 32 karaktere karşılık geliyor) çevriliyor. Yani 1 GB’lık dosyanın MD5 hashı da, 1 KB’lık verinin MD5 hashı da 128 bite eşit olacaktır. Bundan ötürü 128 bitlik veriyi kullanarak 1 GB’lık veriyi geri getirmek imkansızdır. Peki kriptografik özet fonksiyonu ne işe yarar?

Kullanım Amaçları

Bu fonksiyonlar veri güvenliği amacıyla birçok sistemde kullanılmaya uygundur. Dijital imzalar ve kimlik doğrulama sistemleri başta olmak üzere birçok farklı alanda kullanılır. Günümüzde kullanıcı girişi sistemine sahip tüm uygulamalar (bu sitede kullanılan WordPress yazılımı dahil) bu teknolojiden faydalanmaktadır. Çünkü kullanıcı parolalarını düz (plaintext) bir şekilde veri tabanında saklamak olası bir güvenlik zafiyeti durumunda ciddi problemlere sebebiyet verir.

(fotoğraf kaynağı: k-ict.org)

Belge orijinallik kontrolü kriptografik özet fonksiyonlarının bir diğer kullanım amacıdır. Bazı durumlarda sizinle aynı ağa bağlı hackerlar verileri görüntüleyebilir veya değiştirebilir. Buna karşı olarak yazılım geliştiricileri, dosya indirmesi sırasında zararlı modifikasyonları engellemek amacıyla uygulamalarına hash kontrol mekanizması ekler. Hacker dosyayı değiştirdiğinde hash da değişeceğinden uygulama çalışmaz ve olası bir atağın önüne geçilmiş olur.

Bitcoin’de Kullanılan SHA-256 Fonksiyonu

NSA (Ulusal Güvenlik Ajansı – ABD) tarafından tasarlanan SHA-256 fonksiyonu Bitcoin’de de kullanılmaktadır. Kazma (mining) algoritmasının temelini oluşturan SHA-256 fonksiyonu sayesinde blok doğrulaması hızlı bir şekilde sağlanmaktadır. Bitcoin’de diğerleri yerine bu fonksiyonun kullanılmasının başlıca sebepleri şunlardır:

  • Hızlı bir şekilde üretilebilmesi
  • Brute-force yöntemi ile kırılmasının pratikte imkansız olması
  • 256 bit uzunluğunda olduğu için çakışma (collision) ihtimalinin çok düşük olması

Çakışma, farklı iki girdinin aynı hash değerini oluşturması durumudur. SHA-256’da şu ana kadar herhangi bir çakışma tespit edilememesine karşın farklı özet fonksiyonlarında (MD5 ve SHA1) tespit edilmiştir. Teorik hesaplamalarda SHA-256’da çakışma ihtimalinin alternatiflerine göre çok çok düşük olduğu saptanmıştır.

Çığ Etkisi

Çığ Etkisi

Avalanche effect ya da Türkçesiyle çığ etkisi kriptografik algoritmalarda girdinin herhangi bir bölümünün değişmesinin tüm sonucu etkilemesi durumudur.

Örneğin “blokzinciri” girdisinin MD5 özeti e8bd1ef6d0ff5a0901194220b83ae2d3 olurken, “blok zinciri” girdisinde 9278c0d4f1600773fa97e83b2532ccea olacaktır. Eklenilen bir adet boşluk karakteri tüm hashin değişmesine sebebiyet vermektedir.

Çığ etkisi sayesinde oluşan hash tahmin edilemez dolayısıyla da kırılamaz olacaktır. Eğer çığ etkisinin olmadığı bir özet algoritması kullanılırsa brute-force vb. yöntemler ile kırılma ihtimali çok daha yüksek olacaktır. Örneğin Base64 yöntemini ele alırsak “blokzinciri” girdisi “Ymxva3ppbmNpcmk=” çıktısını, “blokzinciri.net” ise “Ymxva3ppbmNpcmkubmV0” çıktısını verecektir. MD5’den farklı olarak buradaki çıktılar tahmin edilebilir durumdadır. İki çıktının aynı bölümlerine bakılarak aynı kelime ile başladıkları gözlemlenebilir.

Not: Base64 kriptografik bir fonksiyon değildir, sadece anlatımı somutlaştırmak amacıyla örnek olarak eklendi.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir