**Doğum günü akını**, olasılık kuramındaki doğum günü probleminin ardındaki matematiği kullanan bir kriptografik akındır. Akının amacı bir *f* işlevine girdi olarak verilen {\displaystyle x\_{1}} ve {\displaystyle x\_{2}}'nin {\displaystyle f(x\_{1})=f(x\_{2})} koşulunu sağlamasıdır. Böyle bir {\displaystyle x\_{1},x\_{2}} ikilisi çakışma olarak adlandırılmaktadır. Çakışma bulma yöntemi, *f* işlevini gelişigüzel girdilerle hesaplayıp çakışma koşulunun sağlanıp sağlanmadığını incelemektir. Bu yöntem, yukarıda sözü edilen doğum günü probleminden yararlanır. Şöyle ki; bir {\displaystyle f(x)} işlevi eşit olasılıklı {\displaystyle H} farklı sonuç üretiyorsa ve {\displaystyle H} yeterince büyükse {\displaystyle f(x\_{1})=f(x\_{2})} koşulunu sağlayan {\displaystyle x\_{1}} ve {\displaystyle x\_{2}} değerleri kolayca bulunabilir.

Matematiksel ifadesi
--------------------

Bir {\displaystyle H} kümesinden gelişigüzel {\displaystyle n} değerlerini seçtiğimizi varsayalım. {\displaystyle p(n;H)} ifadesini de bir n değerinin birden çok kez seçilmesi olasılığı olarak tanımlayalım. Böylece,

{\displaystyle p(n;H)\approx 1-e^{-(n(n-1))/2\cdot H}\approx 1-e^{-n^{2}/{2\cdot H}}} eşitliğine ulaşılabilir.
{\displaystyle n(p;H)}, seçilebilecek en küçük sayıyı gösteriyorsa bir çakışmanın meydana gelme olasılığı en az {\displaystyle p}'ye eşittir. Yukarıdaki eşitlik tersine çevrildiğinde aşağıdaki eşitliğe ulaşılır.

{\displaystyle n(p;H)\approx {\sqrt {2\cdot H\cdot \ln \left({1 \over 1-p}\right)}},}
0.5'lik bir çakışma olasılığı temel alındığında

{\displaystyle n(0.5;H)\approx 1.1774{\sqrt {H}}} ifadesine ulaşılır.
{\displaystyle Q(H)}'nin ilk çakışma bulununcaya dek seçilen değer sayısını belirttiğini varsayalım. Bu sayı,

{\displaystyle Q(H)\approx {\sqrt {{\pi \over 2}H}}} değerine yakınsar.
Örneğin, 64 bitlik bir öz kullanıldığında ortaya çıkan farklı sonuç sayısı yaklaşık 1.8 × 1019'dur. Tüm bu sonuçların gözlenme olasılıkları birbirine eşitse bir çakışmanın meydana gelmesi için en çok 5.1 × 109 denemeye gerek duyulacaktır. Bu değer, **doğum günü sınırı** olarak adlandırılır. Bu değer, n bitlik kodlar için {\displaystyle 2^{n/2}} olarak hesaplanmıştır. Diğer örnekler ise aşağıdaki tabloda gösterilmiştir.

| Bit sayısı | Olasısonuç sayısı(H) | Gelişigüzel çakışma olasılığı (p) |
| --- | --- | --- |
| 10−18 | 10−15 | 10−12 | 10−9 | 10−6 | 0.1% | 1% | 25% | 50% | 75% |
| 32 | 4.3 × 109 | 2 | 2 | 2 | 2.9 | 93 | 2.9 × 103 | 9.3 × 103 | 5.0 × 104 | 7.7 × 104 | 1.1 × 105 |
| 64 | 1.8 × 1019 | 6.1 | 1.9 × 102 | 6.1 × 103 | 1.9 × 105 | 6.1 × 106 | 1.9 × 108 | 6.1 × 108 | 3.3 × 109 | 5.1 × 109 | 7.2 × 109 |
| 128 | 3.4 × 1038 | 2.6 × 1010 | 8.2 × 1011 | 2.6 × 1013 | 8.2 × 1014 | 2.6 × 1016 | 8.3 × 1017 | 2.6 × 1018 | 1.4 × 1019 | 2.2 × 1019 | 3.1 × 1019 |
| 256 | 1.2 × 1077 | 4.8 × 1029 | 1.5 × 1031 | 4.8 × 1032 | 1.5 × 1034 | 4.8 × 1035 | 1.5 × 1037 | 4.8 × 1037 | 2.6 × 1038 | 4.0 × 1038 | 5.7 × 1038 |
| 384 | 3.9 × 10115 | 8.9 × 1048 | 2.8 × 1050 | 8.9 × 1051 | 2.8 × 1053 | 8.9 × 1054 | 2.8 × 1056 | 8.9 × 1056 | 4.8 × 1057 | 7.4 × 1057 | 1.0 × 1058 |
| 512 | 1.3 × 10154 | 1.6 × 1068 | 5.2 × 1069 | 1.6 × 1071 | 5.2 × 1072 | 1.6 × 1074 | 5.2 × 1075 | 1.6 × 1076 | 8.8 × 1076 | 1.4 × 1077 | 1.9 × 1077 |

