Both RSA and ECC encryption methods are asymmetric, meaning that they use two keys — a private and public key — instead of just one. RSA is based on the principal difficulty of factoring a large number into two prime numbers, whereas ECC is computed through elliptic curves which are symmetric around the x-axis. Below, we feature a set of FAQs for anyone to get a good grasp of encryption and its relation to blockchain.
Q: What are the differences between hashing and encryption?
A: There are several significant differences between encryption and hashing:
- Hashing is used to compress large message into a fixed length, whereby the hash of a message is not intended for communication purposes. In contrast, encryption is used to securely communicate between parties.
- Hashing goes one way; it is close to impossible to compute the plaintext of a hash without knowing any attributes of the message itself.
- Cryptography goes two ways; once the appropriate keys are known it is fast and easy to decrypt/encrypt a message.
Q: Why would a project implement RSA over ECC?
A: There are several reasons that a project would decide to implement RSA over ECC:
- RSA is more straightforward to compute mathematically than ECC. Thus, RSA is easy to implement.
- RSA’s strength is directly related to the number of relative bits as defined by the complexity of the hash. However, the number of bits requires more storage space.
Q: What are the benefits of using ECC?
A: There are several reasons that a project may implement ECC:
- ECC has a lower CPU consumption and memory usage because smaller keys are required to achieve the same level of security as with RSA.
- ECC is also more difficult to break.
Q: When would asymmetric encryption be used?
A: No one should be using only symmetric encryption; although there are use cases where users can implement symmetric encryption in combination with asymmetric encryption. In this scenario, one would pair the secret key from the symmetric encryption with the public key of the asymmetric encryption. The sender would only have to know the secret key and the public key, which would make the overall computation faster.
Q: What encryption techniques do crypto projects use?
A: Projects that are utilizing asymmetric encryption are generally using RSA unless they specifically specify ECC.
TLDR: RSA is simpler to compute but less secure; ECC is more complex, but more secure.