MD5 Hesaplama

Massachusetts Teknoloji Enstitüsü’nden Ron Rivest’ın 1991 senesinde geliştirdiği MD5 algoritması, veri bütünlüğünün test edilmesi için kullanılmakta olan bir çeşit kriptografik ya da diğer bir deyişle tek yönlü şifreleme yapmaya hizmet eder. MD5, çok fazla kişinin ilgi alanına hitap etmediği için bu tip algoritmalarla ilk kez karşılaşan insanlar için çok karmaşık gibi görünse de bu algoritmalara […] Daha Fazla Bilgi

Massachusetts Teknoloji Enstitüsü’nden Ron Rivest’ın 1991 senesinde geliştirdiği MD5 algoritması, veri bütünlüğünün test edilmesi için kullanılmakta olan bir çeşit kriptografik ya da diğer bir deyişle tek yönlü şifreleme yapmaya hizmet eder. MD5, çok fazla kişinin ilgi alanına hitap etmediği için bu tip algoritmalarla ilk kez karşılaşan insanlar için çok karmaşık gibi görünse de bu algoritmalara aşina kişiler için çok şaşırtıcı bir şey değildir. Bu yazımızda MD5 nedir, MD5 algoritmasının özellikleri nelerdir, MD5 nasıl hesaplanır gibi konu başlıklarına değinip MD5 hakkında merak edilenleri sizlere aktaracağız.

MD5 nedir?

Kısaca MD5 olarak bilinen algoritmanın açılımı Message-Digest 5’tir. MD5, veri bütünlüğünü test etme amacıyla da kullanılan, tek yönlü bir şifreleme algoritması olarak tanınmaktadır. MD5, girdi datalarının boyutundan bağımsız olacak şekilde 128 bit büyüklüğünde hexadecimal özelliğinde özetler çıkartır.

MD5’in verdiği her sonucun benzersiz olması pek mümkün değildir. Üretilen özetler 128 bit değerinde olduğu gibi MD5’ten şifrelemesini arzu ettiğimiz bilgilerin sayısı sonsuz değerdedir.

MD5 girdilerindeki şifrelerin çözülmesi teknik olarak pek mümkün görünmemektedir. Öteki taraftan birtakım MD5 veritabanlarını kullanarak brüte force tekniğiyle 16 karaktere kadar şifre çevirisi yapmak mümkün hale gelmiştir. Burada bahsettiğimiz birtakım veritabanları, sizin oluşturduğunuz girdiyi önceden oluşturulan yüzbinlerce veri girdisi arasında tarayıp bularak sonucu size verebilir. MD5 tipinde saklanan ve şifrelenen verilerin çözülmesi şimdilik bu yöntemle mümkünmüş gibi görünüyor.

MD5’e benzer olarak işlev gören algoritmaların arasında SHA-1 ve RIPEMD-160 da yer almaktadır.

MD5, değişken uzunluktaki dataları türlü çeşitli işlemlerden geçirip sabit bir uzunluk ve formata dönüştürüp otuz iki tane on altılık sistemde yazılmış karakterlerden oluşan bir çeşit etiketleme algoritması olarak da tanınır. Fakat MD5 algoritmasının günümüzde en çok kullanıldığı alanlar, indirilen dosyaların doğrulanmasının sağlanması, iletilen mesajların doğrulanması ve bazı şifrelerin veritabanlarında saklanması şeklindedir.

MD5 algoritmasının özellikleri nelerdir?

MD5 algoritması tek yönlü çalışan bir yapıya sahiptir.

MD5 algoritması şifreleme üzerine kuruludur.

MD5 algoritması ile şifre çözüm işlemi yapılamaz.

MD5 algoritması, üzerinde işlem yaptığınız bir dosyanın herhangi bir değişiklik ile karşılaşıp karşılaşmadığını tespit etmeye de yardımcı olur. Şayet ilgili dosya üzerinde bir değişiklik söz konusu olduysa, yeni dosyanın MD5 algoritmasından geçtikten sonra karşımıza çıkan sonuç ile dosyanın ilk halinin MD5 dosyası için karşımıza çıkan sonuç birbirinden farklı olacaktır. Bu farklılık da bize değişiklik yapıldığının sinyalini verir.

MD5 algoritmasının bir alt algoritma olan MD4’e oranla daha yavaş çalıştığı söylenir. Bu yavaşlık bir dezavantaj gibi görünse de MD5’in şifreleme güvenilirliği daha üst düzeydedir. MD5 ile şifrelenen yapıların daha karışık ve çözülmesi daha zor bünyede olduğu biliniyor.

MD5 algoritması bilindiği kadarıyla dört farklı aşamalı bir sisteme sahiptir. MD5 algoritmasının her aşaması birbirinden farklı işleyişe sahip olmakla birlikte toplamda on altışar basamaktan oluşmaktadır.

MD5 algoritması ne işe yarar, nerelerde kullanılır?

Birçok alanda kullanılabilen MD5 algoritmasının en temel kullanım alanı veri bütünlüğünü ve verinin orijinal halini doğrulamaktır.

Mesela, bir internet sitesi üzerinden bir dosya indirdiniz. Bu dosyanın MD5 özet değeri internet sitesi üzerinden paylaşıldıysa sizin bu değer ile indirdiğiniz dosyanın kendi hesapladığınız MD5 değerini karşılaştırmanız gerekir. Kendi hesapladığınız MD5 değeri ile sitenin paylaştığı değer aynı ise dosya tam, eksiksiz ve doğru bir şekilde indirilmiş anlamına gelir. Genelde işletim sistemleri ve birtakım yazılımlar güncelleme yaptıkları zamanlarda MD5 ile doğrulama yönteminden yararlanmayı tercih ederler.

