Algoritmo di Diffie-Hellman: panoramica e implementazione in C

Google Translate Icon

L'algoritmo Diffie-Hellman viene utilizzato per stabilire un segreto condiviso tra due parti che può essere utilizzato per la comunicazione segreta per lo scambio di dati su una rete pubblica.

Spiegazione pittorica:

Il processo inizia facendo in modo che le due parti, Alice e Bob, si accordino su un colore di partenza arbitrario che non deve essere tenuto segreto (ma dovrebbe essere ogni volta diverso); in questo esempio, il colore è giallo. Ognuno di loro seleziona un colore segreto, rispettivamente rosso e acqua, che tiene per sé. La parte cruciale del processo è che Alice e Bob ora mescolano il loro colore segreto con il loro colore reciprocamente condiviso, risultando rispettivamente in miscele arancione e blu, quindi scambiano pubblicamente i due colori misti. Infine, ciascuno dei due mescola il colore ricevuto dal partner con il proprio colore privato. Il risultato è una miscela di colori finale (marrone) identica alla miscela di colori del partner.

 
Diffie-Hellman_Key_Exchange

Sarebbe impossibile per la spia Eve determinare il colore segreto comune.

Spiegazione crittografica:

L'algoritmo in sé è molto semplice. Supponiamo che Alice voglia stabilire un segreto condiviso con Bob. Ecco un esempio del protocollo con valori segreti in red.

  1. Alice e Bob accettano di usare un numero primo p = 23 e base g = 5. (Questi due valori vengono scelti in questo modo per garantire che il segreto condiviso risultante possa assumere qualsiasi valore da 1 a p–1).
  2. Alice sceglie un numero intero segreto un = 6, quindi invia Bob UN = gun mod p (UN = 56 mod 23 = 8)
  3. Bob sceglie un numero intero segreto b = 15, quindi invia Alice B = gb mod p (B = 515 mod 23 = 19)
  4. Alice calcola S = Bun mod p (S = 196 mod 23 = 2)
  5. Bob calcola S = UNb mod p (S = 815 mod 23 = 2)
  6. Alice e Bob ora condividono un segreto (il numero 2).

Il numero che Alice ottiene al punto 4 è lo stesso che Bob ha ottenuto al punto 5

Bob calcola

Ab mod p = (ga mod p)b mod p = gab mod p

 
Alice calcola

Ba mod p = (gb mod p)a mod p = gba mod p

 
L'algoritmo Diffie-Hellman viene utilizzato principalmente per scambiare chiavi di crittografia da utilizzare in algoritmi di crittografia simmetrica come AES. Si prega di notare che le informazioni non vengono condivise durante lo scambio delle chiavi. Qui le due parti stanno creando una chiave insieme.

 
Implementazione:

C


Scaricare  Esegui codice

Risultato:

Alice’s secret key is 2
Bob’s secret key is 2

Questo è tutto sull'algoritmo Diffie-Hellman.

 
Riferimento: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

Vota questo post

Voto medio 5/5. Conteggio voti: 19

Nessun voto finora! Sii il primo a votare questo post.

Ci dispiace che questo post non ti sia stato utile!

Ci racconti come possiamo migliorare questo post?




Grazie per aver letto.

Si prega di utilizzare il nostro compilatore in linea per pubblicare codice nei commenti utilizzando C, C++, Java, Python, JavaScript, C#, PHP e molti altri linguaggi di programmazione popolari.

Come noi? Segnalaci i tuoi amici e aiutaci a crescere. Buona codifica :)



sottoscrivi
Notifica di
guest
1 Commento
Il più votato
Il più recente Il più antico
Feedback in linea
Visualizza tutti i commenti
NON seguire questo link o verrai bannato dal sito!