Come funziona la procedura di firma digitale?

2

Sto cercando di capire il processo di verifica della firma digitale, tuttavia non ho la spiegazione nel mio libro.

Se A vuole inviare un messaggio a B con una firma digitale, il processo è apparentemente come segue:

  • Il messaggio inviato ha un algoritmo di hash pubblico ad esso applicato per creare un hash
  • L'hash viene crittografato utilizzando la chiave privata di A e viene quindi aggiunto al messaggio che sarà anche criptato. Questo hash crittografato è la firma digitale
  • B decodificherà l'hash utilizzando la chiave pubblica di A
  • Il messaggio originale viene quindi decifrato e trasferito allo stesso modo algoritmo di hash per produrre un hash
  • Se i due hash sono uguali, il messaggio è autenticato, altrimenti non può essere autenticato

Prima di tutto, questa spiegazione è corretta?

In secondo luogo, in che modo B decodifica l'hash utilizzando la chiave pubblica di A? Lo scopo di una chiave pubblica è che i dati possano essere crittografati.

Perché dovrebbe criptare qualcosa con la loro chiave privata? Se invii un messaggio a B, A non userebbe la chiave pubblica di B?

Come può il messaggio originale essere sottoposto allo stesso algoritmo di hashing per produrre lo stesso hash se A inizialmente utilizzava la propria chiave privata per produrre il primo hash (la chiave privata di A non sarà nota a B)?

Se questa spiegazione non è corretta, dove va male?

    
posta Logan545 21.06.2017 - 15:58
fonte

3 risposte

3

La crittografia e la firma (digitale) sono diverse applicazioni di PKI.

Primo (solo) i concetti più rilevanti:

  • Crittografia (in modo che una terza parte non veda il contenuto): utilizzare la chiave pubblica del destinatario (B-PubKey). Cripta il contenuto. Conosci il contenuto perché è nato da te. Il ricevitore può decifrare usando la propria chiave privata (B-PvtKey) e vedere il contenuto.
  • Firma digitale (in modo che ogni parte possa controllare se il documento è esattamente come era, quando tu l'hai firmato e assicurarti che solo tu avrebbe potuto firmato): utilizzare la chiave privata del mittente (A-PvtKey) per crittografare l'hash. NON il contenuto.

Nel tuo esempio, uno dei problemi è che hai combinato entrambi. Un normale processo di firma digitale implica

  1. Hashing del messaggio Plain Text utilizzando un algoritmo di hashing noto (pubblico).
  2. Crittografia con chiave privata del mittente (A-PvtKey).
  3. Aggiungendo l'hash crittografato al messaggio Testo normale e invia / archivia /...
  4. I ricevitori possono essere uno / molti / nessuno. Non vengono utilizzate le chiavi dei ricevitori.
  5. Chi desidera verificare il documento segue semplicemente la procedura inversa. cioè.,
  6. Separa l'hash crittografato dal messaggio
  7. Decifra con la chiave pubblica del mittente (A-PubKey) (di solito da un certificato di firma digitale emesso da una CA attendibile / legalmente accettabile).
  8. Genera in modo indipendente l'hash dal testo in chiaro del messaggio e confrontalo con l'hash decodificato del precedente # 7.

Che B fosse in grado di decrittografare l'hash con A-PubKey stabilisce l'aspetto tecnico del non ripudio. Che (se) gli hash fossero gli stessi stabilisce l'integrità del documento.

Dovresti essere in grado di vedere le illustrazioni di questi in una serie di articoli / video disponibili gratuitamente sul Web.

    
risposta data 21.06.2017 - 16:25
fonte
1

Il processo di hash e il processo di crittografia sono due cose diverse.

Ci sono due modi per crittografare il messaggio 1) utilizzare la chiave privata del mittente per crittografare, quindi il destinatario utilizza la chiave pubblica del mittente per decrittografare 2) utilizzare la chiave pubblica del destinatario per crittografare, quindi il destinatario utilizza la chiave privata per decodificare.

La parte hash ... l'hashing del messaggio è un processo separato in cui il mittente esegue l'hashing del messaggio e invia il risultato. Il ricevitore annulla anche il messaggio decrittografato e quindi confronta il risultato. Se c'è una corrispondenza il ricevitore è sicuro che il messaggio decrittografato è verificato.

    
risposta data 21.06.2017 - 16:18
fonte
1

Questa descrizione è corretta.

Modifica: aggiunto per chiarire, auspicabilmente, le operazioni tecniche Quando si invia un messaggio firmato, si invia il testo in chiaro E un blocco di testo cifrato che è l'output hash del testo in chiaro. L'output hash deve essere protetto da modifiche, per questo è crittografato con la chiave privata. Solo la chiave pubblica può decodificarlo correttamente. Il destinatario può quindi eseguire la funzione hash sul testo in chiaro e confrontare l'output con l'hash decrittografato che è stato allegato al messaggio. Se entrambi corrispondono, il messaggio può essere considerato "genuino". fine della modifica

Il punto che sembra confondervi è il ruolo della chiave privata contro quella pubblica. Queste chiavi sono funzionalmente uguali. Con la crittografia simmetrica, vengono utilizzate due chiavi per crittografare e decifrare il testo in chiaro. È una funzione unidirezionale da una chiave all'altra, ma in una direzione .

Questo è il punto in cui la parte tecnica e matematica della crittografia attribuisce le cose alla parte amministrativa / politica dell'infrastruttura a chiave pubblica. Quando viene generata una coppia di chiavi, una chiave viene designata come "privata" e l'altra "pubblica"; non importa quale chiave viene utilizzata per la quale sono intercambiabili. Per quanto riguarda l'algoritmo (almeno, nella parte funzionale unidirezionale delle cose ... non sono grande sulla parte matematica tecnica, solo la teoria).

Firmi le cose con la tua chiave privata perché, in teoria, SOLO TU hai accesso a quella chiave. È la "garanzia" che hai inviato il messaggio. La chiave pubblica è teoricamente disponibile per chiunque e tutti. Se un messaggio è firmato / crittografato e la chiave pubblica si verifica per convalidarlo / decrittografarlo, è possibile essere certi che la chiave privata abbia firmato / crittografato il messaggio.

Quindi utilizzare la chiave privata per inviare le cose non è efficace da un punto di vista crittografico "nascondere il messaggio", ma è ALTAMENTE efficace da una "garanzia dell'autenticità / origine del messaggio".

Questo è il motivo per cui con PKI e crittografia simmetrica, se si desidera avere una conversazione privata a due vie, entrambi hanno bisogno della propria coppia di chiavi.

    
risposta data 21.06.2017 - 16:19
fonte

Leggi altre domande sui tag