MEME (Multi Entity Matrix Encryption) is a matrix-based encryption algorithm that leverages matrix properties such as multiplication and inversion for secure data encryption. To further enhance security, we integrate a substitution box (SBox), based on the AES SBox, to add an additional layer of obfuscation to the ciphertext.
Matrix multiplication is a binary operation that produces a matrix from
two matrices. For two matrices
The inverse of a matrix
We generate a secure invertible matrix
The public key is generated by multiplying the private key with a random
matrix
The ciphertext is generated by multiplying the plaintext with the public key and applying the modulus:
We then apply a substitution box operation to the resulting ciphertext:
where
The plaintext can be recovered by multiplying the ciphertext with the inverse of the private key, the inverse of the Perturbation matrix, and then applying the modulus:
After decryption, we apply the inverse SBox operation to retrieve the original ciphertext:
Consider the following example where the key matrices are of size
First, compute the public key:
Now, encrypt the message:
After applying the SBox substitution:
where
Finally, to decrypt:
While MEME provides a strong foundation for matrix-based encryption, several enhancements can be explored:
-
Variable Key Sizes: Currently, MEME uses a fixed-size key of 2048 bits. Future work can include support for flexible key sizes.
-
Substitution Box Variants: The current AES-based SBox can be replaced with other cryptographically secure SBoxes for different security requirements.
-
Performance Optimization: The encryption and decryption process can be optimized for better performance. Currently, the algorithm is slow due to the matrix inversion and the SBox operation.
-
Advanced Padding Schemes: Exploring other padding schemes like ISO/IEC 9797-1 could improve the handling of variable-length messages.