Códigos para gerar uma chave pública em um algoritmo de curva elíptica usando uma determinada chave privada

Eu preciso implementar o algoritmo ECC (Elliptic Curve Cryptography) usando o jdk 1.7. Eu tentei usar bouncy castle, sunEC, mas todos eles deram erros e erros. Meu alvo é gerar uma curva elíptica usando a chave privada, eu serei dado ao sistema.

Assim, eu preciso obter um código preciso para gerar uma chave pública usando uma determinada chave privada usando jdk1.7. O IDE que uso é ecllipse. E eu preciso saber, quais são os outros parâmetros que eu deveria receber além de uma chave privada? É suficiente fornecer apenas um ponto de curva e a chave privada?

Alguém pode me ajudar a gerar chave pública a partir da chave privada? Eu posso gerenciar o resto da minha implementação.

Qualquer um que saiba implementar chaves de Criptografia de Curva Elíptica usando java, por favor me diga se este código está correto?

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);

}

Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion