Códigos para generar una clave pública en un algoritmo de curva elíptica utilizando una clave privada dada

Necesito implementar el algoritmo ECC (criptografía de curva elíptica) usando jdk 1.7. Intenté usar bouncy castle, sunEC, pero todos dieron errores y fallas. Mi objetivo es generar una curva elíptica usando la clave privada, se me dará al sistema.

Por lo tanto, necesito obtener un código exacto para generar una clave pública usando una clave privada dada usando jdk1.7. El IDE que uso es ecllipse. Y necesito saber, ¿cuáles son los otros parámetros que se me deben dar además de una clave privada? ¿Es suficiente proporcionar solo un punto de curva y la clave privada?

¿Puede alguien ayudarme a generar una clave pública a partir de una clave privada? Puedo gestionar el resto de mi implementación.

Cualquiera que sepa implementar claves de criptografía de curva elíptica usando java, por favor, dígame si este código es correcto.

public class ECCrypt {

    private ECPoint curve_point;

      public ECCrypt(ECPoint curve_point) {
        this.curve_point = curve_point;
      }

public BigInteger makePublicKey(BigInteger privateKey) {
        ECPoint ecPublicKey = new ECPoint(curve_point);
        ecPublicKey.mult(privateKey);
        return ecPublicKey.pack();
}


public static void main(String[] argv) throws Exception {
        java.util.Random rnd = new java.util.Random();
        ECPoint cp = new ECPoint();
        cp.random(rnd);
        ECCrypt ec = new ECCrypt(cp);
        BigInteger priv = new BigInteger(255,rnd);
        BigInteger pub = ec.makePublicKey(priv);

}

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta