Podstawowy element funkcji Pseudolosowy (PRF) umożliwia generowanie stabilnych, dowolnej długości i pseudolosowych danych wyjściowych dla danego wejścia.
Ponieważ Tink działa na zestawach kluczy, ten element podstawowy ujawnia odpowiedni zestaw PRF zamiast pojedynczego PRF. PRF są indeksowane według 32-bitowego identyfikatora klucza. Tej opcji można używać do rotacji klucza używanego do usuwania informacji bez utraty poprzedniego powiązania.
PRF ma te właściwości:
- Deterministyczny: obliczenie PRF dla danych wejściowych zawsze daje te same dane wyjściowe.
- Losowość: danych wyjściowych PRF nie można odróżnić od losowych bajtów.
Wybierz typ klucza
W większości przypadków zalecamy korzystanie z HMAC_SHA256_PRF
, ale są też inne opcje.
Ogólnie rzecz biorąc, następujące stwierdzenia są prawdziwe:
- Działanie
HMAC_SHA512_PRF
może być szybsze lub nie, w zależności od rozmiaru wejściowego i specyfikacji używanego sprzętu. HMAC_SHA512_PRF
to najbardziej zachowawczy tryb, którego można używać w przypadku praktycznie nieograniczonej liczby wiadomości.AES_CMAC_PRF
działa najszybciej w systemach obsługujących akcelerację sprzętową AES-NI.
Minimalne gwarancje bezpieczeństwa
- Bez znajomości klucza nie można odróżnić PRF od funkcji losowej
- Co najmniej 128-bitowe zabezpieczenia, także w przypadku wielu użytkowników (gdy atakujący nie kieruje reklamy na konkretny klucz, ale dowolny klucz z zestawu maksymalnie 232 kluczy).
- Co najmniej 16 bajtów danych wyjściowych
Przykłady użycia
Przypadki użycia PRF obejmują deterministyczne usuwanie informacji umożliwiających identyfikację osoby, kluczowane funkcje haszujące oraz tworzenie identyfikatorów podrzędnych, które nie pozwalają na łączenie się z pierwotnym zbiorem danych bez poznania klucza.
Chociaż PRF mogą być używane do potwierdzania autentyczności wiadomości, w tym przypadku zalecamy użycie elementu podstawowego MAC, ponieważ zapewnia on obsługę weryfikacji, pozwala uniknąć problemów z zabezpieczeniami często występujących podczas weryfikacji i oferuje automatyczną obsługę rotacji kluczy. Umożliwia też korzystanie z algorytmów niedeterministycznych.