Existem vários modos de operação diferentes para uso de cifra de bloco, alguns dos quais fornecem “criptografia” e algumas das quais fornecem criptografia autenticada .
Por que devo usar um modo de criptografia autenticado em vez de apenas um modo de criptografia?
Esta questão não objetiva discutir diferentes modos de criptografia autenticada vrs modos de criptografia (embora uma boa resposta possa decidir): seu objetivo é justificar por que / quando AE é melhor do que criptografia “simples”.
Comentários
- Outra resposta pode ser encontrada aqui em Security.SE , conforme escrito por DW
Resposta
A diferença crucial entre criptografia simples e criptografia autenticada (AE) é que AE provê adicionalmente des autenticidade, enquanto a criptografia simples fornece apenas confidencialidade. Vamos investigar em detalhes essas duas noções.
No próximo texto, assumimos $ K $ como uma chave secreta, que é conhecida para partes autorizadas, mas desconhecidas para os invasores.
Metas
Confidencialidade (privacidade) significa que um invasor não pode obter nenhuma informação sobre o texto simples $ P $ do texto cifrado $ E_K (P) $ exceto, possivelmente, pelo comprimento. Em outras palavras, o texto cifrado parece uma string aleatória para quem não conhece $ K $ , mesmo se eles tiverem algum controle sobre o texto simples. Todos os métodos de criptografia do folclore, do one-time pad ao Enigma, fornecem confidencialidade (sob algumas suposições) e somente ela.
Dados autenticidade (integridade) significa que uma parte autorizada (receptor), que possui $ K $ , pode verificar se o recebimento ved data $ D $ é genuíno, ou seja, foi construído apenas por um remetente que conhece $ K $ . Os dados podem ser texto claro ou texto cifrado, e há uma diferença sutil do que é autêntico em cada caso: se o texto cifrado é autenticado, então sabemos que o proprietário da chave autorizou o texto cifrado, mas não necessariamente o texto simples. Uma maneira tradicional de obter autenticidade é usar o código de autenticação de mensagem (MAC): $$ H_K (D) = T, $$ onde $ T $ é chamado de tag . No mundo da criptografia de chave pública, o mesmo objetivo é alcançado com assinaturas digitais.
O que você precisa
Um usuário geralmente é capaz de decidir qual dessas propriedades ele está procurando. Por exemplo, se ele sabe que um invasor não pode modificar os dados, ele pode não precisar autenticá-los. No entanto, se ele precisar de ambos, existem maneiras seguras e inseguras de combinar os esquemas dos dois tipos. Por exemplo, uma abordagem ingênua para usar a mesma chave $ K $ em ambos os esquemas é perigosamente insegura para a maioria das instâncias. Portanto, um esquema combinado é recomendado.
Criptografia autenticada
A criptografia autenticada (AE) fornece confidencialidade e autenticidade de dados simultaneamente. Um esquema AE é geralmente mais complicado do que esquemas apenas de confidencialidade ou apenas de autenticidade. No entanto, é mais fácil de usar, porque geralmente precisa de apenas uma única chave e é mais robusto, porque há menos liberdade para o usuário fazer algo errado (veja também resposta mais elaborada ).
Como um recurso separado, um esquema de criptografia autenticado pode autenticar, mas não criptografar, uma parte de sua entrada, que é chamada de dados associados . Por exemplo, podemos desejar criptografar o conteúdo de um pacote de Internet, mas temos que deixar seu cabeçalho sem criptografia, mas ainda vinculado aos dados internos.
Segurança
Ainda não especificamos o que entendemos por esquema seguro . Aparentemente, existem várias noções de segurança, e o usuário deve escolher entre elas de acordo com as capacidades que espera de um adversário.
Para modos de operação somente confidencialidade , os mais populares a noção de segurança trata de ataques de texto simples escolhido . Seja $ E $ um esquema de criptografia. Assumimos que o adversário não apenas conhece alguns textos simples $ P $ , mas também é capaz de escolher alguns deles para a criptografia (esta é uma situação bastante prática).Conseqüentemente, permitimos que o adversário escolha qualquer texto simples para a criptografia, e muitas vezes consecutivas. O que ainda exigimos de um esquema seguro é que ele produza textos cifrados de aparência aleatória em cada caso: $$ E_K (P_1), E_K (P_2), \ ldots, E_K (P_n) \ sim RandomString (| P_1 | + | P_2 | + \ cdots + | P_n |) $$
O adversário não consegue distinguir todo o conjunto de textos cifrados que obtém de uma saída de verdadeiro gerador de bits aleatórios de o mesmo comprimento, mesmo que o adversário repita seus textos simples. O último requisito implica que o esquema deve ser não determinístico e, de fato, os modos somente de confidencialidade que satisfazem esses requisitos são probabilísticos ou baseados em nonce.
Observo que existem noções de segurança folclóricas que se relacionam a segurança do esquema com a capacidade de recuperar a própria chave $ K $ . Isso era relevante quando a chave poderia ser usada em outro lugar, mas isso é muito menos comum agora, e a noção de segurança descrita acima é prevalente.
A segurança dos modos de autenticidade é definida em uma maneira diferente. Seja $ H_K $ esse esquema com a chave secreta $ K $ . Exigimos que, se o adversário escolher qualquer dado $ D $ que ainda não foi autenticado, então suas chances de adivinhar a tag $ T $ de modo que $$ H_K (D) = T $$ sejam insignificantes. Se ele enviar o par $ (D, T) $ a um verificador, receberá a resposta $ \ perp $ (erro).
Observe que não falamos sobre ataques de texto cifrado escolhido em modos somente de confidencialidade. São ataques em que o adversário também consegue enviar seus próprios textos cifrados para descriptografia. Embora essa configuração também apareça na prática (embora com menos frequência do que os ataques de texto simples escolhido), os esquemas somente de confidencialidade não podem resistir a tais ataques. Para estabelecer este tipo de segurança, o usuário deve recorrer novamente à criptografia autenticada .
A segurança dos esquemas de criptografia autenticados é definida em duas partes. Em primeiro lugar, da mesma forma que os modos apenas de confidencialidade, o adversário deve ser incapaz de distinguir os textos cifrados das sequências aleatórias. Em segundo lugar, qualquer texto cifrado falso (não criado em $ K $ ) que ela enviar para descriptografia, provavelmente receberá $ \ perp $ em resposta.
Portanto, os modos de criptografia autenticados também fornecem segurança contra ataques de texto cifrado escolhido, se necessário.
Como funciona
Existem vários esquemas de criptografia autenticados integrados : CCM, GCM, OCB, EAX, etc. , onde os mecanismos que estabelecem confidencialidade e autenticidade estão intimamente ligados. O desenho desses esquemas vai muito além do tópico. No entanto, existe um esquema composto simples, conhecido como Encrypt-then-MAC, que funciona da seguinte maneira. Sejam $ K_1, K_2 $ as chaves secretas, $ P $ o texto simples, $ E $ seja algum modo de criptografia e $ H $ seja algum MAC. Em seguida, o esquema $$ \ Pi_ {K_1, K_2}: M \ rightarrow E_ {K_1} (M) || H_ {K_2} (E_ {K_1} (M)) $$ é um esquema de criptografia autenticado seguro se $ E $ for um modo de confidencialidade seguro e $ H $ é um modo de autenticidade seguro.
Recursos adicionais de esquemas de criptografia autenticados
Além de fornecer confidencialidade e autenticidade, os esquemas de criptografia autenticados podem ter vários recursos adicionais. Nenhum esquema tem todos eles, portanto, a melhor escolha é determinada pelas configurações do usuário.
-
Nível de segurança . Um esquema garante a confidencialidade e autenticidade dos dados somente até a algum limite na quantidade de dados criptografados ou solicitações de descriptografia. Esse limite é normalmente muito menor do que o espaço da chave e, para modos baseados em AES, geralmente não excede $ 2 ^ {64} $ .
-
Paralelismo Se muitos recursos estiverem disponíveis, pode-se desejar executar a criptografia, descriptografia ou verificação em paralelo. Os modos que usam encadeamento (como os derivados da criptografia CBC ou da construção de esponja) são difíceis de paralelizar.
-
Criptografia online . Dizemos que um esquema está online, se permite criptografar imediatamente quando os dados estiverem disponíveis, sem o conhecimento de sua extensão.
-
Uso de patentes . Um dos esquemas AE mais interessantes, o modo OCB, é patenteado e é menos frequente ly usado e analisado por causa dessa propriedade.Muitas vezes, é desejável que o esquema não tenha patentes.
-
Atualização de tag . A maioria dos esquemas, com algumas exceções como GCM, requer a recalculação do texto cifrado quase inteiro se uma pequena parte do texto simples for modificada. Se o texto cifrado puder ser atualizado rapidamente, isso permitiria um processamento muito mais rápido de grandes quantidades de dados criptografados, por exemplo, criptografia do disco rígido.
-
Uso de nonces ou aleatório IVs . Nonces e IVs aleatórios levam a modelos de segurança distintos, que muitas vezes são incompatíveis (os esquemas podem ser seguros com nonces, mas não com IVs aleatórios do mesmo comprimento, ou vice-versa). Embora a exclusividade do nonce possa ser mais difícil de garantir, os IVs aleatórios precisam de um mecanismo de geração de número aleatório separado e leva à expansão do texto cifrado.
-
Chave variável, nonce, ou comprimento da tag . Todos os três parâmetros são geralmente restritos pelo aplicativo que usa um esquema AE. Por sua vez, os esquemas de EA têm suas próprias restrições, às vezes incompatíveis. Quanto mais variabilidade o esquema tem, mais aplicações ele se adequa.
-
Processamento de dados associados . Todos os esquemas modernos permitem a autenticação dos dados associados, que não são criptografados. Alguns deles, no entanto, não podem pré-processar o AD antes que o texto simples termine, o que pode prejudicar o desempenho.
Leitura adicional
O relatório técnico de Rogaway é uma pesquisa abrangente de confidencialidade – apenas modos, MACs e alguns modos de criptografia autenticada. Ele também contém todos os detalhes formais sobre noções de segurança.
Comentários
- Eu poderia acrescentar que em muitas situações práticas, a escolha do esquema de criptografia autenticado é amplamente ditada por convenção ou protocolos apropriados. É muito comum as pessoas desaprovarem a criptografia autenticada, mas na prática, ‘ vi as implementações personalizadas de MAC-then-encrypt e encrypt-then-MAC com falhas do que usos de criptografia autenticada. Isso ocorre porque requer muita atenção aos detalhes para implementar a combinação corretamente.
- Em termos de propriedades adicionais, evitar a criação de canais laterais (particularmente canais laterais de temporização) tem sido fundamental para avaliar a segurança de um conjunto de cifras AE (AD). Na prática, isso significa que é possível implementar a cifra de forma que ela seja executada em um tempo que não seja afetado pela chave ou pelo texto simples de entrada.
Resposta
Quando transmitimos informações através de um canal não seguro, desejamos que nossos dados estejam seguros.
Então, o que isso significa? Para discutir isso, vamos usar a situação criptográfica padrão de Alice e Bob. Alice deseja enviar algo (o texto simples ) através de um canal não seguro (o que isso significa será discutido) para Bob. Este canal ser ouvido por Eve (uma bisbilhoteira) e Mallory (que tenta interferir maliciosamente) – o que isso significa será discutido no devido tempo.
Confidencialidade : Quando Alice envia uma mensagem para Bob, exigimos que uma bisbilhoteira Eva que escuta sua comunicação não possa aprender nada sobre o conteúdo de suas mensagens.
Justificação : Caso contrário, Eva pode aprender algo que Alice / Bob não quer compartilhar
Solução: Usamos criptografia , que transforma o texto simples em um texto cifrado que (em um sentido teórico da informação ) contém apenas informações sobre o texto simples que não pode ser extraído de forma viável. Isso significa que (parafraseando Goldwasser ) qualquer coisa Enquanto Eva pode aprender sobre o texto simples, uma vez que conhece o texto cifrado, ela também pode deduzir sem o texto cifrado.
Mesmo nesse caso, devemos ter cuidado. Só porque um esquema se mantém contra um invasor passivo (alguém que apenas escuta o fluxo de mensagens), não o torna forte contra um invasor ativo. Por exemplo, considere CBC modo é usado. É seguro no jogo IND – CPA , que você pode achar que o torna seguro. No entanto, no jogo CCA , permitimos que o invasor peça a descriptografia de mensagens (embora não a descriptografia do texto cifrado) . O que ele pode fazer, dado o texto cifrado $ c = {\ small IV} \ mathbin \ | c_1 \ mathbin \ | \ dots \ mathbin \ | c_n $ é pedir a descriptografia de $ c “= a \ mathbin \ | c $, onde $ a $ é uma mensagem não vazia. Isso não é igual ao texto cifrado, portanto, é permitido no jogo e, pegando apenas os últimos $ n $ blocos, ele pode extrair a descriptografia do texto cifrado.
Esse exemplo não é tão inventado quanto você pode pensar, uma vez que o que modelamos como um oráculo de descriptografia pode muito bem existir no sentido de que o invasor pode conseguir que as strings sejam descriptografadas, mas os dados que ele pode solicitar a descriptografia pode ter que começar com uma string específica (semelhante à idéia de uma injeção de SQL).
Autenticidade : Quando Bob recebe uma mensagem, ele sabe que é definitivamente de Alice.
Justificativa: Caso contrário, Mallory poderia enviar uma mensagem para Bob alegando que é de Alice sem que Bob soubesse. Em segurança comprovada, nós “somos muito tolerantes quanto ao que significa para Mallory criar uma mensagem falsa – ele ganha se puder criar qualquer mensagem que Bob aceite (mesmo que seja quase igual a uma que Alice já lhe enviou). Existem muitas maneiras de fazer isso, como ataques de repetição, reordenação ou inversão de bits.
Solução: para obter autenticação por si só, podemos usar um MAC .
Autenticidade e confidencialidade : Alice e Bob comunicam-se confidencialmente e cada mensagem é autêntico.
Justificativa: Se um fluxo for apenas confidencial (ou seja, criptografia, mas não criptografia autenticada), um intruso pode ser capaz de modificar a mensagem em trânsito, mesmo que não saiba o que é. Por exemplo, suponha que Alice & Bob esteja usando o One Time Pad perfeitamente seguro ( OTP ) com chave secreta $ k $ e mensagem $ m $:
$$ A \ text {send} c = m \ oplus k \ to B \\ \ prec M \ text {intercepta} c \ succ \\ M \ text {envia} c “= c \ oplus h \ para B \ text {(para algum valor} h) \\ B \ text {recebe} c” \ text {de M, mas pensa que é} c \ text {enviado de} A \\ B \ text {descriptografa} m “= c” \ oplus k = c \ oplus h $$ Isso significa que $ B $ recebeu a mensagem $ m “$, mas ele pensa que é $ m $.
Então, suponha que o protocolo não esteja autenticado e Mallory saiba que a mensagem que Alice enviará a Bob é” Concordo em enviar £ ??? à conta # ???? “para alguns valores de ???. Mesmo que eles não consigam descobrir exatamente qual é a conta e talvez não consigam enviar o pagamento para sua própria conta, eles podem alterar então não é mais a conta de Alice.
Solução: criptografia autenticada!
Um bom artigo que explica a necessidade de AE é esta postagem do blog de Matthew Green. Uma introdução mais técnica aos modos de operação é este artigo de Rogaway.
Comentários
- O único esquema de criptografia que garante a segurança teórica da informação é o one-time pad. Os esquemas de criptografia IND-CPA garantem apenas que as informações não podem ser extraídas do texto cifrado por um adversário probabilístico de poli-tempo.
- Ah, sim, isso foi escrito de maneira pouco clara (/ incorreta!). Obrigado por editá-lo – Eu ia colocá-lo como ‘ não contém informações < que possam ser extraídas > ‘
- Na verdade, muitos ” apenas confidencialidade ” os modos realmente não ‘ oferecem boa confidencialidade quando atacado por um invasor ativo (que pode modificar as mensagens ou montar ataques de texto simples ou de texto cifrado escolhido) . Portanto, esses modos na prática (para um canal de comunicação) precisam ser usados junto com algum MAC, mesmo para obter apenas a parte confidencial. Um modo AE simplesmente combina isso em um.
- @ PaŭloEbermann / Qualquer outra pessoa: Eu realmente não ‘ acho que ‘ escrevi uma boa resposta aqui (afinal é sexta-feira à noite!), mas eu só queria deixar algumas primeiras idéias. Sinta-se à vontade para adicionar suas próprias respostas / editar esta / escrever suas próprias respostas. Se as pessoas acharem que minha resposta é ” próxima o suficiente ” de uma boa (que relendo eu não ‘ t) então você ‘ é bem-vindo para apenas editar ou reutilizar minhas palavras nas suas.
- Acho que AE também fornece integridade ( en.wikipedia.org/wiki/Authenticated_encryption ), portanto, convém adicioná-lo também.