< Return to Video

Modos de operação: chave de muitos tempo (CBC) (16 min)

  • 0:00 - 0:04
    Agora que entendemos segurança texto escolhido simples, permite construir sistemas de criptografias
  • 0:04 - 0:09
    que são escolhidos de texto simples seguro. E o esquema de criptografia primeiro tal vai
  • 0:09 - 0:13
    ser chamado cifra encadeamento bock. Então aqui está como o encadeamento de bloco cifra funciona.
  • 0:13 - 0:17
    encadeamento de blocos de codificação é uma maneira de usar uma cifra de bloco a ter escolhido texto simples
  • 0:17 - 0:21
    segurança. Em particular, estamos indo olhar um modo chamado encadeamento bloco cifra
  • 0:21 - 0:25
    com uma IV aleatória. CBC representa chaning bloco cifrado. Assim, suponha que temos um bloco
  • 0:25 - 0:29
    cifra, assim EB é uma cifra de bloco. Então, agora vamos definir CBC para ser o seguinte
  • 0:29 - 0:33
    esquema de criptografia. Assim, o algoritmo de criptografia quando é solicitado para criptografar uma
  • 0:33 - 0:38
    mensagem M, a primeira coisa que vai fazer é que vai escolher um IV aleatório que é
  • 0:38 - 0:42
    exatamente um bloco da cifra de bloco. Então IV é um bloco de cifra.
  • 0:42 - 0:46
    Assim, no caso de AES a IV seria de 16 bytes. E então nós estamos
  • 0:46 - 0:51
    vai correr através do algoritmo aqui, o IV, basicamente, que nós escolhemos vai ser XOR
  • 0:51 - 0:55
    para o bloco primeiro texto simples. E então o resultado vai ser
  • 0:55 - 0:59
    criptografada usando a cifra de bloco e de saída do primeiro bloco do texto cifrado.
  • 0:59 - 1:03
    E agora vem a parte encadeamento onde nós realmente usar o primeiro bloco de
  • 1:03 - 1:07
    texto a cifra Para tipo de máscara o segundo bloco do texto simples. Então, nós XOR
  • 1:07 - 1:12
    os dois juntos ea criptografia de que se torna o segundo bloco de texto cifrado.
  • 1:12 - 1:16
    E assim por diante, e assim por diante, e assim por diante. Portanto, este é o encadeamento cifra bloco que você pode
  • 1:18 - 1:20
    ver que cada bloco de cifra é acorrentado e XOR para o próximo texto simples
  • 1:20 - 1:24
    bloco. E o texto cifrado final é vai ser, essencialmente, a IV do IV inicial
  • 1:24 - 1:30
    que nós escolhemos, juntamente com todos os blocos de texto cifrado. Devo dizer que está IV
  • 1:30 - 1:36
    para vetor de inicialização. E nós vamos estar vendo esse termo usado um pouco,
  • 1:36 - 1:40
    cada vez que precisamos escolher algo aleatoriamente no início da criptografia
  • 1:40 - 1:44
    esquema tipicamente vamos chamar isso de um IV para vetor de inicialização. Então você percebe
  • 1:44 - 1:47
    que o texto cifra é um pouco maior do que o texto simples, porque tínhamos
  • 1:47 - 1:51
    para incluir este IV nos textos cifrados que, basicamente, capta a aleatoriedade
  • 1:51 - 1:55
    que foi usado durante a criptografia. Assim, a primeira pergunta é como nós decifrar o
  • 1:55 - 2:00
    resultados de criptografia CBC e então deixe-me lembrá-lo mais uma vez que se nós, quando
  • 2:00 - 2:04
    criptografar o bloco primeira mensagem que XOR com o encrypt IV do
  • 2:04 - 2:09
    resultado e que se torna o primeiro bloco de texto cifrado. Então deixe-me perguntar-lhe como é que
  • 2:09 - 2:14
    você descriptografar isso? Portanto, dado o bloco de texto primeiro cifra como você recuperar
  • 2:14 - 2:18
    do bloco de texto original primeiro planície? Assim descodificação é na verdade muito semelhante à
  • 2:18 - 2:22
    criptografia, aqui escrevi o circuito de decodificação, você pode ver, basicamente,
  • 2:22 - 2:26
    é quase a mesma coisa, exceto o XOR é no fundo, em vez de na parte superior e
  • 2:26 - 2:30
    novamente você percebe que, essencialmente, que cortou o IV como parte do
  • 2:30 - 2:34
    processo de descriptografia e só emitir a mensagem original de volta, o IV é descartado
  • 2:34 - 2:38
    pela tomada de descriptografia ok então o seguinte teorema vai mostrar que em
  • 2:38 - 2:44
    fato de criptografia modo CBC com um IV aleatório é, de fato semanticamente seguro sob um
  • 2:44 - 2:49
    escolhido texto simples, e por isso vamos levar isso mais precisamente, basicamente, se
  • 2:49 - 2:54
    início com um PRP, em outras palavras seu e cifra do bloco, que é definido por um
  • 2:54 - 2:59
    X espaço, então nós vamos acabar com uma criptografia de uma ECBC que leva
  • 2:59 - 3:04
    mensagens de comprimento L e mensagens cifradas saídas de comprimento L, mais um. E, em seguida
  • 3:04 - 3:09
    supor que temos um adversário que faz Q escolhidos querries texto plano. Então, podemos
  • 3:09 - 3:15
    estado o fato de segurança a seguir, que, para cada adversário de tal forma que está atacando
  • 3:15 - 3:20
    ECBC de existir um adversário que está atacando o PRP a cifra de bloco com
  • 3:20 - 3:25
    a seguinte relação entre o algoritmo de dois, por outras palavras, a vantagem
  • 3:25 - 3:30
    do algoritmo A contra esquema de encriptação é menor do que a vantagem de B algoritmo
  • 3:30 - 3:35
    contra o PRP original mais algum termo de ruído. Então deixe-me interpretar este teorema para
  • 3:35 - 3:40
    você como de costume, então o que isto significa é que, essencialmente, uma vez que E é um PRP segura este
  • 3:40 - 3:45
    quantidade aqui é insignificante, e nosso objetivo é dizer que uma vantagem do adversário é
  • 3:45 - 3:50
    também desprezível, no entanto aqui estamos impedidos de dizer que porque temos
  • 3:50 - 3:55
    este termo de erro extra. Isso é muitas vezes chamado de um termo de erro e argumentar que CBC
  • 3:55 - 4:00
    é seguro, temos de ter certeza de que o termo de erro também é insignificante. Porque se
  • 4:00 - 4:04
    ambos os termos à direita são desprezíveis, não há sinal é insignificante e
  • 4:04 - 4:09
    , portanto, a vantagem de um contra ECBC também seria negligenciável. Portanto, este diz
  • 4:09 - 4:15
    que, na verdade para ECBC para ser seguro era ser o fato de que Q L quadrado quadrado é
  • 4:15 - 4:20
    muito, muito, muito menor que o valor de X, então deixe-me lembrá-lo que Q e L são, por assim
  • 4:20 - 4:25
    L é simplesmente o comprimento das mensagens que estamos criptografia. Ok, então L pode ser
  • 4:25 - 4:30
    como dizer que um 1000, o que significa que estamos a criptografia de mensagens que são no máximo 1000
  • 4:30 - 4:35
    blocos AES. Q é o número de textos de codificação que o adversário consegue ver sob a
  • 4:35 - 4:41
    ataque CPA, mas na vida real que Q é, é basicamente o número de vezes que temos
  • 4:41 - 4:46
    usou o K-chave para criptografar mensagens, em outras palavras, se usar uma chave AES particular
  • 4:46 - 4:51
    criptografar 100 mensagens, Q seria de 100. É porque o adversário, então, ver
  • 4:51 - 4:56
    maioria das 100 mensagens criptografadas nos termos do presente K chave Ok, então vamos ver o que isto significa no real
  • 4:56 - 5:01
    mundo. Então aqui eu reescrevi o equilíbrio seta no teorema. E só para lembrar
  • 5:01 - 5:05
    que você use as mensagens cifradas com a K e L com os comprimentos das mensagens e
  • 5:05 - 5:09
    suponha que queremos vantagem do adversário para ser inferior a um sobre dois para o 30
  • 5:09 - 5:13
    dois. Isto significa que o termo seta melhor que seja inferior a um sobre dois à
  • 5:13 - 5:18
    32. Ok, vamos olhar para AES e ver o que isso significa. Para AES, AES, naturalmente, utiliza
  • 5:18 - 5:22
    bloco de 128 bits para X vai ser dois para o 128, o
  • 5:22 - 5:26
    tamanho de X vai ser 2 a 128, e se
  • 5:26 - 5:31
    ligue-a a expressão que você vê que, basicamente, o produto é Q vezes teve L
  • 5:31 - 5:35
    melhor ser inferior a duas vezes quarenta e oito. Isto significa que, depois de se usar um especial
  • 5:35 - 5:40
    chave para criptografar 2 para o bloco 48 AES temos de mudar a chave. Ok então
  • 5:40 - 5:47
    essencialmente CBC deixa de ser seguro depois que a chave é usada para criptografar 2 à 48 diferentes AS blocos.
  • 5:47 - 5:50
    Então, seu tipo de bom que o teorema de segurança diz
  • 5:50 - 5:54
    você exatamente quanto tempo a chave pode ser usada e, em seguida, a freqüência como a chave precisa
  • 5:54 - 6:00
    de ser substituído. Agora é interessante se você aplicar a mesma analogia para o que 3DES
  • 6:00 - 6:05
    realmente tem um bloco muito mais curto, talvez apenas 64 bits, você vê a chave tem de ser
  • 6:05 - 6:10
    mudado mais freqüentemente talvez depois a cada 65 mil blocos DES você precisa de uma nova chave. Assim
  • 6:10 - 6:15
    esta é uma das razões que AES tem um tamanho maior do bloco de modo que nos modos de facto
  • 6:15 - 6:20
    como CBC seria mais seguro e pode-se usar as chaves por um longo período antes de ter
  • 6:20 - 6:25
    para substituí-lo. O que isto significa é ter que substituir dois a 60, em blocos,
  • 6:25 - 6:30
    cada bloco do curso é de 8 bytes, por isso depois de criptografar cerca de metade de um megabyte de
  • 6:30 - 6:34
    cada bloco do curso é de 8 bytes, por isso depois de criptografar cerca de metade de um megabyte de
  • 6:34 - 6:38
    aviso com AES você pode criptografar um monte de dados antes de ter que mudar o
  • 6:38 - 6:43
    chave. Então eu quero avisá-lo sobre um erro muito comum que as pessoas fizeram quando
  • 6:43 - 6:48
    usando CBC com um IV aleatório. Isso é que minuto o que o atacante pode prever
  • 6:48 - 6:53
    a IV que você está indo usar para criptografar uma mensagem especial decifrar
  • 6:53 - 6:58
    ECBC isso não é mais seguro CPA. Então, quando usando CBC com um IV aleatório, como nós temos
  • 6:58 - 7:02
    apenas mostrado É crucial que a IV não é previsível. Mas vamos ver um ataque. Assim
  • 7:02 - 7:06
    suponho que assim acontece que, dada uma codificação em particular em uma mensagem que
  • 7:06 - 7:11
    atacante pode realmente prever que IV, que será utilizado para a próxima mensagem. Bem
  • 7:11 - 7:15
    permite mostrar que de fato o sistema resultante não é CPA seguro. Então a primeira coisa que a
  • 7:15 - 7:19
    adversário vai fazer é, ele vai pedir para a criptografia de um bloco de um
  • 7:19 - 7:23
    mensagem. Em particular que um bloco vai ser zero. Então, o que o adversário
  • 7:23 - 7:28
    recebe de volta é a criptografia de um bloco, ou seja, que é a criptografia de
  • 7:28 - 7:32
    mensagem ou seja zero, o XOR IV. Ok e, claro, o adversário também recebe o
  • 7:32 - 7:36
    IV. Ok então agora o adversário por hipótese pode prever o que vai IV
  • 7:36 - 7:40
    ser utilizado para a codificação seguinte. Ok, então vamos dizer que IV é chamado, bem IV. Assim
  • 7:40 - 7:44
    seguinte, o adversário vai lançar seu desafio de segurança Symantec e da
  • 7:44 - 7:49
    mensagem M0 vai ser o predito IV XOR IV1 o qual foi utilizado na criptografia
  • 7:49 - 7:54
    de C1. E a, a mensagem do M1 é apenas vai ser alguma outra mensagem, ela não
  • 7:54 - 7:58
    importa realmente o que é. Então, agora vamos ver o que acontece quando o adversário recebe
  • 7:58 - 8:02
    o resultado do desafio de segurança Symantic. Bem, ele está indo para obter o
  • 8:02 - 8:06
    criptografia de M0 ou M1. Assim, quando o adversário recebe a criptografia de M0,
  • 8:06 - 8:11
    me dizer o que é que o texto real claro que é criptografada no texto cifrado C?
  • 8:11 - 8:17
    Bem então a resposta é que o que é realmente criptografado é a mensagem que é
  • 8:17 - 8:23
    IV XOR XOR IV1 o IV que é usada para criptografar a mensagem que passa a ser
  • 8:23 - 8:28
    IV e isso, claro, é IV1. Assim, quando o adversário recebe a criptografia de M0,
  • 8:28 - 8:33
    ele está realmente recebendo a criptografia cifra de bloco de IV1. E baixa e eis
  • 8:33 - 8:38
    você vai perceber que ele já tem o valor de sua consulta de texto escolhido simples.
  • 8:38 - 8:43
    E então quando ele está recebendo a criptografia da mensagem M1, ele só recebeu
  • 8:43 - 8:48
    uma criptografia CBC normais do M1 mensagem. Então você percebe que agora ele tem um simples
  • 8:48 - 8:53
    forma de quebrar o esquema, ou seja, o que ele vai fazer é que ele vai perguntar: 'É o segundo
  • 8:53 - 8:58
    bloco do texto cifrado C igual ao valor que recebi em minha consulta CPA? Se
  • 8:58 - 9:04
    então eu vou dizer que eu recebi a criptografia de M0, caso contrário eu vou dizer que eu recebi
  • 9:04 - 9:09
    criptografia de M1. Então, realmente o seu teste é C1 onde ele se refere ao segundo bloco
  • 9:09 - 9:14
    de C e C1 refere-se ao segundo bloco de C1 se os dois são iguais, ele diz zero,
  • 9:14 - 9:20
    caso contrário, ele diz um deles. Assim, a vantagem desta adversário vai ser 1 e como um
  • 9:20 - 9:26
    resultado, ele rompe completamente a segurança da CPU deste criptografia CBC. Então a lição aqui
  • 9:26 - 9:30
    é, se o IV é previsível, então, na verdade, não há segurança CPA e
  • 9:30 - 9:36
    , infelizmente, este é realmente um erro muito comum na prática. Em particular
  • 9:36 - 9:41
    mesmo protocolo SSL e em TLS1.1 verifica-se que para número recorde IV I é de fato
  • 9:41 - 9:46
    do bloco de texto última cifra recorde de I-1. Isso significa que exactamente dada
  • 9:46 - 9:52
    a criptografia de disco I-1, o adversário sabe exatamente o que está acontecendo IV
  • 9:52 - 9:56
    para ser usado como I. número recorde Muito recentemente apenas no verão passado esta era
  • 9:56 - 10:01
    realmente convertido em um ataque devastador em SSL. Vamos descrever
  • 10:01 - 10:06
    que um ataque falamos de SSL em mais detalhes, mas agora eu queria ter certeza de
  • 10:06 - 10:12
    você entende quando você usa criptografia CBC é absolutamente crucial que o IV ser aleatória.
  • 10:12 - 10:16
    Ok. Então agora eu vou te mostrar a versão nonce base de criptografia CBC
  • 10:16 - 10:21
    Assim, neste modo, o IV é substituído pelo nonce aleatório, mas não único
  • 10:27 - 10:27
    , por exemplo, o número 1,2,3,4,5. No entanto, se vai ser um contador de você
  • 10:27 - 10:32
    precisa fazer mais um passo. Antes de realmente CBC criptografia e em especial que você tem
  • 10:32 - 10:37
    para realmente criptografar as notas para se obter o IV que irá ser efectivamente utilizado para
  • 10:37 - 10:43
    criptografia. As anotações para CBC é semelhante a um IV aleatória, a diferença é que o
  • 10:43 - 10:48
    notas é primeiro codificado, e os resultados é que o IV é utilizado na CBC
  • 10:48 - 10:53
    criptografia Agora a beleza deste modo é que a Nance não tem necessariamente de
  • 10:53 - 10:57
    ser incluídos no texto codificado. Ele só precisa estar lá, se as suas incógnitas são
  • 10:57 - 11:01
    decrypter, mas que se o decrypter acontece que já conhecem o valor do
  • 11:01 - 11:05
    contra por outros meios, em seguida, na verdade, o texto cifrado é somente tão grande quanto o
  • 11:05 - 11:09
    texto simples. Não há valor extra transmitida no texto cifrado. E, novamente,
  • 11:09 - 11:14
    eu avisar que quando você está usando criptografia espaço não, é absolutamente crucial que
  • 11:14 - 11:18
    a chave comum Nance de reposição só é usado para uma mensagem de forma para cada mensagem,
  • 11:18 - 11:22
    ou Nance o que mudou ou a tecla mudou. Ok, então aqui enfatizar a
  • 11:22 - 11:26
    fato de que você precisa fazer esse passo extra antes de criptografia usando o real
  • 11:26 - 11:31
    Nance. Isso é erro muito comum que realmente esquecido na prática e
  • 11:31 - 11:36
    exemplo, TLS, isso não foi feito e como resultado houve um ataque significativo
  • 11:36 - 11:40
    contra criptografia CBC em TLS. Lembre-se da razão que isso é tão importante para
  • 11:40 - 11:45
    sabem é que na verdade muitas APIs de criptografia são criados para quase deliberadamente enganar o
  • 11:45 - 11:49
    usuário usando CBC incorretamente. Então, vamos olhar para ver como CBC implementado dentro de
  • 11:49 - 11:54
    SSL aberta. Então aqui estão os argumentos da função. Basicamente este é o simples
  • 11:54 - 11:58
    texto, este é o lugar onde o texto cifrado vai ficar gravado. Este é o
  • 11:58 - 12:03
    comprimento do texto simples. Esta é uma, uma tecla Sim Finalmente, há um argumento de que aqui
  • 12:03 - 12:06
    diz se você está crypting ou descriptografar. E o mais importante
  • 12:06 - 12:11
    parâmetro que eu queria salientar aqui é o IV real e, infelizmente, o
  • 12:11 - 12:15
    usuário é solicitado a fornecer este IV ea função usa o IV diretamente no CBC
  • 12:15 - 12:20
    mecanismo de criptografia. Não encriptar a IV, antes de utilizá-lo e, como resultado, se
  • 12:20 - 12:24
    você chamar essa função usando um IV não aleatório, o sistema de criptografia resultando
  • 12:24 - 12:29
    não será CPA seguro. Ok, isso é muito importante saber que ao chamar
  • 12:29 - 12:34
    funções como este. Criptografia SSL Cbc ou aberto ou fornecer um IV verdadeiramente aleatório
  • 12:34 - 12:39
    ou se você deseja que o IV para ser um contador do que você tem para criptografar um contador usando AAS
  • 12:39 - 12:44
    antes de realmente chamar um encrypt CBC e você tem que que você mesmo. Então, novamente, é
  • 12:44 - 12:48
    muito importante que o programador sabe que precisa ser feito caso contrário, a CBC
  • 12:48 - 12:52
    criptografia é inseguro. Um detalhe técnico última sobre CBC é o que fazer quando
  • 12:52 - 12:57
    a mensagem não é um múltiplo do comprimento do bloco do bloco de codificação? Isso é o que fazemos
  • 12:57 - 13:02
    se o bloco de mensagem último é mais curto do que o comprimento do bloco de AES, por exemplo? Assim
  • 13:02 - 13:06
    o bloco de mensagem é passada menos de dezasseis bytes. E a resposta é se somarmos
  • 13:06 - 13:12
    uma almofada para o último bloco de modo que se torna tão longo como dezasseis bytes, contanto que o AES
  • 13:12 - 13:17
    tamanho do bloco. E esta almofada, é claro, se vai ser removido durante a criptografia. Assim
  • 13:17 - 13:22
    aqui é um caminho típico, este é o caminho que é usado no TLS. Basicamente almofada um com
  • 13:22 - 13:27
    N bytes, em seguida, essencialmente o que você faz é escrever o número N, N vezes. Assim, para
  • 13:27 - 13:32
    exemplo, se você pad com cinco bytes, você almofada com a seqüência 555555. Então, cinco bytes
  • 13:32 - 13:37
    onde cada byte é o valor cinco. E a principal coisa sobre este tapete é basicamente quando
  • 13:37 - 13:42
    decrypter a receber a mensagem, o que ele faz é ele olha para o último byte de
  • 13:42 - 13:47
    o último bloco. Então suponho que o valor é cinco, então, ele simplesmente elimina os últimos cinco
  • 13:47 - 13:52
    bytes da mensagem. Agora a pergunta é o que vamos fazer se, de facto, a mensagem é um
  • 13:52 - 13:56
    múltiplo de dezesseis bytes então de fato não pad é necessário? Se não o fizermos pad em tudo,
  • 13:56 - 14:00
    bem que é um problema porque o decrypter vai olhar para o próprio
  • 14:00 - 14:05
    último byte do último bloco que não faz parte da mensagem real e que ele vai
  • 14:05 - 14:10
    para remover este número de bytes a partir do texto simples. De modo que, na verdade seria um problema.
  • 14:10 - 14:15
    Então a solução é, se de fato não há almofada que é necessário, no entanto, ainda
  • 14:15 - 14:21
    tem que adicionar um bloco de manequim. E uma vez que adicionar o bloco manequim este seria um bloco
  • 14:21 - 14:26
    que é basicamente contém dezesseis bytes cada um contendo o número 16.
  • 14:26 - 14:30
    Ok, então vamos adicionar blocos manequim essencialmente dezesseis. O decrypter, que quando ele é
  • 14:30 - 14:34
    descriptografar, ele olha para o último byte do último bloco, ele vê que o valor é
  • 14:34 - 14:39
    16, pois ele remove todo o bloco. E o que resta é a real
  • 14:39 - 14:43
    texto simples. Então é um pouco lamentável que na verdade se você estiver criptografando curto
  • 14:43 - 14:47
    mensagens com CBC e as mensagens que ser, digamos, 32 bytes, assim que são uma
  • 14:47 - 14:51
    múltiplo de dezesseis bytes, então você tem que adicionar mais um bloco e fazer todos estes
  • 14:51 - 14:55
    mensagens cifradas de 48 bytes apenas para acomodar o preenchimento CBC. Eu deveria
  • 14:55 - 15:00
    menção há uma variante do chamado CBC CBC com texto cifrado roubar que realmente
  • 15:00 - 15:04
    evita este problema, mas eu não vou descrever isso aqui. Se você está interessado
  • 15:04 - 15:08
    você pode olhar que até online. Ok, então isso é o fim da nossa discussão do CBC
  • 15:08 - 15:12
    e no segmento seguinte, verá como utilizar os modos de contador para criptografar múltipla
  • 15:12 - 15:14
    mensagens utilizando uma única tecla.
Title:
Modos de operação: chave de muitos tempo (CBC) (16 min)
Video Language:
English
erickshowplay added a translation

Portuguese, Brazilian subtitles

Incomplete

Revisions