Dizi şifresi

Kriptolojide dizi şifresi, şifrelenecek açık metnin içeriğindeki basamakların bir sözderastlantısal şifre basamak dizisiyle (anahtar dizisi) birleştirildiği bir simetrik anahtar şifreleme metodudur. Bir dizi şifresinde, açık metindeki her bir basamak, anahtar dizisinde bu basamağa denk gelen basamakla şifre metninin basamaklarını elde etmek amacıyla her seferinde birer kez olmak üzere şifrelenir. Her bir basamağın şifrelenmesi o anki iç duruma bağlı olduğu için dizi şifrelerine durum şifreleri de denmektedir. Pratikte, her bir basamak bir bit ve birleştirme operatörü XOR işlemidir.
Sözderastlantısal anahtar dizileri genellikle rastsal bir tohum değerinden dijital kaydırma yazmaçlarının seri olarak kullanılmasıyla üretilir. Burada kullanılan tohum değeri daha sonra şifre metninin deşifre edilmesinde anahtar olarak kullanılır.
Dizi şifrelerinin simetrik şifrelemeye yaklaşımı Blok Şifreleri'nden farklıdır. Blok şifreleri sabit ve değişmez büyük basamak blokları üzerinde çalışmaktadırlar. Bu iki şifreleme metodu arasındaki ayrım her zaman belirgin değildir: bazı blok şifrelerindeki işlem kiplerinde bir blok şifre primitifi kullanıma bağlı olarak dizi şifresi karakteri gösterebilir. Dizi şifreleri blok şifreleri ile kıyaslandığında daha hızlı çalışmakta olup daha az donanım maliyetine sahiptirler. Buna karşın dizi şifreleri eğer yanlış kullanılırlarsa ciddi güvenlik açıkları verebilmektedirler (Dizi Şifre Saldırıları). Özellikle, aynı başlangıç rastsal tohumu (yani aynı başlangıç durumu) asla bir defadan fazla kullanılmamalıdır.

Dizi Şifrelerinin Tek kullanımlık Şeritlerle İlişkisi

Dizi şifreleri, kırılamaz olduğu kanıtlanmış bir şifreleme yönteminin, bazen Vernam Şifreleri olarak da adlandırılan Tek Kullanımlık Şeritlerin eylemlerini yakınsayan bir şifreleme yöntemi olarak görülebilir. Bir tek kullanımlık şifreleme yöntemi tamamen rastsal basamaklardan oluşan bir anahtar dizisi kullanır. Bu anahtar dizisi, şifre metnini oluşturmak üzere her seferde birer kez olmak üzere açık metinle birleştirilir. Bu sistemin güvenli olduğu Claude Shannon tarafından 1949 yılında kanıtlanmıştır. Bu metotta üretilen anahtar dizisi tamamen rastsal olarak üretilmeli ve uzunluğu en az açık metin kadar olmalıdır. Bu dezavantaj pratikte sistemi gerçeklemeyi elverişsiz kılmakta ve sonuç olarak çok kritik uygulamalar dışında tek kullanımlık şeritler fazla kullanılmamaktadır.
Bir dizi şifresi 128 bitlik gibi çok daha küçük ve daha uygun bir anahtar kullanabilir. Bu anahtarı kullanarak, açık metnin basamaklarıyla tek kullanımlık şeritlerdekine benzer bir şekilde birleştirilmek üzere bir sözderastlantısal anahtar dizisi üretir. Bu yöntem tek kullanımlık şeritlere kıyasla daha pratik olmasına karşın ciddi bir maliyeti de beraberinde getirmektedir. Üretilen anahtar dizisi sözderastlantısal olup tam rastsal olmadığı için tek kullanımlık şeritlerle ilişkilendirilen güvenlik kanıdı burada artık geçerli olmamaktadır: bir dizi şifresinin tamamen güvensiz olması gayet olasıdır.

Dizi Şifrelerinin Çeşitleri

Bir dizi şifresi bir iç durumu esas alarak anahtar dizisinin ardışık elemanlarını üretir. Buradaki iç durum iki yolla güncellenebilir: birinci yöntemde durum açık metin veya şifre metin mesajlarından bağımsız olarak değişmekte olup durumu bu şekilde güncelleyen dizi şifreleri eşzamanlı (senkronize) dizi şifreleri olarak sınıflandırılmaktadır. Buna karşın, oto-eşzamanlı (oto-senkronize) dizi şifreleri durumlarını önceki şifre metin basamaklarını baz alarak güncellemektedirler.

Eşzamanlı Dizi Şifreleri

