Elliptic Curve Cryptography Encryption Results I'm playing around with a package that does Elliptic Curve Cryptography from http://jecc.sourceforge.net/

Every time I encrypt a value it produced a different result (same private key). However I'm always able to decrypt this result with the related public key. For a 1 byte result the resulting data is 34 bytes, 2 bytes the resulting data is 35 bytes. I assume some knowledge of the curve is contained in the result. 

Is this a feature of ECC or would you assume it is just this implementation?
It has to be this way.

First, if it was deterministic, you could trivially break the encryption. Say the encrypted message was a response to "which candidate for President do you vote for". An attacker would simply need to encrypt each candidate's name and see the response that matched the encrypted data.

Second, if it was the same length as the encrypted data, you'd have at least two problems. First, short messages could be trivially brute forced. For example, if the output were only two bytes (for any input) you could encrypt messages until you got a match. Second, there's an obvious pigeonhole problem for messages of any length. You can't encrypt all possible X byte messages into an X byte output unless the relationship is one-to-one, which requires it to be deterministic which fails for the reasons I explained above.

I'm not specifically familiar with jecc, but the usual way to use ECC for encryption (IES) involves two random steps. First, the data to be encrypted is encrypted with a random symmetric key. Second, a random public/private ECC key pair is used in the encryption of the symmetric key. This explains both the indeterminism and the length.