Crittografia Asimmetrica nella Blockchain Universa

Nell’articolo precedente hai trovato informazioni riguardo i principi alla base delle funzioni Hash utilizzate nel protocollo della Blockchain Universa. La combinazione di tre Funzioni Hash, chiamata HashID, protegge i dati in modo che possano essere conservati in sicurezza senza il bisogno di avvalersi di una terza parte attendibile in un network di nodi distribuiti. Un ulteriore importante aspetto della conservazione sicura dei dati, sta nel fatto che questi non possono essere alterati da entità che non abbiano il diritto di farlo.

In questo articolo ci addentreremo un po’ più a fondo nel mondo della crittografia. In particolare nel modo della “Crittografia Asimmetrica” con crittografia/decrittografia, chiavi pubbliche/private e firma/verifica.

Hashing e Crittografia

Per prima cosa, è importante notare e comprendere la differenza tra Hashing e Crittografia. Crittografia è quando converti un “messaggio originale” in un “messaggio criptato” (usando una chiave crittografica). Dopo di ché, puoi decriptare il messaggio criptato (usando la chiave crittografica) riportandolo alla forma originale.

Con l’algoritmo di crittografia/decrittografia, le dimensioni del messaggio criptato variano a seconda di quelle del messaggio originale. Di solito le dimensioni sono almeno le stesse dell’originale.

Se tu cripti 10 milioni di simboli di testo, bene o male otterrai 10 milioni di simboli di testo criptato, perché la crittografia è senza perdite. Puoi sempre ripristinare il messaggio originale dal messaggio criptato, usando la chiave.

Con l’Hashing, è tutto diverso. La “specialità” dell’Hashing è di essere soggetto a perdite di dati, ma in un modo “controllato”. Qualsiasi messaggio, indipendentemente dalla lunghezza, avrà sempre un hash delle medesima dimensione.

Nella Blockchain Universa, solo questi Hash vengono immagazzinati. In realtà nel DAG non sono memorizzati dati crittografati. Gli stessi contratti non vengono mai criptati o decriptati, dato che hanno bisogno di essere processati dai nodi in modo diretto Dovresti aver letto riguardo l’HashID nel precedente articolo, come di una stringa di 128 caratteri. Indipendentemente dal tipo di smart contract in corso, lo stato del contratto sarà sempre controllato dal corrispondente HashID da 128 caratteri.

Non preoccuparti comunque:la comunicazione tra i client e i nodi è crittografata e decrittografata al volo, in modo che eventuali terze parti non possano intromettersi.

Crittografia Asimmetrica

Lo scopo di un network distribuito e decentralizzato è quello di assicurare una memorizzazione dei dati affidabile e senza bisogno di garanzie di terze parti, cosa che ovviamente non è realizzabile senza la possibilità di trasmettere i dati in modo sicuro. In un tale trasferimento, protetto da un sistema criptato, i dati più particolari e sensibili dovrebbero essere disponibili solo a chi sia autorizzato a vederli e invece nascosti a chi al contrario non sia in grado di leggerli.

Quindi in breve, per accedere a questi dati devi avere una chiave digitale. Quello che serve, è una chiave per criptare i dati e una per decriptarli. E ricorda: la lunghezza dell’input, è crittografata senza perdite in un output della stessa lunghezza.

La Crittografia Asimmetrica è anche chiamata “Crittografia delle Chiavi Pubbliche” E’ un sistema di crittografia che usa coppie di chiavi: le chiavi pubbliche che possono essere tranquillamente condivise, e le chiavi private che sono conosciute solo dal proprietario delle stesse.

In uno schema di crittografia asimmetrico, chiunque può criptare messaggi usando la chiave pubblica, ma solo il proprietario della chiave privata corrispondente può decriptarli. Questo è ciò che rende questa tipologia di crittografia non simmetrica (e reversibile), proprio per questo è chiamata asimmetrica. La sicurezza dei dati dipende dalla segretezza della chiave privata.

E questa crittografia asimmetrica è utilizzata durante gli scambi sui canali sicuri tra i nodi, o tra i nodi e il client.

Quindi per semplificare: il processo di crittografia asimmetrica è un po’ come una strada a senso unico, che non può essere percorsa contromano. Con la crittografia simmetrica, la chiave privata viene utilizzata sia per criptare che per decriptare i dati (avendo solo un’unica chiave).

Qui stiamo parlando del sistema di crittografia RSA, chiamato così dai cognomi dei suoi creatori (Rivest-Shamir-Adleman). La chiave crittografica è pubblica ed è diversa da quella di decrittazione che viene tenuta segreta (privata).

Crittografia e Decrittazione

