Scopri tutto sulle criptovalute Crittografia: come funziona?

In questa guida, approfondiremo la crittografia simmetrica e asimmetrica e la scienza alla base della crittografia delle criptovalute.

Le criptovalute come Bitcoin ed Ethereum utilizzano un sistema decentralizzato peer-to-peer per condurre transazioni. Poiché l’intero processo è online, si teme che le transazioni possano essere volatili e hackerabili. Quello che vedremo in questa guida è come la criptovaluta utilizza la crittografia per rendere le loro transazioni estremamente sicure.

Firme digitali

Uno degli strumenti crittografici più importanti utilizzati nella criptovaluta è il concetto di firme. Cos’è una firma nella vita reale e quali sono le sue proprietà? Immagina un foglio che hai firmato con la tua firma, cosa dovrebbe fare una buona firma?

crittografia semplice

  • Dovrebbe fornire la verifica. La firma dovrebbe essere in grado di verificare che sei tu a firmare effettivamente il documento.
  • Dovrebbe essere non falsificabile. Nessun altro dovrebbe essere in grado di falsificare e copiare la tua firma.
  • Non ripudio. Se hai firmato qualcosa con la tua firma, non dovresti essere in grado di riprenderlo o affermare che qualcun altro l’ha fatto invece di te.

Nel mondo reale, tuttavia, non importa quanto sia complessa la firma, ci sono sempre possibilità di falsificazione e non puoi realmente verificare le firme usando semplici aiuti visivi, è molto inefficiente e non affidabile.

firme digitali

La crittografia ci offre una soluzione a questo mediante “firme digitali” che viene fatto tramite l’uso di “chiavi”. Allora, cosa sono le chiavi? E come vengono utilizzati nella blockchain? Prima di esplorarli, è importante saperne di più sulla crittografia di base.

Cos’è Cryptocurrencies Cryptography?

La crittografia è un metodo per utilizzare principi matematici avanzati nella memorizzazione e trasmissione di dati in una forma particolare in modo che solo coloro per i quali è destinata possano leggerli ed elaborarli. La crittografia è stata utilizzata per migliaia e migliaia di anni dalle persone per trasmettere messaggi senza essere rilevati. In effetti, il primo utilizzo della crittografia è stato visto nella tomba presa dall’Antico Regno in Egitto intorno al 1900 a.C. La crittografia è esistita nella società moderna in un modo o nell’altro.

La crittografia è uno degli strumenti più critici utilizzati nella crittografia. È un mezzo mediante il quale un messaggio può essere reso illeggibile per un lettore involontario e può essere letto solo dal mittente e dal destinatario. Nella tecnologia moderna, esistono tre forme di crittografia ampiamente utilizzate: crittografia simmetrica, crittografia simmetrica e hashing.

Crittografia simmetrica

La crittografia simmetrica è il primo metodo crittografico conosciuto conosciuto dall’uomo. Il concetto è molto semplice e se dovessimo suddividerlo in passaggi, questo è come apparirà:

  • Hai un messaggio M che vuoi inviare al tuo amico.
  • Crittografa il messaggio con una chiave e ottieni un testo cifrato C.
  • Il tuo amico riceve il tuo testo cifrato C.
  • Quindi decrittografa il testo cifrato utilizzando la stessa chiave per recuperare il messaggio M.

Se dovessimo mostrare una rappresentazione visiva del processo, questo sarebbe l’aspetto.

Credito immagine: SSL2BUY

Esistono due tipi di crittografia simmetrica:

  • Cifrari in streaming.
  • Cifrari a blocchi.

Che cosa sono i cifrari a flusso?

La cifratura a flusso sostanzialmente significa usare una chiave fissa che sostituisce il messaggio con una stringa di caratteri pseudocasuali. È fondamentalmente la crittografia di ogni lettera una alla volta.

Discuteremo 3 tipi di cifrari a flusso in questa guida per darti un’idea di come funzionano i cifrari a flusso:

  • Unico pad con alfabeti.
  • Taccuino monouso con cancello XOR.
  • Registro a scorrimento con feedback lineare.

Unico pad con alfabeti

Per fare questa crittografia dobbiamo avere una chiave che abbia lo stesso numero di caratteri del messaggio e deve essere utilizzata una sola volta (da qui il termine “one-time pad”).

Supponiamo per questo esempio di inviare un messaggio, “INCONTRARMI FUORI” al nostro amico Bob. Ma non vogliamo che nessuno intercetti il ​​nostro messaggio. Questo è il motivo per cui Bob e noi abbiamo deciso di utilizzare un blocco unico che funziona in questo modo:

“B D U F G H W E I U F G W”

Come puoi vedere, anche il pad ha lo stesso numero di caratteri del messaggio, ovvero 13.

Ora, questo è un esempio molto semplice del one-time pad, lo stiamo usando perché riteniamo che sia il miglior esempio da usare per capire questa tattica.

Ora, un’altra cosa di cui devi prendere nota, ogni alfabeto verrà sostituito dal suo equivalente numerico durante il processo.

La mappatura numerica funziona così:

La scienza dietro la crittografia delle criptovalute

Durante il processo, ci saranno 6 dati di cui abbiamo bisogno che sono: Fondamentalmente, l’equivalente numerico di ogni alfabeto. Ok, ora che abbiamo gettato le basi, passiamo al processo vero e proprio.

  • Messaggio originale (OM): il messaggio originale che stiamo passando. In questo caso “MEET ME OUTSIDE”.
  • Numerical Original Message (NOM): l’equivalente numerico del messaggio originale,
  • OTP: The One-time Pad.
  • Numerical OTP (NOTP): l’equivalente numerico dell’OTP.
  • NCT: Il testo cifrato numerico che è NOM + NOTP mod 26
  • CT: il testo cifrato che è l’equivalente alfabetico dei numeri nell’NCT.

Quindi, dobbiamo inviare il messaggio “MEET ME OUTSIDE” e dobbiamo utilizzare il pad monouso per crittografarlo.

Il processo di crittografia

Quindi, iniziamo inserendo il messaggio nell’OM

La scienza dietro la crittografia delle criptovalute

Abbiamo messo il messaggio “INCONTRARMI FUORI” nella riga OM. Ok, allora cosa è successo qui?

Successivamente, abbiamo utilizzato la tabella di mappatura numerica per ottenere l’equivalente numerico di ogni alfabeto. Quindi, facciamo riferimento alla tabella di mappatura e vediamo cosa otteniamo:

La scienza dietro la crittografia delle criptovalute

Nella riga OTP inseriamo la chiave che ci è già stata data che è, nel caso abbiate dimenticato, “B D U F G H W E I U F G W”. È solo una semplice sostituzione, prenderemo questi valori e lo inseriremo nella riga NOM.