*Tablo, tüm öz değerlerinin oluşma olasılıklarının eşit olduğu durumda gerekli olan değer sayılarını göstermektedir.*
İşlev çıktılarının farklı yoğunlukta dağıldığı durumların çakışma olasılığını artırdığı kolayca gözlenebilmektedir. Bir öz işlevinin 'dengesi' o işlevin doğum günü akınlarına karşı direncini ifade etmekte, MD ve SHA gibi popüler özlerin zayıf noktalarının aydınlatılması çalışmalarını tetiklemektedir (Bellare ve Kohno, 2004 23 Şubat 2008 tarihinde Wayback Machine sitesinde arşivlendi.).

Sayısal imzaların akına karşı duyarlığı
---------------------------------------

Sayısal imzalar, doğum günü akınına duyarlı olabilmektedirler. Bir {\displaystyle m} iletisi önce {\displaystyle f(m)} ile imlenmektedir. Burada {\displaystyle f} bir kriptografik öz işlevini göstermektedir. Alice'in Bob'u kandırmaya çalıştığını varsayalım. Alice önce yasal bir {\displaystyle m} sözleşmesi hazırlar ve ardından sahte bir {\displaystyle m'} sözleşmesini imzalar. Alice daha sonra {\displaystyle m} üzerinde bazı yazım değişiklikleri yaparak birden fazla {\displaystyle m} sözleşmesi elde etmeye çalışır.

Alice, sahte {\displaystyle m'} sözleşmesini de aynı yolla çoğaltır ve öz işlevini yasal ve sahte sözleşmeler üzerine uygulayarak {\displaystyle f(m)=f(m')} koşulunun sağlandığı ilk değeri bulur. Yasal sözleşmeyi Bob'a imzalatan Alice, bu imzayı sahte sözleşmeye ekler. Böylece, Bob'un sahte sözleşmeye imza koyduğu "kanıtlanmış" olur.

Bu akının önüne geçebilmek amacıyla imzayı oluşturan öz işlevinin çıktı uzunluğu artırılmaktadır. Çalışma süresi katbekat artan bu akın böylece uygulanamaz hale dönüşmektedir.

Pollard'ın rho algoritması, ayrık logaritmaların hesaplanmasında doğum günü akınını kullanan bir yöntemdir.

Ayrıca bakınız
--------------

* Ortada buluşma akını

Kaynakça
--------

* 
* Mihir Bellare, Tadayoshi Kohno: Öz İşlevinin Dengesi ve Doğum Günü Akınları Üzerindeki Etkisi. EUROCRYPT 2004: s. 401–418
* *Uygulamalı Kriptografi, 2. baskı*, Bruce Schneier
* *CISSP Hepsi İçinde Çalışma Kılavuzu, 4. baskı*, Shon Harris

Notlar
------

1. ↑  Jacques Patarin, Audrey Montreuil (2005). "Kelebek Kalıpları" (PostScript, PDF). Université de Versailles. 29 Eylül 2007 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Mart 2007.

Dış bağlantılar
---------------

* "Sayısal imza ve kimlik doğrulama nedir?"
* Kriptanalitik uygulamalarla koşut çakışma çalışması 30 Aralık 2008 tarihinde Wayback Machine sitesinde arşivlendi.