• Sonuç bulunamadı

2. ÖZET FONKSİYONLARI

2.4. Gereksinimler ve Güvenlik

2.4.2. Özet Fonksiyonlarının Güvenlik Gereksinimleri

2.4.2.3. Çakışma Dayanıklılığı

Özet fonksiyonlarının diğer bir güvenlik parametresi çakışma dayanıklılığıdır. Burada rastgele seçilen ≠ gibi iki farklı giriş mesajı için olacak şekilde aynı özet değeri üretilmemelidir. Burada iki metninde seçimi serbest olduğundan çakışma ihtimali daha zor gibi gözükmektedir. Çakışma dayanıklılığını, zayıf çakışma dayanıklılığından ayıran en önemli özellik aynı özet değerlerinin bulunması için iki mesajında değişebilir olmasıdır. Bu yapı Şekil 2. 15.’de verildi.

Şekil 2.15. Çakışma dayanıklılığı

Eğer aynı özet değerine sahip iki farklı mesaj elde edilirse Şekil 2. 14.’teki gibi bir saldırı yapılabilir. Burada alıcının hesapladığı doğrulama işlemi ‘doğru’ ifadesini verdiği için alıcı ’yi doğru mesaj olarak kabul eder. Aslıda farklı mesajlar olmalarına rağmen aynı özet değerlerini ürettikleri için doğrulama işlemi ikinci mesajı da doğru olarak kabul eder. Bundan dolayı aynı özet değerini veren iki farklı mesaj için böyle bir saldırı yapılabilir.

Güvercin deliği probleminde de belirtildiği gibi çakışma her zaman olur önemli olan bu ihtimalin ne kadar zor olduğudur. Bu saldırının zayıf çakışma dayanıklılığından daha zor olduğunu düşünülebilir. Yani özet fonksiyonunun çıkışı 80 bitse mesajı kontrol etmek gerektiği gibi. Fakat yapılan çalışmalar gösteriyor çakışmanın bulunması için mesajın kontrol edilmesi yeterlidir. Bu şaşırtıcı sonuç doğum günü saldırısı olarak ifade edilen matematiksel bir yaklaşımla temellendirilmektedir. Bu saldırı aslında şifre analizinde kullanılan güçlü bir yöntem olan ‘doğum günü çelişkisi’ yöntemine dayanmaktadır [12].

az iki insanın aynı günde doğmuş olma ihtimalinin makul bir değerde olması için en az kaç insana ihtiyaç vardır? Bir yılda 365 gün olduğundan bir çakışmanın olabilmesi için sezgisel olarak 183 kişi gerekli olduğunu sanılabilir. Fakat çok daha az kişinin yeterli olduğu şu şekilde bir yaklaşımla kolaylıkla görülebilir. Öncelikle bu kişilerin farklı günlerde doğma ihtimali bulunur daha sonra bu değer 1 den çıkartıldığında çakışma olasılığı bulunmuş olur. Bir kişi için çakışmama ihtimali 1’dir. İkinci kişi için 365 üzerinden 364 tür. Bu durum aşağıdaki şekilde formüle edilebilir.

P(iki kişi arasında çakışma yok) = (2. 8) Üç kişi için çakışma olmama ihtimali:

P(üç kişi arasında çakışma yok) = . (2. 9) kişi için:

P( kişi arasında çakışma yok) = . . . . (2. 10) olduğunda çakışma ihtimali 1 olacaktır çünkü sadece 365 gün vardır. Şimdi tekrar başlangıçtaki soru incelenecek olursa: çakışma ihtimalinin 50% olması için kaç insana ihtiyaç duyulur. Denklemden de görüleceği gibi çakışma ihtimalinin %50 olması için 23 kişi yeterlidir. Bu yaklaşım denklemlerle aşağıdaki gibi ifade edilebilir.

P(en az bir çakışma) = 1 – P(çakışma yok) (2. 11) = .

= 0.507 ≈ 50%.

Denklem yardımıyla görülür ki 40 kişi için bu ihtimal 90%’dır. Bu örnek denemenin şaşırtıcı sonuçları doğum günü çelişkisi olarak adlandırılmaktadır.

Özet fonksiyonlarındaki çakışma partiye katılan kişiler arasında doğum günlerinin çakışmasını bulma problemine oldukça benzerdir. Fakat özet fonksiyonlarında işlem uzayı

değeri önemli bir parametredir. Peki, saldırganın = olan aynı özet değerine sahip iki farklı mesajın çakışma ihtimalinin makul bir değerde olması için kaç tane mesajın özetini almalı? adet özet değeri arasında çakışmanın olmama ihtimali aşağıdaki gibidir.

P(üç kişi arasında çakışma yok) = . . . . = ∏ (2. 12)

Aşağıdaki yaklaşımı matematiksel olarak ifade edilebilir:

= (2. 13)

/ << 1 olmaktadır. Olasılık değeri şuna yaklaşmaktadır. P(çakışma yok) = ∏

= (2. 14)

Aritmetik seri şuna denktir: 1+2+…+t-1= t.(t-1)

P(çakışma yok) = (2. 15)

Burada amaç çakışma bulabilmek için ne kadar mesajın gerektiğini bulmaktır. Bundan dolayı denklem için çözülmelidir. 𝜆 = 1 – P(çakışma yok) denklemi ile en azından bir çakışma olduğu gösterilirse.

𝜆 ≈ 1 -

𝜆 ≈ - ( -1) ≈

(2. 16)

Pratikte >>1 olduğu için = ( ) olarak alınır. ≈ √

Yukarıdaki denklem oldukça önemlidir çünkü bu denklem özet çıkış uzunluğu bit olan ve çakışma olasılığı 𝜆 olan arasında bir çakışma için ne kadar mesaj özetine ihtiyaç duyulduğunu gösterir. Doğum günü saldırısından çıkarılacak en önemli sonuç bir çakışma bulmak için ihtiyaç duyulan özet sayısı yaklaşık olarak mümkün özet çıkışı sayısının kareköküne eşittir. Buda şöyle ifade edilebilir: √ = . Bundan dolayı bitlik güvenlik seviyesi için özet fonksiyonu bitlik çıkış değerine ihtiyaç duyar. Örnek olarak; 80 bitlik çıkışı olan özet fonksiyonu için çakışma değerini bulmak istediğimizi varsayalım. 50% lik başarı ihtimali için özet fonksiyonu = adet giriş gereklidir [12]. Çakışma için yaklaşık olarak özet değerini hesaplamak ve kontrol etmek günümüz bilgisayarlarıyla mümkündür. Doğum günü çelişkisine dayanan çakışma saldırılarını önlemek için özet fonksiyonlarının çıkış uzunluğu sadece zayıf çakışma saldırılarına karşı koruma sağlayan çıkış değerlerinin iki katı olmalıdır. Bu sebeple yeni özet fonksiyonları daha uzun çıksa sahip olmakla birlikte bütün özet fonksiyonları en az 128 bitlik çıkış uzunluğuna sahip olmalıdır. İlginçtir ki, matematiksel çıkarımlarla başarı olasılığı 0.5 ve 0.9 arasında küçük fark bulunmaktadır [12].

Doğum günü saldırısı, özet fonksiyonları için genel bir kaba kuvvet saldırısıdır çünkü algoritmanın zayıflıklarına dayanmamaktadır ve kaba kuvvet saldırısında olduğu gibi sadece olası değerleri denemektedir. Dolayısıyla, bu saldırının herhangi bir özet fonksiyonuna karşı yapılabileceği anlamına gelir. Diğer yandan verilen bir özet fonksiyonu için uygun olan en güçlü saldırının bu saldırı olduğu aşikârdır çünkü deneme sayısı en azdır. Bununla birlikte popüler bazı özet fonksiyonları için, özellikle MD5 ve SHA-1 te, doğum günü saldırılarından daha hızlı olan matematiksel çakışma saldırıları vardır [16].

Diğer yandan mesaj saklama gibi birçok özet uygulaması için sadece öngörme dayanıklılığının gerektiği belirtilmelidir. Bundan dolayı 80 bit gibi göreceli küçük özet fonksiyonu çıkışı değeri çakışma saldırısının olmadığı durumlarda yeterli olabilir.

Benzer Belgeler