Şifreleme Çeşitleri (Kriptografi)

Etiketler :
Değişen Matematik müfredatı (2025) ile birlikte 9.sınıf matematik derslerinde şifreleme, siber güvenlik, kodlama ve algoritma dili gibi yazılım ağırlıklı yeni üniteler eklenmiştir. Bu konulardan biri şifrelemedir. Bu yazıda şifreleme hakkında kısa bir derleme yaparak günümüzde mevcut şifreleme tekniklerinden bazılarına değinilmiştir. Konunun uzmanlarından daha detaylı bilgiler elde etmek mümkündür. Burada kısaca şifreleme nedir? Şifreleme çeşitleri nelerdir? Örnek bir şifre nasıl oluşturulur? gibi sorulara karşılık kısa bir anlatım söz konusudur. 
Şifreleme yani Kriptografi (encryption); kişisel verileri korumak için kullanılan bir kodlama ve gizleme tekniğidir. Bilgilerin gizli kalmasını sağlamak amacıyla, görünen veriler gizlenerek bunların yerine yeni harfler, sayılar ve özel karakterler kullanılarak bir şifreleme belirlenir. Bu sayede kişisel bilgilere ulaşım teorik olarak engellenmiş olur. Şifreleme işlemi, kriptografik bir anahtar kullanarak düz metni şifreli metne dönüştürür. Kriptografik anahtar, hem gönderici hem de alıcı tarafından bilinen ve kabul edilen bir dizi matematiksel değerdir. Şifreleme ve şifre çözme amacıyla kriptografi algoritmasının kullandığı sayı dizisine “anahtar” denir. Anahtar ne kadar uzunsa şifrenin kırılması da o kadar zor olur. Bir algoritmanın “n” sayısının uzunluğu kriptografik güvenliği ile doğru orantılıdır. Anahtar uzunluğu “n” sayısının bit uzunluğu olarak tanımlanır. Doğru anahtara sahip olan herkes, şifrelenmiş verinin şifresini çözebilir veya verileri dönüştürebilir. Bu nedenle kriptografi uzmanları sürekli olarak daha gelişmiş ve karmaşık anahtarlar geliştirmektedir. Veriler 'depolamada' (saklama alanında) veya 'aktarılırken' (iletilirken) şifrelenebilir. İki ana şifreleme sınıflandırması vardır: 
Simetrik şifrelemenin yalnızca bir anahtarı vardır ve tüm taraflar aynı gizli anahtarı kullanır. Asimetrik şifreleme adını birden fazla anahtara sahip olmasından alır: biri şifreleme, diğeri şifre çözme içindir. Şifreleme anahtarı herkese açıkken, şifre çözme anahtarı özeldir. 
Simetrik şifreler: Şifrenin çözümlenmesi ve verilerin şifrelenmesi için tek anahtarın kullanıldığı algoritmadır. Gizli anahtarlı şifreler olarak da adlandırılır. Gizli anahtar, mesajın şifresini çözmeye yetkili tüm varlıklarla paylaşılmalıdır. Simetrik anahtar şifrelemesi çoğu zaman asimetrik şifrelemeden çok daha hızlıdır. En yaygın kullanılan simetrik anahtarlı şifre Gelişmiş Şifreleme Standardıdır (AES). Simetrik şifrelemenin kendisine göre avantajları bulunmaktadır. Başlıca avantajları şu şekildedir: Şifreleme ve şifreyi çözme işlemleri hızlı olup, donanımla gerçekleştirilmesi kolaydır. Taraflar arasındaki iletişimin gizliliği sağlanmaktadır. Verinin bütünlüğü sağlanır ve Şifreli metin çözülemedikçe orijinal metin değiştirilemeyecektir. Simetrik şifrelemenin sahip olduğu başlıca zorluklar şu şekilde sıralanabilir: Anahtar saklamak zordur. (Key Storage Problem)n kullanıcılı bir sistem için [n*(n-1)/2] anahtar saklanmalıdır. Ölçeklendirilebilir değildir. Güvenilir anahtar dağıtımı zordur. (Key Distribution Problem) Kimlik doğrulama (authenticity) sağlamaz. Aynı anahtara sahip olan herhangi birisi tarafından veri şifrelenmiş olabilir.Bütünlük sağlamaz. Ortadaki bir kişi tarafından veri değiştirilmiş olabilir.Kimlik doğrulama ve bütünlük sağlamadığı için inkar edilememezlik sağlamaz. 
Asimetrik şifreler: Açık anahtar şifrelemesi olarak da bilinen bu tür algoritmalar, verileri şifrelemek ve şifrelerini çözmek için mantıksal olarak bağlantılı fakat iki farklı anahtar kullanır. Asimetrik şifreleme, anahtar oluşturmak için genellikle asal sayıları kullanır. Rivest-Shamir-Adleman (RSA) şifreleme algoritması şu anda en yaygın kullanılan açık anahtar algoritmasıdır. RSA ile bir mesajı şifrelemek için açık veya özel anahtar kullanılabilir. Şifreleme anahtarı, algoritma tarafından verileri tutarlı biçimde değiştirmek için kullanılır. Böylece rastgele görünse bile şifre çözme anahtarı bunu kolayca düz metne geri dönüştürebilir. Yaygın şifreleme algoritmaları arasında DES, AES, SNOW, ECC eliptik eğri kriptografisi, RC4 ve RSA sayılabilir.  
 