Ora, nella riga NOTP abbiamo utilizzato la stessa tabella di mappatura dei numeri e abbiamo trovato i valori numerici equivalenti della chiave che sono:

“1, 3, 20, 5, 6, 7, 22, 4, 8, 20, 5, 6, 22”.

Nella nuova riga, per il testo cifrato numerico (NCT) aggiungiamo NOTP e NOM e modifichiamo il risultato di 26 per ottenere il nostro NCT.

Quindi, finalmente il messaggio “MEET ME OUTSIDE” si trasforma in una serie pseudo-casuale di caratteri “N H Y S L K Y B M N J A”. È così che trovi i valori per NCT e poi usi la tabella di mappatura e trovi gli alfabeti corrispondenti che sono: “N H Y Y S L K Y B M N J A”.

Ecco come funziona il processo di crittografia.

Il processo di decrittazione

Ora vedremo come possiamo decrittografare il messaggio usando la stessa identica chiave.

Vediamo i dati che Bob ha con sé:

  • Ha il messaggio criptato che ha ricevuto da me.
  • Ha la chiave che condividiamo entrambi.
  • Ha la tabella di mappatura per trovare gli equivalenti numerici.

Quindi, come decodificherà il messaggio utilizzando questi dati?

  • Mapperà i valori numerici sia della chiave che del messaggio crittografato per ottenere NCT e NOTP.
  • Calcolerà quindi il NOM (valore numerico del messaggio originale) facendo questo calcolo: NOM = NCT – NOTP mod 26.
  • Utilizzerà la tabella di mappatura per recuperare gli alfabeti corrispondenti.

La scienza dietro la crittografia delle criptovalute

Quindi, vediamo come funziona il calcolo NOM?

La scienza dietro la crittografia delle criptovalute

Ora, se mappiamo il NOM al suo equivalente alfabetico utilizzando la tabella di mappatura, otteniamo:

“MEET ME OUTSIDE”

E proprio così, il messaggio viene crittografato e decrittografato utilizzando la stessa chiave.

Taccuino monouso con cancello XOR

XOR o “Exclusive OR” è una porta logica. Cos’è una porta logica? Una porta logica di solito accetta 2 ingressi e fornisce 1 uscita. Gli ingressi e le uscite sono valori binari, ovvero possono essere 1 o 0. Una porta logica XOR accetta 2 ingressi binari e fornisce un’uscita alta SOLO quando gli ingressi sono diversi. Ciò significa che se A e B vengono immessi in un gate XOR, l’uscita C sarà 1 SOLO quando A non è uguale a B.

Il gate XOR ha questo aspetto:

iLa scienza dietro la crittografia delle criptovalute

Cortesia dell’immagine: Wikimedia

Ecco come appare la tabella della verità XOR:

La scienza dietro la crittografia delle criptovalute

Il processo di crittografia

Supponi di avere un dato di testo semplice che vuoi inviare alla tua amica Alice. Innanzitutto, lo convertirai nella sua forma binaria. Supponiamo che il messaggio che hai è questo: 00011110

Ora hai la chiave, la chiave che condividi con il destinatario e supponi di aver passato la chiave attraverso un algoritmo che ti dà il risultato binario equivalente: 01001010.

Quindi, ora che hai la chiave, dovrai XOR ogni singolo bit corrispondente per ottenere l’output di testo cifrato risultante.

Testo cifrato = Chiave XOR in testo normale

Quindi se XOR entrambi i dati la chiave che otterrai è:

 

La scienza dietro la crittografia delle criptovalute

“01010100”

Questo è il testo cifrato che Alice riceverà da te.

Il processo di decrittazione

Quindi ora, come farà Alice decrittograferà il tuo messaggio e recupererà quello originale?

Questi sono i dati che ha:

  • Il testo cifrato
  • Il tasto.

Allora cosa farà? È semplice.

Semplicemente XOR la ​​chiave e il testo cifrato e recupererà il messaggio originale! Guarda tu stesso:

La scienza dietro la crittografia delle criptovalute

E proprio così, recupererà il messaggio originale.

Registro a scorrimento con feedback lineare

Cos’è un registro a scorrimento con feedback lineare? È una funzione il cui output futuro dipende completamente dal suo stato precedente (o corrente). Questo diventerà più chiaro man mano che continui a leggere, quindi non spaventarti!

L’idea di questo stile di cifratura a flusso è quella di predeterminare una chiave con il tuo destinatario che sarà una funzione di registro a scorrimento di feedback lineare che verrà utilizzata da te per determinare il codice. Supponiamo che tu abbia parlato con il tuo amico Bob e determinato che questa è la formula con cui entrambi volete andare (merito di Daniel Rees da Youtube per questa formula).

  • E (i + 3) = E (i + 1) + 2E (i + 2) mod 26.

E supponiamo anche che prima di inviare questo messaggio tu e Bob avete determinato che E (1) = 2 ed E (2) = 4.

Ora puoi vedere che in questa equazione tutti gli output futuri dipendono dagli output precedenti.

Quindi, supponiamo che il messaggio che vuoi inviare a Bob sia “MEET ME”. Poiché ci sono 6 caratteri, dobbiamo determinare 6 valori di E () che fungano da chiave. Abbiamo già predeterminato i valori di E (1) ed E (2). Ora dobbiamo calcolare E (3) in E (6).

  • E (3) = E (1) + 2E (2) mod 26 = 10.
  • E (4) = E (2) + 2E (3) mod 26 = 24.
  • E (5) = E (3) + 2E (4) mod 26 = 6.
  • E (6) = E (4) + 2E (5) mod 26 = 10.

Quindi, ora che abbiamo le chiavi, iniziamo la decrittografia.

Il processo di crittografia

Quindi, ora che abbiamo la chiave e il messaggio, creiamo la tabella:

La scienza dietro la crittografia delle criptovalute

Per ottenere il testo cifrato numerico, aggiungi la chiave e il valore numerico corrispondente dell’alfabeto che mappi da questa tabella che abbiamo già visto prima:

La scienza dietro la crittografia delle criptovalute

Ora, per ottenere il valore numerico dei testi cifrati, aggiungi la chiave e il valore numerico del messaggio originale e mod con 26.

Quindi ottieni:

La scienza dietro la crittografia delle criptovalute

Ora usa di nuovo la tabella di mappatura per trovare gli alfabeti corrispondenti e ottieni “OIORSO”. Questo è il messaggio crittografato.

La decrittografia di questo messaggio è davvero difficile soprattutto se non hai la chiave. Tuttavia, un esperto potrebbe individuare uno schema. Avrai bisogno di computer per visualizzare questo codice.

Esempi di cifrari in streaming utilizzati nel mondo reale.

