DES 3DES ŞİFRELEME NASIL ÇALIŞIR?

Son yıllarda bilginin değeri o kadar çok arttı ki artık saldırganlar kritik sistemlere girip gizli bilgileri çalıyorlar ve bunu pazarlıyorlar. Kritik bilginin korunması ticari açıdan çok büyük önem arz etse de devletlere ait kritik bilgiler çok daha fazla öneme sahiptir.

Günümüzde bilginin depolanması ve iletilmesi çok kolay bir hale geldiğinden dolayı depolanan ve/veya iletilen bilginin gizliliğinin sağlanması büyük önem arz etmektedir. İşte bu yüzdendir ki günümüzde kriptoloji her yerdedir.

Kriptoloji biliminin kriptografi tarafı şifreleme ile ilgilenir. Simetrik anahtar şifreleme ve asimetrik anahtar şifreleme farklı amaçlar için kullanılabilir. Simetrik şifreleme’de blok şifreleme yapısını kullanan algoritmalardan biri de ilk olarak Amerika Birleşik Devletleri’nde kullanılmaya başlanan Data Encryption Standard (DES) dır.

DES, simetrik anahtar şifrelemesine dayalı bir blok şifredir ve 56 bitlik bir anahtar kullanır.

Kısa anahtar uzunluğunun getirdiği zayıflık, her bloğu her seferinde farklı bir anahtarla üç kez şifrelemek için kullanılan 3DES (üçlü DES olarak telaffuz edilir)i ortaya çıkarmıştır.

DES, Cipher Block Chaining (CBC), Electronic CodeBook (ECB), Cipher Feedback (CFB), Output Feedback (OFB) ve Counter Mode (CTR) dahil olmak üzere birkaç farklı blok modunda çalışabilir. Her mod, şifreleme işlevlerini ve hataların ele alınma şeklini değiştirir.

DES uzun yıllar boyunca güvenli bir şifreleme algoritması olarak kullanılmıştır ancak günümüzde güvensiz olarak kabul edilmektedir. DES ve 3DES günümüzde yerini AES’e bırakmıştır.

Her ne kadar kullanımdan kalksa da DES’i anlamak önemlidir ve bu klavuzun buna yardımcı olacağı umulur.

DES TARİHÇE

Yakın tarihe kadar şifrelemenin standardı olarak kabul edilen DES (Data Encryption Standard) simetrik şifreleme algoritmasını kullanır ve verileri ikili sayı sistemine dönüştürdükten sonra 64 bitlik bloklar halinde 56 bitlik anahtar ile şifreler. DES, 1960’ların sonlarında IBM şirketi tarafından kurulan ve LUCIFER olarak da bilinen bir şifreleme araştırmasının sonucudur. 1970’lerin başında LUCIFER’in ticarileştirilmesine karar verildi ve bir dizi değişiklikler yapılmasına karar verildi. Ulusal Güvenlik Ajansı’ndan (NSA) teknik tavsiye istenildi ve bir dizi değişimler yapıldı.

Amerika Ulusal Standartlar Bürosu (NBS) 15 Mayıs 1973’te, verilerin iletilmesi ve depolanması sırasında korunması amacıyla kriptografik algoritmalar oluşturulması için şifrelemenin neden önemli bir sorun olduğunu dair bir bildiri yayınladı.

Ulusal Güvenlik Ajansı (NSA) başvurulan algoritmayı değerlendirdikten sonra, NBS 15 Temmuz 1977 yeni Veri Şifreleme Standardı (DES) olarak LUCIFER algoritmasının düzenlenmiş halini kabul etti. Bu yıldan itibaren ABD birçok kritik birimi için DES şifrelemesinden faydalanmış ve bu kullandıkları ilk şifreleme algoritması olduğunu belirtmiştir. Devlet tarafından DES çok hızlı bir şekilde kullanılmaya başlandıktan sonra özel sektörden firmalar da kullanmaya başlamıştır. DES, genellikle akıllı kartlar, sim kartlar, routerlar gibi gömülü sistemlerde bir güvenlik önlemi olarak yaygınlaşmıştır.

