需要解释椭圆曲线密钥对生成代码

时间:2013-12-16 17:55:44

标签: java bouncycastle elliptic-curve

我正在尝试实现ECC曲线basec程序,我在他们的官方页面上看到了这段代码

import org.bouncycastle.math.ec.ECCurve;
import org.bouncycastle.jce.spec.ECParameterSpec;
...
ECCurve curve = new ECCurve.Fp(
    new BigInteger("883423532389192164791648750360308885314476597252960362792450860609699839"), // q
    new BigInteger("7fffffffffffffffffffffff7fffffffffff8000000000007ffffffffffc", 16), // a
    new BigInteger("6b016c3bdcf18941d0d654921475ca71a9db2fb27d1d37796185c2942c0a", 16)); // b

ECParameterSpec ecSpec = new ECParameterSpec(
    curve,
    curve.decodePoint(Hex.decode("020ffa963cdca8816ccc33b8642bedf905c3d358573d3f27fbbd3b3cb9aaaf")), // G
    new BigInteger("883423532389192164791648750360308884807550341691627752275345424702807307")); // n

KeyPairGenerator g = KeyPairGenerator.getInstance("ECDSA", "BC");

现在,我需要指定自己的参数。我有abq(字段值)以及生成点(x,y)。现在这段代码只有一个值G,而不是(x,y) - 它们如何得到这个值?另外如何找到此代码中使用的n的值?

确切地说,我需要知道abq和(x,y)点的给定值,G和{的值如何? {1}}已生成?

0 个答案:

没有答案