4

Java 7 附带SunEC,它提供 ECDH 和 ECDSA 操作。我正在尝试进行基本的 EC 操作(点加法、标量乘法)。

我从

ECParameterSpec p256 = NamedCurve.getECParameterSpec("secp256r1");
ECPoint generator = p256.getGenerator();
BigInteger scalar = new BigInteger("23"); 

但从那里,我看不到下一步。没有ECPoint.scalarMultiply()ECPoint.add()EllipticCurve.multiply()

我是否遗漏了什么,或者答案只是“没有第三方库就无法做到”?

4

1 回答 1

2

如果没有第三方库,你不能直接做到这一点。我认为JCE中椭圆曲线的情况基本上类似于RSA的情况。这些类表示各种键和编码的实例。您可以使用 KeyFactory 在编码和密钥规范之间切换,您可以使用 KeyPairGenerator 等生成公钥和私钥。但就像没有 RSAPublicKey.exponentiate() 一样,也没有 ECPoint.add()。这些事情发生在 Signature、KeyAgreement 和 Cipher 类的底层。

于 2011-11-02T23:58:56.753 回答