[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.80,0:00:04.53,Default,,0000,0000,0000,,Funções criptográficas de {\i1}hash{\i0} são\Nbasicamente alicerces fundamentais Dialogue: 0,0:00:04.53,0:00:08.22,Default,,0000,0000,0000,,que são usados dentro de vários\Nalgoritmos de criptografia e protocolos. Dialogue: 0,0:00:08.22,0:00:10.72,Default,,0000,0000,0000,,Nós temos um grande número\Nde aplicações importantes Dialogue: 0,0:00:10.72,0:00:14.49,Default,,0000,0000,0000,,no contexto de segurança da\Ninformação como um todo. Dialogue: 0,0:00:14.49,0:00:17.07,Default,,0000,0000,0000,,Alguns dos algoritmos mais\Nconhecidos nessa categoria, Dialogue: 0,0:00:17.07,0:00:19.26,Default,,0000,0000,0000,,conhecidos como funções\Ncriptográficas de {\i1}hash{\i0}, Dialogue: 0,0:00:19.26,0:00:26.35,Default,,0000,0000,0000,,incluem {\i1}MD5{\i0}, e ele também tem\Npredecessores como {\i1}MD4{\i0} e outros; Dialogue: 0,0:00:26.35,0:00:30.07,Default,,0000,0000,0000,,bem como os algoritmos {\i1}SHA-256{\i0}, Dialogue: 0,0:00:30.07,0:00:35.23,Default,,0000,0000,0000,,e, na verdade, {\i1}SHA-256{\i0} é precedido \Npor outros algoritmos como {\i1}SHA-1{\i0} Dialogue: 0,0:00:35.23,0:00:36.93,Default,,0000,0000,0000,,e assim por diante, Dialogue: 0,0:00:36.93,0:00:41.07,Default,,0000,0000,0000,,e também há alguns algoritmos que\Ntalvez você tenha ouvido falar, Dialogue: 0,0:00:41.07,0:00:46.04,Default,,0000,0000,0000,,talvez eles sejam menos conhecidos, mas\Ntemos {\i1}RIPEMD{\i0} e {\i1}BLAKE{\i0} e {\i1}Skein{\i0} e outros. Dialogue: 0,0:00:46.04,0:00:49.00,Default,,0000,0000,0000,,Bem, funções criptográficas \Nde {\i1}hash{\i0} são basicamente Dialogue: 0,0:00:49.00,0:00:52.34,Default,,0000,0000,0000,,usadas como partes críticas\Nde várias aplicações Dialogue: 0,0:00:52.34,0:00:54.84,Default,,0000,0000,0000,,e, a primeira aplicação que motivou, Dialogue: 0,0:00:54.84,0:00:58.69,Default,,0000,0000,0000,,a primeira aplicação histórica\Ndesses tipos de funções de {\i1}hash{\i0} Dialogue: 0,0:00:58.69,0:01:03.47,Default,,0000,0000,0000,,foi no contexto conhecido\Ncomo assinatura digital. Dialogue: 0,0:01:03.47,0:01:07.86,Default,,0000,0000,0000,,E assinatura digital é usada em tantas\Naplicações criptográficas diferentes hoje, Dialogue: 0,0:01:07.86,0:01:11.51,Default,,0000,0000,0000,,ela é o pilar de muitos\Nprotocolos de {\i1}e-commerce{\i0}, Dialogue: 0,0:01:11.51,0:01:15.38,Default,,0000,0000,0000,,é usada para fazer coisas como\Ngeração de {\i1}Bitcoin{\i0} por exemplo. Dialogue: 0,0:01:15.38,0:01:20.50,Default,,0000,0000,0000,,Funções criptográficas de {\i1}hash{\i0} são usadas\Nem protocolos de autenticação de mensagens Dialogue: 0,0:01:20.50,0:01:24.34,Default,,0000,0000,0000,,na geração de números pseudo-aleatórios\Ne na segurança de senhas Dialogue: 0,0:01:24.34,0:01:26.42,Default,,0000,0000,0000,,até mesmo em criptografia em certo grau Dialogue: 0,0:01:26.42,0:01:30.84,Default,,0000,0000,0000,,e, na verdade, além de seu\Nuso em assinaturas digitais, Dialogue: 0,0:01:30.84,0:01:35.41,Default,,0000,0000,0000,,essas funções de {\i1}hash{\i0} são também usadas\Nem outros lugares do protocolo {\i1}Bitcoin{\i0}. Dialogue: 0,0:01:35.41,0:01:40.04,Default,,0000,0000,0000,,Então, antes de tudo deixe-me falar sobre\No que uma função criptográfica de {\i1}hash{\i0} é. Dialogue: 0,0:01:40.04,0:01:44.41,Default,,0000,0000,0000,,E, é claro, como o próprio nome implica,\Na primeira coisa, ela é uma função de {\i1}hash{\i0} Dialogue: 0,0:01:44.41,0:01:48.71,Default,,0000,0000,0000,,e por função de{\i1} hash{\i0} eu quero dizer\Nque ela vai receber uma entrada, Dialogue: 0,0:01:48.71,0:01:51.80,Default,,0000,0000,0000,,ela é uma função matemática,\Numa transformação se preferir, Dialogue: 0,0:01:51.80,0:01:56.78,Default,,0000,0000,0000,,que recebe uma entrada particular,\Ne chamamos essa entrada de uma "mensagem" Dialogue: 0,0:01:56.78,0:01:59.60,Default,,0000,0000,0000,,e a mensagem pode ser\Nde um tamanho arbitrário Dialogue: 0,0:01:59.60,0:02:04.55,Default,,0000,0000,0000,,e a função de {\i1}hash{\i0} basicamente aplica\Numa transformação matemática, Dialogue: 0,0:02:04.55,0:02:07.73,Default,,0000,0000,0000,,talvez um conjunto de transformações\Nmatemáticas, nessa entrada Dialogue: 0,0:02:07.73,0:02:09.29,Default,,0000,0000,0000,,para produzir uma única saída. Dialogue: 0,0:02:09.29,0:02:13.90,Default,,0000,0000,0000,,Nós normalmente chamamos essa saída de\Nresumo, entretanto às vezes você verá essa Dialogue: 0,0:02:13.90,0:02:19.38,Default,,0000,0000,0000,,saída sendo referida como uma etiqueta,\Nou uma {\i1}hash{\i0}, ou uma impressão digital; Dialogue: 0,0:02:19.38,0:02:22.13,Default,,0000,0000,0000,,mas resumo é um dos\Nnomes mais comuns. Dialogue: 0,0:02:22.13,0:02:27.30,Default,,0000,0000,0000,,E, na verdade, {\i1}MD5{\i0} - que foi uma das\Nprimeiras funções de hash - significa Dialogue: 0,0:02:27.30,0:02:29.44,Default,,0000,0000,0000,,"Message Digest 5" (Resumo da Mensagem 5) Dialogue: 0,0:02:29.44,0:02:32.72,Default,,0000,0000,0000,,e {\i1}MD4{\i0} é "Message Digest 4" (Resumo da\NMensagem 4) e assim por diante. Dialogue: 0,0:02:33.27,0:02:36.92,Default,,0000,0000,0000,,A mensagem, como eu mencionei breviamente,\Npode ser de um tamanho arbitrário Dialogue: 0,0:02:36.92,0:02:40.27,Default,,0000,0000,0000,,pode ser tão longa quanto quiser,\Nou pode ser tão curta quanto quiser, Dialogue: 0,0:02:40.27,0:02:45.92,Default,,0000,0000,0000,,mas a saída, o tamanho do resumo\Nvai ser de um tamanho fixo. Dialogue: 0,0:02:45.92,0:02:50.78,Default,,0000,0000,0000,,Por exemplo, no contexto de uma função\Nde {\i1}hash{\i0} como, vamos dizer, {\i1}SHA-256{\i0}, Dialogue: 0,0:02:50.78,0:02:55.94,Default,,0000,0000,0000,,o resumo vai ter exatamente\N256 bits de tamanho. Dialogue: 0,0:02:55.94,0:03:01.35,Default,,0000,0000,0000,,Então vai ter uma saída de tamanho fixo\Nmas uma entrada de tamanho arbitrário Dialogue: 0,0:03:01.35,0:03:05.11,Default,,0000,0000,0000,,E a outra coisa que quero ressaltar sobre\Nessas funções criptográficas de {\i1}hash{\i0} é Dialogue: 0,0:03:05.11,0:03:09.75,Default,,0000,0000,0000,,que a função é uma função determinística,\Ne por isso eu quero dizer que Dialogue: 0,0:03:09.75,0:03:12.37,Default,,0000,0000,0000,,a saída sempre será a mesma\Npara uma entrada específica. Dialogue: 0,0:03:12.37,0:03:15.66,Default,,0000,0000,0000,,Então se você tem uma entrada específica,\Nvai ver a mesma exata saída. Dialogue: 0,0:03:15.66,0:03:19.64,Default,,0000,0000,0000,,Você não vai ter uma situação em que dado\Numa entrada terá duas possíveis saídas. Dialogue: 0,0:03:19.64,0:03:21.06,Default,,0000,0000,0000,,Vai ser consistente. Dialogue: 0,0:03:21.89,0:03:26.72,Default,,0000,0000,0000,,Bem, funções de {\i1}hash{\i0} tradicionais vem\Nsendo usadas em Ciência da Computação Dialogue: 0,0:03:26.72,0:03:30.30,Default,,0000,0000,0000,,há bastante tempo e elas são usadas\Nem várias aplicações computacionais. Dialogue: 0,0:03:30.30,0:03:34.73,Default,,0000,0000,0000,,Você talvez tenha ouvido sobre uma função\N{\i1}hash{\i0} usada para fazer uma tabela {\i1}hash{\i0}. Dialogue: 0,0:03:34.73,0:03:40.39,Default,,0000,0000,0000,,Mas o tipo de funções {\i1}hash{\i0} que são usadas\Nem tabelas {\i1}hash{\i0}, e eu quero destacar isso, Dialogue: 0,0:03:40.39,0:03:44.64,Default,,0000,0000,0000,,não são necessariamente o mesmo\Nque funções criptográficas de {\i1}hash{\i0}. Dialogue: 0,0:03:44.64,0:03:48.36,Default,,0000,0000,0000,,O qualificador 'criptográficas'\Naqui é muito importante. Dialogue: 0,0:03:48.36,0:03:54.13,Default,,0000,0000,0000,,E geralmente significa que essa função \N{\i1}hash{\i0} tem que ter um certo conjunto de Dialogue: 0,0:03:54.13,0:03:58.30,Default,,0000,0000,0000,,objetivos críticos de design e talvez\Nalgumas propriedades particulares em mente Dialogue: 0,0:03:58.30,0:04:03.94,Default,,0000,0000,0000,,que a faça adequada para o uso em\Naplicações que usem criptografia Dialogue: 0,0:04:03.94,0:04:08.47,Default,,0000,0000,0000,,onde talvez segurança ou privacidade,\Nou confidencialidade ou autenticação Dialogue: 0,0:04:08.47,0:04:10.46,Default,,0000,0000,0000,,é uma preocupação séria. Dialogue: 0,0:04:11.35,0:04:14.83,Default,,0000,0000,0000,,Então, primeiro e antes de tudo em \Ndescrevendo as propriedades de alguém Dialogue: 0,0:04:14.83,0:04:16.83,Default,,0000,0000,0000,,é que, e talvez isso nem precise ser dito, Dialogue: 0,0:04:16.83,0:04:20.12,Default,,0000,0000,0000,,uma das propriedades que você quer\Nem uma função criptográfica de {\i1}hash{\i0} Dialogue: 0,0:04:20.12,0:04:24.55,Default,,0000,0000,0000,,é que ela deveria ser computacionalmente -\Ncomputacionalmente eficiente. Dialogue: 0,0:04:24.55,0:04:27.40,Default,,0000,0000,0000,,E com isso quero dizer que\Nela não deveria levar muito tempo Dialogue: 0,0:04:27.40,0:04:31.20,Default,,0000,0000,0000,,para computar a saída de\Numa determinada entrada Dialogue: 0,0:04:31.20,0:04:35.40,Default,,0000,0000,0000,,Se você recebe uma mensagem e quer aplicar\Num conjunto de transformações nesta Dialogue: 0,0:04:35.40,0:04:39.84,Default,,0000,0000,0000,,mensagem para obter um resumo, esse\Nconjunto de transformações não deveria Dialogue: 0,0:04:39.84,0:04:43.80,Default,,0000,0000,0000,,tomar muito tempo para ser implementado\Nem um computador, deveria ser bem rápido. Dialogue: 0,0:04:43.80,0:04:47.32,Default,,0000,0000,0000,,E isso quase nem precisava ser dito mas\Nacho importante reforçar e destacar Dialogue: 0,0:04:47.32,0:04:50.79,Default,,0000,0000,0000,,porque eu já vi pessoas fazerem\Nimplementações grosseiramente ineficientes Dialogue: 0,0:04:50.79,0:04:54.26,Default,,0000,0000,0000,,de funções de {\i1}hash{\i0} algumas vezes e estas\Nnão seriam consideradas adequadas Dialogue: 0,0:04:54.26,0:04:58.27,Default,,0000,0000,0000,,no contexto de uma típica função\Ncriptográfica de {\i1}hash{\i0} que é usada para Dialogue: 0,0:04:58.27,0:05:00.19,Default,,0000,0000,0000,,aplicações criptográficas. Dialogue: 0,0:05:01.00,0:05:05.03,Default,,0000,0000,0000,,E a segunda propriedade que geralmente\Nse precisa, especialmente no contexto de Dialogue: 0,0:05:05.03,0:05:10.78,Default,,0000,0000,0000,,assinatura digital, é: você quer que seja\No caso de ser difícil que duas entradas Dialogue: 0,0:05:10.78,0:05:14.54,Default,,0000,0000,0000,,sejam mapeadas realmente para a mesma\Nentrada. Duas entradas distintas Dialogue: 0,0:05:14.54,0:05:17.84,Default,,0000,0000,0000,,cujos resumos correspondentes\Nsejam idênticos. Dialogue: 0,0:05:17.84,0:05:23.93,Default,,0000,0000,0000,,E essa propriedade geralmente é chamada de\Ncolisão, resistência à colisões. Dialogue: 0,0:05:23.93,0:05:28.78,Default,,0000,0000,0000,,Isso significa que é difícil achar\Num par de entradas que colidam. Dialogue: 0,0:05:28.78,0:05:34.40,Default,,0000,0000,0000,,Em outras palavras, se temos duas entradas\Nvamos dizer uma mensagem M1 e uma M2. Dialogue: 0,0:05:34.40,0:05:40.15,Default,,0000,0000,0000,,Suas saídas da aplicação da função de {\i1}hash{\i0}\Nnão deveriam ser a mesma. Dialogue: 0,0:05:40.15,0:05:47.85,Default,,0000,0000,0000,,Você nunca teria o caso em que a saída\Nde M1 e M2 da aplicação da função de {\i1}hash{\i0} Dialogue: 0,0:05:47.85,0:05:51.77,Default,,0000,0000,0000,,são iguais. Nunca deveria ser igual.\NDeve sempre ser diferente. Dialogue: 0,0:05:52.22,0:05:57.59,Default,,0000,0000,0000,,Eu deveria voltar um passo e\Ndestacar que, é claro, na prática, Dialogue: 0,0:05:57.59,0:06:04.86,Default,,0000,0000,0000,,dado que a mensagem pode ser de um tamanho\Narbitrário e a saída é de um tamanho fixo, Dialogue: 0,0:06:04.86,0:06:11.42,Default,,0000,0000,0000,,não é mateticamente possível garantir\Nque a saída sempre será diferente Dialogue: 0,0:06:11.42,0:06:12.93,Default,,0000,0000,0000,,para duas mensagens distintas. Dialogue: 0,0:06:12.93,0:06:16.84,Default,,0000,0000,0000,,Mas o que você geralmente quer não é que\Nas saídas sejam necessariamente diferentes Dialogue: 0,0:06:16.84,0:06:21.34,Default,,0000,0000,0000,,mas que seja difícil para achar mensagens\Ndistintas que produzem a mesma saída. Dialogue: 0,0:06:21.34,0:06:25.42,Default,,0000,0000,0000,,Nós sabemos que elas existem em virtude do\Nfato que mensagens podem ser mapeadas Dialogue: 0,0:06:25.42,0:06:27.69,Default,,0000,0000,0000,,em apenas um número finito e pequeno\N Dialogue: 0,0:06:27.69,0:06:31.07,Default,,0000,0000,0000,,(ou relativamente um número pequeno se\Ncomparado ao número de mensagens) Dialogue: 0,0:06:31.07,0:06:34.04,Default,,0000,0000,0000,,um número pequeno de\Npossíveis valores resumo. Dialogue: 0,0:06:34.04,0:06:38.81,Default,,0000,0000,0000,,Mas fora essa consideração, deveria ser\Ndifícil, deveria levar muito tempo, Dialogue: 0,0:06:38.81,0:06:43.16,Default,,0000,0000,0000,,e por muito tempo eu quero dizer\Nastronomicamente muito tempo para achar Dialogue: 0,0:06:43.16,0:06:49.63,Default,,0000,0000,0000,,duas mensagens distintas que resultariam\Nna mesma saída aplicando a função de {\i1}hash{\i0}. Dialogue: 0,0:06:50.79,0:06:54.28,Default,,0000,0000,0000,,Bem, a terceira coisa que eu quero\Nressaltar é que em vários casos Dialogue: 0,0:06:54.28,0:06:58.55,Default,,0000,0000,0000,,você pode também querer, no contexto das\Nfunções de {\i1}hash{\i0}, que a função seja capaz Dialogue: 0,0:06:58.55,0:07:01.53,Default,,0000,0000,0000,,de esconder informações\Nsobre as entradas. Dialogue: 0,0:07:01.53,0:07:08.58,Default,,0000,0000,0000,,Em outras palavras, dado a saída, deveria\Nser difícil coletar qualquer informação Dialogue: 0,0:07:08.58,0:07:13.45,Default,,0000,0000,0000,,útil ou interessante sobre a entrada.\NQualquer coisa, qualquer detalhe relevante Dialogue: 0,0:07:13.45,0:07:17.45,Default,,0000,0000,0000,,e não quero dizer apenas a entrada inteira\Nmas até mesmo uma coisa tão simples quanto Dialogue: 0,0:07:17.45,0:07:19.74,Default,,0000,0000,0000,,"a entrada era um número par\Nou um número ímpar?" Dialogue: 0,0:07:19.74,0:07:24.40,Default,,0000,0000,0000,,E isso deveria ser o tipo de coisa que é\Ndifícil inferir quando você vê a saída. Dialogue: 0,0:07:24.40,0:07:29.85,Default,,0000,0000,0000,,Até mesmo algo tão simples quanto a\Nparidade ou imparidade da entrada. Dialogue: 0,0:07:30.55,0:07:33.07,Default,,0000,0000,0000,,Agora, a quarta propriedade\Nque quero ressaltar Dialogue: 0,0:07:33.07,0:07:37.43,Default,,0000,0000,0000,,é que você geralmente quer\Nque a saída seja bem distribuída. Dialogue: 0,0:07:37.43,0:07:43.75,Default,,0000,0000,0000,,Em outras palavras, a saída\Ndeve parecer aleatória. Dialogue: 0,0:07:43.75,0:07:47.75,Default,,0000,0000,0000,,Deve parecer como se fosse um conjunto de\Njogadas de moeda feitas de nenhuma forma Dialogue: 0,0:07:47.75,0:07:52.79,Default,,0000,0000,0000,,previsível em que a saída foi criada. Dialogue: 0,0:07:53.69,0:08:00.47,Default,,0000,0000,0000,,E isso significa que é quase como se você\Njogasse várias moedas para fazer a saída. Dialogue: 0,0:08:00.47,0:08:02.90,Default,,0000,0000,0000,,Deve parecer aleatório. Dialogue: 0,0:08:02.90,0:08:08.20,Default,,0000,0000,0000,,Você pode pensar em funções criptográficas\Nde {\i1}hash{\i0} como talvez o equivalente Dialogue: 0,0:08:08.20,0:08:11.07,Default,,0000,0000,0000,,matemático ou análogo\Nde um moedor de carne. Dialogue: 0,0:08:11.07,0:08:15.80,Default,,0000,0000,0000,,Ele pode receber entradas e aplicar essas\Ntransformações matemáticas nelas Dialogue: 0,0:08:15.80,0:08:20.55,Default,,0000,0000,0000,,de modo que a saída pareça, para todos os\Npropósitos, completamente aleatória Dialogue: 0,0:08:20.55,0:08:23.16,Default,,0000,0000,0000,,e sem relação com\Na entrada original. Dialogue: 0,0:08:23.92,0:08:28.13,Default,,0000,0000,0000,,Eu quero fazer algumas pequenas\Nobservações sobre essas propriedades. Dialogue: 0,0:08:28.13,0:08:31.73,Default,,0000,0000,0000,,E antes de tudo, elas são\Ninter-relacionadas - por exemplo, Dialogue: 0,0:08:31.73,0:08:37.51,Default,,0000,0000,0000,,se você tem uma situação onde a saída não\Naparenta mesmo ter relação com a entrada, Dialogue: 0,0:08:37.73,0:08:40.21,Default,,0000,0000,0000,,e a saída também parece aleatória, Dialogue: 0,0:08:40.21,0:08:44.83,Default,,0000,0000,0000,,então isso vai te dar na verdade, em certo\Ngrau, uma grande resistência a colisões Dialogue: 0,0:08:44.83,0:08:48.79,Default,,0000,0000,0000,,porque apenas o fato de que você não pode\Nprever a saída e o fato de que ela esconde Dialogue: 0,0:08:48.79,0:08:54.27,Default,,0000,0000,0000,,toda essa informação implica que vai ser\Ndifícil achar duas entradas distintas Dialogue: 0,0:08:54.27,0:08:55.99,Default,,0000,0000,0000,,que são mapeadas para a mesma saída. Dialogue: 0,0:08:55.99,0:08:59.18,Default,,0000,0000,0000,,E então, às vezes você consegue uma\Npropriedade em troca das outras. Dialogue: 0,0:08:59.18,0:09:02.67,Default,,0000,0000,0000,,A segunda coisa que eu quero ressaltar\Né que geralmente essas propriedades Dialogue: 0,0:09:02.67,0:09:07.96,Default,,0000,0000,0000,,na prática, ou até mesmo em matemática\Nsubjacente, são coisas que você espera por Dialogue: 0,0:09:07.96,0:09:11.49,Default,,0000,0000,0000,,mas que você não pode sempre garantir\Nque elas serão sempre válidas. Dialogue: 0,0:09:11.49,0:09:15.45,Default,,0000,0000,0000,,E talvez seja completamente possível que\Nvocê poderia desenvolver uma função {\i1}hash{\i0} Dialogue: 0,0:09:15.45,0:09:18.40,Default,,0000,0000,0000,,que você pensa ser completamente\Nresistente à colisões Dialogue: 0,0:09:18.40,0:09:22.37,Default,,0000,0000,0000,,mas alguém pode aparecer e, daqui a um ano\Ninventar uma maneira mais inteligente Dialogue: 0,0:09:22.37,0:09:24.24,Default,,0000,0000,0000,,para achar colisões. Dialogue: 0,0:09:24.24,0:09:28.70,Default,,0000,0000,0000,,Talvez ele tenha descoberto um jeito que\Nnão involva fazer uma busca de força bruta Dialogue: 0,0:09:29.37,0:09:34.77,Default,,0000,0000,0000,,E acontece que criptógrafos, para o bem ou\Npara o mal, atualmente não têm nenhuma Dialogue: 0,0:09:34.77,0:09:37.67,Default,,0000,0000,0000,,técnica matemática, eles não\Ndesenvolveram técnicas capazes de Dialogue: 0,0:09:37.67,0:09:40.45,Default,,0000,0000,0000,,contornar algumas dessas limitações. Dialogue: 0,0:09:40.45,0:09:45.15,Default,,0000,0000,0000,,Assim, nós frequentemente tomamos como\Nbase de quanto esses esquemas são seguros Dialogue: 0,0:09:45.15,0:09:47.92,Default,,0000,0000,0000,,pelo tempo que eles\Nvêm sendo utilizados. Dialogue: 0,0:09:47.92,0:09:51.74,Default,,0000,0000,0000,,Agora eu também quero destacar uma última\Ncoisa, essa forma como tratei o assunto Dialogue: 0,0:09:51.74,0:09:55.47,Default,,0000,0000,0000,,não é de forma alguma\Nmatematicamente rigoroso. Dialogue: 0,0:09:55.47,0:10:01.14,Default,,0000,0000,0000,,Existem métodos muito mais precisos\Nde descrever essas propriedades. Dialogue: 0,0:10:01.14,0:10:05.64,Default,,0000,0000,0000,,Mas eu espero que esse vídeo\Ntalvez te dê uma noção geral Dialogue: 0,0:10:05.64,0:10:08.53,Default,,0000,0000,0000,,do que é necessário a uma função\Ncriptográfica de {\i1}hash{\i0} Dialogue: 0,0:10:08.53,0:10:12.42,Default,,0000,0000,0000,,sem ficar chato entrando em\Ndetalhes formais matemáticos. Dialogue: 0,0:10:12.42,0:10:13.12,Default,,0000,0000,0000,,[Legendado por Alberto Oliveira]