Il Rivest Cipher 4 della RC4

  • Utilizzato in WEP, noto anche come protocollo equivalente cablato per la sicurezza della rete wireless.
  • Anche un’opzione in TLS / HTTPS per crittografare il traffico web.
  • Poiché è stato incrinato così tante volte, non è più raccomandato per l’uso.

L’A5 / 1

  • Utilizzare per crittografare i dati e le comunicazioni del telefono GSM (Global System for Mobile communication).
  • Edward Snowden nelle sue fughe di notizie ha rivelato che la NSA continua a violare regolarmente il GSM per scopi di sorveglianza, quindi non è più una modalità di crittografia sicura.

Quindi, questo è praticamente tutto sui cifrari a flusso, è ora di passare ai cifrari a blocchi.

Che cosa sono i cifrari a blocchi?

Cifrari a blocchi sono una forma di crittografia simmetrica che utilizza una chiave di lunghezza fissa per crittografare un blocco di lunghezza fissa. Cominciamo controllando un codice di sostituzione molto comune che devi aver visto prima:

La scienza dietro la crittografia delle criptovalute

Quindi, se qualcuno ti dicesse che ha ricevuto un messaggio che dice “EFBD” e vuole che lo decifri e invece ottenga il messaggio originale, come lo farai?

Vedrai semplicemente la tabella, vedrai quali alfabeti corrispondono a quali e poi semplicemente sostituirai giusto? Quindi “EFBD” è la cifra per “FACE”.

Ora controlliamo il testo normale e il testo cifrato e confrontiamoli:

  • Semplice: A B C D E F
  • Cifrario: F A B C D E

Quindi, come puoi vedere, il testo cifrato è fondamentalmente il testo normale spostato a destra di uno. Quindi, in questo caso particolare:

  • EFBD = FACCIA spostato di 1

Questo, in sostanza, è ciò che è un cifrario a blocchi. Dato un testo semplice di input e una chiave, può generare un testo cifrato univoco. Un’altra cosa che è estremamente importante e dovrebbe essere notata. Data la chiave, chiunque può decifrare il testo cifrato dal testo normale e viceversa. Gli esempi che stiamo dando qui sono tutti estremamente semplicistici, il codice a blocchi avviene con enormi blocchi di dati.

Se stiamo cercando una rappresentazione visiva di un codice a blocchi, ecco come apparirà:

block cipher visual

Un’altra proprietà interessante del codice a blocchi è che se la chiave cambia, cambia il testo cifrato in uscita in modo piuttosto drastico. Facciamo un test con i dati che abbiamo in questo momento.

La scienza dietro la crittografia delle criptovalute

Ora, abbiamo 3 chiavi per i 3 diversi testi cifrati.

  • Nel testo cifrato 1 ci stiamo spostando a destra una volta.
  • Nel testo cifrato 2 ci stiamo spostando a destra due volte.
  • Nel testo cifrato 3 ci stiamo spostando a destra tre volte.

Quindi, vediamo cosa succede quando analizziamo l’input “FACE” attraverso tutti questi diversi cifrari.

  • Quando key = 1, FACE diventa EFBD
  • Quando chiave = 2, FACE diventa DEAC
  • Quando chiave = 3, FACE diventa CDFB

Come puoi vedere, il testo cifrato in output cambia ogni volta che cambi la chiave. Nell’esempio abbiamo pochissimi dati, immagina di farlo con enormi quantità di dati, l’output cambierà drasticamente ogni singola volta.

Ci sono due regole per considerare valido un cifrario a blocchi:

  • È necessario essere in grado di derivare il testo normale dal testo cifrato e viceversa data una chiave.
  • La funzione deve essere calcolabile in modo efficiente.

C’è un’altra cosa importante di cui devi prendere nota quando si tratta di cifrare a blocchi. Le dimensioni del blocco sono fisse in modo che il testo in chiaro di input deve essere della stessa dimensione della dimensione del blocco. Se l’input è più grande del blocco, deve essere scomposto per ottenere la dimensione corretta, se l’input è più piccolo, deve essere riempito con alcuni dati spazzatura per adattarsi alla dimensione del blocco.

Esempi di cifrari a blocchi

Data Encryption Standard (DES)

  • Dimensioni dei blocchi di 64 bit.
  • Dimensione chiave di 56 bit.
  • Era lo standard del governo fino al 2001.

Advanced Encryption Standard (AES)

  • Block size a 128 bit.
  • Dimensione chiave di 128, 192 o 256 bit.
  • Considerato molto sicuro e ampiamente utilizzato al giorno d’oggi

Il vantaggio della crittografia simmetrica

Anche se la crittografia simmetrica ha alcuni grossi problemi (di cui parleremo tra poco) il più grande vantaggio della crittografia simmetrica è che richiede un sovraccarico minimo. Hai solo bisogno di condividere una singola chiave con il tuo destinatario per andare avanti con questo metodo.

Anche ora, molti software utilizzano questo metodo insieme alla crittografia asimmetrica per fornire servizi di crittografia / decrittografia rapidi ed efficienti.

I problemi con la crittografia simmetrica

Anche se l’overhead è notevolmente inferiore, ci sono molti problemi con la crittografia simmetrica.

Problema n. 1: la chiave condivisa

Il fatto che la crittografia e la decrittografia vengano eseguite con una singola chiave è un problema enorme. Prima di tutto, la condivisione della chiave deve essere effettuata in modo molto sicuro, se qualcuno ottiene la chiave di, tutti i tuoi dati saranno compromessi.

Problema n. 2: non è scalabile

Un altro enorme problema con la crittografia simmetrica è che non è affatto scalabile. Supponiamo che Alice gestisca un centro informazioni e invii i dati tramite crittografia a chiave simmetrica. Va bene se ha a che fare solo con 3-4 clienti. Ma più clienti ottiene, più chiavi pubbliche uniche dovrà gestire e di cui prendersi cura. Alla fine, diventerà troppo da gestire.

A causa di queste vulnerabilità della crittografia a chiave simmetrica, era necessaria una soluzione e negli anni ’70 finalmente arrivò.

La svolta di James Ellis

Nel 1970, il matematico e ingegnere britannico James Ellis pensò a un’idea basata su un concetto semplice. E se la crittografia e la decrittografia fossero operazioni inverse basate su 2 chiavi diverse? Nella crittografia tradizionale, ovvero la crittografia simmetrica, il messaggio doveva essere inviato insieme alla chiave alla persona designata per decrittografare il messaggio, ma questo presentava l’idea molto reale di un attaccante che mette le mani sulla chiave.

Ellis immaginava che il destinatario del messaggio non potesse essere una parte passiva, e dovevano avere un “lucchetto” e una “chiave” per se stessi. Il lucchetto poteva essere inviato a chiunque nel mondo, ma la chiave doveva essere tenuta privata. Quindi chiunque può inviare un messaggio al destinatario chiudendolo con il proprio lucchetto e poiché solo il destinatario ha la chiave, solo lui può aprirlo.

