Encryption Decryption Nedir?[Anlatım]

AzotM4

Üye
26 May 2022
229
1
81
Selam dostlar.Bu makalede sizlere encryption ve decryption hakkında bazı tanımlar ve yöntemlerden bahsedeceğim.


9l88q6h.png


Encryption (şifreleme) neden gereklidir?


Günlük hayatta internette gezinirken taşınan ve saklanan verilerin gizliliği ve güvenliği kullanıcılar açısından önem arz etmektedir.Güçlü bir şifreleme ile bu verilerin mahremiyeti garanti altına alınabilir.

Misal herhangi bir
bankacılık veya e-ticaret firmasının veritabanında kullanıcıların bilgileri bulunur ve bu verilerin ele geçirilmesi kullanıcılar için kötü sonuçlar doğurabilir bildiğiniz gibi.Bu yüzden bu verilerin güvenli şifreleme yöntemleriyle korunması gereklidir.

Veya bir mesajlaşma uygulaması kullanıyorsanız sizin ve karşı tarafın mesajlarının
kimse tarafından okunmaması güvenliğiniz açısından oldukça önemlidir.Aksi bir durumda biliyorsunuz kişinin itibarını veya hayatını tehlikeye sokabilecek çok ciddi durumlar oluşabilir.Bunun için genellikle tercih edilen yöntem uçtan uca şifreleme yöntemidir.Bu yöntemde alıcı ve gönderici hariç mesajları kimse okuyamaz.Örnek vermek gerekirse;Whatsapp,Signal ve Telegram bu yöntemi kullanır.


Simetrik Şifreleme


Verileri şifrelerken ve bu şifreleri çözerken aynı anahtarın kullanılması anlamına gelir.Eskiden özellikle devletler ve istihbarat teşkilatları arasındaki gizli iletişimi sağlamak için kullanılan bu yöntem günümüzde farklı bilgisayar sistemlerinde kullanılır.Bu sistemlerde iki veya daha fazla kullanıcı tek bir anahtar kullanır.Veriyi ifade eden metni şifrelemek için ve şifreyi çözmek için aynı anahtar kullanılır.Şifreleme düzeni yeterince güçlüyse,şifreli veriye ulaşmanın tek yolu şifreyi açacak anahtara sahip olmaktır.Simetrik şifreleme sistemlerinin asıl güvenli olan kısmı brute force yaparak çözmenin neredeyse imkansız olmasıdır.Bunun sebebi örneğin 128 bit olan bir anahtarı bf ile bulmaya çalışmanın ortalama bir bilgisayar ile milyarlarca yıl sürebilecek olmasıdır.

1-1024x576.png

Asimetrik Şifreleme


Simetrik şifrelemenin tersi diyebiliriz.Şifrelenmek istenen veri için iki adet anahtar (private key ve public key) gereklidir.Özel (private) anahtardan genel (public) anahtar üretilebilir fakat bunun tersi yapılamaz.Bu sebeple özel anahtarın kaybedilmemesi gerekir.Yani genel anahtarın başka birinin eline ulaşması pek bir anlam ifade etmez.Özel anahtar şifre imzalama ve çözme için kullanılırken genel anahtar doğrulama ve şifreleme için kullanılır.Gönderici tarafından özel anahtar ile imzalanan bir veri alıcı tarafından göndericinin genel anahtarı kullanılarak doğrulanabilir.Asimetrik algoritmalar imzalama,anahtar paylaşımı ve gizlilik için kullanılır.Bu anahtar sayesinde simetrik şifreleme için kullanılan veriler,güvenilir olarak iletilebilir.

asimetrik-sifreleme.png

Genel Olarak Tercih Edilen Bazı Simetrik ve Asimetrik Şİfreleme Algoritmaları

DES


1970'lerde geliştirilmiş ve 1977'de Amerika hükümeti tarafından yaygın olarak kullanılmaya başlanmıştır.DES bir simetrik blok şifreleme uygulamasıdır.Fakat artık DES,yapısındaki güvenlik zayıflıklarının ve anahtar boyunun kısa olması sebebiyle günümüzde fazla kullanılmıyor.
DES için kullanılan anahtar boyu 56 bittir.Bu sayı günümüz teknolojisinde güvenlik açısından zayıf olması anlamına geliyor.

DES'in çalışma mantığından kısaca şöyle bahsedebiliriz:

İlk Adım: 56 bitlik anahtar,parite bitleri dahil olacak şekilde oluşturulur.Parite bitleri anahtarın doğruluğunu sağlamak için kullanılır.
Anahtar,
56 bitlik parite bitleri çıkartılarak 56 bite indirgenmesi ve ardından 16 adet 48 bitlik alt anahtarın oluşturulmasıyla genişletilir.(Bu alt anahtarlar şifreleme işlemi sırasında kullanılacak.)

