RSA vs metodologia di lavoro DSA?

0

Ho cercato varie risposte, ma sono confuso su come RSA può essere usato sia per le firme digitali che per la crittografia / decodifica come nella suite di crittografia "TLS_DHE_RSA _..." o "TLS_RSA_ .." mentre il DSA è usato solo come in "TLS_DHE_DSS_ .." solo per la firma del certificato e non per la crittografia / decrittografia.

Sarebbe meglio se qualcuno potesse spiegare le funzioni matematiche / come funzionano con un esempio ciascuno per questi due standard.

Modifica: anche se DSA e RSA sono utilizzati solo per le firme digitali come vengono fornite al pubblico le chiavi pubbliche perché la chiave pubblica è necessaria per verificare il certificato firmato privatamente, i certificati vengono scambiati due volte e quali sono i parametri crittografati nel certificato firmato digitalmente?

    
posta Harshit Bhatt 09.04.2015 - 06:42
fonte

1 risposta

1

Per prima cosa rispondi alla tua domanda originale:

In che modo RSA può essere utilizzato per la firma digitale e la crittografia e il DSA solo per la crittografia?

Per capire questo devi scavare nelle definizioni di RSA e DSA.

RSA di per sé è stato progettato per essere uno schema di crittografia a chiave pubblica e successivamente convertito in uno schema di firma digitale. RSA crittografa i dati aggiungendoli a un esponente e modulo un numero composito n. È possibile invertire questo processo se si conosce la fattorizzazione di n, è possibile calcolare l'esponente d che trasforma il messaggio crittografato nel messaggio originale. Ora dovresti vedere come può essere usato per la crittografia PK. Si noti che m ^ e ^ d = m ^ (e * d) = m. Ora vuoi firmare qualcosa. Quindi calcola l'hash di questo messaggio (H (M)) e "decrittalo" così tutti, sapendo che e e n, possono "cifrarlo" per restituire H (M) e quindi verificare che questo appartenga al messaggio M. (Wikipedia articolo)

Ora DSA fa le cose in modo leggermente diverso. Puoi firmare i dati solo con DSA perché è stato definito per essere utilizzato con una funzione hash. Il risultato della funzione hash viene utilizzato per eseguire la matematica della firma e quindi un verificatore può solo verificare che determinati valori corrispondano, credere nella firma ma non possono ricostruire l'hash stesso come è possibile con RSA. Articolo di Wikipedia

Ora alla tua seconda domanda riguardante i certificati.

In TLS un server presenta al cliente il suo certificato per dimostrare che la chiave pubblica appartiene a lui. Come viene verificato? Il server fornisce anche ciò che viene chiamato una "catena di certificati". L'intera idea del sistema di certificazione è che alcune istituzioni (CA) ti credono che tu sei chi pretendi di essere. Quindi il tuo browser (o il tuo sistema operativo) ha un elenco di chiavi pubbliche di CA che si fida di fare il proprio lavoro nel modo giusto. Ora il server ti presenta il suo certificato. Il server fornisce anche un certificato intermedio. Si controlla se la firma sul certificato del server può essere verificata utilizzando la chiave pubblica del certificato intermedio. La verifichiamo la firma del certificato intermedio usando il prossimo ... finché non raggiungi un punto in cui il certificato è memorizzato nel tuo browser / sistema operativo, allora ti fidi di tale catena. Ora sai che la chiave pubblica appartiene al server. Il certificato contiene da solo alcuni dati che forniscono informazioni su chi possiede la chiave privata, sugli algoritmi utilizzati, sul periodo di validità, sulla CA che ha emesso il certificato e sulla firma. (articolo di Wikipedia sui certificati X.509 standard)

Spero che questo risponda alle tue domande in caso contrario, chiedi nei commenti.

    
risposta data 09.04.2015 - 13:16
fonte

Leggi altre domande sui tag