Simetrik — Blok Şifreleme Algoritmaları ve Yapısı

Üsame Kaldırım
lTunes Tribe
Published in
7 min readJun 30, 2019

Kriptoloji insanlığın yaradılışından bu yana çeşitli evreler geçirerek günümüze ulaşmıştır. Kökü 4000 yıl öncesine dayanan en eski teknik çalışmalardan birisidir. Zaman içinde insanoğlunun gelişmesi birlikte sürekli gelişen bu yapı kendi içerisinde türlere ayrılmıştır. Ben de bu yazıda bunlardan bir tanesi olan Simetrik - Blok Şifreleme Algoritmaları’ndan bahsetmeye çalışacağım.

Şifreleme -Simetrik Şifreleme

Şifreleme bir mesajın gizliliğini sağlamak için kullanılan bir yöntemdir. Şifreleme çeşitlerinden biri olan simetrik şifrelemede ise amaç gönderici ile alıcının ortak bir anahtar üzerinde ve ortak bir şifreleme ile deşifreleme algoritması üzerinde anlaşıp, mesajı diğer kişilerden korumaktır.

Simetrik şifrelemede güvenliği sağlayan anahtardır. Çünkü gizli olan tek şey anahtardır, şifreleme ve deşifreleme algoritmaları herkese açıktır. Bu nedenle önemli olan anahtarın gizli olması. Farklı anahtarlar sayesinde aynı mesaj ve aynı algoritma ile birbirinden bağımsız şifreli metinler üretilebilir.

Simetrik şifrelemenin en önemli avantajlarından birisi oldukça hızlı olmasıdır. Asimetrik şifrelemeyle karşılaştırıldığında hız konusunda simetrik algoritmalar çok daha başarılıdır. Bununla birlikte simetrik algoritmayı içerdiği basit işlemlerden dolayı elektronik cihazlarda uygulamak çok daha kolaydır. Ayrıca simetrik algoritmalarda kullanılan anahtarın boyu ve dolayısıyla bit sayısı çok daha küçüktür.

Kuvvetli Yönleri;

  • Algoritmalar olabildiğince hızlıdır.
  • Donanımla birlikte kullanılabilir.
  • Güvenlidir.

Zayıf Yönleri;

  • Güvenli anahtar dağıtımı zordur.
  • Kapasite sorunu vardır.
  • Kimlik doğrulama ve bütünlük ilkeleri hizmetlerini güvenli bir şekilde gerçekleştirmek zordur.

Simetrik algoritmalar blok şifreleme ve dizi şifreleme algoritmaları olarak ikiye ayrılmaktadır.

Blok Şifreleme Algoritmaları veriyi bloklar halinde işlemektedir. Bazen bağımsız bazen birbirine bağlı olarak şifrelemektedir. Bu algoritmalarda iç hafıza yoktur, bu yüzden hafızasız şifreleme adını da almıştır. Bütünlük kontrolü gerektiren uygulamalarda genellikle blok şifreleme algoritmaları tercih edilir.

Dizi Şifreleme Algoritmaları ise veriyi bir bit dizisi olarak almaktadır. Bir üreteç aracılığı ve anahtar yardımıyla istenilen uzunlukta kayan anahtar adı verilen bir dizi üretilir. Kayan anahtar üretimi zamana bağlıdır ve bu yüzden bu algoritmalara aynı zamanda hafızalı şifreleme denir. Telsiz haberleşmesi gibi gürültülü ortamlarda ses iletimini sağlamak için genellikle dizi şifreleme algoritmaları kullanılır.

Blok Şifreleme Algoritmaları

Kriptografide blok şifreleme, blok olarak adlandırılmış sabit uzunluktaki bit grupları üzerine simetrik anahtar ile belirlenmiş bir deterministik algoritmanın uygulanmasıdır. Blok şifreleme birçok kriptografik protokol tasarımının önemli temel bileşenlerindendir, ve büyük boyutlu dataların şifrelemesinde yaygın biçimde kullanılmaktadır.

Anahtar

Blok şifrelemede kullanılacak anahtarın uzunluğu veya bit sayısının seçimindeki dikkat edilecek husus; güçlü bir şifre seçilmesidir. Yani, saldırganların temel saldırısı olan geniş anahtar arama saldırısına karşı güçlü seçilmeli ve kaba kuvvet (brute-force) saldırısına karşı kırılabilirliği de zor olmalıdır. Örnek olarak DES şifreleme algoritmaları 56-bit anahtar kullanırken, AES algoritması ise 128 bit, 192 bit ve 256 bitlik anahtar seçenekleri ile DES algoritmalarına göre daha avantajlıdır. Kullanılan anahtar random bir şekilde olması ise diğer bir özelliğidir

Döngü Sayısı

Döngü sayısı blok şifreleme algoritmalarının seçimindeki en önemli husustur. Şifrenin karmaşıklığının arttırılmasında lineer transformasyon ve yerdeğiştirme işlemleri öneli bir husustur. Döngü sayısının hesaplanmasında herhangi bir standart olmamasına rağmen Lars Knudsen’e bir formül ile döngü sayısını hesaplamıştır;

