Skip to content

victormeloasm/OpenFrogget

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐸 OpenFrogget - Advanced ECC Cryptography Suite - made by Víctor Duarte Melo

License Language Platform

Openfrogget Logo

πŸš€ Introduction

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.


🌟 Motivation and History

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 Elliptic Curve

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.

curve


πŸ›  Project Structure

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

πŸ’‘ Core Features

  • 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.

πŸ–₯ System Requirements

  • 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)

🚧 Quick Installation

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
make

πŸ§‘β€πŸ’» Basic Usage

Generate a secure ECC key pair:

./openfrogget --generate-keys

Encrypt a file:

./openfrogget --encrypt path/to/file.txt

Decrypt a file:

./openfrogget --decrypt encrypted.enc

Verify the validity of the key pair:

./openfrogget --verify-keys

πŸ“ Example Scripts

Example 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.enc

βš™ Development and Testing

Unit Tests

Tests are located in tests/unit_tests.cpp. Run tests with:

make test

Ensure all cryptographic primitives, encryption and decryption routines are working as expected.


πŸ“œ Licensing

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.


🀝 Contributing

Contributions, feature requests, and bug reports are extremely welcome!

To contribute, please:

  1. Fork this repository.
  2. Create your branch (git checkout -b feature-branch).
  3. Commit your changes (git commit -m 'New feature added').
  4. Push to your branch (git push origin feature-branch).
  5. Open a Pull Request on GitHub.

πŸ“¬ Contact

Feel free to open GitHub issues for questions, bugs, or suggestions. The maintainers will respond promptly.


🚨 Security Warning

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.


πŸš€ Future Plans

  • Provide bindings for additional languages (Python, JavaScript).
  • Cross-platform support (Windows/Mac).
  • Extensive cryptanalysis and security auditing for ECCFrog512CK2.

🐸 Final Notes

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! 🐸✨

About

OpenFrogget is a secure file encryption tool combining custom elliptic curve eccfrog512ck2 cryptography with AES-GCM for hybrid encryption. Built in modern C++ with a fully open GPL license.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors