Deterministyczne AEAD zapewnia szyfrowanie z wykorzystaniem właściwości deterministycznej: zaszyfrowanie tych samych danych zawsze zapewnia ten sam tekst szyfrowany. Ten typ szyfrowania jest przydatny do zawijania kluczy lub w przypadku niektórych schematów wyszukiwania zaszyfrowanych danych (więcej informacji znajdziesz w sekcji RFC 5297, sekcja 1.3). Ze względu na deterministyczną właściwość implementacje tych elementów mogą doprowadzić do utraty utajnienia informacji, ponieważ atakujący musi jedynie poznać tekst szyfrowany dla danej wiadomości, aby zidentyfikować pozostałe wystąpienia tej wiadomości.
Deterministyczne AEAD ma następujące właściwości:
- Tajność: nie są znane żadne informacje o tekście jawnym, z wyjątkiem jego długości i równości powtarzających się tekstów jawnych.
- Autentyczność: nie można zmienić zaszyfrowanego tekstu jawnego, na którym opiera się tekst szyfrowany, bez wykrycia.
- Symetryczny: szyfrowanie tekstu zwykłego i odszyfrowywania tekstu zaszyfrowanego odbywa się przy użyciu tego samego klucza.
- Deterministyczny: dopóki klucz podstawowy nie zostanie zmieniony, dwukrotne zaszyfrowanie tekstu zwykłego z tymi samymi parametrami zapewnia ten sam tekst szyfrowany.
Powiązane dane
Deterministyczne AEAD można też wykorzystać do powiązania tekstu szyfrowania z konkretnymi powiązanymi danymi. Załóżmy, że masz bazę danych z polami user-id
i encrypted-medical-history
. W tym scenariuszu podczas szyfrowania encrypted-medical-history
można używać user-id
jako danych powiązanych. Dzięki temu osoba przeprowadzająca atak nie będzie mogła przenosić historii medycznej z jednego użytkownika do drugiego.
Wybierz typ klucza
Do wszystkich zastosowań zalecamy typ klucza AES256_SIV.
Gwarancje bezpieczeństwa
- Siła uwierzytelniania musi wynosić co najmniej 80 bitów.
- Tekst jawny i powiązane z nim dane mogą mieć dowolną długość (w zakresie 0–232 bajtów).
- 128-bitowy poziom bezpieczeństwa przed atakami polegającymi na odzyskiwaniu klucza oraz atakach obejmujących wielu użytkowników z wykorzystaniem maksymalnie 232 kluczy. Oznacza to, że jeśli przeciwnik uzyska 232 teksty zaszyfrowane tej samej wiadomości zaszyfrowanej przy użyciu 2 32 kluczy, musi wykonać 2128 obliczeń, aby uzyskać jeden klucz.
- Możliwość bezpiecznego zaszyfrowania 238 wiadomości, pod warunkiem że każdy z nich ma mniej niż 1 MB.
Przykład zastosowania
Przeczytaj sekcję Chcę szyfrować dane deterministycznie i Chcę powiązać tekst szyfrowany z jego kontekstem.