Che cos'è una cifra asimmetrica di base che posso presentare al pub?


30

Sto cercando di spiegare le basi del Bitcoin ai miei genitori.

Uno dei componenti principali di bitcoin è la firma di transazioni per assicurarsi che la tua identità non possa essere rappresentata, e quindi la necessità di spiegare una cifra asimmetrica semplificata.

Cos'è una cifra asimmetrica estremamente semplice che posso usare come esempio?

Come si può usare questa cifra semplificata per la firma?


17
Perché dovresti andare in crittografia per parlare in un pub di bitcoin? A mio avviso, il bitcoin risolve il problema di mantenere un registro distribuito, evitando in particolare il doppio problema di spesa. La motivazione è quella di evitare di avere un'autorità centrale, e ciò può essere ottenuto consentendo a ciascun partecipante di approvare una transazione (anziché dare questa autorità alla banca). Per evitare che i partecipanti avversari approvino le proprie transazioni non valide, viene introdotto il concetto di prova del lavoro. Non c'è bisogno di parlare della crittografia a chiave pubblica.
Ariel,

La crittografia a chiave pubblica di @Ariel, o almeno le firme digitali, arriva quando vuoi sapere che la persona che dice di inviare 3 BTC da Ariel a Ryan è in realtà Ariel.
Derek Elkins,

1
Giusto, ma questo non è specifico per i bitcoin, quindi i suoi genitori lo troveranno confuso.
Ariel,

1
Puoi spiegare criptovalute asimmetriche, block chain o Bitcoin. Sceglierne uno.
Raffaello

2
Questa domanda potrebbe essere più adatta alla crittografia .
Raffaello

Risposte:


28

Se vuoi presentare la crittografia a chiave pubblica ai tuoi genitori o amici, ti suggerisco di seguire alcune linee guida. Innanzitutto, non parlare di funzioni specifiche, a nessuno importa di SHAxxx, mantieni il tuo discorso concettuale. Il problema risolto dalla crittografia a chiave pubblica è consentire a due parti che non si sono mai incontrate prima di scambiare informazioni in modo sicuro in un canale pubblico. Non confonderlo con altre applicazioni ottenute mediante la crittografia a chiave pubblica, come le firme digitali o l'autenticazione.

Una semplice illustrazione illuminante di ciò che ho visto è la seguente. Supponiamo che due parti abbiano un secchio e un numero di colori e che vogliano concordare un composto segreto specifico. Sono autorizzati a scambiarsi l'un l'altro un secchio con un certo composto, ma tutto ciò che viene inviato viene esposto a un avversario malvagio. L'ipotesi sottolineata è che mescolare i colori è facile, ma scomporre una miscela con i suoi ingredienti è difficile. Questo presupposto (che è facilmente collegato al lato formale delle cose) ti consente di raggiungere il loro obiettivo. Scegli un colore pubblico e consenti ad entrambe le parti di scegliere un colore segreto, indichiamolo con . La prima parte invia quindi un bucket di una miscela di . Allo stesso modo, la seconda parte invia un bucket contenente una miscela diPS1,S2P,S1P,S2 . Infine, ciascuna parte aggiunge il suo colore privato alla miscela che ha ricevuto, e ora entrambe le parti hanno una miscela di , che (per nostra supposizione) rimane segreta da qualsiasi intercettatore. Una versione formale di questo è il protocollo di scambio di chiavi Diffie-Hellman, che si basa sulla durezza del registro discreto.P,S1,S2

Ora, la mia comprensione del protocollo bitcoin è limitata, ma quando ne parlo con i tuoi genitori, non vedo alcun motivo per entrare nella crittografia. La maggior parte delle spiegazioni popolari che ho visto approfondire inutilmente i dettagli di implementazione e iniziare a parlare di trovare un preimage di un hash in modo tale che il risultato avrebbe un numero di zeri, perdendo di vista il problema reale. Come prima, suggerisco di mantenere il discorso concettuale. Quale problema sta cercando di risolvere il bitcoin, e perché questo non è banale? A mio avviso, il bitcoin risolve il problema di mantenere un registro distribuito, evitando in particolare la doppia spesaxproblema. La motivazione è quella di evitare di avere un'autorità centrale, e ciò può essere ottenuto consentendo a ciascun partecipante di approvare una transazione (anziché dare questa autorità alla banca). Per evitare che i partecipanti avversari approvino le proprie transazioni non valide, viene introdotto il concetto di prova del lavoro. POW usa l'hash come una scatola nera, quindi puoi evitare di menzionare candidati specifici.


