Existe alguma cifra de bloco que também seja uma permutação pseudo-aleatória sobre a chave

Aug 15 2020

Como as cifras de bloco são definidas como uma permutação pseudo-aleatória sobre os dados (codificados com a chave), eu queria saber se também existem construções para as quais a chave e os dados podem ser trocados e a cifra é uma permutação sobre o espaço da chave para uma entrada fixa (dados)?

Portanto, a questão é, se o espaço de saída de $E_k(a)$ para tudo possível $k$ cobre todo o espaço de $\{0,1\}^n$

Mais formalmente:

$E_k$ é uma cifra de bloco com tamanho de chave igual ao tamanho do bloco: $\{ 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$

Ou mais geralmente: com $f$ uma função $\{ 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$

Ou isso é mesmo verdade para cada cifra de bloco?

Respostas

3 YehudaLindell Aug 16 2020 at 07:00

Não estou certo sobre o "mais geral", pois na última definição você está aplicando uma função da tecla. Isso agora o torna relacionado à segurança circular. Quanto à questão básica, isso não é verdade em geral, e não sei se é possível fazer tal construção. O que posso dizer é que existe uma construção em que a propriedade pseudo-aleatoriedade se mantém se a chave for aleatória OU se os dados forem aleatórios. Esta noção é estudada no artigo Symmetric and Dual PRFs from Standard Assumptions: A Generic Validation of an HMAC Assumption por Mihir Bellare e Anna Lysyanskaya. Este artigo seria um bom ponto de partida para a pesquisa.