Ora, questa era la teoria, doveva esserci una forma pratica di questa teoria, e ciò avvenne grazie a due principi brillanti:

  • La funzione botola.
  • Lo scambio di chiavi Diffie – Hellman.

Qual è la funzione botola?

Una funzione trapdoor aka una funzione unidirezionale è una funzione in cui è facile passare da uno stato aka il dominio all’altro stato aka l’intervallo ma è difficile tornare dall’intervallo al dominio a meno che non si abbia conoscenza di un chiave che è chiamata la funzione botola.

Diagrammaticamente è rappresentato così:

botola matematica

Credito immagine: Cornell.edu

Le funzioni botola si basano sull’idea delle chiavi. In cui la chiave pubblica (K) viene utilizzata per passare dal dominio all’intervallo. Per tornare al dominio dall’intervallo dobbiamo utilizzare una funzione trapdoor nota anche come chiave privata (k). È anche implicito che la chiave privata e la chiave pubblica siano matematicamente correlate tra loro e inoltre devono essere correlate tra loro tramite un’altra funzione trapdoor f () in modo tale che K = f (k) in modo che la chiave privata non sia possibile determinato dalla chiave pubblica.

Un semplice esempio di ciò è una moltiplicazione di grandi numeri. Supponiamo di avere due numeri 171 e 118, quindi è semplice determinare che 171 * 118 = 20178. Tuttavia, se conosci solo 20178, è difficile per te determinare quali fossero i numeri iniziali a meno che tu non abbia una chiave con te, in in questo caso la conoscenza di uno solo dei due numeri, per determinare il secondo.

Cos’è lo scambio di chiavi Diffie-Hellman?

Supponiamo che ci siano due persone Alice e Bob e che vogliano attaccare una banca. Tuttavia, si trovano su entrambi i lati della banca e possono comunicare tra loro solo tramite una linea condivisa che viene intercettata dalla banca.

Qualcosa come questo.

Tieni presente che tutto ciò che Alice e Bob si diranno verrà intercettato dalla banca. Quindi, come possono entrambi decidere una data per attaccare la banca senza che la banca ne venga a conoscenza e senza che Alice e Bob si scambino esplicitamente tali informazioni?

Questo enigma può essere risolto dallo scambio di chiavi Diffie-Hellman; è un concetto mediante il quale due parti possono ottenere informazioni segrete senza condividerle.

Per capire come funziona Diffie-Hellman, dobbiamo utilizzare una delle applicazioni più famose di questa teoria, lo scambio di colori segreto.

Per questo ci sono 3 cose che devi tenere a mente:

  • Alice e Bob concordano entrambi pubblicamente che il giallo sarà la pittura comune che useranno entrambi.
  • Alice poi tiene segretamente per sé che userà anche l’arancione insieme al giallo.
  • Bob decide segretamente che userà l’acqua insieme al giallo.

Fase uno

Dal momento che è stato pubblicamente dichiarato che il giallo sarà il colore preferito:

  • Banca: ha il giallo
  • Alice: ha il giallo
  • Bob: ha il giallo

Fase due

Ora Alice mescola il suo colore privato, noto anche come arancione, con il giallo e ottiene un colore composito che chiameremo CA..

Allo stesso tempo, Bob mescola il suo colore privato aqua con il giallo e crea il colore composito CB.

Quindi, alla fine della fase due, ecco come appaiono le cose:

  • Banca: gialla
  • Alice: CA
  • Bob: CB

Fase tre

Ora, Alice e Bob si invieranno a vicenda i rispettivi colori, che verranno prontamente sfruttati dalla banca. Tuttavia, la banca deve ora affrontare un problema.

Le combinazioni di colori sono una funzione botola.

Sebbene sia facile per qualcuno combinare due colori e generare un terzo colore, non è possibile per loro determinare i primi due colori dal terzo colore dato. Quindi, la banca si impadronirà di CA e CB ma non avrà idea di quali siano i colori che sono stati coinvolti nella sua creazione.

Quindi, ecco come stanno le cose in questo momento:

  • Banca: gialla, CA, CB.
  • Alice: CB
  • Bob: CA.

Fase quattro

Ora, Alice e Bob mescoleranno nuovamente i loro colori segreti nel mix che hanno ricevuto dall’altra persona, quindi ora entrambi avranno un mix di giallo, arancione e acqua che è marrone. La banca, tuttavia, avrà solo CA e CB perché non hanno idea di quali siano i colori segreti.

Quindi, ecco come sono le cose ora:

  • Banca: gialla, CA e CB.
  • Alice: Brown.
  • Bob: Brown.

Ed è qui che sta il trucco, non rivelando i loro colori segreti, sia Bob che Alice hanno, in loro possesso, il colore marrone, anche se non si sono mai scambiati esplicitamente il marrone tra loro.

Questo è l’aspetto del diagramma di questo intero scambio:

Cortesia dell’immagine: Wikipedia

Questa è la rappresentazione dello scambio Diffie-Hellman, ma era necessario un mezzo matematico per assicurarsi che potessero esserci applicazioni pratiche anche di questo. Per questo motivo è stata utilizzata la funzione modulo.

La forma matematica dello scambio Diffie-Hellman

Supponiamo che esista un generatore g per un campo finito di dimensione n. E in quel campo, scegliamo due valori casuali a e b. Sarà difficile per un attaccante determinare g ^ ab dati solo g, g ^ a e g ^ b. Questa è la condizione che attiva la funzione botola. Data questa condizione, due parti possono scambiarsi messaggi e raggiungere la stessa conclusione senza comunicarla esplicitamente tra loro.

Quindi, matematicamente questo è ciò che accade.

Alice sceglie un valore casuale “a” dal campo n e determina un messaggio M1 tale che:

  • M1 = g ^ a mod n.

Allo stesso modo, Bob sceglie un valore casuale “b” dal campo n e crea il messaggio M2 tale che:

  • M2 = g ^ b mod n.

Sia Alice che Bob possono ora inoltrare il messaggio l’uno all’altro.

Alice ora determina il messaggio speciale K effettuando le seguenti operazioni:

  • K = M2 ^ a mod n = g ^ ab mod n.

Bob ora determina lo stesso messaggio K da:

  • K = M1 ^ a mod n = g ^ ab mod n.

Quindi, sia Alice che Bob sono giunti alla stessa conclusione senza condividere esplicitamente queste informazioni.

Questo scambio di chiavi Diffie-Hellman è stato inestimabile nella formazione della crittografia asimmetrica:

Cos’è la crittografia asimmetrica?

La crittografia asimmetrica utilizza due chiavi, una chiave pubblica e una privata per crittografare e decrittografare un dato dato. L’uso di una chiave annulla l’uso dell’altra.

