Java 将JCE EllipticCurve类与蒙哥马利曲线一起使用

Java 将JCE EllipticCurve类与蒙哥马利曲线一起使用,java,cryptography,jce,elliptic-curve,Java,Cryptography,Jce,Elliptic Curve,我正在使用Java加密扩展来进行椭圆曲线加密。我提出的choosen曲线(基于)都是蒙哥马利方程,我没有找到任何方法在JCE中表示/处理它们。那么,有没有办法用JCE中的蒙哥马利方程进行ECC呢 我使用Java7和BouncyCastle作为JCE提供者 下面是我正在处理的实际代码: import java.security.spec.ECFieldFp; import java.security.spec.ECParameterSpec; import java.security.spec.E

我正在使用Java加密扩展来进行椭圆曲线加密。我提出的choosen曲线(基于)都是蒙哥马利方程,我没有找到任何方法在JCE中表示/处理它们。那么,有没有办法用JCE中的蒙哥马利方程进行ECC呢

我使用Java7和BouncyCastle作为JCE提供者

下面是我正在处理的实际代码:

import java.security.spec.ECFieldFp;
import java.security.spec.ECParameterSpec;
import java.security.spec.ECPoint;
import java.security.spec.EllipticCurve;

        EllipticCurve curve = new EllipticCurve(
                new ECFieldFp(prime), a, b);
        ECParameterSpec ecSpec = new ECParameterSpec(
                curve,
                basePoint,
                basePointOrder,
                coFactor);
        KeyPairGenerator g = KeyPairGenerator.getInstance("ECDSA", "BC");
        g.initialize(ecSpec, new SecureRandom());
        pair = g.generateKeyPair();

给出了转换为Weierstrass形式的公式。@Henry:我已经用curve Curve25519试过了,但是得到了EllipticCurve类不接受的负系数。尽管如此,我不确定使用这种转换是否明智,因为我不太了解ECC的数学,以清楚这种转换的安全影响。几乎“安全曲线”的全部要点是更容易为其编写良好的实现。通过转换为weierstrass,您将失去这一优势。@CodesInChaos,尽管如果您只是想与其他软件兼容,我想这并不重要。