Passa al contenuto principale

4. Requirements on AEAD Algorithm Specifications (Requisiti sulle specifiche)

4. Requirements on AEAD Algorithm Specifications (Requisiti sulle specifiche degli algoritmi AEAD)

Ogni algoritmo AEAD DEVE accettare solo chiavi con una lunghezza di chiave fissa K_LEN e NON DEVE richiedere alcun formato particolare dei dati per le chiavi fornite in ingresso. Un algoritmo che richiede tale struttura (ad esempio con sotto-chiavi in un particolare formato di parità) dovrà fornirla internamente.

Ogni algoritmo AEAD DEVE accettare qualsiasi testo in chiaro con lunghezza tra zero e P_MAX ottetti, inclusi, dove il valore P_MAX è specifico di quell'algoritmo. Il valore di P_MAX DEVE essere maggiore di zero e DOVREBBE essere almeno 65.536 (2^16) ottetti. Tale dimensione è un limite superiore tipico per i pacchetti di dati di rete. Altre applicazioni possono usare valori ancora maggiori di P_MAX, per cui è desiderabile che algoritmi di uso generale supportino valori più alti.

Ogni algoritmo AEAD DEVE accettare qualsiasi dato associato con lunghezza tra zero e A_MAX ottetti, inclusi, dove il valore A_MAX è specifico di quell'algoritmo. Il valore di A_MAX DEVE essere maggiore di zero e DOVREBBE essere almeno 65.536 (2^16) ottetti. Altre applicazioni possono usare valori ancora maggiori di A_MAX, per cui è desiderabile che algoritmi di uso generale supportino valori più alti.

Ogni algoritmo AEAD DEVE accettare qualsiasi nonce con lunghezza tra N_MIN e N_MAX ottetti, inclusi, dove i valori N_MIN e N_MAX sono specifici di quell'algoritmo. I valori N_MAX e N_MIN POSSONO essere uguali. Ogni algoritmo DOVREBBE accettare un nonce lungo dodici (12) ottetti. Gli algoritmi randomizzati o con stato, descritti di seguito, POSSONO avere un valore N_MAX uguale a zero.

Un algoritmo AEAD PUÒ strutturare la propria uscita di testo cifrato in qualsiasi modo; ad esempio, il testo cifrato può incorporare un tag di autenticazione. Ogni algoritmo DOVREBBE scegliere una struttura adatta a un'elaborazione efficiente.

Un algoritmo di cifratura autenticata PUÒ incorporare o usare una sorgente di casualità, ad esempio per la generazione di un vettore di inizializzazione interno incorporato nell'uscita di testo cifrato. Un algoritmo AEAD di questo tipo è detto randomizzato; si noti che solo la cifratura è casuale e la decifratura è sempre deterministica. Un algoritmo randomizzato PUÒ avere un valore di N_MAX uguale a zero.

Un algoritmo di cifratura autenticata PUÒ incorporare informazioni di stato interne mantenute tra invocazioni dell'operazione di cifratura, ad esempio per consentire la costruzione di valori distinti usati come nonce interni dall'algoritmo. Un algoritmo AEAD di questo tipo è detto con stato (stateful). Questo metodo può essere usato da un algoritmo per fornire buona sicurezza anche quando l'applicazione fornisce nonce di lunghezza zero. Un algoritmo con stato PUÒ avere un valore di N_MAX uguale a zero.

La specifica di un algoritmo AEAD DEVE includere i valori di K_LEN, P_MAX, A_MAX, N_MIN e N_MAX definiti sopra. Inoltre, DEVE specificare il numero di ottetti nel testo cifrato possibile più lungo, denotato C_MAX.

Ogni algoritmo AEAD DEVE fornire una descrizione che metta in relazione la lunghezza del testo in chiaro con quella del testo cifrato. Tale relazione NON DEVE dipendere da parametri esterni, come un parametro di forza dell'autenticazione (ad esempio la lunghezza del tag di autenticazione). Una dipendenza di quel tipo complicherebbe l'uso dell'algoritmo creando una situazione in cui le informazioni dal registro AEAD non sarebbero sufficienti a garantire l'interoperabilità.

OGNI specifica di algoritmo AEAD DOVREBBE descrivere quale degrado di sicurezza deriverebbe da un riuso accidentale di un valore di nonce.

Ogni specifica di algoritmo AEAD DOVREBBE fornire un riferimento a un'analisi di sicurezza dettagliata. Questo documento non specifica un modello di sicurezza particolare, poiché nella letteratura sono stati usati diversi modelli. L'analisi di sicurezza DOVREBBE definire o citare un modello di sicurezza.

Un algoritmo randomizzato o con stato, come definito sopra, DOVREBBE descriversi usando tali termini.