[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:03.75,Default,,0000,0000,0000,,Neste segmento, quero falar sobre outra forma de criptografia, chamado formato Dialogue: 0,0:00:03.75,0:00:07.32,Default,,0000,0000,0000,,criptografia preservar. Esta é mais uma vez algo que surge na prática bastante Dialogue: 0,0:00:07.32,0:00:10.62,Default,,0000,0000,0000,,frequência, especialmente quando se trata de números de cartão de crédito de encriptação. E, assim, Dialogue: 0,0:00:10.62,0:00:14.24,Default,,0000,0000,0000,,vamos ver como ele funciona. Lembre-se que um número de cartão de crédito é típico 16 Dialogue: 0,0:00:14.24,0:00:18.98,Default,,0000,0000,0000,,dígitos, divididos em quatro blocos de quatro dígitos cada. Você provavelmente já ouviu antes Dialogue: 0,0:00:18.98,0:00:23.42,Default,,0000,0000,0000,,que os primeiros seis dígitos são o que é chamado o número BIN, que representam o Dialogue: 0,0:00:23.42,0:00:28.12,Default,,0000,0000,0000,,ID emitente. Por exemplo, todos os cartões de crédito emitidos pela VISA sempre começam com o dígito Dialogue: 0,0:00:28.12,0:00:34.11,Default,,0000,0000,0000,,quatro; todos os cartões de crédito emitidos pela MasterCard início com dígitos 51 a 55, e Dialogue: 0,0:00:34.11,0:00:38.81,Default,,0000,0000,0000,,assim por diante e assim por diante. Os próximos nove dígitos são de fato o número da conta que é Dialogue: 0,0:00:38.81,0:00:43.28,Default,,0000,0000,0000,,específico para a, para o cliente em particular e do último dígito é uma soma de verificação Dialogue: 0,0:00:43.28,0:00:48.03,Default,,0000,0000,0000,,que é calculado a partir dos últimos quinze dígitos. Portanto, há cerca de 20.000 grande Dialogue: 0,0:00:48.03,0:00:52.85,Default,,0000,0000,0000,,números e por isso, se você fizer o cálculo acontece lá fora, são cerca de dois a 42 Dialogue: 0,0:00:52.85,0:00:56.73,Default,,0000,0000,0000,,números de cartão de crédito possíveis, o que corresponde a cerca de 42 bits de Dialogue: 0,0:00:56.73,0:01:01.49,Default,,0000,0000,0000,,informação que você precisa para codificar se você quiser representar um número de cartão de crédito Dialogue: 0,0:01:01.49,0:01:05.100,Default,,0000,0000,0000,,compacta. Agora o problema é este. Suponha que nós queríamos para criptografar cartão de crédito Dialogue: 0,0:01:05.100,0:01:10.71,Default,,0000,0000,0000,,números, de modo que quando o utilizador swipes o número do cartão de crédito no ponto do Dialogue: 0,0:01:10.71,0:01:14.64,Default,,0000,0000,0000,,terminal de venda, principalmente no, você sabe, o dinheiro comerciantes registar. O dinheiro Dialogue: 0,0:01:14.64,0:01:18.67,Default,,0000,0000,0000,,registo, este é chamado o terminal de ponto de venda, vai em frente e criptografa o Dialogue: 0,0:01:18.67,0:01:22.75,Default,,0000,0000,0000,,número de cartão de crédito usando um pay-chave e está codificado toda a maneira até que ele vai Dialogue: 0,0:01:22.75,0:01:27.04,Default,,0000,0000,0000,,para o banco ou até mesmo além do que, talvez até todo o caminho quando se vai Dialogue: 0,0:01:27.04,0:01:31.12,Default,,0000,0000,0000,,para Visa. Agora, o problema é que estes números de cartão de crédito realmente passar através Dialogue: 0,0:01:31.12,0:01:35.30,Default,,0000,0000,0000,,muitos, muitos, muitos pontos de processamento. Todos eles esperar obter basicamente algo Dialogue: 0,0:01:35.30,0:01:39.68,Default,,0000,0000,0000,,que se parece com um número de cartão de crédito como um resultado. Então, se nós simplesmente queria criptografar Dialogue: 0,0:01:39.68,0:01:43.89,Default,,0000,0000,0000,,algo no ponto final, a um ponto final, e descodificar na outra extremidade Dialogue: 0,0:01:43.89,0:01:48.09,Default,,0000,0000,0000,,ponto, na verdade não é assim tão fácil, porque se tudo que fizemos foi criptografá-la utilizando AES, Dialogue: 0,0:01:48.09,0:01:52.75,Default,,0000,0000,0000,,, mesmo que apenas usou AES determinista. A saída do cartão de crédito encriptado Dialogue: 0,0:01:52.75,0:01:57.16,Default,,0000,0000,0000,,número seria 128 bloco bit. Dezasseis bytes que seria, que teria de ser Dialogue: 0,0:01:57.16,0:02:01.69,Default,,0000,0000,0000,,enviado a partir de um sistema para o outro, até que atinja o seu destino. Mas cada um dos Dialogue: 0,0:02:01.69,0:02:06.11,Default,,0000,0000,0000,,estes processadores, então, teria que ser mudado, porque eles estão todos esperando Dialogue: 0,0:02:06.11,0:02:10.19,Default,,0000,0000,0000,,obter números de cartão de crédito. E assim a questão é, podemos criptografar no dinheiro Dialogue: 0,0:02:10.19,0:02:14.39,Default,,0000,0000,0000,,registo, de modo que a criptografia resultante se parece com um cartão de crédito Dialogue: 0,0:02:14.39,0:02:18.53,Default,,0000,0000,0000,,número. E, como resultado, nenhum destes sistemas intermediários teria de ser Dialogue: 0,0:02:18.53,0:02:22.94,Default,,0000,0000,0000,,alterado. Apenas os pontos de extremidade teria de ser alterado. E ao fazê-lo seria Dialogue: 0,0:02:22.94,0:02:27.40,Default,,0000,0000,0000,,realmente obter end-to-end encryption sem ter que realmente mudar um monte de Dialogue: 0,0:02:27.40,0:02:31.97,Default,,0000,0000,0000,,software ao longo do caminho. Então a questão é, novamente, podemos ter esse mecanismo Dialogue: 0,0:02:31.97,0:02:36.55,Default,,0000,0000,0000,,chamado criptografia formato de preservação, onde a encriptação de um cartão de crédito próprio produz Dialogue: 0,0:02:36.55,0:02:40.88,Default,,0000,0000,0000,,algo que se parece com um cartão de crédito? Então é isso que eu Bolt-. O crédito criptografado Dialogue: 0,0:02:40.88,0:02:44.72,Default,,0000,0000,0000,,número do cartão deve se parecer com um número válido de cartão de crédito regular. Então este é o Dialogue: 0,0:02:44.72,0:02:48.77,Default,,0000,0000,0000,,objetivo de preservar o formato de criptografia. Mais abstratamente o que é que estamos tentando fazer, Dialogue: 0,0:02:48.77,0:02:54.06,Default,,0000,0000,0000,,é basicamente construir uma permutação pseudo-aleatório no ponto zero de S menos um Dialogue: 0,0:02:54.06,0:02:59.10,Default,,0000,0000,0000,,Para qualquer dado S. Assim, para o conjunto de números de cartão de crédito, S seria mais ou menos, você Dialogue: 0,0:02:59.10,0:03:03.97,Default,,0000,0000,0000,,saber, dois para o 42. Na verdade, ele vai ser, não exatamente dois para o 42. Vai Dialogue: 0,0:03:03.97,0:03:08.42,Default,,0000,0000,0000,,ser alguns números engraçadas que está em torno de dois a 42. E nosso objetivo é construir uma PRP Dialogue: 0,0:03:08.42,0:03:14.33,Default,,0000,0000,0000,,que funciona exactamente no intervalo, de zero a S menos um. E o que está dado como entrada Dialogue: 0,0:03:14.33,0:03:20.37,Default,,0000,0000,0000,,é, PRF. Digamos, algo como AES, que atua em blocos muito maiores, por exemplo, atua em Dialogue: 0,0:03:20.37,0:03:24.38,Default,,0000,0000,0000,,dezesseis blocos de bytes. Então, nós estamos tentando, de alguma forma, diminuir o domínio do Dialogue: 0,0:03:24.38,0:03:29.58,Default,,0000,0000,0000,,PRF para ajustá-la os dados que nos são dadas. E as perguntas é basicamente como Dialogue: 0,0:03:29.58,0:03:33.64,Default,,0000,0000,0000,,para fazer isso. Bem, uma vez que temos uma tal construção, podemos facilmente nos para Dialogue: 0,0:03:33.64,0:03:37.61,Default,,0000,0000,0000,,cartão encriptar números de crédito. O que faria é que a levaria a um crédito dado Dialogue: 0,0:03:37.61,0:03:41.94,Default,,0000,0000,0000,,número do cartão. Gostaríamos de codificá-lo de tal forma que agora ele é representado como um número entre Dialogue: 0,0:03:41.94,0:03:47.31,Default,,0000,0000,0000,,zero eo número total de números de cartão de crédito. Então, nós aplicamos a nossa PRP para que Dialogue: 0,0:03:47.31,0:03:51.82,Default,,0000,0000,0000,,seria criptografar este número de cartão de crédito, você sabe, usando o número dois da construção Dialogue: 0,0:03:51.82,0:03:56.43,Default,,0000,0000,0000,,o segmento de criptografia determinística. E então poderíamos mapear o número final de volta para Dialogue: 0,0:03:56.43,0:04:00.66,Default,,0000,0000,0000,,ser regular, para olhar como val, regular o número do cartão, de crédito válido e, em seguida, enviar Dialogue: 0,0:04:00.66,0:04:05.08,Default,,0000,0000,0000,,este ao longo do caminho. Então isso é como, isso é novamente criptografia expansão não. O Dialogue: 0,0:04:05.08,0:04:09.44,Default,,0000,0000,0000,,melhor que podemos fazer, como eu disse antes é criptografar usando um PRP, exceto novamente o Dialogue: 0,0:04:09.44,0:04:14.14,Default,,0000,0000,0000,,desafios técnicos que precisam de um PRP, que age sobre esse conjunto engraçado olhar especial Dialogue: 0,0:04:14.14,0:04:19.81,Default,,0000,0000,0000,,de zero a S-1 para esse valor pré determinado de S. Portanto, meu objetivo é mostrar-lhe como Dialogue: 0,0:04:19.81,0:04:23.38,Default,,0000,0000,0000,,para construir isso e uma vez vemos como fazê-lo, você também vai saber como criptografar Dialogue: 0,0:04:23.38,0:04:27.74,Default,,0000,0000,0000,,número de cartão de crédito de modo que o resultado em texto cifra é em si um cartão de crédito Dialogue: 0,0:04:27.74,0:04:33.18,Default,,0000,0000,0000,,número. Assim, as obras de construção em duas etapas. A primeira coisa que fazemos é diminuir Dialogue: 0,0:04:33.18,0:04:38.55,Default,,0000,0000,0000,,PRF nosso a partir do conjunto de 0,1 ao fim, digamos a zero um para o 128 e, no caso de Dialogue: 0,0:04:38.55,0:04:43.96,Default,,0000,0000,0000,,AES, duas 0,1 para o T, onde T é o mais próximo potência de dois para o valor S. Assim Dialogue: 0,0:04:44.58,0:04:50.04,Default,,0000,0000,0000,,palavra S é algum número louco em torno de dois a 41. T seria basicamente, em seguida, 42 Dialogue: 0,0:04:50.04,0:04:55.34,Default,,0000,0000,0000,,porque essa é a potência mais próxima dos dois que está logo acima do valor de S. Assim, o Dialogue: 0,0:04:55.34,0:04:59.40,Default,,0000,0000,0000,,construção é basicamente vou usar o Ruby construção [inaudível]. O que usar Dialogue: 0,0:04:59.40,0:05:05.16,Default,,0000,0000,0000,,PRF F é primo. Que actua sobre os blocos de tamanho dois sobre dois. Então, imagine por exemplo Dialogue: 0,0:05:05.16,0:05:10.10,Default,,0000,0000,0000,,, no caso de cartão de crédito, t seria 42, porque dois dos 42 nós dissemos é o Dialogue: 0,0:05:10.30,0:05:15.13,Default,,0000,0000,0000,,próxima potência de dois que é maior do que, que, de s. S é o número de crédito, Dialogue: 0,0:05:15.13,0:05:20.39,Default,,0000,0000,0000,,número total de cartões de crédito. Então, vamos precisar de um PRF agora que atua em 21 byte Dialogue: 0,0:05:20.39,0:05:25.83,Default,,0000,0000,0000,,entradas. Portanto, uma forma de fazer isso é simplesmente tomar a cifra de bloco AES, tratá-lo como um Dialogue: 0,0:05:25.83,0:05:30.44,Default,,0000,0000,0000,,PRF em 128 entradas de bytes, e depois simplesmente truncar a saída para o mínimo Dialogue: 0,0:05:30.44,0:05:35.24,Default,,0000,0000,0000,,significativo de 21 bytes. Ok, então que nos foi dado um valor de byte 21. Gostaríamos de acrescentar Dialogue: 0,0:05:35.24,0:05:40.36,Default,,0000,0000,0000,,zeros a ele, para que cheguemos 128 bytes como resultado. Gostaríamos de aplicar AES para que e Dialogue: 0,0:05:40.36,0:05:45.02,Default,,0000,0000,0000,,então seria truncar volta para 21 bytes. Agora eu devo te dizer que isso é realmente Dialogue: 0,0:05:45.02,0:05:48.72,Default,,0000,0000,0000,,uma maneira simples de fazer isso, mas na verdade não é a melhor maneira de fazê-lo há Dialogue: 0,0:05:48.72,0:05:54.18,Default,,0000,0000,0000,,maneiras realmente melhores para truncar um PRF. Em n bits para ap, PRF em dois mais de dois bits. Dialogue: 0,0:05:54.18,0:05:58.45,Default,,0000,0000,0000,,Mas para os nossos fins, para efeitos deste segmento, o método de truncamento eu disse Dialogue: 0,0:05:58.63,0:06:03.11,Default,,0000,0000,0000,,é bom o suficiente. Então vamos usar esse método particular. Ok, então agora, nós temos Dialogue: 0,0:06:03.11,0:06:09.28,Default,,0000,0000,0000,,convertido nossa cifra de bloco AES em um PRF em dois mais de dois bits, digamos, em 21 bits. Mas Dialogue: 0,0:06:09.28,0:06:14.11,Default,,0000,0000,0000,,o que realmente queremos é uma PRP. E assim o que vamos fazer é que vamos ligar nossa nova PRF, F Dialogue: 0,0:06:14.11,0:06:17.94,Default,,0000,0000,0000,,privilegiada, diretamente na construção [inaudível]. Se você se lembra, este é Dialogue: 0,0:06:17.94,0:06:22.49,Default,,0000,0000,0000,,basicamente uma construção fiestal. Dizemos isso, quando falamos sobre DES. Somente Dialogue: 0,0:06:22.49,0:06:27.01,Default,,0000,0000,0000,,Luby-Rackoff usado três rodadas, e sabemos que este converte um PRF seguro em Dialogue: 0,0:06:27.01,0:06:31.96,Default,,0000,0000,0000,,uma PRP seguro em duas vezes o tamanho do bloco. Em outras palavras, começamos a partir de um PRF seguro Dialogue: 0,0:06:31.96,0:06:36.97,Default,,0000,0000,0000,,em 21 bits, e que nos dará e Luby-Rackoff nos dará uma PRF seguro em Dialogue: 0,0:06:36.97,0:06:41.42,Default,,0000,0000,0000,,42 bits, que é o que queríamos. Agora, devo dizer-lhe que os parâmetros de erro Dialogue: 0,0:06:41.42,0:06:45.53,Default,,0000,0000,0000,,na construção [inaudível] não são tão bons quanto poderiam ser. E, de fato, um Dialogue: 0,0:06:45.53,0:06:49.69,Default,,0000,0000,0000,,melhor coisa a fazer é usar sete rodadas de Fiestal. Em outras palavras, nós vamos fazer Dialogue: 0,0:06:49.69,0:06:54.78,Default,,0000,0000,0000,,este sete vezes cada vez que vamos usar uma chave diferente. Então você notar, aqui, estamos Dialogue: 0,0:06:54.78,0:06:59.32,Default,,0000,0000,0000,,usando apenas três teclas. Deveríamos estar usando deveríamos estar fazendo isso por sete vezes usando Dialogue: 0,0:06:59.32,0:07:03.84,Default,,0000,0000,0000,,sete chaves diferentes. E depois há um bom resultado, devido a [inaudível], que Dialogue: 0,0:07:03.84,0:07:06.100,Default,,0000,0000,0000,,mostra que a construção [inaudível], basicamente, tem como boa erro [inaudível] Dialogue: 0,0:07:06.100,0:07:11.31,Default,,0000,0000,0000,,termos como possível. Assim, os termos de erro no teorema de segurança vai ser basicamente dois Dialogue: 0,0:07:11.31,0:07:15.98,Default,,0000,0000,0000,,ao razoável T.. Portanto, agora temos uma permutação pseudo-aleatório que opera em estreita Dialogue: 0,0:07:15.98,0:07:21.53,Default,,0000,0000,0000,,potência de dois para o valor de S. Mas isso não é bom o suficiente. Nós realmente deseja obter um Dialogue: 0,0:07:21.53,0:07:26.70,Default,,0000,0000,0000,,pseudo-aleatório permutação no ponto zero de S menos um. Assim, dois passos nos levarão Dialogue: 0,0:07:26.70,0:07:30.77,Default,,0000,0000,0000,,para baixo de zero para o T, para o ponto zero real para o S menos um que nós somos Dialogue: 0,0:07:30.77,0:07:35.14,Default,,0000,0000,0000,,interessado polegadas E essa construção é, novamente, muito, muito bonito, então deixe-me mostrar Dialogue: 0,0:07:35.14,0:07:39.07,Default,,0000,0000,0000,,como ele funciona. Então, novamente, nós estamos dando esta PRP, que opera em uma potência de dois. Dialogue: 0,0:07:39.07,0:07:44.36,Default,,0000,0000,0000,,E nós queremos ir para baixo a um PRP, que opera em algo, um pouco menor. Dialogue: 0,0:07:44.36,0:07:49.24,Default,,0000,0000,0000,,Ok, então aqui está sobre as obras de construção. Basicamente, nós estamos dando entrada do X nos conjuntos Dialogue: 0,0:07:49.24,0:07:53.15,Default,,0000,0000,0000,,zero a S menos um que nós queremos. E o que vamos fazer é que vamos Dialogue: 0,0:07:53.15,0:07:57.44,Default,,0000,0000,0000,,reiterar o seguinte procedimento novamente e novamente. Então, primeiro de tudo, mapear X em Dialogue: 0,0:07:57.44,0:08:02.48,Default,,0000,0000,0000,,esta variável temporária Y. E agora estamos só vai criptografar a entrada X e colocar o Dialogue: 0,0:08:02.48,0:08:07.21,Default,,0000,0000,0000,,resultado em Y. Se Y está dentro do nosso conjunto de destino, paramos e mostramos Y. Se Dialogue: 0,0:08:07.21,0:08:12.46,Default,,0000,0000,0000,,novamente e novamente e novamente até que finalmente Y Dialogue: 0,0:08:12.46,0:08:16.70,Default,,0000,0000,0000,,cai em nosso conjunto de destino e que a saída desse valor. Assim, em uma imagem, deixe-me Dialogue: 0,0:08:16.70,0:08:22.51,Default,,0000,0000,0000,,explicar como isso funciona. Então, vamos começar de um ponto no nosso conjunto de destino. E agora, agora nós Dialogue: 0,0:08:22.51,0:08:27.27,Default,,0000,0000,0000,,aplicar o, E a função e nós pode ser mapeado para este ponto fora de nosso alvo Dialogue: 0,0:08:27.27,0:08:30.87,Default,,0000,0000,0000,,set, então nós não vamos parar. Então agora nós aplicamos a função E novamente, então poderíamos Dialogue: 0,0:08:30.87,0:08:35.05,Default,,0000,0000,0000,,ser mapeados para esse ponto e agora vamos aplicar a função E mais uma vez e agora tudo de uma Dialogue: 0,0:08:35.05,0:08:39.12,Default,,0000,0000,0000,,repente, mapear a este ponto, e então paramos, e que de saída do nosso. Ok, então Dialogue: 0,0:08:39.12,0:08:44.20,Default,,0000,0000,0000,,que? é como nós mapear pontos entre de zero a S menos um, para outros pontos do Dialogue: 0,0:08:44.20,0:08:48.49,Default,,0000,0000,0000,,zero a S menos um. Deve ser muito claro que esta é inversível. Para inverter, Dialogue: 0,0:08:48.49,0:08:52.47,Default,,0000,0000,0000,,tudo o que eu vou fazer é que eu só descriptografar e caminhada, de certa forma, na direção oposta. Assim Dialogue: 0,0:08:52.47,0:08:56.34,Default,,0000,0000,0000,,eu vou decifrar, e em seguida, descriptografar, e em seguida, descriptografar, até que finalmente, eu cai na Dialogue: 0,0:08:56.34,0:09:00.42,Default,,0000,0000,0000,,conjunto, de zero a S menos um. E isso me dá o inverso do ponto que eu queria Dialogue: 0,0:09:00.42,0:09:04.62,Default,,0000,0000,0000,,para. Portanto, este é, de fato, um PRP. A questão é se é uma PRP seguro, e Dialogue: 0,0:09:04.62,0:09:08.74,Default,,0000,0000,0000,,veremos que em apenas um minuto. Mas antes disso, deixe-me perguntar, quantas Dialogue: 0,0:09:08.74,0:09:13.32,Default,,0000,0000,0000,,iterações que você espera que vamos precisar? E eu quero lembrá-lo novamente, antes de Dialogue: 0,0:09:13.32,0:09:19.64,Default,,0000,0000,0000,,eu lhe fazer essa pergunta, que, de fato, S é menor que dois para o T. Mas é mais Dialogue: 0,0:09:19.64,0:09:25.09,Default,,0000,0000,0000,,do que dois para o T menos um. Assim, em particular, S é maior do que dois para o T Dialogue: 0,0:09:25.09,0:09:29.66,Default,,0000,0000,0000,,mais de dois. E a minha pergunta para vocês agora é quantas iterações que vamos precisar de Dialogue: 0,0:09:32.91,0:09:35.08,Default,,0000,0000,0000,,média. Até que esse processo converge. Portanto, a resposta é que nós vamos precisar de dois Dialogue: 0,0:09:35.08,0:09:38.98,Default,,0000,0000,0000,,iterações, então realmente apenas um pequeno número constante de iterações. E assim este Dialogue: 0,0:09:38.98,0:09:43.16,Default,,0000,0000,0000,,nos dará um mecanismo muito, muito eficiente, que vai nos mover para baixo de zero Dialogue: 0,0:09:43.16,0:09:48.57,Default,,0000,0000,0000,,um ao T para zero para o S-1. Agora, quando falamos de segurança, verifica-se Dialogue: 0,0:09:48.57,0:09:53.21,Default,,0000,0000,0000,,passo isso aqui é apertado. Em outras palavras, não há realmente nenhuma segurança adicional Dialogue: 0,0:09:53.21,0:09:59.25,Default,,0000,0000,0000,,custo para ir para baixo a partir de dois para o T para zero para S-1. E a razão que é verdade, Dialogue: 0,0:09:59.25,0:10:02.73,Default,,0000,0000,0000,,na verdade é novamente um teorema muito aguda para provar, mas eu, não vou fazê-lo aqui. Talvez Dialogue: 0,0:10:02.73,0:10:07.62,Default,,0000,0000,0000,,eu vou deixá-lo como um exercício para vocês para discutir. Que diz que se você me der Dialogue: 0,0:10:07.62,0:10:11.92,Default,,0000,0000,0000,,quaisquer dois conjuntos Y e X, em que Y está contido dentro de X, em seguida, aplicar a Dialogue: 0,0:10:11.92,0:10:16.52,Default,,0000,0000,0000,,transformação que acabamos de ver a uma permutação aleatória de X para X realmente Dialogue: 0,0:10:16.52,0:10:21.34,Default,,0000,0000,0000,,dá uma permutação aleatória de Y a Y. Então, isso significa que se começamos com uma verdadeira Dialogue: 0,0:10:21.34,0:10:25.58,Default,,0000,0000,0000,,permutação aleatória de X, você vai acabar com uma permutação verdadeiramente aleatória Y. E Dialogue: 0,0:10:25.58,0:10:29.44,Default,,0000,0000,0000,,desde, bem, a permutação estamos começando com é indistinguível Dialogue: 0,0:10:29.44,0:10:33.37,Default,,0000,0000,0000,,aleatória X, vamos acabar com uma permutação que é indistinguível Dialogue: 0,0:10:33.37,0:10:37.76,Default,,0000,0000,0000,,aleatória Y. Ok, então esta é uma construção muito apertado e como eu disse, o primeiro passo Dialogue: 0,0:10:37.76,0:10:42.00,Default,,0000,0000,0000,,realmente é, basicamente, a análise é a mesma que a análise de Lou Rockoff B.. Em Dialogue: 0,0:10:42.00,0:10:46.19,Default,,0000,0000,0000,,verdade, é melhor usar como eu disse, a análise Parthenon em sete rodadas. Assim Dialogue: 0,0:10:46.19,0:10:50.42,Default,,0000,0000,0000,,realmente aqui, há um pouco de custo em segurança. Mas, em geral, temos um Dialogue: 0,0:10:50.42,0:10:55.56,Default,,0000,0000,0000,,construção que é seguro para PRP efectivamente. Não tão boa segurança Dialogue: 0,0:10:55.56,0:10:59.99,Default,,0000,0000,0000,,parâmetros, mas, no entanto, este é um bom PRP seguro de que podemos construir a Dialogue: 0,0:10:59.99,0:11:04.64,Default,,0000,0000,0000,,realmente vai operar no intervalo de zero x menos um. Isto por sua vez vai permitir para Dialogue: 0,0:11:04.64,0:11:08.97,Default,,0000,0000,0000,,encriptar números de cartão de crédito, que o texto cifrado se parece com um cartão de crédito Dialogue: 0,0:11:08.97,0:11:13.18,Default,,0000,0000,0000,,número. E novamente, eu quero enfatizar que não há integridade aqui. O melhor Dialogue: 0,0:11:13.18,0:11:17.12,Default,,0000,0000,0000,,podemos conseguir aqui é apenas a segurança CPU determinística. No texto cifrado Dialogue: 0,0:11:17.12,0:11:21.25,Default,,0000,0000,0000,,, integridade e não aleatoriedade em tudo. Okay. Então isso conclui este módulo. E como Dialogue: 0,0:11:21.25,0:11:25.62,Default,,0000,0000,0000,,habitual quero apontar para um material de leitura de que você pode dar uma olhada se Dialogue: 0,0:11:25.62,0:11:29.99,Default,,0000,0000,0000,,você estiver interessado em aprender mais sobre tudo o que discutimos neste módulo. Dialogue: 0,0:11:29.99,0:11:34.26,Default,,0000,0000,0000,,Então, primeiro de tudo, a construção HKDF que falamos para a derivação de chave é Dialogue: 0,0:11:34.26,0:11:38.95,Default,,0000,0000,0000,,descrita em um artigo a partir de 2010 por Hugo Krawczyk. Criptografia determinístico, o Dialogue: 0,0:11:38.95,0:11:44.48,Default,,0000,0000,0000,,modo SIV que descrevemos é discutido neste artigo aqui. O modo que ENE Dialogue: 0,0:11:44.48,0:11:49.63,Default,,0000,0000,0000,,descrito que nos permite construir um, uma permutação [inaudível] pseudo-aleatório é Dialogue: 0,0:11:49.63,0:11:54.40,Default,,0000,0000,0000,,descrito neste artigo aqui por [inaudível]. Tweakable cifras de bloco que Dialogue: 0,0:11:54.40,0:11:59.24,Default,,0000,0000,0000,,realmente levou para o modo de operação XDS que é usado para criptografia de disco é Dialogue: 0,0:11:59.24,0:12:04.70,Default,,0000,0000,0000,,descrito neste artigo aqui. E, finalmente, um formato de criptografia reservando é descrito Dialogue: 0,0:12:04.70,0:12:09.72,Default,,0000,0000,0000,,neste último artigo que eu apontar para aqui. Ok então isso conclui este módulo. Dialogue: 0,0:12:09.72,0:12:13.83,Default,,0000,0000,0000,,E no próximo módulo vamos começar a olhar para como fazer troca de chaves.