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()
。
我是否遗漏了某些内容,或者答案只是“没有第三方图书馆就无法做到这一点?”
答案 0 :(得分:2)
如果没有第三方库,您无法直接执行此操作。我认为JCE中椭圆曲线的情况基本上类似于RSA。这些类表示各种键和编码的实例。您可以使用KeyFactory在编码和密钥规范之间进行编码,您可以使用KeyPairGenerator等生成公钥和私钥。但就像没有RSAPublicKey.exponentiate()一样,也没有ECPoint.add()。这些事情发生在Signature,KeyAgreement和Cipher类的引擎盖下。