İlişkili Verilerle Kimlik Doğrulaması Yapılmış Şifreleme (Akış AEAD)

Akış AEAD temel öğesi, akış verileri için kimliği doğrulanmış şifreleme sunar. Şifrelenecek veriler tek bir adımda işlenemeyecek kadar büyük olduğunda kullanışlıdır. Tipik kullanım alanları, büyük dosyaların veya canlı veri akışlarının şifrelenmesini içerir.

Şifreleme, şifrelenmiş metin içinde konumlarına bağlı olan segmentlerde yapılır ve kaldırılamaz. Bir şifrelenmiş metinden alınan segmentler başka bir şifrelenmiş metne eklenemez. Mevcut bir şifrelenmiş metni değiştirmek için veri akışının tamamı yeniden şifrelenmelidir.1

Şifre çözme işlemi hızlıdır, çünkü aynı anda şifrelenmiş metnin yalnızca bir kısmının şifresi çözülüp kimliği doğrulanır. Kısmi düz metinler, şifrelenmiş metnin tamamı işlenmeden elde edilebilir.

Akış AEAD uygulamaları, AEAD tanımını karşılar ve OAE2 güvenlidir. Aşağıdaki özelliklere sahiptirler:

  • Gizlilik: Şifrelenmemiş metin hakkında, uzunluğu dışında hiçbir şey bilinmemektedir.
  • Özgünlük: Şifrelenmiş metnin altında yer alan şifrelenmiş düz metnin algılanmadan değiştirilmesi mümkün değildir.
  • Simetrik: Şifrelenmemiş metnin şifrelenmesi ve şifrelenmiş metnin şifresinin çözülmesi aynı anahtarla gerçekleştirilir.
  • Rastgele hale getirme: Şifreleme rastgele hâle getirilir. Aynı düz metne sahip iki mesaj farklı şifrelenmiş metinler verir. Saldırganlar, hangi şifrelenmiş metnin belirli bir şifrelenmemiş metne karşılık geldiğini bilemez.

İlişkili veriler

AEAD akışı şifrelenmiş metni belirli ilişkili verilere bağlamak için kullanılabilir. user-id ve encrypted-medical-history alanlarına sahip bir veritabanınız olduğunu varsayalım. Bu senaryoda user-id, encrypted-medical-history verileri şifrelenirken ilişkili veri olarak kullanılabilir. Bu, saldırganların tıbbi geçmişi bir kullanıcıdan diğerine taşımasını önler.

Anahtar türü seçin

Çoğu kullanım için AES128_GCM_HKDF_1MB değerini öneririz. Genel olarak:

  • AES128_GCM_HKDF_1MB (veya AES256_GCM_HKDF_1MB) daha hızlı seçenektir. Her biri en fazla 264 bayt olacak şekilde 264 dosyayı şifreleyebilir. Şifreleme ve şifre çözme işlemleri sırasında yaklaşık 1 MB bellek kullanılır.
  • AES128_GCM_HKDF_4KB yaklaşık 4 KB bellek kullanır ve sisteminizin çok fazla belleği yoksa iyi bir seçimdir.
  • AES128_TO_HMAC_SHA256_1 MB (veya AES256_TO_HMAC_SHA256_1 MB) daha kısıtlı bir seçenektir.

Güvenlik garantileri

Akış AEAD uygulamalarının sunduğu avantajlar:

  • CCA2 güvenliği.
  • En az 80 bit kimlik doğrulama gücü.
  • En az 264 mesajı3 toplamda 251 bayt2 ile şifreleyebilme özelliği . En fazla 232 şifrelenmiş metine veya seçili şifrelenmiş metne sahip hiçbir saldırının başarı olasılığı 2-32'den büyüktür.

Örnek kullanım alanı

Büyük dosyaları veya veri akışlarını şifrelemek istiyorum bölümüne bakın.


  1. Bu kısıtlamanın bir nedeni AES-GCM şifresinin kullanılmasıdır. Aynı konumda farklı bir düz metin segmentini şifrelemek, IV'ın yeniden kullanılmasına eşdeğerdir ve bu, AES-GCM'nin güvenlik garantilerini ihlal eder. Diğer bir neden de, saldırganın tespit edilmeden dosyanın önceki bir sürümünü geri yüklemeye çalışabileceği geri alma saldırılarını engellemesidir. 

  2. Her segment segment_size - tag_size bayt düz metin içeren 232 segment desteklenir. 1 MB'lık segmentler için toplam düz metin boyutu 232 * (220-16) ~= 251 bayttır.

  3. Türetilmiş anahtar (128 bit) ve nonce ön ek (bağımsız rastgele 7 bayt değer) kombinasyonu tekrarlandığında AEAD akışı güvenli olmaz. Başarı olasılığının 2'den -32'den az olmasını istediğimizde bu yaklaşık 264 mesaja karşılık gelen 184 bit çarpışma direncimiz vardır.