r >= dn/w

Burada “r” döngü sayısını, “d” yerdeğiştirme durumuna bir word’ü almak için gerekli maksimum döngü sayısını, “n” blok genişliğini, “w” ise tüm şifrede yerdeğiştirme durumuna giren minimum word genişliğini göstermektedir. (1) de yayılma tekniği ihmal edilmiştir.

S-Kutuları (Substitution Box)

Blok şifreleme algoritmasının en önemli elemanlarından birisi S-kutularıdır. Çünkü algoritmadaki tek doğrusal olmayan elemandır. Bu özelliğinden dolayı S-kutuları kullanılacak şifrenin karmaşıklığını dolayısıyla da algoritmanın gücünü oluşturur. S-kutularının (S-Kutuları lineerliği engellerler) belirlenmesinde lineer kriptanaliz, diferansiyel kriptanaliz ve Davies saldırılarıdırı önemli yer tutmaktadır. Bunlar;

SAC (Strict Avalance Criteria); Herbir giriş bit’inin değişmesi sonucunda çıkış bitinin değişme olasılığı ½ olur.

S-kutularının genişliği; S-kutunun büyüklüğü saldırılardan korunmamıza doğru orantılı olarak yansımaktadır. Sitemi hangi tür kriptanaliz saldırılarından korunacağımızı belirlemek önemlidir. Eğer diferansiyel saldırılardan korunmak istiyorsak, algoritmada büyük sayıda çıkış bit’leri kullanmalıyız. Eğer lineer saldırılardan korunmak istiyorsak da bu sefer giriş bit’lerini büyük sayıda kullanmalıyız.

S-kutusu gereksinimleri; Çıkışların dağılımları Davies saldırısına karşın kontrol edilmeli, çıkışlar girişe göre lineer olmamalı, S kutusunun her sırasındaki değerler tek olmalıdır. Daha güçlü S kutuları yaratmak için çeşitli çalışmalar da yapılmıştır

Örnek Bir S-Kutusu(S-Box)

Önemli Blok Şifreleme Algoritmaları

DES Algoritması

Açılımı Data Encryption Standart olan simetrik şifreleme algoritmasıdır. 1997'deresmi bilgi şifreleme standardı olarak kabul edilirken, 2000'de yerini AES’e bırakmıştır.

DES, gizli anahtarlı bir şifreleme türüdür, büyük boyutlu verilerin şifrelenmesinde kullanılır. Şifreleme işlemi Blok Şifreleme olarak adlandırılan bir yöntem ile gerçekleştirilir. Bu yöntem, şifreli metin ile düz metinarasındaki ilişkiyi gizlemeyi amaçlar. Her şifreleme adımına döngü denilir ve her döngüde kullanılan anahtar farklıdır. Açık mesaj, belirli uzunluktaki bloklara bölünür ve ayrı ayrı şifrelenen bloklar ile şifreli metin elde edilir. Her bir blok, 8 bit parity biti olmak suretiyle, 64 bit uzunluğundadır. Blok uzunluğu, kullanılan işlemci hızına göre değişebilir. Yeni dönem bilgisayarlarda, 128 bit kullanılmaya başlanmıştır.

DES, bağımlılık fazla olmasına rağmen, modern bilgisayarlara dayanamaz. Brute Force ataklarına karşı güvensizdir. Bu noktada DES’in güvenilirliğini artırmak için 3DES yöntemi geliştirilmiştir.Bu yöntemde, şifrelenen veri tekrar geri çözülür ve DES şifrelemesi 3 sefer ard arda yapılır. DES’i kırmak için yüksek maliyetle son teknoloji makineler geliştirilmiş olmasına rağmen 3DES(Triple DES), bankalar ve devlet daireleri olmak üzere birçok ortamda kullanılmaya devam etmektedir.

Blowfish Algoritması

Simetrik şifreleme yöntemlerinden biri olan Blowfish algoritmasının başlıca
özellikleri şunlardır :

  1. Simetrik şifreleme kullanılır.
  2. Veri 64 bitlik bloklarar ayrılır.
  3. Her biri 32 bitlik olan 18 alt anahtardan oluşmaktadır.
  4. 4 adet S boxtan oluşan fonksiyon kullanılır.
  5. 16 kez tekrarlanır , bu adımlardan alt anahtarlarla XOR işlemi yapılır.

Gönderilecek veri ilk olarak 64 bitlik bloklara ayrılır. Her blok için şifreleme işlemi yapılarak bu işlemler sonucunda şifrelenmiş veri elde edilir.

Blowfish Algoritması Çalışma Şekli

IDEA (Uluslararası Şifreleme Algoritması)

