AES nasıl kullanılır?

AES nasıl kullanılır

AES Nasıl Kullanılır?

AES (Advanced Encryption Standard) yaygın olarak kullanılan bir simetrik şifreleme algoritmasıdır. Verileri güçlü bir şekilde şifrelemek ve güvenli iletişim sağlamak için kullanılır. AES’in kullanımında genellikle anahtar boyutları (128, 192 veya 256 bit) ve şifreleme modları (CBC, ECB, GCM vb.) önemlidir.

AES Kullanım Adımları:

  1. Anahtar Belirleme
    AES şifreleme için öncelikle bir gizli anahtar gereklidir. Bu anahtar, 128, 192 veya 256 bit olabilir ve hem şifreleme hem de şifre çözme işlemlerinde kullanılır.

  2. Veri Hazırlama
    Şifrelenecek veri uygun formata getirilir. Bazı modlarda (örneğin CBC) blok boyutu 16 byte olduğu için, veri uygun biçimde bloklara bölünür veya gerekli doldurma (padding) yapılır.

  3. Şifreleme Modu Seçimi
    AES farklı modlarda çalışabilir. En yaygın modlar:

    • ECB (Electronic Codebook): Her blok bağımsız şifrelenir, ancak güvenlik zayıf.
    • CBC (Cipher Block Chaining): Önceki şifreli bloklarla zincirleme yapar, daha güvenli.
    • GCM (Galois/Counter Mode): Hem şifreleme hem de doğrulama sağlar.
  4. Şifreleme İşlemi
    Hazırlanan veri, belirlenen anahtar ve şifreleme modu kullanılarak AES algoritmasıyla şifrelenir.

  5. Şifre Çözme İşlemi
    Şifrelenmiş veri, aynı anahtar ve mod kullanılarak çözülür ve orijinal veri elde edilir.


:light_bulb: Pro Tip: Şifreleme ve şifre çözme işlemlerinde kullanılan anahtar asla paylaşılmamalıdır; aksi halde güvenlik tehlikeye girer.


Örnek: Python’da AES Kullanımı

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes

# Anahtar ve veri
key = get_random_bytes(16)  # 128 bit anahtar
data = b"Merhaba, AES!"

# Şifreleme
cipher = AES.new(key, AES.MODE_CBC)
ct_bytes = cipher.encrypt(pad(data, AES.block_size))
iv = cipher.iv

# Şifre çözme
cipher_dec = AES.new(key, AES.MODE_CBC, iv)
pt = unpad(cipher_dec.decrypt(ct_bytes), AES.block_size)

print("Şifrelenmiş:", ct_bytes)
print("Çözümlenmiş:", pt)

AES ile İlgili Temel Kavramlar

Kavram Açıklama
Anahtar (Key) Şifrelemede kullanılan gizli bilgi.
Blok Boyutu AES’te sabit 128 bit (16 byte).
Şifreleme Modu Farklı güvenlik ve işlevsellik modları (CBC, ECB, GCM vs.).
Padding Veri bloğu boyutunun tamamlanması için eklenen ek veriler.

Sık Yapılan Hatalar

:cross_mark: Anahtar tekrar kullanımı

  • Yanlış: Aynı anahtarı ve IV’yi birden çok kez kullanmak.
  • Doğru: Her şifreleme işleminde farklı IV kullanmak gerekir.
  • Neden yanlış: IV’nin tekrarı şifre çözüm sürecini ve güvenliği zedeler.

:cross_mark: ECB modu kullanmak

  • Yanlış: Veri bloklarını bağımsız olarak şifrelemek.
  • Doğru: CBC veya GCM gibi daha güvenli modlar tercih edilmeli.
  • Neden yanlış: ECB, tekrar eden blokları görünür kılarak güvenliği azaltır.

Başka soruların olursa sormaktan çekinme! :rocket:
Bu konuda adım adım bir uygulama örneği ister misin?