Jonas: Verständnis-Frage Diffie-Hellman Schlüsselerzeugung

Ich möchte die technische Umsetzung eines Diffie-Hellman-Schlüsselaustauschs inkl. Schlüsselerzeugung gern nachvollziehen können.

Mich interessiert wie die Primzahl und deren Primitivwurzel ermittelt/berechnet werden. Oder sind Primzahl und Primitivwurzel (aus einem bestimmten Wertebereich?) schon vorgegeben?
Ich glaube aktuelle Schlüssellängen betragen 2048Bit?
Zur technischen Veranschaulichung würden mir vermutlich auch 128Bit oder weniger reichen (sofern sich bei größeren Zahlen nichts an der Umsetzung ändert).

Ich habe gerade erst angefangen mich für Übertragungsverschlüsselung zu interessieren und wäre für jede Erklärung zu dem Thema dankbar :)

Mir geht es nicht darum ein Rad neu zu erfinden und ich weiß, dass das Diffie-Hellman-Verfahren selbst keine Verschlüsselung darstellt und die Nachrichten nicht authentifiziert werden.
Ich interessiere mich tatsächlich nur für die Umsetzung. Eine Erklärung mit Pseudocode würde mir wohl reichen, ich bin recht anspruchslos was die Sprache angeht - solange es nicht PERL ist ;)