La rappresentazione schematica di esso è simile a questa:

crittografia a chiave simmetrica

Cortesia di immagine: SSL2BUY

Ci sono due usi nel mondo reale della crittografia asimmetrica che esamineremo in questa guida ed entrambi sono importanti per i loro motivi:

  • L’algoritmo Rivest-Shamir-Adleman noto anche come RSA.
  • La crittografia a curva ellittica.

Qual è l’algoritmo RSA?

L’algoritmo RSA è l’algoritmo crittografico asimmetrico più utilizzato e popolare nella storia. Prende il nome dai professori del MIT Rivest, Shamir e Adleman che hanno scoperto questo algoritmo. Ora, come funziona? L’idea è derivata dalle scoperte che ha avuto Diffie-Hellman.

Quindi, queste sono le variabili con cui lavoreremo:

Supponi di avere il messaggio segreto “m”. “M” elevato alla potenza di un numero casuale e e quindi il modulo di quello con un numero casuale N ti darà il testo cifrato c.

Fondamentalmente. m ^ e mod N = c

Nota, è FACILE eseguire questa funzione per ottenere l’output c MA dati solo c, e e N è difficile ottenere il messaggio “m”. Richiederà molte prove ed errori. Questa è la funzione botola unidirezionale che applicheremo per trovare “m”.

Ma ora, l’idea della funzione trapdoor è di avere una chiave che renderà il processo inverso (la decrittazione) semplice per il destinatario. Quindi, per questo avremo bisogno di trovare una variabile casuale “d” che renderà possibile questo processo:

  • c ^ d mod N = m.

Ora tieni presente, c = m ^ e mod N, quindi sostituisci.

  • m ^ e ^ d mod N = m.

O

  • m ^ ed mod N = m

Quindi, nelle equazioni precedenti:

  • Chiave pubblica = e e N.
  • Chiave privata = d.

Ora, prima ancora di iniziare a vedere il metodo alla base della follia, facciamo un semplice calcolo per vedere come funziona l’intero processo. (Grida al canale YouTube di Anthony Vance per questo esempio).

Supponiamo che il messaggio che devi inviare sia 42. In altre parole, m = 42.

Insieme a quello:

  • e = 17.
  • N = 3233.
  • d = 2753

Il processo di crittografia

c = m ^ e mod N.

Utilizzando la sostituzione semplice:

c = 42 ^ 17 mod 3233 = 2557.

Quindi il testo cifrato è 2557.

Il processo di decrittazione

Facciamo c ^ d mod N.

2557 ^ 2753 mod 3233

Questo ci dà il valore di m che è 42.

Genius non è vero?

Ora, ricorda quando abbiamo parlato di funzioni trapdoor siamo giunti alla conclusione che la chiave privata e pubblica devono essere derivate matematiche l’una dall’altra in un modo che:

F (chiave privata) = chiave pubblica, dove F () è un’altra funzione trapdoor.

Dovrebbe essere difficile per chiunque determinare la chiave privata dalla chiave pubblica. In effetti, dovrebbe essere così difficile che ci vorranno decenni e decenni sul computer più potente del mondo per derivare l’uno dall’altro.

Per rispondere a questo enigma, torniamo indietro di secoli e incontriamo il nostro prossimo genio, Euclide.

Euclide e scomposizione in fattori primi

Euclide ha scoperto secoli fa che qualsiasi numero > 1 può essere scritto come un prodotto di numeri primi.

  • Per esempio. 15 può essere scritto come 5 * 3.
  • 255 può essere scritto come 5 * 17 * 3.

Torniamo alle nostre due equazioni:

C = m ^ e mod N.

Qui, N è la chiave nella funzione botola. Anche se N forse è pubblicamente noto, dovrebbe essere difficile determinare i fattori primi che compongono il numero N. Se conosci i fattori primi, allora è un gioco da ragazzi scoprire il prodotto N.

Per esempio. Puoi utilizzare il tuo browser web per moltiplicare due numeri enormi e trovare il prodotto in meno di un secondo:

La scienza dietro la crittografia delle criptovalute

Ci sono voluti meno di un secondo, 0,22 secondi, per eseguire il calcolo. E più grande diventa il numero, ci vorrà un po ‘più di tempo, ma comunque i calcoli saranno eseguiti molto velocemente.

Tuttavia, se inserisci un numero enorme e chiedi al tuo computer di trovare i suoi fattori primi, potrebbero essere necessari giorni, mesi e persino anni per trovare i fattori primi.

Questa è la funzione botola che i crittografi hanno utilizzato per determinare il valore di N. Questo è fondamentalmente il cuore del trucco.

Questo è ciò che devi fare per utilizzare l’algoritmo RSA:

  • Innanzitutto, genera un grande numero primo casuale P1.
  • Genera un secondo grande numero primo casuale P2.
  • Trova N calcolando P1 e P2.
  • Nascondi i valori di P1 e P2 e rendi N pubblico.
  • N dovrebbe essere un numero enorme e le macchine più sofisticate del mondo impiegheranno decenni per trovare i valori di P1 e P2.
  • Quindi, per riassumere, N è la botola ei suoi fattori primi P1 e P2 sono le chiavi della botola.

Ok, quindi ora abbiamo determinato come viene calcolato N e la botola che funziona al suo interno. Ma non abbiamo ancora determinato il valore di “e” e “d” e non abbiamo ancora visto come la chiave privata sia derivata dalla chiave pubblica. Per generare tutti questi valori rimanenti, dobbiamo trovare una funzione che dipenda dalla conoscenza della fattorizzazione di N. E per questo dobbiamo andare a visitare il nostro prossimo genio, Leonhard Euler.

Eulero e fragilità

Nel 1760, il matematico svizzero Leonhard Euler fece alcuni studi rivoluzionari. Ha studiato la natura dei numeri e più specificamente la fragilità dei numeri che ha chiamato la funzione phi.

Fondamentalmente dato phi (N) dove N è un numero intero casuale, il valore di N sarà il numero di numeri tra 1 e N che non condividono alcun fattore comune con N.

Quindi, se N è 8, allora:

I numeri tra 1 e 8 sono: 1,2,3,4,5,6,7 e 8.

Tra questi numeri, solo 1,3,5 e 7 non condividono alcun fattore con 8 tranne 1.

Significato, phi (8) = 4.

Ora, calcolare la funzione phi è difficile tranne che per un caso. Per sapere questo, controlla il grafico seguente. Il grafico tiene traccia della distribuzione dei valori phi su numeri interi fino a 1000.

La scienza dietro la crittografia delle criptovalute

Cortesia dell’immagine: Khan Academy

Vedi quella linea verde diritta in alto che è opportunamente disposta? Questo è il phi dei numeri primi. Poiché la definizione di un numero primo è che non è fattorizzabile separatamente da se stesso, per qualsiasi numero primo p phi (p) = p-1.