İkinci Adım: Veri bloğu ve ilk alt anahtar arasında başlangıç XOR işlemi yapılır.Sonrasında bir dizi tur gerçekleştirilir.Her turda,veri bloğu üzerine farklı matematiksel işlemler uygulanır ve bir sonraki tur için veri bloğu elde edilir.

Üçüncü Adım: Son adımda,anahtar bağımlı dönüşüm uygulanır ve bir sonraki tur için gerekli olan şifreli veri bloğu elde edilir.
Son turun ardından elde edilen şifreli veri bloğu,
şifreli metin olarak çıkartılır ve sonuç olarak kullanılır.Başta söylediğim gibi artık teknolojinin ilerlemesiyle beraber elde edilen yüksek hesaplama gücü,saldırıların daha kuvvetli gerçekleştirilebilmesine ve dolayısıyla da DES algoritmasının bu saldırılara karşı zayıf kalmasına sebep olduğu için DES,yerini AES gibi daha güçlü algoritmalara bırakmıştır.

AES


2001 yılında NIST tarafından kabul edilmiş ve DES yerine yaygın olarak kullanılmaya başlanmıştır.
AES de DES gibi bir simetrik şifreleme algoritmasıdır.
AES,farklı anahtar uzunluklarına izin verir.128,192 veya 256 bit olarak seçilebilir.Daha uzun anahtarlar bildiğiniz üzere daha güçlü şifreleme sağlar.Ayrıca AES bir blok şifreleme algoritmasıdır.

AES Uygulanma Adımları:

Veri bloğu ve birinci alt anahtar arasında XOR işlemi yapılır.

Bir dizi dönüşüm (tur) gerçekleştirilir. Her turda, veri bloğu üzerinde
farklı matematiksel işlemler uygulanır ve bir sonraki tur için veri bloğu elde edilir. Bu işlem, anahtar bağımlı bir yapıdır ve anahtarın her turda kullanımı farklılık gösterir.

Son turda anahtar bağımlı dönüşüm uygulanır ve bir sonraki tur için gerekli olan
şifreli ver bloğu elde edilir.Son turun ardından elde edilen şifreli veri bloğu,şifreli metin halinde sonuç olarak kullanılır.

security-aes_vs_des-f.png

MD5


Birçoğumuzun bildiği,artık güvenlik açısından zayıf olduğu için pek kullanılmayan bu algoritma hakkında konuyu çok uzatmayacağım.

MD5, verinin bütünlüğünü kontrol etmek için kullanılabilecek bir kontrol toplamı olarak da kullanılabilir. Veri doğrulama amacıyla bir mesajın MD5 hash değeri hesaplanır ve gönderici ve alıcı arasında karşılaştırılır. Eğer hash değerleri eşleşirse, veri doğrulanmış kabul edilir.

Blowfish


Bruce Schneier tarafından 1993 yılında tasarlanan simetrik bir blok şifreleme uygulamasıdır.Bu algoritma, hızlı olması, anahtar boyutunun esnekliği ve genel olarak güvenlik açısından güçlü olması nedeniyle popüler bir şifreleme algoritmasıdır.

Blowfish algoritmasının özelliklerinden kısaca şöyle bahsedelim:

32 bit ile 448 bit arasında değişen anahtar boyutlarını destekler.Anahtar boyutunun esnekliği AES'te olduğu gibi güvenliği artıran bir unsurdur.
Blowfish 64 bit bloklar üzerinde çalışır.Veri, 64 bit bloklar halinde şifrelenir ve çözülür.
Ardından girilen anahtarı kullanarak bir dizi
alt anahtar oluşturur.Bu alt anahtarlar daha sonra şifreleme ve çözme işlemlerinde kullanılır.
Her ne kadar bu algoritma hızlı çalışması ve esnek anahtar boyutu seçeneği sebebiyle birçok uygulamada kullanılmış olsa da,
Blowfish'in bazı güvenlik açıklarının keşfedilmesi sonucu günümüzde AES gibi daha güçlü güvenlik sağlayan algoritmalar tercih edilmektedir.Şuan Schneier modern uygulamalar için twofish'i öneriyor.

applsci-08-01119-g003-550.jpg


Blowfish'in Ecryption Kısmı

applsci-08-01119-g004-550.jpg


Decryption Kısmı

ECC


Günümüzde birçok uygulama ve protokolde kullanılan bir şifreleme yöntemidir.Özellikle güvenli iletişim(mesajlaşma uygulamaları),elektronik ödeme sistemleri,bankacılık işlemleri ve dijital imza işlemlerinde sıklıkla tercih edilir.

RSA gibi diğer asimetrik şifreleme yöntemlerine kıyasla daha küçük anahtar boyutları kullanırken aynı güvenlik düzeyini sağlar.Tabi bu da daha hızlı ve verimli şifreleme işlemleri yapabilmek demek.

RSA


