Introduzione alla crittografia della firma digitale

La firma digitale è una tecnica matematica crittografica per convalidare l'integrità e la sicurezza dei dati. La firma digitale con la crittografia è per risolvere il problema del mondo reale dell'imitazione e della manomissione digitale. In parole reali per condividere informazioni riservate e assicurare l'origine delle prove, lo stato del documento elettronico. La firma digitale di crittografia utilizza un sistema di chiave pubblica / privata. Le chiavi erano rappresentate in un numero esadecimale casuale. Per creare una firma digitale crittografica, hashing unidirezionale dei dati da firmare. Con la chiave privata verrà eseguita la crittografia dell'hash.

La crittografia di una firma digitale è possibile con due termini chiave:

  1. Chiave privata
  2. Chiave pubblica

Chiave privata : il titolare del conto detiene una chiave che è un numero esadecimale casuale. La chiave privata sarà riservata al titolare del conto anziché esposta al mondo reale

Chiave pubblica : un numero esadecimale casuale condiviso pubblicamente. Per creare una firma digitale di crittografia pubblica, il messaggio verrà prima firmato digitalmente, quindi verrà crittografato con la chiave privata del mittente e con la chiave pubblica del destinatario. Per decrittografare i messaggi condivisi tra il mittente e il destinatario, il destinatario deve decrittografare il livello interno delle informazioni con la chiave pubblica del mittente e decrittografare il livello esterno delle informazioni utilizzando la chiave privata in possesso del destinatario.

Architettura di crittografia della firma digitale

Per eseguire la firma digitale utilizzando la crittografia, è necessario eseguire le seguenti operazioni:

Alla fine del mittente, il messaggio / le informazioni devono essere crittografati utilizzando una funzione di hashing con la chiave privata del mittente. Le informazioni saranno inoltrate al destinatario con il modello di firma digitale intermedio. Alla fine del destinatario, il destinatario verifica la firma digitale decodificando le informazioni ricevute utilizzando la funzione di hashing. La decrittografia verrà eseguita estraendo il livello interno mediante la chiave pubblica e il livello esterno estratto mediante la chiave privata. Una delle maggiori sfide per la condivisione sicura delle informazioni è l'invio del messaggio in un formato crittografato. Nella crittografia con firma digitale con chiave pubblica condivisa con il mondo esterno, c'è la possibilità che qualcuno possa falsificare la crittografia.

La crittografia delle firme digitali può essere effettuata in due forme principali:

1. Firma digitale seguita da crittografia

In questo metodo, la firma del mittente viene sfruttata dal destinatario e le informazioni vengono condivise con la parte esterna senza crittografia. Poiché questo modulo è meno sicuro, questo non è preferibile nell'industria.

2. Crittografia seguita da firma digitale

L'approccio più comune nel settore è la crittografia seguita da una firma digitale in cui il mittente invia i dati crittografati con la firma digitale. Quando il destinatario riceve il messaggio alla sua estremità, decodifica il messaggio condiviso dal mittente utilizzando la chiave pubblica del mittente e la chiave privata del destinatario.

Crittografia Firma digitale con RSA

Il frammento di codice seguente spiegherà come la crittografia con firma digitale viene implementata in tempo reale in Python e spiegherà anche come vengono eseguite la crittografia e la decrittografia con firma digitale tramite RSA. Per eseguire la crittografia con firma digitale è necessario installare il pacchetto pycrypto, quindi scrivere lo snippet di seguito.

importCrypto
fromPublicKey importRSA
fromCrypto import Random

Per eseguire la crittografia con la firma digitale, è necessaria l'inizializzazione della chiave privata e della chiave pubblica. Creiamo una funzione per generare chiavi RSA che avranno una chiave privata e una chiave pubblica:

defrsa_keys():
l=1024
private_key = RSA.generate(l, Random.new().read)
public_key = private_key.publickey()
return private_key, public_key
The above snippet returns the private key and public key.

1. Funzione di crittografia

