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!