Esiste un cifrario a blocchi che sia anche una permutazione pseudo-casuale sulla chiave

Aug 15 2020

Poiché i cifrari a blocchi sono definiti come una permutazione pseudo-casuale sui dati (codificati con la chiave), mi chiedevo, se ci sono anche costruzioni per cui chiave e dati possono essere scambiati e il cifrario è una permutazione sullo spazio della chiave per un input fisso (dati)?

Quindi la domanda è: se lo spazio di output di $E_k(a)$ per tutto il possibile $k$ copre l'intero spazio di $\{0,1\}^n$

Più formalmente:

$E_k$ è un codice a blocchi con dimensione della chiave uguale alla dimensione del blocco: $\{ 0, 1 \}^n \times \{ 0, 1 \}^n \rightarrow \{ 0, 1 \}^n $

e $\exists a \forall k_1, k_2: E_{k_1}(a) = E_{k_2}(a) \Rightarrow k_1 = k_2$

O più in generale: con $f$ una funzione $\{ 0, 1 \}^n \rightarrow \{ 0, 1 \}^n$

$\forall k_1, k_2: E_{k_1}(f(k_1)) = E_{k_2}(f(k_2)) \Rightarrow k_1 = k_2$

O è vero anche per ogni cifrario a blocchi?

Risposte

3 YehudaLindell Aug 16 2020 at 07:00

Non sono sicuro del "più in generale" poiché in quest'ultima definizione stai applicando una funzione del tasto. Questo ora lo rende correlato alla sicurezza circolare. Per quanto riguarda la domanda di base, questo non è vero in generale e non so se sia possibile costruire una simile costruzione. Quello che posso dire è che esiste una costruzione in cui la proprietà di pseudocasualità vale se la chiave è casuale OPPURE se i dati sono casuali. Questa nozione è studiata nel documento Symmetric and Dual PRFs from Standard Assumptions: A Generic Validation of an HMAC Assumption di Mihir Bellare e Anna Lysyanskaya. Questo documento sarebbe un buon punto di partenza per la ricerca.