Vediamolo in pratica. Supponi di avere un numero primo 7.

I numeri tra 1 e 7 sono: 1,2,3,4,5,6,7.

L’unico numero che condivide un fattore con 7 in questa serie è … 7!

Quindi phi (7) = 6.

Allo stesso modo, se dovessi trovare il phi di un numero primo grande, dì 541 allora:

Phi (541) = 541-1 = 540.

Diventa molto semplice calcolare il phi per un numero primo. E questo acquista, ancora di più, significato se si considera la natura moltiplicativa delle funzioni phi. Qual è la natura moltiplicativa delle funzioni phi?

Per ogni due numeri A e B:

Phi (A * B) = phi (A) * phi (B).

Ora torniamo agli algoritmi. Alice ha determinato due grandi numeri primi P1 e P2 e ha determinato un numero N facendo P1 * P2.

Quindi, usando la proprietà moltiplicativa delle funzioni phi:

Phi (N) = phi (P1) * phi (P2).

O

Phi (N) = (P1-1) * (P2-1).

E proprio così, abbiamo scoperto la funzione botola per phi. Se conosciamo i fattori primi di N allora è facile calcolare il phi (N).

Per es. il numero 77 ha fattori primi 7 e 11.

Quindi phi (77) = (7-1) * (11-1) = 60.

Diventa molto facile quando conosci i fattori primi di N.

Ora, era necessaria un’ultima parte di magia matematica. Abbiamo la funzione phi e abbiamo le funzioni di esponenziazione modulare che abbiamo determinato prima, dobbiamo riunire queste due in un’unica equazione.

E per questo, ci rivolgiamo ancora una volta a Eulero per chiedere aiuto.

Il teorema di Eulero

Teorema di Eulero afferma che:

Per due numeri m e n che non condividono un fattore:

m ^ phi (n) ≡ 1 mod n

Significa che per due numeri m e n, purché non condividano un fattore, m elevato a phi (n) diviso per n lascerà sempre un resto di 1. Vediamo questo in un esempio.

Supponiamo, m = 8 en = 5.

Phi (5) = 4

Quindi, 8 ^ 4 = 4096.

Sostituendolo nell’equazione del teorema di Eulero:

4096 ≡ 1 mod 5 vale perché 4096 diviso per 5 lascia un resto di 1.

Ora, l’equazione: m ^ phi (n) ≡ 1 mod n deve essere modificata un po ‘prima di ottenere la nostra soluzione finale.

Modifica n. 1

1 ^ k = 1 per tutti i k.

Quindi, tenendo presente questo, se in m ^ phi (n) ≡ 1 mod n moltiplichiamo l’esponente phi (n) per qualsiasi numero k, la soluzione finale sarà 1 ^ k che è ancora 1.

Ora, questo modifica l’equazione in questo modo:

m ^ k * phi (n) ≡ 1 mod n

Modifica n. 2

Per tutti m, m * 1 = m.

Quindi, nella nostra equazione modificata, se moltiplichiamo entrambi i lati per m otteniamo:

m * m ^ k * phi (n) ≡ m * 1 mod n

Che diventa:

m ^ k * phi (n) +1 ≡ m mod n

Questa è la forma finale della nostra equazione.

Prima di procedere, riportiamo le vecchie equazioni per rinfrescare la nostra memoria:

  • c = m ^ e mod N.
  • m = c ^ d mod N
  • m ^ e * d mod N = m

Ora, controlla l’ultima equazione non è simile alla nostra nuova equazione modificata:

m ^ k * phi (n) +1 ≡ m mod n

E questa è la svolta.

Confrontando le due equazioni, otteniamo:

e * d = k * phi (n) + 1

FINALMENTE abbiamo un’equazione in cui il valore di eed dipende da phi (n).

Ora, poiché sappiamo già il valore di e, è facile calcolare d, la chiave privata, SOLO se si conosce la fattorizzazione di N (che è un segreto che Alice ha tenuto per sé).

Quindi, d = (k * phi (n) + 1) / e.

Questa è la botola che annullerà la crittografia eseguita dalle sue chiavi private e e n.

Esempio per vedere come funziona tutto questo

Supponiamo che Bob e Alice si scambino messaggi.

Bob vuole inviare un messaggio M ad Alice dove M = 89.

Ora, Alice deve generare le sue chiavi.

Usa i numeri primi p1 e p2 dove:

P1 = 53.

P2 = 59.

N = P1 * P2 = 53 * 59 = 3127.

Phi (N) = Phi (P1) * Phi (P2) = (P1 – 1) * (P2 – 1) = 52 * 58 = 3016

Ora, ha bisogno di generare un valore e che non avrà fattori con il valore di phi (N).

Quindi, decide e = 3.

Ora genererà la sua chiave privata d:

d = (k * phi (N) + 1) / e

Prendendo k = 2 otteniamo:

d = (2 * 3016 + 1) / 3 = 2011.

Ora bloccherà tutti i valori tranne N ed e che sono la sua chiave pubblica e renderà la conoscenza di questi due globale.

Bob crittografa il messaggio

Ora, Bob deve inviare il messaggio M, che è 89, e deve calcolare il testo cifrato c in modo che:

c = M ^ e mod N.

Ora sappiamo che: M = 89, e = 3 e N = 3127.

Quindi: c = 89 ^ 3 mod 3127 = 1394.

Quindi lo invia ad Alice.

Alice decrittografa il messaggio

Alice ottiene il testo cifrato e tutto ciò che deve fare è decrittarlo usando la sua chiave privata d che sappiamo essere 2011.

Quindi, Alice fa questo calcolo: c ^ d mod N

1394 ^ 2011 mod 3127 che è 89 aka il messaggio originale M.

E questo è l’algoritmo RSA, l’algoritmo crittografico più utilizzato

Cos’è la crittografia a curva ellittica?

La crittografia a curva ellittica è ciò che viene utilizzato da bitcoin, ethereum ecc. Per i loro scopi di crittografia. Allora, cos’è una curva ellittica? Una curva ellittica è qualsiasi curva che soddisfa la seguente equazione:

Y ^ 2 = x ^ 3 + ascia + b

Dove (x, y) è un punto sulla curva e aeb sono costanti.

Ci sono infinite curve che puoi realizzare. Quello che segue è l’aspetto generale di una di queste curve:

La scienza dietro la crittografia delle criptovalute

Credito immagine: canale youtube CSBreakdown

Quali sono le proprietà di una curva ellittica?

  • La curva è simmetrica rispetto all’asse x.
  • Qualsiasi linea che passa per 2 punti sulla curva intersecherà la curva su un terzo punto.
  • Qualsiasi tangente sulla curva intersecherà la curva in un altro punto.

Esecuzione di matematica sulla curva.

