Я новичок ie в криптографии и пытаюсь сгенерировать пару ключей E C, используя BouncyCastle в java, а ключ publi c такой же, как закрытый ключ.
См. Код ниже ..
public static void main(String[] args) {
Security.addProvider(new BouncyCastleProvider());
System.out.println("Starting...");
String name = "secp256k1";
try {
KeyPairGenerator kpg = KeyPairGenerator.getInstance("ECDSA",BouncyCastleProvider.PROVIDER_NAME);
kpg.initialize(new ECGenParameterSpec(name));
KeyPair keyPair = kpg.generateKeyPair();
PublicKey pub = keyPair.getPublic();
PrivateKey prv = keyPair.getPrivate();
byte[] pubBytes = pub.getEncoded();
byte[] prvBytes = prv.getEncoded();
KeyFactory kf = KeyFactory.getInstance("ECDSA", BouncyCastleProvider.PROVIDER_NAME);
PrivateKey prv_recovered = kf.generatePrivate(new PKCS8EncodedKeySpec(prvBytes));
PublicKey pub_recovered = kf.generatePublic(new X509EncodedKeySpec(pubBytes));
System.out.println("Private Key: \n" + prv_recovered.toString());
System.out.println("Public Key: \n" + pub_recovered.toString());
} catch(Exception e) {
e.printStackTrace();
}
}
Вывод:
Личный ключ:
E C Личный ключ [36: e9: 32: 8f: b1: 96: cb: 7d: eb: a8: 62: f2: ce: fb: 93: d5: 10: c5: 77: aa]
Publi c Ключ:
E C Publi c Ключ [36: e9: 32: 8f: b1: 96: cb: 7d: eb: a8: 62: f2: ce: fb: 93: d5: 10: c5: 77: aa]
Может кто-нибудь объяснить мне, почему это происходит, пожалуйста?