MD5’in kullanım alanlarından ikincisi ise, şifrelerin veri tabanlarında saklanmasını sağlamaktır. Mesela, bir internet sitesine bir şifre girmeniz gerekiyor. Girdiğiniz şifre bu internet sitesinin veritabanına MD5 özeti biçimde kaydedilecektir. Bu sayede site yöneticisi de dahil olmak üzere hiç kimse sizin girdiğiniz şifreyi göremez. MD5, şifrelerin veritabanında güvenli bir şekilde saklanmasını sağlar. Siz, şifreyi yazıp siteye girmeye çalıştığınız zaman sizin yazdığınız şifrenin MD5 özeti otomatik olarak hesaplanır ve bu özet veritabanındaki ile aynı ise ve eşleşirse şifreniz kabul edilir, sizin girişiniz başarılı olmuş olur.

MD5 nasıl hesaplanır?

MD5 algoritmasının çalışma sistemi inanılmaz derecede karmaşık ve bu işle ilgilenmeyen kişiler tarafından gerek anlaşılması gerek anlatılması için çok zor bir yapıya sahiptir.

Aşağıdaki Vikipedi bağlantısına tıklayarak MD5 algoritmasının nasıl hesaplandığını öğrenebilirsiniz.

MD5’in nasıl hesaplandığını öğrenmek ve MD5 hesaplama işlemi yapabilmek için TIKLAYINIZ!

MD5’e dair diğer detaylar

MD5 bir databese management (veritabanı yönetimi) tekniği olarak da bilinir. Eldeki özet kullanılarak verinin konumu kolayca bulunabilir. Etiket fonksiyonu sayesinde verinin bazı matematiksel değerleri sayesinde ya da harflerin ordinal değerleri ile bir şifre üretilir ve bu şifre sayesinde konum bulma imkanı ortaya çıkar.

MD5 fonksiyonu belirli miktardaki verileri etiket tablosunda ne kadar homojen dağıtırsa güvenilirlik açısından o derece iyi olduğu belirtilmektedir.

Bir diğer önemli nokta ise, çakışma olduğu zaman yani aynı iki tane şifreye sahip olan veri söz konusu olduğu zaman, lineer probing, double hashing ve quadratic probing işlemlerinden bir tanesi seçilir ve kullanılır. Bu sayede çakışan verilerin konumu veritabanı içerisinde bulunur.

Lineer probing işleminde veri, etiket tablosunda hemen bir sonraki konuma oturtulur. Double probingde ise konumun nümerik karesi alınır daha sonra yerleştirilecek konum bulunur. Son olarak double hashing işleminde ise iki etiket fonksiyonu da iç içe olacak şekilde kullanılır ve şifrelerin eşsizliğinin daha da garanti altına alınmasını sağlanır. MD5 algoritmasında eğer ki belirli bir bölgede bazı birikmeler olmuşsa bu birikmelere cluster adı verilir. MD5 algoritmasındaki probing işlemindeki en temel amaçlardan biri de bu birikmeyi önlemektir. Öteki taraftan hash table üzerindeki büyüklüğün asal sayı olması öncelikli tercihlerden biri arasında yer alır. Genelde quadratic probing meselesinde asal sayı tercihi yapılarak daha homojen bir probing elde etmek amaçlanır.

MD5 algoritmasının kırılması meselesine giriş yapacak olursak, MD5’teki algoritma bir hash algoritması olduğuna göre, bunu kırmak demek benzer ve tıpatıp aynı olan bir hash değerini üreten ya da başka ama bu anlama gelecek bir veri dizisine sahip olmak anlamına gelmektedir. Fakat aynı 128 bitlik hash değerinin üretilmesini sağlayan binlerce sonsuz diye tanımlayabileceğimiz veri bulunmaktadır. MD5 algoritması, aynı hash değerine sahip olan iki ya da daha çok veri özetinin makul süreler dahilinde bulunmamasını sağladığını iddia eder. Günümüzde işinin ehli bir kişi tarafından dokuz haneli ve rakamlardan oluşan bir parolanın kırılması yaklaşık beş dakika almakta iken MD5 algoritması vaat ettiği güveni sağlayabildiği durumda tercih sebebi olmaya devam edecektir.

MD5 tek yönlü yapıya sahip olan bir algoritma olduğu için sizin şifreniz “abc” olsa bile bunun MD5 algoritmasından çıkan hali otuz iki karakterli bir yapıya sahip olur. Örneğin bu “abc” şifresinin MD5 çıktısı 900150983CD24FB0D6963F7D28E17F72 şeklinde olabilir. Şifreniz “abc” değil de “Abc” olsaydı, yani sadece a harfi büyük a ile yer değiştirseydi MD5 değeri 4C36FA32C9D93A002C3E14CE038AA709 şeklinde olurdu. Bu MD5 değerleri site yöneticileri tarafından görülen değerlerdir. Birçok site yöneticisi kullanıcısının şifresini göremez, kullanıcı şifreyi unutursa şifre sıfırlama linkinden kendi kendine şifreyi yenilemek durumundadır, yöneticiden şifreyi hatırlatmasını talep ederse olumsuz bir yanıt alacaktır.

MD5, ücretsiz olarak dağıtımı yapılan yazılımlardaki bilgilerin doğruluğunu test etmek amacıyla da kullanılmaktadır. MD5 bu amaçla kullanıldığı zamanlarda bu duruma MD5Sum adı verilmektedir.

MD5 Hesaplama!