Bitcoin risolve sia il doppio problema di spesa (che fa tramite la blockchain, per cui l'algoritmo di "prova del lavoro" che descrivi è essenziale) sia l'autenticazione distribuita delle richieste di trasferimento (che è meno spesso discusso, perché si riduce a un già risolto problema, ovvero autenticazione dei messaggi tramite chiavi asimmetriche).
Jules il

15

Una metafora comune che sento usata è la produzione di un gruppo di lucchetti, la conservazione di tutte le chiavi e l'invio di lucchetti aperti a chiunque ne voglia uno. Quindi chiunque abbia un tale lucchetto può inviarti messaggi segreti mettendoli in una scatola e quindi usando uno dei tuoi lucchetti per bloccarlo prima di inviarlo a te. Nessuno tranne te ha le chiavi, quindi anche il mittente non può sbloccare la scatola dopo che è stata bloccata, in particolare il servizio postale non può curiosare sul tuo messaggio. Potrebbero anche avere un lucchetto anche da te, ma ciò non li aiuta a sbloccare la scatola.

(Fornisco questo esempio per rispondere alla tua domanda come indicato, senza alcuna opinione particolare sul fatto che sia effettivamente utile per la spiegazione dei bitcoin.)


1
Questa è una spiegazione utile della crittografia asimmetrica, ma per spiegare come funziona il bitcoin ciò di cui hai veramente bisogno è la verifica della firma , che è l'opposto: hai un lotto di lucchetti che si rompono quando li apri e invii le chiavi a chiunque possa aver bisogno loro. Quindi quando invii un messaggio lo metti in una scatola e metti un lucchetto su di esso, in modo che chiunque abbia la chiave possa dirti che lo hai inviato.
Jules il

@Jules Mi piace molto questa spiegazione, rendendola analoga a un sigillo antimanomissione.
Ryan The Leach,

7

Il problema con la spiegazione dei cifrari asimmetrici (e il motivo per cui la maggior parte delle spiegazioni pop in realtà non riescono a spiegare nulla) è che sono intrecciati con l'idea che esistano problemi che sono (presumibilmente) intrattabili, che è una delle idee alla base della complessità computazionale.

Una volta superato questo punto, un cifrario asimmetrico è "solo" una funzione che è facile da calcolare ma che è difficile da invertire. Potresti persino crearne uno tuo, vedi la chiave Diffie-Hellman scambiare l'implementazione originale come riferimento.


3
Non è tutta la storia. Deve essere difficile da invertire se non si dispone della chiave privata.
Ben Millwood,

+1 per Diffie-Hellman. È un protocollo abbastanza semplice da spiegare, che corrisponde all'esempio dei colori.
Ariel,

4

Non credo che esista un sistema di crittografia asimmetrica facilmente dimostrabile. Invece, descrivi cosa fa, non come lo fa. In effetti, ho dovuto farlo di recente, per descrivere come funziona PGP. Per BitCoin, concentrati sulla seconda parte, firmando i messaggi.

Posso creare due numeri correlati. Uno è chiamato chiave privata , l'altro chiave pubblica . Tengo il primo segreto e dico a tutti il ​​secondo. Chiunque voglia inviarmi un messaggio prende la mia chiave pubblica e crittografa il suo messaggio con essa. Fatto ciò, nessuno può decodificare il messaggio, nemmeno il mittente. Quando ricevo il messaggio, posso decodificarlo con la mia chiave privata.

In alternativa, posso crittografare un messaggio con la mia chiave privata e inviare il messaggio crittografato e non crittografato a una seconda persona. Se hanno la mia chiave pubblica, possono decrittografare la parte crittografata del messaggio e sarà la stessa della parte non crittografata. Ciò dimostra che ero la persona che ha crittografato il messaggio.

Se chiedono come vengono generate le chiavi, allora dì

Penso a due numeri primi molto grandi, e poi li trasformo attraverso una funzione matematica. Sputa le chiavi private e pubbliche.

Questo è ovviamente ovvio al fatto che la crittografia asimmetrica normalmente non funziona sul messaggio stesso, invece su una chiave di sessione (per la crittografia) o su un hash (verifica della firma). Ignora anche il requisito molto importante che è necessario mantenere la chiave privata privata: chiunque abbia accesso a essa può fingere di essere te.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.