In che modo la chiave privata è tenuta segreta nelle firme digitali?

-2

Una firma digitale viene verificata utilizzando un algoritmo che accetta tre input: il messaggio, la firma digitale (messaggio crittografato con chiave privata) * e la chiave pubblica. Se la chiave pubblica viene utilizzata per verificare il messaggio originale alla firma, allora logicamente l'algoritmo deve contenere un metodo per trasformare la chiave pubblica nella chiave privata, in modo che possa avvenire la verifica. Ciò implicherebbe un metodo per ottenere la chiave privata dalla chiave pubblica, che sconfigge lo scopo .

Qualcuno può spiegarmi come viene implementato l'algoritmo per evitare questo problema?

* come spiegato da Mike sotto, la firma è in realtà un riassunto del messaggio crittografato con la chiave privata

Modifica

Penso che "logicamente" fosse una scelta scadente di parole. Intendevo dire che sembrava "intuitivo" che l'unico modo per decifrare la firma fosse convertire la chiave pubblica nella chiave privata. Ovviamente ciò comprometterebbe la riservatezza della chiave privata e "vanificherà lo scopo". Alla luce di ciò, stavo cercando di capire in che modo la chiave pubblica verifica la firma senza conversione in chiave privata. Ho bisogno di aiuto con la matematica perché l'asimmetria non è intuitiva.

Le firme digitali non sono le stesse dello scambio di chiavi. Per quanto ne so, in senso lato, il primo usa la chiave pubblica per "decodificare / verificare" il messaggio, mentre il secondo usa la chiave privata per "decodificare" la chiave simmetrica scambiata (che era "crittografata" usando il chiave pubblica associata).

    
posta RamBam 29.06.2016 - 22:10
fonte

4 risposte

3

Cercherò di semplificare il più possibile

La difficoltà deriva da alcune operazioni "difficili da calcolare" in matematica. Ad esempio, alcune operazioni sono facili da calcolare in due modi. Se computo 5 * 6 = 30, è facile calcolare x * 6 = 30 (30/6 = 5).
Alcune altre operazioni sono solo a un modo facile da calcolare: 5 ^ 6 = 15625. Ok ma se ti do x ^ 6 = 15625 ... come cazzo riesci a trovare x? Devi provare con 1, 2, 3, 4, 5 (ho questo è questo).
Quindi per calcolare 5 ^ 6 hai una operazione. Per calcolare 15625 ^ (1/6) hai cinque operazioni.
Nella crittografia asimmetrica, stiamo parlando di questo tipo di problematico.

Ti propongo una visione molto semplice del problema:

Diciamo che x ^ y significa "x potenza y"
Lo sai in matematica (x ^ y) ^ z == x ^ (y * z)
sai cos'è un modulo (13% 7 == 6)
E tu sai che x ^ 1 == x

Nella crittografia asimmetrica esegui un'operazione con un modulo molto grande N. E la tua chiave privata A e la tua chiave pubblica B sono due numeri enormi progettati per essere uguali a 1 quando vengono moltiplicati.
Quindi, quando vuoi cifrare un messaggio M chiaro, esegui M ^ B% N = C che è un numero molto grande.
Quando si vuole firmare un messaggio M, si calcola M ^ A% N = S che è anche un numero molto grande.

Quando si desidera decodificare C, si esegue C ^ A% N = (M ^ B) ^ A% N = M ^ (B * A)% N e ho detto che B e A sono progettati per essere uguali a 1 (con il grande modulo N) quindi M ^ (B * A) = M ^ 1 = M

Quando vuoi controllare la firma, esegui S ^ B = (M ^ A) ^ B = M ^ (A * B) = M ^ 1 = M

La bellezza è così, anche se conosco M, B e S, e so che S == M ^ x e B * x == 1 ... è assolutamente orribile cercare di trovare x, specialmente quando il modulo sono coinvolti.

Prova un po 'di esercizio: immagina un tipo di mondo nel modulo 13. Ogni volta che raggiungi 13, torni a 0. Quindi conti come: 1,2,3,4,5,6,7,8,9,10,11,12, 0,1,2,3 ...
5 + 5 = 10
5 + 7 = 12
5 + 9 = 1
5 + 11 = 3
...
Se dico che 7 ^ x% 13 = 4 (una operazione per calcolarlo) ... trova x.
Provando tutte le possibilità, vedrai che non hai assolutamente la minima idea di essere vicino alla soluzione o no Ad esempio, 7 ^ 4% 13 == 9 e 7 ^ 8% 13 == 3 ... hai qualche idea se x è tra 4 e 8? questa operazione è chiamata logaritmo discreto. E questo è molto doloroso da calcolare. Con numeri enormi, questo diventa un incubo.

SO la risposta è SI con conoscenza di una firma, del messaggio originale e della chiave pubblica, puoi sapere come calcolare la chiave privata (puoi sapere quale calcolo deve essere fatto). Infatti, basta solo la chiave pubblica per sapere quale calcolo è necessario.
Ma no, non raggiungerai il risultato prima di morire ... molte volte

    
risposta data 30.06.2016 - 01:35
fonte
1

Il pezzo che sembra mancare è che, per alcuni algoritmi di crittografia a chiave pubblica, le chiavi pubbliche e private sono inversioni crittografiche l'una dell'altra. Quindi, crittografare con una chiave pubblica, decifrare con la chiave privata; crittografare con una chiave privata, decifrare con la chiave pubblica.

Quindi, se crittografo un messaggio, o più probabilmente, un digest di messaggi, con la mia chiave privata , chiunque può decodificarlo con la mia chiave pubblica. Non c'è riservatezza, ma il messaggio potrebbe essere stato crittografato solo da qualcuno che ha accesso alla mia chiave privata.

Puoi fidarti di una simile firma digitale esattamente come ti fidi che a) Non ho permesso che la mia chiave privata fosse compromessa e b) ti fidi che tu abbia davvero la mia chiave pubblica e non di Eva.

    
risposta data 30.06.2016 - 00:57
fonte
0

Dove ti manca è il secondo input dell'algoritmo.

Per firmare un messaggio, non crittografare il messaggio stesso, ma piuttosto, si crea un digest di messaggi utilizzando una funzione di hash crittografica. Questo digest viene quindi crittografato con la chiave privata e quindi inviato insieme al messaggio.

Per verificare, il destinatario calcola lo stesso digest dal messaggio, decrittografa la firma con la chiave pubblica e confronta i due digest. Se sono identici, ciò dimostra che il messaggio proviene da te perché è stato crittografato con la tua chiave privata e decodificato con la tua chiave pubblica.

La firma del motivo è considerata l'opposto della crittografia perché, durante la crittografia del messaggio, il mittente utilizza la chiave pubblica del destinatario per crittografare e il destinatario utilizza il proprio privato chiave per decriptare.

Per riassumere:

  • Cifra con la chiave pubblica dell'altro
  • Accedi con la tua chiave privata
  • Decifra con la tua chiave privata
  • Verifica con la chiave pubblica dell'altro
risposta data 30.06.2016 - 00:17
fonte
-1

Non è possibile ottenere la chiave privata dalla chiave pubblica. Perché? Perché dovresti trovare due numeri primi che sono termini di un numero grande e questo è un calcolo che richiede molto tempo

    
risposta data 30.06.2016 - 01:28
fonte

Leggi altre domande sui tag