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.