Blok Şifreleme

Hacer Dalkiran
5 min readJun 20, 2021

--

Daha önce Sezar şifrelemeden bahsetmiştim. Kısaca hatırlamak gerekirse, belirlenen bir sayı kadar alfabedeki harflerin yerlerinin değiştirilmesi olarak tanımlayabiliriz. Modern kriptoloji, bağlantı yolunun güvensiz olduğunu, yani arada bir dinleyen (man in the middle) olduğu varsayımı üstüne kuruludur. Bu yüzden bir zamanlar insanların kriptolojiden bihaber oldukları bir dünyada kullanılabilir olsa da içinde olduğumuz dönemde güvenilir bir yöntem olduğu söylenemez. Zaten basit bir frekans analizi ile çözülmesi saniyeleri bulacaktır.

Frekans analizi şifreli metinde en fazla tekrar eden harfleri tespit edip dildeki kullanım oranları da hesaba katılarak şifrenin çözülmesidir. Blok şifreler frekans analizine de dayanıklı olacak şekilde tasarlanmıştır. Yani şifreli metne frekans analizi yapılsa da tekrar eden harfler sorun oluşturmayacaktır.

Madem daha ileri yöntemlere ihtiyacımız var. Olabildiğince karmaşık bir algoritma tasarlasak işimiz çözülür mü? Cevap hayır. Algoritmanın mümkün olduğunca basit olması gerekir. Çünkü boşuna zaman ve enerji harcamak istemiyoruz. Basit ve güvenli olması gerekir. Burada karşımıza iki tür algoritma çıkıyor: Simetrik ve asimetrik.

Açıklamalara geçmeden kısaca bazı tanımları vermek istiyorum.

Plain text: Şifrelenmemiş ham(raw) mesaj.

Cipher text: Şifrelenmiş mesaj.

Encryption: Şifreleme

Decryption: Şifre Çözme.

  1. Simetrik algoritma: Encryption ve decryption işleminde kullanılan anahtar aynı anahtardır. DES, AES bunlara örnektir. Bugün kullanılan 3 tür simetrik algoritma vardır. Blok şifre, akan şifre ve mac (message authentication codes- mesaj doğrulama kodları.)
  2. Asimetrik algoritma: Encryption ve decryption işleminde kullanılan anahtarlar farklıdır. İki anahtar vardır. Biri özel, biri halka açıktır. RSA ve el-Gamal bunlara örnektir.

Bu yazıda blok şifrelerden bahsedeceğim. Konuya geçmeden, önceleri aklımda olan bir soruyu ve cevabını paylaşarak, benzer konuda kafası karışık olan varsa aydınlatmak istiyorum. Aklımdaki soru şuydu: Madem RSA ve asimetrik algoritmalar bu kadar güçlü, neden blok şifreleri öğreniyorum, nerede kullanıyoruz, neden kullanıyoruz, ne güzel güvenli güvenli RSA kullanalım her yerde?

Malesef o iş o kadar kolay değil. RSA’nın gücü matematikten geliyor ve oldukça güçlü bir algoritma. Matematik bize ideal bir dünya sunuyor ama gerçek dünyada malesef bazı sınırlarımız var. Zaman ve enerji bizim sınırlarımızı çiziyor. RSA’yı kısa mesajlar için kullanmak çok iyi ama tüm internet trafiğinde kullanılması pek verimli değil. Ayrıca bir de lightweight cryptography denen IoT cihazlarda kullanılan algoritmalar var ki, bu cihazlar RSA’nın istediği gücü sağlayacak durumda değil.

Blok şifreler

Düz metin (plain text) b bir uzunluğundaki bloklara bölünür.

Her blok k bit uzunluğundaki anahtarlarla şifrelenir ve yine b bit uzunluğundaki bloklar oluşturulur. Bu bloklardan şifreli metin elde edilir. Birleştirme için de farklı metotlar vardır.

Anahtar uzunluğu güvenlik sebebiyle 80 bitten fazla olacak şekilde 128,192 veya 256 bit olarak seçilir. (Askeri alanda 128 bitin de yeterli olmadığı birçok çalışmayla gösterilmiştir.)

Blok uzunluğu b=64 veya b=128 bit olarak alınır.

Genel işleyiş çok fazla karmaşık işlemler yapmak yerine bir fonksiyonun defalarca tekrar edilmesi şeklinde ilerler. Bu tekrar işlemine döngü (Ingilizce round-r) denir. Ayrıntısına yazının devamında değineceğim.

Genelde blok şifreler iki gruba ayrılır.

  1. Değişim permutasyon ağı (Substitution Permutation Network- SPN)
  2. Feistel

Gizli anahtar direkt her döngüde kullanılmaz, belli işlemlere sokularak her döngüde farklı anahtar kullanılmış olur. Bu da güvenliği artırır.(Saldırgan bir şekilde anahtarın bir kısmını ele geçirse de düz metne ulaşamayacaktır.) Her döngüde kullanılmak üzere oluşturulan anahtara döngü anahtarı denir.

1 . Değişim Permutasyon Ağı

