İlklendirme vektörü

Kriptografide, **ilklendirme vektörü** (İngilizce: Initialization Vector, IV) kısaca **İV** ya da **ilklendirme değişkeni**, tipik olarak rastgele veya sözde rassal olması gereken bir şifreleme temelinin sabit boyuta sahip olan girdisidir. Bu rastgelelik, şifreleme işlemlerinde anlamsal güvenliği sağlamak için çok önemlidir. Anlamsal güvenlik tek bir şifreleme yönteminin aynı anahtar ile tekrar tekrar kullanılmasının şifrelenmiş mesajın bölümleri arasındaki ilişkileri çıkarmasına izin vermediği bir özelliktir. Blok şifreleri için, İV kullanımı çalışma kipleri ile açıklanmaktadır. Ayrıca, evrensel hash fonksiyonları ve buna dayanan mesaj kimlik doğrulama kodları gibi diğer temel öğeler için de rastgeleleştirme gereklidir.

Bazı kriptografik temeller, İV'nin sadece tekrar kullanılmamasını gerektirir ve gerekli rastgelelik dahili olarak türetilir. Bu durumda İV genellikle nonce (tek bir *kez kullanılan sayı*) olarak adlandırılır ve temeller, rastgeledense durumsal olarak tanımlanır. Bunun nedeni, İV'nin bir alıcıya açıkça iletilmesine gerek olmaması ve hem gönderen hem de alıcı tarafta güncellenmekte olan ortak bir durumdan üretilebilmesidir. (Uygulamada, mesajlardaki kayıpları dikkate almak için mesajla birlikte kısa bir *nonce* da iletilir.) Sıra numarası olarak nonce kullanan sayaç işlem kipi durumsal şifreleme şemasına bir örnektir.

İV'nin boyutu kullanılan kriptografik temele bağlıdır; blok şifreler için bu genellikle şifrede kullanılan blok boyutudur. İdeal durumda, şifreleme şemaları için, İV'nin öngörülemeyen kısmı, zaman / bellek / veri ödünleşme saldırılarını telafi etmek için anahtarla aynı boyuta sahiptir. İV rastgele seçildiğinde, doğum günü probleminden kaynaklanan çakışmaların olasılığı dikkate alınmalıdır. RC4 gibi geleneksel dizi şifreleri, açıktan girdi olarak verilen İV'yi desteklemez. İV'yi şifreleme anahtarına ya da başka bir evreye dahil etmek gerekmektedir. Uygulanan bazı tasarımların güvensiz olduğu bilinmektedir. WEP protokolü kayda değer bir güvensiz tasarımdır ve ilişkili anahtar saldırılarına karşı zayıftır.

## Motivasyon

Blok şifreleme, kriptografideki en temel ilkelerdendir ve sıklıkla veri şifrelemek için kullanılır. Bununla birlikte blok şifreleme yalnızca önceden belirlenen blok boyutundaki veri bloklarını şifrelemek için kullanılabilir. Örneğin AES algoritmasının tek bir kez çalıştırılması 128 bit düz metin bloğunu 128 bit boyutunda şifrelenmiş bloğa dönüştürür. Şifreleme algoritmasına girdi olarak verilen anahtar, düz metin ile şifrelenmiş metin arasındaki eşlemeyi sağlar. Keyfi uzunluktaki bir veri şifrelenecekse, uygulanabilecek en basit bir strateji veriyi şifreleme algoritmasının kullandığı blok boyutunda bloklara ayırmak ve elde edilen blokları aynı anahtarla ayrı ayrı şifrelemektir. Bu metot tüm aynı düz metin bloklarını aynı şifrelenmiş metin bloğuna dönüştüreceğinden güvensizdir. Şifrelenmiş metni gözlemleyen  üçüncü şahıslar orijinal metnin içeriği hakkında fikir edinebilir.

