1 00:00:00,000 --> 00:00:04,152 Agora que entendemos segurança texto escolhido simples, permite construir sistemas de criptografias 2 00:00:04,152 --> 00:00:08,515 que são escolhidos de texto simples seguro. E o esquema de criptografia primeiro tal vai 3 00:00:08,515 --> 00:00:12,510 ser chamado cifra encadeamento bock. Então aqui está como o encadeamento de bloco cifra funciona. 4 00:00:12,510 --> 00:00:16,610 encadeamento de blocos de codificação é uma maneira de usar uma cifra de bloco a ter escolhido texto simples 5 00:00:16,610 --> 00:00:20,868 segurança. Em particular, estamos indo olhar um modo chamado encadeamento bloco cifra 6 00:00:20,868 --> 00:00:25,021 com uma IV aleatória. CBC representa chaning bloco cifrado. Assim, suponha que temos um bloco 7 00:00:25,021 --> 00:00:28,963 cifra, assim EB é uma cifra de bloco. Então, agora vamos definir CBC para ser o seguinte 8 00:00:28,963 --> 00:00:33,248 esquema de criptografia. Assim, o algoritmo de criptografia quando é solicitado para criptografar uma 9 00:00:33,248 --> 00:00:37,991 mensagem M, a primeira coisa que vai fazer é que vai escolher um IV aleatório que é 10 00:00:37,991 --> 00:00:41,958 exatamente um bloco da cifra de bloco. Então IV é um bloco de cifra. 11 00:00:41,958 --> 00:00:46,035 Assim, no caso de AES a IV seria de 16 bytes. E então nós estamos 12 00:00:46,035 --> 00:00:50,649 vai correr através do algoritmo aqui, o IV, basicamente, que nós escolhemos vai ser XOR 13 00:00:50,649 --> 00:00:54,726 para o bloco primeiro texto simples. E então o resultado vai ser 14 00:00:54,726 --> 00:00:58,857 criptografada usando a cifra de bloco e de saída do primeiro bloco do texto cifrado. 15 00:00:58,857 --> 00:01:03,041 E agora vem a parte encadeamento onde nós realmente usar o primeiro bloco de 16 00:01:03,041 --> 00:01:07,436 texto a cifra Para tipo de máscara o segundo bloco do texto simples. Então, nós XOR 17 00:01:07,436 --> 00:01:11,588 os dois juntos ea criptografia de que se torna o segundo bloco de texto cifrado. 18 00:01:11,588 --> 00:01:15,535 E assim por diante, e assim por diante, e assim por diante. Portanto, este é o encadeamento cifra bloco que você pode 19 00:01:17,559 --> 00:01:19,584 ver que cada bloco de cifra é acorrentado e XOR para o próximo texto simples 20 00:01:19,584 --> 00:01:24,118 bloco. E o texto cifrado final é vai ser, essencialmente, a IV do IV inicial 21 00:01:24,118 --> 00:01:30,024 que nós escolhemos, juntamente com todos os blocos de texto cifrado. Devo dizer que está IV 22 00:01:30,024 --> 00:01:35,795 para vetor de inicialização. E nós vamos estar vendo esse termo usado um pouco, 23 00:01:35,795 --> 00:01:39,717 cada vez que precisamos escolher algo aleatoriamente no início da criptografia 24 00:01:39,717 --> 00:01:43,543 esquema tipicamente vamos chamar isso de um IV para vetor de inicialização. Então você percebe 25 00:01:43,543 --> 00:01:47,322 que o texto cifra é um pouco maior do que o texto simples, porque tínhamos 26 00:01:47,322 --> 00:01:51,149 para incluir este IV nos textos cifrados que, basicamente, capta a aleatoriedade 27 00:01:51,149 --> 00:01:55,450 que foi usado durante a criptografia. Assim, a primeira pergunta é como nós decifrar o 28 00:01:55,450 --> 00:02:00,226 resultados de criptografia CBC e então deixe-me lembrá-lo mais uma vez que se nós, quando 29 00:02:00,226 --> 00:02:04,470 criptografar o bloco primeira mensagem que XOR com o encrypt IV do 30 00:02:04,470 --> 00:02:09,187 resultado e que se torna o primeiro bloco de texto cifrado. Então deixe-me perguntar-lhe como é que 31 00:02:09,187 --> 00:02:13,667 você descriptografar isso? Portanto, dado o bloco de texto primeiro cifra como você recuperar 32 00:02:13,667 --> 00:02:17,915 do bloco de texto original primeiro planície? Assim descodificação é na verdade muito semelhante à 33 00:02:17,915 --> 00:02:21,660 criptografia, aqui escrevi o circuito de decodificação, você pode ver, basicamente, 34 00:02:21,660 --> 00:02:25,961 é quase a mesma coisa, exceto o XOR é no fundo, em vez de na parte superior e 35 00:02:25,961 --> 00:02:29,605 novamente você percebe que, essencialmente, que cortou o IV como parte do 36 00:02:29,605 --> 00:02:33,754 processo de descriptografia e só emitir a mensagem original de volta, o IV é descartado 37 00:02:33,754 --> 00:02:38,438 pela tomada de descriptografia ok então o seguinte teorema vai mostrar que em 38 00:02:38,438 --> 00:02:43,762 fato de criptografia modo CBC com um IV aleatório é, de fato semanticamente seguro sob um 39 00:02:43,762 --> 00:02:48,956 escolhido texto simples, e por isso vamos levar isso mais precisamente, basicamente, se 40 00:02:48,956 --> 00:02:54,083 início com um PRP, em outras palavras seu e cifra do bloco, que é definido por um 41 00:02:54,083 --> 00:02:59,079 X espaço, então nós vamos acabar com uma criptografia de uma ECBC que leva 42 00:02:59,079 --> 00:03:03,944 mensagens de comprimento L e mensagens cifradas saídas de comprimento L, mais um. E, em seguida 43 00:03:03,944 --> 00:03:09,324 supor que temos um adversário que faz Q escolhidos querries texto plano. Então, podemos 44 00:03:09,324 --> 00:03:15,024 estado o fato de segurança a seguir, que, para cada adversário de tal forma que está atacando 45 00:03:15,024 --> 00:03:20,184 ECBC de existir um adversário que está atacando o PRP a cifra de bloco com 46 00:03:20,184 --> 00:03:24,926 a seguinte relação entre o algoritmo de dois, por outras palavras, a vantagem 47 00:03:24,926 --> 00:03:29,851 do algoritmo A contra esquema de encriptação é menor do que a vantagem de B algoritmo 48 00:03:29,851 --> 00:03:35,080 contra o PRP original mais algum termo de ruído. Então deixe-me interpretar este teorema para 49 00:03:35,080 --> 00:03:40,005 você como de costume, então o que isto significa é que, essencialmente, uma vez que E é um PRP segura este 50 00:03:40,005 --> 00:03:45,051 quantidade aqui é insignificante, e nosso objetivo é dizer que uma vantagem do adversário é 51 00:03:45,051 --> 00:03:49,794 também desprezível, no entanto aqui estamos impedidos de dizer que porque temos 52 00:03:49,794 --> 00:03:54,630 este termo de erro extra. Isso é muitas vezes chamado de um termo de erro e argumentar que CBC 53 00:03:54,630 --> 00:03:59,676 é seguro, temos de ter certeza de que o termo de erro também é insignificante. Porque se 54 00:03:59,676 --> 00:04:04,474 ambos os termos à direita são desprezíveis, não há sinal é insignificante e 55 00:04:04,474 --> 00:04:09,458 , portanto, a vantagem de um contra ECBC também seria negligenciável. Portanto, este diz 56 00:04:09,458 --> 00:04:14,565 que, na verdade para ECBC para ser seguro era ser o fato de que Q L quadrado quadrado é 57 00:04:14,565 --> 00:04:19,564 muito, muito, muito menor que o valor de X, então deixe-me lembrá-lo que Q e L são, por assim 58 00:04:19,564 --> 00:04:24,566 L é simplesmente o comprimento das mensagens que estamos criptografia. Ok, então L pode ser 59 00:04:24,566 --> 00:04:29,902 como dizer que um 1000, o que significa que estamos a criptografia de mensagens que são no máximo 1000 60 00:04:29,902 --> 00:04:35,303 blocos AES. Q é o número de textos de codificação que o adversário consegue ver sob a 61 00:04:35,303 --> 00:04:40,770 ataque CPA, mas na vida real que Q é, é basicamente o número de vezes que temos 62 00:04:40,770 --> 00:04:46,041 usou o K-chave para criptografar mensagens, em outras palavras, se usar uma chave AES particular 63 00:04:46,041 --> 00:04:51,052 criptografar 100 mensagens, Q seria de 100. É porque o adversário, então, ver 64 00:04:51,052 --> 00:04:56,224 maioria das 100 mensagens criptografadas nos termos do presente K chave Ok, então vamos ver o que isto significa no real 65 00:04:56,224 --> 00:05:00,866 mundo. Então aqui eu reescrevi o equilíbrio seta no teorema. E só para lembrar 66 00:05:00,866 --> 00:05:05,093 que você use as mensagens cifradas com a K e L com os comprimentos das mensagens e 67 00:05:05,093 --> 00:05:09,370 suponha que queremos vantagem do adversário para ser inferior a um sobre dois para o 30 68 00:05:09,370 --> 00:05:13,346 dois. Isto significa que o termo seta melhor que seja inferior a um sobre dois à 69 00:05:13,346 --> 00:05:17,853 32. Ok, vamos olhar para AES e ver o que isso significa. Para AES, AES, naturalmente, utiliza 70 00:05:17,853 --> 00:05:22,300 bloco de 128 bits para X vai ser dois para o 128, o 71 00:05:22,300 --> 00:05:26,363 tamanho de X vai ser 2 a 128, e se 72 00:05:26,363 --> 00:05:30,865 ligue-a a expressão que você vê que, basicamente, o produto é Q vezes teve L 73 00:05:30,865 --> 00:05:35,477 melhor ser inferior a duas vezes quarenta e oito. Isto significa que, depois de se usar um especial 74 00:05:35,477 --> 00:05:40,014 chave para criptografar 2 para o bloco 48 AES temos de mudar a chave. Ok então 75 00:05:40,014 --> 00:05:46,966 essencialmente CBC deixa de ser seguro depois que a chave é usada para criptografar 2 à 48 diferentes AS blocos. 76 00:05:46,966 --> 00:05:49,572 Então, seu tipo de bom que o teorema de segurança diz 77 00:05:49,572 --> 00:05:54,499 você exatamente quanto tempo a chave pode ser usada e, em seguida, a freqüência como a chave precisa 78 00:05:54,499 --> 00:05:59,575 de ser substituído. Agora é interessante se você aplicar a mesma analogia para o que 3DES 79 00:05:59,575 --> 00:06:04,909 realmente tem um bloco muito mais curto, talvez apenas 64 bits, você vê a chave tem de ser 80 00:06:04,909 --> 00:06:10,485 mudado mais freqüentemente talvez depois a cada 65 mil blocos DES você precisa de uma nova chave. Assim 81 00:06:10,485 --> 00:06:15,275 esta é uma das razões que AES tem um tamanho maior do bloco de modo que nos modos de facto 82 00:06:15,275 --> 00:06:20,240 como CBC seria mais seguro e pode-se usar as chaves por um longo período antes de ter 83 00:06:20,240 --> 00:06:24,796 para substituí-lo. O que isto significa é ter que substituir dois a 60, em blocos, 84 00:06:24,796 --> 00:06:29,586 cada bloco do curso é de 8 bytes, por isso depois de criptografar cerca de metade de um megabyte de 85 00:06:29,586 --> 00:06:33,868 cada bloco do curso é de 8 bytes, por isso depois de criptografar cerca de metade de um megabyte de 86 00:06:33,868 --> 00:06:37,645 aviso com AES você pode criptografar um monte de dados antes de ter que mudar o 87 00:06:37,645 --> 00:06:42,604 chave. Então eu quero avisá-lo sobre um erro muito comum que as pessoas fizeram quando 88 00:06:42,604 --> 00:06:47,627 usando CBC com um IV aleatório. Isso é que minuto o que o atacante pode prever 89 00:06:47,627 --> 00:06:52,712 a IV que você está indo usar para criptografar uma mensagem especial decifrar 90 00:06:52,712 --> 00:06:57,797 ECBC isso não é mais seguro CPA. Então, quando usando CBC com um IV aleatório, como nós temos 91 00:06:57,797 --> 00:07:02,246 apenas mostrado É crucial que a IV não é previsível. Mas vamos ver um ataque. Assim 92 00:07:02,246 --> 00:07:06,282 suponho que assim acontece que, dada uma codificação em particular em uma mensagem que 93 00:07:06,282 --> 00:07:10,695 atacante pode realmente prever que IV, que será utilizado para a próxima mensagem. Bem 94 00:07:10,695 --> 00:07:14,839 permite mostrar que de fato o sistema resultante não é CPA seguro. Então a primeira coisa que a 95 00:07:14,839 --> 00:07:19,197 adversário vai fazer é, ele vai pedir para a criptografia de um bloco de um 96 00:07:19,197 --> 00:07:23,449 mensagem. Em particular que um bloco vai ser zero. Então, o que o adversário 97 00:07:23,449 --> 00:07:27,592 recebe de volta é a criptografia de um bloco, ou seja, que é a criptografia de 98 00:07:27,592 --> 00:07:31,748 mensagem ou seja zero, o XOR IV. Ok e, claro, o adversário também recebe o 99 00:07:31,748 --> 00:07:35,877 IV. Ok então agora o adversário por hipótese pode prever o que vai IV 100 00:07:35,877 --> 00:07:40,196 ser utilizado para a codificação seguinte. Ok, então vamos dizer que IV é chamado, bem IV. Assim 101 00:07:40,196 --> 00:07:44,460 seguinte, o adversário vai lançar seu desafio de segurança Symantec e da 102 00:07:44,460 --> 00:07:49,167 mensagem M0 vai ser o predito IV XOR IV1 o qual foi utilizado na criptografia 103 00:07:49,167 --> 00:07:53,707 de C1. E a, a mensagem do M1 é apenas vai ser alguma outra mensagem, ela não 104 00:07:53,707 --> 00:07:58,248 importa realmente o que é. Então, agora vamos ver o que acontece quando o adversário recebe 105 00:07:58,248 --> 00:08:02,346 o resultado do desafio de segurança Symantic. Bem, ele está indo para obter o 106 00:08:02,346 --> 00:08:06,470 criptografia de M0 ou M1. Assim, quando o adversário recebe a criptografia de M0, 107 00:08:06,470 --> 00:08:10,800 me dizer o que é que o texto real claro que é criptografada no texto cifrado C? 108 00:08:11,260 --> 00:08:17,368 Bem então a resposta é que o que é realmente criptografado é a mensagem que é 109 00:08:17,368 --> 00:08:22,826 IV XOR XOR IV1 o IV que é usada para criptografar a mensagem que passa a ser 110 00:08:22,826 --> 00:08:28,301 IV e isso, claro, é IV1. Assim, quando o adversário recebe a criptografia de M0, 111 00:08:28,301 --> 00:08:33,167 ele está realmente recebendo a criptografia cifra de bloco de IV1. E baixa e eis 112 00:08:33,167 --> 00:08:38,440 você vai perceber que ele já tem o valor de sua consulta de texto escolhido simples. 113 00:08:38,440 --> 00:08:42,800 E então quando ele está recebendo a criptografia da mensagem M1, ele só recebeu 114 00:08:42,800 --> 00:08:47,825 uma criptografia CBC normais do M1 mensagem. Então você percebe que agora ele tem um simples 115 00:08:47,825 --> 00:08:53,057 forma de quebrar o esquema, ou seja, o que ele vai fazer é que ele vai perguntar: 'É o segundo 116 00:08:53,057 --> 00:08:58,354 bloco do texto cifrado C igual ao valor que recebi em minha consulta CPA? Se 117 00:08:58,354 --> 00:09:03,843 então eu vou dizer que eu recebi a criptografia de M0, caso contrário eu vou dizer que eu recebi 118 00:09:03,843 --> 00:09:09,209 criptografia de M1. Então, realmente o seu teste é C1 onde ele se refere ao segundo bloco 119 00:09:09,209 --> 00:09:14,441 de C e C1 refere-se ao segundo bloco de C1 se os dois são iguais, ele diz zero, 120 00:09:14,441 --> 00:09:20,095 caso contrário, ele diz um deles. Assim, a vantagem desta adversário vai ser 1 e como um 121 00:09:20,095 --> 00:09:25,650 resultado, ele rompe completamente a segurança da CPU deste criptografia CBC. Então a lição aqui 122 00:09:25,650 --> 00:09:30,334 é, se o IV é previsível, então, na verdade, não há segurança CPA e 123 00:09:30,334 --> 00:09:35,621 , infelizmente, este é realmente um erro muito comum na prática. Em particular 124 00:09:35,621 --> 00:09:41,339 mesmo protocolo SSL e em TLS1.1 verifica-se que para número recorde IV I é de fato 125 00:09:41,339 --> 00:09:46,363 do bloco de texto última cifra recorde de I-1. Isso significa que exactamente dada 126 00:09:46,363 --> 00:09:51,579 a criptografia de disco I-1, o adversário sabe exatamente o que está acontecendo IV 127 00:09:51,579 --> 00:09:56,031 para ser usado como I. número recorde Muito recentemente apenas no verão passado esta era 128 00:09:56,031 --> 00:10:00,737 realmente convertido em um ataque devastador em SSL. Vamos descrever 129 00:10:00,737 --> 00:10:06,016 que um ataque falamos de SSL em mais detalhes, mas agora eu queria ter certeza de 130 00:10:06,016 --> 00:10:12,371 você entende quando você usa criptografia CBC é absolutamente crucial que o IV ser aleatória. 131 00:10:12,371 --> 00:10:16,372 Ok. Então agora eu vou te mostrar a versão nonce base de criptografia CBC 132 00:10:16,372 --> 00:10:21,443 Assim, neste modo, o IV é substituído pelo nonce aleatório, mas não único 133 00:10:26,509 --> 00:10:26,514 , por exemplo, o número 1,2,3,4,5. No entanto, se vai ser um contador de você 134 00:10:26,514 --> 00:10:32,046 precisa fazer mais um passo. Antes de realmente CBC criptografia e em especial que você tem 135 00:10:32,046 --> 00:10:37,380 para realmente criptografar as notas para se obter o IV que irá ser efectivamente utilizado para 136 00:10:37,380 --> 00:10:42,919 criptografia. As anotações para CBC é semelhante a um IV aleatória, a diferença é que o 137 00:10:42,919 --> 00:10:48,047 notas é primeiro codificado, e os resultados é que o IV é utilizado na CBC 138 00:10:48,047 --> 00:10:52,728 criptografia Agora a beleza deste modo é que a Nance não tem necessariamente de 139 00:10:52,728 --> 00:10:56,975 ser incluídos no texto codificado. Ele só precisa estar lá, se as suas incógnitas são 140 00:10:56,975 --> 00:11:01,116 decrypter, mas que se o decrypter acontece que já conhecem o valor do 141 00:11:01,116 --> 00:11:05,310 contra por outros meios, em seguida, na verdade, o texto cifrado é somente tão grande quanto o 142 00:11:05,310 --> 00:11:09,291 texto simples. Não há valor extra transmitida no texto cifrado. E, novamente, 143 00:11:09,291 --> 00:11:13,591 eu avisar que quando você está usando criptografia espaço não, é absolutamente crucial que 144 00:11:13,591 --> 00:11:17,679 a chave comum Nance de reposição só é usado para uma mensagem de forma para cada mensagem, 145 00:11:17,679 --> 00:11:22,028 ou Nance o que mudou ou a tecla mudou. Ok, então aqui enfatizar a 146 00:11:22,028 --> 00:11:26,499 fato de que você precisa fazer esse passo extra antes de criptografia usando o real 147 00:11:26,499 --> 00:11:31,088 Nance. Isso é erro muito comum que realmente esquecido na prática e 148 00:11:31,088 --> 00:11:35,795 exemplo, TLS, isso não foi feito e como resultado houve um ataque significativo 149 00:11:35,795 --> 00:11:40,282 contra criptografia CBC em TLS. Lembre-se da razão que isso é tão importante para 150 00:11:40,282 --> 00:11:44,950 sabem é que na verdade muitas APIs de criptografia são criados para quase deliberadamente enganar o 151 00:11:44,950 --> 00:11:49,451 usuário usando CBC incorretamente. Então, vamos olhar para ver como CBC implementado dentro de 152 00:11:49,451 --> 00:11:53,840 SSL aberta. Então aqui estão os argumentos da função. Basicamente este é o simples 153 00:11:53,840 --> 00:11:58,119 texto, este é o lugar onde o texto cifrado vai ficar gravado. Este é o 154 00:11:58,119 --> 00:12:02,760 comprimento do texto simples. Esta é uma, uma tecla Sim Finalmente, há um argumento de que aqui 155 00:12:02,760 --> 00:12:06,438 diz se você está crypting ou descriptografar. E o mais importante 156 00:12:06,438 --> 00:12:10,884 parâmetro que eu queria salientar aqui é o IV real e, infelizmente, o 157 00:12:10,884 --> 00:12:15,330 usuário é solicitado a fornecer este IV ea função usa o IV diretamente no CBC 158 00:12:15,330 --> 00:12:19,831 mecanismo de criptografia. Não encriptar a IV, antes de utilizá-lo e, como resultado, se 159 00:12:19,831 --> 00:12:24,332 você chamar essa função usando um IV não aleatório, o sistema de criptografia resultando 160 00:12:24,332 --> 00:12:28,816 não será CPA seguro. Ok, isso é muito importante saber que ao chamar 161 00:12:28,816 --> 00:12:33,960 funções como este. Criptografia SSL Cbc ou aberto ou fornecer um IV verdadeiramente aleatório 162 00:12:33,960 --> 00:12:38,836 ou se você deseja que o IV para ser um contador do que você tem para criptografar um contador usando AAS 163 00:12:38,836 --> 00:12:43,668 antes de realmente chamar um encrypt CBC e você tem que que você mesmo. Então, novamente, é 164 00:12:43,668 --> 00:12:48,340 muito importante que o programador sabe que precisa ser feito caso contrário, a CBC 165 00:12:48,340 --> 00:12:52,456 criptografia é inseguro. Um detalhe técnico última sobre CBC é o que fazer quando 166 00:12:52,456 --> 00:12:57,183 a mensagem não é um múltiplo do comprimento do bloco do bloco de codificação? Isso é o que fazemos 167 00:12:57,183 --> 00:13:01,689 se o bloco de mensagem último é mais curto do que o comprimento do bloco de AES, por exemplo? Assim 168 00:13:01,689 --> 00:13:06,281 o bloco de mensagem é passada menos de dezasseis bytes. E a resposta é se somarmos 169 00:13:06,281 --> 00:13:11,586 uma almofada para o último bloco de modo que se torna tão longo como dezasseis bytes, contanto que o AES 170 00:13:11,586 --> 00:13:16,633 tamanho do bloco. E esta almofada, é claro, se vai ser removido durante a criptografia. Assim 171 00:13:16,633 --> 00:13:21,873 aqui é um caminho típico, este é o caminho que é usado no TLS. Basicamente almofada um com 172 00:13:21,873 --> 00:13:26,919 N bytes, em seguida, essencialmente o que você faz é escrever o número N, N vezes. Assim, para 173 00:13:26,919 --> 00:13:32,036 exemplo, se você pad com cinco bytes, você almofada com a seqüência 555555. Então, cinco bytes 174 00:13:32,036 --> 00:13:37,175 onde cada byte é o valor cinco. E a principal coisa sobre este tapete é basicamente quando 175 00:13:37,175 --> 00:13:42,012 decrypter a receber a mensagem, o que ele faz é ele olha para o último byte de 176 00:13:42,012 --> 00:13:46,970 o último bloco. Então suponho que o valor é cinco, então, ele simplesmente elimina os últimos cinco 177 00:13:46,970 --> 00:13:51,818 bytes da mensagem. Agora a pergunta é o que vamos fazer se, de facto, a mensagem é um 178 00:13:51,818 --> 00:13:56,262 múltiplo de dezesseis bytes então de fato não pad é necessário? Se não o fizermos pad em tudo, 179 00:13:56,262 --> 00:14:00,476 bem que é um problema porque o decrypter vai olhar para o próprio 180 00:14:00,476 --> 00:14:05,267 último byte do último bloco que não faz parte da mensagem real e que ele vai 181 00:14:05,267 --> 00:14:10,000 para remover este número de bytes a partir do texto simples. De modo que, na verdade seria um problema. 182 00:14:10,000 --> 00:14:15,363 Então a solução é, se de fato não há almofada que é necessário, no entanto, ainda 183 00:14:15,363 --> 00:14:20,662 tem que adicionar um bloco de manequim. E uma vez que adicionar o bloco manequim este seria um bloco 184 00:14:20,662 --> 00:14:25,830 que é basicamente contém dezesseis bytes cada um contendo o número 16. 185 00:14:25,830 --> 00:14:30,042 Ok, então vamos adicionar blocos manequim essencialmente dezesseis. O decrypter, que quando ele é 186 00:14:30,042 --> 00:14:34,473 descriptografar, ele olha para o último byte do último bloco, ele vê que o valor é 187 00:14:34,473 --> 00:14:38,823 16, pois ele remove todo o bloco. E o que resta é a real 188 00:14:38,823 --> 00:14:42,975 texto simples. Então é um pouco lamentável que na verdade se você estiver criptografando curto 189 00:14:42,975 --> 00:14:47,019 mensagens com CBC e as mensagens que ser, digamos, 32 bytes, assim que são uma 190 00:14:47,019 --> 00:14:51,387 múltiplo de dezesseis bytes, então você tem que adicionar mais um bloco e fazer todos estes 191 00:14:51,387 --> 00:14:55,108 mensagens cifradas de 48 bytes apenas para acomodar o preenchimento CBC. Eu deveria 192 00:14:55,108 --> 00:14:59,584 menção há uma variante do chamado CBC CBC com texto cifrado roubar que realmente 193 00:14:59,584 --> 00:15:03,790 evita este problema, mas eu não vou descrever isso aqui. Se você está interessado 194 00:15:03,790 --> 00:15:07,907 você pode olhar que até online. Ok, então isso é o fim da nossa discussão do CBC 195 00:15:07,907 --> 00:15:12,198 e no segmento seguinte, verá como utilizar os modos de contador para criptografar múltipla 196 00:15:12,198 --> 00:15:13,720 mensagens utilizando uma única tecla.