RSA, bir asimetrik şifreleme algoritmasıdır.1977 yılında Ron Rives,Adi Shamir ve Leonard Aldeman tarafından geliştirilmiştir.RSA'nın çalışma mantığı bir sayıyı çarpanlarına ayırmanın o sayıyı yeni sayılarla çarpmaktan daha zor olmasına dayanmaktadır.RSA'nın çalışma mantığının matematiksel anlatımı biraz kafa karıştırıcı gözükecek ama kısaca bir üstünden geçelim.Bu yöntemi uygularken 3 adet ana adım bulunuyor:

İlk Adımda; iki farklı büyük asal sayı seçiyoruz(büyük olması güvenlik açısından önemli). Bu sayıları p ve q olarak adlandırıyoruz.
Bu iki asal sayıyı kullanarak
n = p * q değerini hesaplıyoruz. Bu n, RSA'nın temel matematiksel yapısının bir parçasıdır ve modül olarak adlandırılır.
Phi fonksiyonunu, φ (n ) = (p-1) * (q-1) şeklinde hesaplıyoruz. Bu fonksiyon, n sayısına göre öklidyen sayısını hesaplar.(Bu kısım biraz zor gözükebilir)
Öklidyen algoritması ile φ (n ) ile tam ortak olmayan bir e sayısı seçiyoruz. e, genellikle küçük bir sabit asal sayı olan 65537 (0x10001 olarak da gösterilir) olarak seçilir. Bu e, genellikle hızlı şifreleme işlemi için seçilir ve güvenli kabul edilir.
Son olarak,
e ve φ (n ) arasında bir modüler ters alımı gerçekleştiriyoruz ve bu, şifreleme anahtarı veya açık anahtar olarak adlandırılan d değerini veriyor.

İkinci Adımda; şifreleme işlemi için, veri (metin, dosya vb.) bir sayıya dönüştürülür ve bu sayı M olarak adlandırılır. M, modül n'den küçük olmalıdır.
Şifreleme işlemi, şifreleme anahtarı olan
e ve modül n kullanılarak gerçekleştirilir. Şifrelenmiş veri, C = M^e mod n olarak hesaplanır.

Son adımda; şifreli verinin çözülmesi, özel anahtar olarak adlandırılan bir d değeri kullanılarak gerçekleştirilir.
Şifreli veri
C,özel anahtar olan d ve modül n kullanılarak M = C^d mod n şeklinde çözülür.

RSA algoritması asimetrik şifreleme algoritması olduğu için public key ile şifrelenen veri private key ile çözülebilir.

RSA-algorithm-structure.png



Özellikle RSA'da olmak üzere algoritmaların yapısında kullanılan bazı matematiksel işlem ve terimleri anlamamış olabilirsiniz.RSA'nın çalışma mantığında biraz fonksiyon var onu burada anlatamam tabii ama anlamını bilmeme ihtimaliniz olan 2-3 terime dair bazı kaynaklar bırakıyorum.Vakit ayırdığınız için teşekkürler.


Parite Bitleri: Eşlik biti
XOR: XOR kapısı - Vikipedi
Blok Şifre: Blok şifreleme - Vikipedi
 
Son düzenleme:

rootibo

Kıdemli Üye
13 Mar 2023
2,168
12
1,460
Selam dostlar.Bu makalede sizlere encryption ve decryption hakkında bazı tanımlar ve yöntemlerden bahsedeceğim.


9l88q6h.png


Encryption (şifreleme) neden gereklidir?


Günlük hayatta internette gezinirken taşınan ve saklanan verilerin gizliliği ve güvenliği kullanıcılar açısından önem arz etmektedir.Güçlü bir şifreleme ile bu verilerin mahremiyeti garanti altına alınabilir.

Misal herhangi bir
bankacılık veya e-ticaret firmasının veritabanında kullanıcıların bilgileri bulunur ve bu verilerin ele geçirilmesi kullanıcılar için kötü sonuçlar doğurabilir bildiğiniz gibi.Bu yüzden bu verilerin güvenli şifreleme yöntemleriyle korunması gereklidir.

Veya bir mesajlaşma uygulaması kullanıyorsanız sizin ve karşı tarafın mesajlarının
kimse tarafından okunmaması güvenliğiniz açısından oldukça önemlidir.Aksi bir durumda biliyorsunuz kişinin itibarını veya hayatını tehlikeye sokabilecek çok ciddi durumlar oluşabilir.Bunun için genellikle tercih edilen yöntem uçtan uca şifreleme yöntemidir.Bu yöntemde alıcı ve gönderici hariç mesajları kimse okuyamaz.Örnek vermek gerekirse;Whatsapp,Signal ve Telegram bu yöntemi kullanır.


Simetrik Şifreleme


