[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:04.07,Default,,0000,0000,0000,,Neste segmento, nós vamos olhar para o protocolo Diffie-Hellman, que é nosso Dialogue: 0,0:00:04.07,0:00:08.23,Default,,0000,0000,0000,,mecanismo primeira troca prático chave. Então deixe-me lembrá-lo das configurações. Nosso Dialogue: 0,0:00:08.23,0:00:12.44,Default,,0000,0000,0000,,amigos aqui, Alice e Bob, nunca se encontraram e ainda eles querem uma troca compartilhada Dialogue: 0,0:00:12.44,0:00:16.44,Default,,0000,0000,0000,,chave secreta que eles podem então usar para comunicar de forma segura com o outro. Dialogue: 0,0:00:16.44,0:00:20.09,Default,,0000,0000,0000,,Nesse segmento e no próximo, estamos só vai estar a olhar para escutas Dialogue: 0,0:00:20.09,0:00:23.94,Default,,0000,0000,0000,,segurança. Em outras palavras, estamos preocupados apenas com os bisbilhoteiros. Os atacantes são Dialogue: 0,0:00:23.94,0:00:27.99,Default,,0000,0000,0000,,na verdade, não permitiu a mexer com os dados na rede. Eles não estão autorizados a Dialogue: 0,0:00:27.99,0:00:32.05,Default,,0000,0000,0000,,injetar pacotes. Eles não estão autorizados a mudar os pacotes de forma alguma. Tudo o que fazem é Dialogue: 0,0:00:32.05,0:00:36.34,Default,,0000,0000,0000,,apenas para espionar o tráfego. E no final do protocolo, a troca da chave Dialogue: 0,0:00:36.34,0:00:40.88,Default,,0000,0000,0000,,protocolo nossos amigos Alice e Bob deve ter uma chave secreta compartilhada, mas o atacante Dialogue: 0,0:00:40.88,0:00:45.03,Default,,0000,0000,0000,,ou seja, o intruso não tem idéia do que essa chave que vai ser. No anterior Dialogue: 0,0:00:45.03,0:00:49.34,Default,,0000,0000,0000,,segmento olhamos para um segmento-chave chamados puzzles Merkle. Isso é apenas usando bloco Dialogue: 0,0:00:49.34,0:00:53.71,Default,,0000,0000,0000,,cifras ou funções de hash. E mostrei-lhe que há que, basicamente, o atacante Dialogue: 0,0:00:53.71,0:00:57.49,Default,,0000,0000,0000,,tem uma diferença de quadrática em comparação com os participantes. Em outras palavras, se o Dialogue: 0,0:00:57.49,0:01:01.80,Default,,0000,0000,0000,,participantes passou um tempo proporcional a N o atacante pode quebrar o protocolo em Dialogue: 0,0:01:01.80,0:01:06.16,Default,,0000,0000,0000,,tempo proporcional a N quadrado. E, como resultado desse protocolo é inseguro para ser Dialogue: 0,0:01:06.16,0:01:10.37,Default,,0000,0000,0000,,considerado prático. Neste segmento nós vamos perguntar se podemos fazer o Dialogue: 0,0:01:10.37,0:01:14.73,Default,,0000,0000,0000,,mesma coisa, mas agora gostaríamos de alcançar uma lacuna entre o exponencial do atacante Dialogue: 0,0:01:14.73,0:01:19.05,Default,,0000,0000,0000,,trabalho acabou no trabalho do participante. Em outras palavras, Alice e Bob pode fazer Dialogue: 0,0:01:19.05,0:01:23.60,Default,,0000,0000,0000,,trabalho proporcional a N, mas para quebrar o protocolo que o atacante vai ter que fazer Dialogue: 0,0:01:23.60,0:01:27.88,Default,,0000,0000,0000,,trabalho proporcional a alguma exponencial em N. Então agora há uma lacuna exponencial Dialogue: 0,0:01:27.88,0:01:32.70,Default,,0000,0000,0000,,entre o trabalho participantes eo trabalho do atacante. Então, como eu disse no Dialogue: 0,0:01:32.70,0:01:37.98,Default,,0000,0000,0000,,segmento anterior não podemos alcançar esta lacuna exponencial a partir de cifras do blog como AES Dialogue: 0,0:01:37.98,0:01:43.14,Default,,0000,0000,0000,,ou SHA-256. Temos que usar os problemas difíceis que têm mais estrutura do que apenas aqueles Dialogue: 0,0:01:43.14,0:01:48.71,Default,,0000,0000,0000,,primitivas simétricas. E assim, em vez o que vamos fazer é usar um pouco de álgebra. Dialogue: 0,0:01:48.71,0:01:51.60,Default,,0000,0000,0000,,Nesse segmento eu vou descrever o protocolo Diffie-Hellman muito Dialogue: 0,0:01:51.60,0:01:55.77,Default,,0000,0000,0000,,concreta e um pouco informal. Quando nós vamos voltar a Diffie-Hellman na próxima semana Dialogue: 0,0:01:55.77,0:02:00.09,Default,,0000,0000,0000,,e nós vamos descrever o protocolo de forma mais abstrata e nós vamos fazer um mais muito Dialogue: 0,0:02:00.09,0:02:04.20,Default,,0000,0000,0000,,análise de segurança rigoroso do presente protocolo. Ok, então como é Diffie-Hellman Dialogue: 0,0:02:04.20,0:02:08.17,Default,,0000,0000,0000,,trabalho? O que vamos fazer é, em primeiro lugar, nós vamos corrigir alguns principal grande Dialogue: 0,0:02:08.33,0:02:12.68,Default,,0000,0000,0000,,que eu vou chamar p. Na verdade p eu costumo usar para designar primos. E você Dialogue: 0,0:02:12.68,0:02:16.82,Default,,0000,0000,0000,,deve estar pensando de primos realmente gigantescas. Como, primos que são compostas de Dialogue: 0,0:02:16.82,0:02:21.01,Default,,0000,0000,0000,,600 dígitos são assim. E apenas para aqueles de vocês que gostam de pensar em binário, a 600 Dialogue: 0,0:02:21.01,0:02:25.41,Default,,0000,0000,0000,,primeiro dígito corresponde aproximadamente a cerca de 2000 bits. Então, basta escrever o primeiro Dialogue: 0,0:02:25.41,0:02:29.93,Default,,0000,0000,0000,,leva cerca de dois bits quilo de dados. E então nós estamos também vai corrigir um inteiro g Dialogue: 0,0:02:29.93,0:02:35.07,Default,,0000,0000,0000,,que acontece a viver na faixa de um a p. Assim, estes valores p e g são parâmetros Dialogue: 0,0:02:35.07,0:02:40.01,Default,,0000,0000,0000,,do protocolo Diffie-Hellman. Eles são escolhidos uma vez e eles estão fixados para sempre. Agora Dialogue: 0,0:02:40.01,0:02:45.09,Default,,0000,0000,0000,,protocolo funciona da seguinte forma. Então aqui está o nosso amigos Alice e Bob. Então, o que Alice Dialogue: 0,0:02:45.09,0:02:50.35,Default,,0000,0000,0000,,vai fazer é ela vai começa por escolher um número aleatório um na faixa de 1 a p-1 Dialogue: 0,0:02:50.35,0:02:55.42,Default,,0000,0000,0000,,E então ela vai calcular o g número à potência de um modulo p. Dialogue: 0,0:02:55.42,0:02:59.80,Default,,0000,0000,0000,,Ok, então ela calcula este exponention, e reduz o resultado modular o primo p. Dialogue: 0,0:02:59.80,0:03:04.41,Default,,0000,0000,0000,,E nós estamos realmente indo para ver como calcular isso de forma eficiente o módulo seguinte, Dialogue: 0,0:03:04.41,0:03:07.82,Default,,0000,0000,0000,,para agora, apenas acredite que este cálculo pode ser feito de forma eficiente. Dialogue: 0,0:03:07.82,0:03:13.12,Default,,0000,0000,0000,,Agora, vamos chamá-capital de um resultado deste valor. Então, o que Alice vai fazer é que ela vai Dialogue: 0,0:03:13.12,0:03:17.50,Default,,0000,0000,0000,,enviar maiúsculo sobre a Bob. Agora Bob vai fazer a mesma coisa. Ele vai Dialogue: 0,0:03:17.50,0:03:22.16,Default,,0000,0000,0000,,escolher um número aleatório b na gama de 1 a p-1. Ele vai calcular g para Dialogue: 0,0:03:22.16,0:03:26.32,Default,,0000,0000,0000,,módulo de b p e vamos chamar esse número B e vai para enviar esta Dialogue: 0,0:03:26.32,0:03:31.11,Default,,0000,0000,0000,,B número sobre para Alice. Então, Alice envia para Bob A. Bob envia B. Para Alice. E agora Dialogue: 0,0:03:31.11,0:03:36.85,Default,,0000,0000,0000,,eles afirmam que podem gerar uma chave secreta compartilhada. Então, o que é uma chave secreta compartilhada? Dialogue: 0,0:03:36.85,0:03:41.97,Default,,0000,0000,0000,,Bem, ele é definido como. Vamos chamá-lo K_AB. E é basicamente definida como a Dialogue: 0,0:03:41.97,0:03:47.41,Default,,0000,0000,0000,,g valor para a energia de um b vezes. Agora, a observação surpreendente de Diffie-Hellman teve Dialogue: 0,0:03:47.41,0:03:53.04,Default,,0000,0000,0000,,em 1976 é que, de facto, ambas as partes podem calcular este valor para o g ab. Dialogue: 0,0:03:53.04,0:03:58.74,Default,,0000,0000,0000,,Então vamos ver, Alice pode calcular este valor, porque ela pode levá-la B valor que ela Dialogue: 0,0:03:58.74,0:04:04.23,Default,,0000,0000,0000,,recebeu de Bob. Ela pode tomar este valor B, aumentá-lo para o poder de um e, vamos Dialogue: 0,0:04:04.23,0:04:09.12,Default,,0000,0000,0000,,ver, o que ela vai conseguir é g a b para o poder do b. E pelas regras do Dialogue: 0,0:04:09.12,0:04:14.94,Default,,0000,0000,0000,,exponenciação, g para o poder de b para o poder de a é igual a G para o ab. Prumo Dialogue: 0,0:04:14.94,0:04:19.99,Default,,0000,0000,0000,,despeja, pode fazer algo semelhante, por isso seu objetivo é calcular g para o um a b, Dialogue: 0,0:04:19.99,0:04:24.97,Default,,0000,0000,0000,,que por sua vez, é g ao ab, então Alice e Bob terá computadorizada K_AB, e Dialogue: 0,0:04:24.97,0:04:32.57,Default,,0000,0000,0000,,deixe-me perguntar, como é que Bob realmente calcular esta quantidade g para a ab? Dialogue: 0,0:04:32.57,0:04:37.89,Default,,0000,0000,0000,,Bem por isso tudo que ele faz é que ele leva o valor de que ele recebeu de Alice e ele levanta-lo para Dialogue: 0,0:04:37.89,0:04:43.41,Default,,0000,0000,0000,,seu b próprio segredo e que lhe dá o g secreta compartilhada para o ab. Assim você pode ver Dialogue: 0,0:04:43.41,0:04:48.45,Default,,0000,0000,0000,,agora que ambas as partes, embora aparentemente calculado valores diferentes. Em Dialogue: 0,0:04:48.45,0:04:53.50,Default,,0000,0000,0000,,fato de que ambos acabam com o mesmo valor ou seja, g ab módulo p. Devo mencionar por Dialogue: 0,0:04:53.50,0:04:57.70,Default,,0000,0000,0000,,maneira que Martie Hellman e Diffiie peruca veio com este protocolo de volta Dialogue: 0,0:04:57.70,0:05:01.75,Default,,0000,0000,0000,,1976. Martie Hellman foi um professor aqui na Universidade de Stanford e Diffie peruca era o seu Dialogue: 0,0:05:01.75,0:05:06.12,Default,,0000,0000,0000,,estudante de graduação. Eles vieram com este protocolo e este protocolo realmente mudou Dialogue: 0,0:05:06.12,0:05:10.54,Default,,0000,0000,0000,,mundo. Em que introduziu nesta nova era em criptografia. Onde está agora não é apenas Dialogue: 0,0:05:10.54,0:05:14.54,Default,,0000,0000,0000,,sobre o desenvolvimento de cifras de bloco mas na verdade é sobre o projeto algébrica Dialogue: 0,0:05:14.54,0:05:19.29,Default,,0000,0000,0000,,protocolos que têm imóveis como o que vemos aqui. Então você percebe que o que Dialogue: 0,0:05:19.29,0:05:24.34,Default,,0000,0000,0000,,faz este protocolo funciona é basicamente propriedades da exponenciação. Ou seja, que, Dialogue: 0,0:05:24.52,0:05:29.44,Default,,0000,0000,0000,,g para o b para a potência de um é o mesmo que para o g uma à potência de b, bem? Dialogue: 0,0:05:29.44,0:05:33.57,Default,,0000,0000,0000,,Estes são apenas propriedades de exponenciações. Agora, quando eu descrever um Dialogue: 0,0:05:33.57,0:05:38.04,Default,,0000,0000,0000,,protocolo como o que acabei de mostrar. A verdadeira questão que deve estar no seu Dialogue: 0,0:05:38.04,0:05:41.94,Default,,0000,0000,0000,,mente não é por isso que o protocolo funciona. Em outras palavras, é muito fácil de verificar Dialogue: 0,0:05:41.94,0:05:45.84,Default,,0000,0000,0000,,que, de fato, Alice e Bob acabar com a mesma chave secreta. Quanto maior Dialogue: 0,0:05:45.84,0:05:49.64,Default,,0000,0000,0000,,questão é porque é que este protocolo seguro? Em outras palavras, por que é que um Dialogue: 0,0:05:49.64,0:05:53.85,Default,,0000,0000,0000,,eavesdropper não consigo descobrir a mesma chave compartilhada devido à AB que tanto Alice Dialogue: 0,0:05:53.85,0:05:57.90,Default,,0000,0000,0000,,e Bob calculado por eles próprios? Então vamos analisar isso um pouco, então, como eu Dialogue: 0,0:05:57.90,0:06:02.11,Default,,0000,0000,0000,,disse, vamos fazer um mais muito na análise aprofundada na próxima semana. Mas, vamos, para já, Dialogue: 0,0:06:02.11,0:06:06.22,Default,,0000,0000,0000,,apenas ver intuitivamente por isso que este protocolo vai ser seguro. Bem, o que faz o Dialogue: 0,0:06:06.57,0:06:11.11,Default,,0000,0000,0000,,eavesdropper ver? Bem, ele vê o primo eo gerador. Estes são apenas fixada Dialogue: 0,0:06:11.11,0:06:15.88,Default,,0000,0000,0000,,para sempre e todo mundo sabe quem eles são. Ele também vê o valor que Alice enviou para Dialogue: 0,0:06:15.88,0:06:20.53,Default,,0000,0000,0000,,Bob, ou seja, esta A. capital e vê o valor que Bob enviado para Alice, a saber Dialogue: 0,0:06:20.53,0:06:25.19,Default,,0000,0000,0000,,este capital de B. E a pergunta é, pode, pode a eavesdropper calcular g para o Dialogue: 0,0:06:25.19,0:06:29.90,Default,,0000,0000,0000,,ab dado apenas esses quatro valores? Então, mais genericamente, o que podemos fazer é que podemos definir Dialogue: 0,0:06:29.90,0:06:34.50,Default,,0000,0000,0000,,esta função Diffie-Hellman. Então, vamos dizer que a função Diffie-Hellman é definido Dialogue: 0,0:06:34.50,0:06:39.37,Default,,0000,0000,0000,,com base em alguma g valor. E a pergunta é dada g para a, e g a b. Você pode Dialogue: 0,0:06:39.37,0:06:44.74,Default,,0000,0000,0000,,computação g para a ab? E o que estamos pedindo é como é que é difícil calcular essa Dialogue: 0,0:06:44.74,0:06:49.58,Default,,0000,0000,0000,,módulo de função durante muito grande p primo. Lembre-se de p era algo como 600 dígitos. Dialogue: 0,0:06:49.58,0:06:53.97,Default,,0000,0000,0000,,Então, a verdadeira questão que precisamos responder é o quão difícil é este, é este Diffie-Hellman Dialogue: 0,0:06:53.97,0:06:58.85,Default,,0000,0000,0000,,função? Então deixe-me mostrar-lhe o que sabe sobre isso. Assim, suponha que o principal acontece Dialogue: 0,0:06:58.85,0:07:04.41,Default,,0000,0000,0000,,para ser n bits de comprimento. Ok, então no nosso caso dizem que n é de 2.000 bits. Acontece que o melhor Dialogue: 0,0:07:04.41,0:07:08.78,Default,,0000,0000,0000,,algoritmo conhecido para calcular a função de Diffie-Hellman. É realmente um Dialogue: 0,0:07:08.78,0:07:12.85,Default,,0000,0000,0000,,mais algoritmo geral que calcula a função de log discreto, que nós vamos Dialogue: 0,0:07:12.85,0:07:16.82,Default,,0000,0000,0000,,falar na próxima semana. Mas, por enquanto, vamos apenas dizer que este algoritmo calcula um Dialogue: 0,0:07:16.82,0:07:20.74,Default,,0000,0000,0000,,Diffie-Hellman função. O algoritmo é chamado um peneiro campo geral número. Eu sou Dialogue: 0,0:07:20.74,0:07:24.91,Default,,0000,0000,0000,,não vou descrever como funciona, mas se você gostaria de saber como ele funciona, deixe-me Dialogue: 0,0:07:24.91,0:07:28.98,Default,,0000,0000,0000,,sabe, e que pode ser um dos tópicos especiais que cobrem no final do Dialogue: 0,0:07:28.98,0:07:33.00,Default,,0000,0000,0000,,curso. Mas o interessante é que ele está correndo o tempo é exponencial Dialogue: 0,0:07:33.00,0:07:36.77,Default,,0000,0000,0000,,aproximadamente a raiz cúbica de n. Em outras palavras, o tempo de execução é aproximadamente e para Dialogue: 0,0:07:36.77,0:07:41.03,Default,,0000,0000,0000,,o poder de o de raiz cúbica de n. Então, na verdade a expressão exata para a execução Dialogue: 0,0:07:41.03,0:07:44.85,Default,,0000,0000,0000,,hora, desse algoritmo é muito mais complicado do que isso. Eu estou deliberadamente Dialogue: 0,0:07:44.85,0:07:49.04,Default,,0000,0000,0000,,simplificando-o aqui só para obter o tipo de ponto de vista. O ponto que eu quero Dialogue: 0,0:07:49.04,0:07:52.81,Default,,0000,0000,0000,,enfatizar é que, na verdade, isso não é bem um algoritmo de tempo exponencial. Dialogue: 0,0:07:52.81,0:07:57.09,Default,,0000,0000,0000,,exponencial seria e à potência de n. Isso às vezes é chamado de sub-exponencial Dialogue: 0,0:07:57.09,0:08:01.38,Default,,0000,0000,0000,,algoritmo porque o expoente é apenas proporcional à raiz cúbica de n, Dialogue: 0,0:08:01.38,0:08:05.85,Default,,0000,0000,0000,,em oposição a n lineares. O que isto diz é que mesmo que este problema é bastante Dialogue: 0,0:08:05.85,0:08:10.36,Default,,0000,0000,0000,,difícil, não é realmente um problema de tempo exponencial. O tempo de execução na Dialogue: 0,0:08:10.36,0:08:15.18,Default,,0000,0000,0000,,expoente vai ser apenas proporcional à raiz cúbica de n. Então, vamos olhar para alguns Dialogue: 0,0:08:15.18,0:08:19.85,Default,,0000,0000,0000,,exemplos. Suponha que eu acontecer de estar a olhar para um módulo que passa a ser sobre um Dialogue: 0,0:08:19.85,0:08:23.88,Default,,0000,0000,0000,,mil bits de comprimento. O que este algoritmo diz é que podemos resolver o Dialogue: 0,0:08:23.88,0:08:28.44,Default,,0000,0000,0000,,problema Diffie-Hellman no tempo, que é aproximadamente e para a raiz qube de 1.024. Dialogue: 0,0:08:28.44,0:08:33.28,Default,,0000,0000,0000,,Agora, isso não é realmente correto, na verdade, existem mais constantes no expoente. Dialogue: 0,0:08:33.28,0:08:38.19,Default,,0000,0000,0000,,Mas, novamente, apenas para começar, o ponto de vista, podemos dizer que o tempo de execução seria Dialogue: 0,0:08:38.19,0:08:42.87,Default,,0000,0000,0000,,cerca e à raiz qube de 1.024, o que é realmente muito pequena, cerca de e para o 10. Dialogue: 0,0:08:42.87,0:08:47.23,Default,,0000,0000,0000,,Portanto, o exemplo simples mostra que se você tiver um algoritmo sub-exponencial, Dialogue: 0,0:08:47.23,0:08:51.59,Default,,0000,0000,0000,,você ver que mesmo se o problema é muito grande, como 1000 bits. Devido à Dialogue: 0,0:08:51.59,0:08:56.28,Default,,0000,0000,0000,,efeito raiz cúbica o expoente na verdade não é tão grande como um todo. Agora, para ser honesto, eu sou Dialogue: 0,0:08:56.28,0:09:00.85,Default,,0000,0000,0000,,realmente mentindo aqui. Peneira campo Geral Número realmente tem muitos outros Dialogue: 0,0:09:00.85,0:09:05.42,Default,,0000,0000,0000,,constantes dos expoentes assim, de facto, isso não vai ser 10 em tudo. É Dialogue: 0,0:09:05.42,0:09:09.82,Default,,0000,0000,0000,,realmente vai ser algo como 80. Por causa de várias constantes do Dialogue: 0,0:09:09.82,0:09:14.62,Default,,0000,0000,0000,,expoentes. Mas mesmo assim, mas você vê o problema é muito mais difícil do que dizer de 2 a Dialogue: 0,0:09:14.62,0:09:19.43,Default,,0000,0000,0000,,1000 a. Apesar de descrever leva 1.000 bits, resolução de não ter tempo Dialogue: 0,0:09:19.43,0:09:23.59,Default,,0000,0000,0000,,para a 1.000. Então aqui eu rolar a tabela que tipo de mostra-lhe o áspero Dialogue: 0,0:09:23.59,0:09:27.31,Default,,0000,0000,0000,,dificuldade de quebrar o protocolo de Diffie-Hellman em comparação com o Dialogue: 0,0:09:27.31,0:09:31.78,Default,,0000,0000,0000,,dificuldade de quebrar uma cifra com um número apropriado de bits. Por exemplo, Dialogue: 0,0:09:31.78,0:09:36.26,Default,,0000,0000,0000,,se o seu cifra tem 80 teclas de bits. Isso seria mais ou menos comparável ao uso de 1.000 bit Dialogue: 0,0:09:36.26,0:09:40.79,Default,,0000,0000,0000,,módulos. Em outras palavras, quebrando uma cifra com 80 teclas de bit demora cerca de 2 a 80 Dialogue: 0,0:09:40.79,0:09:45.05,Default,,0000,0000,0000,,, o que significa que a quebra se você tiver Diffie-Hellman função com 1.000 Dialogue: 0,0:09:45.05,0:09:47.70,Default,,0000,0000,0000,,módulo terá pouco tempo de 2 à 80. Dialogue: 0,0:09:47.70,0:09:53.99,Default,,0000,0000,0000,,Se o seu cifra usa chaves de 128 bits como AES, você deve estar realmente usando um módulo bit 3.000, Dialogue: 0,0:09:53.99,0:09:58.73,Default,,0000,0000,0000,,, embora ninguém realmente faz isso. Na realidade, as pessoas usariam 2.000 módulo bit. E Dialogue: 0,0:09:58.73,0:10:03.08,Default,,0000,0000,0000,,, em seguida, se a sua chave é muito grande, como se estivéssemos usando uma chave AES de 256 bits, em seguida, Dialogue: 0,0:10:03.08,0:10:07.72,Default,,0000,0000,0000,,fato de seu módulo precisa ser muito, muito grande. Novamente, você, você pode realmente ver o Dialogue: 0,0:10:07.72,0:10:12.35,Default,,0000,0000,0000,,efeito raiz cúbica aqui. Nós duplicou o tamanho da nossa chave e por causa da raiz cubo Dialogue: 0,0:10:12.35,0:10:16.75,Default,,0000,0000,0000,,efeito, o que isso significa é que temos que aumentar o tamanho, do nosso módulo por um Dialogue: 0,0:10:16.75,0:10:21.33,Default,,0000,0000,0000,,fator de dois cubos, ou seja, um fator de oito, que é onde esta 15.000 vem. Dialogue: 0,0:10:21.33,0:10:25.95,Default,,0000,0000,0000,,a partir de. E mais uma vez devo mencionar que não há exatamente um fator de oito por causa de Dialogue: 0,0:10:25.95,0:10:30.25,Default,,0000,0000,0000,,as constantes extra no expoente. Portanto, este é um belo quadro que mostra que Dialogue: 0,0:10:30.25,0:10:34.48,Default,,0000,0000,0000,,, se você está indo estar usando Diffie-Hellman para troca, uma chave de sessão. E que a sessão Dialogue: 0,0:10:34.48,0:10:38.61,Default,,0000,0000,0000,,chave vai ser utilizado para uma codificação de bloco com um tamanho de chave determinado, esta tabela mostra Dialogue: 0,0:10:38.61,0:10:42.63,Default,,0000,0000,0000,,qual o tamanho modular você precisa usar para que a segurança da troca de chaves Dialogue: 0,0:10:42.63,0:10:46.71,Default,,0000,0000,0000,,protocolo é comparável com a segurança da cifra de bloco você vai estar usando depois. Dialogue: 0,0:10:46.71,0:10:50.84,Default,,0000,0000,0000,,Agora, esta última linha deve ser realmente preocupante para você. Eu deveria dizer Dialogue: 0,0:10:50.84,0:10:54.91,Default,,0000,0000,0000,,você que trabalha com esse módulo de um grande é muito problemática. Esta é realmente Dialogue: 0,0:10:54.91,0:10:59.04,Default,,0000,0000,0000,,vai ser bastante lenta, e então a questão é se existe algo melhor que Dialogue: 0,0:10:59.04,0:11:03.83,Default,,0000,0000,0000,,podemos fazer? E acontece que há. Na verdade, a maneira que eu descrever o Diffie-Hellman Dialogue: 0,0:11:03.83,0:11:08.98,Default,,0000,0000,0000,,função é que eu descrevê-la com a forma como Diffie e Hellman descrito em 1976 Dialogue: 0,0:11:08.98,0:11:13.52,Default,,0000,0000,0000,,módulo usando aritmética dos números primos. O problema com números primos aritmética modular é Dialogue: 0,0:11:13.52,0:11:17.54,Default,,0000,0000,0000,,que a função de Diffie-Hellman é difícil de calcular, mas não é tão duro como você Dialogue: 0,0:11:17.54,0:11:21.61,Default,,0000,0000,0000,,como. Não há este efeito raiz cúbica que o torna um pouco mais fácil do que o que você Dialogue: 0,0:11:21.61,0:11:26.16,Default,,0000,0000,0000,,realmente gosto. E então a questão é que podemos executar o protocolo Diffie-Hellman em outro Dialogue: 0,0:11:26.16,0:11:30.30,Default,,0000,0000,0000,,configurações. E acontece que a resposta é sim. Na verdade, podemos traduzir literalmente Dialogue: 0,0:11:30.30,0:11:34.31,Default,,0000,0000,0000,,o protocolo de Diffie-Hellman a partir de um modelo de aritmética de números primos para um diferente Dialogue: 0,0:11:34.31,0:11:38.75,Default,,0000,0000,0000,,tipo de objeto algébrico e resolver o problema Diffie-Hellman em que outro Dialogue: 0,0:11:38.75,0:11:43.20,Default,,0000,0000,0000,,objeto algébrico é muito, muito mais difícil. Este outro objeto algébrico é o que é Dialogue: 0,0:11:43.20,0:11:47.76,Default,,0000,0000,0000,,chamado uma curva elíptica. E como eu disse, o cálculo da função de Diffie-Hellman em Dialogue: 0,0:11:47.76,0:11:52.74,Default,,0000,0000,0000,,essas curvas elípticas é muito mais difícil do que calcular os números primos Diffie-Hellman modulo. Dialogue: 0,0:11:52.74,0:11:57.48,Default,,0000,0000,0000,,Porque o problema é muito mais difícil, agora podemos usar objetos muito menores em Dialogue: 0,0:11:57.48,0:12:02.45,Default,,0000,0000,0000,,particular, você sabe que estaria usando números primos que são apenas uma de 160 bits ou 80 bits ou chaves Dialogue: 0,0:12:02.45,0:12:06.78,Default,,0000,0000,0000,,apenas 512 bits para 256 bits chaves. Então, porque estes módulo não crescem como Dialogue: 0,0:12:06.78,0:12:10.91,Default,,0000,0000,0000,,rápido em curvas elípticas, há geralmente uma transição lenta de distância usando o módulo Dialogue: 0,0:12:10.91,0:12:14.95,Default,,0000,0000,0000,,aritmética, ao uso de curvas elípticas. Eu não vou descrever curvas elípticas Dialogue: 0,0:12:14.95,0:12:18.74,Default,,0000,0000,0000,,agora para você, mas se isso é algo que você gostaria de aprender sobre o que posso Dialogue: 0,0:12:18.74,0:12:22.42,Default,,0000,0000,0000,,fazer isso na última semana do curso, quando discutimos mais avançado Dialogue: 0,0:12:22.42,0:12:27.15,Default,,0000,0000,0000,,tópicos. Mas na verdade, quando voltamos para Diffie-Hellman na próxima semana eu vou descrevê-lo Dialogue: 0,0:12:27.15,0:12:31.93,Default,,0000,0000,0000,,mais abstrata, para que isso realmente não importa qual você usa estrutura algébrica Dialogue: 0,0:12:31.93,0:12:36.83,Default,,0000,0000,0000,,se você usar o modelo aritmética dos números primos, ou se você usar uma curva elíptica que Dialogue: 0,0:12:36.83,0:12:41.56,Default,,0000,0000,0000,,pode meio abstrato questão que todo fora e use o conceito de Diffie-Hellman para um Dialogue: 0,0:12:41.56,0:12:46.11,Default,,0000,0000,0000,,troca de chaves e outras coisas também. E como eu disse, vamos ver que mais Dialogue: 0,0:12:46.11,0:12:50.32,Default,,0000,0000,0000,,abstratamente na próxima semana. Então, como de costume, eu quero mostrar que este protocolo bonita que eu Dialogue: 0,0:12:50.32,0:12:54.31,Default,,0000,0000,0000,,apenas mostrei, o protocolo Diffie-Hellman, é como é, na verdade é completamente inseguro Dialogue: 0,0:12:54.31,0:12:58.20,Default,,0000,0000,0000,,contra um ataque ativo. Ou seja, é completamente inseguro contra o que é chamado Dialogue: 0,0:12:58.20,0:13:02.13,Default,,0000,0000,0000,,o homem no meio ataque. Precisamos fazer algo mais do que este protocolo para Dialogue: 0,0:13:02.13,0:13:06.02,Default,,0000,0000,0000,,fazer é segura contra o homem no meio. E mais uma vez vamos voltar a Diffie Dialogue: 0,0:13:06.02,0:13:10.14,Default,,0000,0000,0000,,Hellman e torná-la segura contra o homem no meio da semana seguinte. Okay. Então vamos ver Dialogue: 0,0:13:10.14,0:13:14.65,Default,,0000,0000,0000,,porque o protocolo que eu mostrei é inseguro contra ataques ativos. Bem Dialogue: 0,0:13:14.65,0:13:18.77,Default,,0000,0000,0000,,suponha que temos esse homem no meio que está tentando espionar o Dialogue: 0,0:13:18.77,0:13:23.39,Default,,0000,0000,0000,,conversa entre Alice e Bob. Bem assim, o protocolo começa com Alice enviando Dialogue: 0,0:13:23.56,0:13:28.31,Default,,0000,0000,0000,,g ao longo de um para Bob. Bem, então o homem no meio é que vai interceptar e Dialogue: 0,0:13:28.31,0:13:32.78,Default,,0000,0000,0000,,ele vai levar a mensagem de que Alice enviou e ele vai substituí-lo com a sua Dialogue: 0,0:13:32.78,0:13:37.11,Default,,0000,0000,0000,,própria mensagem. Então, ele é chamado a ', e vamos escrever que é g a um ". Dialogue: 0,0:13:37.11,0:13:41.94,Default,,0000,0000,0000,,Ok? Então o homem no meio escolhe o seu "um próprio eo que ele envia para Bob é Dialogue: 0,0:13:41.94,0:13:46.59,Default,,0000,0000,0000,,realmente g para a 'a. Agora pobre Bob não sabe que o homem no meio Dialogue: 0,0:13:46.59,0:13:51.36,Default,,0000,0000,0000,,realmente fez alguma coisa para esse tráfego, tudo o que ele vê é que ele tem o valor de A '. Como Dialogue: 0,0:13:51.36,0:13:55.95,Default,,0000,0000,0000,,até onde ele sabe, que o valor veio de Alice. Então, o que é que ele vai fazer em resposta? Dialogue: 0,0:13:55.95,0:14:00.72,Default,,0000,0000,0000,,Bem, ele vai mandar de volta o seu valor B para fora que é g a b volta para Alice. Bem Dialogue: 0,0:14:00.72,0:14:05.46,Default,,0000,0000,0000,,novamente o homem no meio vai interceptar este B. Ele vai gerar o seu Dialogue: 0,0:14:05.46,0:14:10.43,Default,,0000,0000,0000,,b própria "e que ele realmente envia de volta para Alice é B", que é g a b '. Dialogue: 0,0:14:10.43,0:14:16.81,Default,,0000,0000,0000,,Ok, agora o que acontece? Bem Alice vai calcular a sua parte do Dialogue: 0,0:14:16.81,0:14:22.81,Default,,0000,0000,0000,,chave secreta e ela vai ficar g para o ab '. Bob vai calcular a sua parte Dialogue: 0,0:14:22.81,0:14:28.28,Default,,0000,0000,0000,,chave secreta e ele vai ficar g para os tempos de um 'b. Ok, estes agora você Dialogue: 0,0:14:28.28,0:14:33.59,Default,,0000,0000,0000,,aviso estas não são as mesmas teclas. No homem no meio, porque ele sabe tanto "A Dialogue: 0,0:14:33.59,0:14:38.90,Default,,0000,0000,0000,,e B ", ele pode calcular tanto para o g ab 'e g a ba'. Sim, é Dialogue: 0,0:14:38.90,0:14:44.22,Default,,0000,0000,0000,,não é difícil de ver o homem no meio sabe os dois valores. E, como resultado, agora ele Dialogue: 0,0:14:44.22,0:14:49.53,Default,,0000,0000,0000,,pode basicamente jogar este homem no meio e quando Alice envia uma mensagem criptografada Dialogue: 0,0:14:49.53,0:14:54.71,Default,,0000,0000,0000,,de Bob o homem no meio pode simplesmente decifrar esta mensagem, porque ele sabe o Dialogue: 0,0:14:54.71,0:14:59.62,Default,,0000,0000,0000,,chave secreta que Alice mensagem criptografada com, re-criptografá-la utilizando a chave de Bob. E Dialogue: 0,0:14:59.62,0:15:04.10,Default,,0000,0000,0000,,, em seguida, enviar a mensagem sobre sobre a Bob. E desta forma Alice enviou a mensagem, Bob Dialogue: 0,0:15:04.10,0:15:08.24,Default,,0000,0000,0000,,recebido a mensagem. Bob acredita que a mensagem é segura. Mas, de facto, que Dialogue: 0,0:15:08.24,0:15:12.60,Default,,0000,0000,0000,,mensagem foi enviada através do homem no meio. O homem no meio descriptografados Dialogue: 0,0:15:12.60,0:15:17.15,Default,,0000,0000,0000,,-lo, re-codificado-lo para Bob. Ao mesmo tempo que era capaz de completamente lê-lo, Dialogue: 0,0:15:17.15,0:15:21.75,Default,,0000,0000,0000,,modificá-lo, se ele quer, e assim por diante. Assim, o protocolo torna-se completamente inseguro Dialogue: 0,0:15:21.75,0:15:26.53,Default,,0000,0000,0000,,dar nd homem no meio. E assim como eu disse nós vamos ter para melhorar a Dialogue: 0,0:15:26.53,0:15:30.70,Default,,0000,0000,0000,,protocolo de alguma forma para se defender contra os homens no meio, mas acontece que é Dialogue: 0,0:15:30.70,0:15:34.92,Default,,0000,0000,0000,,na verdade não tão difícil de melhorar e impedir o homem no meio ataques. Dialogue: 0,0:15:34.92,0:15:39.38,Default,,0000,0000,0000,,E nós vamos voltar a isso e ver que em uma semana ou duas. O último acho que eu quero Dialogue: 0,0:15:39.38,0:15:43.66,Default,,0000,0000,0000,,fazer é mostrar-lhe uma propriedade interessante do protocolo Diffie-Hellman. Na verdade, eu Dialogue: 0,0:15:43.66,0:15:48.05,Default,,0000,0000,0000,,quero mostrar a você que este protocolo pode ser visto como um protocolo não-interativo. Assim, Dialogue: 0,0:15:48.05,0:15:52.49,Default,,0000,0000,0000,,o que quero dizer com isso? Então, imagine que temos um monte de usuários, você sabe, milhões Dialogue: 0,0:15:52.49,0:15:56.34,Default,,0000,0000,0000,,de usuários. Vamos chamá-los de Alice, Bob, Charlie, David e assim por diante e assim por diante. Dialogue: 0,0:15:56.50,0:16:00.57,Default,,0000,0000,0000,,Cada um deles vai escolher um valor aleatório, segredo, e, em seguida, em seu Dialogue: 0,0:16:00.57,0:16:04.42,Default,,0000,0000,0000,,perfis do Facebook, eles vão escrever, sua contribuição para o Dialogue: 0,0:16:04.42,0:16:08.49,Default,,0000,0000,0000,,Diffie-Hellman protocolo. Tudo bem, então todo mundo só escreve você sabe g para Dialogue: 0,0:16:08.49,0:16:13.60,Default,,0000,0000,0000,,a um, g para o b, g para o C e assim por diante. Agora a coisa interessante sobre isso é, Dialogue: 0,0:16:13.60,0:16:18.94,Default,,0000,0000,0000,,se dizem Alice e Charlie quer estabelecer uma chave compartilhada eles não precisam se comunicar Dialogue: 0,0:16:18.94,0:16:24.36,Default,,0000,0000,0000,,de todo. Basicamente Alice iria ler e perfil público de Charlie. Charlie iria Dialogue: 0,0:16:24.36,0:16:29.64,Default,,0000,0000,0000,,e ler o perfil de Alice público. E agora, boom, têm imediatamente uma chave secreta. Dialogue: 0,0:16:29.64,0:16:34.98,Default,,0000,0000,0000,,Ou seja, agora, Alice sabe, g a c e a. Charlie sabe g à uma e с. E como Dialogue: 0,0:16:34.98,0:16:39.99,Default,,0000,0000,0000,,um resultado, ambos podem calcular п à AC. Então, em certo sentido, uma vez que eles Dialogue: 0,0:16:39.99,0:16:44.67,Default,,0000,0000,0000,,postou suas contribuições para o protocolo Diffie-Hellman para seu público Dialogue: 0,0:16:44.67,0:16:50.08,Default,,0000,0000,0000,,os outros em tudo para criar uma chave compartilhada. Dialogue: 0,0:16:50.08,0:16:53.92,Default,,0000,0000,0000,,têm imediatamente uma chave compartilhada e agora eles podem começar a se comunicar Dialogue: 0,0:16:53.92,0:16:58.19,Default,,0000,0000,0000,,de forma segura através do Facebook ou não um com o outro. E notem que isto é verdade para Dialogue: 0,0:16:58.19,0:17:02.12,Default,,0000,0000,0000,,qualquer usuário do Facebook. Assim, logo que li o perfil público de alguém, eu imediatamente Dialogue: 0,0:17:02.12,0:17:06.20,Default,,0000,0000,0000,,têm uma chave compartilhada com eles, sem nunca se comunicar com eles. Esta propriedade é Dialogue: 0,0:17:06.20,0:17:09.97,Default,,0000,0000,0000,,às vezes chamado de uma propriedade não-interativo do Diffie-Hellman. Então agora, vamos Dialogue: 0,0:17:09.97,0:17:14.72,Default,,0000,0000,0000,,me mostrar-lhe um problema em aberto. E este é um problema em aberto que tem sido aberto para as idades Dialogue: 0,0:17:14.72,0:17:19.41,Default,,0000,0000,0000,,e eras e eras. Por isso, seria muito legal se um de vocês pode realmente resolvê-lo. O Dialogue: 0,0:17:19.41,0:17:24.04,Default,,0000,0000,0000,,questão é, podemos fazer isso por mais de duas partes? Em outras palavras, dizer que temos Dialogue: 0,0:17:24.04,0:17:28.56,Default,,0000,0000,0000,,quatro partes. Todos eles postam seus valores para seus perfis do Facebook. E agora Dialogue: 0,0:17:28.56,0:17:33.37,Default,,0000,0000,0000,,gostaríamos de fazê-lo que apenas lendo perfis no Facebook, todos eles podem configurar Dialogue: 0,0:17:33.37,0:17:38.06,Default,,0000,0000,0000,,palavras, é Alice, que ela vai, ela vai fazer é ela só vai Dialogue: 0,0:17:38.06,0:17:42.43,Default,,0000,0000,0000,,ler os perfis do público, os três amigos, Bob, Charlie e David. E Dialogue: 0,0:17:42.43,0:17:47.65,Default,,0000,0000,0000,,ela já pode calcular a chave compartilhada com eles. E da mesma forma David está apenas indo Dialogue: 0,0:17:47.65,0:17:54.19,Default,,0000,0000,0000,,ler o perfil público de Charlie. Bob e Alice. E já que ele tem uma chave compartilhada Dialogue: 0,0:17:54.19,0:17:58.72,Default,,0000,0000,0000,,com todos os quatro deles. Ok, então a questão é se podemos tipo de configuração Dialogue: 0,0:17:58.88,0:18:03.55,Default,,0000,0000,0000,,não-interativamente estes, estas chaves compartilhadas para grupos que são maiores do que apenas dois Dialogue: 0,0:18:03.55,0:18:07.99,Default,,0000,0000,0000,,pessoas. Então, como eu disse, para n igual a dois, este é apenas um protocolo Diffie-Hellman. Em Dialogue: 0,0:18:07.99,0:18:12.59,Default,,0000,0000,0000,,outras palavras, se apenas dois partidos querem criar uma chave compartilhada sem comunicar Dialogue: 0,0:18:12.59,0:18:16.70,Default,,0000,0000,0000,,um com o outro, isso é apenas Diffie-Hellman. Acontece que, para N igual a Dialogue: 0,0:18:16.70,0:18:21.47,Default,,0000,0000,0000,,três, nós também sabemos como fazê-lo, há um protocolo conhecido, é chamado de protocolo devido Dialogue: 0,0:18:21.47,0:18:25.69,Default,,0000,0000,0000,,de Joux. Ela já usa matemática muito, muito chique, muito mais complicado Dialogue: 0,0:18:25.69,0:18:29.96,Default,,0000,0000,0000,,matemática do que aquilo que acabei de mostrar. E para N igual a quatro, ou cinco, ou Dialogue: 0,0:18:29.96,0:18:34.46,Default,,0000,0000,0000,,nada acima deste, acima de quatro, este problema é completamente aberta. Quase o Dialogue: 0,0:18:34.46,0:18:38.79,Default,,0000,0000,0000,,caso em que quatro pessoas postar algo para os perfis públicos e então todos Dialogue: 0,0:18:38.79,0:18:42.91,Default,,0000,0000,0000,,pessoa lê o perfil público e eles têm uma chave comum compartilhado, isto é Dialogue: 0,0:18:42.91,0:18:47.46,Default,,0000,0000,0000,,algo que não sei como fazer, mesmo para quatro pessoas. E este é um problema que é Dialogue: 0,0:18:47.46,0:18:52.01,Default,,0000,0000,0000,,sido aberto por eras e eras, é um tipo de problema legal pensar e assim ver se Dialogue: 0,0:18:52.01,0:18:56.07,Default,,0000,0000,0000,,você pode resolvê-lo, se quiser, é a fama instantânea no mundo crypto. Ok, então Dialogue: 0,0:18:56.07,0:19:00.52,Default,,0000,0000,0000,,Vou parar por aqui, e vamos continuar com um outro mecanismo de troca de chaves no próximo segmento.