# KASUMI
Kasumi, UMTS, GSM, GPRS gibi mobil sistemde kullanılan bir blok şifrelemedir. Bir telefon konsorsyumu ve mobil dünyaya yön veren bir grup projesi olan 3GPP için tasarlanmıştır. KASUMI adını orijinal Japoncadaki pus anlamına gelen kelimeden alır. UMTS yani 3G sistemlerde bütünlük ve gizlilik için kullanılır. GSM'de A5/3 anahtar dizisi oluşturmak için, GRPS'de ise GEA3 anahtar dizisi oluşturmak için kullanılır.
Mitsuru Matsui, lineer ve diferansiyel kriptanalizin her ikisine de karşı güvenilirliği tam olan MISTY1 adında bir blok şifreleme algoritmasını tasarlamıştır. MISTY1, 128 bit anahtar uzunluğu ve 64 bit data bloğunda işlem yapan bir blok şifreleme işlemidir. Güvenilirliği oldukça yüksek bir algoritmadır. Bu sebepten dolayı Avrupa İletişim Şirketlerinin tüm üyeleri bir karar alarak MISTY1 yapısının 3G nesil haberleşme sisteminde büyük ölçüde güvenlik sağlayacaklarını ortaya çıkarmışlardır. Bu sebeple MISTY1'in değiştirilmiş versiyonu olarak KASUMI algoritması ortaya çıkarılmıştır. KASUMI, 8 döngülü bir Feistel şifrelemedir. 128 bitlik K anahtarını kullanarak 64 bit girişten 64 bit çıkış üretir.
KASUMI algoritması FL, FO, FI olarak adlandırılan alt fonksiyonlar içerir. Bunlarla ilişki olan alt anahtarlar ise sırasıyla KL, KO, KI ‘dır. Alt anahtar değerler şu şekilde elde edilir: 
KASUMI 128 bitlik K anahtarına sahiptir. Her bir KASUMI döngüsü bu K’dan elde edilen 128 bit yeni anahtar değerini kullanır. Döngü anahtarlarından önce 16 bitlik Kj ve Kj’ (j=1 to 8) dizileri elde edilip hesaplanır. 128 bit anahtar 16 bitlik 8 alt değere bölünür. K1...K8
Bu durumda K = K1 || K2 || K3 || K4 || K5 || K6 || K7 || K8
Kj' dizisi Kj den elde edilir. Her bir j integer değeri için 1≤j≤8 Kj' = Kj XOR Cj ifadesi ile elde edilir.
Kj' = Kj XOR Cj ifadesi ile elde edilir.
Fi fonksiyonu 64 bit I giriş değerini, RKi döngü anahtarı (döngü anahtarı KLi, KOi ve KIi üçlü anahtar grubu olarak) kontrollüğünün altında 64 bitlik O çıkış değerine dönüştürür. Fonksiyon yapı olarak iki alt fonksiyondan elde edilir. FL ve FO fonksiyonları KLi (FL ile kullanılan) ve KOi-KIi (FO ile kullanılan) alt anahtar ile birleştirilmiştir. Fi fonksiyonu tek ve çift döngülere bağlı olarak iki biçimde oluşturulmuştur.
1,3,5 ve 7 döngü sayıları için; fi(I,RKi)=FO(FL(I,KLi),KOi,KIi)
2,4,6 ve 8 döngü sayıları için; fi(I,RKi)=FL(FO(I,KOi,KIi),KLi)
Konuşma esnasında 64 bitlik uygun verilerin, oturum anahtarı ile KASUMI algoritmasına girmesi ile 64 bitlik şifreli veri elde edilmiş olur. UMTS sisteminde ses ve verilerin şifrelenmesi bu şekilde gerçekleşir.


### Zaafiyet.
KASUMI algoritması donanımsal uygulamalarla veya karakteristik özelliğinden dolayı zafiyetlerin kullanılmasına müsaittir. Bunlar:
  - Donanımsal uygulamar basit anahtar yapısı kolaydır.
  - Sbox ‘lar az miktarda kombinasyonel mantık içererek uygulanır.
  - FI fonksiyonu içerisinde S7-Box ve S9-Box işlemleri paraleleştirilebilir.
  - FIi1 ve FIi2 işlemleri paralelleştirilebilir


### Saldırı.
KASUMI algoritması 8 döngülü olmasına rağmen kriptanaliz çalışmalarında henüz 5 döngüde bir sonuç bulunabilmiştir. Ancak 2010 yılında Orr Dunkelman, Nathan Keller ve Adi Shamir kripto analiz sonucu ortaya çıkan WEP’deki gibi bir sorun olan “related key attack” ile kırıldığını gösteren bir yayın çıkardılar. Bu ataktan korunma yöntemi olarak ise tasarımsal protokoller gerçekleştirilerek anahtar arasındaki ilişikinin basitliğinin yok edilmesi gerekir. 6 döngülü KASUMI'de single-key atağı gerçekleştirilebilmektedir. Hata üretimi gerçekleştirilen diferansiyel ataklarda mevcuttur.