defencrypt(public_key, text):
c_text=public_key.encrypt(text, 32)(0) val_cipher=base64.b64encode(c_text)
return val_cipher

Per crittografare il messaggio, utilizziamo il codice sopra che prenderà rsa_publickey e text come parametri per la funzione di crittografia. La funzione di crittografia eseguirà la crittografia della chiave pubblica e genererà la cifra, la cifra generata viene restituita quando viene invocata la chiamata di funzione.

2. Funzione di decodifica

defdecrypt(private_key, val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
return text

Crittografia con firma digitale che utilizza la crittografia a chiave pubblica e la decrittografia del testo eseguita utilizzando la chiave privata. Per comprendere il significato del testo crittografato condiviso come codice, abbiamo creato una funzione di decodifica. La funzione accetta private_key e il codice generato dalla funzione di crittografia. Utilizzando il metodo di decodifica crea un codice decrittografato e utilizzando il metodo di decodifica restituirà il testo decrittografato.

3. Attuazione

In questo esempio vedremo come viene eseguita la crittografia del testo e come viene decrittografato il testo originale utilizzando la chiave privata. La funzione di crittografia e decrittografia verrà utilizzata nell'esempio per mostrare come crittografare e decrittografare.

Codice:

importCrypto
fromPublicKey importRSA
fromCrypto import Random
importbase64
defrsa_keys():
l=1024
private_key = RSA.generate(l, Random.new().read)
public_key = private_key.publickey()
returnprivate_key, public_key
defencrypt(public_key, plain_text):
c_text=public_key.encrypt(plain_text, 32)(0) val_cipher=base64.b64encode(c_text)
returnval_cipher
defdecrypt(private_key, val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
returntext
private_key, public_key=rsa_keys()
txt=b"Hello Peers!"
enc_cipher=encrypt(public_key, txt)
print('**'*10)
print("The ecncrypted text is ()".format(enc_cipher))
print('**'*10)
dec_cipher=decrypt(private_key, enc_cipher) #decryption
print("The decrypted cipher text is ()".format(dec_cipher))
print('**'*10)

Produzione:

Come possiamo vedere il testo di input "Hello Peers!" Passato per crittografare la funzione è crittografato usando la chiave pubblica. La crittografia crittografata passata come parametro alla funzione di decrittografia decodifica il messaggio originale condiviso utilizzando la chiave privata del destinatario. Per eseguire la firma digitale con la crittografia sarà necessario il metodo "segno" e "verifica", il segno verrà eseguito dal mittente utilizzando la chiave privata, quando le informazioni vengono trasferite al destinatario, verificare che la funzione venga eseguita utilizzando la chiave pubblica.

Meriti della crittografia Firma digitale

  1. Migliorare la sicurezza del trasferimento di informazioni.
  2. Migliora il flusso di lavoro più digitalizzato.
  3. Migliore esperienza del cliente.
  4. Migliorare l'efficienza aziendale e la validità legale.
  5. Riduce lo sforzo manuale e consente di risparmiare tempo.

Demeriti della crittografia Firma digitale

  1. Richiede molto tempo per la verifica.
  2. Non protegge dalle vulnerabilità
  3. L'infrastruttura e la creazione della crittografia non sono convenienti.

Conclusione

Nel moderno mondo digitale, l'algoritmo di firma digitale con crittografia svolge un ruolo vitale nel fornire un ambiente sicuro ed è uno degli strumenti migliori per l'autenticazione. Nel mondo tecnologico in crescita, svolgerà un ruolo cruciale in termini di sicurezza contro minacce e vulnerabilità.

Articolo raccomandato

Questa è una guida alla crittografia della firma digitale. Qui discutiamo l'architettura della crittografia della firma digitale insieme all'implementazione del codice. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Software di firma digitale con Working
  2. Crittografia vs Crittografia | Top 6 Confronto
  3. Che cos'è la crittografia asimmetrica?
  4. Introduzione ai tipi di firma digitale

Categoria: