Loading

Module 1: Introdução ao Blockchain

Nota de Estudos
Study Reminders
Support
Text Version

Criptografia De Chave Pública

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Então agora a questão é, como ela é usada para estabelecer um segredo compartilhado, porque como eu disse  
que a criptografia de chave pública geralmente é baseada em um matemático muito complexo  
problema comparado com criptografia de chave secreta ou criptografia de chave simétrica em que  
bit shuffling e bit permutação, este tipo de material é usado. Por isso, é muito rápido para  
implementar.  
Considerando que neste caso, normalmente o que fazemos é tentar resolver um   muito complexo  
Problema matemático, em vez de um tipo de coisa embaralhando, coisas simples.  
Portanto, ele é um, não é muito rápido. Então eu tenho que eventualmente usar uma chave simétrica  
criptografia. Mas para estabelecer a chave secreta entre as duas partes, eu preciso usar  
criptografia de chave pública. Então, é isso que a criptografia de chave pública normalmente é usada  
para.  
Então eu estou enviando uma mensagem pela Internet para o meu amigo. Aqui na internet, lá  
estão lurando atrás de muitos dos computadores, há pessoas que podem capturar meu  
mensagem. E então se eles soubem a chave, então eles vão decifrá-lo. Então eu tenho que  
de alguma forma fazer o sistema tal que a chave simétrica que eu vou usar para  
comunicar quantidade muito grande de uploads de mensagens ou de arquivo e tudo o que eu não vou deixar  
Alguém mais sabe a chave. Por isso, a criptografia de chave pública me ajuda pelo seguinte.  
Se você usa criptografia de chave pública, então você nunca envia a chave secreta sobre o  
rede. Então o que você faz é estabelecer a chave secreta usando a chave pública  
criptografia sem ter que nunca ter enviado a chave na rede. Então todo mundo  
cria a chave em seu próprio computador. E por causa do processo matemático que  
é seguida, a chave que esta parte estabelece e a chave que a outra parte estabelece  
torna-se o mesmo.  
Assim, torna-se um segredo compartilhado sem ter passado pela rede.  
(Consulte O Tempo De Deslizamento: 31 :48)  
Então a afirmação do problema aqui seria que Alice tem um canal para comunicar  
com Bob e eles querem usar este canal para estabelecer um segredo compartilhado. No entanto, Eve  
é capaz de aprender qualquer coisa que seja enviada sobre o canal. Então se Alice e Bob não tem outro  
canal a usar, como eles podem estabelecer um segredo compartilhado?  
(Consulte O Tempo De Deslizamento: 32 :07)  
Assim, a criptografia de chave pública é como eu disse é baseada em um problema matemático duro. Então  
por exemplo, o RSA é dependente do fato de que se eu der um inteiro muito grande n e  
o n pode ser fatorado em dois números prios, p e q, encontrando aqueles p e q para o fator  
n é um problema muito duro. Por isso, é chamado o problema de fatoração inteiro. Então figurando  
que esse problema não é muito rápido e se n é um número muito grande como 2048 bits.  
Este é um número 2048 bit. Portanto, é um número muito grande, digamos assim. E então você tem  
para saber quais são os dois números prios que produziram este número por ser  
multiplicado, é um problema difícil. E este tipo de problemas duros são usados para o público  
criptografia chave. Portanto, estes também são chamados de funções de uma forma porque multiplicando p  
e q para produzir n é fácil.  
E então se você não contar as pessoas p e q, e apenas dar o n para que as pessoas conheçam o p  
e q é difícil. Por isso, reverter o processo é difícil.  
(Consulte O Tempo De Deslizamento: 33 :23)  
Tão public key cryptography como você sabe que a pessoa que quer te enviar o  
mensagem, você basicamente envia ela criptografada com a chave pública. E então, quando você  
decifrar a mensagem, você faz isso com a chave privada.  
(Consulte O Tempo De Deslizamento: 33 :38)  
Então, isso é o que já falamos. A chave pública é usada para criptografar uma mensagem  
que pode ser decriptografado combinando chave privada. Assim, Bob pode usar a chave pública de Alice para  
criptografar mensagens enviadas para Alice. Alice é a única que tem a chave privada, então ela  
pode decifrar a mensagem. E Alice também pode usar a chave pública do Bob's para enviar mensagem  
de volta para Bob. E Alice e Bob podem trocar informações, cada uma mantendo um segredo para  
próprios.  
E os segredos que eles mantêm permitem que eles computem um segredo compartilhado. E assim desde Eva  
não tem nenhum dos segredos, ela é incapaz de computar o segredo compartilhado. Isso é  
a estratégia geral.  
(Consulte O Tempo De Deslizamento: 34 :23)  
Então, este algoritmos de chave pública há muitos. Então por exemplo, RSA Rivest-Shamir- 
O algoritmo de adleman é um dos algoritmos mais populares para chave pública ou assimétrico  
criptografia chave. Há também Diffie-Hellman, há El Gamal. Assim, há  
múltiplos algoritmos diferentes. E chave de criptografia é diferente da chave de decriptografia,  
uma não pode ser calculada uma da outra.  
E chave de criptografia é chamada de chave pública e chave de decriptografia é chamada de privada  
chave e você pode fazer melhor gerenciamento de chaves. E desvantagem é que é mais lenta e  
mais complexo. E ambas as técnicas são elogiadas, o que significa que  
assimétrica é usada para estabelecer um segredo compartilhado, que é então usado como chave secreta para  
algoritmo simétrico. Por isso, avisemos rapidamente como funciona a RSA.  
Então, no RSA o que você faz é, assim, uma parte decide dois números primas muito grandes, p e  