Her blok için yeni bir anahtar üretmeden şifrelenmiş verideki desenleri gizlemek için, girdiyi rastgeleleştirme yöntemi gereklidir. 1980'de NIST Federal Bilgi İşleme Standardı (FIPS) PUB 81'i yayınlayarak ulusal bir standart oluşturmuştur. Bu belge rastgeleleştirme için çözüm olarak dört blok şifreleme çalışma kipi içermektedir. İlk kip, yukarıda açıklanan basit stratejiyi uygular ve elektronik kod defteri kipi olarak bilinir. Bu yöntemin tersine, diğer kiplerin tümünde bir aşamada elde edilen şifrelenmiş metin sonraki aşamada şifrelenecek veri bloğunu etkiler. Bu işlemi başlatmak için, ilk blok için kullanılacak bir başlangıç değeri gerekir ve bu değere *ilklendirme vektörü* adı verilir. Örneğin, şifre bloğu zincirleme kipi şifreleme algoritmasının kullandığı blok boyutu uzunluğunda ek bir girdi gerektirir ve şifrelemeden önce bu girdiyi ilk düz metin bloğuna ekler. Buna karşılık, birinci şifreleme adımının sonunda üretilen şifreli metin, ikinci düz metin bloğuna eklenir ve bu böyle devam eder. Şifreleme şemaları için nihai hedef anlamsal güvenlik sağlamaktır: bu özellik sayesinde, bir saldırganın şifrelenmiş metni gözlemleyerek herhangi bir bilgi edinmesi neredeyse imkânsızdır. NIST tarafından belirtilen üç ek kipin, seçilmiş açık metin saldırılarına karşı anlamsal güvenliği sağladığı söylenebilir.

## Özellikler
İV'nin özellikleri kullanılan şifreleme şemasına bağlıdır. Temel bir gerekliliklerden biri *tekliktir*, yani hiçbir İV aynı anahtar altında tekrar kullanılamaz. Blok şifreler için tekrarlanan İV değerleri, şifreleme şemasını elektronik kod defteri kipine dönüştürür: eşit İV ve eşit düz metin, eşit şifrelenmiş metin ile sonuçlanır. Dizi şifrelemesinde benzersizlik kritik derecede önemlidir çünkü benzersizlik mevcut değilse düz metin çok kolay bir şekilde elde edilebilir.

: ***Örnek:*** Dizi şifreleri, düz metin D'yi şifrelenmiş metin Ş'ye anahtar A'yı kullanarak elde ettiği anahtar dizisiyle XORlayarak dönüştürür. (Ş = D *xor* A) Bir saldırganın, aynı anahtar ve İV ile şifrelenmiş iki mesaj olan Ş1 ve Ş2'yi ele geçirdiğini varsayalım. Bu durumda P1 veya P2 diğer düz metinleri açığa çıkarır. 
::*Ş*1 xor Ş2 = (D1 xor A) xor (D2 xor A) = D1 xor D2.

Birçok şema İV'nin bir düşman tarafından *öngörülememesini* gerektirir. Bu, İV'nin rastgele veya sözde rastgele seçilmesiyle gerçekleştirilir. Bu tür şemalarda, tekrarlayan bir İV şansı ihmal edilebilir düzeydedir fakat doğum günü probleminin etkisi gözden kaçırılmamalıdır. Teklik gereksinimine gelince, öngörülebilir bir İV düz metnin (kısmen) kurtarılmasına sebep olabilir.

: ***Örnek:*** Alice adlı meşru bir tarafın mesajlarını şifre bloğu zincirleme kipini kullanarak şifrelediği bir senaryo düşünün. Ayrıca, bu şifrelemeleri gözlemleyebilen ve düz metin halindeki mesajlarını şifrelemesi için Alice'e iletebilen Eve adında bir düşman olduğunu düşünün (başka bir deyişle, Eve seçilmiş açık metin saldırısı yapabilir). Şimdi Alice'in bir ilklendirme vektörü İV1 ve bir şifrelenmiş bir metin olan Ş*<sub>Alice</sub>*'den oluşan bir mesaj gönderdiğini varsayalım. Daha sonrasında D*<sub>Alice</sub>*'in Alice'in mesajının ilk düz metin bloğunu, ŞF'nin şifrelemeyi gösterdiğini düşünelim ve D*<sub>Eve</sub>* Eve'in ilk düz metin bloğu için tahmini olsun. Bu durumda Eve bir sonraki mesajın ilklendirme vektörünü İV2'yi belirleyebilirse Alice'e (İV2 xor İV1 xor D*<sub>Eve</sub>*) ile başlayan bir mesaj yönlendirerek tahminini test edebilir. Eğer tahmininde haklıysa, bu düz metin bloğu Ş*<sub>Alice</sub>* olarak şifrelenir. Bunun nedeni aşağıdaki basit gözlemdir: 
::*Ş<sub>Alice</sub>* = ŞF(İV1 xor D*<sub>Alice</sub>*) = ŞF(İV2 xor (İV2 xor İV1 xor D*<sub>Alice</sub>*)).