Proprietà di addizione della curva

Supponiamo che ci siano due punti sulla curva V e A. Tracciamo quelli sulla curva e tracciamo una linea attraverso di essi. Questo intersecherà la curva su un terzo punto.

La scienza dietro la crittografia delle criptovalute

Credito immagine: canale youtube CSBreakdown

Chiameremo questo terzo punto X e lo rifletteremo sulla curva in questo modo:

La scienza dietro la crittografia delle criptovalute

Credito immagine: canale youtube CSBreakdown

Il riflesso di X è un punto che sarà incidentalmente (V + A). Questa è la proprietà additiva della curva ellittica.

Nota interessante. Se aggiungiamo due riflessioni tra loro, ovvero se dovessimo aggiungere X e V + A nel grafico sopra, otterremo infinito. Il motivo è che la linea che passa per X e (V + A) intersecherà la curva all’infinito.

Proprietà di moltiplicazione della curva

Ora, cosa succede se vogliamo aggiungere un numero a se stesso? Supponiamo di avere un punto V, cosa dobbiamo fare per trovare 2V? Eseguiremo una tangente attraverso V e la intersecheremo in un punto nel grafico, quindi troveremo il riflesso del punto sulla curva. Quella riflessione sarà 2V.

La scienza dietro la crittografia delle criptovalute

Credito immagine: canale youtube CSBreakdown

Questa è anche la proprietà moltiplicativa del grafico perché stiamo trovando punti che sono fondamentalmente la moltiplicazione di un intero con il punto stesso. Supponiamo ora di voler trovare 3V. Uniremo V e 2V e quindi rifletteremo il punto di intersezione, in questo modo:

La scienza dietro la crittografia delle criptovalute

Credito immagine: canale youtube CSBreakdown

Vedi come i punti scorrono nel grafico? Questo è ciò che gli dà la sua sicurezza.

Proprietà matematiche di una curva ellittica

Proprietà n. 1: I punti sulla curva formano un gruppo abeliano

Le proprietà del gruppo abeliano sono le seguenti:

  • Hanno identità.
  • Hanno inverse aka riflessioni.
  • I punti hanno un significato associativo per tre punti A, B e C sulla curva: (A + B) + C = A + (B + C).
  • I punti sono chiusi sulla curva.
  • I punti hanno un significato commutativo per due punti A e B. A + B = B + A.

Proprietà n. 2: la moltiplicazione sulla curva è veloce

Tutte le moltiplicazioni eseguite sulla curva possono essere eseguite molto velocemente. Supponiamo ora di avere un punto P e di voler trovare 100P. Invece di aggiungere il numero a se stesso 100 volte, possiamo fare quanto segue:

  • Aggiungi il punto P a se stesso per ottenere 2P.
  • Aggiungi 2P e P per ottenere 3P.
  • Aggiungi 3P a se stesso per ottenere 6P.
  • Aggiungi 6P a se stesso per ottenere 12P.
  • Aggiungi 12P a se stesso per ottenere 24P.
  • Aggiungi 24P e P per ottenere 25P.
  • Aggiungi 25P a se stesso per ottenere 50P.
  • Aggiungi 50P a se stesso per ottenere 100P.

Quindi, invece di eseguire 99 passaggi, riduci l’intera operazione a soli 8 passaggi.

Proprietà n. 3: la divisione sulla curva è lenta

Mentre la moltiplicazione è veloce, la divisione è molto lenta. Supponiamo di avere Q = nP e di voler trovare il valore di n dividendo Q per P. Non possiamo davvero farlo. Dovremo scorrere manualmente i numeri uno per uno per trovare un valore che soddisfi l’equazione. Questo lo rende molto lento. Questo è chiamato problema logaritmico discreto e questo è ciò che dà alle curve la sua funzione botola, cioè è facile moltiplicare n e P per ottenere Q ma dati Q e P non è fattibile ottenere n.

Lo scambio di chiavi Diffie-Hellman a curva ellittica

Quindi, fino ad ora abbiamo visto le varie proprietà della curva e abbiamo anche visto che la curva ha una funzione botola. Ora come determiniamo se è utilizzabile per la crittografia o no? Proviamolo con lo scambio di chiavi Diffie-Hellman. Supponiamo di avere Alice e Bob e vogliono entrambi inventare un segreto comune senza che nessuno sappia cosa sia e senza scambiare esplicitamente le sue informazioni tra loro. Come lo faranno tramite curve ellittiche?

  • In primo luogo, concorderanno pubblicamente una curva da utilizzare e un punto P sulla curva. Questo sarà di dominio pubblico e disponibile per tutti.
  • In segreto, tuttavia, Alice sceglierà un punto segreto “a” e Bob sceglierà un punto segreto “b”.
  • Alice calcolerà “aP” e lo invierà a Bob. Chiunque può intercettare questo messaggio, però anche con la conoscenza di P non potrà mai determinare il valore di “a” perché, come abbiamo già determinato, c’è una funzione botola che renderà la divisione impraticabile.
  • Allo stesso modo, Bob presenterà il valore “bP” e lo invierà ad Alice.
  • Alice moltiplicherà quindi la sua chiave segreta al messaggio che riceve da Bob per ottenere un (bP). Bob farà lo stesso e tirerà fuori b (aP). Poiché tutti i punti sulla curva sono abeliani: a (bP) = b (aP). E proprio così, si sono imbattuti in un’informazione condivisa segreta.

Quindi come possiamo vedere. La curva soddisfa lo scambio di chiavi Diffie-Hellman.

Quindi come funziona la verifica della firma sulle curve ellittiche?

(Nota: questo è ciò che accade specificamente in bitcoin)

Prima di vedere come funziona il processo, esaminiamo alcune variabili e il loro significato che utilizzeremo le seguenti equazioni.

  • Chiave privata = d.
  • Messaggio = z.
  • Chiave pubblica = Q.

G sarà un punto costante sul grafico che sarà fornito da bitcoin.

  • “K” è un numero casuale che verrà generato automaticamente per ogni firma univoca.
  • “N” è un’altra costante che verrà fornita da bitcoin.

Ok, ora vediamo come funzionano i calcoli alla base della verifica.

Firmare un messaggio

Chiave pubblica Q = dG. (è impossibile ottenere la chiave privata da Q e G perché la divisione non è fattibile).

Ora moltiplicheremo la G con il numero casuale “k” e tracciamo quel punto sul grafico. Le coordinate di quel punto sono (x, y). cioè (x, y) = kG

Successivamente, determiniamo due valori r e s tali che:

r = x mod n.

s = (z + rd) k ^ -1 mod n

Il motivo per cui generiamo r e s è perché queste sono le coordinate della nostra firma.

Quindi, inviamo il punto (r, s) per la verifica.

Verifica di un messaggio

I verificatori condurranno una semplice equazione:

