0:00:00.000,0:00:04.669 Neste segmento veremos como usar cifras de bloco para criptografar mensagens múltiplas 0:00:04.669,0:00:08.959 usando a mesma chave. Isto vem para cima, na prática, por exemplo, em sistemas de ficheiros onde 0:00:08.959,0:00:13.412 chave o mesmo é usado para criptografar arquivos múltiplos. Ele vem em protocolos de rede 0:00:13.412,0:00:17.647 , onde a mesma chave é utilizada para criptografar vários pacotes. Então vamos ver como fazer 0:00:17.647,0:00:21.883 -lo. A primeira coisa que precisamos fazer é definir o que é significa para uma cifra de ser 0:00:21.883,0:00:26.185 seguro quando a mesma chave é usada para criptografar mensagens múltiplas. Quando usamos o 0:00:26.185,0:00:31.041 tecla mais uma vez o resultado disso é que o adversário começa a ver muitos cibernético 0:00:31.041,0:00:35.627 texto criptografado utilizando a mesma chave. Como resultado, quando se definir a segurança, estamos 0:00:35.627,0:00:40.512 vai permitir que o adversário para montar o que é chamado um ataque de texto escolhido simples. Em 0:00:40.512,0:00:45.522 outras palavras, o adversário pode obter a criptografia de mensagens arbitrárias de seu 0:00:45.522,0:00:49.710 escolha. Assim, por exemplo, se o adversário interagindo com Alice. O 0:00:49.710,0:00:53.924 adversário pode pedir a Alice para criptografar mensagens arbitrárias da do adversário 0:00:53.924,0:00:58.138 escolha. E Alice vai em frente e criptografar as mensagens e dar a 0:00:58.138,0:01:02.929 adversário dos textos cifrados resultantes. Você pode se perguntar por que Alice nunca fazer isso. 0:01:02.929,0:01:07.431 Como isso poderia acontecer na vida real? Mas acontece que este é realmente 0:01:07.431,0:01:11.760 muito comum na vida real. E, de fato, essa modelagem é bastante conservador 0:01:11.760,0:01:16.320 modelagem da vida real. Por exemplo, o adversário pode enviar um e-mail Alice. Quando 0:01:16.320,0:01:21.168 Alice recebe o e-mail, a grava-lo em seu disco criptografado, assim criptografar o 0:01:21.168,0:01:26.140 e-mail adversário usando sua chave secreta. Se mais tarde o adversário rouba este disco, em seguida, 0:01:26.140,0:01:31.280 ele obtém a criptografia de um e-mail que ele enviou Alice com chave secreta de Alice. Assim 0:01:31.280,0:01:36.298 que é um exemplo de um ataque de texto escolhido planície, onde o adversário desde Alice 0:01:36.298,0:01:41.075 com uma mensagem e ela criptografada que a mensagem usando sua própria chave. E depois 0:01:41.075,0:01:45.429 atacante foi capaz de obter o texto cifrado resultante. Então essa é a 0:01:45.429,0:01:49.661 poder do adversário. E então o objetivo do adversário é, basicamente, para quebrar 0:01:49.661,0:01:54.368 segurança semântica. Portanto, vamos definir isso com mais precisão. Como de costume, nós vamos 0:01:54.368,0:01:59.447 definir a segurança semântica em um ataque de texto simples escolhido através de dois experimentos, 0:01:59.447,0:02:04.717 nula experiência e experimentação, que são modeladas como um jogo entre um desafiante 0:02:04.717,0:02:09.669 e um adversário. Quando o jogo começa, o grande desafio é que vai escolher uma amostra aleatória 0:02:09.669,0:02:14.006 chave K. E agora o adversário basicamente começa a consultar o desafiante. Assim, o 0:02:14.006,0:02:18.198 adversário agora começa por enviar uma consulta de segurança semântico, ou seja, ele 0:02:18.198,0:02:22.804 envia duas mensagens, M zero e um M. Eu adicionei um outro índice, mas deixe-me ignorar 0:02:22.804,0:02:27.351 índice que extra por um tempo. Assim, o adversário apresenta duas mensagens, M zero e 0:02:27.351,0:02:31.780 M uma, que acontece ser do mesmo comprimento. E, em seguida, o adversário recebe 0:02:31.780,0:02:36.031 criptografia de uma dessas mensagens, quer de M zero ou de M uma. Em 0:02:36.031,0:02:40.224 experiência zero, ele recebe a criptografia de M zero. No primeiro experimento, 0:02:40.224,0:02:44.952 ele recebe a criptografia de um M. Então, até agora isso parece familiar este parece 0:02:44.952,0:02:49.477 exatamente como um padrão de segurança semântico [inaudível]. No entanto, o ataque de texto simples 0:02:49.477,0:02:54.007 adversário pode agora repetir esta consulta novamente. Então, agora você pode emitir uma consulta com 0:02:54.007,0:02:58.485 outros dois textos simples, de novo do mesmo comprimento, e, novamente, você receberia o 0:02:58.485,0:03:03.189 criptografia de um deles. No experimento zero, você receberia a criptografia de M 0:03:03.189,0:03:07.837 zero. No primeiro experimento você receberia a criptografia de um M. E o atacante 0:03:07.837,0:03:12.542 pode continuar a emitir consultas como este. Na verdade nós vamos dizer que ele pode emitir até Q 0:03:12.542,0:03:17.020 consultas deste tipo. E então, lembre-se, cada vez que ele emite um par de mensagens. 0:03:17.020,0:03:21.416 que venham a ser do mesmo comprimento e cada vez que ele ou obtém a encriptação 0:03:21.416,0:03:25.867 do lado esquerdo ou do lado direito novamente em zero experimento ele sempre terá o 0:03:25.867,0:03:29.727 criptografia da mensagem deixada no experimento que ele sempre terá o 0:03:29.727,0:03:33.970 encriptação da mensagem esquerda. E, então o objetivo do adversário é, basicamente, para descobrir 0:03:33.970,0:03:38.289 saber se ele está em zero experimental ou em experimentação. Em outras palavras, se 0:03:38.289,0:03:42.713 ele recebia constantemente a criptografia da mensagem a esquerda ou para a criptografia de 0:03:42.713,0:03:47.032 a mensagem certa. Então, em certo sentido, este é um jogo padrão de segurança de apenas semântica 0:03:47.032,0:03:51.193 iterada muitas consultas que o atacante pode emitir a adaptativamente uma após 0:03:51.193,0:03:56.014 o outro. Agora, o ataque de texto simples escolhido é capturado pelo facto de que, se o 0:03:56.014,0:04:00.646 atacante quer a criptografia de uma mensagem m particular. O que ele poderia fazer é, 0:04:00.646,0:04:05.234 por exemplo, usam J consulta para J soma, onde neste J consulta ele vai definir tanto o zero 0:04:05.234,0:04:09.593 mensagem ea mensagem de um ser a mesma mensagem exatamente M. Em outras palavras, 0:04:09.593,0:04:14.008 tanto a mensagem a esquerda e direita da mensagem são os mesmos, e ambos são definidos para 0:04:14.008,0:04:18.653 a mensagem M. Neste caso, o que irá receber, uma vez que ambas as mensagens são os mesmos, 0:04:18.653,0:04:23.126 ele sabe que vai receber a criptografia desta mensagem M que ele era 0:04:23.126,0:04:27.600 interessados polegadas Então este é exatamente o que significa um ataque escolhido [inaudível]. 0:04:27.600,0:04:32.598 Quando a consultoria pode enviar uma mensagem m e receber a criptografia de que 0:04:32.598,0:04:37.429 m mensagem especial de sua escolha. Então algumas de suas consultas podem ser deste escolheu 0:04:37.429,0:04:42.157 sabor texto simples onde a mensagem do lado esquerdo é igual à mensagem do lado direito, 0:04:42.157,0:04:46.775 , mas algumas das consultas pode ser padrão de segurança consultas semânticas onde as duas 0:04:46.775,0:04:51.281 mensagens são distintas e que realmente lhe dá informações sobre se ele está em 0:04:51.281,0:04:55.453 experiência zero ou em um experimento. Agora, agora você deve ser usado para este 0:04:55.453,0:05:00.182 definição, sempre que dizemos que o sistema é semanticamente seguro sob uma planície escolhida 0:05:00.182,0:05:04.141 ataque texto. Se, por todos os adversários eficientes, eles não conseguem distinguir 0:05:04.141,0:05:08.703 nula experiência de um experimento. Em outras palavras, a probabilidade de que, no 0:05:08.703,0:05:13.091 final, a saída, B Prime, que vamos denotar por a saída do experimento 0:05:13.091,0:05:17.769 B. Esta saída será o mesmo se nula experiência [inaudível] ou experiência 0:05:17.769,0:05:22.310 um. Assim, o invasor não podia distinguir entre sempre recebendo criptografias de 0:05:22.310,0:05:26.900 as mensagens deixadas, versus sempre recebendo criptografias das mensagens certas. Assim, em 0:05:26.900,0:05:31.267 sua mente, eu gostaria que você esteja pensando em um adversário que é capaz de montar um 0:05:31.267,0:05:35.745 escolhido ataque de texto simples, ou seja, ser dada a criptografia de mensagens arbitrárias de 0:05:35.745,0:05:40.168 escolha sua, e seu objetivo é quebrar a segurança semântica por algum outro desafio 0:05:40.168,0:05:44.330 textos cifrados. E como eu disse neste modelo [inaudível] do mundo real do 0:05:44.330,0:05:48.721 atacante é capaz de enganar Alice em criptografar mensagens para ele de sua escolha 0:05:48.721,0:05:53.287 e, em seguida, o objetivo do atacante é de alguma forma, quebrar algum texto cypher desafio. Então, eu 0:05:53.287,0:05:58.173 alegação de que todas as cifras que temos visto até agora balcão, ou seja determinista 0:05:58.173,0:06:02.541 modo ou o teclado de uma vez, sentem-se inseguros em um ataque de texto escolhido simples. Mais 0:06:02.541,0:06:07.312 geralmente, suponha que temos um esquema de criptografia que sempre gera a mesma cifra 0:06:07.312,0:06:11.968 texto para um M. mensagem particular Em outras palavras, se eu pedir o esquema de criptografia para 0:06:11.968,0:06:16.188 criptografar a mensagem M uma vez. E então eu pergunto o esquema de criptografia para criptografar o 0:06:16.188,0:06:21.183 m mensagem novamente. Se em ambos os casos, o esquema de criptografia gera a cifra mesmo 0:06:21.183,0:06:26.550 texto, então esse sistema não pode estar seguro em um ataque de texto escolhido simples. 0:06:26.550,0:06:31.281 E ambos modo determinista contador ea almofada tempo um eram de que o sabor. Eles 0:06:31.281,0:06:35.923 sempre imprimir o mesmo texto cifrado, recebeu a mesma mensagem. E assim vamos ver por que 0:06:35.923,0:06:41.143 que não pode ser escolhido de texto simples seguro. E o ataque é bastante simples, o que o 0:06:41.143,0:06:46.300 atacante vai fazer, é que ele vai produzir a mesma mensagem duas vezes. Este apenas diz. 0:06:46.300,0:06:51.233 que ele realmente quer a criptografia de M0. Então aqui o atacante é dada C0 que é 0:06:51.233,0:06:55.872 criptografia de M0. Então esta foi a sua consulta de texto escolhido planície onde ele realmente 0:06:55.872,0:07:00.805 recebeu a criptografia do M0 mensagem de sua escolha. E agora ele vai quebrar 0:07:00.805,0:07:05.445 segurança semântica. Então o que ele faz é que ele gera duas mensagens, M0 e M1 do 0:07:05.445,0:07:10.084 mesmo comprimento, e ele vai ser dada a criptografia de MB. Mas baixa e eis que, 0:07:10.084,0:07:15.850 dissemos que o sistema de criptografia. Sempre envia o texto cifrado mesmo quando o seu 0:07:15.850,0:07:21.539 criptografar a mensagem, M0. Portanto, se B é = a zero, sabemos que C, esta 0:07:21.539,0:07:27.310 desafiou texto cifrado, é simplesmente a = CO, porque é a criptografia de M0. 0:07:27.310,0:07:32.409 No entanto, se B é = a um. Então sabemos que este texto cypher desafio é a 0:07:32.409,0:07:38.048 criptografia de M1, que é algo diferente de zero para todos os C o atacante não é ele 0:07:38.048,0:07:43.441 apenas verifica a sua C é = a zero a saída do C0, em outras palavras, ele gera um. Assim, em 0:07:43.441,0:07:47.722 Neste caso, o atacante é perfeitamente capaz de adivinhar esta B bit, então ele sabe 0:07:47.722,0:07:52.412 exatamente [inaudível], dada a criptografia de M0, ou a criptografia de M1. E como um 0:07:52.412,0:07:57.103 resultado, a sua vantagem em ganhar este jogo é um deles. O que significa que o sistema não pode 0:07:57.103,0:08:01.491 possivelmente ser CPA seguro. Um não é um número insignificante. Então isso mostra que o 0:08:01.491,0:08:05.582 esquemas de criptografia determinísticos não pode ser CPA-seguro, mas você pode 0:08:05.582,0:08:09.345 maravilha bem, o que isso significa na prática? Bem, na prática, isso significa 0:08:09.345,0:08:13.111 novamente que cada mensagem é sempre criptografado para o mesmo texto cifrado. O que 0:08:13.111,0:08:17.234 isto significa é que se você está a criptografia de arquivos no disco, e acontecer de você ser criptografar 0:08:17.234,0:08:21.407 dois ficheiros que acontece ser o mesmo, que irá resultar em o mesmo texto cifrado e 0:08:21.407,0:08:25.327 , em seguida, o atacante, olhando para o disco criptografado, vai aprender que estes dois 0:08:25.327,0:08:29.297 arquivos realmente conter o mesmo conteúdo. O atacante pode não saber o que o 0:08:29.297,0:08:33.419 conteúdo é, mas ele vai aprender que esses dois arquivos criptografados são uma criptografia de 0:08:33.419,0:08:37.524 , o mesmo conteúdo e não deve ser capaz de aprender isso. Da mesma forma, se você enviar dois 0:08:37.524,0:08:41.287 pacotes cifrados na rede que acontecem para ser o mesmo, o atacante vai 0:08:41.287,0:08:45.146 não saber o conteúdo desses pacotes, mas ele vai aprender que os dois pacotes 0:08:45.146,0:08:49.301 realmente conter a mesma informação. Pense, por exemplo de uma voz criptografada 0:08:49.301,0:08:53.769 conversa. Cada vez há calma sobre a linha, o sistema estará enviando 0:08:53.769,0:08:58.072 criptografias de zero. Mas desde que a encriptação de zero são sempre mapeado para o mesmo 0:08:58.072,0:09:02.334 texto cifrado. Um atacante olhando para a rede será capaz de identificar exatamente 0:09:02.334,0:09:06.489 os pontos da conversa onde não há calma, porque ele sempre vai ver 0:09:06.489,0:09:11.113 aqueles texto cifra exata mesma o tempo todo. Então esses são exemplos onde determinista 0:09:11.113,0:09:15.492 criptografia não pode ser seguro. E como eu disse anteriormente, dizemos que o 0:09:15.492,0:09:19.800 criptografia determinística não pode ser semanticamente seguro sob uma planície escolhida 0:09:19.800,0:09:24.743 ataque texto. Então o que fazemos, bem a lição aqui é se as chaves secretas vai ser 0:09:24.743,0:09:29.674 usada para criptografar mensagens múltiplas, é melhor que seja o caso que, dado o mesmo 0:09:29.674,0:09:33.572 texto simples para criptografar duas vezes. O algoritmo de criptografia deve produzir 0:09:33.572,0:09:38.147 diferentes textos cifrados. E então há duas maneiras de fazer isso. O primeiro método é 0:09:38.147,0:09:42.836 que é chamado de encriptação aleatória. Aqui, o algoritmo de encriptação si vai 0:09:42.836,0:09:47.296 para escolher alguns seqüência aleatória durante o processo de criptografia e vai 0:09:47.296,0:09:51.642 criptografar a mensagem M utilizando essa seqüência aleatória. Então o que isto significa é que um 0:09:51.642,0:09:56.389 mensagem particular, M0 por exemplo, não está indo só para ser mapeado para um texto cifrado 0:09:56.389,0:10:00.894 , mas vai ser mapeado para uma bola toda de textos cifrados. Whereon cada 0:10:00.894,0:10:06.692 criptografia, basicamente, mostramos um ponto nesta bola. Então, toda vez que criptografar, o 0:10:06.692,0:10:11.292 algoritmo de criptografia escolhe uma seqüência aleatória, e que leva a seqüência aleatória 0:10:11.292,0:10:15.832 um ponto nesta bola. Claro que, o algoritmo de descodificação, quando ela toma qualquer 0:10:15.832,0:10:20.610 ponto nesta bola, sempre vai mapear o resultado para M zero. Do mesmo modo texto cifrado M 0:10:20.610,0:10:25.449 um será mapeado para uma bola, e cada vez que criptografar M um, nós basicamente de saída 0:10:25.449,0:10:29.690 um ponto nesta bola. E estas bolas tem que ser separado, de modo que o 0:10:29.690,0:10:34.469 algoritmo de encriptação, quando se obtém um ponto em que a bola correspondente a M uma, 0:10:34.469,0:10:38.964 será sempre saída a mensagem M uma. Deste modo, uma vez que o algoritmo de encriptação 0:10:38.964,0:10:43.266 usa aleatoriedade, se cifrar a mesma mensagem duas vezes, com alta probabilidade de que vai 0:10:43.266,0:10:47.144 obter textos cifrados diferentes. Infelizmente, isto significa que o texto cifrado 0:10:47.144,0:10:51.393 necessariamente tem que ser maior que o texto simples, porque de alguma forma a aleatoriedade 0:10:51.393,0:10:55.855 que foi usado para gerar o texto cifrado está agora codificado de algum modo no texto cifra. 0:10:55.855,0:11:00.158 Assim, o texto cifrado tem mais espaço. E a grosso modo, o tamanho do texto cifrado é 0:11:00.158,0:11:04.620 vai ser maior do que o texto simples. Por basicamente o número de bits aleatórios que 0:11:04.620,0:11:08.748 foram utilizados durante a criptografia. Então, se os textos simples são muito grandes, se a planície 0:11:08.748,0:11:13.203 textos são gigabytes longo, o número de bits aleatórios vai ser da ordem de 0:11:13.203,0:11:17.494 128. Então, talvez este espaço extra realmente não importa. Mas se os textos são simples 0:11:17.494,0:11:21.786 muito curto, talvez eles próprios são 128 bits, em seguida, adicionar um extra de 128 bits para 0:11:21.786,0:11:26.240 texto a cada cifra vai dobrar o tamanho do texto total de cifra. E que poderia ser 0:11:26.240,0:11:31.117 bastante caro. Então, como eu digo criptografia randomizado é uma solução bem, mas em alguns 0:11:31.117,0:11:35.862 casos que realmente introduz um pouco de custos. Então, vamos olhar para um exemplo simples. 0:11:35.862,0:11:41.107 Então, imagine que temos uma função pseudo-aleatório que leva insumos em um certo 0:11:41.107,0:11:46.223 r espaço que vai ser chamado de um espaço de uso único. E saídas, saídas na mensagem 0:11:46.223,0:11:50.636 espaço. E, agora, vamos definir o esquema de criptografia seguinte randomize 0:11:50.636,0:11:55.880 onde queremos para criptografar a mensagem m com a criptografia de tudo o que vai 0:11:55.880,0:12:01.149 não é o primeiro que vai gerar um r aleatório neste espaço nonce R. E então ele vai 0:12:01.149,0:12:06.232 para abrir um texto cypher que consistem em dois componentes, o primeiro componente vai 0:12:06.232,0:12:10.943 ser este valor R eo segundo componente vai ser uma avaliação de 0:12:10.943,0:12:16.180 função pseudo-aleatória no ponto R XOR com a mensagem M. E a minha pergunta para 0:12:16.180,0:12:21.397 você é, isso é o sistema de criptografia semanticamente seguro sob uma planície escolhida 0:12:21.397,0:12:26.290 ataque texto. Portanto, a resposta correta é sim. Mas só se o espaço R nonce é grande 0:12:26.290,0:12:31.249 o suficiente para que nunca se repete com R pouca probabilidade muito, muito alto. E vamos 0:12:31.249,0:12:36.332 rapidamente argumentar por que isso é verdade. Então, em primeiro lugar, porque F é um seguro pseudo-aleatório 0:12:36.332,0:12:41.352 função, podemos muito bem substituí-lo com uma função verdadeiramente aleatório. Em outras palavras, 0:12:41.352,0:12:46.373 este é indistinguível da de caso em que encriptar a mensagem M, usando o 0:12:46.373,0:12:51.252 função F verdadeiramente aleatório pouco, avaliados para apontar R e, em seguida XOR com M. 0:12:51.252,0:12:57.320 Mas desde que isso nunca r pouco se repete a cada texto cifra usa um pouco diferente do que r 0:12:57.320,0:13:03.095 isto significa é que os valores de F (r) são aleatórias uniformes cordas independentes 0:13:03.095,0:13:08.818 o tempo todo. Então, toda vez que criptografar uma mensagem, criptografá-lo essencialmente usando um 0:13:08.818,0:13:14.369 novo time pad aleatório uniforme um. E desde XORing uma seqüência uniforme com qualquer seqüência 0:13:14.369,0:13:19.666 simplesmente gera uma nova seqüência de uniforme, o texto cifrado resultante é distribuído como 0:13:19.666,0:13:24.767 apenas duas cordas aleatórias uniformes. Vou chamá-los de r e r principal. E assim, tanto em 0:13:24.767,0:13:30.325 experiência zero e no experimento um, tudo o atacante consegue ver são verdadeiramente uniforme 0:13:30.325,0:13:35.622 seqüências aleatórias r, r ', e uma vez que em ambos os experimentos o atacante está vendo o mesmo 0:13:35.622,0:13:40.666 distribuição, ele não consegue distinguir as duas distribuições. E assim como a segurança 0:13:40.666,0:13:45.695 mantém completamente quando estamos usando uma função verdadeiramente aleatório é também vou segurar quando 0:13:45.695,0:13:50.559 estamos usando uma função pseudo-aleatório. Ok, então este é um bom exemplo de como usar 0:13:50.559,0:13:55.435 o facto de a função pseudo aleatória se comporta como uma função aleatória para argumentar 0:13:55.435,0:13:59.829 segurança deste esquema de criptografia particular. Ok, então agora temos um bom 0:13:59.829,0:14:04.465 exemplo de encriptação aleatória. A outra abordagem para a construção de planície escolhida 0:14:04.465,0:14:09.344 texto esquemas de criptografia seguras é o que é chamado de criptografia baseada em nonce. Agora, em 0:14:09.344,0:14:14.012 um sistema de criptografia não-espaço, o algoritmo de criptografia realmente leva três 0:14:14.012,0:14:19.044 entradas invés de dois. Como é habitual que leva a chave ea mensagem. Mas ele também tem 0:14:19.044,0:14:23.773 introduzir um adicional chamado nonce. E da mesma forma, a descriptografia algoritmo também 0:14:23.773,0:14:28.683 leva o nonce como entrada, e então produz o texto resultante descriptografado simples. E 0:14:28.683,0:14:33.529 o que é esse valor nonce n. Este nonce é um valor público. Ela não precisa de ser 0:14:33.529,0:14:38.402 escondida do adversário mas o único requisito é que o par (k, n) 0:14:38.402,0:14:43.213 só é usada para criptografar uma mensagem única. Em outras palavras, este par (k, n) 0:14:43.213,0:14:48.148 deve mudar de mensagem para mensagem. E há duas maneiras de mudar isso. Uma forma 0:14:48.148,0:14:53.144 para mudá-la é escolher uma nova chave aleatória para cada mensagem. Ea outra maneira 0:14:53.144,0:14:58.276 é continuar usando a mesma chave o tempo todo, mas depois temos de escolher um novo para nonce 0:14:58.276,0:15:02.721 mensagem cada. E, e como eu disse, eu quero enfatizar novamente, desta nonce não precisa 0:15:02.721,0:15:06.823 ser secreta, e não precisa ser aleatória. O único requisito é o uso único é único. 0:15:06.823,0:15:11.029 E, de fato, vamos usar este termo ao longo do curso. A nonce 0:15:11.029,0:15:15.247 para nós, significa um valor único que não se repete. Ele não tem que ser aleatória. Assim 0:15:15.247,0:15:19.891 vamos olhar alguns exemplos de escolher um nonce, assim, a opção mais simples é 0:15:19.891,0:15:24.255 simplesmente para tornar o nonce do accounter assim, por exemplo a criação de redes 0:15:24.255,0:15:28.898 protocolo que você pode imaginar o nonce ser um contador de pacotes que é incrementado 0:15:28.898,0:15:33.598 cada vez que um pacote é enviado por um remetente ou recebidos pelo receptor, isto significa que 0:15:33.598,0:15:37.962 encriptador tem para manter o estado de mensagem para mensagem, principalmente, que ele tem que 0:15:37.962,0:15:42.270 manter esse contador volta e incrementá-lo depois de cada mensagem é transmitida. 0:15:42.270,0:15:47.487 Curiosamente, se o decrypter na verdade, tem o mesmo estado, então não há necessidade 0:15:47.487,0:15:52.705 para incluir a nuance no texto cifrado desde a nuance está implícita. Vamos dar uma olhada 0:15:52.705,0:15:57.987 um exemplo. O protocolo https é executado ao longo de um mecanismo de transporte confiável que 0:15:57.987,0:16:03.075 significa que os pacotes enviados pelo remetente são assumidos para ser recebida, de modo a uma 0:16:03.075,0:16:07.645 destinatário. Então, se o remetente envia pacote # 5 e # 6, então o pacote, o destinatário 0:16:07.645,0:16:12.068 irá receber pacote # 5 e, em seguida pacote # 6, nessa ordem. Este 0:16:12.068,0:16:16.215 significa que se o remetente mantém um contador de pacotes, o destinatário pode também 0:16:16.215,0:16:20.860 manter um contador de pacotes e dois contadores basicamente incrementar em sincronia. Neste caso 0:16:20.860,0:16:24.896 não há nenhuma razão para incluir o uso único em que os pacotes porque o 0:16:24.896,0:16:29.476 nonce é implícita entre os dois lados. No entanto, em protocolos de outros, por 0:16:29.476,0:16:34.600 exemplo, em IPsec, tem um protocolo IPsec projetada para criptografar a camada IP. O IP 0:16:34.600,0:16:39.330 camada não garante a entrega dos pedidos. E assim, o remetente pode enviar 0:16:39.330,0:16:44.520 pacote # 5 e # 6, então o pacote, mas aqueles que serão recebidos na ordem inversa em 0:16:44.520,0:16:49.164 o destinatário. Neste caso ainda é bom usar um contador de pacotes como um nonce 0:16:49.164,0:16:53.748 mas agora a nonce tem de ser incluído no pacote de modo a que o receptor sabe 0:16:53.748,0:16:58.102 que nonce para usar para desencriptar o pacote recebido. Então, como eu digo, com base nonce 0:16:58.102,0:17:02.686 criptografia é uma maneira muito eficiente para atingir CPA segurança. Em particular, se o 0:17:02.686,0:17:07.098 nonce é implícita, não mesmo aumentar o comprimento do texto cifrado. Claro 0:17:07.098,0:17:11.796 outro método para gerar um único nonce é simplesmente escolher o nonce aleatoriamente 0:17:11.796,0:17:16.495 assumindo que o espaço nonce é suficientemente grande para que, com grande probabilidade de o 0:17:16.495,0:17:21.579 nonce nunca será repetido para a vida da chave. Agora, neste caso, nonce 0:17:21.579,0:17:26.098 criptografia baseada simplesmente reduz a encriptação aleatória. No entanto, o 0:17:26.098,0:17:31.600 vantagem aqui é que o remetente não precisa manter todo o estado de mensagem para 0:17:31.600,0:17:36.382 mensagem. Então isso é muito útil, por exemplo se a criptografia acontece a tomar 0:17:36.382,0:17:41.425 lugar em vários dispositivos. Por exemplo, eu poderia ter um laptop e um inteligente 0:17:41.425,0:17:46.096 telefone. Eles podem tanto usar a mesma chave. Mas neste caso, se eu preciso de estado completo 0:17:46.097,0:17:49.961 criptografia, então meu laptop eo smartphone teria que coordenar a 0:17:49.961,0:17:54.302 certifique-se que eles nunca reutilizar os nonces mesmos. Considerando que, se os dois simplesmente tomar 0:17:54.302,0:17:58.114 nonces ao acaso, eles não precisam de coordenar porque era muito elevada 0:17:58.114,0:18:02.243 probabilidade eles simplesmente nunca escolher o nonce mesmo. Novamente assumindo que o nonce 0:18:02.243,0:18:06.478 espaço é grande o suficiente. Então, existem alguns casos onde a criptografia apátrida é bastante 0:18:06.478,0:18:10.562 importante, nomeadamente quando a mesma chave é utilizada por várias máquinas. Então, eu 0:18:10.562,0:18:14.492 queria encontrar, mais precisamente, o que significa segurança para nonce base 0:18:14.492,0:18:18.694 criptografia. E, em particular, quero enfatizar que o sistema deve permanecer 0:18:18.694,0:18:23.122 seguro quando o nonce são escolhidos pelo adversário. A razão é importante 0:18:23.122,0:18:27.027 para permitir que o adversário para escolher os nonces é porque o adversário pode 0:18:27.027,0:18:31.090 escolher qual texto cifrado ele quer atacar. Então, imagine o nonce acontece 0:18:31.090,0:18:35.364 ser um contador e acontece que, quando o couter atinge o valor 15, talvez 0:18:35.364,0:18:39.428 nesse ponto é fácil para o adversário para quebrar a segurança semântica. Assim, o 0:18:39.428,0:18:43.702 adversário vai esperar até o décimo quinto pacote é enviado e só então ele vai pedir 0:18:43.702,0:18:48.076 para quebrar a segurança semântica. Então, quando falamos de criptografia baseada em nonce, nós 0:18:48.076,0:18:52.806 geralmente permitem que o adversário para escolher o nonce eo sistema deve permanecer 0:18:52.806,0:18:57.772 garantir, mesmo sob essas configurações. Portanto, vamos definir o jogo CPA neste caso e é 0:18:57.772,0:19:02.442 realmente muito parecido com o jogo antes. Basicamente, o atacante começa a apresentar 0:19:02.442,0:19:06.935 pares de mensagens IM, MI0, e MI1. Obviamente que ambos têm de ser do mesmo 0:19:06.935,0:19:11.576 comprimento. E ele começa a fornecer o nonce. E em resposta, o adversário é dada 0:19:11.576,0:19:16.304 a criptografia de qualquer MI0, ou MI1. Mas usando o nonce que o adversário 0:19:16.304,0:19:20.740 escolheu. E, claro, como de costume, o objetivo do adversário é para dizer se ele era 0:19:20.740,0:19:25.096 dada a criptografia do texto simples esquerda ou direita o texto sem formatação. E como 0:19:25.096,0:19:29.464 antes de o adversário começa a repetir essas consultas e ele pode emitir tantas, como muitos 0:19:29.464,0:19:33.610 consultas como ele quer, nós normalmente vamos q denotar o número de consultas que o 0:19:33.610,0:19:37.956 questões adversário. Agora, a única restrição de curso, que é crucial, é que 0:19:37.956,0:19:42.329 embora o adversário começa a escolher os nonces, ele está restrito a escolher 0:19:42.329,0:19:46.758 nonces distintas. A razão por que obrigá-lo a escolher nonces distintos é porque 0:19:46.758,0:19:50.959 essa é a exigência na prática. Mesmo que os tolos adversário Alice em 0:19:50.959,0:19:55.161 criptografar várias mensagens para ele, Alice nunca vai usar o mesmo nonce 0:19:55.161,0:19:59.477 novamente. Como resultado, o adversário nunca verá mensagens criptografadas usando o 0:19:59.477,0:20:03.678 nonce mesma e, portanto, mesmo no jogo, é necessário que todos nonce ser 0:20:03.678,0:20:08.305 distinta. E então, como sempre dizemos que o sistema é uma criptografia baseada em nonce 0:20:08.305,0:20:13.412 sistema que é, semanticamente seguro sob um ataque de texto simples escolhido se o adversário 0:20:13.421,0:20:17.890 não consegue distinguir de zero experimento onde ele deu criptografias de esquerda 0:20:17.890,0:20:22.593 mensagens de um experimento onde ele deu criptografias das mensagens certas. 0:20:22.593,0:20:27.121 Então, vamos olhar um exemplo de um sistema de criptografia baseado em nonce. Como antes, nós 0:20:27.121,0:20:32.119 ter um seguro que leva PRF entradas no espaço R nonce e cordas saídas no 0:20:32.119,0:20:36.823 mensagem espaço M. Agora, quando uma nova chave é escolhido, vamos redefinir o nosso contador de R 0:20:36.823,0:20:41.006 para ser zero. E agora vamos criptografar a mensagem M particular, o que vamos fazer é 0:20:41.006,0:20:45.103 vamos incrementar o nosso contador de R, e depois criptografar a mensagem M utilizando o 0:20:45.103,0:20:49.481 função pseudo aplicada a este valor R. E, como antes, o texto cifra é 0:20:49.481,0:20:53.859 vai conter dois componentes, o nosso valor actual do contador e, em seguida, os 0:20:53.859,0:20:58.518 uma criptografia pad hora da mensagem M. E por isso a minha pergunta é se este 0:20:58.518,0:21:03.312 é um sistema seguro de criptografia não-espaço. Portanto, a resposta é sim, como antes, mas apenas 0:21:03.312,0:21:08.485 se o espaço a nuance é grande o suficiente. Assim como incrementar a R balcão, nunca será 0:21:08.485,0:21:13.284 ciclo volta a zero de modo que as nuances sempre, sempre ser único. Argumentamos 0:21:13.284,0:21:18.020 segurança da mesma maneira como antes. Porque a PRF é segura, sabemos que este 0:21:18.020,0:21:22.819 sistema de criptografia é indistinguível de usar uma função verdadeiramente aleatório. Em 0:21:22.819,0:21:27.493 outras palavras, se aplicarmos uma função verdadeiramente aleatório para o balcão e XOR a 0:21:27.493,0:21:32.602 resultados com texto simples, o M. Mas agora desde o R nuance nunca se repete, a cada 0:21:32.602,0:21:37.447 hora de calcular essa F de R, nós conseguiremos um uniforme verdadeiramente aleatório e independente 0:21:37.447,0:21:42.843 corda de modo que nós estamos realmente criptografar todas as mensagens usando o teclado de uma vez. E 0:21:42.843,0:21:48.306 como resultado, todos o adversário começa a ver em ambos os experimentos são basicamente um 0:21:48.306,0:21:52.751 par de seqüências aleatórias. Assim, ambos zero do experimento e experiência de um a 0:21:52.751,0:21:57.408 adversário se é para ver exatamente a mesma distribuição, ou seja, as respostas a todos 0:21:57.408,0:22:02.064 este escolhidos consultas de texto simples são apenas pares de cordas que são apenas uniformemente 0:22:02.064,0:22:06.950 distribuído e isso é basicamente o mesmo em zero experimentar e experimentar um e, 0:22:06.950,0:22:11.664 , portanto, o atacante não consegue distinguir os dois experimentos. E desde que ele não pode 0:22:11.664,0:22:16.206 ganhar o jogo semântico de segurança com uma função verdadeiramente aleatório que ele, também, não pode ganhar 0:22:16.206,0:22:20.517 o jogo de segurança semântica com a PRF seguro, e, por conseguinte, o sistema é 0:22:20.517,0:22:25.222 seguro. Portanto, agora entendemos o que significa para um sistema simétrico para ser seguro quando 0:22:25.222,0:22:30.091 as chaves usadas para criptografar mensagens múltiplas a exigência é que seja seguro e sob 0:22:30.091,0:22:34.777 um plano de ataque escolhida. E nós dissemos que, basicamente, a única maneira de ser seguro em 0:22:34.777,0:22:39.289 um ataque de texto simples ou é escolhido para usar a criptografia randomizado, ou de usar, usar 0:22:39.289,0:22:43.462 criptografia nonce espaço onde nunca o nonce repete. E em seguida, na 0:22:43.462,0:22:48.143 próximos dois segmentos, nós vamos construir dois sistemas de criptografia clássicos que são seguros 0:22:48.143,0:22:50.174 quando a chave é usada várias vezes.