Elliptic Curve Cryptography
Message in a Bottle uses a public key cryptographic engine based on Elliptic Curve
Cryptography (ECC).
Here we try to give a brief overview of Elliptic Curve Cryptography.
Elliptic Curve Cryptography is a public key cryptographic system, invented separately by Neal Kiblitz e Victor Miller in 1985, based on Elliptic Curve theory defined on finite fields.
An elliptic curve
An elliptic curve is a plain curve defined by an equation like this:
y2 = x3 + a x + b.
Solutions to such an equation, together with the point at infinity, form an abelian group (if we consider the point at infinity as identity element). If we take x and y from a finite field (i.e. considering only a finite number of points) the set composed by all solutions forms a finite abelian group.
Discrete Logarithm
The security of Elliptic Curve Cryptography is based upon discrete logarithm problem.
Discrete logarithm is defined as the logarithm, in base n, on an algebraic group
(differently from canonical logarithm defined on the set of real numbers).
For example, consider the multiplicative group formed by integers modulo p:
G = Z*p with p is a prime number (i.e. the set of integers {1,2....p})
Consider then the equation:
ax = b mod p (mod stays for the rest of the division b/p)
discrete logarithm problem consists in finding a value for x such that the above equation is satisfied.
As of this writing there isn't any efficient algorithm to calculate discrete logarithms.
It is a problem belonging to the NP (non-polinomial) class for which finding a solution
requires an exponential time respect to dimensions of the algebraic group G.
It is exactly this feature that makes discrete logarithm problem the basis for public
key cryptosystems.
Discrete logarithm problem is used for implementing the Diffie-Hellmann key agreement algorithm.
Diffie-Hellmann key agreement
Alice and Bob want to exchange encrypted messages. First of all, they must agree on a secret key used for encripting messages. So the problem is: How can they agree on a key securely? Diffie-Hellmann key agreement algorithm allows solving this problem:
1) Alice and Bob choose a specific elliptic curve y2 = x3 + a x + b setting values to a e b
2) Alice and Bob choo se on such a curve a point G (x, y) called generator.
3) Alice chooses an integer m large enough (private key) and calculates the value mG (public key) which she sends to Bob.
4) Bob chooses an integer n large enough (private key) and calculates the value nG (public key) which he sends to Alice
5) Both Alice and Bob have the value mnG which represents the needed key.
It Is proved that the problem of finding mnG knowing only mG or nG (Diffie-Hellmann problem for elliptic curve cryptography) is analogous to discrete logarithm problem (for a detailed proof see N. Koblitz, "Elliptic curve cryptosystems", in Mathematics of Computation 48, 1987, pp. 203–209).
Elliptic Curve Cryptography Strength
Discrete logarithm problem used in elliptic curve cryptography, considering the same finite field dimension, is considered more complex than integer factorization problem used by RSA cryptosystem. Thus, given a definite security level, elliptic curve cryptosystem requires keys smaller than the keys used by RSA cryptosystem.
|
Time required to solve discrete logarithm problem (in MIPS/year) |
RSA key length (in bit) |
ECC key length (in bit) |
Confronto RSA/ECC |
| 104 | 512 | 106 | 5 : 1 |
| 108 | 768 | 132 | 6 : 1 |
| 1011 | 1024 | 160 | 7 : 1 |
| 1020 | 2048 | 210 | 10 : 1 |
| 1078 | 21000 | 600 | 35 : 1 |
As of this writing (2007), it doesn't exist any work which establish formerly and
definetely the complexity level of elliptic curve cryptosystem.
Nevertheless National Security
Agency acquired a new technology based on elliptic
curve which has been inserted into the list of reccomended algorithm for "NSA Suite B".
Easier calculations
Another aspect which distinguish elliptic curve cryptosystem from RSA cryptosystem
is the easier calculations required for producing the cryptographic quantities.
The most of calculations are additions and multiplications on integers and/or points
on the curve. Viceversa, RSA cryptosystem requires modulus calculations considerably
more complex and more hard in terms of calculation resources. Therefore
elliptic curve cryptosystem better fits for implementations on devices with reduced
resources such as smart cards, mobile phones and so on.
Elliptic Curve and SMS
Elliptic curve cryptosystem has several nice features for SMS protection. First
of allI, as already mentioned above, considering the same level of security, requires
keys much smaller than RSA cryptosystem. Reffering to the picture above, a 160 bit
elliptic key offers the same security level as a 1024 bit RSA key. Therefore, encrypted/signed
SMSs are smaller than the length they will have if using another cryptosystem.
Second, as already mentioned above, mathematic calculations required by elliptic
curve cryptosystem are easier and, hence, they require a low calculation power.
Therefore elliptic curve cryptography is the more appropriate cryptographic technology
to be used on small devices such as mobile phones.


