Firma digitale e verifica?

7

AFAIK, quando Alice vuole scrivere un messaggio a Bob - usa la chiave pubblica di Bob e crittografa il messaggio - e poi Bob - usando la sua chiave privata - usa per decrittografarlo.

Quindi la chiave pubblica viene utilizzata per decodificare e la chiave privata viene utilizzata per crittografare.

Ma poi ho visto questa spiegazione (in firma digitale conext):

qui dice che il valore hash (firmato) è crittografato con la sua chiave privata ?

così la chiave privata utilizza non solo per la decodifica (messaggi che mi sono stati inviati) ma anche per la crittografia (hash che calcolo)?

    
posta Royi Namir 01.10.2012 - 20:05
fonte

3 risposte

9

Questa è la solita confusione di "firmare è come crittografare con la tua chiave privata".

Basta dimenticarlo. È una spiegazione terribile che non funziona. Sembrava sembrato funzionare in passato, quando il primo algoritmo di firma digitale (basato sulla crittografia asimmetrica) è stato descritto per la prima volta (sto parlando di RSA ed era nell'era della Disco); ma anche per RSA non è corretto poiché non tiene conto del riempimento, che è fondamentale per la sicurezza.

Dai un'occhiata a PKCS # 1 per vedere come viene utilizzato RSA. In particolare, quando crittografa dati con RSA e una chiave a 1024 bit, il massimo che puoi cifrare in una volta è 117 byte, ma il risultato della crittografia è sempre 128 byte, ed è quello che si aspetta un motore di decrittografia . Indipendentemente da quanto provi, 128 byte non si adattano a meno di 117 byte ...

Ciò che deve essere ricordato è che una chiave privata è ciò che viene usato per fare qualcosa che non dovrebbe essere fattibile da tutti. Ciò significa decodifica dei dati (chiunque può crittografare un messaggio a Bob, ma solo Bob dovrebbe essere in grado di leggerlo) e generazione di firma (tutti possono verificare una firma, ma solo Bob dovrebbe essere in grado di produrre una firma che tutti possono verificare provenire da Bob).

Sebbene esistano algoritmi di crittografia asimmetrica che possono utilizzare lo stesso tipo di chiave degli algoritmi di firma digitale (c'è la crittografia RSA e ci sono le firme RSA, ed entrambi usano "chiavi RSA"), usare la stessa chiave per entrambi è non è una buona idea .

    
risposta data 01.10.2012 - 20:26
fonte
4

La crittografia asimmetrica può essere utilizzata per fornire riservatezza e autenticità .

In parole povere, si può calcolare un hash crittografico di un messaggio e "cifrarlo" con la propria chiave privata, per produrre una firma. Chiunque sia in possesso della corrispondente chiave pubblica può utilizzarlo per verificare che la firma sia corretta. Questo ci consente di dimostrare che un messaggio è autentico .

Al contrario, è possibile crittografare un messaggio con la chiave pubblica, e solo la chiave privata può decodificarlo, anche se tutti gli utenti del pianeta conoscono la chiave pubblica. Questo ci consente di creare un messaggio confidenziale .

Se combinate, queste due proprietà ci consentono di comunicare in modo confidenziale e di garantire che la persona con cui stiamo parlando sia davvero la persona che ci aspettiamo.

    
risposta data 01.10.2012 - 20:22
fonte
-1

Una chiave privata è un fattore della tua chiave pubblica. Attraverso la matematica non capisco davvero, chiunque può crittografare un messaggio con la tua chiave pubblica e solo tu puoi decodificarlo con la tua chiave privata. Questa è chiamata crittografia RSA come riferimento.

Una cosa importante da notare è che RSA richiede che una chiave più lunga sia efficace come AES (crittografia simmetrica) ed è usata principalmente per la distribuzione delle chiavi. Il messaggio effettivo verrà crittografato con AES utilizzando un segreto condiviso distribuito su RSA.

    
risposta data 01.10.2012 - 21:27
fonte