< Return to Video

Construções de cifras e MACs (21 min)

  • 0:00 - 0:04
    Neste segmento, nós vamos construir sistemas de criptografia autenticados. Uma vez que nós
  • 0:04 - 0:08
    já tem garantido de criptografia CPA, e temos MACs seguras, a pergunta natural
  • 0:08 - 0:13
    é se podemos combinar os dois de alguma forma, a fim de obter criptografia autenticado.
  • 0:13 - 0:16
    E se, que é exatamente o que vamos fazer neste segmento. Criptografia autenticado
  • 0:16 - 0:20
    foi introduzido no ano de 2000, em dois artigos independentes que apontam para a
  • 0:20 - 0:26
    final deste módulo. Mas antes disso, muitos crytpolibraries desde uma API que
  • 0:26 - 0:31
    separadamente suporte a criptografia CPA seguro, amd MAC-ing. Então, houve uma
  • 0:31 - 0:36
    função para implementar criptografia segura CPA. Por exemplo, a CVC com um aleatória
  • 0:36 - 0:41
    IV. E outra função para a implementação de um MAC. E então todos os desenvolvedores que
  • 0:41 - 0:46
    queria implementar a criptografia, teve que, ele próprio, chamar separadamente o seguro CPA
  • 0:46 - 0:51
    esquema de criptografia eo sistema MAC. Em particular, todos os desenvolvedores tiveram que inventar
  • 0:51 - 0:56
    maneira própria de combinar criptografia e MAC-ing para fornecer algum tipo de
  • 0:56 - 0:59
    criptografia autenticado. Mas desde que os objetivos da criptografia combinando e MAC-ing
  • 0:59 - 1:04
    não foi bem compreendida desde criptografia autenticado ainda não foi definida. Ele
  • 1:04 - 1:08
    realmente não estava claro quais combinações de criptografia e MAC-ing estão corretas e
  • 1:08 - 1:13
    que não são. E assim, cada projeto, como eu disse tinha de inventar sua própria combinação.
  • 1:13 - 1:17
    E, de fato, nem todas as combinações eram corretas. E eu posso te dizer que o mais
  • 1:17 - 1:23
    erro comum em projetos de software foram basicamente incorretamente combinando o
  • 1:23 - 1:27
    criptografia e mecanismos de integridade. Portanto, esperamos que, até o final deste módulo, você
  • 1:27 - 1:31
    saberá como combiná-los corretamente, e você não estará fazendo estes erros
  • 1:31 - 1:35
    si mesmo. Então, vamos olhar para algumas combinações de criptografia segura e CPA
  • 1:35 - 1:39
    MAC, que foram introduzidas por diferentes projetos. Então, aqui estão três exemplos. Assim,
  • 1:39 - 1:44
    , antes de tudo, em todos os três exemplos, há uma chave separada para a criptografia, e
  • 1:44 - 1:48
    uma chave separada para MACing. Estas duas chaves são independentes um do outro, e
  • 1:48 - 1:52
    ambos são gerados em tempo de configuração da sessão. E nós vamos ver como gerar estes
  • 1:52 - 1:57
    duas teclas mais tarde no curso. Assim, o primeiro exemplo é o protocolo SSL. Assim, o
  • 1:57 - 2:03
    maneira SSL combina criptografia e MAC, na esperança de alcançar a criptografia autenticado
  • 2:03 - 2:08
    é o seguinte. Basicamente, você toma o texto simples, m, e então você calcular um MAC
  • 2:08 - 2:13
    no texto simples, m. Então você usar sua chave MAC, KI para calcular tag para esta mensagem
  • 2:13 - 2:18
    m. E então você pode captionate a marca para a mensagem e então você criptografar o
  • 2:18 - 2:23
    captionation da mensagem ea marca eo que sai é o texto cifrado final.
  • 2:23 - 2:27
    Então essa é a opção número um. A segunda opção é o que faz seg IP. Assim
  • 2:27 - 2:31
    aqui, você leva a mensagem. A primeira coisa que você faz é criptografar a mensagem.
  • 2:31 - 2:36
    E então, você calcular um tag no texto cifrado resultante. Então você percebe o
  • 2:36 - 2:40
    tag si mesmo é calculado sobre o texto cifrado resultante. Uma terceira opção é o que o
  • 2:40 - 2:45
    protocolo SSH faz. Então, aqui, o SSH leva a mensagem e criptografa-lo usando um CPA
  • 2:45 - 2:51
    esquema de criptografia segura. E então, para ele, concatenadas uma marca da mensagem. O
  • 2:51 - 2:56
    diferença entre IPsec e SSH, é que em IPsec, a marca é calculado sobre o
  • 2:56 - 3:00
    texto cifrado, que, em SSH, o tag no computadorizada sobre a mensagem. E assim estes
  • 3:00 - 3:05
    são três maneiras completamente diferentes de combinar a criptografia e MAC. Eo
  • 3:05 - 3:09
    pergunta é, qual destes é segura. Então, eu vou deixar você pensar sobre isso por um
  • 3:09 - 3:12
    segundo, e então quando nós vamos continuar a fazer a análise em conjunto. Okay. Então, vamos
  • 3:13 - 3:17
    início com o método SSH. Assim, o método SSH você notar que a marca é calculado
  • 3:17 - 3:22
    na mensagem e então concatenado em claro para o texto cifrado. Agora, esta é
  • 3:22 - 3:26
    realmente um grande problema porque MAC em si não são projetados para fornecer
  • 3:26 - 3:31
    confidencialidade. Macs são projetados somente para integridade. E, de fato, não há
  • 3:31 - 3:36
    nada de errado com um MAC que, como parte da marca gera alguns pedaços da planície
  • 3:36 - 3:41
    texto. Saídas de alguns pedaços da mensagem M. Isso seria uma marca perfeitamente bem. E ainda se
  • 3:41 - 3:47
    fizemos isso, que seria completamente quebrar a segurança CPA aqui, porque alguns pedaços de
  • 3:47 - 3:52
    mensagem são divulgados no texto cifrado. E assim, a abordagem SSH, mesmo que o
  • 3:52 - 3:57
    especificidades da SSH estão bem e do protocolo em si não é comprometida pela
  • 3:57 - 4:01
    esta combinação específica, geralmente é aconselhável não usar essa abordagem. Simplesmente
  • 4:01 - 4:06
    porque a saída do algoritmo de assinatura MAC pode vazar bits da mensagem. Assim
  • 4:06 - 4:11
    agora vamos olhar para SSL e IPsec. Como se vê, o método recomendado, na verdade
  • 4:11 - 4:17
    é o método de IPsec. Porque acontece que não importa o CPA sistema seguro e MAC
  • 4:17 - 4:21
    chave que você use a combinação é sempre vai fornecer criptografia autenticado.
  • 4:21 - 4:26
    Agora deixe-me muito, muito brevemente explicar o porquê. Basicamente o que acontece é que, uma vez que criptografar
  • 4:26 - 4:31
    mensagem bem o conteúdo da mensagem agora está escondido no interior do texto cifrado e agora
  • 4:31 - 4:36
    quando calculamos uma marca do texto cifrado, basicamente, estamos travando, esta tag bloqueios
  • 4:36 - 4:41
    texto a cifra e garante que ninguém pode produzir um texto cifrado diferente que
  • 4:41 - 4:45
    olhar válido. E como resultado desta abordagem garante que quaisquer modificações na
  • 4:45 - 4:50
    texto cifrado será detectado pelo decrypter simplesmente porque o MAC não é
  • 4:50 - 4:54
    vai verificar. Como se vê, para a abordagem SSL, há na verdade são uma espécie de
  • 4:54 - 4:59
    exemplos patológicos, onde combinam CPA sistema de criptografia seguro com um seguro
  • 4:59 - 5:04
    MAC. E o resultado é vulnerável a um ataque escolhido cifra texto, de modo que ele faz
  • 5:04 - 5:08
    na verdade não fornece criptografia autenticado. E, basicamente, a razão que
  • 5:08 - 5:13
    poderia acontecer, é que há algum tipo de interação ruim entre a criptografia
  • 5:13 - 5:17
    esquema eo algoritmo MAC. De tal modo que, de fato, haverá uma cifra escolhida
  • 5:17 - 5:22
    ataque texto. Então, se você está projetando um novo projeto a recomendação agora é
  • 5:22 - 5:26
    sempre usar criptografar então MAC porque isso é seguro, não importa qual CPA seguro
  • 5:26 - 5:31
    algoritmo de criptografia e MAC seguro você está combinando. Agora, só para definir o
  • 5:31 - 5:38
    terminologia, o método SSL é às vezes chamado MAC-then-encrypt. Eo
  • 5:38 - 5:45
    método IPsec é chamado encrypt-then-MAC. O método SSH mesmo que seu
  • 5:45 - 5:52
    não deveria usá-lo, é chamado de criptografar e-MAC. Ok, então eu vou muitas vezes referem-se a
  • 5:52 - 5:57
    encrypt-then-MAC e MAC-then-criptografar para diferenciar SSL e IPsec. Ok, então
  • 5:57 - 6:02
    apenas para repetir o que acabei de dizer. O método de IPsec encrypt-e-mac sempre
  • 6:02 - 6:07
    nos fornecer uma criptografia autenticado. Se você começar do CPA cifra segura e um MAC seguro
  • 6:07 - 6:11
    Você sempre terá criptografia autenticado. Como eu disse, MAC-depois-criptografar em
  • 6:11 - 6:16
    fato, há casos patológicos, onde o resultado é vulnerável a fatos CCA e
  • 6:16 - 6:20
    , portanto, não fornece criptografia autenticado. No entanto, a história é um pouco
  • 6:20 - 6:25
    pouco mais interessante do que isso, na medida em que, ao que parece, se você está realmente usando
  • 6:25 - 6:29
    modo aleatório contador ou CBC randomizado, em seguida, ao que parece, para aqueles que especial
  • 6:29 - 6:34
    CPA esquemas de criptografia seguras, MAC-then-criptografar realmente dá autenticado
  • 6:34 - 6:38
    criptografia e por isso é seguro. De fato, há mesmo uma mais interessante
  • 6:38 - 6:42
    torcer aqui em que se você estiver usando o modo de contador ao acaso. Então, é suficiente
  • 6:42 - 6:47
    que o seu algoritmo de MAC apenas ser um tempo seguro. Ele não tem que ser um totalmente
  • 6:47 - 6:52
    MAC seguro. Ele só tem que ser seguro quando uma tecla é usada para criptografar uma mensagem única,
  • 6:52 - 6:56
    ok? E quando falamos sobre a integridade da mensagem, vimos que há realmente
  • 6:56 - 7:01
    6:56.08
    MACs muito mais rápido que são um tempo seguro de MACs que são totalmente seguras. Como
  • 7:01 - 7:04
    resultado, se você estiver usando o modo aleatório contra-MAC, em seguida, criptografar-pudesse realmente
  • 7:04 - 7:08
    resultado em um mecanismo de criptografia mais eficiente. No entanto, eu vou repetir
  • 7:08 - 7:12
    isso de novo. A recomendação é usar encrypt-then-MAC e estamos indo para ver um
  • 7:12 - 7:16
    número de ataques a sistemas que não usam encrypt-then-MAC. E assim o fazem apenas
  • 7:16 - 7:20
    que as coisas são seguras sem você ter que pensar muito sobre isso. Novamente, eu sou
  • 7:20 - 7:24
    vai recomendar que você use sempre encrypt-then-MAC. Agora, uma vez que o conceito de
  • 7:24 - 7:28
    criptografia autenticada tornou-se mais popular, um número de padronizada
  • 7:28 - 7:32
    abordagens para a combinação de criptografia e MAC apareceu. E eram mesmo
  • 7:32 - 7:36
    padronizado pelo Instituto Nacional de Padrões. Então eu só vou mencionar três
  • 7:36 - 7:41
    destas normas. Dois deles foram padronizados pelo NIST. E estes são
  • 7:41 - 7:46
    chamado Galois modo de contador e contador de modo CBC. E então deixe-me explicar o que fazem.
  • 7:46 - 7:51
    modo Galois contador basicamente usa criptografia de modo contador, para um contador randomizado
  • 7:51 - 7:56
    modo com um MAC Carter-Wegman, portanto, um fato muito Carter-Wagmon MAC. E a forma como o
  • 7:56 - 8:01
    Carter-Wegman MAC trabalha em GCM é que é basicamente uma função hash da mensagem
  • 8:01 - 8:06
    que está sendo MACed. E então o resultado é criptografada usando um PRF. Agora esse hash
  • 8:06 - 8:12
    função em MGC é já bastante rápido até o ponto onde a maior parte do executando
  • 8:12 - 8:16
    hora do GCM é dominada pelo modo de contador de criptografia e está ainda fez mais,
  • 8:16 - 8:22
    em que a Intel introduz um PCLMULQDQ instrução especial especificamente
  • 8:22 - 8:27
    projetado para a finalidade de fazer a função hash na GCM correr tão rápido quanto possível.
  • 8:27 - 8:33
    Agora modo contador CCM é um outro padrão NIST ele usa um MAC CBC. E
  • 8:33 - 8:37
    então criptografia modo de contador. Portanto, este mecanismo, você sabe, este usa MAC, então
  • 8:37 - 8:41
    encrypt, como SSL faz. Portanto, este não é realmente a maneira recomendada de se fazer
  • 8:41 - 8:44
    coisas, mas porque a criptografia modo contador é usado. Esta é realmente uma
  • 8:44 - 8:48
    mecanismo de criptografia perfeitamente bem. Uma coisa que eu gostaria de ressaltar sobre
  • 8:48 - 8:54
    CCM, é que tudo é baseado em AES. Você percebe, ele está usando AES para a CBC
  • 8:54 - 8:59
    MAC, e ele está usando a criptografia AES de modo contador. E, como resultado, o CCM pode
  • 8:59 - 9:03
    ser implementada com o código de relativamente pouco. Porque tudo que você precisa é um motor AES
  • 9:03 - 9:08
    e nada mais. E por isso, CCM, na verdade foi adoptada pelo Wi-Fi
  • 9:08 - 9:14
    aliança e, na verdade, provavelmente você está usando CCM em uma base diária, se você estiver usando
  • 9:14 - 9:19
    criptografado Wi-Fi 802.11i então você está usando basicamente o tráfego do CCM encrypt
  • 9:19 - 9:23
    entre o laptop eo ponto de acesso. Há um outro modo chamado EAX que
  • 9:23 - 9:29
    usa criptografia de modo contador, e depois CMAC. Então, novamente você notar encrypt-de-mac
  • 9:29 - 9:32
    e isso é um outro modo bem usar. Nós vamos fazer uma comparação de todos estes
  • 9:32 - 9:37
    modos em apenas um minuto. Agora eu queria mencionar que, antes de tudo, todos estes são
  • 9:37 - 9:41
    nonce-based. Em outras palavras, eles não usam qualquer aleatoriedade, mas eles tomam como
  • 9:41 - 9:46
    entrada um nonce e nonce deve ser único por chave. Em outras palavras, como você
  • 9:46 - 9:51
    lembre-se, a par nonce chave comum não deve nunca, nunca repetir. Mas o
  • 9:51 - 9:54
    nonce si não precisa ser aleatória, por isso é perfeitamente possível usar um contador, para
  • 9:54 - 9:58
    exemplo, como um uso único. E o outro ponto importante é que, na verdade, todos
  • 9:58 - 10:01
    estes modos são o que se chama de criptografia autenticado com associados
  • 10:01 - 10:05
    dados. Esta é uma extensão de criptografia autenticado, mas que vem
  • 10:05 - 10:11
    -se muitas vezes em protocolos de rede. Portanto, a ideia entre AEAD é que, na verdade,
  • 10:11 - 10:15
    a mensagem que é fornecido para o modo de criptografia não se destina a ser totalmente
  • 10:15 - 10:20
    encriptado. Apenas uma parte da mensagem se destina a ser criptografada, mas todo o
  • 10:20 - 10:24
    mensagem se destina a ser autenticado. Um bom exemplo disto é um pacote de rede.
  • 10:24 - 10:29
    Pense como um pacote IP, onde há um cabeçalho. E depois há uma carga e
  • 10:29 - 10:33
    normalmente o cabeçalho não vai ser criptografados. Por exemplo, o cabeçalho pode
  • 10:33 - 10:37
    conter o destino do pacote, mas, em seguida, o cabeçalho é melhor que não seja
  • 10:37 - 10:41
    criptografados de outra forma os roteadores ao longo do caminho não saberia por onde rotear o pacote.
  • 10:41 - 10:45
    E assim, tipicamente o cabeçalho é enviado em claro, que a carga, é claro, é
  • 10:45 - 10:50
    sempre criptografados, mas o que você gostaria de fazer é ter o cabeçalho ser autenticado.
  • 10:50 - 10:56
    não criptografado, mas autenticado. Portanto, este é exatamente o que estes modos AEAD, fazer. Eles
  • 10:56 - 11:00
    irá autenticar o cabeçalho e, em seguida, criptografar a carga. Mas o cabeçalho e
  • 11:00 - 11:04
    carga a estão unidos na autenticação para a autenticação não pode
  • 11:04 - 11:08
    realmente ser separados. Então isso não é difícil de fazer. O que acontece nestes
  • 11:08 - 11:14
    três modos GCM, CCM, EAX e, basicamente, o MAC é aplicado para a totalidade dos dados. Mas
  • 11:14 - 11:19
    criptografia é aplicada somente a parte dos dados que precisam ser criptografados.
  • 11:19 - 11:23
    Então, eu queria mostrar o que uma API para criptografia autenticado com
  • 11:23 - 11:29
    dados associados esquemas de criptografia semelhante. Então aqui está o que parece no OpenSSL
  • 11:29 - 11:34
    Por exemplo, isto é, uma API para GCM. Então o que você faz é chamar a
  • 11:34 - 11:37
    função de inicialização para inicializar o modo de criptografia, e você percebe que você dê a ele uma chave
  • 11:37 - 11:41
    o nonce. O uso único de novo, não tem de ser aleatória, mas tem que
  • 11:41 - 11:44
    ser único. E após a inicialização, você poderia chamar essa função encrypt, onde
  • 11:44 - 11:48
    você vê que você dê a ele a dados associado que vai ser autenticadas, mas
  • 11:48 - 11:52
    não criptografado. Você dá os dados, e vai ser autenticada e
  • 11:52 - 11:56
    encriptado. E dá-lhe de volta o texto cifrado completo, que é uma criptografia da
  • 11:56 - 12:00
    dados, mas é claro que não inclui o AAD, porque o DAA vai ser enviado em
  • 12:00 - 12:05
    claro. Portanto, agora que entendemos esse modo de criptografar-then-MAC, que pode ir
  • 12:05 - 12:10
    volta para a definição de MAC segurança e posso explicar-lhe algo que poderia
  • 12:10 - 12:14
    ter sido um pouco obscura, quando olhamos para essa definição. Então, se você se lembra,
  • 12:14 - 12:19
    um dos requisitos que se seguiram a nossa definição de MACs seguras significava que
  • 12:19 - 12:26
    dada uma mensagem par MAC em uma mensagem M, o atacante não pode produzir outra tag na
  • 12:26 - 12:30
    a mesma mensagem M. Em outras palavras, mesmo que o invasor já tem uma marca para
  • 12:30 - 12:35
    M a mensagem, ele não deve ser capaz de produzir uma marca de novo para a mesma mensagem de M.
  • 12:35 - 12:39
    E não é muito claro, por que isso importa? Quem se importa se o adversário já
  • 12:39 - 12:44
    tem uma etiqueta na mensagem M? Quem se importa se ele pode produzir outra marca? Bem, acontece
  • 12:44 - 12:49
    que o MAC não tem essa propriedade. Em outras palavras, dada uma mensagem
  • 12:49 - 12:54
    par MAC, você pode produzir um outro MAC na mesma mensagem, então, que o MAC seria
  • 12:54 - 12:59
    resultado em um modo de criptografar-then-MAC inseguro. E por isso, se queremos que o nosso MAC criptografado para
  • 12:59 - 13:04
    ter auto-ajuste integridade, é crucial que a nossa Segurança MAC implicaria uma forte
  • 13:04 - 13:09
    noção de segurança, o que, evidentemente, não faz porque definido-lo correctamente.
  • 13:09 - 13:14
    Então vamos ver o que iria dar errado, se, de fato, era fácil de produzir este tipo de
  • 13:14 - 13:18
    falsificação. Então o que vou fazer é que eu vou mostrar-lhe um ataque de texto cifrado escolhido no
  • 13:18 - 13:23
    sistema encrypt-then-MAC resultante. E já que o sistema tem um texto cifrado escolhido
  • 13:23 - 13:27
    ataque sobre ela, significa necessariamente que ele não fornece uma autenticado
  • 13:27 - 13:31
    criptografia. Então vamos ver. Então começo do adversário gonnna enviando dois
  • 13:31 - 13:36
    mensagens, M0 e M1. E ele vai receber, como de costume, a criptografia de um
  • 13:36 - 13:40
    deles, a criptografia de M0 ou a criptografia de M1. E já que estamos
  • 13:40 - 13:45
    usando encrypt-then-MAC, o adversário recebe um texto cifrado, vamos chamar um C0
  • 13:45 - 13:50
    e MAC no texto cifrado C0. Bem, agora temos dito que, dada a MAC
  • 13:50 - 13:54
    uma mensagem o adversário pode produzir um outro MAC na mesma mensagem. Então, o que
  • 13:54 - 13:58
    ele vai fazer é que ele vai produzir um outro MAC na mensagem C0. Agora, ele tem
  • 13:58 - 14:04
    um texto cifrado de novo (C0, T '), que é um texto cifrado perfeitamente válido. T 'é um
  • 14:04 - 14:10
    MAC válido de C0. Portanto, o adversário agora pode enviar uma consulta de texto da cifra escolhida
  • 14:10 - 14:14
    em C 'e esta é uma consulta de texto válido cifra escolhida porque é diferente
  • 14:14 - 14:19
    de C. É um texto cifrado de novo. O desafiante pobre agora é obrigado a decifrar este
  • 14:19 - 14:23
    texto cifrado C 'para que ele vai mandar de volta a descriptografia de C'. É uma
  • 14:23 - 14:29
    texto cifrado válido, portanto, a decodificação de C é o principal Mb mensagem, mas agora o
  • 14:29 - 14:32
    atacante acabou de aprender o valor de B, porque ele pode testar se Mb é igual a
  • 14:32 - 14:37
    M0 ou MB é igual a M1. Como resultado, ele pode apenas output B e ele fica vantagem
  • 14:37 - 14:43
    um. Na alimentação do sistema. E assim, novamente, se a nossa segurança MAC não implicava
  • 14:43 - 14:48
    essa propriedade aqui. Em seguida, haverá um ataque de texto escolhido cifra para criptografar-then-MAC. E
  • 14:48 - 14:53
    portanto, não seria seguro. Assim, o fato de que nós definir a segurança MAC corretamente
  • 14:53 - 14:57
    significa que criptografam-then-MAC realmente fornecer criptografia autenticado. E
  • 14:57 - 15:02
    durante todos os MACs que discutimos realmente satisfazer essa noção forte de
  • 15:02 - 15:06
    unforgeability. Assim, curiosamente, este não é o fim da história. Então, como dissemos
  • 15:06 - 15:10
    antes do conceito de criptografia autenticado foi introduzido todos estavam
  • 15:10 - 15:15
    apenas combinando MACs e criptografia de várias maneiras, na esperança de alcançar
  • 15:15 - 15:19
    alguns, alguns criptografia autenticado. Após a noção de criptografia autenticado
  • 15:19 - 15:24
    tornou-se formalizado e rigorosa, as pessoas começaram a coçar a cabeça e disse:
  • 15:24 - 15:28
    ei, espere um minuto. Talvez possamos alcançar a criptografia autenticada de forma mais eficiente
  • 15:28 - 15:33
    do que pela combinação de um MAC e um esquema de criptografia. Na verdade, se você pensar em como
  • 15:33 - 15:37
    esta combinação de MAC e criptografia funciona, vamos dizer que combinar o modo de contador
  • 15:37 - 15:42
    com CMAC, em seguida, para cada bloco de texto simples, você primeiro de tudo tem que usar
  • 15:42 - 15:46
    cifra de bloco para o seu modo de contador, e então você tem que usar a sua cifra de bloco
  • 15:46 - 15:51
    novamente, para o CBC-MAC. Isto significa que se você combinar CPA criptografia segura com um
  • 15:51 - 15:56
    MAC, para cada bloco de texto simples, você tem que avaliar o seu bloco cifrado duas vezes,
  • 15:56 - 16:01
    uma vez para o MAC e uma vez para o esquema de criptografia. Então, a pergunta natural
  • 16:01 - 16:05
    era, podemos construir um sistema de criptografia autenticado diretamente de um PRP,
  • 16:05 - 16:10
    tal que teríamos que apenas avaliar o PRP, uma vez por bloco. E acontece
  • 16:10 - 16:14
    , a resposta é sim, e há estes bela construção denominada OCB, que
  • 16:14 - 16:18
    praticamente faz tudo que você quer, e é muito mais rápido do que construções que são
  • 16:18 - 16:22
    separadamente construído a partir de uma criptografia e MAC. Então eu escrevi para baixo, tipo de um esquema
  • 16:22 - 16:26
    da OCB. Eu não quero explicar em detalhes. Vou explicá-lo meio a uma
  • 16:26 - 16:30
    de alto nível. Então aqui nós temos, de entrada de texto simples, aqui no topo. E você
  • 16:30 - 16:35
    aviso de que, em primeiro lugar, OCB é paralelizável, completamente paralelizável.
  • 16:35 - 16:40
    Assim, cada bloco pode ser criptografado separadamente de cada outro bloco. A outra coisa a
  • 16:40 - 16:44
    aviso é que, como eu prometi, você só avaliar a sua cifra do bloco uma vez por simples
  • 16:44 - 16:49
    bloco de texto. E então você avaliá-lo mais uma vez no fim de construir o seu
  • 16:49 - 16:54
    tag autenticação e, em seguida, a sobrecarga de OCB além de apenas um bloco cifra é
  • 16:54 - 16:59
    mínima. Tudo que você tem a fazer é avaliar uma determinada função P muito simples que o
  • 16:59 - 17:03
    nonce vai para o P você notar, a chave vai para este P e, em seguida, há uma
  • 17:03 - 17:08
    contra bloco que vai para este P. Então você só avaliar essa função P, duas vezes
  • 17:08 - 17:13
    para cada bloco e você XOR o resultado antes e depois de criptografia usando o
  • 17:13 - 17:18
    cifra de bloco e é isso. Isso é tudo que você tem que fazer e então você começa um muito rápido
  • 17:18 - 17:22
    esquema de criptografia e de autenticação eficiente construído a partir de uma cifra de bloco. Então OCB
  • 17:22 - 17:26
    realmente tem um teorema de segurança agradável associado com ele e eu vou apontar
  • 17:26 - 17:30
    para um trabalho sobre OCB quando chegarmos ao final deste módulo onde eu vou listar algumas mais
  • 17:30 - 17:34
    papéis de leitura que você pode dar uma olhada. Então você deve estar se perguntando se é tão OCB
  • 17:34 - 17:40
    muito melhor do que tudo o que tenho visto até agora todas essas três padrões CCM, GCM e
  • 17:40 - 17:46
    EAX porque não é OCB sendo usado ou porque não é OCB o padrão? E a resposta é um
  • 17:46 - 17:51
    pouco triste. A resposta primária em que CBC não está sendo utilizado é porque na verdade
  • 17:51 - 17:55
    de várias patentes. E eu vou deixar por isso mesmo. Portanto, para concluir esta seção I
  • 17:55 - 17:58
    queria mostrar-lhe alguns números de desempenho. Então, aqui à direita listei
  • 17:58 - 18:02
    números de desempenho para os modos que você não deve usar. Então isto é para
  • 18:02 - 18:08
    modo casualizado contador, e isto é para CBC casualizado. E você pode ver também o
  • 18:08 - 18:12
    desempenho de CBC MAC é basicamente o mesmo que o desempenho de criptografia CBC.
  • 18:12 - 18:16
    Ok. E aqui são os modos de criptografia autenticados, por isso estes são os
  • 18:16 - 18:20
    que você deveria usar, estes que você não deveria estar usando em sua
  • 18:20 - 18:24
    próprio, direito. Estes dois, você nunca deve usar esses dois, porque eles só
  • 18:24 - 18:28
    fornecer CPA segurança, eles realmente não oferecer segurança contra ativa
  • 18:28 - 18:32
    ataques. Você só deve usar criptografia autenticado para criptografia.
  • 18:32 - 18:36
    E por isso este é os seus números de desempenho para os três padrões. E deixe-me lembrá
  • 18:36 - 18:40
    você que GCM basicamente usa um hash muito rápido. E então ele usa o modo de contador para
  • 18:40 - 18:44
    criptografia real. E você pode ver que a sobrecarga de GCM sobre o modo de contador é
  • 18:44 - 18:50
    relativamente pequeno. CCM e EAX tanto usar uma criptografia Sipher bloco base e um
  • 18:50 - 18:55
    cifra de bloco para a base da MAC. E como resultado a sua duas vezes mais lento que o contador
  • 18:55 - 18:59
    modos. Você vê que é realmente mais rápido OCB destes, principalmente porque
  • 18:59 - 19:04
    só usar a cifra de bloco uma vez por bloco de mensagem. Assim, com base no desempenho desses
  • 19:04 - 19:08
    números, você poderia pensar que GCM é exatamente o modo correto de usar sempre. Mas
  • 19:08 - 19:13
    acontece se você está no hardware espaço restrito, GCM não é o ideal.
  • 19:13 - 19:17
    Principalmente porque a sua aplicação requer um código maior que os outros dois
  • 19:17 - 19:21
    modos. No entanto, como eu disse, a Intel especificamente acrescentou instruções para acelerar
  • 19:21 - 19:26
    modo GCM para cima. E, como resultado, a implementação de GCM na arquitetura Intel leva
  • 19:26 - 19:30
    muito pouco código. Mas em outras plataformas de hardware, visto em cartões inteligentes ou outros
  • 19:30 - 19:35
    ambientes restritos, os sites de código para a implementação GCM seria consideravelmente
  • 19:35 - 19:39
    maior do que para os outros dois modos. Mas se o tamanho do código não é uma restrição, então GCM
  • 19:39 - 19:44
    é o modo correto de usar. Então, para resumir esse segmento que eu quero dizer mais uma
  • 19:44 - 19:48
    tempo que, quando você quiser criptografar mensagens que você tem que usar uma autenticação
  • 19:48 - 19:53
    modo de criptografia e a maneira recomendada para fazer isso é usar um dos padrões,
  • 19:53 - 19:57
    principalmente um destes três modos para fornecer criptografia de autenticação. Não implementar o esquema de criptografia si mesmo.
  • 19:57 - 20:00
    Em outras palavras, não implementar criptografar e-MAC-se.
  • 20:00 - 20:06
    Basta usar um desses três padrões. Muitas bibliotecas criptografar
  • 20:06 - 20:11
    agora fornecer API padrão para estes três modos e estes são os do que você deve
  • 20:11 - 20:14
    estar usando e nada mais. No próximo segmento nós vamos ver o que mais pode
  • 20:14 - 20:18
    dar errado quando você tentar implementar uma criptografia sonicado por si mesmo.
Title:
Construções de cifras e MACs (21 min)
Video Language:
English
erickshowplay edited Portuguese, Brazilian subtitles for Constructions from ciphers and MACs (21 min)
erickshowplay added a translation

Portuguese, Brazilian subtitles

Revisions