La primitiva PRF (pseudo-casuale) consente di produrre output stabili, arbitrari e pseudo-casuali per un determinato input.
Poiché Tink opera sui set di chiavi, questa primitiva espone un insieme corrispondente di PRF invece di un singolo PRF. I PRF sono indicizzati da un ID chiave a 32 bit. Può essere utilizzata per ruotare la chiave utilizzata per oscurare un'informazione, senza perdere l'associazione precedente.
PRF ha le seguenti proprietà:
- Deterministico: il calcolo di un PRF per un determinato input produrrà sempre lo stesso output.
- Coralità: l'output di un PRF non è distinguibile dai byte casuali.
Scegli un tipo di chiave
Consigliamo di utilizzare HMAC_SHA256_PRF
per la maggior parte degli utilizzi, ma esistono anche
altre opzioni.
In generale, vale quanto segue:
HMAC_SHA512_PRF
può essere più veloce o meno a seconda delle dimensioni dell'input e delle specifiche dell'hardware utilizzato.HMAC_SHA512_PRF
è la modalità più conservativa che può essere utilizzata per un numero praticamente illimitato di messaggi.AES_CMAC_PRF
è più veloce sui sistemi che supportano l'accelerazione hardware AES-NI.
Minime garanzie di sicurezza
- Senza conoscere la chiave, il PRF non è distinguibile da una funzione casuale
- Sicurezza ad almeno 128 bit, anche in scenari multiutente (quando un utente malintenzionato non prende di mira una chiave specifica, ma qualsiasi chiave di un massimo di 232 chiavi)
- Almeno 16 byte di output disponibili
Esempi di casi d'uso
I casi d'uso per PRF includono l'oscuramento deterministico delle informazioni che consentono l'identificazione personale (PII), funzioni di hash con chiave e la creazione di ID secondari che non consentono l'unione con il set di dati originale senza conoscere la chiave.
Sebbene i PRF possano essere utilizzati per dimostrare l'autenticità di un messaggio, per quel caso d'uso è consigliato l'utilizzo della primitiva MAC, in quanto supporta la verifica, evita i problemi di sicurezza che spesso si verificano durante la verifica e dispone del supporto automatico per la rotazione delle chiavi. Inoltre, consente l'utilizzo di algoritmi non deterministici.