Wie komprimiere oder codiere ich den öffentlichen Schlüssel der elliptischen Kurve und stelle ihn über das Netzwerk bereit?

Ich entwickle eine verteilte digitale Signatur, mit der ein Dokument signiert und über das Netzwerk an den Anwendungsserver gesendet wird. Dazu verwende ich die Socket-Programmierung in Java. Ich denke, der öffentliche Schlüssel sollte verschlüsselt oder komprimiert sein, d. H. Die x- und y-Werte werden irgendwie als einzelne Binärdaten dargestellt und in einer öffentlichen Registrierung oder einem öffentlichen Netzwerk gespeichert. Aber ich weiß nicht, wie ich das in Java machen soll.

        // I have class like this 
           public class CryptoSystem{                  

               EllipticCurve ec = new EllipticCurve(new P192());

               //-------------------
               //--------------------

               public ECKeyPair generatekeyPair()
               {
                  return ECKeyPair(ec);

               }


            }    
        // i don't think i have problem in the above


    CryptoSystem crypto = new CryptoSystem();
    ECKeyPair keyPair = crypto.generateKeyPair();
    BigInteger prvKey = keyPair.getPrivateKey();
    ECPoint pubKey = keyPair.getPublicKey();
     // recommend me here to  compress and send it  the public key to a shared network.

Ich möchte wissen, wie man die Parameter des öffentlichen Schlüssels und der Domäne codiert, damit der Verifizierer der Signatur sie decodiert, um sie zu verwenden. Denn wenn Sie sie über das Netzwerk an den Verifizierer senden, müssen Sie die als Einzelbyte-Array codieren .Ich verwende keinen Bouncy Castle Provider. Die gesamte Implementierung des ECDSA-Algorithmus ist mein Projekt

Antworten auf die Frage(2)

Ihre Antwort auf die Frage