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