OpenFrogget is a powerful and easy-to-use cryptographic tool built entirely in modern C++20. Designed specifically for educational and experimental purposes, OpenFrogget provides cryptographic functionalities based on a custom elliptic curve known as ECCFrog512CK2.
This suite allows users to securely encrypt and decrypt files using a robust hybrid cryptographic schema, combining advanced Elliptic Curve Cryptography (ECC) for key exchange, with AES-GCM for symmetric encryption.
OpenFrogget is made fully open-source under the GPL license to encourage transparency, collaboration, and innovation in cryptography.
In 2025, during a comprehensive academic exploration into cryptographic primitives, we developed an entirely new elliptic curve, ECCFrog512CK2, as a response to the growing interest in custom ECC curves. Unlike widely established curves (such as secp256k1), ECCFrog512CK2 brings a fresh perspective, robustness, and increased cryptographic strength.
The development of OpenFrogget followed shortly thereafter, intended to provide a practical, reliable implementation that could showcase the security, flexibility, and performance of this innovative elliptic curve. OpenFrogget has been extensively tested for correctness, performance, and cryptographic reliability.
ECCFrog512CK2 is defined over a large prime finite field and carefully selected parameters ensuring:
- High Security: 512-bit prime modulus providing substantial cryptographic strength.
- Efficient Computation: Optimal parameters for computational efficiency and safety.
- Verifiable Origin: Curve parameters and generation methods are transparent and verifiable through public documentation and open-source implementation.
Parameters of the curve:
Prime modulus (p): 9149012705592502490164965176888130701548053918699793689672344807772801105830681498780746622530729418858477103073591918058480028776841126664954537807339721
Curve coefficient a: -7 mod p
Curve coefficient b: 95864189850957917703933006131793785649240252916618759767550461391845895018181
Generator point (G) and order (n): Securely selected and detailed clearly in eccfrog512ck2 implementation.
OpenFrogget/
βββ examples/
β βββ encrypt_example.sh
β βββ decrypt_example.sh
β βββ sample_text.txt
βββ include/
β βββ eccfrog512ck2.h
β βββ encrypt.h
β βββ decrypt.h
β βββ keygen.h
βββ src/
β βββ eccfrog512ck2.cpp
β βββ encrypt.cpp
β βββ decrypt.cpp
β βββ keygen.cpp
β βββ main.cpp
βββ tests/
β βββ unit_tests.cpp
βββ Makefile
βββ LICENSE
βββ README.md
-
Secure Key Generation:
- Generate cryptographically secure private and public ECC key pairs.
- Keys saved in a clear, easily recognizable PGP armored format.
-
File Encryption:
- Implements ECC-based ephemeral key exchange.
- Employs AES-GCM for authenticated encryption.
- Output includes ephemeral public key for recipient to reconstruct the shared secret.
-
File Decryption:
- Correctly and securely reconstructs ECC shared secret.
- Authenticates and decrypts AES-GCM encrypted data.
- Comprehensive error handling and integrity checks.
-
Key Verification:
- Validate the correctness of ECC public-private key pairs.
- OS: Linux (Ubuntu, Debian, Fedora, Arch recommended)
- Compiler: GCC (supporting C++20 standard)
- Libraries:
- GNU MP (GMP)
- OpenSSL (libssl and libcrypto)
- Tools: GNU Make, UPX (optional for binary compression)
Clone the repository and use the provided Makefile to set up all necessary dependencies and compile the binary.
git clone https://github.com/yourusername/OpenFrogget.git
cd OpenFrogget
make setup
makeGenerate a secure ECC key pair:
./openfrogget --generate-keysEncrypt a file:
./openfrogget --encrypt path/to/file.txtDecrypt a file:
./openfrogget --decrypt encrypted.encVerify the validity of the key pair:
./openfrogget --verify-keysExample scripts provided under the examples/ folder demonstrate practical usage:
- encrypt_example.sh:
#!/bin/bash
../openfrogget --generate-keys
../openfrogget --encrypt sample_text.txt- decrypt_example.sh:
#!/bin/bash
../openfrogget --decrypt encrypted.encTests are located in tests/unit_tests.cpp. Run tests with:
make testEnsure all cryptographic primitives, encryption and decryption routines are working as expected.
OpenFrogget is proudly licensed under the GNU General Public License (GPL). This ensures the project remains open, transparent, and available for academic, personal, and commercial exploration.
See the full license at LICENSE.
Contributions, feature requests, and bug reports are extremely welcome!
To contribute, please:
- Fork this repository.
- Create your branch (
git checkout -b feature-branch). - Commit your changes (
git commit -m 'New feature added'). - Push to your branch (
git push origin feature-branch). - Open a Pull Request on GitHub.
Feel free to open GitHub issues for questions, bugs, or suggestions. The maintainers will respond promptly.
While OpenFrogget uses strong cryptographic algorithms, it is experimental software intended primarily for educational and testing purposes. The ECC curve used (ECCFrog512CK2) is custom-developed and does not yet have extensive external security audits like more established curves.
Use in critical security scenarios at your own discretion.
- Provide bindings for additional languages (Python, JavaScript).
- Cross-platform support (Windows/Mac).
- Extensive cryptanalysis and security auditing for ECCFrog512CK2.
OpenFrogget is more than just a cryptographic toolβit's a commitment to openness, collaboration, and continuous improvement in cryptographic practices. Thank you for your interest and support. Together, we will push the boundaries of cryptography!
Happy Encrypting! πΈβ¨

