Meine Idee war nämlich eher dass ICH entscheide wem ich meinen
public key gebe und wem nicht.
Offenbar hast du das Funktionsprinzip von GPG noch nicht ganz verstanden. GPG verschlüsselt nicht uni-, sondern immer bilateral; d. h. mit den Schlüsseln beider an einem Kommunikationsvorgang beteiligten Parteien.
Wenn du mir eine verschlüsselte Mail zukommen lassen willst, nimmst du deinen privaten und meinen öffentlichen Schlüssel, die dann gemeinsam den Schlüssel bilden, mit dem du die Mail verschlüsselst. Jetzt gibt es genau zwei Schlüsselpaare, mit denen die Mail wieder entschlüsselt werden kann: Dein privater und mein öffentlicher oder dein öffentlicher und mein privater Schlüssel.
Den öffentlichen Schlüssel einer Person zu besitzen bedeutet nicht, dass man damit irgendeine an einen Dritten gerichtete Mail dieser Person entschlüsseln könne - man braucht immer ein passendes Paar.
Wenn ich dir eine verschlüsselte Mail zukommen lassen will, benötige ich entspr. erst deinen öffentlichen Schlüssel. Du bist nicht gezwungen, diesen tatsächlich von jedem einsehbar zu veröffentlichen. Du kannst ihn auch geheimhalten und mir unter dem Siegel der Verschwiegenheit auf irgendeinem Wege zukommen zu lassen.
Es macht aber Sinn, ihn zu veröffentlichen, denn dann muss ich bei dir nicht erst unverschlüsselt anfragen und vor allen Dingen bekomme ich so auch automatisch Zugriff auf deinen erneuerten öffentlichen Schlüssel, wenn dein ursprünglicher Schlüssel nach einer gewissen Zeit abläuft. Andernfalls müsstest du jedem Kommunikationspartner den erneuerten Schlüssel zukommen lassen.
HTH