z * s ^ -1 * G + r * s ^ -1 * Q

Il valore di questa equazione ci darà il punto (x, y).

Ora, i verificatori possono semplicemente confrontare le coordinate x. Non hanno la coordinata x data loro direttamente dal mittente MA hanno i valori di r e n.

E poiché sappiamo già che r = x mod n, e quindi possono semplicemente risolvere per x.

Se i valori di x corrispondono, significa che la firma è verificata!

Bonus: uno sguardo più approfondito alla matematica

Esaminiamo l’equazione che i verificatori dovranno ripetere ancora una volta:

  • Passaggio 1: z * s ^ -1 * G + r * s ^ -1 * Q

Sappiamo che Q = d * G, sostituiamo semplicemente il valore.

  • Passaggio 2: z * s ^ -1 * g + r * s ^ -1 * d * G

Possiamo prendere (z + r * d) comune

  • Passaggio 3: (z + r * d) * s ^ -1 * G

Ora ricorda, abbiamo già stabilito che s = (z + r * d) * k ^ -1 mod n, sostituiamo i valori qui:

  • Passaggio 4: (z + r * d) * (z + r * d) ^ – 1 * k * G

Gli (z + r * d) * (z + r * d) ^ – 1 si annullano a vicenda e ci ritroviamo con:

  • Passaggio 5: k * G che è la coordinata (x, y) originariamente inviata dal mittente.

Cosa potrebbe andare storto nelle curve ellittiche?

Anche se è ovvio che le curve ellittiche sono la migliore modalità di crittografia disponibile, resta il fatto che ha ancora poche vulnerabilità:

  • E se fosse stata scelta una curva sbagliata? Se la curva contiene un loop, è possibile che 1001P = P per qualsiasi punto P sulla curva.
  • Forse viene scelta una curva debole che può essere scomposta.

Ha i suoi punti deboli ma sono debolezze abbastanza gestibili.

RSA vs EEC. Perché bitcoin ed ethereum hanno scelto le curve ellittiche?

Il motivo per cui è stato scelto EEC rispetto a RSA è perché offre lo stesso livello di sicurezza di RSA consumando molto meno bit. Per esempio. affinché una chiave a 256 bit in EEC offra lo stesso livello di sicurezza, RSA dovrà fornire una chiave a 3072 bit. Allo stesso modo, per una chiave a 384 bit in EEC, l’RSA dovrà fornire una chiave a 7680 bit per fornire lo stesso livello di sicurezza! Come si può vedere, l’EEC è molto più efficiente di RSA.

Curiosità: la NSA ha dichiarato che una chiave a 384 bit in EEC è abbastanza forte e sicura da crittografare documenti segreti di alto livello.

Come funzionano le chiavi in ​​blockchain?

Come accennato in precedenza, bitcoin ed ethereum utilizzano la crittografia a curva ellittica. Allora, cosa succede quando qualcuno ti invia denaro sulla blockchain? Ti inviano i soldi al tuo indirizzo pubblico che è fondamentalmente l’hash della tua chiave pubblica e alcune informazioni aggiuntive. Come abbiamo visto sopra, la chiave pubblica è derivata matematicamente dalla tua chiave privata.

Le chiavi pubbliche e private sono entrambi valori interi di grandi dimensioni e sono rappresentate, per brevità, tramite il formato di importazione del portafoglio (WIF) che consiste di lettere e numeri. Una chiave privata di esempio e un indirizzo pubblico hanno questo aspetto in WIF:

La scienza dietro la crittografia delle criptovalute

Ovviamente, non dovresti condividere la tua chiave privata con il mondo come abbiamo appena fatto! La chiave privata viene utilizzata per firmare la transazione che l’utente desidera eseguire. Quindi, se qualcuno ha accesso alla tua chiave privata, può firmare le transazioni utilizzando la tua chiave privata e, in sostanza, rubare da te. Inoltre, come puoi vedere, la chiave privata è più lunga dell’indirizzo pubblico.

Quindi, come viene derivata una chiave pubblica dalla chiave privata nella blockchain? Prendiamo l’esempio del bitcoin per questo esempio specifico.

Supponiamo che Alice voglia generare le sue chiavi in ​​modo da poter condurre transazioni sulla blockchain. Questo è quello che farà:

  • Innanzitutto, genererà la sua chiave privata a 256 bit. Può farlo manualmente OPPURE utilizzerà un generatore automatico. Questo è un esempio di un generatore di indirizzi privati ​​che puoi trovare in un wallet-generator.net:La scienza dietro la crittografia delle criptovalute
  • Successivamente, dovrà generare l’indirizzo pubblico che l’algoritmo all’interno di quel portafoglio farà automaticamente seguendo questi passaggi.
  • Innanzitutto, la sua chiave privata verrà analizzata tramite l’algoritmo di hashing SHA 256 per ottenere un hash.
  • Quindi l’hash verrà analizzato tramite la funzione RIPE MD 160 e verrà generato un nuovo hash e una copia di esso verrà tenuta da parte, chiamiamo questa PARTE A.
  • Quindi l’hash verrà sottoposto a hash tramite SHA 256 per generare un altro hash.
  • Quindi il nuovo hash verrà nuovamente sottoposto a hash tramite SHA 256 per generare un altro hash. I primi 7 bit di questo hash verranno salvati, chiamiamolo PARTE B.
  • La PARTE A e la PARTE B verranno sommate e il risultato sarà l’indirizzo pubblico.

Non è possibile invertire questo processo in modo che l’indirizzo pubblico possa essere utilizzato per generare la chiave privata. Il computer più potente del mondo impiegherà 40000000000000000000000000000000 anni per completare questo calcolo! Sicuro di dire che il tuo indirizzo e la tua chiave sono al sicuro.

Quindi come funziona il processo di firma (una semplice panoramica)?

Supponiamo che Alice voglia inviare 500 BTC a Bob. Seguirà i seguenti passaggi:

  • Creerà la transazione e la firmerà con la sua chiave privata.
  • Invierà la transazione all’indirizzo pubblico di Bob.
  • Bob può quindi decrittografare il messaggio utilizzando la chiave pubblica di Alice per verificare che sia stata effettivamente Alice a inviargli i bitcoin e la transazione è considerata completa.

Se questo dovesse essere mostrato in un’immagine, ecco come apparirà:

La scienza dietro la crittografia delle criptovalute

Criptovalute Crittografia: conclusione

Quindi, come si può vedere, la crittografia a chiave pubblica, nota anche come crittografia asimmetrica, è una delle basi della criptovaluta. È impossibile persino immaginare come bitcoin ed ethereum sarebbero stati al sicuro senza di esso. Ogni volta che effettui una transazione, sii grato a tutti i matematici e crittografi che hanno reso possibile questo meraviglioso mezzo.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me