diff --git a/src/content/docs/appendix/contribute.md b/src/content/docs/appendix/contribute.md index 434fd12..7380e89 100644 --- a/src/content/docs/appendix/contribute.md +++ b/src/content/docs/appendix/contribute.md @@ -61,7 +61,7 @@ the repository and clone it locally. For email contributions, ensure Git is installed on your machine. For setting up local development Environment, you can refer to [this -section](../setup-dev-env/). +section](/appendix/setup-dev-env). ### Step 2: Making Changes @@ -87,4 +87,4 @@ description of your changes and the reasons for them in your email. If you have any technical questions or need assistance, refer to the Contact document for the maintainer's email address. We are here to help and encourage a -collaborative development process. \ No newline at end of file +collaborative development process. diff --git a/src/content/docs/appendix/setup-dev-env.md b/src/content/docs/appendix/setup-dev-env.md index 9e7e080..0e2f01d 100644 --- a/src/content/docs/appendix/setup-dev-env.md +++ b/src/content/docs/appendix/setup-dev-env.md @@ -59,15 +59,6 @@ cd GpgFrontend This step ensures that line endings are consistent across different operating systems. -- **For Windows:** - -```bash -git config --global core.autocrlf false -git config --global core.eol lf -``` - -- **For macOS:** - ```bash git config --global core.autocrlf false git config --global core.eol lf @@ -82,7 +73,7 @@ sudo apt-get update sudo apt-get install -y build-essential cmake ninja-build libarchive-dev libssl-dev libgpgme-dev ``` -- **On macOS (11 and 12):** +- **On macOS 12 or later:** ```bash brew install cmake openssl@3 ninja libarchive gpgme diff --git a/src/content/docs/appendix/translate-interface.md b/src/content/docs/appendix/translate-interface.md index b436895..6eed5a6 100644 --- a/src/content/docs/appendix/translate-interface.md +++ b/src/content/docs/appendix/translate-interface.md @@ -9,9 +9,7 @@ contributions to achieve this goal. Fortunately, translation work does not require an understanding of difficult technology. Volunteers simply need to use their skills to get the job done and make it accessible to everyone. -## Work Offline - -### What you need to know about translation work +## What you need to know about translation work From v2.1.2, GpgFrontend uses the Qt translation support library [Qt Linguist](https://doc.qt.io/qt-6/qtlinguist-index.html) in the Qt project. @@ -19,7 +17,7 @@ Before starting everything, you need to know something about this library. After you are sure about the content of the document, you can first try to see how GpgFrontend uses the tools provided by this library. -### About translation files +## About translation files 1. Download or clone source code [HERE](https://github.com/saturneric/GpgFrontend) @@ -27,13 +25,13 @@ GpgFrontend uses the tools provided by this library. 3. Add a new language: Create a new file; see [locale codes](https://saimana.com/list-of-country-locale-code/). 4. To edit or update an existing language, navigate to the path `resource/lfs/locale/ts`. -### Before starting your work +## Before starting your work Before starting your work, it is no longer necessary to contact me. Please ensure you have a thorough understanding of Qt Linguist and its usage. You can directly edit the files, or use the Qt Linguist GUI Tool for editing. -### Updates to Translation Work Process +## Updates to Translation Work Process - **For correcting existing translations**: You can directly modify the ts files and then send them to me via email. @@ -42,7 +40,7 @@ directly edit the files, or use the Qt Linguist GUI Tool for editing. are unsure how to use these tools, you can email me, and I will provide you with the appropriate ts file. -### Hand in your work +## Hand in your work You can submit your great work in two ways: diff --git a/src/content/docs/extra/algorithms-comparison.md b/src/content/docs/extra/algorithms-comparison.md index 37308b5..9c8a478 100644 --- a/src/content/docs/extra/algorithms-comparison.md +++ b/src/content/docs/extra/algorithms-comparison.md @@ -37,33 +37,84 @@ and ECDH. Here’s a detailed comparison to help you make an informed decision: - **Security**: Suitable for digital signatures, but less versatile and not as widely supported as RSA and ECDSA. -## ECDSA (Elliptic Curve Digital Signature Algorithm) +## ElGamal Encryption (ELG-E) -- **Key Characteristics**: ECDSA is based on elliptic curve cryptography (ECC) - and provides equivalent security to RSA with much shorter key lengths. -- **Key Sizes**: Commonly uses 224-bit keys for the same security level as - 2048-bit RSA keys. Higher security levels can be achieved with 256, 384, or - 521-bit keys. -- **Use Cases**: Used for digital signatures, particularly in constrained - environments like mobile devices and IoT due to its efficiency. -- **Performance**: More efficient and faster than RSA for the same security - level. Requires less computational power and bandwidth. -- **Security**: Offers strong security with smaller key sizes, making it - suitable for environments with limited - resources. +- **Key Characteristics**: ElGamal encryption (ELG-E) 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 + bits or more, to ensure a high level of security. -## ECDH (Elliptic Curve Diffie-Hellman) +- **Use Cases**: ElGamal is used in encryption and key exchange protocols. It is + particularly valued for its ability to generate different ciphertexts for the + same plaintext each time it is encrypted, providing semantic security. + However, it is less commonly used than RSA or ECC-based methods. -- **Key Characteristics**: ECDH is used for key exchange based on elliptic curve - cryptography. It is commonly paired with ECDSA for secure communications. -- **Key Sizes**: Similar to ECDSA, ECDH uses shorter keys for equivalent - security levels (e.g., 256-bit ECDH for 128-bit security). -- **Use Cases**: Ideal for establishing shared secrets over an insecure channel, - often used in conjunction with ECDSA for encryption and authentication. -- **Performance**: Efficient in terms of computational power and key size. - Suitable for applications requiring secure key exchange. -- **Security**: Provides robust security with smaller keys, making it efficient - for both performance and security. +- **Performance**: ElGamal encryption is computationally intensive, especially + when compared to RSA or ECC algorithms. The encryption process is relatively + slow, and the resulting ciphertexts are significantly larger than the + plaintext. + +- **Security**: ElGamal offers strong security, especially when large key sizes + are used. However, its performance drawbacks and the complexity of managing + larger ciphertexts have limited its widespread adoption. + +## Understanding ECDH and ECDSA + +### Overview of Elliptic Curve Cryptography (ECC) + +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. + +### 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. + +- **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. + +### Common ECC Algorithms and Their Use Cases + +- **NIST Curves (P-256, P-384, P-521)**: These curves, standardized by the + National Institute of Standards and Technology (NIST), are widely used in + secure communication protocols. For example, **ECDH NIST P-256** provides + approximately 128-bit security, making it suitable for most encryption needs, + while **ECDSA NIST P-256** is often used for digital signatures. As the key + size increases (e.g., P-384, P-521), so does the security level, with P-521 + offering approximately 256-bit security, ideal for applications requiring the + highest level of protection. + +- **ED25519 and ED448**: **ED25519** is favored for its speed and security, + providing 128-bit security and commonly used in modern applications like + secure messaging (e.g., Signal) and blockchain technologies. **ECDSA ED25519** + is excellent for generating fast and secure digital signatures. **ED448**, on + the other hand, offers higher security (224-bit) and is suitable for + environments that require even stronger protection, although at a slight + performance cost. + +- **BrainPool Curves (P-256, P-384, P-512)**: These curves are alternatives to + the NIST standards, offering similar security levels but with different + parameters. **ECDH BrainPool P-256** and **ECDSA BrainPool P-256** are used + when there is a preference for non-NIST curves, especially in regions or + industries where alternative cryptographic standards are required. The + BrainPool curves maintain the balance between security and performance across + different key sizes. + +- **CV25519 and X448**: **ECDH CV25519** is a counterpart to ED25519 but is used + specifically for key exchange. It provides approximately 128-bit security and + is widely used for its efficiency in secure communications. **ECDH X448** is + the higher-security variant (224-bit security) and is appropriate for + scenarios demanding more robust encryption, albeit with higher computational + costs. ## Algorithm Flexibility in Primary Keys and Subkeys diff --git a/src/content/docs/guides/generate-key.md b/src/content/docs/guides/generate-key.md index 7d2c25d..9202d80 100644 --- a/src/content/docs/guides/generate-key.md +++ b/src/content/docs/guides/generate-key.md @@ -202,6 +202,8 @@ primary keys may be restricted to certain secure algorithms for signing, subkeys can employ diverse algorithms optimized for encryption, like ECDH, ensuring efficient and secure operations tailored to the user's needs. +For more Details: [Comparison of Cryptographic Algorithms](/extra/algorithms-comparison) + **Primary Key Supported Algorithms:** - RSA diff --git a/src/content/docs/guides/key-server-operations.md b/src/content/docs/guides/key-server-operations.md index 6c01b66..6c3a186 100644 --- a/src/content/docs/guides/key-server-operations.md +++ b/src/content/docs/guides/key-server-operations.md @@ -132,7 +132,7 @@ this document to learn how to set the default key server. This is an advanced function provided by GpgFrontend, it can synchronize all your local public key information at one time, if you want to know, please read -[this document](../features/sync-all-public-keys.md). +[this document](/advanced/sync-all-public-keys). ## Key Server Related Settings diff --git a/src/content/docs/guides/view-keypair-info.md b/src/content/docs/guides/view-keypair-info.md index 875a0f4..85bf534 100644 --- a/src/content/docs/guides/view-keypair-info.md +++ b/src/content/docs/guides/view-keypair-info.md @@ -40,8 +40,8 @@ This part is the information of the primary key of the key pair. The primary key is very crucial because without it, you cannot perform related management operations like adding and revoking sub-keys (similar to not being able to open the key ring). Let's introduce the information of the primary key separately -below. If you want to learn more, see the [Basic Concepts](../basic-concepts.md) -section. +below. If you want to learn more, see the [Fundamental +Concepts](/guides/fundamental-concepts) section. The absence of the master key means that the private key of the master key does not exist, but this doesn't mean that neither the public key nor the private key diff --git a/src/content/docs/overview/downloads.md b/src/content/docs/overview/downloads.md index ff5a031..648291b 100644 --- a/src/content/docs/overview/downloads.md +++ b/src/content/docs/overview/downloads.md @@ -6,7 +6,7 @@ sidebar: GpgFrontend is available for download through multiple channels. For more detailed instructions on installation and getting started, please refer to the -[Getting Started Guide](../getting-started/). +[Getting Started Guide](/overview/getting-started/). --- diff --git a/src/content/docs/overview/faq.md b/src/content/docs/overview/faq.md index c62959b..517b4cf 100644 --- a/src/content/docs/overview/faq.md +++ b/src/content/docs/overview/faq.md @@ -17,7 +17,7 @@ messages. Users can manage and generate key pairs, encrypt files and emails, and sign their communications for added security. **How can I obtain and start using GpgFrontend?** You can download the latest -version of GpgFrontend from [GpgFrontend's Downloads Page](../downloads/) and +version of GpgFrontend from [GpgFrontend's Downloads Page](/overview/downloads) and choose the installation method for your platform. ## OpenPGP and GnuPG Explained @@ -63,13 +63,13 @@ this based on your operating system: ### Additional Assistance - For more detailed guidance, refer to the quick start manual available at - [Getting Started Guide](../getting-started/). + [Getting Started Guide](/overview/getting-started). ## Reporting Bugs and Contributing **Found a bug?** If you encounter any issues with GpgFrontend, please report them via the GitHub repository. You can also contact me directly if you're not -on GitHub; see the [Contact](../contact/) section for details. +on GitHub; see the [Contact](/overview/contact) section for details. **Interested in contributing?** Feel free to modify GpgFrontend's code and submit a Pull Request with your enhancements. You can also send patches via