Bir kriptografik şema için İV'nin rastgele mi yoksa yalnızca benzersiz mi olması gerektiğine bağlı olarak şema *rastgele* veya *durumsal* olarak adlandırılır. Rastgele düzenler daima gönderen tarafından seçilen bir İV'nin alıcılara iletilmesini gerektirirken, durumsal şemalar gönderenin ve alıcının ortak bir İV durumu paylaşmasını gerektirir. Bu durum her iki tarafta da önceden belirlenmiş bir şekilde güncellenmelidir.

## Blok şifreleme
Verileri blok olarak şifreleme işlemi genellikle çalışma kipi olarak adlandırılır. Şifreleme ve kimlik doğrulamasını birlikte çözen yeni tasarımlar olsa da kipler genellikle bunlardan biri düşünülerek tasarlanır. Şifreleme ve kimlik doğrulamalı şifreleme kipleri genellikle şifrelemede kullanılan blok boyutuyla aynı boyutta bir İV alırken, kimlik doğrulama kipleri genellikle deterministik algoritmalar olarak gerçekleştirilir ve İV'ye sıfır ya da başka bir sabit değer atanır.

## Dizi şifreleme
Dizi şifrelemede İV'ler, şifreleme algoritmasındaki dahili anahtarlı sır durumunda tutulur. Bundan sonra, çıktının ilk bitini göndermeden önce bir dizi şifreleme turu yapılır. Performans nedenleriyle, dizi şifreleme tasarımcıları bu tur sayısını mümkün olduğunca küçük tutmaya çalışır ancak dizi şifreleme için güvenli minimum tur sayısını belirlemek kolay bir iş değildir. Entropi kaybı, her bir şifreleme algoritmasının benzersiz olması, İV ile ilgili saldırılar göze alındığında dizi şifrelemede İV'yi yüklemenin ciddi bir sorun ve araştırma konusu olması anlaşılabilir.

## WEP'te İV
WEP adı verilen 802.11 şifreleme algoritması, 24 bit kısa bir İV kullanmaktaydı ve bu İV'nin aynı anahtarla tekrar tekrar kullanılmasına ve dolayısıyla kolayca kırılması sebep oldu. Paket enjeksiyonu, WEP'in birkaç saniye gibi kısa bir sürede kırılmasını sağlıyordu. Bu da WEP'in kullanımdan kaldırılmasına yol açtı.

## SSL'de 2.0 İV
Şifreli blok zincirleme kipinde İV, benzersiz olmasının yanı sıra şifreleme sırasında öngörülemez olmalıdır. Özellikle geçmişte yaygın olarak kullanılan, şifrelemedeki son bloğun gelecek şifrelemede İV olarak kullanılması güvensizdir (Bu yöntem SSL 2.0 tarafından kullanılmıştır). Saldırgan sonraki düz metni belirlemeden önce İV'yi ya da şifrelenmiş metnin önceki bloğunu biliyorsa, daha önceden aynı anahtarla şifrelemiş düz metin hakkındaki tahminini kontrol edebilir. Bu, BEAST saldırısı olarak da adlandırılan TLS CBC IV saldırısı olarak bilinir.

## Ayrıca bakınız

* Dolgu (kriptografi) 
* Blok şifre çalışma kipleri

## Kaynakça

## Konuyla ilgili yayınlar

* 
*