Skip to content

mail4metablocks/elliptic-curve-cryptography

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

elliptic-curve-cryptography

Elliptic curve cryptography (ECC) is a type of public-key cryptography that is based on the algebraic structure of elliptic curves. It is widely used in a variety of applications, including secure communication, digital signatures, and blockchain security.

In the context of blockchain security, ECC is often used to secure the communication between nodes in the network and to create digital signatures that can be used to prove ownership of a particular asset or to authorize a transaction.

One of the key benefits of ECC is that it allows for the creation of secure keys using relatively short keys sizes, which makes it more efficient and scalable than other types of public-key cryptography. For example, a 256-bit ECC key is considered to be equivalent in security to a 3072-bit RSA key, but is much shorter and requires less computation to use. This makes ECC particularly well-suited for use in blockchain applications, where the security of the system is paramount and efficiency is a key concern.

There are a variety of different elliptic curve algorithms that are used in ECC, including the popular NIST P-256 curve and the secp256k1 curve used in the Bitcoin and Ethereum networks. It's important to choose the right curve for your application, as different curves have different security properties and may be more or less resistant to certain types of attacks.

ECC is just one aspect of blockchain security, and there are many other factors to consider when designing a secure blockchain system. It is important to carefully evaluate the security needs of your application and to seek guidance from experts in the field when choosing the appropriate cryptographic techniques and protocols.

   _______________
|               |
|               |  Private key
|               |  (scalar value)
|               |
|               |
|    Alice      |
|               |
|               |
|               |
|               |
|_______________|
      |
      |
      V
 _______________
|               |
|               |  Public key
|               |  (point on curve)
|               |
|               |
|               |
|       Bob     |
|               |
|               |
|               |
|_______________|
      |
      |  Message
      |  (hash of message)
      |
      V
 _______________
|               |
|               |  Signature
|               |  (scalar value)
|               |
|               |
|               |
|       Bob     |
|               |
|               |
|               |
|_______________|
      |
      |
      V
 _______________
|               |
|               |  Result
|               |  (true or false)
|               |
|               |
|    Alice      |
|               |
|               |
|               |
|               |
|_______________|

In this diagram, Alice wants to send a message to Bob, but wants to ensure that the message cannot be intercepted or tampered with by an attacker. To do this, Alice uses ECC to create a digital signature for the message.

First, Alice creates a public key by selecting a point on an elliptic curve and a private key by choosing a scalar value. She then hashes the message to create a unique value that represents the message. Next, Alice uses her private key to generate a signature for the message by multiplying the hash value by the private key and taking the remainder when the result is divided by the order of the curve.

Alice then sends the message, the signature, and her public key to Bob. Bob uses Alice's public key to verify the signature by performing a series of calculations involving the signature, the hash value, and the point on the curve. If the signature is valid, Bob knows that the message has not been tampered with and that it was sent by Alice.

Releases

No releases published

Packages

No packages published