Allora, partiamo con un esempio facile facile. Immagina di essere quello che sta inviando i dati. Questi possono essere un pagamento/transazione o qualcosa del genere. Per farlo, devi firmare lo Smart Contract con la tua chiave.

La chiave pubblica può essere memorizzata nello Smart Contract, o puoi condividerla con chi vuoi. Se hai una chiave privata, puoi firmare qualsiasi operazione necessaria per utilizzare lo Smart Contract.

La chiave privata e la chiave pubblica (insieme chiamate anche “key pair” – coppia di chiavi) sono correlate matematicamente.

Chiave Privata e Chiave Pubblica

Quando crei la tua chiave privata (in effetti crei tutta la key pair) nel web client, di solito scarichi automaticamente il file con estensione .unikey.

Non devi MAI “aprire” questo file con notepad o altro editor. Questo file è la tua chiave, stop. Niente di più,niente di meno.

Non devi MAI e poi MAI darla a qualcuno, o consentirne l’accesso a qualunque terza parte, ne tentare, come già detto, di aprirlo con nessun programma, applicazione o editor di testo. Rischieresti solo di comprometterlo irrimediabilmente, perdendo per sempre l’accesso ai tuoi dati.

Questa è la cosa più importante quando utilizzi la Blockchain Universa: con la key pair puoi firmare e verificare i contratti Come dovresti sapere, il protocollo della Blockchain universa memorizza solo gli Hash di una revisione dello Smart Contract.

Quindi per modificarlo, devi dare prova di possedere la chiave privata corrispondente allo Smart Contract. Sul sito della Knowledge Base puoi trovare maggiori dettagli sulle key pairs in Universa.

Firma e Verifica

Se vuoi fare una transazione sulla Blockchain Universa, la devi firmare con le tue chiavi. Considera la chiave privata come un tuo unico e personalissimo timbro o firma che nessuno a parte te può usare, e che ti permette di firmare qualunque documento per qualunque altra parte in causa.

La chiave pubblica è disponibile per le varie parti con cui comunichi.

Per registrare uno Smart Contract, devi firmarlo. Puoi anche modificarlo, ma quando lo vuoi fare, devi avere la chiave per firmarlo. Il sistema controllerà se hai i permessi per farlo.

In ogni caso, il passaggio dalla chiave pubblica ai tuoi indirizzi corrispondenti è ottenuto tramite l’hashing (ma non dalla funzione HashID, che è piuttosto complicata e quindi usata solo per l’hash dell’intero Smart Contract).

Criptare un messaggio con la chiave pubblica di qualcuno, verifica automaticamente che chi invia i dati è chi dice di essere, dato che la chiave pubblica dovrebbe essere pubblica per tutti. Per verificare l’origine del messaggio, si può anche utilizzare l’RSA per firmarlo.

Supponiamo che tu voglia mandare un messaggio firmato ad Alexander. Puoi decriptarlo e allegarci un valore hash come “firma” del messaggio.

Quando Alexander riceverà il messaggio firmato, userà lo stesso algoritmo hash in combinazione con la tua chiave pubblica. L’RSA cripta il messaggio, e confronta il valore hash risultante con l’attuale valore hash del messaggio stesso.

Se i due corrispondono, anche il network comprende che l’autore del messaggio era in possesso della chiave privata corrispondente e che da allora il messaggio non è stato manomesso.

Indirizzi corti e lunghi

L’indirizzo è una rappresentazione alternativa abbreviata della tua chiave pubblica, comoda quando hai la necessità di inserirla in qualche tipo di modulo. Puoi usare alternativamente un indirizzo corto (51 simboli) o uno lungo (72 simboli).

Entrambi si riferiscono alla stessa chiave pubblica L’indirizzo lungo consente il massimo livello di sicurezza e quello corto in ogni caso consente un uso sufficientemente sicuro per la maggior parte degli scenari di utilizzo. L’indirizzo lungo utilizza SHA3-384 e quello corto SHA3-256.

Puoi trovare maggiori dettagli sulle rappresentazioni binarie e testuali degli indirizzi sul sito della nostra Knowledge Base.

In Universa, una singola key pair può essere usata per generare indirizzi multipli. Ognuno di questi può essere usato indipendentemente ma si riferiscono tutti alla stessa chiave pubblica. Hai qualche domanda? Sentiti libero di contattare @starnold su Telegram. Tradotto da Marco Cominato

Help translating this post to Inglese Tedesco Francese Olandese Spagnolo Croato Russo. Contact @starnold to participate!

Related posts

Viaggio all’interno di uno Smart Contract in Universa

Arnold

Cosa rende la Blockchain Universa così economica?

Arnold

The Digital Migration: Why Universa is the Rail Blazer

kobina

Leave a Comment