Açılımı “International Data Encryption Algorithm” olan IDEA 1990′da Xuejia Lai ve James Massey tarafından bulunmuştur. 1991 yılında tasarlanmış bir blok şifreleme algoritmasıdır. Bu algoritmaya DES yerine üretilen PES’in geliştirilmiş hali denebilir. Aynı zamanda Ascom tech adlı firmanın tescilli algoritmasıdır. IDEA algoritması PGP adlı program ile kullanılarak popüler bir hal almıştır. Bilinen en güçlü algoritmalardandır. İlk öncelerini PES adıyla anılan bu algoritma geçirdiği revizyonlar ertesinde şu andaki halini almıştır. İsviçre, Zürih’de geliştirilmiştir. Patenti Ascom Systec Ltd isimli bir firmaya aittir. Ancak ticari olmayan amaçlar için lisans ücreti talep edilmemektedir. PGP’nin temelini oluşturan 2 ana algoritmadan birisidir.

Avantajları

  • Algoritmalar hızlıdır
  • Algoritmaların donanımla gerçeklenmesi kolaydır
  • “Gizlilik” güvenlik hizmetini yerine getirir

Dezavantajları

  • Ölçeklenebilir değil
  • Emniyetli anahtar dağıtımı zor
  • “Bütünlük” ve “Kimlik Doğrulama” güvenlik hizmetlerini gerçeklemek zor

AES Algoritması

AES (Advanced Encryption Standard; Gelişmiş Şifreleme Standardı), elektronik verinin şifrelenmesi için sunulan bir standarttır. Amerikan Hükümeti tarafından kabul edilen AES, uluslararası alanda da defacto şifreleme (kripto) standardı olarak kullanılmaktadır. DES’in (Data Encryption Standard — Veri Şifreleme Standardı yerini almıştır. AES ile tanımlanan şifreleme algoritması, hem şifreleme hem de şifreli metni çözmede kullanılan anahtarların birbiriyle ilişkili olduğu, simetrikanahtarlı bir algoritmadır. AES için şifreleme ve şifre çözme anahtarları aynıdır.

AES, Değiştirme-Karıştırma(Substutition-Permutation) olarak bilinen tasarım temeline dayanır. Öncülü DES ise Feistel yapıda tasarlanmış bir algoritmadır. AES’in hem yazılım hem de donanım performansı yüksektir. 128-bit girdi bloğu, 128,192 ve 256 bit anahtar uzunluğuna sahiptir. AES’in temel alındığı Rijndael ise 128–256 bit arasında 32'nin katı olan girdi blok uzunluklarını ve 128 bitten uzun anahtaruzunluklarını desteklemektedir. Dolayısıyla, standartlaşma sürecinde anahtar ve girdi blok uzunluklarında kısıtlamaya gidilmiştir.

AES, durum(state) denilen 4x4 sütun-öncelikli bayt matrisi üzerinde çalışır. Matristeki işlemler de özel bir sonlu cisim (finite field) üzerinde yapılmaktadır. Algoritma belirli sayıda tekrar eden girdi açık metni, çıktı şifreli metne dönüştüren özdeş dönüşüm çevirimlerinden (round) oluşmaktadır. Her çevirim, son çevirim hariç, dört adımdan oluşmaktadır. Şifreli metni çözmek için bu çevirimler ters sıra ile uygulanır. Çevirimlerin tekrar sayıları 128-bit, 192-bit ve 256-bit anahtar uzunlukları için sırası ile 10,12 ve 14'tür.

Camellia Algoritması

Camellia,128-bit veri bloklarını 128, 192 veya 256-bit anahtar seçenekleri ile şifreleyen bir şifreleme algoritmasıdır. 2000 yılında NTT(Nippon Telegraph And Telephone Corporation) ve Mitsubishi Electric Corporation tarafından ortak geliştirilmiştir. Camellia şifresinde kullanılan doğrusal dönüşüm matrisi MDBL (Maximal Distance Binary Linear) kod olarak tasarlanmıştır.

Camellia şifrelemesi bir blok şifreleme yöntemidir. Şifreleme yönteminde 128 bit’lik veriler üzerinde 128, 192 veya 256 bit’lik anahtarlar ile şifreleme işlemi gerçekleştirilebilir. Yöntemin temelinde bulunan feistel ağı, 128 bit’lik şifreleme için 18 tur, 192 veya 256 bit’lik şifreleme için 24 tur çalışır. Şifreleme yönteminin içinde ayrıca S-kutuları ve anahtar beyazlatma yöntemlerinden de faydalanılır.

Camellia, simetrik bir şifreleme türüdür. 2000 yılında NTT ve Mitsubishi Electric Corporation tarafından ortak geliştirilmiştir. Bilinen tüm şifre çözme saldırılarına karşı koyabilmek için tasarlanmış ve dünya çapında şifre çözücüler tarafından incelenmiştir. Camellia Şifrelemesi donanım ve yazılım platformlarına uygulanabilir ve AES algoritması ile karşılaştırma yapılabilecek kadar hızlı şifreleme yapabilmektedir.

Algoritmaların temelde ne olduklarından bahsettim. Bunların dışında Twofish, IRON, RC4, RC5 gibi başka simetrik şifreleme yöntemleri de bulunuyor. Bir sonraki yazımızda AES ve Camelia algoritmalarını daha detaylı inceliyor olacağız.

Görüşmek üzere…

--

--