Um código de autenticação de mensagem (MAC) é definido por um triplo de algoritmos eficientes , que satisfazem o seguinte (a definição é a da secção 4.3 dolivro Katz-Lindell) :
- Na entrada , o algoritmo G e n gera uma chave .
- Na entrada gerada por G e n , e em alguma mensagem m ∈ { 0 , 1 } ∗ , o algoritmo M A C gera um tag t . Escrevemos t ← M A C k ( m ) .
- Na entrada a triplo , o algoritmo V e r i f gera um único bit b . Escrevemos b ← V e r i f k ( m , t ) .
É necessário que, para toda saída de G e n e todos m ∈ { 0 , 1 } ∗ , tenhamos V e r i f k ( m , M A C k ( m ) ) .
O requisito de segurança é definido através do seguinte experimento, entre o desafiante e o adversário :
- .
- .
- Deixe denotar o conjunto de todas as consultas que A pediu ao seu oráculo.
- O resultado da experiência é definido como 1 se e somente se:
- , e
- .
O MAC é considerado seguro se a probabilidade de que o experimento produz 1 seja insignificante em .
O experimento acima se assemelha a um experimento de "texto simples escolhido" em relação a um esquema de criptografia simétrica, onde o adversário pode obter textos cifrados correspondentes às mensagens de sua escolha. Em um ataque mais poderoso, chamado de "texto cifrado escolhido", o adversário também tem acesso a um oráculo de descriptografia.
Então, minha pergunta é:
O que acontece se permitirmos que o adversário do MAC acesse também um oráculo de verificação? Em outras palavras, e se a linha 2 do experimento for substituída pelo seguinte:
.
Observe que, no novo experimento, inclui apenas as consultas A feitas pelo oráculo M A C k .
fonte
Respostas:
Deixei⟨Gen,MAC,Verif⟩ esteja seguro de acordo com qualquer uma das definições. Como a definição do livro
MACk′ Trabalhe emparelhando a saída do com a string vazia.
Vamos Verif kMACk Verifk′ Verifk
k ⟨Gen,MAC′,Verif′⟩ é claramente eficiente e satisfaz a exigência. Desde [emparelhar as tags com a string vazia para]
⟨Gen,MAC′,Verif′⟩ não pode ter uma probabilidade não negligenciável
⟨Gen,MAC,Verif⟩ , a ⟨Gen,MAC′,Verif′⟩ como um código de autenticação de mensagem segura.
k 2⋅(length(k)+1)
Verifk′ k , o que permitiria falsificações em qualquer mensagem.
⟨ Gen,MAC′,Verif′⟩ inseguro. QED
é mais fraca que a sua definição, ela é particularmente segura de acordo com a definição do livro.
Corrija uma codificação eficientemente computável e invertível de
pares ordenados, por exemplo, concatenando uma representação livre de prefixos, computável de forma
eficiente e invertível de forma eficiente, da entrada esquerda para a entrada direita. Deixe o MAC k
Aceite se e somente se [[o Verif k aceitaria a mensagem e a entrada esquerda da tag] e [a entrada direita da entrada é um prefixo de k ]].
e [pegar a entrada esquerda da saída de] um adversário viável atacando a
definição do livro de segurança de
de violar a definição de segurança do livro para
definição do livro também classifica
No entanto, quando um adversário obtém um par válido de tag de mensagem para ,
consultas adaptáveis ao É suficiente para aprender k
Assim, sua definição classifica
(As versões "forte unforgeability" são obtidos através da substituição de com o conjunto Q + dado na minha próxima frase, e que é necessário para tornar a cifrar-then-mac
construção fornecer integridade texto cifrado e ser IND-CCA2.)
InicializarQ+ como o conjunto vazio e coloque ⟨ M ,t ⟩ para dentro
cada vez que o MAC k gera t em uma consulta de m .
Defina uma consulta paratentarse, e somente se, estiver enviando
paraQ+
MACk t m
Verifk um par que já foi colocado Q+ .
Verifk aceitaram.
BMACk( ⋅ )(1n,q,j) interage com seguinte maneira:UMA
Defina uma consulta para tentar com antecedência se, e somente se, estiver tentando e
não veio depois de qualquer consulta de tentativa que
Usando menos de bits aleatórios, escolhaj r∈{1 ,2,3 , . . . ,q-2,q-1 ,q} quase uniformemente.
UMA MACk( ⋅ ) consultas para MACk( ⋅ ) e dê a UMA 0 0 tentando consultas
e forneça 1 como as saídas der-1
1 Verifk em consultas que não estão tentando.
UMAMACk( ⋅ ) , Verifk( ⋅ , ⋅ )(1n) faz uma ésima tentativa de consulta e depois gera o que era essa consulta.
E ser
UMAMACk( ⋅ ) , Verifk( ⋅ , ⋅ )(1n) dá saída, então dê a mesma saída.
UMAMACk( ⋅ ) , Verifk( ⋅ , ⋅ )(1n) faz exatamente r-1 tentativas antecipadas e obtém sucesso na versão forte e imperdoável de sua experiência,
BA , MACk( ⋅ )(1n,q,j) consegue o experimento do livro da versão imperdoável.
"Encaminhar" todos os 's
saída (real) desse oráculo para , dê 0 como as saídas no primeiro até r
E se
Com a aleatoriedade de tudo fixa, se
Claramente, "ignorar o oráculo da " é uma redução linear construtiva, de suceder na versão forte de imperdoabilidade do experimento do livro para suceder na versão forte de imperdoabilidade de seu experimento, e essa redução é quase perfeita. Portanto, a versão forte e imperdoável de sua definição fornece os mesmos MACs assintóticos que a versão forte e imperdoável do experimento do livro.Verifk
fonte