Facciamo un esempio, tu sei il MITM.
- Alice invia a Bob il numero primo e la base, ovvero: p = 23, g = 5.
- Ma ... MITM cambia p e g a 29 e 7.
- Quindi Bob è d'accordo con Alice usando p e g 29 e 7.
- MITM man ora non può cambiare la risposta di Bob, quindi invia solo Alice 29 e 7.
Due opzioni ora, Alice può rifiutare il 29 e il 7 poiché non sono i valori originali e ricomincia la negoziazione o Alice invia un riconoscimento a Bob per i valori 29 e 7, consideriamo la seconda opzione, poiché la prima opzione termina in su senza comunicazione.
- Alice accetta di utilizzare 29 e 7 come nuovi P e G e seleziona un numero segreto.
- MITM ora può solo guardare e non potrà mai più il numero segreto che Alice ha scelto. Può provare a fare la forza bruta, ma ciò può richiedere tempo e non è questo il problema discusso.
Quindi, in questo caso non importa chi sceglie i numeri primi, in realtà potrebbero essere pubblici.
(Può effettivamente compromettere la comunicazione scegliendo il numero primo molto basso come 2 e 3 poiché un attacco di forza bruta a questi numeri è in realtà facile, ma suppongo che la maggior parte degli algoritmi costringerà grandi numeri primi).
Come ultima nota, se l'implementazione è veramente buggata (come suggerito da @GeneVincent) e consente numeri primi molto bassi, allora hai capito. Puoi ascoltare facilmente la comunicazione.