Problem Definition:
Alice wants to send a matrix $MR_A$ which encrypts its original private matrix $M_A$ ($M\times N$ size, all elements in $M_A$ is in {0,1,2,3,4,5}) to Bob without letting Bob knows any information about $M_A$.
Security Definition:
Alice and Bob communicate via a secure channel(no need to consider the other attacker, and no need to consider secrete recovery since this protocol is just one of the steps of another protocol which intends to securely compute data based on A and B). A and B are semi-honest.
A proposed secure protocol like this:
- Alice generates a one-time-use random matrix $R_A$ from the uniform continues distribution $U(a,b)$, where $a$ and $b$ is the minimum and maximum values in $M_A$., $R_A$ is used as the secret key.
- Then Alice add $M_A$ to $R_A$ to obtain $MR_A\quad \operatorname{Enc}(M_A) = M_A + R_A$,
- She sends $MR_A$ to Bob
My question:
- Is this protocol satisfy the one-time-pad encryption or secure?
- Regarding zero-knowledge, in the proposed protocol a, b defined as the minimum and maximum values of $M_A$, then the attacker will know the minimum and maximum values of $M_A$, is that violate zero-knowledge? How should I define the value of a and b in U(a, b) to generate $R_A$
- Actually, is the proposed protocol more like a random mask $M_A$ by $R_A$? I do not clearly know the difference between them.
Followings are my understanding of my question.
From the textbook, I know that the one-time-pad encryption is defined in the bitstream( the plaintext, key, ciphertext are transformed in the bit format) I also know that the secret key should be truly random and used only once.
Could you please help me to figure it out or discuss it with me?