Verileri şifrelerken ve bu şifreleri çözerken aynı anahtarın kullanılması anlamına gelir.Eskiden özellikle devletler ve istihbarat teşkilatları arasındaki gizli iletişimi sağlamak için kullanılan bu yöntem günümüzde farklı bilgisayar sistemlerinde kullanılır.Bu sistemlerde iki veya daha fazla kullanıcı tek bir anahtar kullanır.Veriyi ifade eden metni şifrelemek için ve şifreyi çözmek için aynı anahtar kullanılır.Şifreleme düzeni yeterince güçlüyse,şifreli veriye ulaşmanın tek yolu şifreyi açacak anahtara sahip olmaktır.Simetrik şifreleme sistemlerinin asıl güvenli olan kısmı brute force yaparak çözmenin neredeyse imkansız olmasıdır.Bunun sebebi örneğin 128 bit olan bir anahtarı bf ile bulmaya çalışmanın ortalama bir bilgisayar ile milyarlarca yıl sürebilecek olmasıdır.

1-1024x576.png

Asimetrik Şifreleme


Simetrik şifrelemenin tersi diyebiliriz.Şifrelenmek istenen veri için iki adet anahtar (private key ve public key) gereklidir.Özel (private) anahtardan genel (public) anahtar üretilebilir fakat bunun tersi yapılamaz.Bu sebeple özel anahtarın kaybedilmemesi gerekir.Yani genel anahtarın başka birinin eline ulaşması pek bir anlam ifade etmez.Özel anahtar şifre imzalama ve çözme için kullanılırken genel anahtar doğrulama ve şifreleme için kullanılır.Gönderici tarafından özel anahtar ile imzalanan bir veri alıcı tarafından göndericinin genel anahtarı kullanılarak doğrulanabilir.Asimetrik algoritmalar imzalama,anahtar paylaşımı ve gizlilik için kullanılır.Bu anahtar sayesinde simetrik şifreleme için kullanılan veriler,güvenilir olarak iletilebilir.

asimetrik-sifreleme.png

Genel Olarak Tercih Edilen Bazı Simetrik ve Asimetrik Şİfreleme Algoritmaları

DES


1970'lerde geliştirilmiş ve 1977'de Amerika hükümeti tarafından yaygın olarak kullanılmaya başlanmıştır.DES bir simetrik blok şifreleme uygulamasıdır.Fakat artık DES,yapısındaki güvenlik zayıflıklarının ve anahtar boyunun kısa olması sebebiyle günümüzde fazla kullanılmıyor.
DES için kullanılan anahtar boyu 56 bittir.Bu sayı günümüz teknolojisinde güvenlik açısından zayıf olması anlamına geliyor.

DES'in çalışma mantığından kısaca şöyle bahsedebiliriz:

İlk Adım: 56 bitlik anahtar,parite bitleri dahil olacak şekilde oluşturulur.Parite bitleri anahtarın doğruluğunu sağlamak için kullanılır.
Anahtar,
56 bitlik parite bitleri çıkartılarak 56 bite indirgenmesi ve ardından 16 adet 48 bitlik alt anahtarın oluşturulmasıyla genişletilir.(Bu alt anahtarlar şifreleme işlemi sırasında kullanılacak.)

İkinci Adım: Veri bloğu ve ilk alt anahtar arasında başlangıç XOR işlemi yapılır.Sonrasında bir dizi tur gerçekleştirilir.Her turda,veri bloğu üzerine farklı matematiksel işlemler uygulanır ve bir sonraki tur için veri bloğu elde edilir.

Üçüncü Adım: Son adımda,anahtar bağımlı dönüşüm uygulanır ve bir sonraki tur için gerekli olan şifreli veri bloğu elde edilir.
Son turun ardından elde edilen şifreli veri bloğu,
şifreli metin olarak çıkartılır ve sonuç olarak kullanılır.Başta söylediğim gibi artık teknolojinin ilerlemesiyle beraber elde edilen yüksek hesaplama gücü,saldırıların daha kuvvetli gerçekleştirilebilmesine ve dolayısıyla da DES algoritmasının bu saldırılara karşı zayıf kalmasına sebep olduğu için DES,yerini AES gibi daha güçlü algoritmalara bırakmıştır.

AES


2001 yılında NIST tarafından kabul edilmiş ve DES yerine yaygın olarak kullanılmaya başlanmıştır.
AES de DES gibi bir simetrik şifreleme algoritmasıdır.
AES,farklı anahtar uzunluklarına izin verir.128,192 veya 256 bit olarak seçilebilir.Daha uzun anahtarlar bildiğiniz üzere daha güçlü şifreleme sağlar.Ayrıca AES bir blok şifreleme algoritmasıdır.

AES Uygulanma Adımları:

Veri bloğu ve birinci alt anahtar arasında XOR işlemi yapılır.

Bir dizi dönüşüm (tur) gerçekleştirilir. Her turda, veri bloğu üzerinde
farklı matematiksel işlemler uygulanır ve bir sonraki tur için veri bloğu elde edilir. Bu işlem, anahtar bağımlı bir yapıdır ve anahtarın her turda kullanımı farklılık gösterir.

Son turda anahtar bağımlı dönüşüm uygulanır ve bir sonraki tur için gerekli olan
şifreli ver bloğu elde edilir.Son turun ardından elde edilen şifreli veri bloğu,şifreli metin halinde sonuç olarak kullanılır.

security-aes_vs_des-f.png

MD5


Birçoğumuzun bildiği,artık güvenlik açısından zayıf olduğu için pek kullanılmayan bu algoritma hakkında konuyu çok uzatmayacağım.

MD5, verinin bütünlüğünü kontrol etmek için kullanılabilecek bir kontrol toplamı olarak da kullanılabilir. Veri doğrulama amacıyla bir mesajın MD5 hash değeri hesaplanır ve gönderici ve alıcı arasında karşılaştırılır. Eğer hash değerleri eşleşirse, veri doğrulanmış kabul edilir.

Blowfish


Bruce Schneier tarafından 1993 yılında tasarlanan simetrik bir blok şifreleme uygulamasıdır.Bu algoritma, hızlı olması, anahtar boyutunun esnekliği ve genel olarak güvenlik açısından güçlü olması nedeniyle popüler bir şifreleme algoritmasıdır.

Blowfish algoritmasının özelliklerinden kısaca şöyle bahsedelim:

32 bit ile 448 bit arasında değişen anahtar boyutlarını destekler.Anahtar boyutunun esnekliği AES'te olduğu gibi güvenliği artıran bir unsurdur.
Blowfish 64 bit bloklar üzerinde çalışır.Veri, 64 bit bloklar halinde şifrelenir ve çözülür.
Ardından girilen anahtarı kullanarak bir dizi
alt anahtar oluşturur.Bu alt anahtarlar daha sonra şifreleme ve çözme işlemlerinde kullanılır.
Her ne kadar bu algoritma hızlı çalışması ve esnek anahtar boyutu seçeneği sebebiyle birçok uygulamada kullanılmış olsa da,
Blowfish'in bazı güvenlik açıklarının keşfedilmesi sonucu günümüzde AES gibi daha güçlü güvenlik sağlayan algoritmalar tercih edilmektedir.Şuan Schneier modern uygulamalar için twofish'i öneriyor.

applsci-08-01119-g003-550.jpg


Blowfish'in Ecryption Kısmı

applsci-08-01119-g004-550.jpg


Decryption Kısmı

ECC


Günümüzde birçok uygulama ve protokolde kullanılan bir şifreleme yöntemidir.Özellikle güvenli iletişim(mesajlaşma uygulamaları),elektronik ödeme sistemleri,bankacılık işlemleri ve dijital imza işlemlerinde sıklıkla tercih edilir.

RSA gibi diğer asimetrik şifreleme yöntemlerine kıyasla daha küçük anahtar boyutları kullanırken aynı güvenlik düzeyini sağlar.Tabi bu da daha hızlı ve verimli şifreleme işlemleri yapabilmek demek.

RSA


RSA, bir asimetrik şifreleme algoritmasıdır.1977 yılında Ron Rives,Adi Shamir ve Leonard Aldeman tarafından geliştirilmiştir.RSA'nın çalışma mantığı bir sayıyı çarpanlarına ayırmanın o sayıyı yeni sayılarla çarpmaktan daha zor olmasına dayanmaktadır.RSA'nın çalışma mantığının matematiksel anlatımı biraz kafa karıştırıcı gözükecek ama kısaca bir üstünden geçelim.Bu yöntemi uygularken 3 adet ana adım bulunuyor:

İlk Adımda; iki farklı büyük asal sayı seçiyoruz(büyük olması güvenlik açısından önemli). Bu sayıları p ve q olarak adlandırıyoruz.
Bu iki asal sayıyı kullanarak
n = p * q değerini hesaplıyoruz. Bu n, RSA'nın temel matematiksel yapısının bir parçasıdır ve modül olarak adlandırılır.
Phi fonksiyonunu, φ (n ) = (p-1) * (q-1) şeklinde hesaplıyoruz. Bu fonksiyon, n sayısına göre öklidyen sayısını hesaplar.(Bu kısım biraz zor gözükebilir)
Öklidyen algoritması ile φ (n ) ile tam ortak olmayan bir e sayısı seçiyoruz. e, genellikle küçük bir sabit asal sayı olan 65537 (0x10001 olarak da gösterilir) olarak seçilir. Bu e, genellikle hızlı şifreleme işlemi için seçilir ve güvenli kabul edilir.
Son olarak,
e ve φ (n ) arasında bir modüler ters alımı gerçekleştiriyoruz ve bu, şifreleme anahtarı veya açık anahtar olarak adlandırılan d değerini veriyor.