Amerikan Ulusak Standartlar Enstitüsü (ANSI), bankacılık sektörü standartları belirlenirken DES şifrelemenin yaygınlaşmasını ve Devlet kanallarının bu şifrelemeyi kullanmasının ardından 1980 yılında ANSI X3.92 adı verilen DES şifrelemesinin kullanımı kabul etmiştir. Yıllar boyu devam eden DES kullanımı birçok Brute Force (Kaba Kuvvet) saldırısına uğramış ve 2000′ li yıllara doğru bu şifrelemenin kırılabileceği bulunmuştur. Bu durum sonrasında 3DES şifreleme algoritması geliştirilmiştir. Bu yöntem DES şifrelemesine göre daha yavaş olup daha güvenlidir. 3DES şifreleme DES şifrelemenin 3 kere art arda yapılmasından ortaya çıkmıştır. Bu 3 kere şifreleme de her adımda ayrı bir anahtar bulunmaktadır. 3DES şifreleme anahtar uzunluğu olarak 56 Bitlik anahtardan 168 Bitlik anahtar uzunluğunu çıkmış ve bu yönünü de 3 kat güçlendirmiştir.

DES’ E BAKIŞ

Kriptoloji bilimi kriptografi ve kriptanaliz olarak iki ana konuya odaklanır. Kriptografi düz metnin şifrelenmesi ile ilgilenir, kriptanaliz ise şifrelenmiş metinlerin çözümünü araştırır. DES, kriptografinin simetrik şifreleme dalında yer alır ve simetrik şifrelemenin blok şifreleme yapısını kullanır. 

Kriptoloji ve DES

SİMETRİK ŞİFRELEME

Simetrik şifreleme, bir mesajı şifrelerken veya şifrelenmiş mesajı çözerken aynı anahtarın kullanıldığı yapıdır. Şifrelemede ve şifre çözmede aynı gizli anahtar kullanılır. Bunu evimizin kapısını kilitlerken ve açarken kullandığımız anahtar-kilit sistemine benzetebiliriz. Kilitlerken veya kilidi açarken aynı anahtarı kullanırız. Bu yüzden anahtar gizliliği sağlanmalıdır. Anahtar gizliliği sağlanamazsa gizli veriye anahtarı elde eden herkes erişebilir. Simetrik şifreleme harflerle değil bitlerle çalışmaktadır ve DES anahtar boyutu 56 bittir ve hızlı çalışır.

Simetrik Şifreleme

BLOK ŞİFRELEME

Şifrelenmesi istenilen mesaj öncelikle bite çevrilir ve sonra sabit uzunluktaki bloklara yerleştirilir.
Mesajın bite çevrilmesi çok hızlı bir işlemdir. Bite çevirmeyle ilgili bir örnek verecek olursak ASCII tablosunda Z harfinin karşılığı 90’dır. 90’ın ikili sayı sisteminde yazılışı ise 01011010 şeklindedir. Burada yer alan her sıfır ve bir, bir bite karşılık gelir. ASCII tablosunda yer alan her karakter 8 bit uzunluğundadır.

ASCII Tablosu

DES blok boyutu 64 bittir, yani şifrelenmesi istenilen metin bite çevrildikten sonra 64 bitlik bloklara yerleştirilir. Şifreleme ve şifre çözme her blokta çalışır.

Des Blok Yapısı

NASIL ŞİFRELENİR?

Bilgi kuramının babası olarak kabul edilen Amerikalı matematikçi Claude Shannon güçlü şifreleme algoritmalarının oluşturulabileceği iki ilkel işlem tanımlamıştır: Karıştırma ve Yayılma (diffusion and confusion)

KARIŞTIRMA

