I am fully aware that I am utilizing numbers with 4/5 digits for encryption. While I understand that using 32-digit numbers would provide a 256-bit key strength, I must consider practical constraints. My computing resources, including the lack of a quantum computer or a high-performance PC, combined with Python's relatively slower performance in intense calculations, especially involving large numbers, make it challenging to adopt such a strategy. 🛡️
Therefore, my decision to employ shorter numbers is a compromise between security and feasibility, taking into account the limitations of my hardware and computational efficiency. 🛡️
🛡️ Error Handling (try, except) is your responsibility 🛡️
SECURITY LAYERS 🛡️:
-
Secure Multiplier 🌟: Introduces a security multiplier that further complicates the encryption and decryption process for anyone unaware of the correct multiplier.
-
Mixed Chars Scheme 🌀: Uses a database of mixed characters to replace characters in the original message, making the association between characters and numeric values more complex.
-
Base64 Encoding 📦: Encodes the encrypted message in Base64, adding an optional additional layer of complexity.
USAGE 📜:
[ ] PUBLIC KEY => Used to ENCRYPT the message
[ ] PRIVATE KEY => Used to DECRYPT the message
############################################################
INSTRUCTIONS:
1. Run `db_mixer.py` to mix the chars scheme saved in `db_BASE.json`.
2. Run `keygen.py` and save the PUBLIC KEY and PRIVATE KEY.
3. Send `db.json` (generated by `db_mixer.py`) and the PRIVATE KEY to the recipient.
4. Encrypt a message using `encrypt.py` and send the (RSA Base64) encoded message to the recipient.
5. The recipient will decrypt the message using `decrypt.py` and the PRIVATE KEY received.
#############################################################
-
db_mixer.py
🔄: Mixes the character scheme fromdb_BASE.json
to create a new databasedb.json
. -
keygen.py
🔑: Generates the PUBLIC and PRIVATE KEYS for the encryption system. -
encrypt.py
📤: Encrypts a message using the PUBLIC KEY and the "cb_rsa" encryption system. -
decrypt.py
📥: Decrypts an encrypted message using the PRIVATE KEY and the "cb_rsa" system.
(Note 📌 => You can custome db_BASE.json
by adding chars 👌😏)
Multiplier = 465
Message = "c"
Correspondence Number of "c" = 3
Encrypted Number = 3 * Multiplier => 3 * 465 = 1395
The recipient can decrypt the message knowing the multiplier and the mixed chars scheme