Blok Şifreleme Çalışma Modları
Bu bölümde, bir blok şifresinin farklı çalışma modlarını tartışacağız. Bunlar genel bir blok şifresi için prosedür kurallarıdır. İlginç bir şekilde, farklı modlar, temeldeki blok şifresinin güvenliğini artıran farklı özelliklerin elde edilmesiyle sonuçlanır.
Bir blok şifresi, sabit boyutlu veri bloklarını işler. Genellikle bir mesajın boyutu blok boyutundan daha büyüktür. Bu nedenle, uzun mesaj bir dizi sıralı mesaj bloğuna bölünür ve şifre bu bloklar üzerinde birer birer çalışır.
Elektronik Kod Kitabı (ECB) Modu
Bu mod, bir dizi sıralı olarak listelenmiş mesaj bloğunu işlemenin en basit yoludur.
Operasyon
Kullanıcı ilk düz metin bloğunu alır ve ilk şifreli metin bloğunu oluşturmak için anahtarla şifreler.
Daha sonra ikinci düz metin bloğunu alır ve aynı işlemi aynı anahtarla takip eder ve bu böyle devam eder.
ECB modu deterministicyani düz metin bloğu P1, P2,…, Pm aynı anahtar altında iki kez şifrelenirse, çıkış şifreli metin blokları aynı olacaktır.
Aslında, teknik olarak belirli bir anahtar için olası tüm düz metin blokları için şifreli metinlerden oluşan bir kod kitabı oluşturabiliriz. Şifreleme, daha sonra yalnızca gerekli düz metni aramayı ve karşılık gelen şifreli metni seçmeyi gerektirir. Bu nedenle işlem, bir kod kitabındaki kod kelimelerinin atanmasına benzerdir ve bu nedenle resmi bir isim alır - Elektronik Kod Kitabı çalışma modu (ECB). Aşağıdaki gibi gösterilmektedir -
ECB Modunun Analizi
Gerçekte, herhangi bir uygulama verisi genellikle tahmin edilebilecek kısmi bilgilere sahiptir. Örneğin, maaş aralığı tahmin edilebilir. ECB'den gelen bir şifreli metin, eğer düz metin mesajı tahmin edilebilir içindeyse, bir saldırganın düz metni deneme yanılma yoluyla tahmin etmesine izin verebilir.
Örneğin, ECB modundan bir şifreli metnin bir maaş rakamını şifrelediği biliniyorsa, az sayıda deneme, bir saldırganın rakamı kurtarmasına izin verecektir. Genel olarak, deterministik bir şifre kullanmak istemiyoruz ve bu nedenle ECB modu çoğu uygulamada kullanılmamalıdır.
Şifre Bloğu Zincirleme (CBC) Modu
CBC çalışma modu, şifreli metin oluşturmak için mesaj bağımlılığı sağlar ve sistemi deterministik olmayan hale getirir.
Operasyon
CBC modunun çalışması aşağıdaki şekilde gösterilmektedir. Adımlar aşağıdaki gibidir -
N-bit Başlatma Vektörünü (IV) üst kayıt defterine yükleyin.
Üst kayıtta veri değeri olan n-bit düz metin bloğunu XOR.
XOR işleminin sonucunu, temeldeki blok şifresi ile K anahtarıyla şifreleyin.
Şifreli metin bloğunu üst kayda besleyin ve tüm düz metin blokları işlenene kadar işleme devam edin.
Şifre çözme için, IV verileri XOR'lanır ve ilk şifreli metin bloğunun şifresi çözülür. İlk şifreli metin bloğu, sonraki şifreli metin bloğunun şifresini çözmek için IV'ün yerini alan yazmacıya da beslenir.
CBC Modunun Analizi
CBC modunda, geçerli düz metin bloğu önceki şifreli metin bloğuna eklenir ve ardından sonuç anahtarla şifrelenir. Dolayısıyla şifre çözme, mevcut şifreli metnin şifresinin çözülmesini ve ardından sonuca önceki şifreli metin bloğunun eklenmesini içeren ters işlemdir.
CBC'nin ECB'ye göre avantajı, IV'ün değiştirilmesinin aynı mesaj için farklı şifreli metinlerle sonuçlanmasıdır. Dezavantaj tarafında, zincirleme etkisinden dolayı şifre çözme sırasında iletimdeki hata birkaç bloğa yayılır.
CBC modunun iyi bilinen bir veri kaynağı kimlik doğrulama mekanizmasının temelini oluşturduğunu belirtmek gerekir. Dolayısıyla, hem simetrik şifreleme hem de veri kaynağı kimlik doğrulaması gerektiren uygulamalar için bir avantaja sahiptir.
Şifreleme Geri Bildirimi (CFB) Modu
Bu modda, her şifreli metin bloğu, bir sonraki düz metin bloğunu şifrelemek için şifreleme sürecine 'geri beslenir'.
Operasyon
CFB modunun çalışması aşağıdaki şekilde gösterilmektedir. Örneğin mevcut sistemde bir mesaj bloğu, 1 <s <n olan bir boyut 's' bitine sahiptir. CFB modu, ilk rasgele n-bit giriş bloğu olarak bir başlatma vektörü (IV) gerektirir. IV'ün gizli olması gerekmez. İşlem adımları -
IV'ü üst kasaya yükleyin.
Üst kayıttaki veri değerini, temel blok şifresi ile K anahtarıyla şifreleyin.
Şifreleme işleminin çıktısının en önemli bitlerinin (sol bitlerinin) yalnızca 's' sayısını alın ve şifreli metin bloğu oluşturmak için bunları 's' bit düz metin mesaj bloğu ile XOR yapın.
Zaten mevcut verileri sola kaydırarak şifreli metin bloğunu üst yazmacıya besleyin ve tüm düz metin blokları işlenene kadar işleme devam edin.
Esasen, önceki şifreli metin bloğu anahtarla şifrelenir ve ardından sonuç, mevcut düz metin bloğuna XORlanır.
Şifre çözme için benzer adımlar izlenir. Önceden kararlaştırılmış IV, başlangıçta şifre çözme işleminin başlangıcında yüklenir.
CFB Modunun Analizi
CFB modu, ECB modundan önemli ölçüde farklıdır; belirli bir düz metin bloğuna karşılık gelen şifreli metin, yalnızca bu düz metin bloğuna ve anahtara değil, aynı zamanda önceki şifreli metin bloğuna da bağlıdır. Diğer bir deyişle, şifreli metin bloğu mesaja bağlıdır.
CFB'nin çok garip bir özelliği var. Bu modda, kullanıcı şifreli metnin şifresini yalnızca blok şifresinin şifreleme işlemini kullanarak çözer. Altta yatan blok şifresinin şifre çözme algoritması asla kullanılmaz.
Görünüşe göre, CFB modu bir blok şifresini bir tür akış şifresine dönüştürüyor. Şifreleme algoritması, alt kayda yerleştirilen anahtar akışını üretmek için bir anahtar akışı üreteci olarak kullanılır. Bu anahtar akışı daha sonra, şifreleme durumunda olduğu gibi düz metin ile XORlanır.
Bir blok şifresini bir akış şifresine dönüştürerek, CFB modu, bir blok şifresinin avantajlı özelliklerini korurken bir akış şifresinin bazı avantajlı özelliklerini sağlar.
Kapak tarafında, blokların değişmesi nedeniyle iletim hatası yayılır.
Çıkış Geri Besleme (OFB) Modu
Altta yatan blok şifresinden ardışık çıktı bloklarını ona geri beslemeyi içerir. Bu geri bildirim blokları, CFB modunda olduğu gibi anahtar akışı üreteci olarak görev yapan şifreleme algoritmasını beslemek için bit dizisi sağlar.
Üretilen anahtar akışı düz metin blokları ile XOR-ed'dir. OFB modu, ilk rastgele n-bit giriş bloğu olarak bir IV gerektirir. IV'ün gizli olması gerekmez.
İşlem aşağıdaki şekilde tasvir edilmiştir -
Sayaç (TO) Modu
Geri bildirim olmadan CFB modunun sayaç tabanlı bir versiyonu olarak düşünülebilir. Bu modda, hem gönderen hem de alıcının, bir şifreli metin bloğu her değiş tokuş edildiğinde yeni bir paylaşılan değeri hesaplayan güvenilir bir sayaca erişmesi gerekir. Bu paylaşılan sayaç mutlaka gizli bir değer değildir, ancak zorluk, her iki tarafın da sayacı senkronize tutması gerektiğidir.
Operasyon
Aşağıdaki şekilde CTR modunda hem şifreleme hem de şifre çözme gösterilmektedir. Operasyondaki adımlar -
İlk sayaç değerini üst kayda yükleyin, hem gönderen hem de alıcı için aynıdır. CFB (ve CBC) modunda IV ile aynı rolü oynar.
Sayacın içeriğini anahtarla şifreleyin ve sonucu alt kayda yerleştirin.
İlk düz metin bloğu P1'i alın ve bunu alt kaydın içeriğine XOR. Bunun sonucu C1'dir. Alıcıya C1 gönderin ve sayacı güncelleyin. Sayaç güncellemesi, CFB modunda şifreli metin geri bildiriminin yerini alır.
Son düz metin bloğu şifrelenene kadar bu şekilde devam edin.
Şifre çözme, ters işlemdir. Şifreli metin bloğu, sayaç değerinin şifrelenmiş içeriklerinin çıktısı ile XOR'lanır. Her şifreli metin bloğunun şifresinin çözülmesinden sonra, şifreleme durumunda olduğu gibi sayaç güncellenir.
Sayaç Modu Analizi
Mesaj bağımlılığı yoktur ve bu nedenle bir şifreli metin bloğu önceki düz metin bloklarına bağlı değildir.
CFB modu gibi, CTR modu da blok şifresinin şifre çözme sürecini içermez. Bunun nedeni, CTR modunun, XOR işlevi kullanılarak şifrelenen bir anahtar akışı oluşturmak için gerçekten blok şifrelemeyi kullanmasıdır. Başka bir deyişle, CTR modu ayrıca bir blok şifresini bir akış şifresine dönüştürür.
CTR modunun ciddi dezavantajı, gönderen ve alıcıda eşzamanlı bir sayaç gerektirmesidir. Senkronizasyon kaybı, düz metnin yanlış kurtarılmasına yol açar.
Bununla birlikte, CTR modu, CFB modunun neredeyse tüm avantajlarına sahiptir. Ek olarak, iletim hatasını hiçbir şekilde yaymaz.