O que é uma cifra assimétrica extremamente básica que posso apresentar no pub?

30

Estou tentando explicar o básico do Bitcoin para meus pais.

Um dos componentes principais do bitcoin é assinar transações para garantir que sua identidade não possa ser representada e, portanto, a necessidade de explicar uma cifra assimétrica simplificada.

O que é uma cifra assimétrica extremamente simples que posso usar como exemplo?

Como essa cifra simplificada pode ser usada para assinar?

Ryan The Leach
fonte
17
Por que você precisaria entrar em criptografia para ter um pub falando sobre bitcoin? No meu entender, o bitcoin resolve o problema de manter um livro distribuído, evitando especificamente o problema de gastos duplos. A motivação é evitar ter uma autoridade central, e isso pode ser alcançado permitindo que cada participante aprove uma transação (em vez de dar essa autoridade ao banco). Para evitar que participantes adversários aprovem suas próprias transações inválidas, é introduzido o conceito de prova de trabalho. Não há necessidade de falar sobre criptografia de chave pública.
Ariel #
@Ariel Criptografia de chave pública, ou pelo menos assinaturas digitais, chega quando você quer saber que a pessoa que está mandando enviar 3 BTC de Ariel para Ryan é na verdade Ariel.
Derek Elkins
1
Certo, mas isso não é específico do bitcoin, então seus pais o acharão confuso.
Ariel #
1
Você pode explicar a criptografia assimétrica, a cadeia de blocos ou o Bitcoin. Escolha um.
Raphael
2
Essa pergunta pode ser mais adequada para criptografia .
Raphael

Respostas:

28

Se você deseja apresentar criptografia de chave pública a seus pais ou amigos, sugiro que você siga algumas diretrizes. Primeiro, não fale sobre funções específicas, ninguém se importa com o SHAxxx, mantenha sua palestra conceitual. O problema resolvido pela criptografia de chave pública está permitindo que duas partes que nunca se conheceram trocem informações com segurança em um canal público. Não confunda isso com outros aplicativos alcançados pela criptografia de chave pública, como assinaturas digitais ou autenticação.

Uma ilustração simples e esclarecedora disso que eu vi é a seguinte. Suponha que duas partes tenham um balde e várias cores e queiram concordar com um composto secreto específico. Eles têm permissão para enviar um ao outro um balde com um determinado composto, mas qualquer coisa enviada é exposta a um adversário maligno. O pressuposto sublinhado é que a mistura de cores é fácil, mas a decomposição de uma mistura com seus ingredientes é difícil. Essa suposição (que é facilmente conectada ao lado formal das coisas) permite que você alcance seu objetivo. Escolha uma cor pública e permita que ambas as partes escolham uma cor secreta, vamos las por . A primeira parte envia um balde de uma mistura de . Da mesma forma, a segunda parte envia um balde contendo uma mistura deS 1 , S 2 P , S 1 P , S 2 P , S 1 , S 2PS1,S2P,S1P,S2 . Finalmente, cada lado adiciona sua cor particular à mistura que ele recebeu e agora ambas as partes têm uma mistura de , que (pela nossa suposição) permanece em segredo para qualquer bisbilhoteiro. Uma versão formal disso é o protocolo de troca de chaves Diffie-Hellman, que depende da dureza do registro discreto.P,S1,S2

Agora, meu entendimento do protocolo bitcoin é limitado, mas ao conversar com seus pais sobre isso, não vejo razão para entrar em criptografia. A maioria das explicações populares que eu vi desnecessariamente se aprofundou nos detalhes da implementação e começou a falar sobre como encontrar uma pré-imagem de um hash, de modo que o resultado tivesse um número de zeros, perdendo de vista o problema real. Como antes, sugiro manter a palestra conceitual. Que problema o bitcoin está tentando resolver e por que isso não é trivial? No meu entender, o bitcoin resolve o problema de manter um livro distribuído, evitando especificamente os gastos duplosxproblema. A motivação é evitar ter uma autoridade central, e isso pode ser alcançado permitindo que cada participante aprove uma transação (em vez de dar essa autoridade ao banco). Para evitar que participantes adversários aprovem suas próprias transações inválidas, é introduzido o conceito de prova de trabalho. O POW usa o hash como uma caixa preta, para evitar mencionar candidatos específicos.