Şifreli metinle anahtar arasındaki ilişki basit olmamalıdır, böylece şifreli metinden anahtarı elde etmek zorlaşacaktır. Anahtardaki tek bir bitin değişmesi şifreli metindeki bitlerin çoğunun veya tamamının değerlerini değiştirecektir. Karıştırma, şifreli metnin belirsizliğini artırır hem blok hem de akış şifreleri tarafından kullanılır.

Karıştırma

YAYILMA
Düz metnin veya şifreli metnin tek bir biti dahi değiştirilse düz metinden elde edilen şifreli metin bitlerinin veya şifreli metinden elde edilen düz metin bitlerinin büyük bir kısmı değişmelidir. Yayılmadaki amaç, düz metin ile şifreli metin arasındaki ilişkinin gizlenmesidir. Böylece şifreli metinden düz metni elde etmeye çalışan saldırganın işi zorlaşacaktır.

Yayılma

ÇIĞ EFEKTİ

DES yayılma ve karıştırma işlemini her blokta 16 kez yapar. Düz metnin bir bitinde yapılan bir değişiklik şifreli metnin birçok bitine etki eder.

Çığ Efekti

Yukarıdaki örnekte de görüleceği gibi ALDANMAK ve ALDATMAK kelimesi aynı 56 bitlik anahtar ile şifrelenmesine rağmen şifreli metinler arasında hiçbir benzerlik yoktur.

DES’E DERİNLEMESİNE BAKIŞ

DES, ilk çıkış yılı olan 1977′ den itibaren yaklaşık 30 yıl boyunca bankalar, devlet kurumları, özel kurumlar gibi birçok sektörde yaygın bir şekilde kullanılmıştır. DES, yapısı itibarı ile 64 bitlik bloklar halinde çalışır. Şifreleme ve çözme işleminde aynı anahtarı kullanır.

DES Blok Yapısı

DES, yayılma ve karıştırma işlemlerinin ikisini birden kullanan karmaşık ve kompleks bir sistemdir. Bu yöntemler her şifrelenme bloğu için 16 kez tekrarlanarak uygulanır. Her bir tekrarda 56 bitlik ana anahtardan üretilen 48 bitlik alt anahtarlar kullanılır. 56 bitlik anahtar ise 8 biti parite biti olarak kullanılan 64 bitlik bir anahtardan sağlanır. Anahtar oluşturma işlemi makalenin sonunda ayrıntılı olarak anlatılmıştır.

DES

64 bitlik bloklara ayrılan düz metin her blokta bir dizi işleme tabi tutulur. Şimdi 64 bitlik bir blokta neler olduğuna bakalım.

PERMÜTASYON
Şifrelenmesini istediğimiz düz metnimizin MARMARAUNIVERSITY olduğunu varsayarsak bu metnimizin ilk 8 karakteri yani MARMARAU birinci 64 bitlik bloğa yerleşecektir. İkinci bloğa ise NIVERSIT ve son bloğa ise Y yerleşecektir.

İlk bloğumuzun ikili sistemdeki karşılığı şu şekildedir:
0100110101000001010100100100110101000001010100100100000101010101

Bu bitler 64 bitlik bloklara yerleştikten sonra DES tarafından ilk Permütasyon olarak adlandırılan işleme tabi tutulur ve bitlerin yerleri değiştirilir. Hangi bite hangi bitin yerleşeceği aşağıdaki tabloda gösterilmiştir.

Permütasyon

FEİSTEL AĞI
64 bitlik blok ilk permütasyon işleminin ardından Feistel ağı olarak adlandırılan mimari içinde bir dizi işleme tabi tutulur.

  • İlk permütasyon işleminden çıkan 64 bitlik blok feistel ağı içinde 32 bitlik iki bloğa bölünür.
  • Sağ tarafta yer alan 32 bitlik değer herhangi bir değişime uğramadan sol tarafa yazılır.
  • Sağ tarafta yer alan 32 bitlik değer 48 bite genişletilir.
  • 48 bite genişletilen değer sıradaki anahtar ile XOR işlemine tabi tutulur.
  • XOR işleminden çıkan 48 bitlik değer SBOX işlemine tabi tutulur ve 32 bite indirgenir.
  • SBOX’tan çıkan 32 bitlik değer permütasyona tabi tutulur ve sağ tarafa yazılır.
