In the following we generate an ECC key pair [RSA key pair]:
Generating a key pair (ECC) with OpenSSL |
Outline
We can generate a secp128r1 keypair:
$ openssl ecparam -genkey -name secp128r1 -----BEGIN EC PARAMETERS----- BgUrgQQAHA== -----END EC PARAMETERS----- -----BEGIN EC PRIVATE KEY----- MEQCAQEEENRsBJqQm7tndeOHdKwuiO2gBwYFK4EEAByhJAMiAAQdaMPLUglKLvG/ mfeSSZWfK8uwFwpkyYN0jHdxfdPoNg== -----END EC PRIVATE KEY-----
And for the details of the keys:
openssl ecparam -genkey -name secp128r1 -text | openssl ecparam -text -param_enc explic Field Type: prime-field Prime: 00:ff:ff:ff:fd:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff: ff:ff A: 00:ff:ff:ff:fd:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff: ff:fc B: 00:e8:75:79:c1:10:79:f4:3d:d8:24:99:3c:2c:ee: 5e:d3 Generator (uncompressed): 04:16:1f:f7:52:8b:89:9b:2d:0c:28:60:7c:a5:2c: 5b:86:cf:5a:c8:39:5b:af:eb:13:c0:2d:a2:92:dd: ed:7a:83 Order: 00:ff:ff:ff:fe:00:00:00:00:75:a3:0d:1b:90:38: a1:15 Cofactor: 1 (0x1) Seed: 00:0e:0d:4d:69:6e:67:68:75:61:51:75:0c:c0:3a: 44:73:d0:36:79
A and B are the parameters of the curve, Prime is the prime number used, the Generator is the generator point, order is the number of points on the curve. A sample run shows:
ASN1 OID: secp128r1 -----BEGIN EC PARAMETERS----- BgUrgQQAHA== -----END EC PARAMETERS----- -----BEGIN EC PRIVATE KEY----- MEQCAQEEEBbxdME7ubVnWRGp1wd5jQqgBwYFK4EEAByhJAMiAARHiD0smABDKqjW LGbavDgfINrue/jbWBw+BuNqICN8sA== -----END EC PRIVATE KEY----- Field Type: prime-field Prime: 00:ff:ff:ff:fd:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff: ff:ff A: 00:ff:ff:ff:fd:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff: ff:fc B: 00:e8:75:79:c1:10:79:f4:3d:d8:24:99:3c:2c:ee: 5e:d3 Generator (uncompressed): 04:16:1f:f7:52:8b:89:9b:2d:0c:28:60:7c:a5:2c: 5b:86:cf:5a:c8:39:5b:af:eb:13:c0:2d:a2:92:dd: ed:7a:83 Order: 00:ff:ff:ff:fe:00:00:00:00:75:a3:0d:1b:90:38: a1:15 Cofactor: 1 (0x1) Seed: 00:0e:0d:4d:69:6e:67:68:75:61:51:75:0c:c0:3a: 44:73:d0:36:79