İkinci Adımda; şifreleme işlemi için, veri (metin, dosya vb.) bir sayıya dönüştürülür ve bu sayı M olarak adlandırılır. M, modül n'den küçük olmalıdır.
Şifreleme işlemi, şifreleme anahtarı olan
e ve modül n kullanılarak gerçekleştirilir. Şifrelenmiş veri, C = M^e mod n olarak hesaplanır.

Son adımda; şifreli verinin çözülmesi, özel anahtar olarak adlandırılan bir d değeri kullanılarak gerçekleştirilir.
Şifreli veri
C,özel anahtar olan d ve modül n kullanılarak M = C^d mod n şeklinde çözülür.

RSA algoritması asimetrik şifreleme algoritması olduğu için public key ile şifrelenen veri private key ile çözülebilir.

RSA-algorithm-structure.png



Özellikle RSA'da olmak üzere algoritmaların yapısında kullanılan bazı matematiksel işlem ve terimleri anlamamış olabilirsiniz.RSA'nın çalışma mantığında biraz fonksiyon var onu burada anlatamam tabii ama anlamını bilmeme ihtimaliniz olan 2-3 terime dair bazı kaynaklar bırakıyorum.Vakit ayırdığınız için teşekkürler.


Parite Bitleri: Eşlik biti
XOR: XOR kapısı - Vikipedi
Blok Şifre: Blok şifreleme - Vikipedi
Elinize saglik
 

QuatrexDefacer

Katılımcı Üye
15 Eki 2022
624
5
405
Baku
Selam dostlar.Bu makalede sizlere encryption ve decryption hakkında bazı tanımlar ve yöntemlerden bahsedeceğim.


9l88q6h.png


Encryption (şifreleme) neden gereklidir?


Günlük hayatta internette gezinirken taşınan ve saklanan verilerin gizliliği ve güvenliği kullanıcılar açısından önem arz etmektedir.Güçlü bir şifreleme ile bu verilerin mahremiyeti garanti altına alınabilir.

Misal herhangi bir
bankacılık veya e-ticaret firmasının veritabanında kullanıcıların bilgileri bulunur ve bu verilerin ele geçirilmesi kullanıcılar için kötü sonuçlar doğurabilir bildiğiniz gibi.Bu yüzden bu verilerin güvenli şifreleme yöntemleriyle korunması gereklidir.

Veya bir mesajlaşma uygulaması kullanıyorsanız sizin ve karşı tarafın mesajlarının
kimse tarafından okunmaması güvenliğiniz açısından oldukça önemlidir.Aksi bir durumda biliyorsunuz kişinin itibarını veya hayatını tehlikeye sokabilecek çok ciddi durumlar oluşabilir.Bunun için genellikle tercih edilen yöntem uçtan uca şifreleme yöntemidir.Bu yöntemde alıcı ve gönderici hariç mesajları kimse okuyamaz.Örnek vermek gerekirse;Whatsapp,Signal ve Telegram bu yöntemi kullanır.


Simetrik Şifreleme


Verileri şifrelerken ve bu şifreleri çözerken aynı anahtarın kullanılması anlamına gelir.Eskiden özellikle devletler ve istihbarat teşkilatları arasındaki gizli iletişimi sağlamak için kullanılan bu yöntem günümüzde farklı bilgisayar sistemlerinde kullanılır.Bu sistemlerde iki veya daha fazla kullanıcı tek bir anahtar kullanır.Veriyi ifade eden metni şifrelemek için ve şifreyi çözmek için aynı anahtar kullanılır.Şifreleme düzeni yeterince güçlüyse,şifreli veriye ulaşmanın tek yolu şifreyi açacak anahtara sahip olmaktır.Simetrik şifreleme sistemlerinin asıl güvenli olan kısmı brute force yaparak çözmenin neredeyse imkansız olmasıdır.Bunun sebebi örneğin 128 bit olan bir anahtarı bf ile bulmaya çalışmanın ortalama bir bilgisayar ile milyarlarca yıl sürebilecek olmasıdır.

1-1024x576.png

Asimetrik Şifreleme


Simetrik şifrelemenin tersi diyebiliriz.Şifrelenmek istenen veri için iki adet anahtar (private key ve public key) gereklidir.Özel (private) anahtardan genel (public) anahtar üretilebilir fakat bunun tersi yapılamaz.Bu sebeple özel anahtarın kaybedilmemesi gerekir.Yani genel anahtarın başka birinin eline ulaşması pek bir anlam ifade etmez.Özel anahtar şifre imzalama ve çözme için kullanılırken genel anahtar doğrulama ve şifreleme için kullanılır.Gönderici tarafından özel anahtar ile imzalanan bir veri alıcı tarafından göndericinin genel anahtarı kullanılarak doğrulanabilir.Asimetrik algoritmalar imzalama,anahtar paylaşımı ve gizlilik için kullanılır.Bu anahtar sayesinde simetrik şifreleme için kullanılan veriler,güvenilir olarak iletilebilir.

