È possibile utilizzare una chiave pubblica per decrittografare un messaggio crittografato dalla chiave privata corrispondente?


21

Da quello che ho visto sull'uso di una coppia di chiavi pubbliche e private, la chiave pubblica viene utilizzata per crittografare un messaggio e la chiave privata viene utilizzata per decrittografare il messaggio crittografato.

Se un messaggio è crittografato dalla chiave privata, può essere decrittografato dalla chiave pubblica corrispondente?

Se sì, puoi fare alcuni esempi di quando viene usato questo caso?

Grazie.



Perché dovresti crittografarlo affatto se la chiave di decrittazione fosse pubblica?
Bergi,

5
@Bergi Firma digitale?
user11153

6
@Bergi: la risposta lunga: criptando un messaggio con la tua chiave privata in un modo che può essere decifrato con la tua chiave pubblica, puoi inviare un messaggio che può essere letto da chiunque ma può essere stato scritto solo da te. Crittografando prima con la chiave privata e poi con la chiave privata del destinatario, si crea un messaggio che può essere decrittografato solo dal destinatario previsto e che può essere stato scritto solo da te.
gnasher729,

2
@ gnasher729 Penso che tu abbia significato prima la crittografia con la tua chiave privata e poi con la chiave pubblica del destinatario . Non dovresti avere la chiave privata di qualcun altro
kiamlaluno l'

Risposte:


49

Q: Se pedali all'indietro su un pesce, va indietro?
A: ???

Un pesce non è una bicicletta. Allo stesso modo, non è possibile utilizzare una chiave privata per crittografare un messaggio o una chiave pubblica per decrittografare un messaggio. Non hanno l'attrezzatura giusta.

Con RSA , che è un popolare sistema di crittografia a chiave pubblica ma non l'unico, la chiave privata e la chiave pubblica hanno le stesse proprietà matematiche, quindi è possibile usarle in modo intercambiabile negli algoritmi. (Non hanno le stesse proprietà di sicurezza, tuttavia - la chiave pubblica è di solito facilmente indovinabile dalla chiave privata.) Puoi prendere un algoritmo di crittografia RSA e dargli una chiave privata, o un algoritmo di decrittazione RSA e dargli un pubblico chiave. Tuttavia, i risultati non sono significativi secondo gli algoritmi standard.

Questa simmetria tra chiavi pubbliche e chiavi private non si estende alla maggior parte degli altri sistemi crittografici a chiave pubblica. In generale, la chiave pubblica non è il giusto tipo di oggetto matematico da utilizzare per l'algoritmo di decrittazione e la chiave privata non è il giusto tipo di oggetto matematico da utilizzare per l'algoritmo di crittografia.

Detto questo, i cryptosystems a chiave pubblica si basano sul concetto di funzioni botola . Una funzione a senso unico è una funzione che è facile da calcolare, ma il cui inverso è difficile da calcolare. Una funzione botola è come una funzione a senso unico, ma esiste un valore "magico" che rende facile calcolare l'inverso.

Se hai una funzione botola, puoi usarla per creare un algoritmo di crittografia a chiave pubblica: andando avanti (nella direzione facile), la funzione crittografa; andando indietro (nella direzione difficile), la funzione decodifica. Il valore magico richiesto per decrittografare è la chiave privata.

Se hai una funzione botola, puoi anche usarla per creare un algoritmo di firma digitale : andando indietro (nella direzione difficile), i segni di funzione ; andando avanti (nella direzione facile), la funzione verifica una firma. Ancora una volta, il valore magico richiesto per firmare è la chiave privata.

Le funzioni della botola si trovano generalmente nelle famiglie; i dati necessari per specificare un particolare elemento della famiglia sono la chiave pubblica.

Sebbene la crittografia a chiave pubblica e le firme digitali siano basate sugli stessi concetti, non sono strettamente identiche. Ad esempio, la funzione botola RSA si basa sulla difficoltà di annullare una moltiplicazione se non si conosce già uno dei fattori. Esistono due famiglie comuni di schemi di crittografia a chiave pubblica basati su RSA , noti come PKCS # 1 v1.5 e OAEP. Esistono anche due famiglie comuni di schemi di firma digitale basati su RSA, noti come PKCS # 1 v1.5 e PSS. I due "PKCS # 1 v1.5" hanno design simili, ma non sono identici. Questa risposta di Thomas Pornin e questa risposta di Maarten Bodewes descrivono alcuni dettagli della differenza tra firma / verifica e decodifica / crittografia nel caso di RSA.

Attenzione che alcune presentazioni laiche della crittografia a chiave pubblica mascherano la firma e la verifica digitali come decrittazione e crittografia, per motivi storici: RSA è stata prima resa popolare e l'operazione principale di RSA è simmetrica. (L'operazione principale di RSA, nota come "libro di testo RSA", è una delle fasi di un algoritmo di firma / verifica / crittografia / decrittografia RSA, ma non costituisce di per sé un algoritmo di firma, verifica, crittografia o decrittografia.) sono simmetrici dalla vista di 10000 piedi, ma non sono simmetrici una volta entrati nei dettagli.

Vedi anche Riduzione dalle firme alla crittografia? , il che spiega che è possibile creare uno schema di crittografia da uno schema di firma, ma solo a determinate condizioni.


2
+1 per spiegare chiaramente un malinteso che non sapevo nemmeno di avere quando ho cliccato su questa domanda.
Ixrec,

1
Grazie. "la chiave pubblica non è il giusto tipo di oggetto matematico da utilizzare per l'algoritmo di decrittazione e la chiave privata non è il giusto tipo di oggetto matematico da utilizzare per l'algoritmo di crittografia." Vuoi dire che possono ancora essere usati per quegli scopi, ma non sono buone opzioni o non possono essere? Quali proprietà matematiche che decidono di non essere del tipo "giusto", oltre alle proprietà di sicurezza (ad es. Asimmetria nella durezza per indovinare una chiave dall'altra)?
Tim

2
Tagliare i primi due paragrafi, ma per il resto questa è una risposta molto perspicace. Sono venuto qui dalla spiegazione di un profano di crittografia / decrittografia e firma / verifica e di come la chiave privata potesse essere utilizzata per "crittografare", e la tua risposta ha chiarito esattamente cosa mi chiedevo.
Kyle Chadha,

Quindi questo articolo non è corretto: globalsign.com/en/blog/how-do-digital-signatures-work ? Indica che una chiave pubblica viene utilizzata per la decrittografia e la chiave privata viene utilizzata per la crittografia
Kenneth Worden

@KennethWorden È per lo più corretto, ma sbaglia alcuni dettagli. Sotto "Applicazione della firma", "l'hash è crittografato" dovrebbe essere "l'hash è firmato ", e solo questo rende la firma digitale. E in "Verifica della firma", non esiste un "hash decrittografato": per la maggior parte degli schemi di firma, non è possibile recuperare l'hash dalla firma, ciò che accade invece è che esiste una diversa operazione matematica (chiamata verifica) che prende l'hash e la firma come input e output “ok” o “bad”.
Gilles 'SO- smetti di essere malvagio' il

6

Quando lo schema PKE utilizza una permutazione della botola come una scatola nera , la "crittografia" con la chiave privata seguita dalla "decodifica" con la chiave pubblica produrrà il messaggio originale. Per altri schemi PKE, non si può nemmeno dare un senso a questo. (Ad esempio, provare a "crittografare" con la chiave privata potrebbe essere un errore di tipo .)

[La crittografia di un messaggio "mediante la chiave privata" seguita dalla decrittografia "dalla chiave pubblica corrispondente"] viene utilizzata quando le persone pensano che il caso sia per le firme digitali e non vengano corretti nel tempo. Vedi questa risposta e questa domanda .


4
No. Stai perpetuando i miti secondo cui il libro di testo RSA è l'unico sistema crittografico a chiave pubblica e che la firma è la stessa cosa della decrittazione.
Gilles 'SO- smetti di essere malvagio' il

Il primo è un punto eccellente, che risolverò. L'ultima parte del tuo commento è dovuta alla mia lunga frase non sufficientemente chiara?

4
Non capisco cosa intendi per "quando le persone pensano che sia per le firme digitali". Sembra che tu stia dicendo che le persone credono erroneamente che le firme digitali siano diverse dalla crittografia a chiave pubblica. Provenendo da te, sono sicuro che non intendevi questo, ma la tua risposta è davvero confusa, anche dopo aver aggiunto il primo paragrafo.
Gilles 'SO- smetti di essere malvagio' il

2

Sì, un messaggio che è stato crittografato utilizzando la chiave privata può essere decrittografato utilizzando la chiave pubblica.

In realtà, questo è implementato per verificare l'autenticità dei dati. Nella firma digitale, una persona crittografa l'hash dei dati con la sua chiave privata. Chiunque può decodificare lo stesso con la chiave pubblica disponibile della persona e verificare l'autenticità dei dati.


2
Puoi farlo con il cryptosystem RSA, ma non con tutti i cryptosystems a chiave pubblica. Il sistema crittografico El-Gamal è diverso dallo schema di firma El-Gamal, ad esempio. Vedi anche la risposta di Gilles
Lucertola discreta

Vero che. Stavo cercando di dare una risposta diretta indipendentemente da particolari algoritmi @Discretelizard
Kevin Amipara,

Grazie per aver dato una risposta semplice.
jrahhali,

0

Pensa alla chiave pubblica in una crittografia asimmetrica come una serratura anziché una chiave. L'hacker che ha una serratura e una scatola chiusa con quella serratura, sbloccarebbe la scatola chiusa? Certo che no, e per sbloccare quella scatola è necessaria la chiave di blocco. Che non è mai stato inviato in pubblico, e solo il mittente ce l'ha.

Tuttavia, la risposta è : D è effettivamente possibile per un hacker di decrittografare il messaggio utilizzando solo la chiave pubblica (blocco e una casella bloccata). Ma questo è estremamente difficile per qualsiasi computer oggi. Perché ripristinare quel messaggio crittografato usando quella chiave pubblica è un'operazione matematica molto difficile, specialmente quando quella chiave ha un numero di 2048 bit. La forza dell'operazione matematica si basa sulla durezza della scomposizione in fattori primi di un gran numero.

Ecco un buon video che spiega come funziona l'algoritmo RSA https://www.youtube.com/watch?v=wXB-V_Keiu8


0

La domanda è valida in termini di eMRTD in cui viene utilizzata la chiave pubblica AA per crittografare la risposta di autenticazione interna crittografata dalla chiave privata eMRTD. Fa parte dello standard ICAO 9303.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.