DES Şifreleme; verileri şifrelemek ve şifrelenen verileri açmak için kullanılan bir şifreleme standardıdır. Asıl olarak kullanılan algoritmaya; Veri Şifreleme Algoritması (DEA yani Data Encryption Algorithm) adı verilir. Yapısı itibari ile DES, blok şifreleme örneğidir. Yani basit bir şekilde şifrelenecek olan açık metni bloklara böler, yani parçalara ayırır. Her bir parçayı birbirinden bağımsız olarak şifreler. Eğer şifrelenmiş metni açmak isterse, aynı işlemi bloklar üzerinden gerçekleştirir. Blokların uzunluğu 64 bittir. AES şifreleme yöntemine göre DES, 6 kat daha yavaş çalışır.  
 
AES Şifreleme; 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, simetrik-anahtarlı bir algoritmadır. AES için şifreleme ve şifre çözme anahtarları aynıdır. AES ile standartlaştırılan algoritma, esas olarak Vincent Rijmen ve Joan Daemen tarafından geliştirilen Rijndael algoritmasında bazı değişiklikler yapılarak oluşturulmuştur. 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 anahtar uzunlukları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 çevrimlerinden (round) oluşmaktadır. Her çevrim, son çevrim hariç, dört adımdan oluşmaktadır. Şifreli metni çözmek için bu çevrimler ters sıra ile uygulanır. AES, 8-bit akıllı kartlardan yüksek performanslı bilgisayarlara kadar birçok değişik donanım üzerinde yüksek performansla çalışır.  
 
SNOW Şifreleme; NESSIE projesinde ortaya çıkmıştır. SNOW-V her yinelemede 16 bit ilerletilen 32 16 bitlik sözcükten oluşan bir kaydırma kaydı kullanır. Şifrelemede bir çıktı dönüştürme adımı gerçekleştirilerek 128 bitlik çıktı üretilir. Çıktı dönüşümü, Gelişmiş Şifreleme Standardı (AES) yuvarlama işlevini kullanır. Şifrenin bilinen bir fikri mülkiyeti veya başka kısıtlaması yoktur. Şifre 32 bitlik sözcüklerde çalışır ve hem 128 hem de 256 bitlik anahtarları destekler. Şifre, LFSR ve LFSR'nin FSM'nin bir sonraki durum işlevini de beslediği sonlu durum makinesinin (FSM) bir kombinasyonundan oluşur. Şifrenin kısa bir başlatma aşaması vardır ve hem 32 bitlik işlemcilerde hem de donanımda çok iyi bir performans gösterir. Snow şifreleri oluşturmak için örnek bir url adresini kullanabilirsiniz. (https://asecuritysite.com/symmetric/snow) 
 
RSA Şifreleme; (Rivest-Shamir-Adleman) R.Rivest, A.Shamir ve L.Adleman tarafından 1977 yılında oluşturulan RSA, şifreleme ve şifre çözme işlemlerini gerçekleştirir. Bunun yanında anahtar dağıtımını da sağlar. Bu yöntemin çok büyük tam sayılarak kullanılarak işlem yapmanın zorluğuna dayanan güvenirliği bulunur. Genel anahtarlı şifreleme tekniğidir. Asal sayılar kullanılarak anahtar oluşturma işlemi için daha güvenli bir yapı oluşturulur. Hızının yüksek olması anahtarın sayısal büyüklüğüne bağlıdır.tüm asimetrik şifrelemelerde olduğu gibi RSA da asal faktorizasyon (iki çok büyük asal sayının çarpılması) yöntemini kullanır. Bunu kırmak çok zordur çünkü kullanılan asal sayıların belirlenmesi gerekir. Bir RSA anahtarını kaba güçle (brute force) kırmak diğer şifreleme yöntemlerine göre daha zordur. Bir bilgisayar bir şifreyi veya şifre çözme anahtarını kırmak için milyonlarca hatta milyarlarca deneme yaparsa buna kaba güç saldırısı (brute force) denir. Modern bilgisayarlar bu olası permütasyonları inanılmaz bir hızla uygulayarak şifreyi tahmin etmeye ve kırmaya çalışabilir. Modern şifrelemenin bu tür saldırılara karşı dayanıklı güvenlik açısından mecburidir. Özellikle bankacılık ve finans alanlarında, iletişim sektöründe ve resmi devlet verilerinde şifrelemenin güçlü olması elzemdir. 
ECC kriptografisi; Eliptik Eğri Kriptografisi, sonlu alanlar üzerindeki eliptik eğrilerin cebirsel yapılarına ve Eliptik Eğri Ayrık Logaritma Problemi'nin (ECDLP) zorluğuna dayanan , açık anahtarlı kripto sistemlerinin modern bir ailesidir . RSA kripto sisteminin doğal modern halefi olarak kabul edilir. Çünkü ECC, aynı güvenlik seviyesi için RSA'dan daha küçük anahtarlar ve imzalar kullanır ve çok hızlı anahtar üretimi , hızlı anahtar anlaşması ve hızlı imzalar sağlar. ECC kriptografisinde anahtar üretimi, belirli bir aralıkta rastgele bir tam sayıyı güvenli bir şekilde üretmek kadar basittir. Bu nedenle ECC kriptografisi son derece hızlıdır. ECC'deki özel anahtarlar genellikle tam sayılardır. 256 bit ECC özel anahtarının bir örneği şöyle olabilir: 
(0x51897b64e85c3f714bba707e867914295a1377a7463a9dae8ea6a8b914246319) 
 
Blowfish Şifreleme; 1993 yılında Bruce Schneier tarafından tasarlanan Blowfish, simetrik bir anahtar şifreleme algoritmasıdır. Feistel ağını kullanan Blowfish, 64 bitlik bloklarla şifreleme sağlamaktadır. Horst Feistel’in ismiyle anılan Feistel şifresi blok şifrelerin yapımında kullanılan simetrik bir yapıdır; aynı zamanda Feistel ağı olarak da bilinir. İlk olarak 1973 yılında Horst Feistel ve Don Coppersmith tarafından tasarlanan IBM’in Lucifer şifresinde görülmüştür. Bir feistel ağı temel olarak aşağıdaki 3 işlemi çeşitli sıralar ile çeşitli miktarlarda tekrar etmektedir:Verinin bitlerinin yerlerinin değiştirilmesi (genelde permütasyon şifrelemesi olarak bilinir) Basit doğrusal olmayan fonksiyon (Yerine koyma şifrelemesi olarak bilinir) Doğrusal karıştırma (genelde XOR)DES şifreleme algoritmasına alternatif olması için tasarlanmıştır. Blowfish, değişken uzunlukta bir anahtar (448 bite kadar) kullanan, 64 bit blok şifreleme algoritmasıdır. 32 bit ile başlayarak 448 bit anahtar uzunluğuna sahip, 64 bit öbek büyüklüğünde bir algoritma oluşturulabilir. Blowfish Şifreleme, 16 aşamalı bir Feistel ağı aracılığıyla gerçekleşir. Her bir turda gerçekleşen işlemler XOR, değiş-tokuş, ve 32-bit sözcüklerdeki toplama işlemlerinden ibarettir. Ek olarak ise her turda 4 adet dizi araması yapılır. DES’in tam olarak yapamadıklarını tamamlamak amacıyla tasarlanmıştır. En az 4 Kb RAM ile çalıştığı için akıllı kartlar gibi küçük sistemlerde kullanılamaz. E-posta ve yüksek şifreleme gibi rutin kullanıcı uygulamalarındaki etkinliği değerlendirildiğinde kısmen başarılı bir algoritmadır. Blowfish, patentsizdir ve tüm ülkelerde genel kamusal alanda bulunmakta olup, herkes tarafından özgürce kullanılabilir. 
 
RC4 Şifrelemesi; RC4 algoritması, veri ile belirlenen anahtarı şifreleyen bir algoritmadır. Genel olarak hız gerektiren uygulamalarda tercih edilir. Şifreleme hızı “MB/sn” seviyesindedir. Rastgele bir anahtar kullanımına bağlı güvenliği vardır. Normal RC4 şifresinin 4 çeşidi vardır: Spritz, kriptografik hash fonksiyonları ve deterministik rastgele bit üreteci oluşturmak için kullanılır. RC4A, Bu, ortalama RC4 şifresinden daha hızlı ve daha güçlü olması önerilen bir varyanttır. Değişken Olarak Değiştirilmiş Permütasyon Kompozisyonu (VMPC), RC4A gibi, şifresinde gerçekten rastgele sayıların kullanılmadığı tespit edilen bir RC4 sürümüdür. RC4A+, RC4A’nın RC4 ve RC4A’dan daha uzun ve daha karmaşık, ancak karmaşıklığının bir sonucu olarak daha güçlü olan gelişmiş bir sürümüdür.RC4'ün kullanımı son derece basittir, dolayısıyla uygulamayı da basitleştirir. RC4, basitliği nedeniyle hızlıdır ve bu da onu daha iyi performans gösteren bir şifre yapar. RC4 ayrıca büyük veri akışlarıyla hızlı ve kolay bir şekilde çalışır. RC4'te bulunan güvenlik açıkları vardır. RC4 ayrıca kimlik doğrulama sağlamaz. RC4, daha küçük veri akışlarında kullanılamaz.  
(Örnek RC4 Şifresi: Plaintext: BBF316E8D940AF0AD3) 
 
MD5 şifreleme; tek yönlü şifreleme algoritmasıdır. 1991 yılında Ron Rivest tarafından geliştirilmiştir. Bu şifreleme algoritması veri bütünlüğünü test etmek için kullanılır. Veri girdisinin büyüklüğünden bağımsız, 128 bit çıktı üretir. Girdide yapılacak en ufak bir değişiklik, çıktının komple değişmesine sebep olur. Bir verinin değiştirilip değiştirilmediği ve doğru bir şekilde transfer edilip edilmediği en çok MD5 ile kontrol edilir. 
(Örnek bir MD5 Şifresi: https://muallims.blogspot.com/ 2cbaba010db25f3c849c25b43a946668) 
 
SHA Şifreleme, NSA (Amerika’nın Ulusal Güvenlik Kurumu) tarafından tasarlanmıştır. MD5 özet fonksiyonuna benzeyen bir çalışma prensibi vardır. Girdi olarak kullandığı mesajların en fazla uzunluğu 264 bittir. 160 bitlik de mesaj özeti üretir. Bu işlem sırasında, öncelikli olarak veriyi 512 bitlik bloklara ayırır. Gerekirse de son blok uzunluğunu 512 bite tamamlar. Çakışmalara karşı 80 bitlik güvenlik sağlayan, 160 bitlik mesaj özeti üretir.  
(Örnek bir SHA Şifresi: 5905eace7511b5058f217971a5027e29f799f889)
Benzer MD5 ve SHA şifreleri oluşturmak için örnek url adresini kullanabilirsiniz.  
(https://wmaraci.com/md5-sha1-sifre-olusturucu)

Steganography Şifreleme, düz şifrelenmemiş bir metni çeşitli dönüşümler kullanılarak başka kişilerin anlayamayacağı bir metin haline getirilmesi yöntemidir. Bir metindeki tüm harfleri başka bir metin içinde bulunan ilk harflere gizleyerek yapılır. 
(Örnek Steganography şifresi: "MUALLİMS" Model uzun ancak lalenin liflerini istemsiz makineye sarıyor.) 
 
Caesar Cipher Şifreleme; en eski yerine koyma tekniği olarak bilinir. Ünü Roma İmparatoru olanJulius Caesar tarafından geliştirilen bir yöntemdir. Bu şifrelemede mantık, her bir harf kendisinden sonra gelecek üçüncü harf ile çembersel olarak yer değiştirir. Caesar şifrelemenin zayıf yönleri de vardır. Şifrelenmiş metinde hangi dil kullanıldıysa bu rahatlıkla anlaşılabilir. Şifreleme ve deşifreleme yöntemlerinin bilinmesi ve kolay bir şekilde uygulanabiliyor olması da zayıf yönlerinden biridir. Şifrelenmiş bir metin, en zayıf ve en kesin saldırı yöntemi olan “Brute Force” ile kırılabilir. 
(Örnek bir Caesar Cipher Şifresi: rddzc://wekvvswc.lvyqczyd.myw) Benzer şekilde Caesar Cipher şifreleri oluşturmak için örnek url adresini kullanabilirsiniz. 
(https://www.boxentriq.com/code-breaking/caesar-cipher) 
 
One-time Pad Şifreleme; basit olan bu yöntemde rastgele üretilen bir harf ya da rakam dizisi kullanılarak şifreleme yapılır. Üretilen dizi ile açık mesajda yer alan karakter karşı karşıya gelerek işleme alınır. Bu sayede şifreli bir mesaj elde edilir. Her şifreleme benzersizdir ve bir sonraki şifrelemeyle hiçbir ilişkisi yoktur, bu da bir örüntü tespit etmeyi imkansız hale getirir. Ancak tek seferlik bir şifreyle, şifreyi çözen taraf, mesajı şifrelemek için kullanılan aynı anahtara erişebilmelidir; bu, şifreyi çözen tarafa anahtarın güvenli bir şekilde nasıl ulaştırılacağı veya her iki anahtarın nasıl güvenli tutulacağı sorununu gündeme getirir. tek seferlik bir şifre, en azından gönderilecek en uzun mesaj kadar uzun olacak bir karakter veya sayı dizisi üretilerek oluşturulur. Bu değer dizisi, rastgele sayı üreteci olan bir bilgisayar programı kullanılarak rastgele bir şekilde üretilir. Değerler, birinin okuyabileceği bir şifreye veya herhangi bir cihaza yazılır. Şifreler, hassas bir mesaj gönderme veya alma olasılığı olan kişilere verilir. Tipik olarak, bir şifre bir anahtar koleksiyonu olarak verilebilir - örneğin, bir aydaki her gün için bir tane, her günün sonunda veya bir kez kullanıldıktan sonra bir anahtarın süresi dolar. Bir mesaj gönderileceği zaman, gönderici her karakteri teker teker şifrelemek için gizli anahtarı kullanır. Anahtarın gönderilen mesajla aynı boyutta olması gerekir. Anahtarın gerçekten rastgele olması gerekir. Anahtarlar asla tekrar kullanılmamalıdır. Anahtarların gönderici ve alıcı taraflar arasında güvenli bir şekilde paylaşılması gerekir. Bu katı koşullar nedeniyle, One-time Pad tek seferlik şifrelemenin kullanımı pratik değildir.
Örnek bir pad şifrelemesi oluşturalım. Şifrelemek istediğimiz bu metni rastgele sayılarla ifade edip dörtlü bloklar halinde gösterelim.Bu şifreli metnin alfabesidir. Her iki tarafta da aynı sayı değerlerinin bulunduğu aynı bir alfabe mevcut olmalıdır. 
Pad şifrelemesinde kullanacağımız alfabe şu şekilde farklı sayı kombinasyonlarından oluşsun. 

A B C Ç D E F G H İ J K L M N O
11 12 13 14 15 16 17 22 23 24 25 03 04 05 06 07

P R S Ş T U V W Q X Y Z Ö Ğ I Ü
8 9 10 26 27 18 19 20 21 28 2 01 29 30 31 00

Şifrelemek istenilen metin : MUALLİMS  
M=05, U=18 A=11, L=04, İ=24, S=10 Metnin Sayısal Blok Hali: 0518 1104 0424 0510
 
Kullanmak istenilen anahtarı oluşturalım ve bu anahtara karşılık gelen sayıları da aynı şekilde belirleyelim. Her iki tarafta da aynı sayı değerlerinin bulunduğu bir anahtar mevcut olmalıdır.  ETOJVNAK Bu anahtara karşılık gelen sayılar: E=16, T=27, O=07, J=25, V=19, N=06, A=11, K=03 Anahtarımızı da blok halinde sayılarla gösterelim : 1627 0725 1906 1103
 
Şifrelemek istediğimiz metnin başına anahtarın hangi kısmını kullanmak istiyorsak ondan sonraki dörtlü sayı grubunu getirip metin sayı grubu ile alt alta toplayalım. Örnekte 0725'ü kullanalım.  
 
Şifrelenecek metin-------> 0518 1104 0424 0510
Anahtar--------------------> 0725 1906 1103 1627
Şifreli sayı blok-----------> 1243 3110 1527 2137 Alfabedeki numaralar 00 dan 31'e kadar gittiğinden mod 32 kalan sınıfı dikkate alınarak 32 ile bölme işleminde elde edilen kalanlara göre sayı blok tekrar düzenlenir ve en son kalanlara göre yeni bir metin oluşturulur.
Şifreli sayı blok-----------> 1211 3110 1527 2105
Bu blok sayılarına karşılık gelen şifreli harfler: B=12, A=11, I=31 S=10, D=15, T=27, Q=21, M=05
 
Anahtara göre elde edilen yeni sayılar sonucu oluşturulan şifreli metin şöyle olur: BAISDTQM elde edilen yeni şifreli metin çözülmek istenildiğinde, mevcut anahtara göre işlemler ters sırayla tekrar yapılarak başa dönülür ve esas metin bulunur.

Kaynakça: 

https://www.kingston.com/tr/blog/data-security/what-is-encryption https://www.natro.com/blog/sifreleme-encryption-nedir-sifreleme-turleri-nelerdir/ https://berqnet.com/blog/sifreleme-kriptografi https://medium.com/@msuhademirel/kriptografi-ve-eski-%C5%9Fifreleme-y%C3%B6ntemleri-ancient-cryptography-techniques-e64311de1629 https://www.iienstitu.com/blog/kriptografi-nedir-teknikleri-nelerdir https://tr.m.wikipedia.org/wiki/%C5%9Eifreleme

0 yorum:

Fayda vermeyen ilimden Allah'a sığınırım. “Allah'ım; bana öğrettiklerinle beni faydalandır, bana fayda sağlayacak ilimleri öğret ve ilmimi ziyadeleştir."

İlim; amel etmek ve başkalarıyla paylaşmak içindir. Niyetimiz hayır, akıbetimiz hayır olur inşallah. Dua eder, dualarınızı beklerim...

En Çok Okunan Yazılar

Aşağıdaki Yazılar İlginizi Çekebilir!!!