diff options
author | saturneric <[email protected]> | 2025-07-06 16:13:07 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2025-07-06 16:13:07 +0000 |
commit | 76f73ac69f0ac704ff0e0a49c9861009fe74c40f (patch) | |
tree | 0f2e911818db668f213a4295a0d4b8010972cf16 | |
parent | docs(overview): enhance clarity in the Getting Started guide (diff) | |
download | Manual-76f73ac69f0ac704ff0e0a49c9861009fe74c40f.tar.gz Manual-76f73ac69f0ac704ff0e0a49c9861009fe74c40f.zip |
docs(extra): enhance clarity and formatting in algorithms comparison
* Added links to relevant Wikipedia pages for RSA, ElGamal, ECDH, ECDSA, NIST Curves, BrainPool Curves, CV25519, X448, SECP256K1, Ed25519, and Ed448.
* Improved readability by restructuring text and adding references to cryptographic algorithms.
-rw-r--r-- | src/content/docs/extra/algorithms-comparison.md | 92 |
1 files changed, 55 insertions, 37 deletions
diff --git a/src/content/docs/extra/algorithms-comparison.md b/src/content/docs/extra/algorithms-comparison.md index 1b3cb98..89547ba 100644 --- a/src/content/docs/extra/algorithms-comparison.md +++ b/src/content/docs/extra/algorithms-comparison.md @@ -11,9 +11,9 @@ decision. ## RSA (Rivest-Shamir-Adleman) -- **Key Characteristics**: RSA is one of the most widely used public key - algorithms. It was introduced in 1977 and is based on the difficulty of - factoring large prime numbers. +- **Key Characteristics**: [RSA](https://en.wikipedia.org/wiki/RSA_cryptosystem) + is one of the most widely used public key algorithms. It was introduced in + 1977 and is based on the difficulty of factoring large prime numbers. - **Key Sizes**: Typically, RSA keys are 2048 bits or larger. For higher security, keys up to 4096 bits are used. - **Use Cases**: RSA is versatile and can be used for both encryption and @@ -26,8 +26,9 @@ decision. ## ElGamal Encryption (ELG-E) -- **Key Characteristics**: ElGamal encryption (ELG-E) is an asymmetric key - encryption algorithm used for public-key cryptography. It is based on the +- **Key Characteristics**: [ElGamal encryption + (ELG-E)](https://en.wikipedia.org/wiki/ElGamal_encryption) is an asymmetric + key encryption algorithm used for public-key cryptography. It is based on the Diffie-Hellman key exchange and provides both encryption and digital signatures. - **Key Sizes**: Like DSA, ElGamal typically uses large key sizes, often 2048 @@ -49,23 +50,26 @@ decision. ## Understanding ECDH and ECDSA -Elliptic Curve Cryptography (ECC) is a powerful cryptographic method that -provides robust security with relatively small key sizes, making it ideal for -environments where computational power and storage are limited. ECC is commonly -used in two main algorithms: ECDH and ECDSA. +[Elliptic Curve Cryptography +(ECC)](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) is a powerful +cryptographic method that provides robust security with relatively small key +sizes, making it ideal for environments where computational power and storage +are limited. ECC is commonly used in two main algorithms: ECDH and ECDSA. ### ECDH and ECDSA: Core Differences -- **ECDH (Elliptic Curve Diffie-Hellman)** is a key exchange algorithm that - enables two parties to securely establish a shared secret over an insecure - channel. This shared secret can then be used for encryption. ECDH is not - directly used for encryption or signing; instead, it is crucial for securely - setting up encryption keys. +- [ECDH (Elliptic Curve + Diffie-Hellman)](https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman) + is a key exchange algorithm that enables two parties to securely establish a + shared secret over an insecure channel. This shared secret can then be used + for encryption. ECDH is not directly used for encryption or signing; instead, + it is crucial for securely setting up encryption keys. -- **ECDSA (Elliptic Curve Digital Signature Algorithm)** is used for creating - digital signatures, allowing one party to sign a message and another to verify - its authenticity. ECDSA ensures that the message has not been tampered with - and that it originates from the claimed sender. +- [ECDSA (Elliptic Curve Digital Signature + Algorithm)](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm) + is used for creating digital signatures, allowing one party to sign a message + and another to verify its authenticity. ECDSA ensures that the message has not + been tampered with and that it originates from the claimed sender. ### Common ECC Algorithms and Their Use Cases @@ -73,9 +77,11 @@ Elliptic Curve Cryptography (ECC) offers a range of algorithms and curves tailored to different cryptographic needs. Below is an overview of commonly used ECC algorithms and their specific applications. -- **NIST Curves (P-256, P-384, P-521)**: Standardized by the National Institute - of Standards and Technology (NIST), these curves are widely utilized in secure - communication protocols. For example: +- [NIST Curves (P-256, P-384, + P-521)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf): + Standardized by the National Institute of Standards and Technology (NIST), + these curves are widely utilized in secure communication protocols. For + example: - **ECDH NIST P-256**: Provides approximately 128-bit security, making it suitable for most encryption scenarios. @@ -85,8 +91,9 @@ ECC algorithms and their specific applications. proportionally, with P-521 offering around 256-bit security, making it ideal for high-security environments. -- **BrainPool Curves (P-256, P-384, P-512)**: BrainPool curves serve as - alternatives to NIST standards, providing similar security levels but with +- [BrainPool Curves (P-256, P-384, + P-512)](https://www.rfc-editor.org/rfc/rfc5639): BrainPool curves serve + as alternatives to NIST standards, providing similar security levels but with independently developed parameters. - **Use Cases**: Often used in regions or industries that prefer non-NIST @@ -98,16 +105,19 @@ ECC algorithms and their specific applications. - **CV25519 and X448**: These curves are optimized for performance and are widely used in modern cryptographic applications. - - **ECDH CV25519**: A counterpart to ED25519, this curve is designed for key - exchange and offers approximately 128-bit security. It is highly efficient - in secure communications. - - **ECDH X448**: A higher-security variant providing 224-bit security, - suitable for applications requiring more robust encryption. However, it - comes with a slight trade-off in computational efficiency. - -- **SECP256K1**: Defined by the Standards for Efficient Cryptography Group - (SECG), SECP256K1 is distinct from NIST curves and has gained significant - traction due to its adoption in blockchain technologies. + - [ECDH CV25519](https://en.wikipedia.org/wiki/Curve25519): A counterpart to + [Ed25519](https://en.wikipedia.org/wiki/EdDSA#Ed25519), this curve is + designed for key exchange and offers approximately 128-bit security. It is + highly efficient in secure communications. + - [ECDH X448](https://en.wikipedia.org/wiki/Curve448): A higher-security + variant providing 224-bit security, suitable for applications requiring more + robust encryption. However, it comes with a slight trade-off in + computational efficiency. + +- [SECP256K1](https://www.secg.org/sec2-v2.pdf): Defined by the Standards for + Efficient Cryptography Group (SECG), SECP256K1 is distinct from NIST curves + and has gained significant traction due to its adoption in blockchain + technologies. - **Key Use Case**: Widely used for cryptographic operations in Bitcoin and other blockchain systems, where efficient signature verification is crucial. - **Performance**: Optimized for computational efficiency, making it an @@ -126,10 +136,11 @@ or ECDSA. secure random numbers for each signature, EdDSA uses deterministic methods, reducing the risk of vulnerabilities caused by poor randomness. - **Elliptic Curves Used**: EdDSA supports two primary curves: - - **Ed25519**: Provides 128-bit security and is optimized for speed and - compact key sizes. - - **Ed448**: Provides higher 224-bit security for environments requiring - greater protection but at the cost of performance. + - [Ed25519](https://en.wikipedia.org/wiki/EdDSA#Ed25519): Provides 128-bit + security and is optimized for speed and compact key sizes. + - [Ed448](https://en.wikipedia.org/wiki/Curve448): Provides higher 224-bit + security for environments requiring greater protection but at the cost of + performance. ### Use Cases @@ -171,6 +182,13 @@ key exchange tasks. ## Recommended Algorithms for Compatibility and Security +Cryptographic key selection is critical to ensuring both robust security and +practical interoperability across diverse systems. With a wide array of +algorithms available, it is important to balance compatibility, performance, and +future-proof security when designing a cryptographic infrastructure. The +following recommendations highlight widely accepted algorithms suitable for most +scenarios, from legacy environments to modern applications. + ### RSA (2048-bit or 3072-bit) - **Why**: RSA offers the broadest compatibility across legacy systems, |