MD5 Algoritması

MD5 Algoritması

MD5 Algoritması

Sadıkcan TULUK
07.04.2025

MD5 (Message-Digest Algorithm 5), 1991 yılında Ronald Rivest tarafından geliştirilen ve uzun yıllar boyunca yaygın olarak kullanılan bir kriptografik hash fonksiyonudur. 128-bit (16 byte) sabit uzunlukta bir çıktı üretir ve başta veri bütünlüğü kontrolü, parola saklama ve dijital imzalar olmak üzere birçok alanda kullanılmıştır.

MD5'in Temel Özellikleri

  • Hızlıdır: Küçük ve büyük verilerde milisaniyeler içinde hash üretir.

  • Deterministik: Aynı girdi her zaman aynı çıktıyı verir.

  • Çıktı Uzunluğu: 32 karakterlik hexadecimal bir dize (ör: d41d8cd98f00b204e9800998ecf8427e).


MD5 Nasıl Çalışır?

MD5, girdiyi 512-bit'lik bloklara böler ve her blok üzerinde 4 tur işlem yapar. Bu işlemler:

  1. Padding: Veri, 512-bit'in katı olacak şekilde doldurulur.

  2. Buffer Initialization: 4 adet 32-bit register (A, B, C, D) başlangıç değerleri atanır.

  3. Main Loop: Her blok için 64 adımda bitwise operasyonlar (AND, OR, XOR, NOT) ve modüler toplama yapılır.

  4. Output: Son hash değeri, A, B, C, D registerlarının birleştirilmesiyle oluşturulur.

Örnek MD5 Hashleri

Girdi

MD5 Çıktısı

 “mustafa”

   e5de81655caaea1616f2d5afe6cb3d23

 "hello"

   5d41402abc4b2a76b9719d911017c592

 "password"

   5f4dcc3b5aa765d61d8327deb882cf99


MD5'in Zafiyetleri ve Kırılması

1. Çarpışma (Collision) Saldırıları

  • Tanım: Farklı iki girdinin aynı hash değerini üretmesi.

  • 2004'te Kırıldı: Xiaoyun Wang ve ekibi, pratik çarpışma saldırısı geliştirdi.

  • 2008'de Daha Tehlikeli: SSL sertifikalarını sahtelemede kullanılabilecek yöntemler bulundu.

  • 2012'de Flame Malware: Microsoft sertifikalarını taklit etmek için MD5 çarpışması kullandı.

2. Rainbow Table Saldırıları

  • MD5'in hızlı olması, rainbow table ile kolayca tersine çevrilebilmesine yol açar.

  • Örnek: 5f4dcc3b5aa765d61d8327deb882cf99 → "password".

3. Brute-Force Dirençsizliği

  • GPU'lar ile saniyede milyarlarca MD5 hash'i kırılabilir.


MD5 Hala Kullanılıyor mu?

Güvenli Olmayan Kullanımlar

  • Parola Saklama: Kesinlikle kullanılmamalı (ör: eski forum veritabanları).

  • Dijital İmza/SSL: Çarpışma riski nedeniyle terk edildi.

  • Dosya Doğrulama: Checksum için kullanılsa bile SHA-256 tercih edilmeli.

Hala Kullanıldığı Yerler

  • Eski Yazılımlar: Bazı legacy sistemler (yaması yapılamayanlar).

  • Veri Bütünlüğü (Non-Critical): Örneğin, önbellek kontrolü.


MD5 vs. Modern Alternatifler

Kriter

MD5

SHA-256

Argon2

 Çıktı Uzunluğu

 128-bit

 256-bit

 Değişken

 Çarpışma Direnci

 Kırıldı

 Güvenli

 Güvenli

 Parola için Uygun mu?

 Hayır

 Hayır

 Evet

 Performans

 Çok Hızlı

 Hızlı

 Yavaş (Tasarımlı)

*SHA-256 bile saltsız parola hashleme için uygun değildir. Argon2 veya bcrypt kullanın.


Sonuç: MD5'i Ne Yapmalı?

  • Yeni Projelerde ASLA Kullanmayın.

  • Eski Sistemlerde SHA-256 veya SHA-3'e Geçin.

  • Eğitim Amaçlı Kullanın: Kriptografi tarihini öğretmek için ideal bir örnek.


Kaynakça

  • Wang, X., & Yu, H. (2005). How to Break MD5 and Other Hash Functions. CRYPTO.

  • Stevens, M. (2012). MD5 Considered Harmful Today: Creating a Rogue CA Certificate.

  • NIST. (2012). Deprecation of SHA-1 and MD5.