AES-GCM (Advanced Encryption Standard - Galois/Counter Mode)
Tarihçe ve Genel Bakış
AES (Advanced Encryption Standard), 2001 yılında Amerika Birleşik Devletleri Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından yayınlanan bir şifreleme standardıdır. Rijndael algoritması temel alınarak geliştirilmiştir ve günümüzde güvenli iletişim için en yaygın kullanılan simetrik şifreleme algoritmalarından biridir.
GCM (Galois/Counter Mode), AES gibi blok şifreleme algoritmalarıyla birlikte kullanılan bir işlem modudur. 2007 yılında NIST tarafından standartlaştırılmış olan GCM, hem şifreleme hem de veri bütünlüğü doğrulaması (authentication) sağlayan bir AEAD (Authenticated Encryption with Associated Data) modudur.
Çalışma Prensibi
AES-GCM'nin Temel Bileşenleri
- AES Blok Şifrelemesi: 128 bit blok boyutu ile çalışan, 128, 192 veya 256 bit anahtar uzunluklarını destekleyen bir blok şifreleme algoritmasıdır.
- CTR (Counter) Modu: Her bloğun şifrelenmesi için sayaç değerlerini kullanan paralel işleme uygun bir mod.
- GMAC (Galois Message Authentication Code): Şifreli veri için bütünlük kontrolü sağlayan bir kimlik doğrulama kodu.
- Nonce (IV): AES-GCM'de genellikle 96-bit (12 byte) uzunluğunda bir başlatma vektörü kullanılır.
- Authentication Tag: Şifreli metnin ve ek verilerin (AAD) bütünlüğünü doğrulayan bir etiket.
AES-GCM'nin Avantajları
AES-GCM'nin başlıca avantajları:
- Bütünlük ve Gizlilik: Tek bir işlemde hem şifreleme hem de kimlik doğrulama sağlar
- Verimlilik: CTR modu sayesinde yüksek performanslı paralel işleme imkanı sunar
- Donanım Desteği: Modern işlemcilerde AES-NI ve PCLMULQDQ talimatları ile hızlandırılabilir
- Ek Veri (AAD) Desteği: Şifrelenmemiş ancak kimlik doğrulamasına tabi tutulacak ek veriler kullanabilir
- Standartlaştırılmış: TLS 1.2 ve 1.3, IPsec gibi güvenlik protokollerinde yaygın olarak kullanılır
Kullanım Alanları
AES-GCM aşağıdaki alanlarda yaygın olarak kullanılır:
- Web güvenliği (HTTPS, TLS)
- VPN bağlantıları (IPsec)
- WiFi güvenliği (WPA2, WPA3)
- Disk şifreleme
- Bulut depolama
- Güvenli anlık mesajlaşma uygulamaları
Güvenlik Hususları
AES-GCM Kullanımında Dikkat Edilmesi Gerekenler
- Her şifreleme işlemi için benzersiz bir nonce (IV) kullanılmalıdır. Asla aynı (anahtar, nonce) ikilisi tekrar kullanılmamalıdır.
- Önerilen nonce boyutu 12 byte (96 bit)'tır.
- Authentication tag boyutu genellikle 16 byte (128 bit) olmalıdır.
- Yüksek güvenlik gereksinimleri için 256 bit anahtar kullanılması önerilir.
- GCM modu, kısa mesajlar için optimizedir, çok büyük verilerin şifrelenmesi için dikkatli kullanılmalıdır.
- Authentication tag doğrulaması başarısız olduğunda, deşifre edilmiş veri kesinlikle kullanılmamalıdır.