Feistel Ağı

Yukarıdaki işlemler Feistel ağı içinde 16 kez tekrarlanır. Feistel ağı sona erdiğinde elde edilen 64 bitlik değer son permütasyon işlemine tabi tutulur ve şifreli metin elde edilir.

F FONKSİYONU

F fonksiyonu içinde neler oluyor? F fonksiyonu 4 adımdan oluşmaktadır.

  • Genişletme
  • Sıradaki anahtar ile XOR
  • S-BOX
  • Permütasyon
  1. ADIM: GENİŞLETME

Sağ tarafta yer alan 32 bitlik değer 48 bite genişletilir demiştik. Şimdi bunun nasıl yapıldığına bakalım. 32 bit olarak gelen veri bazı bitlerin 2 kez yazılması ile genişletilerek 48 bite çıkarılmıştır.

Genişletme

Yukarıdaki şekilden de görüleceği gibi 32. bit 1. ve 47. bite yazılmıştır. Hangi bitlerin iki kez yazıldığı ve hangi bitlere yerleştirileceği tabloda yer almaktadır.

  1. ADIM: SIRADAKİ ANAHTAR İLE XOR

Genişletilen değerle sıradaki tur anahtarı XOR işlemine tabi tutulur. XOR işleminde aynı olan bitler 1 farklı olan bitler 0 değerini verir.

XOR

  1. ADIM: S-BOX

XOR işleminden çıkan 48 bitlik değer, girişi 6 bit çıkışı 4 bit olan 8 adet S-BOX’a yazılır.

SBOX

Her bir s-box’ta ilk ve son bitler yan yana getirilerek satır numarası, ortadaki 4 bit ile de sütun numarası bulunur. Bulunan satır ve sütunun kesiştiği hücre çıkışı verir.

SBOX İç Yapısı

Örneği inceleyecek olursak S1 isimli S-BOX’a 6 bitlik 011011 değeri gelmiştir. İlk bitte 0 son bite ise 1 değeri vardır. Bu iki değer yan yana yazıldığında 01 değeri elde edilir ve seçilecek satırı belirtir. Ortadaki 4 bit ise 1101 değerindedir ve seçilecek sütunu belirtir. Seçilen satır ve sütunların kesiştiği hücre çıkışı verir. Bu örnekte çıkış 1001 değeridir.

Her bir S-BOX kendi 4 bitlik çıkışını verir ve 8 S-BOX’tan 32 bitlik değer çıkar.

  1. ADIM PERMÜTASYON

S-BOX’lardan çıkan 32 bitlik veri Feistel ağı içerisinde permütasyon işlemine tabi tutulur ve bitlerin yerleri değiştirilir. Hangi bite hangi bitin yerleşeceği aşağıdaki tabloda gösterilmiştir.

Permütasyon

32 bitlik permütasyon işlemi tamamlandığında şifrelemenin ilk turu tamamlanmış olur.

Feistel ağı içinde yer alan ve 4 adımdan oluşan bu işlemler 16 kez tekrarlanır. Feistel ağı sona erdiğinde elde edilen 64 bitlik değer son permütasyon işlemine tabi tutulur ve böylece 64 bitlik bir bloğun şifrelenmesi tamamlanmış olur.

DES

Şifrelenecek metnin büyüklüğüne bağlı olarak 64 bite bölünmüş olan tüm bloklar bu işlemlerden geçer ve tüm metin şifrelenmiş olur.

DES Blok Yapısı

DES ANAHTAR YAPISI

DES’in günümüzde güvensiz kabul edilmesinin en büyük sebebi 56 bitlik anahtar uzunluğudur. Aslında, giriş anahtarı 64 bittir, fakat parite kontrolü için 8 bit ayrılmıştır. Geriye kalan 56 bit ile 48 bit uzunluğunda 16 adet alt anahtar üretilir. Şifrelemenin her turunda anahtar üreteci tarafından üretilen 16 farklı alt anahtar kullanılır.

Alt anahtar üretiminde permütasyon ve kaydırma tekniklerinden faydalanılır. Basit anlamda temel yapı aşağıda gösterilmektedir.

  1. 56 bitlik değere permütasyon işlemi uygulanır.
  2. 56 bitlik değer tam ortadan 28 bitlik iki eşit parçaya bölünür ve her iki parçaya içinde bulunduğu tura bağlı olarak sola kaydırma işlemi uygulanır.
  3. Kaydırma işleminden çıkan 28 bitlik iki değer birleştirilir ve birleşim sonucu oluşan 56 bitlik değere seçici permütasyon işlemi uygulanır. Böylece 48 bitlik 1. alt anahtar elde edilir. Üçüncü adımda oluşan 56 bitlik değer aynı zamanda 2. alt anahtar için girdi sağlar. Yukarıdaki adımlar 16’şar kez tamamlandığında 16 adet 48 bitlik alt anahtar elde edilmiş olur.
Anahtar Üretimi

DES ANAHTAR ÜRETİMİ

64 bitlik anahtardan 56 bitlik anahtara dönüşüm
64 bitlik anahtardan parite bitleri çıkarılıp 56 bitlik anahtar elde edildiğini paylaşmıştık. Örneğin seçilen anahtar “GIZLI123” olsun. GIZLI123 anahtarın ikili sistemdeki karşılığı aşağıdaki gibidir. Parite biti olarak ayrılan bitler 8., 16., 24., 32., 40., 48., 56. ve 64. bitlerdir.

Parite bitlerinin çıkarılması

Bu noktadan sonra alt anahtarların oluşturulması ile ilgili işlemler başlar.

  1. Adım: 56 bit anahtara permütasyon uygulanması

Parite bitleri ayrıldıktan sonra kalan 56 bit ilk permütasyon işlemine tabi tutulur ve bitlerin yerleri değiştirilir. Uygulanan bu permütasyonda hangi bite hangi bitin yerleşeceği aşağıdaki tabloda gösterilmiştir. Permütasyon ile 57. bit birinci bite, 49. bit ikinci bite, … 4. bit 56. bite yazılır.

56 bit anahtara uygulanan permütasyon tablosu
  1. Adım Bölme İşlemi ve Sola Kaydırma İşlemi

Permütasyon işleminden çıkan 56 bitlik anahtar, 28 bitlik iki parçaya bölünür.

56 bit anahtarın 2 eşit parçaya bölünmesi

28 bitlik parçalardan her biri için içinde bulunduğu tura bağlı olarak sola kaydırma işlemi yapılır. 1., 2.,9.ve 16. turda sola 1 bit diğer turlarda sola 2 bit kaydırılır.

Sola kaydırma tablosu

Kaydırma tablosunda ilk turda kullanılacak anahtar (Key1) için 1 kaydırma işlemi yapılacağını yukarıda belirtilmiştik. Buna göre, birinci bitteki değerler 28. Bite, 2. Bitteki değer 1. bite, 3. bitteki değer 2. bite …. 28. bitteki değer 27. bite gelecek şekilde yer değiştirir.

20 numaralı resimdeki 1 ve 2 numaralı bit bloğunun sola 1 kaydırılmış örneğini aşağıda görebilirsiniz.

Sola kaydırılmış bitler
  1. Adım: 48 bit anahtar permütasyonu