DES,AES ve PRESENT bu gruba dahildir. Burada üç temel fonksiyon vardır.

  1. Anahtar ekleme: Anahtar düz metinle işleme sokulur.
  2. Değişim: Karmaşıklık amaçlanır.
  3. Permutasyon: Dağılım sağlar. Yani tekrar eden karakterlere frekans analizinin önüne geçer.

AES: Dünyada en çok kullanılan şifreleme.

PRESENT: Lightweight kriptoloji.

Aşağıda SPN ( Substitution permutation network- değişim permutasyon ağı) algoritması basitçe resmedilmiştir.

Değişim permutasyon ağı algoritması
Değişim permutasyon ağı

Kısaca açıklamak gerekirse, anahtar işleme sokulur ve düz metin bloğu ile XOR işlemine sokulur. Daha sonra değişim, permutasyon ve döngü anahtarı ekleme ile 1. döngü gerçekleştirilir. Buradan çıkan çıktı ile aynı işlemler yapılarak 2. döngü oluşturulur.

Şifreli metin bloğunu elde eden bir kişi anahtar olmadan aradaki basamakların hiçbirini aşamayacağı için düz metin bloğunu ve düz metni elde edemez.

Düz metni tahmin etse bile yine aradaki basamakları tahmin edemediği için anahtara ulaşamaz. Burada güvenliği sağlayan en önemli etkenler döngü sayısı ve anahtar uzunluğudur.

PRESENT şifreleme hafif (lightweigth) kriptolojide yani akıllı kartlar gibi çok az enerji isteyen sistemlerde kullanılır. PRESENT şifrelemede

  • Blok uzunluğu=64 bit
  • Anahtar uzunluğu=80 veya 128 bit
  • Döngü sayısı=31

olarak kullanılır.

Present şifrede bir döngü

Present şifrenin bir döngüsünü kısaca açıklamak gerekirse,

  • Önce döngü anahtarı ve düz metin XOR işlemine sokulur. Düz metin bloğu burada 64 bit, anahtar 80 veya 128 bittir.
  • S box veya S kutusu değişim katmanını sağlar. Burada S kutusu özel bir fonksiyondur. Tabloda girdileri çıktıları resmedilmiştir.
  • Daha sonra 3. adım yani permutasyon katmanı gerçekleşir. Buradan çıkan çıktı 31 defa tekrarlanır. Ve nihayet bir şifreli metin bloğunu elde ederiz.

Döngü anahtarı da kendi içinde belirli işlemlere sokularak elde edilir. Bu şekilde 32 farklı döngü anahtarı elde edilir.

DES Şifresi

(DEA, aslında Data Encryption Algorithm olarak kullanılıyor, çünkü güvenilir kabul edilmediği için artık bir standart değil. Yine de genel kullanım bu şekilde olduğu için DES olarak yazmaya devam edeceğim.)

  • Blok uzunluğu: 64 bit
  • Anahtar uzunluğu: 56 bit
  • Döngü sayısı: 16

Görüleceği üzere anahtar uzunluğu çok kısa olduğu için güvenilir kabul edilmeyen bir algoritmadır. 1990lardan sonra kullanılmaması tavsiye edilmiştir. Kaba kuvvet saldırılarına karşı oldukça dayanaksızdır. Temelde 64 bitlik blok 2'ye bölünür. Anahtar da aynı şekilde ikiye bölünür ve bu şekilde işleme sokulur.

DES güvenilir olmadığı için 3DES 1999 yılında kullanılmaya başlamıştır. Ama 3DES de istenen güvenliği sağlamamıştır. Çünkü 3 kere şifrelemek

56 x 3 = 192 bitlik bir anahtar güvenilirliğini sağlamaz. 3DES 3 farklı anahtar kullanır.

3DES hala akıllı kartlar dahil birçok sistemde kullanılıyor ama yakın zamanda kullanımdan kalkması bekleniyor.

AES ŞİFRESİ ( Advanced Encryption Standard)

2001 yılından beri NIST tarafından standart olarak kabul ediliyor.

  • Blok uzunluğu: 128 bit
  • Anahtar uzunluğu: 128, 192, 256 bit
  • Döngü sayısı: 10,12,14

Bilinen etkili bir saldırı bilinmiyor. Görüldüğü üzere anahtar uzunluğu güvenlik için tatmin edicidir.

Anahtarın her döngü için değiştirilmesi işlemine anahtar şeması (key schedule) denir

AES-128 için anahtar üretim şeması

Blokların şifrelenmesi ile ilgili algoritmaları gördük. Peki bu blokları nasıl birleştireceğiz? Blok uzunlukları sabit dedik. Peki tüm mesaj uzunluğu blok uzunluğunun bir katı olmadığında ne yapacağız?

Bu sorular ise daha farklı konulara bakmayı gerektiriyor. Sonraki yazılarımda mode of operations, padding ve akan şifrelerden de bahsedeceğim.

Not: Kaynak olarak çoğu derslerde gördüğüm bilgiler olsa da Odtü Siber Güvenlik bölümünde de ders veren Cihangir Tezcan’ın youtube kanalından faydalandım. Tavsiye ederim.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Hacer Dalkiran
Hacer Dalkiran

Written by Hacer Dalkiran

Mathematician and Cybersecurity girl

No responses yet

Write a response