AES şifrelemesi ve bilinen bir anahtar ve düz metinle, bir saldırgan aynı şifreli metne neden olacak şekilde farklı bir anahtar ve düz metin oluşturabilir mi?

Aug 19 2020

Kısaca: AES şifrelemeyle bir saldırgan, AES key1 (düz metin1 ) = AES anahtar2 (düz metin2 ) olacak şekilde yeni bir anahtar2 ve düz metin2 oluşturabilir

Öyleyse, örneğin AES-GCM gibi bir MAC veya SHA256 HMAC ile bir AES-CTR uygulayarak çözülebilir mi?

Amaçlanan uygulama: Bir dosyanın şifrelenmesi. Anahtara sahip olan her istemci dosyanın şifresini çözebilir. Şifrelenmiş dosya, SHA256 hash ile bir sunucu tarafından (anahtarı bilmeden) körü körüne işlenir. Yeni bir müşteriye barındırılan dosyayla yanlış bir anahtar verildiğinde, bunun yanlış anahtar olduğunu algılayabilmelidir. Ve sonuç olarak aynı şifrelenmiş dosyadan başka (gürültülü) ikili dosya elde etmemek. Yanlış anahtarı teslim eden bir saldırganın orijinal anahtara, şifreli metne ve dolayısıyla düz metne erişimi olduğunu not ederek.

(Aynı dosyaların farklı anahtarlarla şifrelenmesi seçeneği orada olmalıdır. Bu nedenle, benim niyetim deterministik şifreleme değil)

Düşündüğüm bir diğer olası kolay çözüm, gizli anahtarın karmasını şifrelenmiş dosyayla birlikte sunucuda depolamak ve doğrulaması için istemciye göndermek olabilir. Ama aslında iyi bilinen, kullanıma hazır bir çözümü kullanmayı tercih ediyorum ve benim bulduğum bir şeyi değil. Verilen şifreli metinde yalnızca bir anahtar sonucu garanti edecek kadar bir MAC / HMAC uyguluyor.

Umarım niyetim açıktır ve bilgili biri beni doğru yöne yönlendirebilir.

Yanıtlar

5 YehudaLindell Aug 19 2020 at 03:49

Temel AES için bu şekilde iki anahtar bulmak kolaydır. Herhangi birini al$key1$ ve $plaintext1$ ve hesapla $c=AES_{key1}(plaintext1)$. Sonra herhangi birini al$key2$ ve hesapla $plaintext2 = AES^{-1}_{key2}(c)$. Bunu takip eder$AES_{key1}(plaintext1) = AES_{key2}(plaintext2)$. Bunu söyledikten sonra, eğer AES bir MAC ile kimliği doğrulanmış bir şifreleme modunda kullanılıyorsa, bu mutlaka mümkün olmayabilir. Bunun hiçbir garantisi olmadığını ve böyle bir şeyin kanıtlanması gerektiğini vurgulamak isterim. Özellikle, standart şifrele sonra MAC (farklı anahtarlarla) yaptıysanız, "şifreleme" kısmı değişmediğinden, bu tamamen aynı şekilde savunmasız olacaktır. Sonuç olarak, bunu başarmak mümkün olmalı, ancak kesinlikle garanti edilmiyor ve çoğu zaman hiç tutmuyor.