Ariel
fonte
O Bitcoin resolve tanto o problema de gastos duplos (o que ocorre via blockchain, para o qual o algoritmo de "prova de trabalho" que você descreve é ​​essencial)) quanto a autenticação distribuída de solicitações de transferência (o que é discutido com menos frequência, porque se resume a um problema já resolvido, isto é, autenticação de mensagens através de chaves assimétricas).
Jules
15

Uma metáfora comum que ouço usada é fabricar vários cadeados, manter todas as chaves e enviar cadeados abertos a quem quiser. Qualquer pessoa com esse cadeado pode enviar mensagens secretas, colocando-as em uma caixa e usando um dos cadeados para trancá-lo antes de enviá-lo para você. Ninguém além de você tem as chaves, portanto, nem o remetente pode desbloquear a caixa depois de ser bloqueada - em particular, o serviço postal não pode bisbilhotar sua mensagem. Eles podem até ter um cadeado de você também, mas isso não os ajuda a desbloquear a caixa.

(Fornecemos este exemplo para responder à sua pergunta como indicado, sem nenhuma opinião específica sobre se é realmente útil para a explicação do bitcoin.)

Ben Millwood
fonte
1
Esta é uma explicação útil da criptografia assimétrica, mas para explicar como o bitcoin funciona, o que você realmente precisa é de verificação de assinatura , que é o oposto: você tem um lote de cadeados que quebram ao abri-los e envia chaves para quem precisar eles. Então, quando você envia uma mensagem, coloca-a em uma caixa e coloca um cadeado nela, para que qualquer pessoa com a chave possa dizer que você a enviou.
Jules
@ Jules Eu realmente gosto dessa explicação, tornando-a análoga a um selo de violação.
Ryan The Leach
7

O problema de explicar os códigos assimétricos (e a razão pela qual a maioria das explicações pop realmente falha em explicar qualquer coisa) é que eles estão entrelaçados com a ideia de que existem problemas que são (supostamente) intratáveis, que é uma das idéias por trás da complexidade computacional.

Depois de entender esse ponto, um código criptografado assimétrico é "apenas" uma função fácil de calcular, mas difícil de inverter. Você pode até criar o seu próprio, veja a implementação original da troca de chaves Diffie-Hellman como referência.

ordenação rápida
fonte
3
Essa não é a história toda. Tem que ser difícil inverter, a menos que você tenha a chave privada.
quer
+1 para Diffie-Hellman. É um protocolo simples o suficiente para explicar, que corresponde ao exemplo das cores.
Ariel #
4

Eu não acho que exista um sistema de criptografia assimétrica facilmente demonstrável. Em vez disso, descreva o que faz, não como faz. Na verdade, tive que fazer isso recentemente, para descrever como o PGP funciona. Para BitCoin, concentre-se na segunda parte, assinando mensagens.

Eu posso criar dois números relacionados. Um é chamado de chave privada , o outro é a chave pública . Eu mantenho o primeiro segredo e digo a todos o segundo. Qualquer pessoa que queira me enviar uma mensagem pega minha chave pública e criptografa sua mensagem com ela. Feito isso, ninguém pode descriptografar a mensagem, nem mesmo o remetente. Quando recebo a mensagem, posso descriptografá-la com minha chave privada.

Ou, posso criptografar uma mensagem com minha chave privada e enviar a mensagem criptografada e não criptografada para uma segunda pessoa. Se eles tiverem minha chave pública, poderão descriptografar a parte criptografada da mensagem e será a mesma que a parte não criptografada. Isso mostra que eu fui a pessoa que criptografou a mensagem.

Se eles perguntarem como as chaves são geradas, diga

Penso em dois números primos muito grandes e depois os transformo através de uma função matemática. Ele cospe as chaves públicas e privadas.

Isso é claro, encobrir o fato de que a criptografia assimétrica normalmente não funciona na mensagem em si, mas em uma chave de sessão (para criptografia) ou em um hash (verificação de assinatura). Também ignora o requisito muito importante de que você deve manter sua chave privada privada - qualquer pessoa com acesso a ela pode fingir ser você.

CSM
fonte