asimetrik-sifreleme.png

Genel Olarak Tercih Edilen Bazı Simetrik ve Asimetrik Şİfreleme Algoritmaları

DES


1970'lerde geliştirilmiş ve 1977'de Amerika hükümeti tarafından yaygın olarak kullanılmaya başlanmıştır.DES bir simetrik blok şifreleme uygulamasıdır.Fakat artık DES,yapısındaki güvenlik zayıflıklarının ve anahtar boyunun kısa olması sebebiyle günümüzde fazla kullanılmıyor.
DES için kullanılan anahtar boyu 56 bittir.Bu sayı günümüz teknolojisinde güvenlik açısından zayıf olması anlamına geliyor.

DES'in çalışma mantığından kısaca şöyle bahsedebiliriz:

İlk Adım: 56 bitlik anahtar,parite bitleri dahil olacak şekilde oluşturulur.Parite bitleri anahtarın doğruluğunu sağlamak için kullanılır.
Anahtar,
56 bitlik parite bitleri çıkartılarak 56 bite indirgenmesi ve ardından 16 adet 48 bitlik alt anahtarın oluşturulmasıyla genişletilir.(Bu alt anahtarlar şifreleme işlemi sırasında kullanılacak.)

İkinci Adım: Veri bloğu ve ilk alt anahtar arasında başlangıç XOR işlemi yapılır.Sonrasında bir dizi tur gerçekleştirilir.Her turda,veri bloğu üzerine farklı matematiksel işlemler uygulanır ve bir sonraki tur için veri bloğu elde edilir.

Üçüncü Adım: Son adımda,anahtar bağımlı dönüşüm uygulanır ve bir sonraki tur için gerekli olan şifreli veri bloğu elde edilir.
Son turun ardından elde edilen şifreli veri bloğu,
şifreli metin olarak çıkartılır ve sonuç olarak kullanılır.Başta söylediğim gibi artık teknolojinin ilerlemesiyle beraber elde edilen yüksek hesaplama gücü,saldırıların daha kuvvetli gerçekleştirilebilmesine ve dolayısıyla da DES algoritmasının bu saldırılara karşı zayıf kalmasına sebep olduğu için DES,yerini AES gibi daha güçlü algoritmalara bırakmıştır.

AES


2001 yılında NIST tarafından kabul edilmiş ve DES yerine yaygın olarak kullanılmaya başlanmıştır.
AES de DES gibi bir simetrik şifreleme algoritmasıdır.
AES,farklı anahtar uzunluklarına izin verir.128,192 veya 256 bit olarak seçilebilir.Daha uzun anahtarlar bildiğiniz üzere daha güçlü şifreleme sağlar.Ayrıca AES bir blok şifreleme algoritmasıdır.

AES Uygulanma Adımları:

Veri bloğu ve birinci alt anahtar arasında XOR işlemi yapılır.

Bir dizi dönüşüm (tur) gerçekleştirilir. Her turda, veri bloğu üzerinde
farklı matematiksel işlemler uygulanır ve bir sonraki tur için veri bloğu elde edilir. Bu işlem, anahtar bağımlı bir yapıdır ve anahtarın her turda kullanımı farklılık gösterir.

Son turda anahtar bağımlı dönüşüm uygulanır ve bir sonraki tur için gerekli olan
şifreli ver bloğu elde edilir.Son turun ardından elde edilen şifreli veri bloğu,şifreli metin halinde sonuç olarak kullanılır.

security-aes_vs_des-f.png

MD5


Birçoğumuzun bildiği,artık güvenlik açısından zayıf olduğu için pek kullanılmayan bu algoritma hakkında konuyu çok uzatmayacağım.

MD5, verinin bütünlüğünü kontrol etmek için kullanılabilecek bir kontrol toplamı olarak da kullanılabilir. Veri doğrulama amacıyla bir mesajın MD5 hash değeri hesaplanır ve gönderici ve alıcı arasında karşılaştırılır. Eğer hash değerleri eşleşirse, veri doğrulanmış kabul edilir.

Blowfish


Bruce Schneier tarafından 1993 yılında tasarlanan simetrik bir blok şifreleme uygulamasıdır.Bu algoritma, hızlı olması, anahtar boyutunun esnekliği ve genel olarak güvenlik açısından güçlü olması nedeniyle popüler bir şifreleme algoritmasıdır.

Blowfish algoritmasının özelliklerinden kısaca şöyle bahsedelim:

