1 00:00:00,000 --> 00:00:04,069 Neste segmento, nós vamos olhar para o protocolo Diffie-Hellman, que é nosso 2 00:00:04,069 --> 00:00:08,234 mecanismo primeira troca prático chave. Então deixe-me lembrá-lo das configurações. Nosso 3 00:00:08,234 --> 00:00:12,442 amigos aqui, Alice e Bob, nunca se encontraram e ainda eles querem uma troca compartilhada 4 00:00:12,442 --> 00:00:16,445 chave secreta que eles podem então usar para comunicar de forma segura com o outro. 5 00:00:16,445 --> 00:00:20,088 Nesse segmento e no próximo, estamos só vai estar a olhar para escutas 6 00:00:20,088 --> 00:00:23,937 segurança. Em outras palavras, estamos preocupados apenas com os bisbilhoteiros. Os atacantes são 7 00:00:23,937 --> 00:00:27,992 na verdade, não permitiu a mexer com os dados na rede. Eles não estão autorizados a 8 00:00:27,992 --> 00:00:32,046 injetar pacotes. Eles não estão autorizados a mudar os pacotes de forma alguma. Tudo o que fazem é 9 00:00:32,046 --> 00:00:36,336 apenas para espionar o tráfego. E no final do protocolo, a troca da chave 10 00:00:36,336 --> 00:00:40,880 protocolo nossos amigos Alice e Bob deve ter uma chave secreta compartilhada, mas o atacante 11 00:00:40,880 --> 00:00:45,031 ou seja, o intruso não tem idéia do que essa chave que vai ser. No anterior 12 00:00:45,031 --> 00:00:49,343 segmento olhamos para um segmento-chave chamados puzzles Merkle. Isso é apenas usando bloco 13 00:00:49,343 --> 00:00:53,708 cifras ou funções de hash. E mostrei-lhe que há que, basicamente, o atacante 14 00:00:53,708 --> 00:00:57,487 tem uma diferença de quadrática em comparação com os participantes. Em outras palavras, se o 15 00:00:57,487 --> 00:01:01,799 participantes passou um tempo proporcional a N o atacante pode quebrar o protocolo em 16 00:01:01,799 --> 00:01:06,163 tempo proporcional a N quadrado. E, como resultado desse protocolo é inseguro para ser 17 00:01:06,163 --> 00:01:10,369 considerado prático. Neste segmento nós vamos perguntar se podemos fazer o 18 00:01:10,369 --> 00:01:14,733 mesma coisa, mas agora gostaríamos de alcançar uma lacuna entre o exponencial do atacante 19 00:01:14,733 --> 00:01:19,051 trabalho acabou no trabalho do participante. Em outras palavras, Alice e Bob pode fazer 20 00:01:19,051 --> 00:01:23,602 trabalho proporcional a N, mas para quebrar o protocolo que o atacante vai ter que fazer 21 00:01:23,602 --> 00:01:27,876 trabalho proporcional a alguma exponencial em N. Então agora há uma lacuna exponencial 22 00:01:27,876 --> 00:01:32,702 entre o trabalho participantes eo trabalho do atacante. Então, como eu disse no 23 00:01:32,702 --> 00:01:37,985 segmento anterior não podemos alcançar esta lacuna exponencial a partir de cifras do blog como AES 24 00:01:37,985 --> 00:01:43,143 ou SHA-256. Temos que usar os problemas difíceis que têm mais estrutura do que apenas aqueles 25 00:01:43,143 --> 00:01:48,714 primitivas simétricas. E assim, em vez o que vamos fazer é usar um pouco de álgebra. 26 00:01:48,714 --> 00:01:51,600 Nesse segmento eu vou descrever o protocolo Diffie-Hellman muito 27 00:01:51,600 --> 00:01:55,769 concreta e um pouco informal. Quando nós vamos voltar a Diffie-Hellman na próxima semana 28 00:01:55,769 --> 00:02:00,090 e nós vamos descrever o protocolo de forma mais abstrata e nós vamos fazer um mais muito 29 00:02:00,090 --> 00:02:04,198 análise de segurança rigoroso do presente protocolo. Ok, então como é Diffie-Hellman 30 00:02:04,198 --> 00:02:08,173 trabalho? O que vamos fazer é, em primeiro lugar, nós vamos corrigir alguns principal grande 31 00:02:08,334 --> 00:02:12,684 que eu vou chamar p. Na verdade p eu costumo usar para designar primos. E você 32 00:02:12,684 --> 00:02:16,820 deve estar pensando de primos realmente gigantescas. Como, primos que são compostas de 33 00:02:16,820 --> 00:02:21,009 600 dígitos são assim. E apenas para aqueles de vocês que gostam de pensar em binário, a 600 34 00:02:21,009 --> 00:02:25,413 primeiro dígito corresponde aproximadamente a cerca de 2000 bits. Então, basta escrever o primeiro 35 00:02:25,413 --> 00:02:29,932 leva cerca de dois bits quilo de dados. E então nós estamos também vai corrigir um inteiro g 36 00:02:29,932 --> 00:02:35,067 que acontece a viver na faixa de um a p. Assim, estes valores p e g são parâmetros 37 00:02:35,067 --> 00:02:40,014 do protocolo Diffie-Hellman. Eles são escolhidos uma vez e eles estão fixados para sempre. Agora 38 00:02:40,014 --> 00:02:45,087 protocolo funciona da seguinte forma. Então aqui está o nosso amigos Alice e Bob. Então, o que Alice 39 00:02:45,087 --> 00:02:50,347 vai fazer é ela vai começa por escolher um número aleatório um na faixa de 1 a p-1 40 00:02:50,347 --> 00:02:55,420 E então ela vai calcular o g número à potência de um modulo p. 41 00:02:55,420 --> 00:02:59,802 Ok, então ela calcula este exponention, e reduz o resultado modular o primo p. 42 00:02:59,802 --> 00:03:04,407 E nós estamos realmente indo para ver como calcular isso de forma eficiente o módulo seguinte, 43 00:03:04,407 --> 00:03:07,817 para agora, apenas acredite que este cálculo pode ser feito de forma eficiente. 44 00:03:07,817 --> 00:03:13,118 Agora, vamos chamá-capital de um resultado deste valor. Então, o que Alice vai fazer é que ela vai 45 00:03:13,118 --> 00:03:17,501 enviar maiúsculo sobre a Bob. Agora Bob vai fazer a mesma coisa. Ele vai 46 00:03:17,501 --> 00:03:22,161 escolher um número aleatório b na gama de 1 a p-1. Ele vai calcular g para 47 00:03:22,161 --> 00:03:26,322 módulo de b p e vamos chamar esse número B e vai para enviar esta 48 00:03:26,322 --> 00:03:31,114 B número sobre para Alice. Então, Alice envia para Bob A. Bob envia B. Para Alice. E agora 49 00:03:31,114 --> 00:03:36,848 eles afirmam que podem gerar uma chave secreta compartilhada. Então, o que é uma chave secreta compartilhada? 50 00:03:36,848 --> 00:03:41,968 Bem, ele é definido como. Vamos chamá-lo K_AB. E é basicamente definida como a 51 00:03:41,968 --> 00:03:47,410 g valor para a energia de um b vezes. Agora, a observação surpreendente de Diffie-Hellman teve 52 00:03:47,410 --> 00:03:53,040 em 1976 é que, de facto, ambas as partes podem calcular este valor para o g ab. 53 00:03:53,040 --> 00:03:58,738 Então vamos ver, Alice pode calcular este valor, porque ela pode levá-la B valor que ela 54 00:03:58,738 --> 00:04:04,232 recebeu de Bob. Ela pode tomar este valor B, aumentá-lo para o poder de um e, vamos 55 00:04:04,232 --> 00:04:09,116 ver, o que ela vai conseguir é g a b para o poder do b. E pelas regras do 56 00:04:09,116 --> 00:04:14,935 exponenciação, g para o poder de b para o poder de a é igual a G para o ab. Prumo 57 00:04:14,935 --> 00:04:19,986 despeja, pode fazer algo semelhante, por isso seu objetivo é calcular g para o um a b, 58 00:04:19,986 --> 00:04:24,972 que por sua vez, é g ao ab, então Alice e Bob terá computadorizada K_AB, e 59 00:04:24,972 --> 00:04:32,567 deixe-me perguntar, como é que Bob realmente calcular esta quantidade g para a ab? 60 00:04:32,567 --> 00:04:37,894 Bem por isso tudo que ele faz é que ele leva o valor de que ele recebeu de Alice e ele levanta-lo para 61 00:04:37,894 --> 00:04:43,412 seu b próprio segredo e que lhe dá o g secreta compartilhada para o ab. Assim você pode ver 62 00:04:43,412 --> 00:04:48,450 agora que ambas as partes, embora aparentemente calculado valores diferentes. Em 63 00:04:48,450 --> 00:04:53,495 fato de que ambos acabam com o mesmo valor ou seja, g ab módulo p. Devo mencionar por 64 00:04:53,495 --> 00:04:57,703 maneira que Martie Hellman e Diffiie peruca veio com este protocolo de volta 65 00:04:57,703 --> 00:05:01,752 1976. Martie Hellman foi um professor aqui na Universidade de Stanford e Diffie peruca era o seu 66 00:05:01,752 --> 00:05:06,120 estudante de graduação. Eles vieram com este protocolo e este protocolo realmente mudou 67 00:05:06,120 --> 00:05:10,541 mundo. Em que introduziu nesta nova era em criptografia. Onde está agora não é apenas 68 00:05:10,541 --> 00:05:14,536 sobre o desenvolvimento de cifras de bloco mas na verdade é sobre o projeto algébrica 69 00:05:14,536 --> 00:05:19,293 protocolos que têm imóveis como o que vemos aqui. Então você percebe que o que 70 00:05:19,293 --> 00:05:24,336 faz este protocolo funciona é basicamente propriedades da exponenciação. Ou seja, que, 71 00:05:24,525 --> 00:05:29,443 g para o b para a potência de um é o mesmo que para o g uma à potência de b, bem? 72 00:05:29,443 --> 00:05:33,568 Estes são apenas propriedades de exponenciações. Agora, quando eu descrever um 73 00:05:33,568 --> 00:05:38,041 protocolo como o que acabei de mostrar. A verdadeira questão que deve estar no seu 74 00:05:38,041 --> 00:05:41,941 mente não é por isso que o protocolo funciona. Em outras palavras, é muito fácil de verificar 75 00:05:41,941 --> 00:05:45,840 que, de fato, Alice e Bob acabar com a mesma chave secreta. Quanto maior 76 00:05:45,840 --> 00:05:49,636 questão é porque é que este protocolo seguro? Em outras palavras, por que é que um 77 00:05:49,636 --> 00:05:53,847 eavesdropper não consigo descobrir a mesma chave compartilhada devido à AB que tanto Alice 78 00:05:53,847 --> 00:05:57,902 e Bob calculado por eles próprios? Então vamos analisar isso um pouco, então, como eu 79 00:05:57,902 --> 00:06:02,114 disse, vamos fazer um mais muito na análise aprofundada na próxima semana. Mas, vamos, para já, 80 00:06:02,114 --> 00:06:06,221 apenas ver intuitivamente por isso que este protocolo vai ser seguro. Bem, o que faz o 81 00:06:06,566 --> 00:06:11,106 eavesdropper ver? Bem, ele vê o primo eo gerador. Estes são apenas fixada 82 00:06:11,106 --> 00:06:15,876 para sempre e todo mundo sabe quem eles são. Ele também vê o valor que Alice enviou para 83 00:06:15,876 --> 00:06:20,531 Bob, ou seja, esta A. capital e vê o valor que Bob enviado para Alice, a saber 84 00:06:20,531 --> 00:06:25,187 este capital de B. E a pergunta é, pode, pode a eavesdropper calcular g para o 85 00:06:25,187 --> 00:06:29,899 ab dado apenas esses quatro valores? Então, mais genericamente, o que podemos fazer é que podemos definir 86 00:06:29,899 --> 00:06:34,497 esta função Diffie-Hellman. Então, vamos dizer que a função Diffie-Hellman é definido 87 00:06:34,497 --> 00:06:39,373 com base em alguma g valor. E a pergunta é dada g para a, e g a b. Você pode 88 00:06:39,373 --> 00:06:44,743 computação g para a ab? E o que estamos pedindo é como é que é difícil calcular essa 89 00:06:44,743 --> 00:06:49,580 módulo de função durante muito grande p primo. Lembre-se de p era algo como 600 dígitos. 90 00:06:49,580 --> 00:06:53,968 Então, a verdadeira questão que precisamos responder é o quão difícil é este, é este Diffie-Hellman 91 00:06:53,968 --> 00:06:58,850 função? Então deixe-me mostrar-lhe o que sabe sobre isso. Assim, suponha que o principal acontece 92 00:06:58,850 --> 00:07:04,406 para ser n bits de comprimento. Ok, então no nosso caso dizem que n é de 2.000 bits. Acontece que o melhor 93 00:07:04,406 --> 00:07:08,783 algoritmo conhecido para calcular a função de Diffie-Hellman. É realmente um 94 00:07:08,783 --> 00:07:12,853 mais algoritmo geral que calcula a função de log discreto, que nós vamos 95 00:07:12,853 --> 00:07:16,822 falar na próxima semana. Mas, por enquanto, vamos apenas dizer que este algoritmo calcula um 96 00:07:16,822 --> 00:07:20,742 Diffie-Hellman função. O algoritmo é chamado um peneiro campo geral número. Eu sou 97 00:07:20,742 --> 00:07:24,912 não vou descrever como funciona, mas se você gostaria de saber como ele funciona, deixe-me 98 00:07:24,912 --> 00:07:28,982 sabe, e que pode ser um dos tópicos especiais que cobrem no final do 99 00:07:28,982 --> 00:07:33,002 curso. Mas o interessante é que ele está correndo o tempo é exponencial 100 00:07:33,002 --> 00:07:36,771 aproximadamente a raiz cúbica de n. Em outras palavras, o tempo de execução é aproximadamente e para 101 00:07:36,771 --> 00:07:41,028 o poder de o de raiz cúbica de n. Então, na verdade a expressão exata para a execução 102 00:07:41,028 --> 00:07:44,853 hora, desse algoritmo é muito mais complicado do que isso. Eu estou deliberadamente 103 00:07:44,853 --> 00:07:49,035 simplificando-o aqui só para obter o tipo de ponto de vista. O ponto que eu quero 104 00:07:49,035 --> 00:07:52,809 enfatizar é que, na verdade, isso não é bem um algoritmo de tempo exponencial. 105 00:07:52,809 --> 00:07:57,093 exponencial seria e à potência de n. Isso às vezes é chamado de sub-exponencial 106 00:07:57,093 --> 00:08:01,377 algoritmo porque o expoente é apenas proporcional à raiz cúbica de n, 107 00:08:01,377 --> 00:08:05,847 em oposição a n lineares. O que isto diz é que mesmo que este problema é bastante 108 00:08:05,847 --> 00:08:10,360 difícil, não é realmente um problema de tempo exponencial. O tempo de execução na 109 00:08:10,360 --> 00:08:15,175 expoente vai ser apenas proporcional à raiz cúbica de n. Então, vamos olhar para alguns 110 00:08:15,175 --> 00:08:19,848 exemplos. Suponha que eu acontecer de estar a olhar para um módulo que passa a ser sobre um 111 00:08:19,848 --> 00:08:23,879 mil bits de comprimento. O que este algoritmo diz é que podemos resolver o 112 00:08:23,879 --> 00:08:28,436 problema Diffie-Hellman no tempo, que é aproximadamente e para a raiz qube de 1.024. 113 00:08:28,436 --> 00:08:33,285 Agora, isso não é realmente correto, na verdade, existem mais constantes no expoente. 114 00:08:33,285 --> 00:08:38,192 Mas, novamente, apenas para começar, o ponto de vista, podemos dizer que o tempo de execução seria 115 00:08:38,192 --> 00:08:42,866 cerca e à raiz qube de 1.024, o que é realmente muito pequena, cerca de e para o 10. 116 00:08:42,866 --> 00:08:47,231 Portanto, o exemplo simples mostra que se você tiver um algoritmo sub-exponencial, 117 00:08:47,231 --> 00:08:51,589 você ver que mesmo se o problema é muito grande, como 1000 bits. Devido à 118 00:08:51,589 --> 00:08:56,277 efeito raiz cúbica o expoente na verdade não é tão grande como um todo. Agora, para ser honesto, eu sou 119 00:08:56,277 --> 00:09:00,849 realmente mentindo aqui. Peneira campo Geral Número realmente tem muitos outros 120 00:09:00,849 --> 00:09:05,420 constantes dos expoentes assim, de facto, isso não vai ser 10 em tudo. É 121 00:09:05,420 --> 00:09:09,816 realmente vai ser algo como 80. Por causa de várias constantes do 122 00:09:09,816 --> 00:09:14,622 expoentes. Mas mesmo assim, mas você vê o problema é muito mais difícil do que dizer de 2 a 123 00:09:14,622 --> 00:09:19,428 1000 a. Apesar de descrever leva 1.000 bits, resolução de não ter tempo 124 00:09:19,428 --> 00:09:23,587 para a 1.000. Então aqui eu rolar a tabela que tipo de mostra-lhe o áspero 125 00:09:23,587 --> 00:09:27,309 dificuldade de quebrar o protocolo de Diffie-Hellman em comparação com o 126 00:09:27,309 --> 00:09:31,785 dificuldade de quebrar uma cifra com um número apropriado de bits. Por exemplo, 127 00:09:31,785 --> 00:09:36,261 se o seu cifra tem 80 teclas de bits. Isso seria mais ou menos comparável ao uso de 1.000 bit 128 00:09:36,261 --> 00:09:40,792 módulos. Em outras palavras, quebrando uma cifra com 80 teclas de bit demora cerca de 2 a 80 129 00:09:40,792 --> 00:09:45,053 , o que significa que a quebra se você tiver Diffie-Hellman função com 1.000 130 00:09:45,053 --> 00:09:47,701 módulo terá pouco tempo de 2 à 80. 131 00:09:47,701 --> 00:09:53,989 Se o seu cifra usa chaves de 128 bits como AES, você deve estar realmente usando um módulo bit 3.000, 132 00:09:53,989 --> 00:09:58,734 , embora ninguém realmente faz isso. Na realidade, as pessoas usariam 2.000 módulo bit. E 133 00:09:58,734 --> 00:10:03,083 , em seguida, se a sua chave é muito grande, como se estivéssemos usando uma chave AES de 256 bits, em seguida, 134 00:10:03,083 --> 00:10:07,715 fato de seu módulo precisa ser muito, muito grande. Novamente, você, você pode realmente ver o 135 00:10:07,715 --> 00:10:12,346 efeito raiz cúbica aqui. Nós duplicou o tamanho da nossa chave e por causa da raiz cubo 136 00:10:12,346 --> 00:10:16,752 efeito, o que isso significa é que temos que aumentar o tamanho, do nosso módulo por um 137 00:10:16,752 --> 00:10:21,327 fator de dois cubos, ou seja, um fator de oito, que é onde esta 15.000 vem. 138 00:10:21,327 --> 00:10:25,952 a partir de. E mais uma vez devo mencionar que não há exatamente um fator de oito por causa de 139 00:10:25,952 --> 00:10:30,251 as constantes extra no expoente. Portanto, este é um belo quadro que mostra que 140 00:10:30,251 --> 00:10:34,481 , se você está indo estar usando Diffie-Hellman para troca, uma chave de sessão. E que a sessão 141 00:10:34,481 --> 00:10:38,608 chave vai ser utilizado para uma codificação de bloco com um tamanho de chave determinado, esta tabela mostra 142 00:10:38,608 --> 00:10:42,633 qual o tamanho modular você precisa usar para que a segurança da troca de chaves 143 00:10:42,633 --> 00:10:46,709 protocolo é comparável com a segurança da cifra de bloco você vai estar usando depois. 144 00:10:46,709 --> 00:10:50,837 Agora, esta última linha deve ser realmente preocupante para você. Eu deveria dizer 145 00:10:50,837 --> 00:10:54,913 você que trabalha com esse módulo de um grande é muito problemática. Esta é realmente 146 00:10:54,913 --> 00:10:59,040 vai ser bastante lenta, e então a questão é se existe algo melhor que 147 00:10:59,040 --> 00:11:03,832 podemos fazer? E acontece que há. Na verdade, a maneira que eu descrever o Diffie-Hellman 148 00:11:03,832 --> 00:11:08,984 função é que eu descrevê-la com a forma como Diffie e Hellman descrito em 1976 149 00:11:08,984 --> 00:11:13,516 módulo usando aritmética dos números primos. O problema com números primos aritmética modular é 150 00:11:13,516 --> 00:11:17,539 que a função de Diffie-Hellman é difícil de calcular, mas não é tão duro como você 151 00:11:17,539 --> 00:11:21,611 como. Não há este efeito raiz cúbica que o torna um pouco mais fácil do que o que você 152 00:11:21,611 --> 00:11:26,158 realmente gosto. E então a questão é que podemos executar o protocolo Diffie-Hellman em outro 153 00:11:26,158 --> 00:11:30,300 configurações. E acontece que a resposta é sim. Na verdade, podemos traduzir literalmente 154 00:11:30,300 --> 00:11:34,308 o protocolo de Diffie-Hellman a partir de um modelo de aritmética de números primos para um diferente 155 00:11:34,308 --> 00:11:38,752 tipo de objeto algébrico e resolver o problema Diffie-Hellman em que outro 156 00:11:38,752 --> 00:11:43,196 objeto algébrico é muito, muito mais difícil. Este outro objeto algébrico é o que é 157 00:11:43,196 --> 00:11:47,758 chamado uma curva elíptica. E como eu disse, o cálculo da função de Diffie-Hellman em 158 00:11:47,758 --> 00:11:52,735 essas curvas elípticas é muito mais difícil do que calcular os números primos Diffie-Hellman modulo. 159 00:11:52,735 --> 00:11:57,476 Porque o problema é muito mais difícil, agora podemos usar objetos muito menores em 160 00:11:57,476 --> 00:12:02,453 particular, você sabe que estaria usando números primos que são apenas uma de 160 bits ou 80 bits ou chaves 161 00:12:02,453 --> 00:12:06,780 apenas 512 bits para 256 bits chaves. Então, porque estes módulo não crescem como 162 00:12:06,780 --> 00:12:10,914 rápido em curvas elípticas, há geralmente uma transição lenta de distância usando o módulo 163 00:12:10,914 --> 00:12:14,949 aritmética, ao uso de curvas elípticas. Eu não vou descrever curvas elípticas 164 00:12:14,949 --> 00:12:18,735 agora para você, mas se isso é algo que você gostaria de aprender sobre o que posso 165 00:12:18,735 --> 00:12:22,421 fazer isso na última semana do curso, quando discutimos mais avançado 166 00:12:22,421 --> 00:12:27,149 tópicos. Mas na verdade, quando voltamos para Diffie-Hellman na próxima semana eu vou descrevê-lo 167 00:12:27,149 --> 00:12:31,933 mais abstrata, para que isso realmente não importa qual você usa estrutura algébrica 168 00:12:31,933 --> 00:12:36,831 se você usar o modelo aritmética dos números primos, ou se você usar uma curva elíptica que 169 00:12:36,831 --> 00:12:41,557 pode meio abstrato questão que todo fora e use o conceito de Diffie-Hellman para um 170 00:12:41,557 --> 00:12:46,109 troca de chaves e outras coisas também. E como eu disse, vamos ver que mais 171 00:12:46,109 --> 00:12:50,321 abstratamente na próxima semana. Então, como de costume, eu quero mostrar que este protocolo bonita que eu 172 00:12:50,321 --> 00:12:54,307 apenas mostrei, o protocolo Diffie-Hellman, é como é, na verdade é completamente inseguro 173 00:12:54,307 --> 00:12:58,195 contra um ataque ativo. Ou seja, é completamente inseguro contra o que é chamado 174 00:12:58,195 --> 00:13:02,132 o homem no meio ataque. Precisamos fazer algo mais do que este protocolo para 175 00:13:02,132 --> 00:13:06,019 fazer é segura contra o homem no meio. E mais uma vez vamos voltar a Diffie 176 00:13:06,019 --> 00:13:10,135 Hellman e torná-la segura contra o homem no meio da semana seguinte. Okay. Então vamos ver 177 00:13:10,135 --> 00:13:14,649 porque o protocolo que eu mostrei é inseguro contra ataques ativos. Bem 178 00:13:14,649 --> 00:13:18,767 suponha que temos esse homem no meio que está tentando espionar o 179 00:13:18,767 --> 00:13:23,393 conversa entre Alice e Bob. Bem assim, o protocolo começa com Alice enviando 180 00:13:23,563 --> 00:13:28,309 g ao longo de um para Bob. Bem, então o homem no meio é que vai interceptar e 181 00:13:28,309 --> 00:13:32,777 ele vai levar a mensagem de que Alice enviou e ele vai substituí-lo com a sua 182 00:13:32,777 --> 00:13:37,113 própria mensagem. Então, ele é chamado a ', e vamos escrever que é g a um ". 183 00:13:37,113 --> 00:13:41,939 Ok? Então o homem no meio escolhe o seu "um próprio eo que ele envia para Bob é 184 00:13:41,939 --> 00:13:46,588 realmente g para a 'a. Agora pobre Bob não sabe que o homem no meio 185 00:13:46,588 --> 00:13:51,356 realmente fez alguma coisa para esse tráfego, tudo o que ele vê é que ele tem o valor de A '. Como 186 00:13:51,356 --> 00:13:55,946 até onde ele sabe, que o valor veio de Alice. Então, o que é que ele vai fazer em resposta? 187 00:13:55,946 --> 00:14:00,723 Bem, ele vai mandar de volta o seu valor B para fora que é g a b volta para Alice. Bem 188 00:14:00,723 --> 00:14:05,457 novamente o homem no meio vai interceptar este B. Ele vai gerar o seu 189 00:14:05,457 --> 00:14:10,434 b própria "e que ele realmente envia de volta para Alice é B", que é g a b '. 190 00:14:10,434 --> 00:14:16,807 Ok, agora o que acontece? Bem Alice vai calcular a sua parte do 191 00:14:16,807 --> 00:14:22,808 chave secreta e ela vai ficar g para o ab '. Bob vai calcular a sua parte 192 00:14:22,808 --> 00:14:28,281 chave secreta e ele vai ficar g para os tempos de um 'b. Ok, estes agora você 193 00:14:28,281 --> 00:14:33,592 aviso estas não são as mesmas teclas. No homem no meio, porque ele sabe tanto "A 194 00:14:33,592 --> 00:14:38,903 e B ", ele pode calcular tanto para o g ab 'e g a ba'. Sim, é 195 00:14:38,903 --> 00:14:44,215 não é difícil de ver o homem no meio sabe os dois valores. E, como resultado, agora ele 196 00:14:44,215 --> 00:14:49,526 pode basicamente jogar este homem no meio e quando Alice envia uma mensagem criptografada 197 00:14:49,526 --> 00:14:54,711 de Bob o homem no meio pode simplesmente decifrar esta mensagem, porque ele sabe o 198 00:14:54,711 --> 00:14:59,622 chave secreta que Alice mensagem criptografada com, re-criptografá-la utilizando a chave de Bob. E 199 00:14:59,622 --> 00:15:04,105 , em seguida, enviar a mensagem sobre sobre a Bob. E desta forma Alice enviou a mensagem, Bob 200 00:15:04,105 --> 00:15:08,239 recebido a mensagem. Bob acredita que a mensagem é segura. Mas, de facto, que 201 00:15:08,239 --> 00:15:12,605 mensagem foi enviada através do homem no meio. O homem no meio descriptografados 202 00:15:12,605 --> 00:15:17,146 -lo, re-codificado-lo para Bob. Ao mesmo tempo que era capaz de completamente lê-lo, 203 00:15:17,146 --> 00:15:21,746 modificá-lo, se ele quer, e assim por diante. Assim, o protocolo torna-se completamente inseguro 204 00:15:21,746 --> 00:15:26,531 dar nd homem no meio. E assim como eu disse nós vamos ter para melhorar a 205 00:15:26,531 --> 00:15:30,697 protocolo de alguma forma para se defender contra os homens no meio, mas acontece que é 206 00:15:30,697 --> 00:15:34,915 na verdade não tão difícil de melhorar e impedir o homem no meio ataques. 207 00:15:34,915 --> 00:15:39,377 E nós vamos voltar a isso e ver que em uma semana ou duas. O último acho que eu quero 208 00:15:39,377 --> 00:15:43,658 fazer é mostrar-lhe uma propriedade interessante do protocolo Diffie-Hellman. Na verdade, eu 209 00:15:43,658 --> 00:15:48,046 quero mostrar a você que este protocolo pode ser visto como um protocolo não-interativo. Assim, 210 00:15:48,046 --> 00:15:52,487 o que quero dizer com isso? Então, imagine que temos um monte de usuários, você sabe, milhões 211 00:15:52,487 --> 00:15:56,340 de usuários. Vamos chamá-los de Alice, Bob, Charlie, David e assim por diante e assim por diante. 212 00:15:56,500 --> 00:16:00,567 Cada um deles vai escolher um valor aleatório, segredo, e, em seguida, em seu 213 00:16:00,567 --> 00:16:04,419 perfis do Facebook, eles vão escrever, sua contribuição para o 214 00:16:04,419 --> 00:16:08,486 Diffie-Hellman protocolo. Tudo bem, então todo mundo só escreve você sabe g para 215 00:16:08,486 --> 00:16:13,604 a um, g para o b, g para o C e assim por diante. Agora a coisa interessante sobre isso é, 216 00:16:13,604 --> 00:16:18,942 se dizem Alice e Charlie quer estabelecer uma chave compartilhada eles não precisam se comunicar 217 00:16:18,942 --> 00:16:24,360 de todo. Basicamente Alice iria ler e perfil público de Charlie. Charlie iria 218 00:16:24,360 --> 00:16:29,635 e ler o perfil de Alice público. E agora, boom, têm imediatamente uma chave secreta. 219 00:16:29,635 --> 00:16:34,976 Ou seja, agora, Alice sabe, g a c e a. Charlie sabe g à uma e с. E como 220 00:16:34,976 --> 00:16:39,987 um resultado, ambos podem calcular п à AC. Então, em certo sentido, uma vez que eles 221 00:16:39,987 --> 00:16:44,669 postou suas contribuições para o protocolo Diffie-Hellman para seu público 222 00:16:44,669 --> 00:16:50,076 os outros em tudo para criar uma chave compartilhada. 223 00:16:50,076 --> 00:16:53,919 têm imediatamente uma chave compartilhada e agora eles podem começar a se comunicar 224 00:16:53,919 --> 00:16:58,194 de forma segura através do Facebook ou não um com o outro. E notem que isto é verdade para 225 00:16:58,194 --> 00:17:02,121 qualquer usuário do Facebook. Assim, logo que li o perfil público de alguém, eu imediatamente 226 00:17:02,121 --> 00:17:06,198 têm uma chave compartilhada com eles, sem nunca se comunicar com eles. Esta propriedade é 227 00:17:06,198 --> 00:17:09,967 às vezes chamado de uma propriedade não-interativo do Diffie-Hellman. Então agora, vamos 228 00:17:09,967 --> 00:17:14,716 me mostrar-lhe um problema em aberto. E este é um problema em aberto que tem sido aberto para as idades 229 00:17:14,716 --> 00:17:19,407 e eras e eras. Por isso, seria muito legal se um de vocês pode realmente resolvê-lo. O 230 00:17:19,407 --> 00:17:24,041 questão é, podemos fazer isso por mais de duas partes? Em outras palavras, dizer que temos 231 00:17:24,041 --> 00:17:28,559 quatro partes. Todos eles postam seus valores para seus perfis do Facebook. E agora 232 00:17:28,559 --> 00:17:33,366 gostaríamos de fazê-lo que apenas lendo perfis no Facebook, todos eles podem configurar 233 00:17:33,366 --> 00:17:38,057 palavras, é Alice, que ela vai, ela vai fazer é ela só vai 234 00:17:38,057 --> 00:17:42,427 ler os perfis do público, os três amigos, Bob, Charlie e David. E 235 00:17:42,427 --> 00:17:47,650 ela já pode calcular a chave compartilhada com eles. E da mesma forma David está apenas indo 236 00:17:47,650 --> 00:17:54,187 ler o perfil público de Charlie. Bob e Alice. E já que ele tem uma chave compartilhada 237 00:17:54,187 --> 00:17:58,716 com todos os quatro deles. Ok, então a questão é se podemos tipo de configuração 238 00:17:58,885 --> 00:18:03,546 não-interativamente estes, estas chaves compartilhadas para grupos que são maiores do que apenas dois 239 00:18:03,546 --> 00:18:07,986 pessoas. Então, como eu disse, para n igual a dois, este é apenas um protocolo Diffie-Hellman. Em 240 00:18:07,986 --> 00:18:12,594 outras palavras, se apenas dois partidos querem criar uma chave compartilhada sem comunicar 241 00:18:12,594 --> 00:18:16,696 um com o outro, isso é apenas Diffie-Hellman. Acontece que, para N igual a 242 00:18:16,696 --> 00:18:21,473 três, nós também sabemos como fazê-lo, há um protocolo conhecido, é chamado de protocolo devido 243 00:18:21,473 --> 00:18:25,688 de Joux. Ela já usa matemática muito, muito chique, muito mais complicado 244 00:18:25,688 --> 00:18:29,959 matemática do que aquilo que acabei de mostrar. E para N igual a quatro, ou cinco, ou 245 00:18:29,959 --> 00:18:34,455 nada acima deste, acima de quatro, este problema é completamente aberta. Quase o 246 00:18:34,455 --> 00:18:38,790 caso em que quatro pessoas postar algo para os perfis públicos e então todos 247 00:18:38,790 --> 00:18:42,908 pessoa lê o perfil público e eles têm uma chave comum compartilhado, isto é 248 00:18:42,908 --> 00:18:47,459 algo que não sei como fazer, mesmo para quatro pessoas. E este é um problema que é 249 00:18:47,459 --> 00:18:52,010 sido aberto por eras e eras, é um tipo de problema legal pensar e assim ver se 250 00:18:52,010 --> 00:18:56,073 você pode resolvê-lo, se quiser, é a fama instantânea no mundo crypto. Ok, então 251 00:18:56,073 --> 00:19:00,516 Vou parar por aqui, e vamos continuar com um outro mecanismo de troca de chaves no próximo segmento.