Thanks,  I figured it was something like that.  Two concerns, however:
1) Doing this in the DER-format binary file makes complete sense.  Doing it for 
a text-dump of the key values, where they are displayed as a string of hex 
digits, doesn't, IMHO.
2) Sometimes the leading value is not 00.  I've seen 0x04, 0x75, 0x22.  That 
would in fact change the value of the number ;-)

As long as I can ignore them and interpret the remaining digits as the priv and 
public key values, I'm good to go.

-Brian





________________________________
From: Kyle Hamilton <aerow...@gmail.com>
To: "openssl-users@openssl.org" <openssl-users@openssl.org>
Cc: "openssl-users@openssl.org" <openssl-users@openssl.org>
Sent: Tuesday, September 22, 2009 9:12:30 PM
Subject: Re: Wrong size for EC key pair


The leading 00 is there just to comply with DER encoding restrictions -- 
otherwise, since the high bit is set, it would be interpereted as a negative 
number.  (For clarity, it is a very large positive integer.)

Besides, EC pairs are just numbers.  The leading 00 does nothing to change the 
value of the number.  (This is also the case with RSA and DH.  One-way hashing 
algorithms and most block and stream ciphers interperet their data as bitfields 
that can be shifted around one way and the inverse.)  The mathematical 
community often takes potshots at the problems that these numbers represent, 
and sometimes makes strides in solving these problems.  It is this property 
that makes causes them to be considered "secure" -- because no one has come up 
with an easier-than-brute-force method to solve them.

-Kyle H 

On Sep 22, 2009, at 18:47, Brian Kuschak <bkusc...@yahoo.com> wrote:


I'm using OpenSSL to generate EC key pairs for use in an embedded application.  
As such, I need to extract and use the raw key values, and I notice that the 
length of the keys as displayed by OpenSSL are exactly one byte longer than 
expected.  I assume the first byte listed for both public and private are not 
_really_ part of the key, but I'd like confirmation on this.  If so, what is 
it's purpose?
>
>Generate the key pair:
>
>openssl ecparam -out eckey.pem -name prime192v1 -genkey
>
>Notice how the private key is 25 bytes (not 24), and the public key is 49 
>bytes, not 48:
>
>openssl ec -in eckey.pem -text
>
>
>Private-Key: (192
> bit)
>priv:
>    00:d4:7a:55:e3:0d:91:26:2e:90:02:83:97:5c:3e:
>    63:25:95:fe:88:28:61:4e:e7:c5
>pub: 
>    04:f4:85:cc:48:15:83:7c:ee:8d:53:e8:0b:fd:a7:
>    40:5f:86:d8:fc:97:72:89:04:34:a4:92:e1:33:e7:
>    17:1c:55:c0:39:cc:06:c1:49:5f:d3:70:8b:08:e3:
>    33:83:50:ae
>
>I'm using OpenSSL 0.9.8k 25 Mar 2009.
>
>
>__________________________________________________
>Do You Yahoo!?
>Tired of spam?  Yahoo! Mail has the best spam protection around 
>http://mail.yahoo.com 


      

Reply via email to