Números Prime, você sabe que, se eu adivinhar um inteiro para verificar se ele é um prime  

ou não, é um tempo polinomial, e devido a um algoritmo que foi inventado no IIT Kanpur  
pela professora Manindra Agarwal, Nitin Saxena e Neeraj Katyal. Agora você leva dois  
grandes primes p e q, e então você os multiplica e você consegue um número n.  
Então você computa outro número, p-1 vezes q-1 e você chama de phi n e depois você  
esqueça esses números. Então você não diz a ninguém os números, jogue fora estes  
números e você tem o n e phi n, certo? Em seguida, você escolhe um número e, que é  
mutuamente prime com phi n. Mutuamente significa significa se você pegar o GCD de e e phi n,  
que deve se tornar 1, portanto, eles não têm nenhum fator comum.  
Então você computa d e o d é um inverso multiplicativo de e. Em outras palavras, d times  
e é igual a 1 modulo phi n. Se você não entender a aritmética modular, isso está bem.  
Estamos apenas dando essas informações, não é necessário que este curso realmente  
saiba como o algoritmo funciona. Mas só para dar uma ideia, então então a chave pública é  
e, n e ele é publicado. E a chave privada é d, n, que é mantida em segredo.  
E então quando você quer obter uma mensagem através, o que você faz é você pegar o  
mensagem e elevá-la para o poder e, em seguida, tomar o modulo n. Agora você diz como eu faço  
isto porque a mensagem m é basicamente qualquer coisa dentro do computador, é uma string de bits.  
Então você pode realmente pensar na mensagem como um número grande ou você pode chop o  
mensagem em vários chunks, que são cada um são menores que n.  
Porque senão você não seria capaz de fazer aritmética modular, e então você levanta  
cada um deles por e. Então isso se torna seu texto cifrado. Assim, quando a mensagem vai para o  
outro lado, aquele para aquele que possui a chave privada que é este, então ele faz c  
até o d, que se torna m ed, mod n ed sendo 1 modulo phi n, isto se torna basicamente  

Então eu mantenho d e n.  

