The above illustration represents the process of point doubling and point addition as explained below.
- Point doubling: When only one point is provided, a straight line can not be drawn, so we draw a tangent at the point provided. The point where that tangent intersects the curve again is mirrored horizontally to get another point.
- Point addition: Given that two points are provided on the curve, we draw a straight line passing through those points. The point where that straight line intersects the curve for the 3rd and the final time is mirrored horizontally to get the next point.
ECC algorithms
ECC provides several different groups of algorithms based on their use cases, defined over an elliptic curve over finities fields.
- Digital Signatures: ECC provides algorithms for digital signatures like the elliptic curve digital signature algorithm ECDSA and EdDSA.
- Encryption: ECC provides algorithms for encrypting messages, namely ECIES and EEECC.
- Key agreement: ECC provides algorithms like ECDH and FHMQV for key agreement.
All these algorithms rely on elliptic curves like secp256K1, curve25519, and p251 to calculate keys and ciphers. Furthermore, they rely on the elliptic curve discrete logarithm problem (ECDLP) to ensure the difficulty of breaking these algorithms, thus ensuring the network's security.
Advantages of ECC
The advantages of ECC are as follows:
- Shorter key lengths: ECC provides a greater level of security while having a shorter key size. The energy required to break a 3072-length key generated by the RSA encryption method is the same amount of energy required to break a 256-length key generated by ECC. This shows that the 256-length key generated by the ECC is as cryptographically as strong as the 3072-length one generated by the RSA encryption.
- Less computational power: As the key sizes are shorter, it is computationally less expensive to encrypt and decrypt the data.
- Fast key generation: The key generation process is relatively simple and computationally less expensive as it involves securely generating a random integer within a specified range. This makes it extremely fast compared to the RSA encryption algorithm.
- Fast signatures: The ECC uses the ECDSA, which is extremely fast while generating the digital signature as it involves the simple step of multiplying a point on the curve.
Disadvantages of ECC
The disadvantages of ECC are as follows:
- Complicated: The ECC is quite complicated to implement, making it more prone to errors, thus compromising the system's overall security if not implemented properly.
- Random number generator: The system's security is compromised if a broken random number generator is used at the time of private key selection.
- Patents: It is one of the main factors restricting the widespread use of the ECC algorithm. Certicom and National Security Agency NSA own some of the main patents.
- Signature verification: Although the signature generation process is fast, the verification process takes some time due to its computationally intensive calculations.
- Backdoor: There are growing concerns that NSA may have implemented a backdoor into the ECC algorithms allowing them to monitor the encrypted messages being sent.
Applications of ECC
ECC is being used in many fields to provide security. The applications of ECC are as follows:
- Tor: Tor uses an ECC encryption algorithm to ensure the anonymity of the users.
- NSA: The patents owned by the NSA are used by the United States Government for communication. An ECC encryption algorithm of 384-length is used to transmit top secret information.
- Blockchain: Bitcoin uses the ECDSA algorithm to ensure that the funds are only spent by their rightful owners.
- iMessage: Apple's iMessage uses ECC to provide signatures to the messages being sent using the application.
- SSL: Although RSA encryption is the industry standard being used in SSL certificates for secure transmission between a client and the server. However, some computationally weak devices can use ECC-based SSL to perform encryption and decryption.