32 bit ile 448 bit arasında değişen anahtar boyutlarını destekler.Anahtar boyutunun esnekliği AES'te olduğu gibi güvenliği artıran bir unsurdur.
Blowfish 64 bit bloklar üzerinde çalışır.Veri, 64 bit bloklar halinde şifrelenir ve çözülür.
Ardından girilen anahtarı kullanarak bir dizi
alt anahtar oluşturur.Bu alt anahtarlar daha sonra şifreleme ve çözme işlemlerinde kullanılır.
Her ne kadar bu algoritma hızlı çalışması ve esnek anahtar boyutu seçeneği sebebiyle birçok uygulamada kullanılmış olsa da,
Blowfish'in bazı güvenlik açıklarının keşfedilmesi sonucu günümüzde AES gibi daha güçlü güvenlik sağlayan algoritmalar tercih edilmektedir.Şuan Schneier modern uygulamalar için twofish'i öneriyor.

applsci-08-01119-g003-550.jpg


Blowfish'in Ecryption Kısmı

applsci-08-01119-g004-550.jpg


Decryption Kısmı

ECC


Günümüzde birçok uygulama ve protokolde kullanılan bir şifreleme yöntemidir.Özellikle güvenli iletişim(mesajlaşma uygulamaları),elektronik ödeme sistemleri,bankacılık işlemleri ve dijital imza işlemlerinde sıklıkla tercih edilir.

RSA gibi diğer asimetrik şifreleme yöntemlerine kıyasla daha küçük anahtar boyutları kullanırken aynı güvenlik düzeyini sağlar.Tabi bu da daha hızlı ve verimli şifreleme işlemleri yapabilmek demek.

RSA


RSA, bir asimetrik şifreleme algoritmasıdır.1977 yılında Ron Rives,Adi Shamir ve Leonard Aldeman tarafından geliştirilmiştir.RSA'nın çalışma mantığı bir sayıyı çarpanlarına ayırmanın o sayıyı yeni sayılarla çarpmaktan daha zor olmasına dayanmaktadır.RSA'nın çalışma mantığının matematiksel anlatımı biraz kafa karıştırıcı gözükecek ama kısaca bir üstünden geçelim.Bu yöntemi uygularken 3 adet ana adım bulunuyor:

İlk Adımda; iki farklı büyük asal sayı seçiyoruz(büyük olması güvenlik açısından önemli). Bu sayıları p ve q olarak adlandırıyoruz.
Bu iki asal sayıyı kullanarak
n = p * q değerini hesaplıyoruz. Bu n, RSA'nın temel matematiksel yapısının bir parçasıdır ve modül olarak adlandırılır.
Phi fonksiyonunu, φ (n ) = (p-1) * (q-1) şeklinde hesaplıyoruz. Bu fonksiyon, n sayısına göre öklidyen sayısını hesaplar.(Bu kısım biraz zor gözükebilir)
Öklidyen algoritması ile φ (n ) ile tam ortak olmayan bir e sayısı seçiyoruz. e, genellikle küçük bir sabit asal sayı olan 65537 (0x10001 olarak da gösterilir) olarak seçilir. Bu e, genellikle hızlı şifreleme işlemi için seçilir ve güvenli kabul edilir.
Son olarak,
e ve φ (n ) arasında bir modüler ters alımı gerçekleştiriyoruz ve bu, şifreleme anahtarı veya açık anahtar olarak adlandırılan d değerini veriyor.

İkinci Adımda; şifreleme işlemi için, veri (metin, dosya vb.) bir sayıya dönüştürülür ve bu sayı M olarak adlandırılır. M, modül n'den küçük olmalıdır.
Şifreleme işlemi, şifreleme anahtarı olan
e ve modül n kullanılarak gerçekleştirilir. Şifrelenmiş veri, C = M^e mod n olarak hesaplanır.

Son adımda; şifreli verinin çözülmesi, özel anahtar olarak adlandırılan bir d değeri kullanılarak gerçekleştirilir.
Şifreli veri
C,özel anahtar olan d ve modül n kullanılarak M = C^d mod n şeklinde çözülür.

RSA algoritması asimetrik şifreleme algoritması olduğu için public key ile şifrelenen veri private key ile çözülebilir.

RSA-algorithm-structure.png



Özellikle RSA'da olmak üzere algoritmaların yapısında kullanılan bazı matematiksel işlem ve terimleri anlamamış olabilirsiniz.RSA'nın çalışma mantığında biraz fonksiyon var onu burada anlatamam tabii ama anlamını bilmeme ihtimaliniz olan 2-3 terime dair bazı kaynaklar bırakıyorum.Vakit ayırdığınız için teşekkürler.


Parite Bitleri: Eşlik biti
XOR: XOR kapısı - Vikipedi
Blok Şifre: Blok şifreleme - Vikipedi
elinze saglik guzel konu olmus
 

S3SS1Z T3AM

Uzman üye
27 Nis 2019
1,424
10
710
HACKERİSTAN
İşte böyle konulara bitiyorum. Açıklanmış örneklendirilmiş resim ile dizayn edilmiş ve üyelere sunulmuş. Eline sağlık
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.