Então ninguém mais sabe d, e é difícil saber d a menos que você conheça phi n. Mas como  
você sabe phi n porque phi n é p – 1 vezes q – 1. Para saber phi n você tem que  
fator n primeiro em p e q, então você pode obter p – 1 e q – 1. Então é essa a ideia de  
RSA criptografia assimétrica. Então, é assim que você estabelece um segredo compartilhado, e então  
você vai em fazer coisas.  
Mas o que veremos é que há um outro uso disso, que é supor que eu queira  
provar autenticidade. Veja mais cedo eu disse que em criptografia de chave simétrica se eu tiver  
compartilhou a chave com você, e se eu receber uma mensagem que é criptografada por essa chave, eu sei  
que ele é autêntico porque você é o único que sabe a chave.  
Em chave pública que não é possível se alguém me envia uma mensagem criptografada com o meu  
chave pública, como sei que não é aquele que está reivindicando para ser e alguém  
else porque a chave pública é conhecida por todo mundo. Então qualquer pessoa realmente pode me enviar  
criptografado com a minha chave pública, certo? Portanto, portanto, eu não tenho autenticidade, como  
que.  
Então o que eu faço para provar minha autenticidade é eu uso minha chave privada para criptografar algo  
e enviar você. E você sabe a minha chave pública porque todo mundo conhece o meu público  
chave. Então você usa a chave pública nessa mensagem, e decifrou a mensagem. Agora  
você sabe que sou eu porque eu só tenho a chave privada. Se ele não foi criptografado com o meu  
chave privada, então a minha chave pública não teria desbloqueado ele.  
Então é assim que funcionam as assinaturas digitais. E falaremos um pouco mais sobre isso mais tarde.  
Então veremos uma série de coisas que são muito úteis em blockchain a partir de chave pública  
criptografia. Uma é a chave pública. Chave pública para cada pessoa é muito importante.  
E a assinatura digital é muito importante. E porque a chave pública está lá tão privada  
chave também é muito importante porque a assinatura digital é feita com chave privada.  
Também qualquer coisa que seja criptografada com chave pública terá que ser decifrada com  
chave privada. Por isso, esses conceitos, como veremos virão em blockchain o tempo todo.  
E eles basicamente constituem um backbone chave na tecnologia de blockchain. Então  
exemplos como eu disse são RSA, Diffie-Hellman, El Gamal, etc. Então agora vamos para o  
ideia de funções de hash criptográficas.  
Até agora estávamos falando apenas de criptografia e decriptografia e criptografia e  
A decriptografia é usada para confidencialidade, para autenticidade, etc. Para integridade, alguns dos  
tempos que temos de usar uma técnica diferente. E vamos ver como as funções hash são  
usadas.  
(Consulte O Tempo De Deslizamento: 41:42)  
Então a função hash é uma função que leva qualquer cadeia de comprimento e cria um comprimento fixo  
cadeia. Então, se você me der um milhão de string de bits, eu posso aplicar uma função hash e deixar-nos dizer  
a função hash é uma função hash de 256 bit, então ela vai me dar uma saída de 256 bit. Portanto, se  
você me dá até maior, digamos que 10 milhões de comprimento string, ele ainda vai me produzir um  
saída de 256 bit. Assim, e a propriedade da função hash deve ser tal que não deve  
demorar muito para computá-los, porque temos que usá-los hora e outra vez.  
Então, ele tem que ser fácil de computar, mas você não pode reverti-lo, o que significa que se eu der  
você a saída, você não deve ser capaz de dizer que você sabe string foi colocada no  
hash function para produzir esta saída. Por isso, é quase impossível reverter. Agora ele tem  
para ter algumas propriedades de segurança. Então qualquer função que impossibilita de reverter  
não é necessariamente uma boa função hash. Por isso, tem que ter certas propriedades.  
Assim, uma propriedade importante é a resistência de colisão. Por isso, deve ser e eu explicarei para  
você que resistência de colisão significa em alguns slides para baixo. Mas a resistência de colisão é  
uma das propriedades mais importantes das funções hash. E vamos ver o porquê. E  
certamente ele esconde a sequência original. Então, se você for dizer que eu quero provar que eu sei  
esta string. Por isso, eu mas não quero dizer a string.  
Então o que eu posso fazer é eu posso te mandar o hash. E então a outra parte deve ter um  
maneira de verificar se este é o hash dessa string. Portanto, mesmo que a outra parte não  
conheça a string em si, mas ele pode realmente de alguma forma ter o hash e, portanto, ele  
pode combinar com eles. Assim, esconde-se a sequência original. E como eu disse que a propriedade hash,  
a propriedade de uma função hash deveria ser que deveria ser quase impossível obter o  
string original.  
E então a terceira propriedade que é muito importante para o nosso propósito em blockchain  
especialmente para o tipo de criptomoeda de blockchains é que ele tem que ser algo chamado  
quebra-cabeça amigável. E vamos ver o que isso significa muito em breve.