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 在编码和 key 规范之间切换,您可以使用 KeyPairGenerator 等生成公钥和私钥。但是就像没有 RSAPublicKey.exponentiate() 一样,也没有 ECPoint.add()。这些事情发生在 Signature、KeyAgreement 和 Cipher 类的幕后。
关于java - 在没有第三方库的情况下,Java 7 能做基本的 EC 操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7945850/