In matrix encoding, we convert our message into some numerical value and then create a matrix out of those numbers.
The matrice encryption is based on the fact that a matrix multiplied by its inverse is a unity matrix, so, if we pre-multiply a marix by some encoding matrix $X$ it will get encrypted and will be decoded only by pre-multiplying the encrypted matrix with $X^{-1}$.
But, what will be the case if the encoding matrix is singular ie. $|X|=0$, Then $X^{-1}$ does not exist because $X^{-1}=\frac{1}{|X|}adj(x)$.
So, it wouldn't be possible to get original matrix even if we know the encoding matrix.

Does it mean that the message is encrypted forever. If not, How to decode it? and if yes, Is it universal hashing?

  • $\begingroup$ This sounds like a very bad linear hashing scheme. Almost as bad as a linear congruential random number generator. $\endgroup$ – Nayuki Jun 18 '18 at 17:00

If the matrix is not invertible, then your encryption operation is not injective. That is, there exist messages m1 and m2 that are not equal but for which E(m1) = E(m2). If you receive c = E(m1), it is not possible to uniquely determine the original message. Recall that it's possible to characterize all messages that will encrypt to the same value; for any k in the kernel, E(m + k) = E(m).

I'm deliberately avoiding any analysis of the security of this scheme.

  • $\begingroup$ But if we use bigger matrices, such possibility is very less $\endgroup$ – Abhishek Jun 19 '18 at 11:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.