Jak skompresować lub zakodować klucz publiczny krzywej eliptycznej i umieścić go w sieci?
Rozwijam Rozproszony podpis cyfrowy, który podpisuje dokument i wysyła go przez sieć do Application Server. Używam programowania gniazd w Javie. Myślę, że klucz publiczny powinien być zakodowany lub skompresowany, tj. Wartości xiy są w jakiś sposób reprezentowane jako pojedyncze dane binarne i zapisywane w rejestrze publicznym lub sieci. Ale nie wiem, jak to zrobić w Javie.
// 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.
Chcę wiedzieć, jak zakodować klucz publiczny i parametry domeny, aby weryfikator podpisu zdekodował go, aby go użyć. Ponieważ po wysłaniu ich przez sieć do weryfikatora będziesz musiał kodować jako tablicę jednobajtową Nie używam dostawcy Bouncy Castle. Cała implementacja algorytmu ECDSA jest moim projektem