Deterministyczne uwierzytelnianie uwierzytelniania z powiązanymi danymi (deterministyczne AEAD)

Primitive Deterministic Authenticated Encryption with Associated Data (Deterministic AEAD) zapewnia szyfrowanie o właściwości deterministycznej: szyfrowanie tych samych danych zawsze daje ten sam tekst zaszyfrowany. Ten typ szyfrowania jest przydatny do pakowania kluczy lub do niektórych schematów wyszukiwania w zaszyfrowanych danych (więcej informacji znajdziesz w RFC 5297, sekcja 1.3). Ze względu na swoją własność deterministyczną implementacje tego prymitywu mogą prowadzić do utraty tajemnicy, ponieważ atakujący musi tylko poznać szyfrogram danej wiadomości, aby zidentyfikować inne jej wystąpienia.

Deterministyczne AEAD ma te właściwości:

  • Secrecy nie wiadomo nic o tekstach, oprócz ich długości i równości powtarzających się tekstów.
  • Autentyczność: nie można zmienić zaszyfrowanego tekstu szyfrowanego bez wykrycia.
  • Symetryczne: szyfrowanie tekstu zwykłego i odszyfrowywanie tekstu zaszyfrowanego odbywa się za pomocą tego samego klucza.
  • Deterministyczny: dopóki klucz główny nie zostanie zmieniony, szyfrowanie zwykłego tekstu dwukrotnie przy użyciu tych samych parametrów spowoduje otrzymanie tego samego tekstu zaszyfrowanego.

Powiązane dane

Deterministyczne AEAD można też używać do wiązania tekstu zaszyfrowanego z konkretnymi powiązanymi danymi. Jeśli np. masz bazę danych z polami user-idencrypted-medical-history: w tym scenariuszu pole user-id może być używane jako powiązane dane podczas szyfrowania pola encrypted-medical-history. Zapobiega to przenoszeniu historii medycznej z jednego konta na drugie.

Wybieranie typu klucza

Zalecamy używanie typu klucza AES256_SIV we wszystkich przypadkach użycia.

Gwarancje bezpieczeństwa

  • Siła uwierzytelniania co najmniej 80-bitowa.
  • Tekst zwykły i powiązane dane mogą mieć dowolną długość (w zakresie 0–232 bajtów).
  • 128-bitowy poziom zabezpieczeń przed atakami na odzyskiwanie kluczy, a także w atakach wieloużytkownikowych z maksymalnie 232 kluczami – oznacza to, że jeśli przeciwnik uzyska 232 szyfrogramy tego samego komunikatu zaszyfrowanego za pomocą 232 kluczy, musi wykonać 2128 obliczeń, aby uzyskać pojedynczy klucz.
  • Możliwość bezpiecznego zaszyfrowania 238 wiadomości, pod warunkiem że każda z nich ma rozmiar mniejszy niż 1 MB.

Przykładowy przypadek użycia

Zobacz: szyfrowanie danych w sposób deterministycznywiązanie tekstu zaszyfrowanego z kontekstem.