| 曲线名称 | 标识符 | OID |
|---|---|---|
| ANSSI FRP 256v1 | FRP256v1 | 1.2.250.1.223.101.256.1 |
| ECC Brainpool P160r1 | brainpoolp160r1 | 1.3.36.3.3.2.8.1.1.1 |
| ECC Brainpool P160t1 | brainpoolp160t1 | 1.3.36.3.3.2.8.1.1.2 |
| ECC Brainpool P192r1 | brainpoolp192r1 | 1.3.36.3.3.2.8.1.1.3 |
| ECC Brainpool P192t1 | brainpoolp192t1 | 1.3.36.3.3.2.8.1.1.4 |
| ECC Brainpool P224r1 | brainpoolp224r1 | 1.3.36.3.3.2.8.1.1.5 |
| ECC Brainpool P224t1 | brainpoolp224t1 | 1.3.36.3.3.2.8.1.1.6 |
| ECC Brainpool P256r1 | brainpoolp256r1 | 1.3.36.3.3.2.8.1.1.7 |
| ECC Brainpool P256t1 | brainpoolp256t1 | 1.3.36.3.3.2.8.1.1.8 |
| ECC Brainpool P320r1 | brainpoolp320r1 | 1.3.36.3.3.2.8.1.1.9 |
| ECC Brainpool P320t1 | brainpoolp320t1 | 1.3.36.3.3.2.8.1.1.10 |
| ECC Brainpool P384r1 | brainpoolp384r1 | 1.3.36.3.3.2.8.1.1.11 |
| ECC Brainpool P384t1 | brainpoolp384t1 | 1.3.36.3.3.2.8.1.1.12 |
| ECC Brainpool P512r1 | brainpoolp512r1 | 1.3.36.3.3.2.8.1.1.13 |
| ECC Brainpool P512t1 | brainpoolp512t1 | 1.3.36.3.3.2.8.1.1.14 |
| GOST RFC4357 | GostR3410-2001-CryptoPro-A | - |
| GOST RFC4357 | GostR3410-2001-CryptoPro-B | - |
| GOST RFC4357 | GostR3410-2001-CryptoPro-C | - |
| GOST RFC5832 | tc26-gost-3410-2012-256-paramSetA | - |
| GOST RFC7836 | tc26-gost-3410-12-512-paramSetA | - |
| GOST RFC7836 | tc26-gost-3410-12-512-paramSetB | - |
| GOST RFC5832 | tc26_gost_3410_12_512_paramSetC | - |
| NIST P-192 | P-192 | 1.2.840.10045.3.1.1 |
| NIST P-224 | P-224 | 1.3.132.0.33 |
| NIST P-256 | P-256 | 1.2.840.10045.3.1.7 |
| NIST P-384 | P-384 | 1.3.132.0.34 |
| NIST P-521 | P-521 | 1.3.132.0.35 |
| SEC secp112r1 | secp112r1 | 1.3.132.0.6 |
| SEC secp112r2 | secp112r2 | 1.3.132.0.7 |
| SEC secp128r1 | secp128r1 | 1.3.132.0.28 |
| SEC secp128r2 | secp128r2 | 1.3.132.0.29 |
| SEC secp160k1 | secp160k1 | 1.3.132.0.9 |
| SEC secp160r1 | secp160r1 | 1.3.132.0.8 |
| SEC secp160r2 | secp160r2 | 1.3.132.0.30 |
| SEC secp192k1 | secp192k1 | 1.3.132.0.31 |
| SEC secp192r1 | secp192r1 | 1.2.840.10045.3.1.1 |
| SEC secp224k1 | secp224k1 | 1.3.132.0.32 |
| SEC secp224r1 | secp224r1 | 1.3.132.0.33 |
| SEC secp256k1 | secp256k1 | 1.3.132.0.10 |
| SEC secp256r1 | secp256r1 | 1.2.840.10045.3.1.7 |
| SEC secp384r1 | secp384r1 | 1.3.132.0.34 |
| SEC secp521r1 | secp521r1 | 1.3.132.0.35 |
| SM2 | sm2p256v1 | 1.2.156.10197.1.301 |
| X9.62 prime192v1 | prime192v1 | 1.2.840.10045.3.1.1 |
| X9.62 prime192v2 | prime192v2 | 1.2.840.10045.3.1.2 |
| X9.62 prime192v3 | prime192v3 | 1.2.840.10045.3.1.3 |
| X9.62 prime239v1 | prime239v1 | 1.2.840.10045.3.1.4 |
| X9.62 prime239v2 | prime239v2 | 1.2.840.10045.3.1.5 |
| X9.62 prime239v3 | prime239v3 | 1.2.840.10045.3.1.6 |
| X9.62 prime256v1 | prime256v1 | 1.2.840.10045.3.1.7 |
| 曲线名称 | 标识符 | OID |
|---|---|---|
| NIST B-163 | B-163 | 1.3.132.0.15 |
| NIST B-233 | B-233 | 1.3.132.0.27 |
| NIST B-283 | B-283 | 1.3.132.0.17 |
| NIST B-409 | B-409 | 1.3.132.0.37 |
| NIST B-571 | B-571 | 1.3.132.0.39 |
| NIST K-163 | K-163 | 1.3.132.0.1 |
| NIST K-233 | K-233 | 1.3.132.0.26 |
| NIST K-283 | K-283 | 1.3.132.0.16 |
| NIST K-409 | K-409 | 1.3.132.0.36 |
| NIST K-571 | K-571 | 1.3.132.0.38 |
| SEC sect113r1 | sect113r1 | 1.3.132.0.4 |
| SEC sect113r2 | sect113r2 | 1.3.132.0.5 |
| SEC sect131r1 | sect131r1 | 1.3.132.0.22 |
| SEC sect131r2 | sect131r2 | 1.3.132.0.23 |
| SEC sect163k1 | sect163k1 | 1.3.132.0.1 |
| SEC sect163r1 | sect163r1 | 1.3.132.0.2 |
| SEC sect163r2 | sect163r2 | 1.3.132.0.15 |
| SEC sect193r1 | sect193r1 | 1.3.132.0.24 |
| SEC sect193r2 | sect193r2 | 1.3.132.0.25 |
| SEC sect233k1 | sect233k1 | 1.3.132.0.26 |
| SEC sect233r1 | sect233r1 | 1.3.132.0.27 |
| SEC sect239k1 | sect239k1 | 1.3.132.0.3 |
| SEC sect283k1 | sect283k1 | 1.3.132.0.16 |
| SEC sect409k1 | sect409k1 | 1.3.132.0.36 |
| SEC sect409r1 | sect409r1 | 1.3.132.0.37 |
| SEC sect571k1 | sect571k1 | 1.3.132.0.38 |
| SEC sect571r1 | sect571r1 | 1.3.132.0.39 |
| X9.62 c2pnb163v1 | c2pnb163v1 | 1.2.840.10045.3.0.1 |
| X9.62 c2pnb163v2 | c2pnb163v2 | 1.2.840.10045.3.0.2 |
| X9.62 c2pnb163v3 | c2pnb163v3 | 1.2.840.10045.3.0.3 |
| X9.62 c2pnb176w1 | c2pnb176w1 | 1.2.840.10045.3.0.4 |
| X9.62 c2tnb191v1 | c2tnb191v1 | 1.2.840.10045.3.0.5 |
| X9.62 c2tnb191v2 | c2tnb191v2 | 1.2.840.10045.3.0.6 |
| X9.62 c2tnb191v3 | c2tnb191v3 | 1.2.840.10045.3.0.7 |
| X9.62 c2pnb208w1 | c2pnb208w1 | 1.2.840.10045.3.0.10 |
| X9.62 c2tnb239v1 | c2tnb239v1 | 1.2.840.10045.3.0.11 |
| X9.62 c2tnb239v2 | c2tnb239v2 | 1.2.840.10045.3.0.12 |
| X9.62 c2tnb239v3 | c2tnb239v3 | 1.2.840.10045.3.0.13 |
| X9.62 c2pnb272w1 | c2pnb272w1 | 1.2.840.10045.3.0.16 |
| X9.62 c2pnb304w1 | c2pnb304w1 | 1.2.840.10045.3.0.17 |
| X9.62 c2tnb359v1 | c2tnb359v1 | 1.2.840.10045.3.0.18 |
| X9.62 c2pnb368w1 | c2pnb368w1 | 1.2.840.10045.3.0.19 |
| X9.62 c2tnb431r1 | c2tnb431r1 | 1.2.840.10045.3.0.20 |
以下是在 aardio 中使用 BouncyCastle 内置椭圆曲线的示例代码:
import BouncyCastle;
import console;
// 获取 secp256r1 曲线参数
var ecParams = BouncyCastle.Asn1.X9.ECNamedCurveTable.GetByName("secp256r1");
// 创建椭圆曲线域参数
var domainParams = BouncyCastle.Crypto.Parameters.ECDomainParameters(
ecParams.Curve,
ecParams.G,
ecParams.N,
ecParams.H,
ecParams.GetSeed()
);
// 创建密钥对生成器
var generator = BouncyCastle.Crypto.Generators.ECKeyPairGenerator();
var keyGenParams = BouncyCastle.Crypto.Parameters.ECKeyGenerationParameters(
domainParams,
BouncyCastle.Security.SecureRandom()
);
generator.Init(keyGenParams);
// 生成密钥对
var keyPair = generator.GenerateKeyPair();
// 获取公钥和私钥
var publicKey = keyPair.Public;
var privateKey = keyPair.Private;
console.log("公钥:", publicKey.Q.ToString());
console.log("私钥:", privateKey.D.ToString());
console.pause();
ECNamedCurveTable.GetByName 方法获取预定义的椭圆曲线参数ECDomainParametersECKeyPairGenerator 并设置参数Q 属性中,私钥存储在 D 属性中注意:在实际应用中,私钥需要妥善保管,不应直接输出到控制台。