Mathematisch leitet sich der öffentliche Schlüssel aus dem privaten Schlüssel ab: ein Kurvenpunkt Q = d·G bei ECDSA und ECDH, ein kodierter 32-Byte-Punkt bei Ed25519 und X25519, Modul und Exponent (n, e) bei RSA, ein Matrix-Seed plus Vektor bei ML-KEM und ML-DSA. Die Größen reichen von 32 Byte (Ed25519) und 33/65 Byte (P-256 komprimiert/unkomprimiert) bis zu 294 Byte (RSA-2048 als SubjectPublicKeyInfo in DER) und 1.312–2.592 Byte (ML-DSA).
Übliche Container: SubjectPublicKeyInfo in DER oder PEM (-----BEGIN PUBLIC KEY-----), das ältere RSAPublicKey aus PKCS #1 (BEGIN RSA PUBLIC KEY), JWK (kty, crv, x, y oder n, e), das einzeilige OpenSSH-Format (ssh-ed25519 AAAA…), COSE_Key in WebAuthn, OpenPGP-Schlüsselpakete und Blockchain-Adressen, die Hashes öffentlicher Schlüssel sind.
Ein öffentlicher Schlüssel enthält keine Angaben zur Identität. Vertrauen entsteht durch eine Bindung: ein von einer CA signiertes Zertifikat, ein JWKS, das über HTTPS vom Aussteller abgerufen wird, ein Eintrag in known_hosts, ein gepinnter Fingerabdruck oder eine On-Chain-Adresse. Prüfe Schlüssel, die du von anderen erhältst (Zugehörigkeit zur Kurve, Größe, Typ), bevor du sie verwendest.