Gelişmiş Şifreleme Standardı
Günümüzde karşılaşılması muhtemel olan daha popüler ve yaygın olarak benimsenen simetrik şifreleme algoritması, Gelişmiş Şifreleme Standardı'dır (AES). Üçlü DES'ten en az altı kat daha hızlı bulunur.
Anahtar boyutu çok küçük olduğu için DES'in yerini alması gerekiyordu. Artan bilgi işlem gücüyle, kapsamlı anahtar arama saldırısına karşı savunmasız kabul edildi. Üçlü DES bu dezavantajın üstesinden gelmek için tasarlandı, ancak yavaş bulundu.
AES'in özellikleri aşağıdaki gibidir -
- Simetrik anahtar simetrik blok şifresi
- 128-bit veri, 128/192/256-bit anahtarlar
- Triple-DES'ten daha güçlü ve daha hızlı
- Tam özellik ve tasarım ayrıntılarını sağlayın
- C ve Java'da uygulanabilir yazılım
AES'in çalışması
AES, Feistel şifresinden ziyade yinelemeli bir şifredir. 'İkame-permütasyon ağına' dayanmaktadır. Bazıları girdilerin belirli çıktılarla (ikameler) değiştirilmesini ve diğerleri de bitlerin karıştırılmasını (permütasyonlar) içeren bir dizi bağlantılı işlemden oluşur.
İlginç bir şekilde, AES tüm hesaplamalarını bitler yerine baytlar üzerinde gerçekleştirir. Bu nedenle, AES bir düz metin bloğunun 128 bitini 16 bayt olarak ele alır. Bu 16 bayt, matris olarak işlenmek üzere dört sütun ve dört sıra halinde düzenlenmiştir -
DES'ten farklı olarak, AES'deki tur sayısı değişkendir ve anahtarın uzunluğuna bağlıdır. AES, 128 bit anahtarlar için 10 tur, 192 bit anahtarlar için 12 tur ve 256 bit anahtarlar için 14 tur kullanır. Bu turların her biri, orijinal AES anahtarından hesaplanan farklı bir 128 bitlik yuvarlak anahtar kullanır.
AES yapısının şematiği aşağıdaki şekilde verilmiştir -
Şifreleme Süreci
Burada, tipik bir AES şifreleme turunun açıklamasını kısıtlıyoruz. Her tur dört alt süreçten oluşur. İlk tur süreci aşağıda tasvir edilmiştir -
Bayt Değiştirme (Alt Bayt)
16 giriş baytı, tasarımda verilen sabit bir tabloya (S-kutusu) bakılarak ikame edilir. Sonuç, dört satır ve dört sütundan oluşan bir matristir.
Shiftrows
Matrisin dört satırının her biri sola kaydırılır. "Düşen" tüm girişler satırın sağ tarafına yeniden eklenir. Vardiya aşağıdaki şekilde gerçekleştirilir -
İlk sıra kaydırılmaz.
İkinci sıra bir (bayt) pozisyon sola kaydırılır.
Üçüncü sıra iki sıra sola kaydırılır.
Dördüncü sıra üç sıra sola kaydırılır.
Sonuç, aynı 16 bayttan oluşan ancak birbirine göre kaydırılan yeni bir matristir.
MixColumns
Dört baytlık her sütun artık özel bir matematiksel işlev kullanılarak dönüştürülür. Bu işlev, bir sütunun dört baytını girdi olarak alır ve orijinal sütunun yerini alan tamamen yeni dört bayt çıkarır. Sonuç, 16 yeni bayttan oluşan başka bir yeni matristir. Son turda bu adımın gerçekleştirilmediğine dikkat edilmelidir.
Addroundkey
Matrisin 16 baytı artık 128 bit olarak kabul edilir ve yuvarlak anahtarın 128 bitine XORlanır. Bu son tursa, çıktı şifreli metindir. Aksi takdirde, ortaya çıkan 128 bit 16 bayt olarak yorumlanır ve benzer bir tur daha başlatırız.
Şifre Çözme İşlemi
Bir AES şifreli metninin şifresini çözme işlemi, ters sırada şifreleme işlemine benzer. Her tur, ters sırada yürütülen dört işlemden oluşur -
- Yuvarlak anahtar ekle
- Sütunları karıştır
- Satırları kaydır
- Bayt ikamesi
Feistel Cipher'dan farklı olarak her turdaki alt süreçler ters yönde olduğundan, şifreleme ve şifre çözme algoritmalarının birbirleriyle çok yakından ilişkili olmalarına rağmen ayrı ayrı uygulanması gerekir.
AES Analizi
Günümüz kriptografisinde, AES hem donanım hem de yazılımda yaygın olarak benimsenmekte ve desteklenmektedir. Bugüne kadar, AES'e karşı hiçbir pratik kriptanalitik saldırı keşfedilmedi. Ek olarak, AES, kapsamlı anahtar aramaları gerçekleştirme yeteneğindeki ilerlemeye karşı bir dereceye kadar 'geleceğe hazırlığa' izin veren yerleşik anahtar uzunluğu esnekliğine sahiptir.
Bununla birlikte, tıpkı DES için olduğu gibi, AES güvenliği yalnızca doğru bir şekilde uygulanırsa ve iyi bir anahtar yönetimi kullanılırsa sağlanır.