# Measure ECC key size

I have implemented a ECC key generation scheme successfully. Now I need to find ECC key sizes of each generating key pairs. I assumed that ECC key size is the size of the ECC private Key. So I would like to to know whether it is correct?

-
When talking about the size in ECC we generally refer to the field size. – CodesInChaos Jun 2 '14 at 7:58
Then key size of keys generated using secp160r1 elliptic curve is 160 bits? – user2934766 Jun 2 '14 at 9:08
Yes, it would be 160 bits. Note that a 160 bit elliptic curve can be broken with approximately $2^{80}$ operations. – poncho Jun 2 '14 at 14:37
If you use the private key value $S$ itself (which you shouldn't), then you should definitively not treat it as an integer. There is nothing to prevent the private key to start with 00 or 0000 to my knowledge. So using integer(S).bitlength() or similar may give you the wrong result. – Maarten Bodewes Jun 2 '14 at 17:47

ECC public keys are (X,Y) points where X and Y are elements in a given field (e.g. Fp or F2m).

For example, secp160r1 uses a 160-bit prime field. X and Y can be up to 160 bits long. So (X,Y) is 320 bits.

The (X,Y) point can be represented in compressed form where only the X value and a bit of information is given, since Y is a function of X.

X.962 encoding can be used for these 3 cases. Note that X and Y are zero-padded to the prime modulus size in the case they are smaller:

Uncompressed:

0x04 | X | Y

Compressed (Y is even):

0x02 | X

Compressed (Y is odd):

0x03 | X

-
Hi new user and welcome. Unfortunately this is in my opinion not what was asked. I guess the question is: "Given a key, what parameter(s) should I use to retrieve the key size?" – Maarten Bodewes Jun 2 '14 at 17:38
Whatever you say. – user13741 Jun 2 '14 at 19:31