Bir eşzamanlı dizi şifresinde sözderastlantısal bir basamak dizisi açık metin ve şifre metin mesajlarından bağımsız olarak üretilir ve daha sonra şifrelemek amacıyla açık metinle veya şifrelenmiş mesajı deşifre etmek amacıyla şifre metniyle birleştirilir. En yaygın formunda ikilik basamaklar (bit) kullanılmakta ve anahtar dizisi açık metin ile XOR işlemi kullanılarak birleştirilmektedir. Bu şemaya ikili eklemeli dizi şifresi adı verilmektedir.
Bir eşzamanlı dizi şifresinde, şifre metninin deşifresinin başarılı olabilmesi için mesajı yollayan ve alan tamamen senkron olmalıdır. Eğer iletim esnasında mesaja basamaklar eklenir ya da çıkarılırsa senkronizasyon kaybolur. Kaybolan bir senkronizasyonu yeniden sağlamak için, çeşitli görelemeler doğru deşifrelemeyi elde etmek amacıyla sistematik olarak denenebilir. Senkronizasyonu yeniden sağlamanın diğer bir yolu ise çıktıdaki şifre metnini düzenli noktalarda imleyicilerle etiketlemektir.
Buna karşın, eğer iletim sırasında bir basamağın eklenmesi veya kaybolması yerine o basamak bozulursa, açık metinde sadece bir basamak bozulmakta ve burada oluşan hata mesajın diğer bölümlerine yayılmamaktadır. Bu özellik iletim hata oranının yüksek olduğu durumlarda yararlı olmakla birlikte buna karşın hatanın ilave mekanizmalar kullanılmadan keşfedilmesini zor kılmaktadır. Buna ek olarak bu özellik, eşzamanlı dizi şifrelerini aktif saldırılara karşı hassas hale getirmektedir. Eğer bir saldırgan şifre metnindeki bir basamağı değiştirebilirse, açık metinde bu basamağa denk gelen basamağa tahmin edilebilir değişiklikler yapabilmektedir (örneğin şifre metnindeki bir bitin ters çevrilmesi durumunda açık metinde buna denk gelen bitin de ters çevrilmesi gibi).

Oto-Eşzamanlı Dizi Şifreleri

Diğer bir yaklaşım ise anahtar dizisini hesaplamak amacıyla önceki N şifre metin basamağının kullanılmasıdır. Bu tarz şemalar oto-eşzamanlı dizi şifreleri, eşzamansız dizi şifreleri veya şifre metni oto-anahtarı olarak bilinmektedir. Oto-eşzamanlama fikri 1946 yılında patentlenmiş olup, mesajı alanın N şifre metni basamağına sahip olduktan sonra otomatik olarak anahtar dizisi üreteciyle senkronize olma avantajı, iletim sırasında mesaj dizisine basamak eklenmesi ya da mesaj dizisinden basamak çıkarılması durumlarına karşı düzeltme sürecini daha kolay hale getirmektedir. Tek basamak hataları yarattıkları etkide sınırlı olup en fazla N açık metin basamağını etkilemektedir.
Oto-eşzamanlı dizi şifresine örnek olarak blok şifrelerindeki şifre geribildirim kipi (CFB) örnek olarak verilebilir.

Doğrusal Geribildirim Kaydırma Yazmacı Tabanlı Dizi Şifreleri

Basamak olarak ikilik taban kullanan dizi şifreleri genelde Doğrusal Geribildirim Kaydırma Yazmaçları (DGKY'ler) kullanılarak gerçeklenmektedirler çünkü bu yöntem donanım seviyesinde kolaylıkla gerçeklenebilmekte ve bu yöntemin matematiksel analizleri hali hazırda yapılmış durumdadır. Buna rağmen, DGKY'lerin kendi başlarına kullanılması güvenli bir sistem sağlamak açısından yetersizdir. Bu sebeple DGKY'lerin güvenliğini arttırmak için çeşitli metotlar önerilmiştir.

Diğer Tasarımlar

Doğrusal bir sürücü cihaz yerine doğrusal olmayan bir güncelleme fonksiyonu kullanılabilir. Buna örnek olarak, Klimov ve Shamir tarafından önerilen ve tek bir döngüde n bit üzerinde çalışan üçgensel fonksiyonlar örnek olarak verilebilir.

Kullanım

Dizi şifreleri genellikle hızlı ve donanımda gerçeklenmesi kolay oldukları için tercih edilmektedirler. Buna ek olarak, açık metnin bilinmeyen uzunluklarda geldiği güvenli kablosuz bağlantı gibi uygulamalarda da kullanılmaktadır. Eğer bu tip uygulamalarda dizi şifresi kipinde çalışmayan blok şifreleme metodu kullanılacak olsaydı, blok şifreleri çalıştıkları blok büyüklüğünden daha küçük blok büyüklüklerinde doğrudan çalışamadıkları için, uygulama tasarımcısı ya iletim verimliliğini ya da gerçekleme karmaşıklığını tercih etmek durumunda kalırdı. Örneğin eğer 128-bitlik bir blok şifresi ayrı 32-bitlik açık metin parçaları alacak olsaydı, gönderilecek verinin üç çeyreği dolgu olarak kullanılırdı. Dizi şifreleri iletim yapılabilecek en küçük birim (genellikle bayt) üzerinde çalıştığı için bu sorunu doğal olarak elerken, blok şifreleri dolgulamadan sakınmak için şifre metni çalma veya artık blok sonlandırma kipinde kullanılmalıdırlar.
Dizi şifrelerinin diğer bir avantajı ise askeri kriptografide alanındadır. Burada dizi şifresi katı güvenlik kuralları altındaki ayrı bir kutuda üretilip, daha sonra kendi işlevinin bir parçası olarak XOR işlemini kullanan radyo seti gibi çeşitli cihazlara beslenebilir. Bu şekilde dizi şifresiyle beslenen cihaz sonra daha esnek güvenlik kurallarına sahip bir ortamda tasarlanıp kullanılabilir.
RC4 yazılımlarda en sık kullanılan dizi şifresidir. Diğer sık kullanılan dizi şifrelerine örnek olarak A5/1, A5/2, Chameleon, FISH, Helix, ISAAC, MUGI, Panama, Phelix, Pike, SEAL, SOBER, SOBER-128 ve WAKE verilebilir.