Kaydırma işleminden sonra 1 ve 2 numaralı blok tekrar birleştirilir. Birleştirme işlemi sonucu oluşan 56 bitlik değer aşağıda yer alan permütasyon tablosuna göre yeniden düzenlenir ve 48 bitlik alt anahtar elde edilir.

48 bit anahtar elde etmek için kullanılan permütasyon tablosu

Uygulanan permütasyon ile 14. bit 1. bite, 17 bit 2. bite, …., 32. bit 48. bite yazılır. 48 bitlik alt anahtar elde edilirken şu bitler dahil edilmez: 9, 18, 22, 25, 35, 38, 43, 54

Böylece 1. tur için gerekli anahtar elde edilmiş olur. 1. Anahtarın oluşturulması için kullanılan bu 3 adımlık yöntem ile sırasıyla diğer anahtarlar oluşturulur. Oluşturulan bu anahtarlar şifreleme turlarında kullanılır.

3DES

DES’in günümüzde güvensiz kabul edilmesinin en büyük sebebi 56 bitlik anahtar uzunluğudur. 3DES, orijinal Veri Şifreleme Standardından (DES) türetilmiştir. Doksanların sonlarında öne çıkmış, ancak daha güvenli algoritmaların yükselişi nedeniyle gözden düşmüştür.

Resmi olarak Üçlü Veri Şifreleme Algoritması (3DEA) olarak bilinmesine rağmen, yaygın olarak 3DES olarak anılır. Bunun nedeni, 3DES algoritmasının verilerini şifrelemek için Veri Şifreleme Standardı (DES) şifresini üç kez kullanmasıdır.

DES’in hem 64 bitlik bir bloğu hem de anahtar boyutu vardır, ancak pratikte anahtar yalnızca 56 bitlik güvenlik sağlar. 3DES, DES’in küçük anahtar uzunluğu nedeniyle daha güvenli bir alternatif olarak geliştirilmiştir. 3DES’te DES algoritması üç anahtarla üç kez çalıştırılır, ancak yalnızca üç ayrı anahtar kullanıldığında güvenli kabul edilir.

DES’in zayıflıkları ortaya çıkınca, 3DES çok çeşitli uygulamalarda benimsendi. AES’in yükselişinden önce yaygın olarak kullanılan şifreleme algoritmalarından biriydi.

Microsoft Office, Firefox ve EMV ödeme sistemleri tarafından kullanılıyordu. Ancak günümüzde bu platformların çoğu, daha iyi alternatifler olduğu için artık 3DES kullanmıyor.

Ulusal Standartlar ve Teknoloji Enstitüsü (NIST), tüm 3DES biçimlerinin 2023’e kadar kullanımdan kaldırılacağını ve 2024’ten sonra da izin verilmeyeceğini söyleyen bir taslak teklif yayınladı. Bu sadece bir taslak olmasına rağmen, teklif bir dönemin sonu anlamına geliyor.

SONUÇ

Bu çalışmada yaklaşık 30 yıl boyunca kullanılan ve adı Veri Şifreleme Standardı olan DES incelenmiştir. Eskiden olduğu gibi günümüzde de bilgi çok değerlidir ve buna sadece ilgililerin erişmesini isteriz. Bu bilgi bazen bir arkadaşımıza gönderdiğimiz bir mesajdır bazen de savunma sistemlerimiz tarafından kullanılan uydu sistemleri ile yapılan bir haberleşmedir.

Siber güvenliğin hiç olmadığı kadar önem kazandığı günümüzde bilgi sistemlerimizde bilgiyi korumak için ne tür şifreleme algoritmaları kullandığımızın farkında olmalıyız ve daha güvenli sistemler için gereken çalışmaları en kısa zamanda yaşayan bir döngü içinde gerçekleştirmeliyiz.

DES her ne kadar günümüzde güvensiz kabul edilse de DES’ i anlamak, daha güçlü şifrelemenin nasıl yapılacağı konusunda fikir verebilir.

 

Yorum yapın