Funzione pseudo-casuale (PRF)

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.