Hafta 5

Abdullah Bagyapan, cryptography
Back

Amaç : Simetrik ve asimetrik şifreleme, Sayılar Teorisine giriş, Asallık Testi, Özet fonksiyonlar.

Yazar : abdullahbagyapan


Asimetrik Şifreleme

Asimetrik şifreleme, anahtar çiftlerini(public key - private key) kullanan bir şifrelemedir. Her anahtar çifti, bir public key ve ona karşılık gelen bir private key'den oluşur.

Asimetrik şifrelemenin güvenliği, private key'in gizli tutulmasına bağlıdır; public key, açık bir şekilde herkese dağıtılabilir.

Public key'e sahip olan herkes bir mesajı şifreleyebilir ve bir şifreli metin elde edebilir, ancak yalnızca ilgili private key'in sahibi şifreli metni çözebilir.

asymmetric encryption

Asimetrik Şifreleme Kullanarak Mesaj Şifreleyelim

1. Private Key Oluşturalım

openssl genpkey -algorithm RSA -out private_key.pem
private key

2. Public Key Oluşturalım

openssl rsa -pubout -in private_key.pem -out public_key.pem
private key

3. Mesaj Oluşturalım

echo "PAUSIBER" > message.txt

4. Mesajımızı Public Key ile Şifreleyelim

openssl pkeyutl -encrypt -inkey public_key.pem -pubin -in message.txt -out encrypted_message.bin

Görüntülemeye çalıştığımızda ise anlamsız sayı ve rakamlar görüyoruz.

encrypted message

5. Şimdi de Private Key Kullanarak Mesajımızı Çözelim

openssl pkeyutl -decrypt -inkey private_key.pem -in encrypted_message.bin -out decrypted_message.txt

Görüntülemeye çalıştığımızda ise şifrelediğimiz mesajı görüyoruz.

decrypted message

Simetrik Şifreleme

Simetrik şifreleme, hem düz metnin şifrelenmesi hem de şifreli metnin çözülmesi için aynı gizli anahtarı kullanan bir şifrelemedir.

Her iki tarafın da gizli anahtara erişimi olması gerekliliği, asimetrik şifrelemeye kıyasla simetrik şifrelemenin ana dezavantajlarından biridir.

Simetrik şifrelemede anahtar boyutu daha küçüktür, bu da daha az depolama alanı ve daha hızlı şifreleme anlamına gelir.

Gizli anahtarı karşı tarafa iletmek için asimetrik şifrelemeyle beraber tek seferlik şifreleme kullanılır.

decrypted message

Simetrik Şifreleme Kullanarak Mesaj Şifreleyelim

1. Rastgele Key Oluşturalım

head /dev/urandom -c 128 > secret.key
secret key

2. Mesaj Oluşturalım

echo "PAUSIBER" > message.txt

3. Mesajımızı Key ile Şifreleyelim

openssl enc -aes-128-cbc -in message.txt -kfile secret.key -out secret.bin
encrypted message

4. Şimdi de Key'imizi Kullanarak Mesajımızı Çözelim

openssl enc -aes-128-cbc -d -in secret.bin -kfile secret.key -out decrypted_message.txt

Görüntülemeye çalıştığımızda ise şifrelediğimiz mesajı görüyoruz.

decrypted message

Diffie Hellman Key Exchange

Diffie Hellman Key Exchange, halka açık ve güvenli olmayan bir kanal üzerinden güvenli şekilde simetrik anahtar oluşturma yöntemidir.

Birbirleri hakkında önceden bilgisi olmayan iki tarafın ortaklaşa paylaşılan gizli anahtar oluşturmasına olanak tanır.

Bu anahtar ile simetrik şifreleme kullanılarak sonraki iletişimler şifrelenir.

diffie hellman

Sayılar Teorisi (Number Theory)

Sayılar Teorisi, öncelikle tam sayıların ve aritmetik fonksiyonların incelenmesine adanmış saf matematiğin bir dalıdır.

Kriptoloji tamamen sayılar teorisi ile ilgilidir ve tüm tam sayılar (0 ve 1 hariç) asal sayılardan oluşur, bu nedenle sayılar teorisi asal sayılarla çok ilgilenir.

İki asal sayının çarpımı public key olarak kullanılabilirken, asal sayıların kendisi de private olarak kullanılabilir.

RSA gibi bazı önemli kriptografik algoritmalar, büyük sayıların asal çarpanlarına ayrılmasının uzun zaman alması gerçeğine kritik olarak bağlıdır.


Asallık Testi (Primality Test)

Asallık testi, bir sayının asal olup olmadığını belirleyen bir algoritmadır. Matematiğin diğer alanları arasında kriptografi için kullanılır.

Çarpanlara ayırmanın hesaplama açısından zor bir problem olduğu için asallık testini yapmak daha kolaydır.

Big Prime Number Generator: https://bigprimes.org

Primality Test: https://bigprimes.org/primality-test


Özet Fonksiyonlar (Hash Functions)

Özet fonksiyonlar, rastgele boyuttaki verileri sabit boyutlu değerlere eşlemek için kullanılan bir fonksiyondur.

Özet fonksiyonların gizli anahtarı yoktur. Fonksiyonun kendisi herkese açıktı ve herkes fonksiyonu çalıştırabilir.

İyi bir özet fonksiyonu aşağıdaki özellikleri taşır:

Özet Fonksiyonlarının Kullanımı

1. Mesaj Oluşturalım

echo "PAUSIBER" > message.txt

2. Mesajımızı Hashleyelim

sha256sum message.txt
sha256sum

Bu hafta neler yaptık ?

© PauSiber